* dbus/dbus-sysdeps.h:
[platform/upstream/dbus.git] / ChangeLog
1 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
2
3         * dbus/dbus-sysdeps.h:
4         * dbus/dbus-sysdeps.c: 
5           add _dbus_printf_length (patch from Peter Kümmel 
6           <syntheticpp at gmx dot net>)
7
8 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
9
10         * dbus/dbus-internals.c: unistd.h is not used 
11         (_dbus_verbose_real): only enable verbose printing 
12         if DBUS_VERBOSE environment var is set to '1'
13         (patch from Peter Kümmel <syntheticpp at gmx dot net>)
14
15 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
16
17         * configure.in: add a GCC flag check for -Wdeclaration-after-statement
18         so we still compile on older gcc (patch from Frederic Peters 
19         <fpeters at 0d dot be>
20
21 2006-08-04  Havoc Pennington  <hp@redhat.com>
22
23         * configure.in: add -Wdeclaration-after-statement
24
25         * dbus/dbus-connection.c: change all the pending call stuff to
26         reflect the fact that pending call operations use the connection
27         lock
28
29         * dbus/dbus-pending-call.c: add locking here
30
31         * dbus/dbus-errors.c (struct DBusRealError): don't make the name
32         field const consistent with how message field is done
33
34 2006-08-03  John (J5) Palmieri  <johnp@redhat.com>
35
36         * s/D-BUS/D-Bus/g
37
38 2006-08-03  John (J5) Palmieri  <johnp@redhat.com>
39
40         * dbus/dbus-object-tree.c: Patch by Benjamin Otte 
41         <in7y118 at public.uni-hamburg dot de> - fix invalid
42         read/write reported by valgrind
43
44 2006-07-24  John (J5) Palmieri  <johnp@redhat.com>
45
46         * Released 0.91
47
48 2006-07-22  John (J5) Palmieri  <johnp@redhat.com>
49
50         * dbus/dbus-connection.c:
51         (_dbus_connection_attach_pending_call_unlocked):
52         (connection_timeout_and_complete_all_pending_calls_unlocked):
53         Make sure we set timeout_added on pending calls to FALSE when
54         we remove the timeout from the connection
55
56 2006-07-21  John (J5) Palmieri  <johnp@redhat.com>
57
58         * Removed some extra bindings stuff lingering around (thanks timo)
59         * dbus-pendingcall.c (_dbus_pending_call_new): 
60         s/dbus_connection_ref/_dbus_connection_ref_unlocked fixes assertion
61         when we tried to take a lock on an already locked connection
62
63 2006-07-17  John (J5) Palmieri  <johnp@redhat.com>
64
65         * Released 0.90
66
67 2006-07-17  Havoc Pennington  <hp@redhat.com>
68
69         * dbus/dbus-marshal-basic.c (_dbus_type_to_string): support 64-bit
70         ints, reported by Owen Taylor
71
72 2006-07-17  John (J5) Palmieri  <johnp@redhat.com>
73
74         * doc/TODO:
75         * dbus/dbus-bus.c:
76         * dbus-errors.c:
77         * dbus/dbus-marshal-validate.c:
78           Removed TODO items which were fixed or are no longer relevent
79
80 2006-07-17  John (J5) Palmieri  <johnp@redhat.com>
81
82         * dbus-qt4-1.pc.in, dbus-sharp.pc.in:
83         Remove stray files from the stripped bindings
84
85 2006-07-16  Havoc Pennington  <hp@redhat.com>
86
87         * dbus/dbus-pending-call.c (_dbus_pending_call_set_timeout_error):
88         Improve the error message on reply timeout
89
90 2006-07-14  John (J5) Palmieri  <johnp@redhat.com>
91
92         * Remove all bindings
93
94 2006-07-13  John (J5) Palmieri  <johnp@redhat.com>
95
96         * dbus-connection.c (dbus_connection_send_with_reply): return TRUE
97         and set pending_reply out arg to NULL is connection is disconnected
98         (connection_timeout_and_complete_all_pending_calls_unlocked): New
99         static method for cleaning up pending calls on disconnect
100         (_dbus_connection_get_dispatch_status_unlocked): If we have pending 
101         calls queued timeouts on disconnect 
102
103          * dbus/dbus-pending-call.c (_dbus_pending_call_set_connection):
104         Remove 
105
106 2006-07-13  Carlos Garcia Campos  <carlosgc@gnome.org>
107
108         * bus/activation.[ch] (bus_activation_list_services): new function to 
109         get the list of services that can be activated
110
111         * bus/dispatch.c: test coverage for the new bus method
112         ListActivatableNames
113
114         * bus/driver.c: new bus method ListActivatableNames to get the list of
115         services that can be activated
116
117         * doc/dbus-specification.xml: ListActivatableNames method documentation
118
119 2006-07-12  John (J5) Palmieri  <johnp@redhat.com>
120         * dbus/Makefile.am: add dbus-pending-call-internal.h to the list of
121         source files
122
123 2006-07-12  John (J5) Palmieri  <johnp@redhat.com>
124         * dbus/dbus-message-factory.c:
125         Fix index into an array (patch by Peter Kümmel <syntheticpp at gmx.net>)
126
127 2006-07-12  John (J5) Palmieri  <johnp@redhat.com>
128         * dbus/dbus-connection-internal.h:
129         * dbus/dbus-connection.c:
130         * file dbus/dbus-pending-call.c:
131         * dbus/dbus-pending-call.h:
132         Make DBusPendingCall an opaque type even to D-Bus internals
133
134 2006-07-07  John (J5) Palmieri  <johnp@redhat.com>
135
136         * dbus/dbus-connection.h: remove connection_disconnect and replace with
137         connection_close
138
139         * dbus/dbus-connection.c: include dbus-bus.h
140         (_dbus_connection_read_write_dispatch): make static
141
142 2006-07-07  John (J5) Palmieri  <johnp@redhat.com>
143
144         * dbus/dbus-connection.c (dbus_connection_close): removed deprecated
145         function
146         (dbus_connection_dispatch): On disconnect unref any shared connections
147
148         * dbus/dbus-bus.c (_dbus_bus_check_connection_and_unref): new function
149         for cleaning up shared connections on disconnect
150         (internal_bus_get): get a hard refrence to shared connections when
151         they are created
152         
153         * doc/TODO: Remove items which are no longer relevent or have been fixed
154         Split 1.0 todo items with a 0.90 freeze todo list
155  
156 2006-06-14  Ross Burton  <ross@openedhand.com>
157
158         * glib/dbus-gobject.c:
159         Free a leaking GArray (surely not!) in dbus_g_method_return.
160
161 2006-06-14  Ross Burton  <ross@openedhand.com>
162
163         * tools/Makefile.am:
164         * tools/dbus-monitor.c:
165         Don't use the GLib bindings in dbus-monitor (patch from Ralf
166         Habacker).
167         
168 2006-06-14  Ross Burton  <ross@openedhand.com>
169
170         * tools/dbus-print-message.c:
171         Also print the object path when outputting signals or method calls.
172
173 2006-06-13  Thiago Macieira <thiago.macieira@trolltech.com>
174
175         * qt/src/Makefile.am: install the qdbus.h header.
176         This allows people to actually use the installed code.
177
178 2006-06-12  Ross Burton  <ross@openedhand.com>
179
180         * glib/dbus-gproxy.c:
181         Don't leak a GArray when firing signals (thank Rob Taylor for review).
182
183 2006-06-12  Thiago Macieira <thiago.macieira@trolltech.com>
184
185         * Released 0.62
186
187 2006-06-12  Thiago Macieira <thiago.macieira@trolltech.com>
188
189         * dbus/dbus-arch-deps.h.in: Remove spurious semi-colons that
190         break pedantic builds. Closes bug 6043 (patch approved by
191         Havoc back in February).
192
193 2006-06-12  Thiago Macieira <thiago.macieira@trolltech.com>
194
195         * qt/src/qdbusintegrator.cpp: Fix bug in parsing async methods
196         that took a QDBusMessage parameter.
197         * qt/src/qdbusbus.h: Add a default flag for RequestName.
198         * qt/tools/dbus.cpp: Don't use automatic call because we might
199         be calling an async method: request a reply.
200
201 2006-06-11  Thiago Macieira <thiago.macieira@trolltech.com>
202
203         * test/qt/*: Update the testcases, including testing the new
204         functionality of sending null QByteArray and QString over the
205         bus. Add new headertest test and restore the old
206         qdbusxmlparser test.
207
208 2006-06-11  Thiago Macieira <thiago.macieira@trolltech.com>
209
210         * qt/tools/dbuscpp2xml.cpp: Compile on Windows.
211         * qt/tools/dbusidl2cpp.cpp: Add missing newline.
212
213         * qt/examples/Makefile.am:
214         * qt/examples/chat.h: Use UI-generated files with the ui_*.h
215         form.
216
217         * qt/src/qdbusmarshall.cpp: Allow sending of QString() and
218         QByteArray() (nulls) over the bus.
219         * qt/src/qdbusabstractinterface.cpp: Use the correct variable,
220         the one that has the signature suffix stripped.
221         * qt/src/qdbusreply.h: Make some methods const.
222
223 2006-06-09  Thiago Macieira <thiago.macieira@trolltech.com>
224
225         Patch from Timo Hoenig <thoenig@suse.de>.
226
227         * qt/dbus/Makefile.am: New file.  Fix "make dist", add all headers
228         required during build to EXTRA_DIST.
229         * qt/src/Makefile.am: Fix "make dist", add 'qdbus.h' to EXTRA_DIST.
230         * qt/Makefile.am: Fix "make dist", add 'dbus' to DIST_SUBDIRS.
231         * configure.in: Fix "make dist", take care that the Makefile for
232         qt/dbus is being generated.
233
234 2006-06-07  John (J5) Palmieri  <johnp@redhat.com>
235
236         * bus/bus.c: Fix eavesdropping on method calls
237
238 2006-06-07  John (J5) Palmieri  <johnp@redhat.com>
239
240         * configure.in:
241         * dbus/dbus-userdb-util.c:
242         Add Solaris console owner patch from Artem Kachitchkine
243
244 2006-06-07  Thiago Macieira <thiago.macieira@trolltech.com>
245
246         * qt/Makfile.am:
247         * qt/src/Makefile.am: Fix the EXTRA_DIST after the
248         reorganisation. Thanks to Timo Hoenig for pointing this out.
249
250 2006-06-06  Robert McQueen  <robot101@debian.org>
251
252         * glib/dbus-gtype-specialized.c: Fix obvious leak of GArray in every
253           call to dbus_g_type_get_struct.
254
255 2006-06-06  Robert McQueen  <robot101@debian.org>
256
257         * glib/dbus-gvalue-utils.c: Fix the failing test where static string
258           pointers were put into a GPtrArray-based specialised collection, and
259           then freed along with the array. GValues which you add into
260           collections or maps which have the NOCOPY flag set are assumed to not
261           belong to the caller, so rather than the existing pointer-stealing
262           semantics, they are copied instead. Given that the main consumers of
263           this abstraction are the bindings themselves, I don't think this is
264           too bad, but others should watch their choice of take vs set_static.
265
266 2006-06-06  Robert McQueen  <robot101@debian.org>
267
268         * glib/dbus-gvalue-utils.c: Spotted a warning about the return value
269           of g_slist_prepend not being used. Fixed copying of slist-based
270           specialised collections, then wrote a test case and found that it was
271           all broken. Went on to fix iterating and appending too. Good thing
272           nobody uses this code yet.
273
274 2006-06-06  Robert McQueen  <robot101@debian.org>
275
276         * glib/dbus-gvalue-utils.c: Remove duplicated code by having all of
277           the iterators use gvalue_take_ptrarray_value (the GValues themselves
278           are discarded without unsetting, so it makes no difference whether
279           we take or set_static). Remove cases for G_TYPE_POINTER because
280           there really is nothing useful we can do with them in our
281           specialised types - we *need* boxed copy/free functions at the very
282           least.
283
284 2006-06-05  Thiago Macieira <thiago.macieira@trolltech.com>
285
286         * qt/dbus: Add directory. I had forgotten to add this
287         yesterday after the move...
288
289         * qt/examples/Makefile.am:
290         * qt/examples/dbus.cpp: Moved to qt/tools/dbus.cpp.
291
292         * qt/tools/Makefile.am:
293         * qt/tools/dbus.cpp: Moved from qt/examples/dbus.cpp.
294         Added feature to get and set properties.
295         Added validation of service, object path and interface names.
296
297         * qt/tools/dbusidl2cpp.cpp: Two new features:
298         1) Allow specifying both the header and the source file names,
299         by separating them with a colon.
300         2) Don't write an interface output if the -p switch wasn't
301         given, but the -a was.
302
303         * qt/src/*: Fix usage of Iterators and ConstIterators.
304         Fix shadowing of variables by other variables (-Wshadow).
305         Fix keyword-cleanliness in headers.
306         Fix ASCII-cast (QLatin1String, QLatin1Char).
307         Fix validation of member names.
308         Add extra checking of introspection data during XML parsing.
309         Various bug fixes.
310
311 2006-06-04  Thiago Macieira <thiago.macieira@trolltech.com>
312
313         * dbus/Makefile.am:
314         * dbus/qdbus.h: Remove unnecessary file. This is mirrored into
315         qt/dbus/qdbus.h now.
316
317 2006-06-04  Thiago Macieira <thiago.macieira@trolltech.com>
318
319         * configure.in: Make --disable-qt actually do
320           something. Patch inspired by Zack Rusin.
321
322 2006-06-04  Thiago Macieira <thiago.macieira@trolltech.com>
323
324         * qt/: Update to Subversion r548032.
325         This includes a big reorganisation of the files inside the
326         subdir.
327
328 2006-05-30  Sjoerd Simons  <sjoerd@luon.net>
329
330         * dbus/dbus-sysdeps.c: Make tcp socket connection error somewhat more
331         clear:  
332         "Failed to connect to socket <host>:<port> <error>" instead of
333         "Failed to connect to socket <host>: <error>:<port>"
334
335         * dbus/dbus-transport-unix.c: Fix crash when no host option is given
336         for a tcp transport. 
337
338 2006-05-29  Thiago Macieira  <thiago.macieira@trolltech.com>
339
340         * qt/*: Update the QtDBus bindings up to revision 546310 in
341         Subversion.
342         This adds the dbuscpp2xml tool, that parses a C++ header and
343         outputs a D-BUS Introspection XML.
344
345 2006-05-21  Havoc Pennington  <hp@redhat.com>
346
347         * glib/dbus-gproxy.c: Put in a pile of assertions that the proxy name
348         is not NULL when it shouldn't be. Also a couple of possible fixes
349         for #4637 though I don't understand why the bug happens, to be
350         honest... also the object constructor has an assert name != NULL
351         and the name is only currently NULL for peer-to-peer proxies that 
352         I don't think anyone uses? So it should be asserting.
353         Anyway, for now at least see if we get an earlier assertion failure.
354
355         * glib/dbus-gvalue-utils.c: Put in a couple of assertions for
356         apparently broken code to be sure the tests fail and someone 
357         will fix them...
358
359 2006-05-07  Thiago Macieira  <thiago.macieira@trolltech.com>
360
361         * qt/qdbusmarshall.cpp: Fix a problem of demarshalling lists
362         and arrays when they had a single element: has_next returns
363         false, even before you read the element. So, instead, check
364         the array length.
365
366 2006-05-06  Thiago Macieira  <thiago.macieira@trolltech.com>
367
368         * qt/qdbusmessage.cpp:
369         * qt/qdbustypehelper_p.h:
370         * qt/qdbusintegrator.cpp: gcc 3.4 doesn't like Q_FOREACH when
371         the list is a const-reference
372
373 2006-05-03  John (J5) Palmieri  <johnp@redhat.com>
374
375         * Adding old doc patch that never got applied
376         
377         * dbus/bus.c (dbus_bus_add_match): Add documentation
378
379         * doc/dbus-specification.xml: Add documentation for the match rules
380           and the AddMatch and RemoveMatch methods
381
382 2006-05-02  Thiago Macieira  <thiago.macieira@trolltech.com>
383
384         * qt/dbusidl2cpp.cpp: There's no callAsync. Use the correct
385         call (r535506)
386
387         * qt/dbusidl2cpp.cpp:
388         * qt/qdbusabstractadaptor.cpp:
389         * qt/qdbusabstractadaptor.h: Make QDBusAdaptorConnector be a
390         sibling of the QDBusAbstractAdaptor objects instead of the
391         parent. (r535848)
392
393         * qt/dbusidl2cpp.cpp:
394         * qt/qdbusabstractinterface.cpp:
395         * qt/qdbusabstractinterface.h:
396         * qt/qdbusabstractinterface_p.h:
397         * qt/qdbusinterface.cpp: Make properties in interfaces
398         actually work. The code that was generated would not compile,
399         due to moc calls to functions that did not exist. They now
400         shall. (r536571)
401
402 2006-04-30  Thiago Macieira  <thiago.macieira@trolltech.com>
403
404         * Makefile.am:
405         * configure.in:
406         * dbus-qt4-1.pc.in: Add a pkg-config file for libdbus-qt4-1.
407         Thanks to Brad Hards for providing the patch
408
409 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
410
411         * qt/dbusidl2cpp.cpp: There's no callAsync. Use the correct
412         call. (r535506)
413
414 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
415
416         * qt/examples/dbus.cpp: Enhance error messages and use
417         QDBusInterfacePtr.
418
419 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
420
421         * qt/qdbusinterface.h: Rename QDBusRef to QDBusInterfacePtr
422         and disable the copy operators. (r533772, r534746)
423
424         * qt/qdbuserror.h: Remove the automatic cast to bool. (r533929)
425
426         * qt/qdbusabstractinterface.cpp:
427         * qt/qdbusabstractinterface.h: Change the default call mode to
428         not use the event loop. Add convenience call() methods that
429         take a CallMode parameter. (r534042)
430
431         * qt/qdbusconnection.h: Change the default call mode to not
432         use the event loop. (r534042)
433
434         * qt/qdbusinterface.cpp:
435         * qt/qdbusinterface.h: Add a method to tell us if the
436         interface is valid (since we don't return a null pointer
437         anymore) (r534099)
438
439         * qt/qdbusinterface_p.h: Don't crash if metaObject is 0
440         (r534101)
441
442         * qt/qdbusinternalfilters.cpp: Decouple the introspection
443         function in two so taht we get the chance to introspect
444         without having a QDBusMessage (r534102)
445
446         * qt/qdbusbus.h:
447         * qt/qdbusconnection.cpp:
448         * qt/qdbusconnection_p.h:
449         * qt/qdbusintegrator.cpp: Keep a list of our own names to
450         avoid a round-trip to the server when attempting to introspect
451         one of our own objects. Also make sure the filter functions
452         match the empty interface as well. (r534108)
453         Don't keep the connection names. Instead, trust the unique
454         connection name (r534111)
455         Remove event loop usage (r534112)
456
457 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
458
459         * qt/qdbusintegrator.cpp: Fix assertion failure spotted by
460         Brad Hards.
461
462 2006-04-28  Robert McQueen  <robot101@debian.org>
463
464         * glib/dbus-gproxy.c: Fix properties so that they can be given in
465         any order, making it easier for people who inherit from this
466         object.
467
468 2006-04-28  Robert McQueen  <robot101@debian.org>
469
470         * glib/dbus-gvalue-utils.c: Patch from Jakub Stachowski to fix leaking
471         of memory from within pointer arrays and lists. Fixes bug #6300.
472
473 2006-04-28  Robert McQueen  <robot101@debian.org>
474
475         * glib/dbus-gvalue.c: Patch from Jakub Stachowski to fix a leak in
476         generating struct signatures. Fixes bug #6083.
477
478 2006-04-28  Robert McQueen  <robot101@debian.org>
479
480         * qt/Makefile.am: Tweak CLEANFILES from qdbusconnection.moc
481         to qdbusconnection_p.moc.
482
483 2006-04-24 John (J5) Palmieri <johnp@redhat.com>
484
485         * README, INSTALL: Doc fixes
486         Patch from Brad Hards <bradh at frogmouth.net>
487
488 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
489
490         * qt/examples/dbus.cpp: Use the new merged-interface mode for
491         the dynamic meta object. No need to guess which interface to
492         call.
493
494 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
495
496         * qt/qdbusconnection_p.h:
497         * qt/qdbusmetaobject.cpp:
498         * qt/qdbusmetaobject_p.h:
499         * qt/qdbusintegrator.cpp: Use the new merged-interface mode
500         for the dynamic meta object. No need to guess which
501         interface to call.
502         * qt/qdbusabstractinterface_p.h:
503         * qt/qdbusconnection.cpp:
504         * qt/qdbusintegrator.cpp:
505         * qt/qdbusinterface.cpp:
506         * qt/qdbusinterface.h: Make findInterface always return a non-null pointer.
507         Add a QDBusRef that looks and behaves like DCOPRef.
508
509 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
510
511         * dbus/dbus-connection.c: Interfaces are optional in method
512         calls, so don't give up if the interface parameter is NULL.
513         Patch reviewed by Havoc Pennington.
514
515 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
516
517         * qt/qdbusreply.h: Add default constructor and operator=
518           (r532625)
519         * qt/qdbustypehelper_p.h: Use a clean namespace: no foreach()
520           in public headers (r532952)
521         * qt/qdbusabstractinterface.cpp:
522         * qt/qdbusabstractinterface_p.h: Add the AutoDetect mode and
523           make it the default (r532951)
524
525 2006-04-19  John (J5) Palmieri  <johnp@redhat.com>
526
527         * dbus/dbus-connection.c: Fix asserts
528         Patch from Tim Moloney <t.moloney at verizon.net>
529
530 2006-04-19  John (J5) Palmieri  <johnp@redhat.com>
531
532         * mono/Connection.cs, mono/Message.cs: Check Target type
533         Patch from Aaron Bockover (abockover at novell.com)
534
535 2006-04-13  Thiago Macieira  <thiago.macieira@trolltech.com>
536
537         * INSTALL: fine-tune the requirements for the Qt4 binding.
538
539 2006-04-16  Daniel P. Berrange  <dan@berrange.com>
540
541         * tools/dbus-print-message.c: Added support for printing of all 
542           remaining data types. Fixed logic for indentation of compound
543           data types.
544         
545 2006-04-15  Daniel P. Berrange  <dan@berrange.com>
546
547         * INSTALL: fill out content of file providing DBus specific
548           build installations, followed by generic Auto* INSTALL file
549           content
550         
551 2006-04-13  Thiago Macieira  <thiago.macieira@trolltech.com>
552
553         * qt/qdbusintegrator.cpp: Work around g++ 3.3 bug.
554           Patch by Stefan Eilers. (r529537)
555
556 2006-04-13  Thiago Macieira  <thiago.macieira@trolltech.com>
557
558         * qt/qdbusinternalfilters.cpp: Don't show the parent's
559           contents (r528208)
560
561 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
562
563         * qt/Makefile.am: fix the dependency for
564           qdbusconnection_p.moc. It's included in qdbusintegrator.cpp,
565           not in qdbusconnection.cpp.
566           Thanks to Jakub Stachowski <stachowski@hypair.net> for
567           spotting this.
568
569 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
570
571         * qt/examples/listnames.cpp:
572         * qt/examples/Makefile.am: Three ways to list the names on the
573           bus.
574
575 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
576
577         * test/qt/tst_hal.cpp: Remove the waiting, since it's not
578           needed anymore. Requires Qt 4.1.3 to work properly. (r528148)
579
580 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
581
582         Merge from Subversion:
583         * qt/qt-dbus.qdocconf: Update Trolltech's webpage link to
584           something that exists (r526315)
585         * qt/qdbusinternalfilters.cpp: Correctly detect non-scriptable
586           slots/signals (r526316)
587         * qt/qdbusinternalfilters.cpp: Fix the setProperty call and
588           also return an unknown-method error if the parameters don't
589           match for org.freedesktop.DBus.Properties. (r526842)
590         * qt/examples/dbus.cpp: Allow passing of QVariants (r526843)
591         * qt/qdbusintegrator.cpp: Restore the proper order of
592           delivery: don't make method returns be delivered on priority
593           (r528150)
594
595 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
596
597         * configure.in qt/Makefile.am: add qt/examples
598         * qt/examples: Add QtDBus example programs:
599           - hello: Hello, World
600           - ping: Simple method-calling program
601           - pong: Simple object-exporting program (not using adaptors)
602           - complexping: Interactive method-calling program 
603                 (also gets and sets properties).
604           - complexpong: Sample program exporting methods, signals and
605                 properties, using adaptors.
606           - dbus: Simple implementation of a generic method-calling
607                 program, similar to 'dbus-send', but with semantics
608                 similar to 'dcop'.
609           - chat: Simplistic chat program, implemented using signals
610                 and the system bus. Looks like IRC.
611
612 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
613
614         * configure.in: Detect QtGui (necessary for one of the
615           example programs). Note: this increases the minimum required
616           version of Qt to 4.1.3.
617
618 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
619
620         * test/qt/*: Sync with KDE Subversion revision 523647.
621         Update the testcases to the new API. Remove testcases for
622         classes that are no longer public or have been removed.
623
624 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
625
626         * qt/*: 
627         * dbus/qdbus.h: Sync with KDE Subversion revision
628         523647. Hopefully, this will be the last of the
629         source-incompatible changes. Documentation has been improved;
630         support for QList<basic-types> has been added; QDBusObject is
631         gone; QDBus(Abstract)Interface is now a QObject with
632         auto-generated meta-object; QDBusIntrospection is marked
633         private, since QMetaObject can be used now; lots of bugfixes.
634
635 2006-03-16  John (J5) Palmieri  <johnp@redhat.com>
636
637         Patch from Milosz Derezynski <internalerror at gmail.com>
638         
639         * configure.in:
640         Output the service directory in the configure summary
641
642         * dbus-1.pc.in:
643         Add session_bus_services_dir
644
645 2006-03-10  Ross Burton  <ross@openedhand.com>
646
647         * tools/dbus-print-message.c:
648         Add support for object paths and signatures.
649
650 2006-03-06  Sjoerd Simons <sjoerd@luon.net>
651
652         * bus/bus.c: (bus_context_reload_config): Flush the user database cache on
653         config reload.
654         * bus/dbus-daemon.1.in: Also note that SIGHUP flushes the user/group
655         information caches
656         * dbus/dbus-hash.c: (_dbus_hash_table_remove_all): 
657         * dbus/dbus-hash.h: Add function to remove all entries from a hash table
658         * dbus/dbus-userdb.c: (_dbus_user_database_flush):
659         * dbus/dbus-userdb.h: Add function to flush all user/group information
660         caches.
661
662 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
663
664         * qt/dbusidl2cpp.cpp:
665         * qt/Makefile.am: add the dbusidl2cpp tool, the replacement
666         for dcopidl2cpp, found in the KDE installations (or the more
667         modern kalyptus): generate Qt4 C++ code for the input XML
668         introspection. Currently no IDL parsing.
669
670 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
671
672         * test/qt/*: Update the self-tests.
673
674 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
675
676         * qt/*: 
677         * dbus/qdbus.h: Sync with KDE Subversion revision 516237. This
678         represents the first feature-complete version of the Qt4
679         bindings since I took ove maintainership.
680
681 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
682
683         * qt/Doxyfile: Adding a Doxyfile for the Qt4 bindings
684         dir. This is C++, so we can't use the DBus ones.
685
686 2006-03-02  John (J5) Palmieri  <johnp@redhat.com>
687
688         * python/dbus_bindings.pyx: Remove refrence to sys/cdefs.h
689         (Patch from Artem Kachitchkine <Artem.Kachitchkin at Sun.COM>)
690
691 2006-03-02  John (J5) Palmieri  <johnp@redhat.com>
692
693         * dbus/dbus-connection.c: 
694         (_dbus_connection_block_pending_call):
695         Check to see if our data has already been read off the connection
696         by another blocking pending call before we block in poll.
697         (check_for_reply_and_update_dispatch_unlocked):
698         Code taken from _dbus_connection_block_pending_call - checks for
699         an already read reply and updates the dispatch if there is one.
700
701         * test/name-test/test-pending-call-dispatch.c:
702         New test for making sure we don't get stuck polling a 
703         dbus connection which has no data on the socket when
704         blocking out of order on two or more pending calls.
705
706 2006-02-28  Thiago Macieira <thiago.macieira@trolltech.com>
707
708         * qt/Makefile.am: Patch by Sjoerd Simons. More .moc issues:
709         make/automake don't detect that we're talking about the same
710         .lo file if I specify the full path to the source files.
711
712 2006-02-26  Havoc Pennington  <hp@redhat.com>
713
714         * bus/dbus-daemon.1.in: improve the language in a couple spots I noticed
715
716         * dbus/dbus-bus.c (internal_bus_get): in the error message if the
717         session bus variable is unset, suggest "man dbus-launch" and "man
718         dbus-daemon" to figure out how to fix the problem
719
720 2006-02-25  Havoc Pennington  <hp@redhat.com>
721
722         * glib/dbus-glib-tool.c (usage): fix up the usage message, someone
723         should make this thing use the new glib options parser
724
725 2006-02-25  Thiago Macieira <thiago.macieira@trolltech.com>
726
727         * qt/Makefile.am: Patch by Sjoerd Simons. Fix the path to the
728         .lo files taking moc sources.
729
730 2006-02-25  Havoc Pennington  <hp@redhat.com>
731
732         * dbus/dbus.h, dbus/Makefile.am: add dbus-signature.h to dbus.h
733         and install it as a public header
734
735 2006-02-24  John (J5) Palmieri  <johnp@redhat.com>
736
737         * Released 0.61
738
739 2006-02-24  John (J5) Palmieri  <johnp@redhat.com>
740         
741         * proxies.py: Fix the callchain
742
743 2006-02-24  John (J5) Palmieri <johnp@redhat.com>
744         
745         * patch from Sjoerd Simons <sjoerd at debian.org>:      
746
747         * dbus/dbus-sysdeps-util.c (_dbus_group_info_free): Moved to 
748         dbus/dbus-sysdeps.c
749
750         * dbus/dbus-userdb.c (_dbus_group_info_free_allocated): Don't
751         call _dbus_group_info_free_allocated which causes infinite loop,
752         correctly call _dbus_group_info_free
753
754 2006-02-20  Thiago Macieira <thiago.macieira@trolltech.com>
755
756         * qt/qdbusinterface_p.h:
757         * qt/qdbusinterface.cpp: Use the standard
758         org.freedesktop.DBus.Method.NoReply annotation for the "async"
759         calls instead of creating one for us.
760
761         * qt/qdbusconnection_p.h:
762         * qt/qdbusintegrator.cpp: Remove debugging code.
763
764         * qt/qdbusintegrator.cpp:
765         * qt/qdbusmessage.cpp:
766         * qt/qdbusmessage_p.h:
767         * qt/qdbusmessage.h: Change the behaviour of automatic
768         reply-sending: now a reply is always sent, unless the caller
769         didn't request one or if the user slot has already sent one.
770
771 2006-02-16  Robert McQueen  <robot101@debian.org>
772
773         * configure.in: Patch from Debian packages by Sjoerd Simons
774         <sjoerd@debian.org> to add --with-qt-moc and --with-qt3-moc
775         arguments so it's possible to build both bindings in the
776         same tree.
777
778         * qt/Makefile.am: Fix truncated value so that make dist works.
779
780 2006-02-16  Robert McQueen  <robot101@debian.org>
781
782         * acinclude.m4, configure.in: Patch from Brad Hards
783         <bradh@frogmouth.net> to avoid warnings from autoconf 1.9 by
784         improving quoting, re-ordering a few checks, and a few other
785         aesthetic tidy-ups.
786
787 2006-02-16  Robert McQueen  <robot101@debian.org>
788
789         * dbus/dbus-message.c (dbus_message_iter_get_fixed_array):
790         Patch from Rob Taylor <rob.taylor@collabora.co.uk> to correct a bogus
791         assertion that the next element to read from the iter is fixed in
792         size. This is not the case when you are at the end of the iter,
793         because the next element type is INVALID.
794
795         * dbus/dbus-string.c (_dbus_string_init_const_len): Correct a
796         a bogus assert which means that you may not initialise a 0-length
797         string unless you provide a non-NULL pointer. This prevented
798         you from marshalling messages containing zero-length arrays in
799         some cases.
800
801         * glib/dbus-gvalue.c (demarshal_collection_array): Another patch
802         from Rob to correct bogus asserts when trying to demarshal an
803         array and get_fixed_array got you 0 elements. Append nothing to
804         the GArray in this case.
805
806         * test/glib/test-dbus-glib.c: Add a test case for round-tripping
807         an empty array via the glib bindings. Without all of the above
808         patches, this new test fails.
809
810 2006-02-16  Robert McQueen  <robot101@debian.org>
811
812         * glib/dbus-gmain.c: Make the previous commit compile.
813
814         * python/_dbus.py, python/matchrules.py: Patch from Ole Andre
815         Ravnaas <ole.andre.ravnaas@collabora.co.uk> to allow you to
816         specify sender_keyword="foo", path_keyword="bar" when adding
817         a signal listener, so that you can bind to signals generically
818         but still do something useful in your callback.
819
820         * python/dbus_bindings.pyx: Demarshal the byte type as unsigned
821         chars so that they're not cast to chars and made negative. Thanks
822         to Jakub Stachowski for reporting this and testing the fix.
823
824 2006-02-15  John (J5) Palmieri  <johnp@redhat.com>
825
826         * dbus/dbus-glib.h:
827         * glib/dbus-gmain.h:
828         (dbus_g_connection_open): new method for openning
829         a connection to an arbitrary address in the glib bindings
830
831         * ChangeLog: checkin last entry which doesn't seem to be commited
832
833 2006-02-13  John (J5) Palmieri  <johnp@redhat.com>
834
835         * tools/dbus-launch.c: Fixed sh syntax output
836
837 2006-02-13  Robert McQueen  <robot101@debian.org>
838
839         * glib/dbus-binding-tool-glib.c, glib/dbus-gmain.c,
840         glib/dbus-gsignature.c, glib/dbus-gtype-specialized.c,
841         glib/dbus-gtype-specialized.h, glib/dbus-gvalue-utils.c,
842         glib/dbus-gvalue-utils.h, glib/dbus-gvalue.c:
843         Patch from Rob Taylor <rob.taylor@collabora.co.uk> to add a big
844         missing piece of the glib bindings jigsaw puzzle. This modifies
845         the existing specialised types to have N type parameters (rather
846         than the current 1 or 2 for arrays and dictionaries respectively).
847         You can then use this to get a glib type to represent any arbitrary
848         D-Bus struct type using dbus_g_type_get_struct. The only
849         implementation of these types is with GValueArrays as before,
850         but it's now possible to store these in arrays, emit them in
851         signals, etc.
852
853 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
854
855         * dbus/dbus-signature.c (dbus_signature_iter_recurse): Correctly
856         deal with nested arrays (Bug #5823) Patch by Thiago Macieira 
857         <thiago.macieira at trolltech.com>
858
859 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
860
861         * mono/doc/Makefile.am: Fix parallel make problem with mono-doc
862         (Bug #4213) Patch from Doug Goldstein <cardoe at gentoo.org>
863
864 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
865
866         * bus/connection.c (bus_connections_expect_reply): Make
867         pending reply limit not common to all connections (Bug #5416)
868         Patch from Kimmo Hämäläinen <kimmo.hamalainen at nokia.com>
869
870 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
871
872         * tools/dbus-launch.c: Fixed csh syntax output (Bug #5720)
873
874 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
875
876         * gcj/Makefile.am: point to correct jar command (Bug #4529)
877         patch from Doug Goldstein <cardoe at gentoo.org>
878
879 2006-02-09  Joe Shaw  <joeshaw@novell.com>
880
881         * mono/Arguments.cs: Fix a magic number in the mono bindings
882         that doesn't work on 64 bit arches.  Patch from Peter Johanson.
883
884 2006-01-27  Robert McQueen  <robot101@debian.org>
885
886         * glib/dbus-binding-tool-glib.[ch]: Patch based on Ricardo Kekki's
887         patch to use an annotation org.freedesktop.DBus.GLib.ClientCSymbol
888         when generating the client-side methods, instead of overloading
889         CSymbol which broke everything horribly. My apologies.
890
891 2006-01-27  Robert McQueen  <robot101@debian.org>
892
893         * glib/dbus-gtype-specialized.[ch], glib/dbus-gvalue-utils.c: Patch
894         by me and Rob Taylor to add a simple_free function to D-Bus map
895         and collection types, which allows those types which can be freed
896         with a GDestroyNotify (such as GHashTables and GArrays, but not
897         GPtrArrays) to be stored as the values in hashtables.
898
899         * test/glib/test-dbus-glib.c, test/glib/test-service-glib.{c,xml}:
900         Patch by Rob Taylor to add nested dicts to the glib tests to check
901         the above code works, and appears not to leak when called repeatedly.
902
903 2006-01-27  Robert McQueen  <robot101@debian.org>
904
905         * glib/dbus-gvalue.c (demarshal_valuearray): Patch from Rob Taylor
906         to free a D-Bus allocated string with dbus_free () instead of
907         g_free ().
908
909 2006-01-27  Iain Holmes  <iain@openedhand.com>
910
911         * glib/dbus-gproxy.c (dbus_g_proxy_dispose): Protect the dispose
912         method from being called multiple times.
913
914 2006-01-19  Robert McQueen  <robot101@debian.org>
915
916         * glib/dbus-binding-tool-glib.c: Patch from Rob Taylor
917         <rob.taylor@collabora.co.uk> to add support for generating bindings
918         to arrays that are represented as GPtrArrays rather than GArrays (ie
919         size-variable things, such as strings, objects, structs, etc).
920
921 2006-01-05  Robert McQueen  <robot101@debian.org>
922
923         * dbus/dbus-glib.h, glib/dbus-gproxy.c: Patch from Ricardo Kekki
924         <ricardo.kekki@movial.fi> to make it possible to inherit from
925         DBusGProxy, by splitting the DBusGProxy struct into a public part and
926         a private part, and moving the setting of the DBusGProxyManager into a
927         connection property, allowing proper GObject construction.
928
929 2006-01-05  Robert McQueen  <robot101@debian.org>
930
931         * glib/dbus-binding-tool-glib.c: Patch from Ricardo Kekki
932         <ricardo.kekki@movial.fi> to make dbus-binding-tool heed C symbol name
933         annotations when generating glib client bindings.
934
935 2005-12-19 John (J5) Palmieri  <johnp@redhat.com>
936
937         * dbus/dbus-shared.h: Call it shared constants instead of shared macros
938
939         * dbus/dbus-protocol.h: add DOxygen markup to quiet warnings
940
941 2005-12-19 John (J5) Palmieri  <johnp@redhat.com>
942
943         * dbus/dbus-shared.h: add DOxygen markup to quiet warnings
944
945 2005-12-19 John (J5) Palmieri  <johnp@redhat.com> 
946
947         * dbus/dbus-macros.h: correct DOxygen end of section (s/}@/@})
948
949 2005-12-19  Ross Burton  <ross@openedhand.com>
950
951         * doc/dbus-tutorial.xml:
952         Document the Glib client-side bindings, and list all possible annotations.
953
954 2005-12-19  John (J5) Palmieri  <johnp@redhat.com>
955
956         * dbus/bus.c (dbus_bus_release_name): Add documentation
957
958 2005-12-06  Robert McQueen  <robot101@debian.org>
959
960         * python/service.py: s/sucessful/successful/ so we're allocating to
961         and reading from the same variable. Oops.
962
963 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
964
965         * Released 0.60
966
967 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
968
969         * test/qt/Makefile.am: build from srcdir
970
971         * qt/qtconnection.cpp (requestName): Changed PROHIBIT_REPLACE to ALLOW_REPLACE
972         Note - this code is wrong and needs to be fixed by the Qt binding
973         developers.  The flags should be treated as bitfields and not enums.
974
975         * qt/qtconnection.h: Change ProhibitReplace to AllowReplace
976
977 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
978
979         * dbus/dbus-list.c (_dbus_list_insert_after_link, _dbus_list_insert_after, 
980           link_after): remove #ifdef DBUS_BUILD_TESTS since we use these methods 
981           in production code
982
983 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
984
985         * dbus/dbus-connection.c (dbus_connection_read_write): Add new
986         method for getting messages off the bus in the absence of a
987         mainloop.  This method is much like 
988         dbus_connection_read_write_dispatch except it does not dispatch
989         the messages to a registered filter function.  Instead it
990         allows a developer to process messages by directly popping
991         them off the bus.
992
993 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
994
995         * bus/desktop-file.c (parse_key_value): Ignore locales allowing 
996         the parser to continue instead of returning error
997         (bus_desktop_file_load): Do not free parser data when
998         parse_section_start or parse_key_value fails because it was 
999         already freed by parser_free (patch from Carlos Garcia Campos  
1000         <carlosgc at gnome.org>)
1001
1002 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
1003
1004         * dbus/dbus-auth.c, dbus/dbus-connection.c, dbus/dbus-keyring.c,
1005         dbus/dbus-server-debug-pipe.c, glib/dbus-binding-tool-glib.c
1006         glib/dbus-glib-tool.c, glib/dbus-gparser.c, glib/dbus-gproxy.c
1007         test/test-segfault.c, test/test-utils.c,
1008         test/glib/test-dbus-glib.c, tools/dbus-cleanup-sockets.c
1009         tools/dbus-launch.c, tools/dbus-tree-view.c, tools/dbus-viewer.c:
1010         Various cleanup of dead code and compiler warnings (patch from
1011         Kjartan Maraas <kmaraas at gnome.org>) 
1012
1013 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
1014
1015         * glib/dbus-gmain.c (connection_setup_add_watch): plugged a leak
1016         (patch from Carlos Garnacho Parro <carlosg at gnome.org>
1017
1018 2005-11-27  Robert McQueen  <robot101@debian.org>
1019
1020         * python/dbus_bindings.pyx: Repair my previous commit which reverted
1021         part of the preceding one. Oops. Merge patch by Johan Hedberg
1022         <johan.hedberg@nokia.com> to fix marshalling of 16-bit integer values
1023         on big-endian platforms.
1024
1025         * test/python/test-client.py: Add some 16-bit integers to the test
1026         values.
1027
1028 2005-11-27  Carlos Garcia Campos  <carlosgc@gnome.org>
1029
1030         * glib/dbus-gobject.c: Append a GValue instead of a basic type in
1031         method return message for property getters
1032
1033 2005-11-27  Robert McQueen  <robot101@debian.org>
1034
1035         * python/dbus_bindings.pyx: Fix a bug where doing a strict append
1036         with type v of an instance of dbus.Variant(foo, type='x') caused
1037         it to be boxed twice before sending over the bus.
1038
1039         * python/dbus_bindings.pyx, python/service.py,
1040         test/python/test-client.py: Update the constants for the new
1041         request_name flags, and update comments/test cases now that queueing
1042         is the default action.
1043
1044 2005-11-22  John (J5) Palmieri  <johnp@redhat.com>
1045
1046         * configure.in:
1047         - Change version to 0.60 for impending release
1048         - upped the sonames because of ABI and API breakage
1049
1050 2005-11-22  John (J5) Palmieri  <johnp@redhat.com>
1051
1052         * configure.in: Add test/name-test/Makefile to the generated
1053         Makefile list
1054
1055         * dbus/dbus-shared.h (#define DBUS_NAME_FLAG_ALLOW_REPLACEMENT):
1056         New flag which replaces DBUS_NAME_FLAG_PROHIBIT_REPLACEMENT
1057         (#define DBUS_NAME_FLAG_DO_NOT_QUEUE): New flag for specifying
1058         not to queue an ower if it can't be the primary owner
1059
1060         * bus/bus.h: Add new internal BusOwner struct
1061
1062         * bus/driver.c (bus_driver_handle_hello): Send flags (0 for default)
1063         to bus_registry_ensure and don't set the prohibit_replacement flag
1064         since they are now set per BusOwner and not per name.
1065         (bus_driver_handle_list_queued_owners): bus method (ListQueuedOwners) 
1066         that returns the list of connections in a name's connection queue
1067         
1068         * bus/services.c (struct BusService): remove prohibit_replacement field
1069         (struct BusOwner): new struct for keeping track of queued connections
1070         and their associated flags for the queue
1071         (struct BusRegistry): add a BusOwner memory pool
1072         (bus_registry_new): initialize the BusOwner memory pool
1073         (bus_registry_unref): free the BusOwner memory pool
1074         (_bus_service_find_owner_link): new internal method for
1075         searching the queue for a specific connection
1076         (bus_owner_set_flags): new method for adding setting the flags on a
1077         bus owner
1078         (bus_owner_new): new method that creates a BusOwner object from the
1079         pool and sets its flags
1080         (bus_owner_ref, bus_owner_unref): ref counting for BusOwner objects
1081         (bus_registry_ensure): Add the flags parameter
1082         (bus_registry_acquire_service): Switch from using raw connections to
1083         using the BusOwner struct
1084         Add new state machine for dealing with the new set of flags
1085         (bus_registry_set_service_context_table, struct OwnershipCancelData, 
1086         cancel_ownership, free_ownership_cancel_data, 
1087         add_cancel_ownership_to_transaction, struct OwnershipRestoreData, 
1088         restore_ownership, free_ownership_restore_data, 
1089         add_restore_ownership_to_transaction): Switch to using BusOwner 
1090         instead of raw connections
1091         (bus_service_add_owner): Add flags parameter
1092         Switch to using BusOwner instead of raw connections
1093         Add state machine for dealing with the new set of flags
1094         (bus_service_swap_owner): Swaps the first and second owners in the
1095         queue.  Used to make sure proper signals are sent when a service looses 
1096         or gains primary ownership.  We never insert an owner at the top of the
1097         queue.  Instead we insert it in the second position and then swap.
1098         (bus_service_remove_owner): Remove the owner from the queue sending
1099         out the NameLost and NameOwnerChanged signals if the we were the 
1100         primary owner
1101         (bus_service_get_primary_owners_connection): New method that extracts
1102         the connection from the primary owner
1103         (bus_service_get_primary_owner): Returns the BusOwner instead of the 
1104         connection
1105         (bus_service_get_allow_replacement): Changed from the old 
1106         bus_service_get_prohibit_replacement method.  Checks the flags of the 
1107         primary owner and returns if it can be replaced or not
1108         (bus_service_set_prohibit_replacement): removed
1109         (bus_service_has_owner): returns TRUE if and owner with
1110         the specified connection exists in the queue
1111         
1112         * dbus/dbus-bus.c (dbus_bus_connection_get_unique_name): New helper
1113         method that only compiles if tests are enabled.  Allows us to get the 
1114         unique name of a connection so we can check it against the queue when
1115         doing regression tests
1116
1117         * bus/activation.c (bus_activation_send_pending_auto_activate),
1118         bus/dispatch.c (bus_dispatch),  
1119         bus/driver.c (bus_driver_handle_get_service_owner, 
1120         bus_driver_handle_get_connection_unix_user, 
1121         bus_driver_handle_get_connection_unix_process_id,
1122         bus_driver_handle_get_connection_selinux_security_context),
1123         bus/signals.c (connection_is_primary_owner): 
1124         use bus_service_get_primary_owners_connection instead of
1125         bus_service_get_primary_owner
1126
1127         * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket, 
1128         _dbus_listen_unix_socket): Calculate the length of the socket
1129         path and use that instead of using a fixed length which was
1130         causing socket names to contain many trailing Nul bytes.
1131
1132         * dbus/dbus-glib-lowlevel.h, glib/dbus-gobject.c
1133         (dbus_g_method_get_sender): New method for extracting the sender 
1134         from a DBusGMethodInvocation
1135         (dbus_g_method_return_get_reply): changed name to 
1136         dbus_g_method_get_reply
1137         (dbus_g_method_return_send_reply): changed name to
1138         dbus_g_method_send reply
1139
1140         * doc/dbus-specification.xml: New docs that describe how the new
1141         queueing system works and talks about the changes to the how
1142         we specify socket names
1143
1144         * glib/examples/example-service.c, 
1145         glib/examples/example-signal-emitter.c,
1146         glib/examples/statemachine/statemachine-server.c:
1147         Changed the RequestName flags to the new system
1148
1149         * test/name-test/ (test-names.c, run-test.sh, Makefile.am): New
1150         regression test suite for testing various states of the new
1151         queueing system
1152         
1153 2005-11-15  Robert McQueen  <robot101@debian.org>
1154
1155         * dbus/dbus-glib-lowlevel.h, glib/dbus-gobject.c: Patch from Rob
1156         Taylor to add two methods, dbus_g_method_return_get_reply and
1157         dbus_g_method_return_send_reply, to allow you to get the reply
1158         message from a DBusGMethodInvocation, append arbitrary stuff to it,
1159         and send it. The GLib bindings can't marshal a return value of
1160         something like a(s) if the array is empty - ultimately they should be
1161         made to heed the signature of the out arguments as the Python bindings
1162         now can, but this is a workable interim solution which might have
1163         other applications.
1164
1165 2005-11-15  Robert McQueen  <robot101@debian.org>
1166
1167         * bus/driver.c, bus/services.c, bus/services.h: Add a ReleaseName
1168         method to org.freedesktop.DBus to release a bus name or give up
1169         waiting in the queue for it.
1170
1171         * dbus/dbus-bus.c, dbus/dbus-bus.h, dbus/dbus-shared.h: Add a
1172         dbus_bus_release_name method to send the ReleaseName method calls.
1173         Add constants for the return values to dbus/dbus-shared.h.
1174
1175         * doc/dbus-specification.xml: Document the new ReleaseName method
1176         in the specification.
1177
1178         * python/dbus_bindings.pyx: Add a low-level python binding for the
1179         release name method.
1180
1181         * python/exceptions.py, python/service.py: Make freeing BusName
1182         objects release the name. Add a NameExistsException, and fix a
1183         bug with creating UnknownMethodException.
1184
1185         * test/python/test-client.py: Add tests for freeing BusName
1186         objects causing names to be released.
1187
1188 2005-11-14  Robert McQueen  <robot101@debian.org>
1189
1190         * python/service.py: Include the traceback in the error reply when we
1191         send an exception over the bus. _BEST_ _PATCH_ _EVER_
1192
1193 2005-11-14  David Zeuthen  <davidz@redhat.com>
1194
1195         Patch from Timo Hoenig <thoenig@suse.de>.
1196
1197         * bus/bus.c: I've recently investigated why the automatic reload
1198         of configuration files does not work as expected.
1199
1200         Currently, reloading configuration files does only work when
1201         running dbus-daemon with --nodaemon.  If we are running as daemon
1202         we're hitting a dnotify bug once we fork the process.
1203
1204         We're initializing the dnotify fds before calling fork().  Once
1205         the child process forked it does still have the fds (and they
1206         still show up in /proc/`pidof dbus-daemon`/fd/) but we're not
1207         getting SIGIO as changes are made to the configuration files.
1208
1209         The attached patch moves the initialization of the dnotify fds to
1210         process_config_postinit().  This is safe for all current code
1211         paths and solves the dnotify disfunction.  If we're running
1212         dbus-daemon as daemon the fds for dnotify are now being
1213         initialized after fork() for the child process.
1214
1215         * configure.in: The current configure.in check for dnotify probes
1216         'x$target_os' for being 'xlinux-gnu'.  I've changed the check to
1217         match for 'xlinux', too. Additionally I have adapted the configure
1218         option's style to match with the others.
1219
1220 2005-11-14  Robert McQueen  <robot101@debian.org>
1221
1222         * python/decorators.py, python/service.py: Add a new argument to the
1223         dbus.service.method decorator called sender_keyword, which if set,
1224         specifies the name of an argument which will be provided the bus
1225         name of the method caller.
1226
1227         * test/python/test-client.py, test/python/test-service.py: Add a
1228         method and test to check the sender_keyword functionality.
1229
1230 2005-11-07  John (J5) Palmieri  <johnp@redhat.com>
1231
1232         * bus/driver.c (bus_driver_handle_reload_config): Make sure we send an 
1233         empty reply so blocking calls don't block forever (Patch from Sjoerd 
1234         Simons <sjoerd at luon.net>)
1235
1236         * AUTHORS: Add Robert McQueen for his work on the Python
1237         Bindings and other parts of D-Bus
1238
1239 2005-11-07  Robert McQueen  <robot101@debian.org>
1240
1241         * python/decorators.py: Change emit_signal function to use the
1242         signature annotation of the signal when marhsalling the arguments from
1243         the service. Fix a bug where the code checking signature length
1244         against argument length referenced the wrong variable.
1245
1246         * python/introspect_parser.py: Avoid adding the type signature of
1247         signal arguments to any methods which occur after them in the
1248         introspection data (!) by making the parser a little more careful
1249         about its current state.
1250
1251         * python/service.py: Remove debug prints from last commit (again :D).
1252
1253         * test/python/test-client.py, test/python/test-service.py: Add test
1254         signals with signature decorators to test the strict marshalling code
1255         gives errors at the right time. Could do with checking the signals
1256         actually get emitted too, given that the test does nothing with
1257         signals at the moment...
1258
1259 2005-11-07  Robert McQueen  <robot101@debian.org>
1260
1261         * python/_dbus.py: Add WeakReferenceDictionary cache of dbus.Bus
1262         instances to stop madness of creating new instances representing
1263         the same bus connection all the time, rendering any tracking of
1264         match rules and bus names quite meaningless. Caught a bug where
1265         the private argument to SessionBus() and friends was being passed
1266         in as use_default_mainloop by mistake. Still some problems with
1267         multiple dbus_binding.Connection instances representing the same
1268         low-level connection (eg when you use both SessionBus() and
1269         StarterBus() in same process), but it's a lot better now than it
1270         was.
1271
1272         * python/dbus_bindings.pyx: Add constants with the return values
1273         for bus_request_name().
1274
1275         * python/service.py: Store bus name instances in a per-dbus.Bus cache
1276         and retrieve the same instances for the same name, so deletion can be
1277         done with refcounting. Also now throws some kind of error if you
1278         don't actually get the name you requested, unlike previously...
1279
1280         * test/python/test-client.py: Add tests for instance caching of buses
1281         and bus name objects.
1282
1283 2005-11-04  Robert McQueen  <robot101@debian.org>
1284
1285         * python/dbus_bindings.pyx, test/python/test-client.py: Fix
1286         marshalling of boolean values. Add some booleans to the values in
1287         the test client.
1288
1289         * python/decorators.py, python/service.py: Add an 'async_callbacks'
1290         argument to the dbus.service.method decorator, which allows you to
1291         name arguments to take two callback functions for replying with
1292         return values or an exception.
1293
1294         * test/python/test-client.py, test/python/test-service.py: Add test
1295         case using asynchronous method reply functions, both return values and
1296         errors, and from within both the function itself and from a mainloop
1297         callback.
1298
1299         * python/decorators.py, python/service.py: Perform checking that the
1300         number of method/signal arguments matches the number of types in the
1301         signature at class loading time, not when you first introspect the
1302         class.
1303
1304         * python/service.py: Remove debug print left by the last commit.
1305
1306 2005-11-03  Robert McQueen  <robot101@debian.org>
1307
1308         * python/service.py: Heavy refactoring of method invocation, with
1309         hopefully no effect on functionality. Nuked _dispatch_dbus_method_call
1310         in favour of a new _message_cb that uses seperate functions for
1311         looking up the method to call, marshalling the return values, and
1312         sending exceptions as errors, and is easier to follow as a
1313         consequence.  Fixes some corner cases about returning things that
1314         don't match your declared out_signature, allows exceptions to define
1315         _dbus_error_name and have it be sent over the bus as the error name,
1316         and paves the way for cool stuff like heeding the message no reply
1317         flag, asynchronous method implementations, informing the method of the
1318         sender, and including backtraces in the error messages.
1319
1320         * test/python/test-client.py: Catch and print exceptions thrown in the
1321         async callback tests, rather than passing them to the low-level
1322         bindings to be ignored in a noisy and frustrating manner.
1323
1324 2005-11-03  Robert McQueen  <robot101@debian.org>
1325
1326         * python/_dbus.py, python/proxies.py, python/service.py: Add __repr__
1327         functions to dbus.Bus, dbus.service.BusName and dbus.service.Object,
1328         tweak others to be consistent.
1329
1330         * test/python/test-client.py: Tweak output of testInheritance.
1331
1332 2005-10-29  Robert McQueen  <robot101@debian.org>
1333
1334         * python/service.py: Major changes to allow multiple inheritance
1335         from classes that define D-Bus interfaces:
1336         
1337          1. Create a new Interface class which is the parent class of
1338             Object, and make the ObjectType metaclass into InterfaceType.
1339         
1340          2. Patch written with Rob Taylor to replace use of method_vtable
1341             with code that walks the class's __MRO__ (method resolution order)
1342             to behave like Python does when invoking methods and allow
1343             overriding as you'd expect. Code is quite tricky because
1344             we have to find two methods, the one to invoke which has the
1345             right name and isn't decorated with the /wrong/ interface,
1346             and the one to pick up the signatures from which is decorated
1347             with the right interface.
1348         
1349             The same caveats apply as to normal multiple inheritance -
1350             this has undefined behaviour if you try and inherit from two
1351             classes that define a method with the same name but are
1352             decorated with different interfaces. You should decorate
1353             your overriding method with the interface you want.
1354         
1355          3. Replace grungy introspection XML generation code in the metaclass
1356             with dictionaries that cope correctly with multiple inheritance
1357             and the overriding of methods. This also uses the signature
1358             decorations to provide correct introspection data, including
1359             the debut appearance of the types of your return values. :D
1360
1361         * test/python/test-client.py, test/python/test-service.py: Add a test
1362         case to try invoking an method that overrides one inherited from a
1363         D-Bus interface class.
1364
1365 2005-10-29  Robert McQueen  <robot101@debian.org>
1366
1367         * python/dbus_bindings.pyx: Tweak 'raise AssertionError' to assert().
1368         Add checking for the end of struct character when marshalling a
1369         struct in MessageIter.append_strict.
1370
1371         * python/examples/example-service.py,
1372         python/examples/gconf-proxy-service.py,
1373         python/examples/gconf-proxy-service2.py: Update to use gobject
1374         mainloop directly rather than appearing to depend on gtk.
1375
1376         * python/test/test-client.py, python/test/test-server.py: Remove
1377         obsolete and broken test scripts for old bindings. We have up to date
1378         and working tests in test/python/.
1379
1380 2005-10-29  Robert McQueen  <robot101@debian.org>
1381
1382         * python/decorators.py: Add optional arguments to the method and
1383         signal decorators to allow you to specify the signature of arguments
1384         and return values. Preserve the doc strings of signal functions in the
1385         decorated version, for pydoc and friends.
1386
1387         * python/dbus_bindings.pyx, python/proxies.py: Replace the
1388         parse_signature_block function with an iterable dbus.Signature()
1389         type. Fix a bug in MessageIter.append_strict where you could append
1390         anything by claiming it was a string.
1391
1392         * python/service.py: Use the out_signature decoration on methods to
1393         marshal return values, meaning you no longer require dbus.Array()
1394         or dbus.Dictionary() to indicate the type when returning empty
1395         arrays or dictionaries. Fix a bug where exceptions which are defined
1396         in __main__ are not turned into error replies.
1397
1398         * test/python/test-client.py, test/python/test-service.py: Add test
1399         for correct marshalling of return values according to out_signature.
1400         Fix a bug in the async call test where the error_handler is missing a
1401         self argument.
1402
1403 2005-10-29  Robert McQueen  <robot101@debian.org>
1404
1405         * glib/Makefile.am, glib/examples/Makefile.am,
1406         glib/examples/statemachine/Makefile.am: Merge patch from Ubuntu by
1407         Daniel Stone to replace explicit calls to libtool with $(LIBTOOL).
1408
1409         * test/python/.cvsignore: Add run-with-tmp-session-bus.conf.
1410
1411         * tools/dbus-monitor.1, tools/dbus-monitor.c: Merge dbus-monitor patch
1412         from Ubuntu by Daniel Silverstone to allow specifying match rules on
1413         the command line.
1414
1415 2005-10-27  Ross Burton  <ross@openedhand.com>
1416
1417         * dbus/dbus-marshal-header.c:
1418         Remove dead code.
1419
1420         * glib/dbus-gobject.c:
1421         Stop compiler warning.
1422
1423 2005-10-25  Ross Burton  <ross@openedhand.com>
1424
1425         * dbus/dbus-auth.c:
1426         * dbus/dbus-server-unix.c:
1427         * dbus/dbus-transport-unix.c:
1428         * glib/dbus-gmain.c:
1429         * glib/dbus-gobject.c:
1430         Add some const keywords.
1431
1432 2005-10-25  Ross Burton  <ross@openedhand.com>
1433
1434         * doc/dbus-specification.xml:
1435         Document the NoReply annotation.
1436
1437         * glib/dbus-binding-tool-glib.h:
1438         * glib/dbus-binding-tool-glib.c:
1439         Respect the NoReply annotation.
1440
1441 2005-10-24  Robert McQueen <robot101@debian.org>
1442
1443         * python/dbus_bindings.pyx (String, MessageIter): make D-Bus strings
1444         derive from unicode instead of str, and encode/decode UTF-8 when
1445         marshalling/unmarshalling bus messages
1446
1447         * python/introspect_parser.py: encode introspection data as UTF-8
1448         before passing the buffer into libxml2
1449
1450         * test/python/test-client.py: add unicode test strings
1451
1452         * test/data/valid-service-files/.cvsignore, test/python/.cvsignore:
1453         ignore generated python test files
1454
1455 2005-10-17  John (J5) Palmieri  <johnp@redhat.com>
1456
1457         * glib/dbus-gvalue-utils.c (hash_free_from_gtype): handle gdouble
1458         and G_TYPE_VALUE_ARRAY (DBUS_TYPE_STRUCT)
1459         (gvalue_from_hash_value, hash_value_from_gvalue): handle gdouble
1460
1461         * glib/dbus-gvalue.c (dbus_gvalue_to_signature): add missing
1462         DBUS_STRUCT_BEGIN_CHAR and DBUS_STRUCT_END_CHAR charaters
1463         when constructing struct signatures
1464
1465         * python/_dbus.py (Bus): handle private connections using the
1466         private keyword in the constructor. defaults to private=False
1467         (Bus::close): new method to close a connection to the bus
1468
1469         * python/dbus_bindings.pyx (Connection::close): renamed method
1470         was previously called disconnect
1471         (bus_get): now supports getting a private connection
1472
1473         * python/proxies.py (ProxyMethod::__call__): check if ignore_reply
1474         keyword is set to True.  if it is, execute the method without waiting
1475         for a reply
1476         (ProxyObject::_introspect_execute_queue): new method for executing
1477         all the pending methods that were waiting for the introspect to
1478         finish.  this is called when introspect either succeeds or fails
1479         (ProxyObject::_introspect_error_handler): call queued methods
1480
1481 2005-10-14  John (J5) Palmieri  <johnp@redhat.com>
1482
1483         * python/dbus_bindings.pyx (MessageIter::append_strict): check for
1484         STRUCT_BEGIN not TYPE_STRUCT in indicate we are marshalling a struct
1485
1486         * python/service.py (Object::_message_cb): handle exceptions correctly
1487         by sending them over the wire to the calling app.  This makes sure
1488         the client returns immediately instead of waiting the 15 seconds to
1489         timeout.
1490
1491         * test/python/test-client.py (TestDBusBindings::testBenchmarkIntrospect): 
1492         Add a test to benchmark how long it takes to introspect a service and 
1493         call a method which returns a large element (pretty fast)
1494
1495         * test/python/test-service.py (TestObject::GetComplexArray): new test 
1496         method which pushes a lot of data
1497
1498 2005-10-13  John (J5) Palmieri  <johnp@redhat.com>
1499
1500         * python/service.py(ObjectType::_reflect_on_signal, _reflect_on_method):        
1501         reclaim memory outside of the loop and use del istead of just setting
1502         the key to None
1503
1504 2005-10-13  John (J5) Palmieri  <johnp@redhat.com>
1505
1506         * python/service.py (ObjectType::_reflect_on_signal): Always close
1507         signal tag even when there are no arguments
1508
1509 2005-10-13  John (J5) Palmieri  <johnp@redhat.com>
1510
1511         * configure.in: Set mono, mono-docs and Qt3 to default
1512         to no instead of auto when building.  These bindings do not
1513         have full time maintainers and will not be supported for the
1514         1.0 release.
1515
1516 2005-10-12  John (J5) Palmieri  <johnp@redhat.com>
1517
1518         patches from Michael Krivoruchko <misha at sun.com>: 
1519         
1520         * dbus/dbus-connection.c (_dbus_connection_queue_received_message_link,
1521         _dbus_connection_message_sent, 
1522         _dbus_connection_send_preallocated_unlocked_no_update, 
1523         _dbus_connection_pop_message_link_unlocked): handle the case when path 
1524         is NULL when calling _dbus_verbose
1525
1526         * configure.in: check for functions getpeerucred and getpeereid
1527
1528         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): provides 
1529         support of auth EXTERNAL on Solaris 10+ (getpeerucred), FreeBSD 4.6+, 
1530         OpenBSD 3.0+ and FreeBSD 5.0+ as well as MacOSX 10.2+ (getpeereid). 
1531         Patch was only tested on Solaris 10 x86 so it might be issues
1532         with other platforms (i.e. BSDs and MacOSX)
1533         
1534
1535 2005-10-05  John (J5) Palmieri  <johnp@redhat.com>
1536
1537         * glib/dbus-gvalue.c (marshal_variant): call _dbus_gvalue_marshal 
1538         instead of marshal basic so we can handle recursive types in a variant
1539
1540         * test/glib/test-dbus-glib.c: Add test for marshaling recurive types
1541         in variants
1542
1543         * test/glib/test-service-glib.c, test-service-glib.xml
1544         (my_object_echo_variant [EchoVariant], 
1545         my_object_process_variant_of_array_of_ints123
1546         [ProcessVariantOfArrayOfInts123]): 
1547         Add two test methods
1548
1549         * python/introspect_parser.py: New module for parsing introspect
1550         data.
1551
1552         * python/dbus_bindings.pyx:
1553         (various places): when throwing errors fix to use errormsg instead 
1554         of message local variable because Pyrex can get confused with other 
1555         message variables (initial patch by Robert McQueen 
1556         <robert.mcqueen at collabora.co.uk>)
1557         (MessageIter::parse_signature_block): new method for getting the next
1558         block in a signiture.
1559         (MessageIter::append_strict): new method for appending values strictly
1560         using the passed in signature instead of guessing at the type
1561         (MessageItter:: append_dict, append_struct, append_array): use 
1562         signatures to marshal children if the signature is available
1563         
1564         * python/exceptions.py (IntrospectionParserException): new exception
1565
1566         * python/proxies.py (ProxyMethod::__call__): Marshal args with 
1567         introspected signatures if available, else we fall back to the
1568         old way of doing things.
1569         (ProxyObject::_introspect_reply_handler ): parse introspection data
1570         
1571         * python/service.py (ObjectType::_reflect_on_method): Properly
1572         terminate <method> if there are no args in the reflection data
1573
1574         * test/python/test-client.py: add tests for talking with the GLib
1575         test server.  This gives us better coverage for introspection since
1576         python to python will always generate arguments as variants.  It also
1577         allows us to test the robustness of the GLib bindings and interlanguage
1578         communications.
1579
1580         
1581 2005-10-03  John (J5) Palmieri  <johnp@redhat.com>
1582
1583         * bus/driver.c (bus_driver_handle_introspect): Add signals
1584         to the introspect data. (patch from Daniel P. Berrange 
1585         <dan at berrange.com>)
1586
1587         * bus/dispatch.c (check_existent_ping): Add testcase for Ping
1588         
1589         * dbus/dbus-connection.c (_dbus_connection_peer_filter,
1590         _dbus_connection_run_builtin_filters): Changed these to
1591         be unlock_no_update functions and call 
1592         _dbus_connection_send_unlocked_no_update instead of
1593         dbus_connection_send to avoid locking errors.
1594         
1595         * doc/TODO: Removed the make Ping test TODO
1596         
1597 2005-09-26  John (J5) Palmieri  <johnp@redhat.com>
1598
1599         * dbus/Python.pyx: Fixed memory leaks when throwing errors.
1600         We now copy the message from a DBusError and then free 
1601         the error object befor throwing the error
1602
1603         * glib/dbus-glib-tool.c: removed extra comma at the end of the
1604         DBusBindingOutputMode enum which was causing a warning.
1605         #include <time.h> so using time_t is explicitly defined
1606
1607 2005-09-26  John (J5) Palmieri  <johnp@redhat.com>
1608
1609         * Integrate patches from Lennart Poettering <mzsqb at 0pointer.de>:
1610         - dbus/dbus-bus.c
1611         (internal_bus_get): new method that take over the heavy lifting
1612         of dbus_bus_get and adds the ability to get a private connection
1613         to the bus
1614         (dbus_bus_get): wrapper to internal_bus_get that provides the same
1615         interface as in previous versions
1616         (dbus_bus_get_private): new method that is a wrapper to 
1617         internal_bus_get to get a private connection to the bus
1618
1619         - dbus/dbus-bus.h
1620         (dbus_bus_get_private): add as a public libdbus interface
1621
1622         - dbus-1.pc.in: output system_bus_default_address and 
1623         sysconfdir variables so apps can use them when compiling
1624
1625 2005-09-23  Harald Fernengel  <harry@kdevelop.org>
1626         * dbus/qt: New Qt bindings
1627
1628 2005-09-12  Waldo Bastian  <bastian@kde.org>
1629
1630         * dbus/dbus-marshal-validate.c,
1631         doc/dbus-specification.xml, test/Makefile.am,
1632         test/test-names.c: allow hyphens in bus names.
1633
1634 2005-09-11  Mark McLoughlin  <mark@skynet.ie>
1635
1636         * test/data/auth/fallback.auth-script: we don't
1637         retry the EXTERNAL method when we know its going
1638         to fail anymore.
1639
1640 2005-09-11  Mark McLoughlin  <mark@skynet.ie>
1641
1642         * dbus/dbus-connection-internal.h: rename
1643         (add|remove|toggle)_(watch|timeout) to unlocked()
1644         
1645         * dbus/dbus-connection.c: ditto.
1646         
1647         * dbus/dbus-timeout.c, dbus/dbus-transport-unix.c:
1648         Update some callers for the renaming.
1649
1650 2005-09-10  Mark McLoughlin  <mark@skynet.ie>
1651
1652         * dbus/dbus-auth.c: (record_mechanisms): don't
1653         retry the first auth mechanism because we know
1654         we're just going to get rejected again.
1655         
1656         * dbus/dbus-keyring.c: (_dbus_keyring_reload):
1657         Fix thinko ... and what a nasty little bugger to
1658         track down you were ...
1659
1660         * dbus/dbus-connection.c:
1661         (_dbus_connection_add_watch),
1662         (_dbus_connection_remove_watch): add note about
1663         these needing the connection to be locked.
1664         (_dbus_connection_get_dispatch_status_unlocked):
1665         set status to DATA_REMAINS when we queue the
1666         disconnected message.
1667         
1668         * bus/dispatch.c:
1669         (bus_dispatch): fix warning.
1670         (check_existent_service_no_auto_start):
1671         Expect ChildSignaled error too.
1672         (check_existent_hello_from_self): fix another
1673         couple of warnings.
1674         
1675 2005-09-08  Joe Shaw  <joeshaw@novell.com>
1676
1677         Patches from James Willcox <snorp@snorp.net>
1678
1679         * mono/Makefile.am: Add Int16.cs and UInt16.cs
1680
1681         * mono/DBusType/Array.cs: Handle multidimensional arrays, and
1682         support array "out" parameters.
1683
1684         * mono/DBusType/Int16.cs, mono/DBusType/UInt16.cs: New files,
1685         for 16-bit int support.
1686
1687 2005-09-06  John (J5) Palmieri  <johnp@redhat.com>
1688
1689         * Released 0.50
1690
1691         * Patch from Steve Grubb:
1692         - bus/activation.c (bus_activation_service_reload_test): clean up
1693         some indentation
1694         - dbus/dbus-keyring.c (_dbus_keyring_reload): fix conditional 
1695         - dbus/dbus-message-factory.c (generate_special): fix a couple of
1696         buffer overflows in the test suite.  This is non critical because
1697         it can not be exploited and this code is only run when doing a 
1698         make check.
1699
1700         * Patch from Yaakov Selkowitz: Build fixes for Cygwin
1701         - configure.in: Don't check and link against kdecore, only qt headers
1702         - dbus/Makefile.am: Add -no-undefined to libdbus_1_la_LDFLAGS
1703         - gcj/org/freedesktop/dbus/Makefile.am:
1704         add libdbus_gcj_1_la_LDFLAGS = -no-undefined
1705         - glib/Makefile.am: Add -no-undefined to libdbus_glib_1_la_LDFLAGS
1706         and $(DBUS_GLIB_LIBS) to dbus_binding_tool_LDADD
1707         - qt/Makefile.am: Add -no-undefined to libdbus_qt_1_la_LDFLAGS
1708         - tools/Makefile.am: Add platform extentions to binaries 
1709         (i.e. .exe on windows)
1710
1711         * configure.in: 
1712         - Make it so if no suitable version of python is found we only 
1713         disable building python instead of exiting the configure script
1714         - Require version 2.4 of glib for glib bindings
1715         - Up version to 0.50
1716
1717         * python/__init__.py: Sync version with libdbus to (0,50,0)
1718         
1719 2005-09-05  Olivier Andrieu  <oliv__a@users.sourceforge.net>
1720
1721         * dbus/dbus-object-tree.c (find_subtree_recurse):
1722         a couple of optimizations (bug #710):
1723         - do a binary search in the tree
1724         - insert a new child at the right place directly, no need for
1725           qsort anymore
1726         - do the "double alloc" thing when allocating children
1727
1728 2005-08-31  John (J5) Palmieri  <johnp@redhat.com>
1729
1730         * python/Makefile.am: Break on pyrexc errors instead of ignoring them
1731
1732         * python/dbus_bindings.pyx: Memory management foo
1733         (global): remove hacky _user_data_references global list
1734         (GIL_safe_cunregister_function_handler): userdata now stuffed into
1735         tuples. Unref user_data
1736         (GIL_safe_cmessage_function_handler): userdata now stuffed into tuples
1737         (Connection::__del__): Remove and replace with __dealloc__ method
1738         (Connection::add_filter): Stuff user_data into a tuple.  Use Py_INCREF
1739         to keep tuple from being deallocated instead of the global var hack
1740         (Connection::register_object_path): Stuff user_data into a tuple.
1741         Use Py_INCREF to keep tuple from being deallocated instead of the 
1742         global var hack
1743         (Connection::register_fallback): Stuff user_data into a tuple.
1744         Use Py_INCREF to keep tuple from being deallocated instead of the 
1745         global var hack
1746         (GIL_safe_pending_call_notification): Don't unref the message
1747         because it gets unreffed when going out of scope.  Py_XDECREF
1748         the user_data
1749         (PendingCall::__del__): Remove and replace with __dealloc__ method
1750         (PendingCall::set_notify): ref the pending call because we will
1751         need it to stick around for when the notify callback gets called
1752         (Message::__del__): Remove and replace with __dealloc__ method
1753
1754         * python/dbus_glib_bindings.pyx (init_gthreads): Changed to 
1755         gthreads_init to match up with the dbus call
1756
1757         * python/glib.py (init_threads): Changed to threads_init to match
1758         up with gobject.threads_init().  init_threads is kept for backwards
1759         compat but will most likely be deprecated in the future
1760
1761         * test/python/test-client.py: 
1762         - revamp to use Python's unittest functionality
1763         - add async call tests
1764         - setup threads in glib and dbus so we make sure locks are working
1765         
1766 2005-08-30  John (J5) Palmieri  <johnp@redhat.com>
1767
1768         * python/dbus_bindings.pyx 
1769         (_pending_call_notification, cunregister_function_handler, 
1770         cmessage_function_handler): All callback functions have been rearranged 
1771         to workaround a bug in Pyrex when working with the GIL which is Python's 
1772         global lock when dealing with threads.  They have been split into
1773         a wrapper function (which assumes the name of the old function) and
1774         a _GIL_safe_<function name> function which contains the functionality
1775         of the old function.  This ensures that Pyrex does not write code
1776         the lock is released.
1777         
1778
1779 2005-08-30  John (J5) Palmieri  <johnp@redhat.com>
1780
1781         * python/dbus_bindings.pyx (_pending_call_notification): Obtain the
1782         GIL global lock when calling back into Python
1783
1784 2005-08-29  John (J5) Palmieri  <johnp@redhat.com>
1785
1786         * Release 0.36.2
1787
1788         * Add Havoc's patch that never got applied to HEAD (Bug #2436):
1789
1790         * bus/policy.c (bus_policy_allow_user): change default "user is
1791         allowed" to be "user has same uid as the bus itself"; any
1792         allow/deny rules will override.
1793
1794         * bus/session.conf.in: don't allow all users, since now by default
1795         the user that ran the bus can connect.
1796
1797 2005-08-26  Colin Walters  <walters@verbum.org>
1798
1799         * tools/dbus-print-message.c (print_message): Flush stdout
1800         after printing a message, so that redirecting to a file, then
1801         hitting Ctrl-C works.
1802
1803 2005-08-25  John (J5) Palmieri  <johnp@redhat.com>
1804
1805         * python/dbus_bindings.pyx: Tracked down a major memleak and fixed it
1806         (EmptyMessage): new class that subclasses Message.  This is a workaround
1807         to a Pyrex bug that fails to call __del__ when the Message object goes out
1808         of scope.  For some reason subclassing Message fixes this bug
1809         (Bus::send_with_reply_and_block): use EmptyMessage instead of Message
1810         - s/Message(_create=0)/EmptyMessage everywhere else
1811         
1812         * test/python/test-{server|client}.py: add the python/.libs directory
1813         to the lookup path so dbus_bindings and dbus_glib_bindings don't
1814         get picked up from the system
1815
1816 2005-08-25  Colin Walters  <walters@verbum.org>
1817
1818         * glib/dbus-gproxy.c (dbus_g_proxy_call): Doc update, thanks
1819         to Ryan Lortie for the suggestion.
1820
1821 2005-08-24  John (J5) Palmieri  <johnp@redhat.com>
1822
1823         * test/python: Add python regression test
1824
1825         * configure.in: Add test/python/Makefile
1826
1827         * test/Makefile.am: Add the python directory to SUBDIRS
1828
1829 2005-08-24  John (J5) Palmieri  <johnp@redhat.com>
1830
1831         * Release 0.36.1
1832
1833         * python/_dbus.py: 
1834         (Interface::connect_to_signal): propigate keywords for match on args
1835         (Bus::add_signal_receiver): Fix typo s/dbus_inteface/dbus_interface
1836
1837         * python/proxies.py (ProxyObject::connect_to_signal):
1838         propigate keywords for match on args
1839
1840         * Makefile.am: point everything to pyexecdir since python borks
1841         on multilib
1842
1843 2005-08-23  John (J5) Palmieri  <johnp@redhat.com>
1844
1845         * Release 0.36
1846
1847 2005-08-23  Colin Walters  <walters@verbum.org>
1848
1849         * test/glib/Makefile.am: Don't multiply-define EXTRA_DIST.
1850
1851 2005-08-23  John (J5) Palmieri  <johnp@redhat.com>
1852
1853         * python/dbus_glib_bindings.pyx: reorder imports and c definitions
1854         to fix some wranings. We now use dbus_bindings.DBusConnection instead
1855         of defining DBusConnection ourselves.
1856
1857 2005-08-18  John (J5) Palmieri  <johnp@redhat.com>
1858
1859         * python/dbus.pth: New path file to fix up problems when installing
1860         c libraries to lib64 and python files to lib.
1861
1862         * python/Makefile.am: install dbus.pth in the correct spot
1863
1864 2005-08-17  John (J5) Palmieri  <johnp@redhat.com>
1865         * ChangeLog: clean up my last entry a bit
1866
1867         * doc/introspect.xsl: New stylesheet for converting introspection data
1868         into browser renderable xhtml. Contributed by Lennart Poettering.
1869
1870         * doc/introspect.dtd: Fixups in the introspect format from Lennart
1871         Poettering.
1872
1873         * doc/dbus-tutorial.xml: 
1874         - Add Colin Walter to the Authors section for authoring the GLib
1875         section
1876         - Add descriptions of the new signature and type functionality
1877         in the Python complex type mapping section
1878         - Add a sidenote on the new args matching functionality in 
1879         the Python bindings
1880         - Fixed up some of the examples to use the gobject.MainLoop
1881         instead of gtk.main
1882         
1883         * python/_dbus.py:
1884         (Bus::_create_args_dict): New. Converts a hash of arg matches
1885         to a more useable format
1886         (Bus::add_signal_receiver): add a **keywords parameter for catching
1887         arg match parameters
1888         (Bus::remove_signal_receiver): add a **keywords parameter for catching
1889         arg match parameters
1890         
1891         * python/matchrules.py:
1892         (MatchTree::exec_matches): Check for arg matches
1893         (SignalMatchRule::add_args_match): New method
1894         (SignalMatchRule::execute): Added args_list parameter as an optimization
1895         so we don't have to marshal the args more than once
1896         (SignalMatchRule::match_args_from_list): New method that checks to see
1897         if the rule's arg matches match an argument list.  Only arguments
1898         set in the rule are checked.
1899         (SignalMatchRule::match_args_from_rule): New method that checks to see
1900         if the rule's arg matches match another rule's.  All args have to match
1901         in order for this method to return true.  If either rule has more args
1902         then it is not a match.
1903         (SignalMatchRule::is_match): Add args match
1904         (SignalMatchRule::repr): Add args to the final output if they exist
1905
1906 2005-08-17  Ross Burton  <ross@burtonini.com>
1907
1908         * glib/dbus-gproxy.c:
1909         (dbus_g_proxy_call_no_reply): unref the message once sent.
1910         (dbus_g_proxy_call): protect against NULL proxy.
1911
1912 2005-08-16  John (J5) Palmieri  <johnp@redhat.com>
1913
1914         * python/__init__.py: Version updated (0, 43, 0)
1915         
1916         * python/dbus_bindings.pyx: 
1917         - Fixed type objects to have self passed into __init__
1918         - Added the Variant type
1919         - Add the ability to specify types or signatures for Array, Variant 
1920         and Dictionary
1921         (Connection::send_with_reply_handlers): return a PendingCall object
1922         (_pending_call_notification): handle the case when an error is returned 
1923         without an error message in the body
1924         (MessageIter::get_boolean): return True or False instead of an integer
1925         (MessageIter::python_value_to_dbus_sig): add direct checking of types 
1926         and add checks for objects with embeded signatures or types (Array, 
1927         Variant and Dictionary)
1928         (MessageIter::append_byte): handle case when the value is a dbus.Byte
1929         (MessageIter::append_dict): handle embeded types or signatures
1930         (MessageIter::append_array): handle embeded types or signatures
1931         (MessageIter::append_variant): new method
1932         
1933         * python/proxies.py:
1934         (DeferedMethod): New. Dummy executable object used when queuing calls 
1935         blocking on introspection data
1936         (ProxyMethod::__call__): add the timeout keyword for specifying longer 
1937         or shorter timeouts for method calls
1938         (ProxyObject): Add first pass at an introspection state machine
1939         (ProxyObject::__init__): Add introspect keyword for turing off an on 
1940         introspection. 
1941         (ProxyObject::_Introspect): Internal Introspect call that bypasses 
1942         the usual mechanisms for sending messages.  This is to avoid a deadlock
1943         where the Intospect call would be queued waiting for the Introspect 
1944         call to finish ;-)
1945         (ProxyObject::_introspect_reply_handler): New.  This method is called 
1946         when introspection returns with no error
1947         (ProxyObject::_introspect_error_handler): New.  This method is called 
1948         when introspection encounters an error
1949         (ProxyObject::__getattr__): Code to handle different introspection 
1950         states.  Queue async calls or block blocking calls if we are 
1951         introspecting.  Pass through as normal if we are not or are done with 
1952         introspecting.
1953         
1954         * python/service.py: Import signal and method from decorators.py
1955
1956         * python/types.py: Add Variant type
1957
1958 2005-08-16  Colin Walters  <walters@verbum.org>
1959
1960         * glib/dbus-gobject.c (dbus_set_g_error): Don't lose if the
1961         DBusError message is NULL.
1962
1963 2005-08-09  Havoc Pennington  <hp@redhat.com>
1964
1965         * dbus/dbus-errors.c: apply patch from Timo Teras to make a
1966         malloc'd copy of the name parameter
1967
1968 2005-08-09  Havoc Pennington  <hp@redhat.com>
1969
1970         * dbus/dbus-message.c (dbus_message_set_reply_serial): print
1971         warning if the reply serial is set to 0
1972
1973 2005-08-04  Colin Walters  <walters@verbum.org>
1974
1975         * glib/dbus-gvalue-utils.h (_dbus_g_type_specialized_builtins_init)
1976         (dbus_g_type_is_fixed, dbus_g_type_fixed_get_size)
1977         (dbus_gvalue_set_from_pointer, dbus_g_hash_table_value_foreach)
1978         (dbus_g_hash_table_insert_values, dbus_g_hash_table_insert_steal_values)
1979         (dbus_gtype_is_valid_hash_key, dbus_gtype_is_valid_hash_value)
1980         (dbus_g_hash_func_from_gtype, dbus_g_hash_free_from_gtype)
1981         (dbus_g_hash_equal_from_gtype, dbus_gvalue_stor, dbus_gvalue_take):
1982         * glib/dbus-gvalue.h (dbus_g_value_types_init)
1983         (dbus_gvalue_demarshal, dbus_gvalue_demarshal_variant)
1984         (dbus_gvalue_demarshal_message, dbus_gvalue_marshal):
1985         
1986         Prefix name with _ to ensure they're not exported.  All callers
1987         updated.
1988
1989         * glib/dbus-gvalue.c (typecode_to_gtype)
1990         (dbus_typecode_maps_to_basic, basic_typecode_to_gtype)
1991         (signature_iter_to_g_type_dict)
1992         (signature_iter_to_g_type_array)
1993         (dbus_gtype_from_signature_iter, dbus_gtype_from_signature)
1994         (dbus_gtypes_from_arg_signature):
1995         Move to dbus-gsignature.c.
1996
1997         * glib/dbus-binding-tool-glib.c (dbus_binding_tool_output_glib_server): Call
1998         dbus_g_type_specialized_builtins_init instead of dbus_g_value_types_init.
1999         (dbus_binding_tool_output_glib_client): Ditto.
2000
2001         * glib/Makefile.am (DBUS_GLIB_INTERNALS): Add dbus-gsignature.c
2002         and dbus-gsignature.h
2003
2004         * test/glib/test-service-glib.c (my_object_rec_arrays): Delete
2005         unused variable.
2006
2007 2005-08-03  Colin Walters  <walters@verbum.org>
2008
2009         * glib/dbus-gobject.c: Add tests on hardcoded object info; this should
2010         catch any incompatible changes accidentally made.
2011
2012 2005-08-03  Havoc Pennington  <hp@redhat.com>
2013
2014         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): fix
2015         typo, from Julien Puydt
2016
2017         * bus/connection.c (bus_connection_disconnected): we were always
2018         doing a wait_for_memory due to a buggy loop, found by Timo Hoenig
2019
2020 2005-08-01  Colin Walters  <walters@verbum.org>
2021
2022         Patch from Joe Markus Clarke:   
2023         
2024         * glib/dbus-gidl.c (property_info_unref, arg_info_unref): Fix
2025         use-after-free.
2026
2027 2005-08-01  Colin Walters  <walters@verbum.org>
2028         
2029         Patch from Joe Markus Clarke:   
2030         
2031         * tools/dbus-send.c (main): 
2032         
2033         Don't use C99 style initializers (bug #3933).
2034         
2035 2005-08-01  Colin Walters  <walters@verbum.org>
2036
2037         Patch from Joe Markus Clarke:   
2038
2039         * glib/dbus-gvalue.c (dbus_g_value_types_init): 
2040         * glib/dbus-gvalue-utils.c (dbus_g_type_specialized_builtins_init) 
2041         * glib/dbus-gobject.c (write_interface):
2042
2043         Don't use C99 style initializers (bug #3933).
2044
2045 2005-07-31  Havoc Pennington  <hp@redhat.com>
2046
2047         * tools/dbus-viewer.c (load_child_nodes): fix invocation of
2048         dbus_g_proxy_call, fix from Piotr Zielinski bug #3920
2049
2050 2005-07-30  Havoc Pennington  <hp@redhat.com>
2051
2052         * fix a bunch of Doxygen warnings and mistakes
2053
2054 2005-07-30  Havoc Pennington  <hp@redhat.com>
2055
2056         * dbus/dbus-sysdeps.c (_dbus_string_parse_uint): remove #ifdef
2057         DBUS_BUILD_TESTS since it's now used in production code
2058
2059 2005-07-29  Havoc Pennington  <hp@redhat.com>
2060
2061         * test/glib/test-profile.c (write_junk): initialize the junk
2062         buffer so valgrind doesn't have a breakdown
2063
2064 2005-07-29  Havoc Pennington  <hp@redhat.com>
2065
2066         * bus/signals.c (bus_signals_test): add match_rule_equal() tests
2067         (match_rule_matches): remove unused arg
2068         (test_matching): add tests for match_rule_matches()
2069
2070         * bus/signals.c (bus_match_rule_parse_arg_match): add ability to
2071         do arg0='foo' arg5='bar' in the match rules
2072         (match_rule_matches): don't match if the arg0='foo' doesn't match.
2073
2074         * dbus/dbus-protocol.h (DBUS_MAXIMUM_MATCH_RULE_ARG_NUMBER): add this
2075
2076 2005-07-29  Ross Burton  <ross@openedhand.com>
2077
2078         * dbus/dbus-connection.c:
2079         Don't create a DBusCondVar which is never used.
2080
2081 2005-07-27  Ross Burton  <ross@openedhand.com>
2082
2083         * dbus/dbus-message.c:
2084         Reduce the size of the maximum cached message to 10K.
2085
2086 2005-07-25  Ross Burton  <ross@openedhand.com>
2087
2088         * glib/dbus-gproxy.c:
2089         Remove matches when all proxies are unregistered.
2090
2091 2005-07-24  Colin Walters  <walters@verbum.org>
2092
2093         * glib/dbus-gvalue.c (signature_iter_to_g_type_array): Don't require
2094         typedata; recursive arrays won't have it.
2095
2096         * test/glib/test-dbus-glib.c:
2097         * test/glib/test-service-glib.c:
2098         * test/glib/test-service-glib.xml: Add recursive arrays tests.
2099         
2100 2005-07-20  John (J5) Palmieir  <johnp@redhat.com>
2101
2102         * python/_dbus.py, _util.py, decorators.py, extract.py, matchrules.py.
2103         proxies.py, service.py: Cleanup of code after running it through the
2104         pyflakes code checker mostly dealing with undefined names.  
2105         (Bug #3828, Patch from Anthony Baxter <anthony@interlink.com.au>)
2106
2107 2005-07-17  John (J5) Palmieri  <johnp@redhat.com>
2108
2109         * NEWS: Update to 0.35.2
2110
2111 2005-07-17  John (J5) Palmieri  <johnp@redhat.com>
2112
2113         * python/_dbus.py: Remove import of the dbus.services
2114         module as it no longer exists (patch from Dimitur Kirov)
2115
2116         * python/service.py (Object::__init__): Fixed typo
2117         s/name/bus_name (patch from Dimitur Kirov)
2118
2119         * python/examples/example-signal-emitter.py: import dbus.glib
2120         to get the main loop and use glib mainloop instead of gtk so
2121         X doesn't have to be running.
2122
2123         * python/examples/example-signal-recipient.py: import dbus.glib
2124         to get the main loop and use glib mainloop instead of gtk so
2125         X doesn't have to be running. Import the decorators module
2126         directly.
2127
2128         * test/glib/Makefile.am:  Added DIST_EXTRA files that distcheck
2129         didn't pick up on but are needed to build
2130
2131         * configure.in: upped version to 0.35.2
2132
2133         * bus/driver.c, bus/selinux.c, bus/selinux.h, dbus/dbus-protocol.h:
2134         added Colin Walters' SELinux API rename patch from head 
2135         s/unix sercurity context/selinux security context/
2136
2137 2005-07-16  John (J5) Palmieri  <johnp@redhat.com>
2138
2139         * python/Makefile.am: dbus_binding.pxd.in should be included 
2140         in EXTRA_DIST not dbus_binding.pxd
2141         fix up $(srcdir) hopefully for the last time
2142
2143         * NEWS: Update to 0.35.1
2144
2145 2005-07-16  Colin Walters  <walters@verbum.org>
2146
2147         * bus/driver.c (bus_driver_handle_get_connection_selinux_security_context): Renamed
2148         from bus_driver_handle_get_connection_unix_security_context.  Update for
2149         error usage.
2150         (message_handlers): Update for renames.
2151
2152         * bus/selinux.c (bus_selinux_allows_send): Handle OOM on
2153         _dbus_string_init failure correctly.
2154         (bus_selinux_append_context): Convert SID to context.  Append it
2155         as a byte array.
2156         (bus_selinux_shutdown): Handle the case where bus_selinux_full_init
2157         hasn't been called.
2158
2159         * bus/selinux.h: Update prototype.
2160
2161         * dbus/dbus-protocol.h (DBUS_ERROR_SELINUX_SECURITY_CONTEXT_UNKNOWN): Renamed
2162         from DBUS_ERROR_UNIX_SECURITY_CONTEXT_UNKNOWN.
2163
2164 2005-07-15  Colin Walters  <walters@verbum.org>
2165
2166         * doc/TODO: Add note about convenience wrappers.
2167
2168 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
2169
2170         * NEWS: Update to 0.35
2171
2172 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
2173
2174         * glib/Makefile.am: Add make-dbus-glib-error-switch.sh to EXTRA_DIST
2175         so distcheck doesn't fail
2176
2177         * glib/examples/Makefile.am: Add example-service.xml and 
2178         example-signal-emitter.xml to EXTRA_DIST so distcheck doesn't fail
2179
2180         * glib/examples/statemachine/Makefile.am: Add statemachine.xml and
2181         statemachine-server.xml to EXTRA_DIST so distcheck doesn't fail
2182
2183         * python/Makefile.am: Preprend $(srcdir)/ to source files so the
2184         compiler looks in the right places during distcheck
2185
2186 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
2187
2188         * glib/example/Makefile.am: Fix a typo which cause make distcheck
2189         to fail
2190
2191 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
2192
2193         * python/examples/example-service.py,
2194         python/examples/example-signal-emitter.py: Fixed up examples
2195         for API changes
2196
2197 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
2198
2199         * python/__init__.py: Upped to version (0,42,0) because of
2200         the API change
2201
2202 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
2203
2204         * ChangeLog: fix date in last entry
2205
2206         * configure.in, bus/system.conf.in: add the ability to configure 
2207         the system bus user at compiletime with the --with-dbus-user flag
2208         (patch from Kristof Vansant)
2209
2210 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
2211
2212         * bus/dispatch.c, test/test-service.c: Add testcase
2213         for sending messages to oneself (TODO item).
2214
2215         * python/service.py (class Object): Swap ordering of bus_name 
2216         and object_path parameters to better support inheritance.
2217
2218         * doc/dbus-tutorial.xml: change Python docs to reflect change
2219         in parameter ordering and fix the inheritance section.
2220
2221         * doc/TODO: remove sending message to oneself TODO item
2222
2223 2005-07-15  Ross Burton  <ross@openedhand.com>
2224
2225         * glib/dbus-gproxy.c:
2226         Fix a leak when calling methods via the proxy.
2227
2228 2005-07-15  Colin Walters  <walters@verbum.org>
2229
2230         * bus/selinux.c (bus_selinux_append_context): Wrap in
2231         HAVE_SELINUX.
2232
2233 2005-07-14  John (J5) Palmieri  <johnp@redhat.com>
2234
2235         * python/_dbus.py (Bus::remove_signal_receiver):
2236         don't add a callback to the match if none has been passed in
2237         
2238         * python/matchrules.py (SignalMatchTree::remove): if the rule
2239         being matched does not have a callback treat it as a wildcard
2240         fix matching logic
2241
2242         * doc/dbus-tutorial.xml: Add Python tutorial
2243
2244 2005-07-14  Colin Walters  <walters@verbum.org>
2245
2246         * bus/driver.c
2247         (bus_driver_handle_get_connection_unix_security_context): New function.
2248         (message_handlers): Add.
2249
2250         * bus/selinux.c (bus_selinux_append_context): New function; appends
2251         security context to message.
2252
2253         * bus/selinux.h: Prototype.
2254
2255         * dbus/dbus-protocol.h (DBUS_ERROR_UNIX_SECURITY_CONTEXT_UNKNOWN): New.
2256
2257 2005-07-14  John (J5) Palmieri  <johnp@redhat.com>
2258
2259         * bus/activation.c: clean up all tabs to be 8 spaces 
2260         (bus_activation_activate_service): make sure we clean up
2261         if activation fails
2262
2263         * bus/dispatch.c: clean up all tabs to be 8 spaces 
2264         (check_shell_fail_service_auto_start): New function
2265         tests to make sure we get fail properly when trying to auto start a service
2266         with a faulty command line
2267         (check_shell_service_success_auto_start): New function tests to make sure
2268         auto started services get the arguments on the command line
2269
2270         * test/test-shell-service.c: Added service for testing auto-starting with 
2271         command line arguments
2272
2273         * test/data/valid-service-files/debug-shell-echo-fail.service.in, 
2274         test/data/valid-service-files/debug-shell-echo-success.service.in:
2275         Added service files for testing auto-starting with command line arguments
2276
2277         * */.cvsignore: added a bunch of generated files to various .cvsignore files
2278
2279 2005-07-14  Rodrigo Moya  <rodrigo@novell.com>
2280
2281         * dbus/dbus-shell.[ch]: copy/pasted code from GLib.
2282         
2283         * dbus/Makefile.am: added new files to build.
2284
2285         * bus/activation.c (bus_activation_activate_service): support
2286         activation commands with parameters.
2287
2288         * test/shell-test.c: added test program for the shell parsing
2289         code.
2290
2291 2005-07-13  David Zeuthen  <davidz@redhat.com>
2292
2293         * tools/dbus-send.c (append_arg, type_from_name): Also support 16 and
2294         64 bit signed and unsigned parameters
2295
2296 2005-07-13  John (J5) Palmieri  <johnp@redhat.com>
2297
2298         * python/.cvsignore: remove dbus_bindings.pyx, add dbus_bindings.pxd
2299
2300         * python/service.py (class Name): renamed BusName to make it clearer
2301         what the object is for (a name on the bus)
2302
2303         * python/examples/example-service.py,
2304         python/examples/example-signal-emitter.py: change the Name object to
2305         BusName
2306
2307 2005-07-12  Colin Walters  <walters@verbum.org>
2308
2309         Patch from Jim Gettys <Jim.Gettys@hp.com>.
2310
2311         * tools/dbus-launch.c: Include sys/select.h.
2312
2313 2005-07-12  John (J5) Palmieri  <johnp@redhat.com>
2314         * python/dbus_bindings.pyx.in: removed
2315
2316         * python/dbus_bindings.pyx: Added.
2317         - Fixed some memleaks (patch from 
2318         Sean Meiners <sean.meiners@linspireinc.com>)
2319         - Broke out the #include "dbus_h_wrapper.h" and put it in its
2320         own pxd file (Pyrex definition)
2321         - Broke out glib dependancies into its own pyx module
2322         
2323         * python/dbus_bindings.pdx: Added.
2324         - Defines C class Connection for exporting to other modules
2325
2326         * python/dbus_glib_bindings.pyx: Added.
2327         - New module to handle lowlevel dbus-glib mainloop integration
2328
2329         * python/glib.py: Added.
2330         - Registers the glib mainloop when you import this module
2331
2332         * python/services.py: Removed (renamed to service.py)
2333         
2334         * python/service.py: Added.
2335         - (class Server): renamed Name
2336
2337         * python/__init__.py: Bump ro version (0,41,0)
2338         -don't import the decorators or service module
2339         by default.  These now reside in the dbus.service namespace
2340
2341         * python/_dbus.py (Bus::__init__): Add code run the main loop 
2342         setup function on creation 
2343
2344         * python/examples/example-service.py,
2345         python/examples/example-signal-emitter.py: update examples
2346
2347         * python/examples/gconf-proxy-service.py,
2348         python/examples/gconf-proxy-service2.py: TODO fix these up
2349
2350         * doc/TODO: Addition
2351         - Added a Python Bindings 1.0 section
2352         - added "Add match on args or match on details to match rules"
2353
2354
2355 2005-07-12  Colin Walters  <walters@verbum.org>
2356
2357         * glib/examples/statemachine/Makefile.am (statemachine-server-glue.h) 
2358         (statemachine-glue.h): 
2359         * glib/examples/Makefile.am (example-service-glue.h) 
2360         (example-signal-emitter-glue.h): 
2361         * glib/Makefile.am (dbus-glib-error-switch.h): 
2362         Add libtool --mode=execute so we use the built library instead
2363         of any installed one.
2364
2365 2005-07-11  Colin Walters  <walters@verbum.org>
2366
2367         * glib/dbus-gvalue.c (struct _DBusGValue): Delete.
2368         (dbus_g_value_types_init): Remove assertion.
2369         (dbus_g_value_get_g_type, dbus_g_value_open)
2370         (dbus_g_value_iterator_get_values, dbus_g_value_get_signature)
2371         (dbus_g_value_copy, dbus_g_value_free): Delete unimplemented
2372         functions related to DBusGValue.  Now we marshal/demarshal
2373         structures as GValueArray.
2374         (dbus_gtype_from_signature_iter): Return G_TYPE_VALUE_ARRAY for
2375         structures.
2376         (signature_iter_to_g_type_array): Don't call
2377         signature_iter_to_g_type_struct.
2378         (signature_iter_to_g_type_struct): Delete.
2379         (dbus_gvalue_to_signature): Delete.
2380         (dbus_gvalue_to_signature): New function with same name as other
2381         one; we can convert structures to signatures.
2382         (demarshal_valuearray): New function.
2383         (get_type_demarshaller): Use it.
2384         (demarshal_recurse): Delete.
2385         (marshal_proxy): New function.
2386         (marshal_map): Warn if we can't determine signature from type.
2387         (marshal_collection_ptrarray): Ditto.
2388         (marshal_collection_array): Ditto.
2389         (get_type_marshaller): Use marshal_valuearray.
2390         (marshal_recurse): Delete.
2391         (_dbus_gvalue_test): Add some tests.
2392
2393         * dbus/dbus-glib.h (struct _DBusGValueIterator): 
2394         (dbus_g_value_get_g_type, DBUS_TYPE_G_VALUE)
2395         (dbus_g_value_open, dbus_g_value_iterator_get_value)
2396         (dbus_g_value_iterator_get_values, dbus_g_value_iterator_recurse)
2397         (dbus_g_value_free): Remove prototypes.
2398
2399         * glib/dbus-binding-tool-glib.c (dbus_g_type_get_lookup_function): Handle
2400         G_TYPE_VALUE_ARRAY.
2401
2402         * glib/examples/example-service.c:
2403         * glib/examples/example-client.c: Implement GetTuple.
2404
2405         * test/glib/test-dbus-glib.c:
2406         * test/glib/test-service-glib.c:
2407         * test/glib/test-service-glib.xml: Add structure tests.
2408
2409 2005-07-10  Colin Walters  <walters@verbum.org>
2410
2411         * doc/TODO: Knock off some GLib items with this patch.
2412
2413         * glib/dbus-gvalue-utils.c (_dbus_gtype_can_signal_error) 
2414         (_dbus_gvalue_signals_error): New functions.
2415
2416         * glib/dbus-gvalue-utils.h: Prototype them.
2417
2418         * glib/dbus-gobject.c (arg_iterate): Update to handle return vals
2419         and change to not output const/retval flags for input args.  All
2420         callers updated.
2421         (invoke_object_method): Refactor to handle return values.  Add
2422         some more comments in various places.  Remove debug g_print.
2423
2424         * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_RETURNVAL): New.
2425
2426         * glib/dbus-binding-tool-glib.c (dbus_g_type_get_marshal_name):
2427         Handle G_TYPE_NONE.
2428         (compute_gsignature): New function; refactored from code from
2429         compute_marshaller and compute_marshaller_name.  Enhance to
2430         handle return values and async ops more cleanly.  Update for
2431         async ops returning NONE instead of BOOLEAN.
2432         (compute_marshaller, compute_marshaller_name): Call compute_gsignature
2433         and output appropriate string.
2434         (generate_glue): Handle return value annotation.  Also don't dump
2435         constness flag for input arguments.
2436
2437         * glib/Makefile.am (DBUS_GLIB_INTERNALS): New variable; contains
2438         files shared between installed library and utilities.
2439         (libdbus_glib_1_la_SOURCES): Move some stuf into DBUS_GLIB_INTERNALS.
2440         (libdbus_gtool_la_SOURCES): Suck in DBUS_GLIB_INTERNALS so the
2441         binding tool can access gtype utility functions.
2442
2443         * test/glib/test-service-glib.c: 
2444         * test/glib/test-service-glib.xml: 
2445         * test/glib/test-dbus-glib.c: Add some tests for return values.
2446
2447 2005-07-09  Colin Walters  <walters@verbum.org>
2448
2449         * glib/dbus-gparser.c (parse_annotation): Add annotations to
2450         argument if available, not method.
2451
2452         * glib/dbus-gobject.c (arg_iterate): More verbose warnings.
2453         (invoke_object_method): First, remove some redundant
2454         GValues (object_value, error_value) in favor of working on
2455         array directly.  Second, rework constness to be less buggy.
2456         Now we iterate directly over the argument metadata instead
2457         of parallel iterating over output signature and metadata.
2458
2459         * glib/dbus-glib-tool.h: Add INVALID_ANNOTATION error.
2460
2461         * glib/dbus-binding-tool-glib.c (generate_glue): Barf on const
2462         annotation on input args.
2463         
2464 2005-07-09  Colin Walters  <walters@verbum.org>
2465
2466         * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_CONST):
2467         Define.
2468
2469         * glib/dbus-binding-tool-glib.c (generate_glue): Handle Const
2470         annotation.
2471
2472         * glib/dbus-gobject.c (arg_iterate): Update to parse constval too.
2473         (method_dir_signature_from_object_info): Handle arg_iterate change.
2474         (write_interface): Ditto.
2475         (lookup_object_info): Don't barf if format_version is > 0.
2476         (invoke_object_method): Handle arg constness.
2477
2478         * glib/dbus-gidl.c (struct ArgInfo): Add annotations.
2479         (arg_info_new): Create.
2480         (arg_info_unref): Destroy.
2481         (arg_info_get_annotations, arg_info_get_annotation) 
2482         (arg_info_add_annotation): New functions.
2483
2484         * glib/dbus-gidl.h: Prototype them.
2485
2486         * glib/dbus-gparser.c (parse_annotation): Allow annotations in
2487         args, disallow them in properties.
2488         (parse_annotation): Handle arg annotations.
2489
2490         * test/glib/test-service-glib.xml: 
2491         * test/glib/test-service-glib.c: Update to make some methods
2492         const.
2493
2494 2005-07-08  Colin Walters  <walters@verbum.org>
2495
2496         * test/glib/test-service-glib.xml: 
2497         * test/glib/test-service-glib.c:
2498         * test/glib/test-dbus-glib.c: Test a{sv}.
2499
2500         * glib/examples/statemachine/statemachine.c:
2501         * glib/examples/statemachine/statemachine-server.c:
2502         * glib/examples/statemachine/statemachine-client.c: Fix some bugs,
2503         add progress bar, etc.
2504
2505         * glib/dbus-gvalue.c (register_array, register_dict): Delete; not
2506         needed anymore due to generic array/map marshalling.
2507         (dbus_g_value_types_init): Don't register basic arrays or the
2508         string/string hash.
2509         (dbus_gtype_from_signature_iter): Don't try to recurse into
2510         variants.
2511         (dbus_gtype_to_signature): Check collection/map before type
2512         metadata.
2513         (demarshal_garray_basic): Renamed to demarshal_collection_array.
2514         (demarshal_ghashtable): Renamed to demarshal_map; fix to use new
2515         generic map creation/append functions instead of hash table
2516         specifically.
2517         (get_type_demarshaller): Handle maps.
2518         (demarshal_collection): Dispatch on collection type to either
2519         demarshal_collection_ptrarray or demarshal_collection_array.
2520         (get_type_marshaller): Handle maps.
2521         (marshal_collection): Dispatch collection type to either
2522         marshal_collection_ptrarray or marshal_collection_array.
2523         (_dbus_gvalue_test): New test.
2524
2525         * glib/dbus-gvalue-utils.c (unset_and_free_g_value): New function.
2526         (hash_free_from_gtype): Use it to free GValues.
2527         (hashtable_append): New function.
2528         (ptrarray_append): Fix prototype.
2529         (slist_append): Ditto.
2530         (_dbus_gvalue_utils_test): Extend tests.
2531
2532         * glib/dbus-gtype-specialized.c
2533         (dbus_g_type_specialized_init_append): Renamed from
2534         dbus_g_type_specialized_collection_init_append.  Remove const from
2535         value, since we steal it.
2536         (dbus_g_type_specialized_map_append): New function.
2537
2538         * glib/dbus-gtype-specialized.h: Update prototypes.
2539         Add DBusGTypeSpecializedMapAppendFunc.
2540
2541         * glib/dbus-gtest.c (dbus_glib_internal_do_not_use_run_tests): Run
2542         _dbus_gvalue_test.
2543         
2544         * glib/dbus-gtest.h: Prototype it.
2545
2546 2005-07-08  Ross Burton  <ross@openedhand.com>
2547
2548         * dbus/dbus-glib.h:
2549         Add DBysGAsyncData for the async bindings.
2550
2551         * glib/dbus-binding-tool-glib.c:
2552         Re-enable the async bindings.
2553
2554         * test/glib/test-dbus-glib.c:
2555         Add a test for the generated async bindings.
2556
2557 2005-07-08  Colin Walters  <walters@verbum.org>
2558
2559         * doc/TODO: Update GLib todo bits, also add a post-1.0 TODO for a
2560         connection concept.
2561         
2562 2005-07-08  Colin Walters  <walters@verbum.org>
2563         
2564         * tools/Makefile.am: Kill of print-introspect in favor of using
2565         dbus-send --print-reply=literal.
2566
2567         * test/glib/test-service-glib.xml: 
2568         * test/glib/test-service-glib.c (my_object_get_objs): New test
2569         for "ao".
2570
2571         * test/glib/test-dbus-glib.c (echo_received_cb): Free echo data.
2572         (main): Test GetObjs.
2573
2574         * glib/examples/statemachine/Makefile.am:
2575         * glib/examples/statemachine/sm-marshal.list:
2576         * glib/examples/statemachine/statemachine-client.c:
2577         * glib/examples/statemachine/statemachine-server.c:
2578         * glib/examples/statemachine/statemachine-server.xml:
2579         * glib/examples/statemachine/statemachine.c:
2580         * glib/examples/statemachine/statemachine.h:
2581         * glib/examples/statemachine/statemachine.xml:
2582
2583         New example.
2584
2585         * glib/examples/example-service.c (main): Move invocation
2586         of dbus_g_object_type_install_info earlier, to emphasize it
2587         should only be done once.
2588
2589         * glib/examples/example-signal-emitter.c (main): Ditto.
2590
2591         * glib/examples/Makefile.am (SUBDIRS): Include statemachine.
2592
2593         * glib/dbus-gvalue.h (dbus_gtype_to_signature)
2594         (dbus_gvalue_marshal): Update prototypes.
2595
2596         * glib/dbus-gvalue.c: Update all marshalling functions to take
2597         const GValue instead of GValue.
2598         (signature_iter_to_g_type_array): Return a GPtrArray for nonfixed
2599         types.
2600         (dbus_gvalue_to_signature): Update for dbus_gtype_to_signature
2601         change.
2602         (dbus_gtype_to_signature): Handle generic collecitons and maps.
2603         Return a newly-allocated string.
2604         (demarshal_proxy, demarshal_object_path, demarshal_object)
2605         (demarshal_strv, demarshal_ghashtable): Set error, don't assert if
2606         we get the wrong types from message.
2607         (get_type_demarshaller): New function, extracted from
2608         dbus_gvalue_demarshal.
2609         (demarshal_collection): New function, demarshals generic
2610         collection.
2611         (dbus_gvalue_demarshal): Just invoke result of
2612         get_type_demarshaller.  Throw error if we don't have one.
2613         (marshal_garray_basic): Abort on OOM.
2614         (get_type_marshaller): New function, extracted from
2615         dbus_gvalue_marshal.
2616         (collection_marshal_iterator, marshal_collection): New functions;
2617         implements generic marshalling for an iteratable specialized
2618         collection.
2619         (dbus_gvalue_marshal): Just invoke result of get_type_marshaller.
2620
2621         * glib/dbus-gvalue-utils.c (gvalue_from_ptrarray_value): Handle
2622         G_TYPE_STRING.
2623         (ptrarray_value_from_gvalue): Ditto.
2624         (ptrarray_append, ptrarray_free): New functions.
2625         (slist_constructor, slist_iterator, slist_copy_elt, slist_copy) 
2626         (slist_append, slist_end_append, slist_free): New functions.
2627         (dbus_g_type_specialized_builtins_init): Add append fuctions
2628         for GPtrArray and GSList.  Register GSList.
2629         (test_specialized_hash, _dbus_gvalue_utils_test): New functions.
2630
2631         * glib/dbus-gtype-specialized.h (DBusGTypeSpecializedAppendContext):
2632         New.
2633         (dbus_g_type_specialized_collection_init_append)
2634         (dbus_g_type_specialized_collection_append)
2635         (dbus_g_type_specialized_collection_end_append): Prototype.
2636         (DBusGTypeSpecializedCollectionVtable): Add append_func and
2637         end_append_func.
2638
2639         * glib/dbus-gtype-specialized.c (dbus_g_type_specialized_collection_init_append) 
2640         (dbus_g_type_specialized_collection_append) 
2641         (dbus_g_type_specialized_collection_end_append): New functions.
2642         (dbus_g_type_map_value_iterate): Take const GValue.
2643         (dbus_g_type_collection_value_iterate): Ditto.
2644
2645         * glib/dbus-gtest.c (dbus_glib_internal_do_not_use_run_tests): Run
2646         _dbus_gvalue_utils_test.
2647         
2648         * glib/dbus-gtest.h: Prototype it.
2649
2650         * glib/dbus-gproxy.c (dbus_g_proxy_manager_filter): Avoid
2651         using uninitialized owner_list.
2652         (dbus_g_proxy_begin_call_internal): Move return_if_fail to
2653         public API.
2654         (dbus_g_proxy_end_call_internal): Update to use error set
2655         from dbus_gvalue_demarshal instead of setting it here.
2656         (dbus_g_proxy_begin_call): Move return_if_fail here.
2657
2658         * glib/dbus-gobject.c (write_interface): Update for
2659         dbus_gtype_to_signature returning new string.
2660
2661         * configure.in: Add glib/examples/statemachine.
2662
2663 2005-07-08  Joe Shaw  <joeshaw@novell.com>
2664
2665         * configure.in: Add a configure option, --with-console-auth-dir
2666         
2667         * dbus/dbus-sysdeps-util.c (_dbus_user_at_console): Use the
2668         new setting.  Patch from Kay Sievers.
2669
2670 2005-07-06  Colin Walters  <walters@verbum.org>
2671
2672         * dbus/dbus-glib.h (DBusGPendingCall, DBusGPendingCallNotify)
2673         (DBUS_TYPE_G_PENDING_CALL, dbus_g_pending_call_get_g_type)
2674         (dbus_g_pending_call_ref, dbus_g_pending_call_unref): Delete.
2675         (dbus_g_pending_call_set_notify, dbus_g_pending_call_cancel):
2676         Delete in favor of dbus_g_proxy_begin_call and
2677         dbus_g_proxy_cancel_call.
2678         (DBusGProxyCall, DBusGProxyCallNotify): New.
2679         (dbus_g_proxy_begin_call): Change prototype to take callback, user
2680         data, and destroy function.  This replaces
2681         dbus_g_pending_call_set_notify.
2682         (dbus_g_proxy_cancel_call): Prototype.
2683         (DBusGAsyncData): Delete, shouldn't be needed anymore.
2684
2685         * glib/dbus-gproxy.c (struct _DBusGProxy): Add call_id_counter and
2686         pending_calls map.
2687         (struct _DBusGProxyManager): Add bus_proxy member, which is an
2688         internal proxy for calls to the bus. Remove
2689         pending_nameowner_calls, now the internal proxy keeps track.
2690         (dbus_g_proxy_manager_unref): Unref bus proxy, remove reference to
2691         pending_nameowner_calls.
2692         (got_name_owner_cb): Update prototype, and use
2693         dbus_g_proxy_end_call.
2694         (got_name_owner_cb): Remove reference to pending_nameowner_calls.
2695         (dbus_g_proxy_manager_register): Delete directly libdbus code in
2696         favor of using internal proxy.
2697         (dbus_g_proxy_manager_unregister): Update to use
2698         dbus_g_proxy_cancel_call for any pending GetNameOwner call.
2699         (dbus_g_proxy_init): Initialize pending calls map.
2700         (dbus_g_proxy_constructor): New.
2701         (dbus_g_proxy_class_init): Add get/set property functions,
2702         constructor, and add NAME, PATH, and INTERFACE properties.
2703         (cancel_pending_call): New function.
2704         (dbus_g_proxy_dispose): Iterate over any outstanding calls and
2705         cancel them.
2706         (dbus_g_proxy_set_property, dbus_g_proxy_get_property): New.
2707         (GPendingNotifyClosure): New structure.
2708         (d_pending_call_notify, d_pending_call_free): Moved here from
2709         dbus-glib.c.
2710         (DBUS_G_VALUE_ARRAY_COLLECT_ALL): Moved around to satisfy function
2711         ordering.
2712         (manager_begin_bus_call): New internal function for talking to
2713         internal bus proxy.
2714         (dbus_g_proxy_new): Construct object using GObjet properties.
2715         (dbus_g_proxy_begin_call_internal): Update to take user data, etc.
2716         Create closure of same, and insert call into map of pending calls.
2717         (dbus_g_proxy_end_call_internal): Take call id instead of pending
2718         call.  Look up pending call in current set.  Remove it when we've
2719         completed.
2720         (dbus_g_pending_call_end, dbus_g_proxy_end_call_internal): Delete.
2721         (dbus_g_proxy_begin_call): Change API to take callback, user data,
2722         and destroy function directly.
2723         (dbus_g_proxy_end_call): Update to take DBusGProxyCall.
2724         (dbus_g_proxy_call): Invoke with NULL callback.
2725         (dbus_g_proxy_cancel_call): New function, replaces
2726         dbus_g_pending_call_cancel.
2727
2728         * glib/dbus-gparser.c (validate_signature): Fix call to
2729         dbus_set_g_error.
2730
2731         * glib/dbus-gobject.c (dbus_g_object_type_dbus_metadata_quark):
2732         New quark for attaching metadata to GType.
2733         (info_hash): Delete.
2734         (lookup_object_info): Look up using quark.
2735         (dbus_g_object_type_install_info): Check that a type is classed,
2736         not that it's an object.  Also just install type data using quark
2737         instead of using global hash.
2738
2739         * glib/dbus-glib.c (dbus_g_pending_call_ref) 
2740         (dbus_g_pending_call_unref, dbus_pending_call_get_g_type)
2741         (GPendingNotifyClosure): Delete.
2742         (d_pending_call_notify, d_pending_call_free): Move to dbus-gproxy.c.
2743         (dbus_g_pending_call_set_notify, dbus_g_pending_call_cancel): Delete.
2744
2745         * glib/dbus-binding-tool-glib.c (generate_client_glue): Disable async
2746         client method generation until we can fix it...
2747         
2748         * tools/dbus-viewer.c (load_child_nodes): Use dbus_g_proxy_call.
2749         (load_from_service_thread_func): Ditto.
2750
2751         * tools/dbus-names-model.c (struct NamesModel): Hold
2752         DBusGProxyCall.
2753         (have_names_notify): Update prototype, use
2754         dbus_g_proxy_cancel_call.
2755         (names_model_reload): Update for new dbus_g_proxy_begin_call API.
2756
2757         * tools/dbus-monitor.c (filter_func): Update for print_message
2758         API change.
2759
2760         * test/glib/test-dbus-glib.c: Add more tests for async
2761         invocations.  Update many begin_call/end_call pairs to just use
2762         dbus_g_proxy_call.
2763
2764         * tools/dbus-send.c (main): Add --print-reply=literal mode.  This
2765         allows us to dump print-introspect.c.
2766
2767         * tools/dbus-print-message.h (print_message): Add literal argument
2768         to print_message which is intended to allow printing arguments without
2769         metadata like "string=".
2770
2771         * tools/dbus-print-message.c (print_iter): Add literal argument.
2772         (print_message): Allow printing string messages literally.
2773
2774 2005-07-05  Colin Walters  <walters@verbum.org>
2775
2776         * glib/dbus-gproxy.c (marshal_dbus_message_to_g_marshaller):
2777         Remove value refcount leak, original patch from Jorn Baayen
2778         <jorn@openedhand.com>.  Also remove useless extra value in favor
2779         of prepending to value array directly.
2780
2781 2005-07-02  Colin Walters  <walters@verbum.org>
2782
2783         * glib/dbus-gmain.c (_dbus_gmain_test): Fix test.
2784
2785 2005-07-01  Colin Walters  <walters@verbum.org>
2786
2787         Patch from Jonathan Matthew <jonathan@kaolin.hn.org>
2788         
2789         * glib/dbus-gvalue.c (basic_typecode_to_gtype): Fix return type.
2790         (dbus_g_value_types_init): Marshal G_TYPE_CHAR as DBUS_TYPE_BYTE,
2791         G_TYPE_LONG as DBUS_TYPE_INT32, G_TYPE_ULONG as DBUS_TYPE_UINT32,
2792         and G_TYPE_FLOAT as DBUS_TYPE_DOUBLE.
2793
2794 2005-06-30  Colin Walters  <walters@verbum.org>
2795
2796         * test/glib/test-dbus-glib.c:
2797         * test/glib/test-service-glib.c:
2798         * test/glib/test-service-glib.xml: Update tests for new error
2799         setting bits, also add async tests (patch from Ross Burton).
2800
2801         * test/glib/Makefile.am (test_service_glib_LDADD): Add
2802         DBUS_GLIB_THREADS_LIBS.
2803
2804         * glib/dbus-gproxy.c (get_name_owner)
2805         (dbus_g_pending_call_end_valist): Ditto.
2806
2807         * glib/dbus-gobject.c (error_metadata): New mapping from GError
2808         domain (GQuark) to DBusGErrorInfo.  
2809         (gerror_domaincode_to_dbus_error_name): Attempt to look up error
2810         quark in error_metadata.  Take message interface as default
2811         error message interface.
2812         (gerror_to_dbus_error_message): Pass message interface.
2813         (dbus_set_g_error): Resurrected.
2814         (dbus_g_error_info_free): New function.
2815         (dbus_g_object_type_install_info): Use g_type_class_ref instead
2816         of _peek to actually create the object class if it hasn't been
2817         created yet.
2818         (dbus_g_error_domain_register): New function.
2819
2820         * glib/dbus-gmain.c (dbus_g_bus_get): Switch to dbus_set_g_error.
2821
2822         * glib/dbus-gparser.c (validate_signature): Ditto.
2823
2824         * dbus/dbus-glib.h (dbus_g_error_set): Delete.
2825         (dbus_g_error_domain_register): Prototype.
2826
2827         * glib/dbus-glib.c (dbus_g_error_set): Delete.
2828         Update tests.
2829
2830 2005-06-29  Colin Walters  <walters@verbum.org>
2831
2832         * dbus/dbus-glib.h: Delete DBUS_TYPE_G_PROXY_ARRAY.  Add
2833         DBUS_TYPE_G_OBJECT_PATH.
2834
2835         * glib/dbus-gvalue.c (dbus_g_value_types_init): Remove marshallers
2836         for G_TYPE_OBJECT and DBUS_TYPE_G_PROXY_ARRAY (the latter should
2837         be handled more generically).  Add DBUS_TYPE_G_OBJECT_PATH.
2838         (dbus_g_object_path_get_g_type): New function.
2839         (dbus_gtype_from_signature_iter): Map DBUS_TYPE_OBJECT_PATH
2840         to DBUS_TYPE_G_OBJECT_PATH by default.
2841         (demarshal_proxy): Remove unused name variable.
2842         (demarshal_object_path, marshal_object_path): New functions.
2843         (demarshal_proxy_array, marshal_proxy_array): Delete.
2844         
2845         * glib/dbus-binding-tool-glib.c (dbus_g_type_get_c_name): Map
2846         DBUS_TYPE_G_OBJECT_PATH to char *.
2847         (dbus_g_type_get_lookup_function): Map builtin
2848         DBUS_TYPE_G_OBJECT_PATH.
2849
2850         * test/glib/test-dbus-glib.c
2851         * test/glib/test-service-glib.c (my_object_objpath): 
2852         Adapt tests to new object path marshalling.
2853
2854 2005-06-29  John (J5) Palmieri  <johnp@redhat.com>
2855
2856         * configure.in: force check for Python >= 2.4
2857
2858 2005-06-29  Colin Walters  <walters@verbum.org>
2859         
2860         Patch from Ross Burton <ross@openedhand.com>
2861         
2862         * glib/dbus-gobject.c (invoke_object_method): Unset object
2863         value in all cases, not only in async case.
2864
2865 2005-06-29  Colin Walters  <walters@verbum.org>
2866
2867         * glib/dbus-gproxy.c (struct _DBusGProxy): Add new member
2868         name_call for keeping track of any outgoing GetNameOwner call.
2869         Also add for_owner and associated.
2870         (struct _DBusGProxyManager): Add owner_names, which is hash table
2871         that maps a base name to a list of names it owns (that we're
2872         interested in).  Add pending_nameowner_calls which is a list of
2873         all outstanding GetNameOwner; avoids us having to iterate over
2874         every proxy.  Add unassociated_proxies which keeps track of name
2875         proxies with no associated name owner.
2876         (dbus_g_proxy_manager_unref): Destroy owner_names.
2877         (struct DBusGProxyNameOwnerInfo): New struct for keeping track of
2878         name refcounts.
2879         (find_name_in_info, name_owner_foreach)
2880         (dbus_g_proxy_manager_lookup_name_owner, insert_nameinfo)
2881         (dbus_g_proxy_manager_monitor_name_owner)
2882         (dbus_g_proxy_manager_unmonitor_name_owner)
2883         (unassociate_proxies, dbus_g_proxy_manager_replace_name_owner):
2884         New functions; they manipulate the owner_names mapping.
2885         (got_name_owner_cb): New function.
2886         (get_name_owner): New function, extracted from
2887         dbus_g_proxy_new_for_name_owner.
2888         (dbus_g_proxy_manager_register): For now we need to keep track of
2889         all NameOwnerChanged.  Also if the proxy is for a name, if we
2890         don't already know the name owner, queue a new GetNameOwner
2891         request and add it to our list of unassociated proxies.  Otherwise
2892         inc the refcount.
2893         (dbus_g_proxy_manager_unregister): If this proxy is for a name,
2894         cancel any pending GetNameOwner call, etc.
2895         (dbus_g_proxy_manager_filter): Handle NameOwnerChanged.  Also use
2896         the owner_names mapping to look up the current names for the
2897         signal source, and dispatch to any proxies for that name.
2898         (dbus_g_proxy_new): Initialize new members.
2899         (dbus_g_proxy_new_for_name): Delete unused proxy variable.
2900         (dbus_g_proxy_new_for_name_owner): Use get_name_owner.
2901         (dbus_g_pending_call_end_valist): New function, extracted from
2902         dbus_g_proxy_end_call_internal.  Useful when we don't have a proxy
2903         but want to use the GLib infrastructure.  Also note how many
2904         arguments in reply were over.
2905         (dbus_g_pending_call_end): New function, just call
2906         dbus_g_pending_call_end_valist.
2907         (dbus_g_proxy_end_call_internal): Just call
2908         dbus_g_pending_call_end_valist.
2909
2910         * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller): Fix lookup
2911         of builtin marshaller for STRING_STRING_STRING.
2912
2913         * test/glib/test-dbus-glib.c: 
2914         * test/glib/test-service-glib.c:
2915         * test/glib/test-service-glib.xml:
2916         Extend tests to cover name proxies, destruction of owner proxies,
2917         etc.
2918         
2919         * glib/examples/example-signal-recipient.c
2920         (dbus_g_proxy_new_for_name_owner): Create a name proxy.
2921         
2922         * tools/dbus-send.c (main): Print D-BUS error name in addition
2923         to message.
2924
2925 2005-06-28  John (J5) Palmieri  <johnp@redhat.com>
2926
2927         * python/dbus_bindings.pyx.in (cunregister_function_handler,
2928         cmessage_function_handler): Patch from 
2929         Anthony Baxter <anthony@interlink.com.au> fixes threading problems
2930         by using the Py_GILState_Ensure/Release to synchronize with the
2931         python runtime.
2932         
2933 2005-06-28  Ray Strode  <rstrode@redhat.com>
2934
2935         *  dbus/dbus-spawn.c (_dbus_babysitter_unref): kill
2936         babysitter helper process on last unref, bug #2813.
2937
2938 2005-06-27  Colin Walters  <walters@verbum.org>
2939
2940         * test/glib/test-dbus-glib.c: 
2941         * test/glib/test-service-glib.c:
2942         * test/glib/test-service-glib.xml:
2943         Test hash table signal emitting.
2944
2945         * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller): Convert
2946         types to their fundamental basis types, since this is what
2947         marshallers operate on.  Also add an entry for VOID__BOXED.
2948         (dbus_g_object_register_marshaller_array): Convert to fundamental.
2949
2950 2005-06-26  Havoc Pennington  <hp@redhat.com>
2951
2952         * doc/dbus-tutorial.xml: fix names of interface/service/path, fix
2953         from Don Park
2954
2955 2005-06-26  Colin Walters  <walters@verbum.org>
2956
2957         * glib/dbus-glib.c (dbus_set_g_error): Delete.
2958         (dbus_g_error_set): New public function from its ashes; used by
2959         both service-side method implementation and GLib bindings
2960         internals.
2961         (dbus_g_error_has_name, dbus_g_error_get_name): New function.
2962         (_dbus_glib_test): Add some tests.
2963
2964         * test/glib/test-dbus-glib.c (main): Test dbus_g_error_has_name.
2965
2966         * test/glib/test-service-glib.c (my_object_throw_error): Use
2967         dbus_g_error_set.
2968
2969         * glib/dbus-gobject.c (gerror_to_dbus_error_message): Handle
2970         errors thrown by dbus_g_error_set.
2971
2972         * glib/dbus-gmain.c (dbus_g_bus_get): Change to dbus_g_error_set.
2973
2974         * glib/dbus-gparser.c (validate_signature): Ditto.
2975
2976         * glib/dbus-gproxy.c (dbus_g_proxy_new_for_name_owner) 
2977         (dbus_g_proxy_end_call_internal): Ditto.
2978
2979         * glib/Makefile.am: Generate dbus-glib-error-switch.h, which
2980         converts DBUS_ERROR_x to DBUS_GERROR_x.
2981         (libdbus_glib_1_la_SOURCES, BUILT_SOURCES, CLEANFILES): Add it.
2982
2983         * doc/TODO: Remove error TODO.
2984
2985         * doc/dbus-tutorial.xml: Update with documentation about error
2986         handling.
2987
2988         * dbus/make-dbus-glib-error-enum.sh: Tighten up regexp to make
2989         sure we only change DBUS_ERROR to DBUS_GERROR, not all ERROR to
2990         GERROR.  Also add DBUS_GERROR_REMOTE_EXCEPTION.
2991
2992 2005-06-22  Colin Walters  <walters@verbum.org>
2993         
2994         Patch from Ross Burton <ross@openedhand.com>
2995
2996         * glib/dbus-gobject.c (dbus_g_method_return): Free out_sig.
2997
2998 2005-06-20  Colin Walters  <walters@verbum.org>
2999
3000         * configure.in: Add glib/examples.
3001
3002         * glib/Makefile.am: Add examples/
3003
3004         * glib/examples/.cvsignore
3005         * glib/examples/Makefile.am
3006         * glib/examples/example-client.c
3007         * glib/examples/example-service.c
3008         * glib/examples/example-service.xml
3009         * glib/examples/example-signal-emitter.c
3010         * glib/examples/example-signal-emitter.xml
3011         * glib/examples/example-signal-recipient.c:
3012         New files; GLib binding examples, ported from
3013         python/examples.
3014
3015 2005-06-20  Colin Walters  <walters@verbum.org>
3016
3017         * dbus/dbus-glib.h: 
3018         * glib/dbus-gproxy.c: Rename dbus_g_proxy_invoke to
3019         dbus_g_proxy_call.
3020
3021         * glib/dbus-binding-tool-glib.c: 
3022         * doc/dbus-tutorial.xml: 
3023         * test/glib/test-dbus-glib.c: Update for rename.
3024         
3025 2005-06-20  Colin Walters  <walters@verbum.org>
3026
3027         Patch suggested by Ross Burton <ross@openedhand.com>
3028
3029         * glib/dbus-gobject.c (export_signals): Free signal name.
3030         (g_value_init): Use G_VALUE_NOCOPY_CONTENTS to plug
3031         memory leak.  Add a bit of documentation.
3032         (dbus_g_method_return_error): Free context, and note we do
3033         so.
3034
3035 2005-06-18  Murray Cumming  <murrayc@murrayc.com>
3036
3037         * dbus/dbus-glib.h:
3038         * glib/dbus-gobject.c:
3039         * glib/dbus-gproxy.c:
3040         * glib/dbus-gvalue.c: Predeclare structs as 
3041         typedef struct _Something Something instead of 
3042         typedef struct Something Something, so we can 
3043         redeclare the prototypes. Other GNOME libraries 
3044         do this already.
3045
3046 2005-06-17  Colin Walters  <walters@verbum.org>
3047
3048         * tools/dbus-names-model.c (have_names_notify): Fix call
3049         to dbus_g_proxy_end_call.
3050         
3051 2005-06-17  Colin Walters  <walters@verbum.org>
3052
3053         * glib/dbus-gproxy.c (dbus_g_proxy_emit_remote_signal): Don't
3054         spew warnings if we get malformed remote signals.
3055
3056         * glib/dbus-gobject.c (propsig_iterate): New function.
3057         (lookup_object_info): New function, extracted from
3058         lookup_object_and_method.
3059         (introspect_properties, introspect_signals): Delete; these
3060         are merged into write_interface.
3061         (write_interface): Write out signals and properties here;
3062         dump the org.gtk.object stuff and use the interface given
3063         in the introspection data blob.  Also fix up property XML.
3064         (lookup_values): New function.
3065         (introspect_interfaces): Gather a mapping from interface to a
3066         list of its methods, signals, and properties, then write out
3067         each interface.
3068         (lookup_object_and_method): Use lookup_object_info.
3069         (struct DBusGSignalClosure): Add interface.
3070         (dbus_g_signal_closure_new): Add interface. Don't dup signame;
3071         we can just use the constant data.
3072         (dbus_g_signal_closure_finalize): Don't free signal name.
3073         (signal_emitter_marshaller): Use interface from signal closure.
3074         (export_signals): Only export signals mentioned in introspection
3075         blob.
3076         (dbus_g_connection_register_g_object): Warn if we have no
3077         introspection data for an object.
3078         (funcsig_equal): Remove unused variable.
3079         (dbus_g_object_register_marshaller): Take varargs instead of
3080         list.
3081         (dbus_g_object_register_marshaller_array): New function,
3082         extracted from old dbus_g_object_register_marshaller.
3083
3084         * glib/dbus-binding-tool-glib.c (struct DBusBindingToolCData): Add
3085         signals and property data.
3086         (write_quoted_string): New function, extracted from generate_glue.
3087         (generate_glue): Write signals and properties to introspection
3088         blob.
3089
3090         * dbus/dbus-glib.h (struct DBusGObjectInfo): Include
3091         exported_signals and exported_properties.
3092         (dbus_g_object_register_marshaller): Update prototype.
3093         (dbus_g_object_register_marshaller_array): Prototype.
3094         
3095         * test/glib/test-dbus-glib.c: Extend testing to cover new signals.
3096
3097         * test/glib/test-service-glib.c: Add new test signals and method
3098         to emit them.
3099
3100         * test/glib/test-service-glib.xml: Add some test signals.
3101
3102         * test/glib/Makefile.am (BUILT_SOURCES): Add my-object-marshal.c
3103         and my-object-marshal.h
3104         (test_service_glib_SOURCES, test_dbus_glib_SOURCES): Add
3105         my-object-marshal.c.
3106         (my-object-marshal.c, my-object-marshal.h): Implement.
3107
3108         * test/glib/.cvsignore: Update.
3109
3110         * doc/TODO: Remove two GLib TODO items fixed by this
3111         patch.
3112
3113 2005-06-16  Colin Walters  <walters@verbum.org>
3114
3115         * doc/TODO: Update for GLib bindings.
3116         
3117 2005-06-16  Colin Walters  <walters@verbum.org>
3118
3119         * glib/dbus-binding-tool-glib.c:
3120         * glib/dbus-gobject.c:
3121         * glib/dbus-gproxy.c:  Add Nokia copyright; Patch
3122         from Ross Burton, for his GLib bindings work.
3123
3124 2005-06-16  Colin Walters  <walters@verbum.org>
3125
3126         * glib/dbus-gobject.c (funcsig_hash, funcsig_equal): Use n_params
3127         to iterate instead of walking to G_TYPE_INVALID.
3128
3129         Patch based on a patch from Ryan Gammon.
3130
3131 2005-06-16  Colin Walters  <walters@verbum.org>
3132
3133         * bus/bus.c (bus_context_new): Set parser to NULL
3134         after we unref it (Patch from Chris Boscolo, #2174).
3135         
3136 2005-06-16  Colin Walters  <walters@verbum.org>
3137
3138         * python/dbus_bindings.pyx.in: Import size_t,
3139         __int64_t, __uint64_t, and __signed.
3140
3141         * dbus/dbus-sysdeps.c <HAVE_CMSGCRED> (write_credentials_byte):
3142         Define cmsg struct, output it.
3143         (_dbus_read_credentials_unix_socket):
3144         Use cmsg struct.
3145         
3146         Patch from Joe Markus Clarke for FreeBSD support.
3147         
3148 2005-06-16  Colin Walters  <walters@verbum.org>
3149
3150         * tools/dbus-send.c (append_array): Use strtok.
3151         (append_dict): New function.
3152         (type_from_name): New function, extracted from main.
3153         (main): Handle sending dicts.
3154
3155         * tools/dbus-print-message.c (print_iter): Print dict
3156         entries.
3157         
3158 2005-06-16  Colin Walters  <walters@verbum.org>
3159
3160         * glib/dbus-gvalue.c (marshal_basic): Marshal NULL string
3161         values as the empty string (#2948).
3162         
3163 2005-06-16  Colin Walters  <walters@verbum.org>
3164
3165         * dbus/Makefile.am:
3166         * mono/doc/Makefile.am:
3167         * test/glib/Makefile.am:
3168
3169         Fix srcdir != builddir issues (Patch from Chris Wilson, #3477)
3170
3171 2005-06-16  Colin Walters  <walters@verbum.org>
3172
3173         * dbus/dbus-marshal-header.c (_dbus_header_load): Set
3174         header byte order from expected byte order (Patch from Chris Wilson, #3475).
3175
3176         * dbus/dbus-marshal-byteswap.c (byteswap_body_helper): 
3177         Increment pointer after swapping fixed array.  Add assertion
3178         for array length.
3179                 
3180 2005-06-15  Colin Walters  <walters@verbum.org>
3181
3182         * dbus/dbus-sysdeps.c <HAVE_CMSGCRED> (_dbus_read_credentials_unix_socket):
3183         Fix call to dbus_set_error.  (Patch from Michael Banck, #3461)
3184         
3185 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
3186
3187         * NEWS: Update to 0.34
3188
3189 2005-06-15  David Zeuthen  <davidz@redhat.com>
3190
3191         * configure.in (LT_CURRENT): Revert back to 1 as the library
3192         hasn't changed and we've certainly not committed to protocol
3193         stability yet.  All this does is to break ABI. See commit note
3194         from hp@redhat.com 2005-05-05 for details.
3195         
3196 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
3197
3198         * dbus/dbus-connection.c (_dbus_connection_peer_filter): New method 
3199         (_dbus_connection_run_builtin_filters): New method
3200         (dbus_connection_dispatch): Run the builtin filters which in turn
3201         runs the peer filter which handles Ping messages.
3202
3203         * doc/TODO: 
3204          - Ping isn't handled: This patch fixes it
3205          
3206          - Add a test case for the Ping message: added TODO item
3207
3208 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
3209
3210         * dbus/dbus-message.c:
3211         (dbus_message_has_path): New method
3212         (dbus_message_has_interface): New method
3213         (dbus_message_has_member): New method
3214
3215         * dbus/dbus/dbus-sysdeps.c (_dbus_check_dir_is_private_to_user):
3216         New method
3217
3218         * dbus/dbus-keyring.c (_dbus_keyring_reload): Check to see that 
3219         the keyring directory is private to the user
3220
3221         * doc/TODO:
3222          - The convenience functions in dbus-bus.h should perhaps have
3223          the signatures that they would have if they were autogenerated
3224          stubs. e.g. the acquire service function. We should also evaluate
3225          which of these functions to include, in light of the fact that
3226          GLib/Qt native stubs will probably also exist.: Punted
3227
3228          - add dbus_message_has_path(), maybe has_member/interface:
3229          fixed in this patch
3230
3231          - in dbus-keyring.c, enforce that the keyring dir is not
3232          world readable/writable: Fixed in this patch
3233
3234 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
3235
3236         * dbus/dbus-marshal-validate.h: Added a new validation
3237         error code DBUS_VALIDITY_UNKNOWN_OOM_ERROR = -4 for 
3238         out of memory errors when validating signitures
3239
3240         * dbus/dbus-marshal-header.c: use DBUS_VALIDITY_UNKNOWN_OOM_ERROR
3241         in places where we previously used DBUS_VALID and a FALSE return 
3242         value to indicate OOM
3243         
3244         * dbus/dbus-marshal-validate.c (_dbus_validate_signature_with_reason):
3245         Use a stack to track the number of elements inside containers.  The 
3246         stack values are then used to validate that dict entries have only two
3247         elements within them.
3248         (validate_body_helper): check the reason for failure when validating
3249         varients
3250         
3251         * dbus/dbus-message.c (load_message): use 
3252         DBUS_VALIDITY_UNKNOWN_OOM_ERROR in places where we previously used 
3253         DBUS_VALID and a FALSE return value to indicate OOM
3254
3255         * doc/TODO: remove "- validate dict entry number of fields" as this
3256         patch fixes it
3257
3258 2005-06-14  David Zeuthen  <davidz@redhat.com>
3259
3260         * bus/bus.c (process_config_every_time): Drop existing conf-dir
3261         watches (if applicable) and add new watches
3262
3263         * bus/main.c (signal_handler): Handle SIGIO if using D_NOTIFY
3264         (main): Setup SIGIO signal handler if using D_NOTIFY
3265
3266         * bus/config-parser.h: Add prototype bus_config_parser_get_conf_dirs
3267
3268         * bus/config-parser.c (struct BusConfigParser): Add conf_dirs list
3269         (merge_included): Also merge conf_dirs list
3270         (bus_config_parser_unref): Clear conf_dirs list
3271         (include_dir): Add directory to conf_dirs list
3272         (bus_config_parser_get_conf_dirs): New function
3273
3274         * bus/dir-watch.[ch]: New files
3275
3276         * bus/Makefile.am (BUS_SOURCES): Add dir-watch.[ch]
3277
3278         * configure.in: Add checks for D_NOTIFY on Linux
3279
3280 2005-06-14  Colin Walters  <walters@verbum.org>
3281
3282         * glib/dbus-binding-tool-glib.c:
3283         * glib/dbus-gobject.c:
3284         * glib/dbus-gvalue.c: Fix indentation and brace style.
3285         
3286 2005-06-14  Ross Burton <ross@openedhand.com>.
3287
3288         * glib/dbus-glib.h: Make DBusGMethodInvocation
3289         a private structure.  Rearrange prototypes a bit.
3290         
3291         * glib/dbus-gproxy.c (dbus_g_proxy_invoke): Add
3292         documentation for first_arg_type.
3293         
3294         * glib/dbus-gobject.c: Move DBusGMethodInvocation
3295         here, add documentation.  Move dbus_g_method_return
3296         and dbus_g_method_return_error into public API
3297         section.
3298
3299 2005-06-14  Colin Walters  <walters@verbum.org>
3300
3301         * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller):
3302         Add missing return statements, noticed by Ross Burton.
3303         
3304 2005-06-13  Ross Burton <ross@openedhand.com>.
3305
3306         * glib/dbus-gobject.c: Handle errors on message
3307         demarshalling by sending error message back.
3308         * glib/dbus-gvalue.c: Initialize return variables.
3309
3310 2005-06-13  Colin Walters  <walters@verbum.org>
3311
3312         * glib/Makefile.am: Fix thinko in last patch.
3313
3314 2005-06-13  Colin Walters  <walters@verbum.org>
3315
3316         * glib/Makefile.am: Move dbus-gtype-specialized.c
3317         and dbus-gtype-specialized.h into a _HEADERS variable,
3318         install them.
3319
3320 2005-06-12  Colin Walters  <walters@verbum.org>
3321
3322         Async signals and various bugfixes and testing by
3323         Ross Burton <ross@openedhand.com>.
3324
3325         * glib/dbus-gvalue.h: (struct DBusBasicGValue): Delete.
3326         (dbus_gvalue_genmarshal_name_from_type)
3327         (dbus_gvalue_ctype_from_type): Moved to dbus-binding-tool-glib.c.
3328         (dbus_gtype_to_dbus_type): Renamed to dbus_gtype_from_signature.
3329         (dbus_g_value_types_init, dbus_gtype_from_signature)
3330         (dbus_gtype_from_signature_iter, dbus_gtype_to_signature)
3331         (dbus_gtypes_from_arg_signature): New function prototypes.
3332         (dbus_gvalue_demarshal): Take context and error arguments.
3333         (dbus_gvalue_demarshal_variant): New function.
3334         (dbus_gvalue_demarshal_message): New function.
3335         (dbus_gvalue_store): Delete.
3336
3337         * glib/dbus-gvalue.c:
3338
3339         File has been almost entirely rewritten; now we special-case
3340         more types such as DBUS_TYPE_SIGNATURE, handle arrays and
3341         hash tables correctly, etc.  Full support for recursive values
3342         is not yet complete.
3343
3344         * glib/dbus-gproxy.c (dbus_g_proxy_class_init): Change last
3345         argument of signal to G_TYPE_POINTER since we now pass a
3346         structure.
3347         (lookup_g_marshaller): Delete in favor of
3348         _dbus_gobject_lookup_marshaller.
3349         (marshal_dbus_message_to_g_marshaller): Use
3350         _dbus_gobject_lookup_marshaller and dbus_gvalue_demarshal_message
3351         to handle remote signal callbacks.
3352         (dbus_g_proxy_new_from_proxy): New function; creates a new
3353         DBusGProxy by copying an existing one.
3354         (dbus_g_proxy_get_interface, dbus_g_proxy_set_interface)
3355         (dbus_g_proxy_get_path): New functions.
3356         (dbus_g_proxy_marshal_args_to_message): New function;
3357         factored out of existing code.
3358         (DBUS_G_VALUE_ARRAY_COLLECT_ALL): Collect all arguments
3359         from a varargs array.
3360         (dbus_g_proxy_begin_call_internal): New function.
3361         (dbus_g_proxy_end_call_internal): New function.
3362         (dbus_g_proxy_begin_call): Take GTypes instead of DBus types
3363         as arguments; simply invoke dbus_g_proxy_begin_call_internal
3364         after collecting args into value array.
3365         (dbus_g_proxy_end_call): Take GTypes instead of DBus types;
3366         invoke dbus_g_proxy_end_call_internal.
3367         (dbus_g_proxy_invoke): Simply invoke begin_call_interanl and
3368         end_call_internal.
3369         (dbus_g_proxy_call_no_reply): Take GTypes instead of DBus
3370         types.
3371         (array_free_all): New function.
3372         (dbus_g_proxy_add_signal): Take GTypes.
3373
3374         * glib/dbus-gobject.h:
3375         (_dbus_glib_marshal_dbus_message_to_gvalue_array): Delete.
3376         (_dbus_gobject_get_path, _dbus_gobject_lookup_marshaller):
3377         Prototype.
3378
3379         * glib/dbus-gobject.c: Add a global marshal_table hash which
3380         stores mappings from type signatures to marshallers.  Change lots
3381         of invocations of dbus_gtype_to_dbus_type to
3382         dbus_gtype_to_signature.
3383         (_dbus_glib_marshal_dbus_message_to_gvalue_array): Delete.
3384         (introspect_signals): Fix test for query.return_type.
3385         (set_object_property): Update invocation of dbus_gvalue_demarshal.
3386         (invoke_object_method): Many changes.  Handle asynchronous
3387         invocations.  Convert arguments with
3388         dbus_gvalue_demarshal_message.  Handle errors.  Use
3389         DBusSignatureIter instead of strlen on args. Handle all arguments
3390         generically.  Special-case variants.
3391         (dbus_g_method_return, dbus_g_method_return_error): New function.
3392         (DBusGSignalClosure): New structure, closes over signal
3393         information.
3394         (dbus_g_signal_closure_new): New function.
3395         (dbus_g_signal_closure_finalize): New function.
3396         (signal_emitter_marshaller): New function; is special marshaller
3397         which emits signals on bus.
3398         (export_signals): New function; introspects object signals and
3399         connects to them.
3400         (dbus_g_object_type_install_info): Take GType instead of
3401         GObjectClass.
3402         (dbus_g_connection_register_g_object): Invoke export_signals.
3403         (dbus_g_connection_lookup_g_object): New function.
3404         (DBusGFuncSignature) New structure; used for mapping type
3405         signatures to marshallers.
3406         (funcsig_hash): New function; hashes DBusGFuncSignature.
3407         (funcsig_equal): New function; compares DBusGFuncSignature.
3408         (_dbus_gobject_lookup_marshaller): New function.
3409         (dbus_g_object_register_marshaller): New function; used to
3410         register a marshaller at runtime for a particular signature.
3411
3412         * glib/dbus-gmain.c (_dbus_gmain_test): Add various tests.
3413
3414         * glib/dbus-binding-tool-glib.h: Add DBUS_GLIB_ANNOTATION_ASYNC
3415         which notes a server method implementation should be
3416         asynchronous.
3417
3418         * glib/dbus-binding-tool-glib.c
3419         (dbus_binding_tool_output_glib_server): Call
3420         dbus_g_value_types_init.
3421         (write_formal_parameters): Use dbus_gtype_from_signature.  Handle
3422         variants specially.
3423         (dbus_g_type_get_lookup_function): Turn GType into an invocation
3424         of a lookup function.
3425         (write_args_for_direction): Use dbus_g_type_get_lookup_function.
3426         (write_untyped_out_args): New method; write output arguments.
3427         (write_formal_declarations_for_direction): Function for
3428         writing prototypes.
3429         (write_formal_parameters_for_direction): Function for
3430         writing implementations.
3431         (write_typed_args_for_direction): Function for writing
3432         arguments prefixed with GTypes.
3433         (write_async_method_client): Write out async version
3434         of method.
3435
3436         * glib/dbus-binding-tool-glib.c: Include dbus-gvalue-utils.h.
3437         (dbus_g_type_get_marshal_name): Move mapping from GType
3438         to marshal name into here.
3439         (dbus_g_type_get_c_name): Move into here.
3440         (compute_marshaller): Convert signature to type with
3441         dbus_gtype_from_signature, use dbus_g_type_get_marshal_name.
3442         (compute_marshaller_name): Ditto.
3443         (compute_marshaller): Handle async signal annotations.
3444         (gather_marshallers): Return if we don't have a known
3445         prefix.
3446         (generate_glue): Collect introspection blob here, and
3447         write all of the blob at the end.  This allows an object
3448         with multiple interfaces to work.
3449         Mark async methods in introspection blob.
3450
3451         * glib/Makefile.am (libdbus_glib_1_la_SOURCES): Add
3452         dbus-gtype-specialized.c, dbus-gtype-specialized.h,
3453         dbus-gvalue-utils.h, dbus-gvalue-utils.c.
3454
3455         * dbus/dbus-glib.h: Don't include dbus-protocol.h; this
3456         avoids people accidentally using DBUS_TYPE_* which should
3457         not be necessary anymore.
3458         Do include dbus-gtype-specialized.h, which are utilities
3459         for GLib container types.
3460         Add various #defines for types such as
3461         DBUS_TYPE_G_BOOLEAN_ARRAY.
3462         (DBusGValueIterator, DBusGValue): Define, not fully used
3463         yet.
3464         (dbus_g_value_get_g_type): Type for recursive value.
3465         (dbus_g_value_open, dbus_g_value_iterator_get_value)
3466         (dbus_g_value_iterator_get_values, dbus_g_value_iterator_recurse)
3467         (dbus_g_value_free): Prototypes.
3468         (dbus_g_object_register_marshaller, dbus_g_proxy_new_from_proxy): Prototype.
3469         (dbus_g_proxy_set_interface): Prototype.
3470         (dbus_g_proxy_begin_call, dbus_g_proxy_end_call)
3471         (dbus_g_proxy_call_no_reply): Take GLib types instead of DBus
3472         types.
3473         (dbus_g_proxy_get_path, dbus_g_proxy_get_interface):
3474         Accessors.
3475         (DBusGAsyncData, DBusGMethodInvocation): Structures for
3476         doing async invocations.
3477         (dbus_g_method_return, dbus_g_method_return_error):
3478         Prototypes.
3479         * doc/dbus-tutorial.xml: Update GLib section.
3480         
3481         * tools/dbus-viewer.c (load_child_nodes): Update
3482         for new invocation type of dbus_g_proxy_end_call.
3483         (load_from_service_thread_func): Ditto.
3484
3485         * tools/print-introspect.c (main): Ditto.
3486
3487         * tools/dbus-names-model.c (have_names_notify)
3488         (names_model_reload, names_model_set_connection)
3489         Use GTypes.
3490
3491         * python/Makefile.am (INCLUDES): Define DBUS_COMPILATION,
3492         needed since Python bindings use GLib bindings.
3493
3494         * test/glib/Makefile.am (INCLUDES): Define DBUS_COMPILATION.
3495         Add --prefix argument.
3496
3497         * tools/Makefile.am: Define DBUS_COMPILATION.  Remove
3498         unneeded --ignore-unsupported arg.
3499         
3500         * test/glib/test-service-glib.c: 
3501         * test/glib/test-service-glib.xml:
3502         * test/glib/test-dbus-glib.c: Add many more tests.
3503
3504 2005-06-06  David Zeuthen  <davidz@redhat.com>
3505
3506         * doc/TODO: Add item about need to remove deprecated functions.
3507
3508         * dbus/dbus-connection.h: Add prototype for dbus_connection_disconnect
3509
3510         * dbus/dbus-connection.c (dbus_connection_disconnect): New function
3511         to repair the ABI which was broken with the last commit.
3512
3513 2005-06-02  John (J5) Palmieri <johnp@redhat.com>
3514
3515         *  dbus/dbus-connection.c, dbus/dbus-connection.h 
3516         (dbus_connection_disconnect): renamed to dbus_connection_close 
3517         for API symmetry with dbus_connection_open
3518         (_dbus_connection_open_internal): 
3519         s/dbus_connection_disconnect/dbus_connection_close
3520
3521         * dbus/dbus-bus.c (dbus_bus_get):
3522         s/dbus_connection_disconnect/dbus_connection_close
3523
3524         * bus/connection.c (bus_connections_unref, 
3525         bus_connections_setup_connection, bus_connections_expire_incomplete):
3526         s/dbus_connection_disconnect/dbus_connection_close
3527
3528         * bus/dispatch.c (bus_dispatch, kill_client_connection, 
3529         kill_client_connection_unchecked, check_hello_connection):
3530         s/dbus_connection_disconnect/dbus_connection_close
3531
3532         * bus/bus.c (new_connection_callback):
3533         s/dbus_connection_disconnect/dbus_connection_close
3534
3535         * tools/dbus-send.c (main):
3536         s/dbus_connection_disconnect/dbus_connection_close
3537
3538         * test/glib/test-profile.c (no_bus_thread_func, with_bus_thread_func):
3539         s/dbus_connection_disconnect/dbus_connection_close
3540         
3541         * test/test-service.c (path_message_func, filter_func):
3542         s/dbus_connection_disconnect/dbus_connection_close
3543         
3544         * doc/TODO: remove connection_open/connection_disconnect lacks symmetry         item that was just fixed
3545         
3546 2005-05-25  Colin Walters  <walters@verbum.org>
3547
3548         * dbus/dbus-protocol.h: Move various bus service #defines such
3549           as DBUS_SERVICE_DBUS and DBUS_NAME_FLAG_PROHIBIT_REPLACEMENT to
3550           dbus/dbus-shared.h.
3551         * dbus/dbus-shared.h: Various defines moved here.
3552         * dbus/dbus-marshal-header.c: Include dbus-shared.h.
3553
3554 2005-05-25  John (J5) Palmieri  <johnp@redhat.com>
3555
3556         * python/__init__.py: Python bindings deserve a minor version
3557         update.  Upped to (0, 40, 2)
3558
3559 2005-05-24  John (J5) Palmieri  <johnp@redhat.com>
3560
3561         * python/decorators.py: add explicitly_pass_message decorator
3562         for passing in the dbus message as keyword for edge case signal
3563         handling
3564
3565         * python/matchrules.py (SignalMatchRule.__repr__): fix output
3566         to conform with what dbus expects for match rules
3567         (SignalMatchRule.execute): add the dbus message as a keyword
3568         if the signal handler has requested it
3569
3570         * python/examples/example/signal-recipient.py: added some more
3571         examples on how to hook up to signals
3572
3573 2005-05-23  John (J5) Palmieri  <johnp@redhat.com>
3574
3575         * python/decorators.py: import dbus_bindings
3576
3577         * python/matchrules.py (SignalMatchRule, SignalMatchTree, 
3578         SignalMatchNode): new classes that implement wildcard signal
3579         callback matching using a tree lookup. Heavily modified from a
3580         patch sent by Celso Pinto (fd.o bug #3241)
3581
3582         * _dbus.py (add_signal_receiver, remove_signal_receiver, _signal_func):
3583         use new match classes to handle signals.
3584
3585 2005-05-19  John (J5) Palmieri  <johnp@redhat.com>
3586         
3587         * python/dbus_bindings.pyx.in: s/TYPE_PATH/TYPE_OBJECT_PATH
3588
3589 2005-05-18  Havoc Pennington  <hp@redhat.com>
3590
3591         * configure.in: use GLIB_GNU_GETTEXT to get INTLLIBS and require
3592         gettext. Not really worth requiring yet perhaps, but any
3593         production quality 1.0 would require it so we should go ahead and
3594         get things set up. We do have a couple token calls to
3595         bindtextdomain in the code already.
3596
3597 2005-05-16  John (J5) Palmieri  <johnp@redhat.com>
3598
3599         * glib/dbus-gmain.c (io_handler_dispatch): fix deadlock
3600         when using recursive g_main_loops
3601
3602         * python/_dbus.py (class Bus): add the ProxyObjectClass
3603         alias for ProxyObject to make it easier for the Twisted 
3604         networking framework to integrate dbus.
3605
3606         * python/proxies.py (class ProxyObject): add the ProxyMethodClass
3607         alias for ProxyMethod to make it easier for the Twisted 
3608         networking framework to integrate dbus. 
3609
3610 2005-05-11  Ross Burton  <ross@openedhand.com>
3611
3612         * glib/dbus-glib-tool.c: Add --prefix argument.
3613         * glib/dbus-binding-tool-glib.h: Add prefix argument.
3614         * glib/dbus-binding-tool-glib.c (compute_marshaller_name):
3615         Add prefix argument.
3616         (generate_glue): Pass prefix argument down.
3617         (dbus_binding_tool_output_glib_server): Pass prefix to
3618         glib-genmarshal.
3619         
3620 2005-05-11  Colin Walters  <walters@verbum.org>
3621
3622         * tools/dbus-send.c (append_array): New function.
3623         (append_arg): Broken out from main.
3624         (main): Add cheesy hack to send arrays and variants.
3625         (usage): Update.
3626         * tools/dbus-print-message.c (print_iter): Broken out
3627         from main.
3628
3629 2005-05-11  Colin Walters  <walters@verbum.org>
3630
3631         * dbus/dbus-signature.c (dbus_signature_iter_get_signature):
3632         New function, returns signature string for signature iter.
3633         * dbus/dbus-signature.h: Prototype it.
3634         * dbus/dbus-message.c (dbus_message_iter_get_signature):
3635         New function, returns signature string for message iter.
3636         (dbus_message_iter_get_array_len): New function, returns
3637         length of array.
3638         (dbus_message_iter_get_fixed_array): Fix assertion; this
3639         function should be used when the iter is pointing to the
3640         contents of an array
3641         * dbus/dbus-message.h: Prototypes.
3642         * dbus/dbus-marshal-recursive.c (_dbus_type_reader_get_array_length):
3643         New function; returns length of an array.
3644         * dbus/dbus-marshal-recursive.h: Prototype it.
3645         
3646 2005-05-11  Colin Walters  <walters@verbum.org>
3647
3648         * dbus/dbus-sysdeps-util.c <!HAVE_POSIX_GETPWNAM_R>: Fix
3649         compilation error.
3650         
3651 2005-05-08  Havoc Pennington  <hp@redhat.com>
3652
3653         * dbus/dbus-sysdeps-util.c (_dbus_become_daemon): write the
3654         daemon's pid, not the parent's pid, to the file descriptor.
3655         Reported by Taj Morton.
3656
3657 2005-05-05  Havoc Pennington  <hp@redhat.com>
3658
3659         * configure.in (LT_*): add notes on how the libtool versioning
3660         works to save thinking. Increment soname to indicate protocol
3661         breakage (though really the library interface hasn't changed I
3662         guess)
3663
3664         * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated):
3665         verify the GUID received from server matches what we were
3666         expecting, if we had an expectation
3667
3668         * dbus/dbus-auth.c (send_ok): send GUID along with the OK command
3669         (_dbus_auth_get_guid_from_server): new function
3670         (send_begin): parse the OK args
3671
3672         * doc/dbus-specification.xml: add GUID to the auth protocol
3673
3674 2005-05-05  John (J5) Palmieri  <johnp@redhat.com>
3675
3676         * Fix my name in previous changelog ;)
3677
3678         * python/proxies.py (ProxyObject.__getattr__): add further patch
3679         from Anthony Baxter to throw an AttributeError when python 
3680         __special__ functions are called instead of marshling them over 
3681         the bus (Bug#1685 comment 3).
3682
3683 2005-05-04  John (J5) Palmieri  <johnp@redhat.com>
3684
3685         * python/Makefile.am: changed to use pyexecdir for the binding
3686         shared libraries (Bug#2494)
3687
3688         * python/exceptions.py: bring exceptions over from the bindings
3689         so they can be used in applications (Bug#2036)
3690         Make all exceptions derive from DBusException
3691
3692         * python/_dbus.py, python/proxies.py: implement __repr__ in a couple
3693         of classes so that print obj doesn't throw an exception (Bug #1685)
3694
3695 2005-05-03  Ross Burton  <ross@openedhand.com>
3696
3697         * glib/dbus-gobject.c (dbus_g_connection_register_g_object):
3698         Return if we get an error during registration.  Set up a
3699         weak reference on object to unregister if object is destroyed.
3700         (unregister_gobject): New function.
3701         
3702 2005-05-01  John (J5) Palmieri  <johnp@redhat.com>
3703
3704         * python/dbus_bindings.pyx.in: 
3705         - added new type classes for hinting to the marashaler what type 
3706         to send over the wire
3707         - added int16 and uint16 marshalers
3708         - Fixed a bug in the type constants that caused int32 to go out
3709         as uint16 over the wire
3710         * python/dbus.py: split up into different files and renamed _dbus.py
3711         * python/__init__.py, python/_util.py, python/decorators.py, 
3712         python/exceptions.py, python/proxies.py, python/services.py,
3713         python/types.py: new files split off from dbus.py
3714         * python/Makefile.am: Add new files, remove dbus.py and 
3715         install all python files to <python module dir>/dbus
3716         * python/examples/*: Added #!/usr/bin/env python to the top of
3717         every example.  Patch provided by Tatavarty Kalyan
3718
3719 2005-04-25  John (J5) Palmieri  <johnp@redhat.com>
3720
3721         * NEWS: Update to 0.33
3722
3723 2005-04-25  John (J5) Palmieri  <johnp@redhat.com>
3724
3725         * python/dbus_bindings.pyx.in (send_with_reply_handlers): New send
3726         method for doing async calls
3727         (_pending_call_notification): New C function for handling pendning call
3728         callbacks
3729         (set_notify): New method for setting pending call notification
3730         
3731         * python/dbus.py: new version tuple "version" is set at (0, 40, 0)
3732         Async capabilities added to remote method calls
3733         (Sender): class removed
3734         (RemoteService): class removed
3735         (ObjectTree): class removed for now
3736         (RemoteObject): Renamed to ProxyObject
3737         (RemoteMethod): Renamed to ProxyMethod
3738         (method): Decorator added for decorating python methods as dbus methods
3739         (signal): Decorator added for decorating python methods as signal emitters
3740         (ObjectType): Metaclass added for generating introspection data and the
3741         method callback vtable
3742         (Interface): Wrapper class added to wrap objects in a dbus interface
3743         (Object): Uses ObjectType as its metaclass and exports Introspect
3744         of the org.freedesktop.DBus.Introspectable interface
3745         (ValidationException, UnknownMethodException): new exceptions
3746
3747         * python/examples/*: Modified to fit with the new bindings
3748
3749 2005-04-23  Havoc Pennington  <hp@redhat.com>
3750
3751         * dbus/dbus-message.c (dbus_message_append_args): fix doc comment,
3752         reported by Tony Houghton
3753
3754         * test/test-service.c (main): test
3755         dbus_connection_get_object_path_data()
3756
3757         * dbus/dbus-object-tree.c (find_handler): be sure we always init
3758         the exact_match
3759         (_dbus_object_tree_get_user_data_unlocked): new function used by
3760         dbus_connection_get_object_path_data()
3761         (do_register): add assertion test for get_user_data_unlocked
3762         (object_tree_test_iteration): more tests
3763
3764         * dbus/dbus-connection.c (dbus_connection_get_object_path_data):
3765         new function from Dan Reed to let you get the user data from 
3766         dbus_connection_register_object_path()
3767
3768 2005-04-23  John (J5) Palmieri  <johnp@redhat.com>
3769
3770         * dbus/dbus-marshal-recursive-util.c: Fixed buffer overflow
3771         in numerous places that did not account for the NULL terminator
3772         (signature_from_seed): changed the manual string copy loop to 
3773         just use strcpy instead
3774         make check should now pass
3775
3776 2005-04-19  John (J5) Palmieri  <johnp@redhat.com>
3777
3778         * dbus/dbus-marshal-header.c (_dbus_header_create): Fix assert
3779         so that it allows messages that are not signals to pass in 
3780         NULL as the interface.
3781
3782 2005-04-18  David Zeuthen  <davidz@redhat.com>
3783
3784         * glib/dbus-gmain.c (io_handler_destroy_source): 
3785         (timeout_handler_destroy_source, connection_setup_free): 
3786         Also unref the source to avoid memory leaks.
3787
3788 2005-04-13  David Zeuthen  <davidz@redhat.com>
3789
3790         * bus/config-parser.c (bus_config_parser_new): Bump this to a
3791         more reasonable, yet still totally arbitrary, value :-). 
3792
3793 2005-04-13  David Zeuthen  <davidz@redhat.com>
3794
3795         * doc/TODO: Added an "important for 1.0" item about selinux
3796         allow/deny messages
3797
3798 2005-04-13  David Zeuthen  <davidz@redhat.com>
3799
3800         * bus/selinux.c: Add c-file-style to top of file
3801         (log_audit_callback): Don't free the data here anymore
3802         (bus_selinux_check): Don't take spid and tpid since appending
3803         that to auxdata may OOM.
3804         (bus_selinux_allows_acquire_service): Handle OOM and signal back
3805         to the caller if we are OOM by taking an error object.
3806         (bus_selinux_allows_send): -do-
3807
3808         * bus/selinux.h: Fix prototypes for bus_selinux_allows_acquire_service
3809         and bus_selinux_allows_send
3810
3811         * bus/bus.c (bus_context_check_security_policy): Pass error and
3812         pass on OOM thrown by bus_selinux_allows_send()
3813
3814         * bus/services.c (bus_registry_acquire_service): Pass error and
3815         pass on OOM thrown by bus_selinux_allows_acquire_service()
3816
3817 2005-04-13  Havoc Pennington  <hp@redhat.com>
3818
3819         * glib/dbus-gmain.c (message_queue_dispatch): only dispatch one
3820         message at a time to avoid monopolizing the main loop, bug 
3821         #2953 from Benjamin Otte
3822
3823 2005-04-09  Havoc Pennington  <hp@redhat.com>
3824
3825         * dbus/dbus-string.c (copy): change a memcpy to memmove due to
3826         possible overlap, fix from Daniel Reed
3827         (fixup_alignment): fix signedness warnings
3828         (_dbus_string_append_unichar): ditto
3829
3830 2005-04-09  Havoc Pennington  <hp@redhat.com>
3831
3832         * dbus/dbus-message-util.c (_dbus_message_test): fix signedness warning
3833
3834         * glib/dbus-glib-tool.c (main): fix warning
3835
3836         * glib/dbus-binding-tool-glib.c (generate_glue): fix warning
3837
3838         * dbus/dbus-connection.c (dbus_connection_read_write_dispatch):
3839         add a new function that can be used in simple applications that
3840         don't have a main loop and are willing to block
3841
3842 2005-04-05  David Zeuthen  <davidz@redhat.com>
3843
3844         Fix https://bugs.freedesktop.org/show_bug.cgi?id=2889
3845
3846         * glib/dbus-gmain.c:
3847         (io_handler_destroy_source): Remove from list of IO handlers
3848         of the ConnectionSetup object
3849         (timeout_handler_destroy_source): -do- for timeout handlers
3850         (io_handler_source_finalized): Don't remove from list since
3851         we now do that in io_handler_destroy_source(). Renamed from
3852         io_handler_source_destroyed
3853         (timeout_handler_source_destroyed): -do- for timeout handlers
3854         (connection_setup_free): It is now safe to iterate over all
3855         IO and timeout handlers as the _destroy_source removes them
3856         from the list synchronously
3857
3858 2005-03-30  Havoc Pennington  <hp@redhat.com>
3859
3860         * configure.in: change check to gtk 2.4
3861
3862         * tools/dbus-viewer.c (name_combo_changed_callback): remove
3863         gtk_combo_box_get_active_text() usage to decrement GTK requirement
3864         to 2.4
3865
3866 2005-03-29  John (J5) Palmieri  <johnp@redhat.com>
3867
3868         * News: Update 0.32
3869
3870         * HACKING: Fixed realease instructions.  configure.in should be updated to
3871           the next release by the person who made the last release.
3872
3873 2005-03-29  John (J5) Palmieri  <johnp@redhat.com>
3874
3875         * python/lvalue_cast_post_process.py - removed.  Patch has been
3876           submitted to Pyrex maintainers that fixes gcc4.0 errors
3877
3878         * python/Makefile.am: removed refrences to lvalue_cast_post_process.py
3879
3880 2005-03-24  Daniel Reed  <n@ml.org>
3881
3882         * tools/Makefile.am: Make print-introspect and
3883         dbus-bus-introspect.xml building conditional on HAVE_GLIB.
3884
3885 2005-03-22  John (J5) Palmieri  <johnp@redhat.com>
3886
3887         * tools/Makefile.am: Patch by Colin Walters that fixes distcheck
3888
3889         * dbus/dbus-userdb.c, dbus/dbus-userdb-util.c: Add patch we have 
3890           had in Red Hat packages for a while but for some reason never 
3891           got merged upstream
3892           (_dbus_is_a_number): New checks if a string
3893           can be converted to a number and does the conversion if it can
3894           (_dbus_user_database_lookup): Add check to see if the given username
3895           is a udi.  This allows udi's to be used instead of usernames in the
3896           config file.
3897           (_dbus_user_database_lookup_group): Add check to see if the given groupname
3898           is a gdi.  This allows gdi's to be used instead of groupnames in the
3899           config file.
3900
3901 2005-03-21  John (J5) Palmieri  <johnp@redhat.com>
3902
3903         * python/lvalue_cast_post_process.py - added post processor to fix Pyrex
3904           code so that it compiles with gcc4.0
3905
3906         * python/Makefile.am: Added lvalue_cast_post_process.py to EXTRA_DIST
3907           run dbus_bindings.c through lvalue_cast_post_process.py and copy the
3908           results back to dbus_binding.c
3909
3910 2005-03-20  Colin Walters  <walters@verbum.org>
3911
3912         Patch suggested by Inguva Rajasekhar <ringuva@novell.com>.
3913
3914         * configure.in: Require GTK+ 2.6.
3915         
3916 2005-03-20  Colin Walters  <walters@verbum.org>
3917
3918         * Makefile.am (SUBDIRS, DIST_SUBDIRS): Build tools before test.
3919
3920 2005-03-17  Tom Parker  <palfrey@tevp.net>
3921
3922         * dbus/dbus-userdb.c (_dbus_user_database_lookup): Don't
3923         print DBUS_UID_UNSET; instead print passed username.  Also
3924         be sure to actually use gid looked up in cache.
3925         
3926         * dbus/dbus-userdb-util.c (_dbus_user_database_lookup_group): Ditto
3927         for DBUS_GID_UNSET and groupname.
3928
3929 2005-03-17  Colin Walters  <walters@verbum.org>
3930
3931         * bus/print-introspect.c: Move to tools/.
3932         * bus/run-with-tmp-session-bus.sh: Ditto.
3933         
3934         * glib/Makefile.am (dbus-glib-bindings.h): Move
3935         generation to tools/Makefile.am.
3936
3937         * test/glib/run-test.sh: Update to handle move
3938         of run-with-tmp-session-bus.sh.
3939
3940         * test/glib/test-service-glib.c: Update to handle
3941         move of dbus-glib-bindings.h.
3942
3943         * tools/print-introspect.c: Moved here
3944         from bus/, and ported to GLib bindings.
3945
3946         * tools/run-with-tmp-session-bus.sh: Moved here
3947         from bus/.
3948
3949         * tools/Makefile.am: Generate dbus-glib-bindings.h
3950         and dbus-bus-introspect.xml here.
3951
3952         * tools/.cvsignore, glib/.cvsignore, bus/.cvsignore:
3953         Update.
3954
3955 2005-03-17  Colin Walters  <walters@verbum.org>
3956
3957         * bus/driver.c (write_args_for_direction): Use
3958         _dbus_string_get_const_data to retrieve string;
3959         _dbus_string_get_const_data_len doesn't actually return
3960         a NULL-terminated substring.
3961
3962         * test/glib/test-service-glib.c: Include dbus-glib-bindings.h.
3963         (main): Change to use org_freedesktop_DBus_request_name
3964         instead of using g_proxy_begin_call/end_call.
3965
3966 2005-03-15  Joe Shaw  <joeshaw@novell.com>
3967
3968         * mono/ProxyBuilder.cs (BuildFinalizer): Fix some invalid IL when
3969         generating the finalizer.  Fixes from Ben Maurer.
3970
3971 2005-03-12  Joe Shaw  <joeshaw@novell.com>
3972
3973         * mono/BusDriver.cs: Update method names: ListServices
3974         becomes ListNames; GetOwner becomes GetNameOwner.
3975
3976         * mono/ProxyBuilder.cs (BuildFinalizer): Need to load arg 0
3977         onto the eval stack when removing the delegate.
3978
3979 2005-03-12  Joe Shaw  <joeshaw@novell.com>
3980
3981         * mono/dbus-sharp.dll.config.in: Don't hardcode 0 for
3982         LT_CURRENT.  Set it to the autoconf variable.
3983                                                                                 
3984         * mono/ProxyBuilder.cs: Add a finalizer to the generated proxy
3985         classes that disconnects the signal handler delegate from the
3986         service object.  Fixes a big leak of proxy objects on the
3987         client side of things.  Patch from Ben Maurer
3988         <bmaurer@ximian.com>
3989
3990 2005-03-12  Colin Walters  <walters@verbum.org>
3991
3992         * bus/driver.c (write_args_for_direction): New function,
3993         parses a type signature into arguments and outputs to
3994         XML.
3995         (bus_driver_handle_introspect): Use it instead of
3996         hardcoding XML for certain signatures.
3997         
3998         * bus/Makefile.am (dbus-bus-introspect.xml): Add
3999         dependency on dbus-daemon.
4000
4001         * glib/dbus-glib-tool.c (main): Parse ignore_unsupported
4002         argument, pass it to dbus_binding_tool_output_glib_client.
4003
4004         * glib/dbus-binding-tool-glib.c
4005         (generate_client_glue): Protect against multiple inclusion.
4006         (dbus_binding_tool_output_glib_client): Add
4007         G_BEGIN_DECLS/G_END_DECLS.
4008
4009         * glib/dbus-binding-tool-glib.c (compute_client_method_name):
4010         Change to just take iface prefix directly.
4011         (write_formal_parameters): Clarify error message.
4012         (check_supported_parameters): New function; checks to see type
4013         signatures of method parameters are supported.
4014         (generate_client_glue): Handle ignore_unsupported flag.
4015         (dbus_binding_tool_output_glib_client): Handle ignore_unsupported
4016         parameter.
4017
4018         * glib/Makefile.am (dbus-glib-bindings.h): Pass
4019         --ignore-unsupported by default until glib bindings
4020         support arrays.
4021
4022 2005-03-11  Colin Walters  <walters@verbum.org>
4023
4024         * glib/Makefile.am: Generate dbus-glib-bindings.h and
4025         install it.
4026
4027         * bus/print-introspect.c: New file; prints introspection
4028         data for a given name and object path.
4029
4030         * bus/run-with-tmp-session-bus.sh: New file, refactored
4031         from test/glib/run-test.sh.  Creates a temporary session
4032         bus and runs another program.
4033
4034         * test/glib/run-test.sh: Refactor to invoke
4035         run-with-tmp-session-bus.sh.
4036
4037         * bus/driver.c (bus_driver_handle_introspect): Fix to print new
4038         introspection format.  Also change to use DBUS_TYPE_x_AS_STRING
4039         macros instead of hardcoding.
4040
4041         * glib/.cvsignore, bus/.cvsignore, test/glib/.cvsignore: Update.
4042
4043 2005-03-11  Joe Shaw  <joeshaw@novell.com>
4044
4045         * dbus/dbus-connection.c (dbus_connection_send_with_reply): Remove
4046         this unref; it doesn't match up evenly in some codepaths.
4047         (_dbus_connection_block_pending_call): Unref at every exitpoint;
4048         this evenly matches with the ref near the top of this function.
4049
4050 2005-03-09  Joe Shaw  <joeshaw@novell.com>
4051
4052         * dbus/dbus-object-tree.c
4053         (_dbus_object_tree_unregister_and_unlock): If checks are enabled
4054         and we try to unregister a path that's not registered, still go
4055         through the process of unlocking and don't just return.
4056
4057 2005-03-09  Colin Walters  <walters@verbum.org>
4058
4059         * glib/dbus-gproxy.c (dbus_g_proxy_invoke): New method; calls
4060         to this are generated for client-side wrappers.  Invokes a
4061         D-BUS method and returns reply values.  
4062
4063         * glib/dbus-binding-tool-glib.c (write_args_sig_for_direction): New
4064         function; writes signature string for argument direction.
4065         (write_args_for_direction): Change to pass input values directly
4066         instead of via address, and fix indentation.
4067         (generate_client_glue): Change to invoke dbus_g_proxy_invoke.  Also
4068         make generated wrappers inlineable.
4069
4070         * dbus/dbus-message.c (dbus_message_iter_get_fixed_array): Add
4071         note about using dbus_type_is_fixed.
4072
4073         * dbus/dbus-marshal-basic.c (_dbus_type_is_fixed): Moved to
4074         dbus/dbus-signature.c as dbus_type_is_fixed.
4075
4076         All callers updated.
4077
4078         * dbus/dbus-signature.c (dbus_type_is_fixed): Moved here
4079         from dbus/dbus-marshal-basic.c:_dbus_type_is_fixed.
4080
4081         * dbus/dbus-signature.h: Prototype.
4082
4083         * glib/dbus-binding-tool-glib.c (compute_marshaller_name): Fix
4084         error printf code.
4085
4086         * test/glib/test-dbus-glib.c (main): Be sure to clear error as
4087         appropriate instead of just freeing it.
4088         (main): Free returned strings using g_free.
4089
4090         * test/glib/Makefile.am (test-service-glib-glue.h)
4091         (test-service-glib-bindings.h): Add dependency on dbus-binding-tool.
4092
4093         * glib/dbus-gvalue.c (MAP_BASIC): Refactored from MAP_BASIC_INIT;
4094         simply maps a simple D-BUS type to GType.
4095         (dbus_dbus_type_to_gtype): Function which maps D-BUS type to
4096         GType.
4097         (dbus_gvalue_init): Just invoke dbus_dbus_type_to_gtype and
4098         initialize the value with it.
4099         (dbus_gvalue_binding_type_from_type): Unused, delete.
4100         (dbus_gvalue_demarshal): Switch to hardcoding demarshalling for
4101         various types instead of unmarshalling to value data directly.
4102         Remove can_convert boolean.
4103         (dbus_gvalue_marshal): Remove duplicate initialization; switch to
4104         returning directly instead of using can_convert boolean.
4105         (dbus_gvalue_store): New function; not related to D-BUS per-se.
4106         Stores a GValue in a pointer to a value of its corresponding C
4107         type.
4108
4109         * glib/dbus-gvalue.h: Remove dbus_gvalue_binding_type_from_type,
4110         add dbus_gvalue_store.
4111
4112 2005-03-08  Joe Shaw  <joeshaw@novell.com>
4113
4114         Fix a bunch of lifecycle and memory management problems
4115         in the mono bindings.
4116
4117         * mono/Arguments.cs (Arguments): Implement IDisposable
4118
4119         * mono/Bus.cs (Bus): Don't allow public instantiation.  This is
4120         strictly a static class.
4121
4122         * mono/Connection.cs: Move the DBusObjectPathVTable and associated
4123         delegates into this file.
4124         (Connection): Implement IDisposable.
4125         (Dispose): Disconnect the connection and set the raw connection
4126         pointer to IntPtr.Zero.
4127         (~Connection): Call Dispose().
4128         (RegisterObjectPath): Added.  Manages the registration of object
4129         paths so we can cleanly disconnect them at dispose/finalize time.
4130         (UnregisterObjectPath): Ditto.
4131         (set_RawConnection): Unregister all of the object paths when
4132         changing the underlying DBusConnection.  Add them back onto the
4133         new connection, if any.
4134
4135         * mono/Handler.cs: Don't implement IDisposable; it doesn't use any
4136         more unmanaged resources anymore, so it's not necessary.  Move all
4137         the DBusObjectPathVTable stuff out of here.
4138         (Handler): Save references to our delegates so that they don't get
4139         finalized.  Call Connection.RegisterObjectPath() instead of
4140         dbus_connection_register_object_path() directly.
4141         (Message_Called): Dispose the message after we're finished with
4142         it.
4143
4144         * mono/Message.cs (Message): Implement IDisposable.
4145         (Dispose): Dispose the Arguments, and set the RawMessage to
4146         IntPtr.Zero.
4147         (SendWithReplyAndBlock): We own the ref to the reply that comes
4148         back from dbus_connection_send_with_reply_and_block() so add a
4149         comment about that and unref it after we've constructed a managed
4150         MethodReturn class around it.  Fixes a big, big leak.
4151
4152         * mono/ProxyBuilder.cs: Reflect into Message to get the Dispose
4153         method.
4154         (BuildSignalHandler): After we've sent the Signal message, dispose
4155         of it.
4156         (BuildMethod): Dispose of the method call and reply messages after
4157         we've sent the message and extracted the data we want from the
4158         reply.
4159
4160         * mono/Service.cs (UnregisterObject): Don't call handler.Dispose()
4161         anymore.
4162         (Service_FilterCalled): Dispose of the message after we're
4163         finished with it.
4164
4165 2005-03-08  Joe Shaw  <joeshaw@novell.com>
4166
4167         * dbus/dbus-connection.c (dbus_connection_send_with_reply):
4168         After we attach our pending call to the connection, unref
4169         it.  Fixes a leak.
4170  
4171         * mono/Connection.cs (set_RawConnection): Disconnect our
4172         filter and match callbacks from the old connection and
4173         reconnect them to the new connection, if any.
4174
4175         * mono/DBusType/Array.cs: "Code" is a static member, so
4176         don't use "this" to refer to it.  Fix for stricter checking
4177         in Mono 1.1.4.
4178  
4179         * mono/DBusType/ObjectPath.cs (Append): Don't leak the
4180         object path that we pass into unmanaged code.
4181  
4182         * mono/DBusType/String.cs (Append): Don't leak the string
4183         that we pass into unmanged code.
4184
4185 2005-03-07  John (J5) Palmieri  <johnp@redhat.com>
4186         * NEWS: Update for 0.31
4187
4188         * configure.in: Release 0.31
4189         add LT_CURRENT, LT_REVISION, LT_AGE for easy soname bumping
4190
4191         * qt/Makefile.am: fixed build
4192
4193         * dbus/Makefile.am: soname bump for libdbus
4194
4195         * glib/Makefile.am: soname bump for libdbus-glib
4196
4197 2005-03-05  Havoc Pennington  <hp@redhat.com>
4198
4199         * dbus/dbus-sysdeps.c:
4200         (pseudorandom_generate_random_bytes_buffer): fix to have no return
4201         value
4202         (_dbus_generate_random_bytes_buffer): fix return value
4203
4204         * dbus/dbus-sysdeps-util.c: s/GETPWNAME/GETPWNAM/ so configure
4205         checks actually work, from Tom Parker <fdo@tevp.net>
4206
4207 2005-03-01  Colin Walters  <walters@verbum.org>
4208
4209         * test/glib/test-dbus-glib.c (lose, lose_gerror): Utility
4210         functions copied from dbus-glib-tool.c.
4211         (main): Convert lots of error code to use them.
4212         Also add some testing for introspection bits.
4213
4214 2005-03-01  Colin Walters  <walters@verbum.org>
4215         
4216         * doc/TODO: Remove introspection signature TODO.
4217
4218 2005-02-27  Colin Walters  <walters@verbum.org>
4219
4220         * glib/dbus-gidl.c (property_info_get_type, arg_info_get_type):
4221         Change return value to const char * instead of int so we can do
4222         full signatures.
4223         (struct PropertyInfo, struct ArgInfo): Store char *.
4224         (property_info_new, arg_info_new): Update parameters, strdup.
4225         (property_info_unref, arg_info_unref): Free.
4226
4227         * glib/dbus-gidl.h: Update prototypes.
4228
4229         * glib/dbus-gparser.c (basic_type_from_string): Delete.
4230         (validate_signature): New function, just validates signature and
4231         sets GError.
4232         (parse_property, parse_arg): Invoke validate_signature.  Store
4233         signature instead of just type code.
4234
4235         * glib/dbus-gvalue.c (base_type_from_signature): New utility
4236         function to return a primary type for a signature, dropping
4237         information about types in container types.
4238         (dbus_gvalue_genmarshal_name_from_type)
4239         (dbus_gvalue_binding_type_from_type)
4240         (dbus_gvalue_ctype_from_type): Update to take full signature
4241          instead of type code.
4242         (dbus_gtype_to_dbus_type): Moved here from glib/dbus-gobject.c.
4243
4244         * glib/dbus-gvalue.h: Update prototypes for above.
4245
4246         * glib/dbus-gobject.c (gtype_to_dbus_type): Moved to
4247         glib/dbus-gvalue.c as dbus_gtype_to_dbus_type.
4248         (introspect_properties, introspect_signals, write_interface):
4249         Update to handle signatures, and remove usage of
4250         _dbus_gutils_type_to_string.
4251         (handle_introspect): Print out type codes instead of e.g. "string"
4252         in hardcoded introspection XML; also use x_AS_STRING constants
4253         instead of hardcoding in string.
4254
4255         * glib/dbus-glib-tool.c (pretty_print): Handle signature change
4256         to string.  Remove usage of _dbus_gutils_type_to_string.
4257
4258         * glib/dbus-gutils.c (_dbus_gutils_type_to_string): Delete.
4259
4260         * glib/dbus-gutils.h (_dbus_gutils_type_to_string): Update for
4261         deletion.
4262         
4263         * glib/dbus-binding-tool-glib.c (compute_marshaller)
4264         (compute_marshaller_name, generate_glue): Handle signature change
4265         to string.
4266         (write_formal_parameters, write_args_for_direction): Ditto, and
4267         remove FIXME.
4268
4269         * tools/dbus-tree-view.c (type_to_string): Delete.
4270         (info_set_func_text): Update to print full signatures.
4271
4272         * test/glib/test-service-glib.xml: Change types to new
4273         introspection format.
4274
4275 2005-02-26  Havoc Pennington  <hp@redhat.com>
4276
4277         * doc/TODO: remove the "guid" item
4278
4279         * test/glib/test-profile.c (no_bus_thread_func): use open_private
4280         (with_bus_thread_func): use open_private
4281
4282         * dbus/dbus-connection.c (dbus_connection_open_private): new
4283         function that works like the old dbus_connection_open()
4284         (dbus_connection_open): now returns an existing connection if
4285         possible
4286
4287         * dbus/dbus-server-unix.c (handle_new_client_fd_and_unlock): pass
4288         through the GUID to the transport
4289
4290         * dbus/dbus-server.c (_dbus_server_init_base): keep around the
4291         GUID in hex-encoded form.
4292
4293         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
4294         pass GUID argument in to the transport
4295
4296         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd): add
4297         guid argument
4298
4299         * dbus/dbus-transport.c (_dbus_transport_init_base): add guid argument
4300
4301         * dbus/dbus-auth.c (_dbus_auth_server_new): add guid argument
4302
4303 2005-02-25  Havoc Pennington  <hp@redhat.com>
4304
4305         * doc/dbus-specification.xml: document the GUID thing
4306
4307         * dbus/dbus-server.c (_dbus_server_init_base): initialize a
4308         globally unique ID for the server, and put a "guid=hexencoded"
4309         field in the address
4310
4311         * dbus/dbus-bus.c: fix missing #include of dbus-threads-internal.h
4312
4313         * dbus/dbus-message.c: ditto
4314
4315         * dbus/dbus-dataslot.c: ditto
4316
4317         * dbus/dbus-list.c: ditto
4318
4319         * dbus/dbus-internals.h: wait, just include
4320         dbus-threads-internal.h here
4321         
4322         * dbus/dbus-string.c (_dbus_string_copy_to_buffer): move back for
4323         use in main library
4324
4325         * dbus/dbus-sysdeps.c (_dbus_generate_random_bytes_buffer): new function
4326
4327 2005-02-24  Colin Walters  <walters@verbum.org>
4328
4329         * test/glib/Makefile.am (EXTRA_DIST): Add test-service-glib.xml
4330
4331 2005-02-24  John (J5) Palmieir  <johnp@redhat.com>
4332
4333         * glib/Makefile.am: added dbus-gobject.h to sources list
4334         so distcheck doesn't fail
4335         
4336 2005-02-24  Havoc Pennington  <hp@redhat.com>
4337
4338         * dbus/dbus-server.c, dbus/dbus-server-unix.c: change semantics so
4339         you must disconnect before unref, since locking and other things
4340         are screwed up otherwise. Fix assorted other locking stuff.
4341
4342         * dbus/dbus-signature.c (dbus_signature_iter_get_element_type):
4343         fix compilation
4344
4345         * dbus/dbus-threads-internal.h: move the mutex/condvar wrappers
4346         into a private header and don't export from the library
4347
4348         * throughout - call _dbus_thread_stuff vs. dbus_thread_stuff
4349
4350 2005-02-24  Colin Walters  <walters@verbum.org>
4351         
4352         * dbus/dbus-signature.c: New file; implements various functions
4353         related to type signatures.  Includes an interator for parsing,
4354         validation functions.
4355         (dbus_type_is_basic): Moved here from
4356         dbus-marshal-basic.c:_dbus_type_is_basic.
4357         (dbus_type_is_container): Moved here from
4358         dbus-marshal-basic.c:_dbus_type_is_container.
4359
4360         All callers of _dbus_type_is_container and _dbus_type_is_basic
4361         updated, and include dbus-signature.h.
4362
4363         * dbus/dbus-signature.h: New file; prototypes for the above.
4364
4365         * dbus/Makefile.am (DBUS_LIB_SOURCES): Add dbus-signature.c,
4366         dbus-signature.h.
4367
4368         * dbus/dbus-marshal-basic.c (map_type_char_to_type): New utility
4369         function factored out of _dbus_first_type_in_signature.
4370         (_dbus_first_type_in_signature_c_str): New function; returns first
4371         type code for a type signature character.
4372
4373         * dbus/dbus-marshal-basic.h: Prototype _dbus_first_type_in_signature_c_str,
4374         handle function moves.
4375
4376         * dbus/dbus-marshal-recursive.h: Export _dbus_type_signature_next.
4377
4378         * dbus/dbus-marshal-recursive.c (_dbus_type_signature_next): New
4379         function; skips to next complete type in type signature.
4380         Implemented using previous skip_one_complete_type.  Now
4381         skip_one_complete_type just delegates to
4382         _dbus_type_signature_next.
4383
4384         * dbus/dbus-marshal-basic.c (_dbus_type_is_basic): Moved
4385         to dbus-signature.c
4386         (_dbus_type_is_container): Ditto.
4387
4388         * doc/dbus-specification.xml: Update introspection sample to
4389         use real type signatures.
4390
4391         * dbus/dbus-test.h: Prototype signature test.
4392
4393         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): Run
4394         signature tests.
4395
4396         * dbus/dbus-protocol.h (DBUS_ERROR_INVALID_SIGNATURE): New error.
4397
4398 2005-02-23  John (J5) Palmieri  <johnp@redhat.com>
4399
4400         * python/dbus_bindings.pyx.in (PendingCall::get_reply):
4401         s/dbus_pending_call_get_reply/dbus_pending_call_steal_reply
4402
4403 2005-02-21  Colin Walters  <walters@verbum.org>
4404
4405         * dbus/dbus-test-main.c (main): Take optional specific test
4406         argument.
4407
4408         * dbus/dbus-test.c (run_test): New function, runs a test function
4409         with no data directory.
4410         (run_data_test): Like above, but takes data directory.
4411         (dbus_internal_do_not_use_run_tests): Take
4412         specific test argument.  Replace lots of cut n' paste code
4413         with run_test and run_data_test.
4414
4415         * dbus/dbus-test.h: Update prototype for
4416         dbus_internal_do_not_use_run_tests.
4417
4418 2005-02-20  Havoc Pennington  <hp@redhat.com>
4419
4420         Fix bugs reported by Daniel P. Berrange
4421         
4422         * dbus/dbus-server.c (_dbus_server_unref_unlocked): new function
4423         (protected_change_watch): new function
4424         (_dbus_server_toggle_watch, _dbus_server_remove_watch)
4425         (_dbus_server_add_watch): change to work like the
4426         dbus-connection.c equivalents; like those, probably kind of
4427         busted, but should at least mostly work for now
4428         (dbus_server_disconnect): drop the lock if we were already
4429         disconnected, patch from Daniel P. Berrange
4430
4431         * dbus/dbus-server.c (_dbus_server_toggle_timeout) 
4432         (_dbus_server_remove_timeout, _dbus_server_add_timeout): all the
4433         same stuff
4434
4435         * doc/TODO: todo about unscrewing this mess
4436
4437 2005-02-19  Colin Walters  <walters@verbum.org>
4438
4439         * glib/dbus-binding-tool-glib.c
4440         (dbus_binding_tool_output_glib_server): Fix iochannel refcounting.
4441
4442         * glib/dbus-glib-tool.c: Include dbus-glib-tool.h, as well
4443         as errno.h and sys/stat.h.
4444         (lose): New function, prints error with
4445         newline and exits.
4446         (lose_gerror): Similar, but takes GError for message.
4447         (main): Add --output argument to specify output file to write to,
4448         instead of always printing to stdout.  In this mode, determine
4449         timestamps on source files to see whether any are newer than the
4450         target file.  If not, exit.  Also convert a number of error
4451         messages to use lose (since it's shorter), and switch to using
4452         g_io_channel_shutdown.
4453
4454 2005-02-19  Havoc Pennington  <hp@redhat.com>
4455
4456         * glib/dbus-gobject.c
4457         (_dbus_glib_marshal_dbus_message_to_gvalue_array): add docs
4458
4459         * glib/dbus-glib.c: fix doxygen warnings
4460
4461         * glib/dbus-gparser.c (parse_annotation): error if an annotation
4462         is found on an <arg>
4463
4464 2005-02-17  Colin Walters  <walters@verbum.org>
4465
4466         * glib/dbus-gobject.h: Don't export
4467         _dbus_glib_marshal_dbus_message_to_gvalue_array.
4468         
4469         * glib/dbus-gobject.c (_dbus_glib_marshal_dbus_message_to_gvalue_array): Do rename.
4470         (invoke_object_method): Handle it.
4471
4472         * glib/dbus-gproxy.c (marshal_dbus_message_to_g_marshaller):
4473         Handle rename.
4474         
4475 2005-02-17  Colin Walters  <walters@verbum.org>
4476
4477         * bus/.cvsignore, doc/.cvsignore
4478         * test/data/valid-service-files/.cvsignore, test/glib/.cvsignore:
4479         Update.
4480
4481 2005-02-17  Colin Walters  <walters@verbum.org>
4482         
4483         * dbus/dbus-protocol.h (DBUS_SERVICE_ORG_FREEDESKTOP_DBUS):
4484         Rename to DBUS_SERVICE_DBUS.
4485         (DBUS_PATH_ORG_FREEDESKTOP_DBUS): Rename to DBUS_PATH_DBUS.
4486         (DBUS_PATH_ORG_FREEDESKTOP_LOCAL): Rename to DBUS_PATH_LOCAL.
4487         Change the value from "org.freedesktop.Local"
4488         to "org.freedesktop.DBus.Local".
4489         (DBUS_INTERFACE_ORG_FREEDESKTOP_DBUS): Rename to DBUS_INTERFACE_DBUS.
4490         (DBUS_INTERFACE_ORG_FREEDESKTOP_INTROSPECTABLE): Rename to
4491         DBUS_INTERFACE_INTROSPECTABLE.
4492         Change the value from "org.freedesktop.Introspectable"
4493         to "org.freedesktop.DBus.Introspectable".
4494         (DBUS_INTERFACE_ORG_FREEDESKTOP_PROPERTIES): Rename to
4495         DBUS_INTERFACE_PROPERTIES.
4496         Change the value from "org.freedesktop.Properties"
4497         to "org.freedesktop.DBus.Properties".
4498         (DBUS_INTERFACE_ORG_FREEDESKTOP_PEER): Rename to
4499         DBUS_INTERFACE_PEER.
4500         Change the value from "org.freedesktop.Peer"
4501         to "org.freedesktop.DBus.Peer".
4502         (DBUS_INTERFACE_ORG_FREEDESKTOP_LOCAL): 
4503         DBUS_INTERFACE_LOCAL.
4504         Change the value from "org.freedesktop.Local"
4505         to "org.freedesktop.DBus.Local".
4506
4507         All other users of those constants have been changed.
4508
4509         * bus/driver.c (bus_driver_handle_introspect): Use constants.
4510
4511         * glib/dbus-gobject.c (handle_introspect): Use constants.
4512
4513         * doc/dbus-faq.xml, doc/dbus-specification.xml: Update for rename.
4514
4515 2005-02-17  Colin Walters  <walters@verbum.org>
4516
4517         * glib/dbus-gparser.c (struct Parser): Add in_annotation boolean.
4518         (parse_node, parse_interface, parse_method, parse_signal)
4519         (parse_property, parse_annotation): Lose if we're currently in an
4520         annotation.
4521         (parse_annotation): New function.
4522         (parser_start_element, parser_end_element): Handle annotation.
4523         (parse_method, parse_interface): Remove support for c_name attribute,
4524         switch to annotations.
4525
4526         * glib/dbus-gidl.h (interface_info_get_binding_names)
4527         (method_info_get_binding_names)
4528         (interface_info_get_binding_name, method_info_get_binding_name)
4529         (interface_info_set_binding_name, method_info_set_binding_name):
4530         Remove.
4531         (interface_info_get_annotations, method_info_get_annotations)
4532         (interface_info_get_annotation, method_info_get_annotation)
4533         (interface_info_add_annotation, method_info_add_annotation):
4534         Prototype.
4535
4536         * glib/dbus-gidl.c (struct InterfaceInfo): Substitute "annotations"
4537         for "bindings".
4538         (struct MethodInfo): Ditto.
4539         Straightfoward conversion of binding methods into annotation methods
4540         as prototyped.
4541
4542         * glib/dbus-glib-tool.c (pretty_print): Print annotations.
4543
4544         * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_C_SYMBOL): Define.
4545
4546         * glib/dbus-binding-tool-glib.c (gather_marshallers, generate_glue):
4547         Use new annotation API.
4548
4549         * doc/introspect.dtd: Fix a number of DTD syntax errors.  Add
4550         annotation element.
4551         
4552         * doc/dbus-specification.xml: Discuss introspection annotations,
4553         include list of well-known annotations.
4554
4555         * test/glib/test-service-glib.xml: Make validate against new DTD.
4556
4557 2005-02-17  Colin Walters  <walters@verbum.org>
4558
4559         This patch is based on initial work from
4560         Paul Kuliniewicz <kuliniew@purdue.edu>.
4561
4562         * glib/dbus-gvalue.c (dbus_gvalue_init): New function; move
4563         initialization of GValue from dbus type to here.
4564         (dbus_gvalue_genmarshal_name_from_type): New function; generates a string
4565         for the "glib-genmarshal" program from a DBus type.
4566         (dbus_gvalue_binding_type_from_type): New function; turns a DBus type
4567         into the C name for it we use in the glib bindings.
4568         (dbus_gvalue_ctype_from_type): New function; maps a DBus type into a
4569         glib C type (not GValue).
4570         (dbus_gvalue_demarshal): invoke dbus_gvalue_init.
4571
4572         * glib/dbus-gutils.c (_dbus_gutils_wincaps_to_uscore): Moved here
4573         from dbus-gobject.c.
4574
4575         * glib/dbus-gutils.h: Prototype it.
4576
4577         * glib/dbus-gproxy.c: Include new dbus-gobject.h.
4578         (marshal_dbus_message_to_g_marshaller): Use new shared function
4579         dbus_glib_marshal_dbus_message_to_gvalue_array.
4580
4581         * glib/dbus-gparser.c (parse_interface, parse_method): Handle c_name attribute.
4582         Will be changed once we have annotations.
4583
4584         * glib/dbus-gobject.c: Change info_hash_mutex from GStaticMutex to
4585         GStaticRWLock.  Callers updated.
4586         (wincaps_to_uscore): Move to dbus-gutils.c.  Callers updated.
4587         (string_table_next): New function for iterating over zero-terminated
4588         string value array.
4589         (string_table_lookup): New function; retrieves specific entry in
4590         array.
4591         (get_method_data): New function; look up method data in object data chunk.
4592         (object_error_domain_prefix_from_object_info)
4593         (object_error_code_from_object_info): New functions, but not implemented yet.
4594         (method_interface_from_object_info): New function; retrieve interface name.
4595         (method_name_from_object_info): New function; retrieve method name.
4596         (method_arg_info_from_object_info): New function; retrieve argument data.
4597         (arg_iterate): New function; iterates over serialized argument data.
4598         (method_dir_signature_from_object_info): New function; returns a
4599         GString holding type signature for arguments for just one
4600         direction (input or output).
4601         (method_input_signature_from_object_info)
4602         (method_output_signature_from_object_info): New functions.
4603         (dbus_glib_marshal_dbus_message_to_gvalue_array): New shared function;
4604         converts dbus message arguments into a GValue array.  Used for both
4605         signal handling and method invocation.
4606         (struct DBusGlibWriteIterfaceData): New utility structure.
4607         (write_interface): New function; generate introspection XML for
4608         an interface.
4609         (introspect_interfaces): New function; gathers all interface->methods,
4610         generates introspection XML for them.
4611         (handle_introspect): Invoke introspect_interfaces.
4612         (get_object_property): Be sure to zero-initalize stack-allocated GValue.
4613         (lookup_object_and_method): New function; examines an incoming message
4614         and attempts to match it up (via interface, method name, and argument
4615         signature) with a known object and method.
4616         (gerror_domaincode_to_dbus_error_name): New function; converts a
4617         GError domain and code into a DBus error name.  Needs GError data
4618         added to object introspection to work well.
4619         (gerror_to_dbus_error_message): Creates a DBusMessage error return from
4620         GError.
4621         (invoke_object_method): New function to invoke an object method
4622         looked up via lookup_object_and_method.  Parses the incoming
4623         message, turns it into a GValue array, then invokes the marshaller
4624         specified in the DBusGMethodInfo.  Creates a new message with
4625         either return values or error message as appropriate.
4626         (gobject_message_function): Invoke lookup_object_and_method and
4627         invoke_object_method.
4628
4629         * glib/dbus-glib-tool.c: Include dbus-binding-tool-glib.h.
4630         (enum DBusBindingOutputMode): New enum for binding output modes.
4631         (pretty_print): Print binding names.
4632         (dbus_binding_tool_error_quark): GError bits.
4633         (version): Fix typo.
4634         (main): Create GIOChannel for output.  Parse new --mode argument,
4635         possible values are "pretty-print", "glib-server", "glib-client".
4636         Use mode to invoke appropriate function.
4637         
4638         * glib/dbus-gobject.h: Prototype dbus_glib_marshal_dbus_message_to_gvalue_array.
4639
4640         * glib/dbus-glib-tool.h: New header, just includes GError bits
4641         for now.
4642
4643         * glib/dbus-gidl.c (struct InterfaceInfo): Add bindings hashtable;
4644         maps binding style to name.
4645         (struct MethodInfo): Ditto.
4646         (get_hash_keys, get_hash_key): Utility function, returns keys for
4647         a GHashTable.
4648         (interface_info_new, method_info_new): Initialize bindings.
4649         (interface_info_unref, method_info_unref): Destroy bindings.
4650         (method_info_get_binding_names, method_info_get_binding_name)
4651         (interface_info_get_binding_names, interface_info_get_binding_name):
4652         Functions for retrieving binding names.
4653         (method_info_set_binding_name, interface_info_set_binding_name):
4654         Functions for setting binding names.
4655
4656         * glib/dbus-binding-tool-glib.h: New file, has prototypes
4657         for glib binding generation.
4658
4659         * glib/dbus-binding-tool-glib.c: New file, implements server-side
4660         and client-side glib glue generation.
4661
4662         * glib/Makefile.am (dbus_binding_tool_SOURCES): Add
4663         dbus-binding-tool-glib.c, dbus-binding-tool-glib.h,
4664         dbus-glib-tool.h.
4665
4666         * dbus/dbus-glib.h (struct DBusGMethodMarshaller): Remove in favor
4667         of using GClosureMarshal directly.
4668         (struct DBusGObjectInfo): Add n_infos member.
4669
4670         * test/glib/test-service-glib.xml: New file; contains introspection data
4671         for MyTestObject used in test-service-glib.c.
4672
4673         * test/glib/test-service-glib.c (enum MyObjectError): New GError enum.
4674         (my_object_do_nothing, my_object_increment, my_object_throw_error)
4675         (my_object_uppercase, my_object_many_args): New test methods.
4676         (main): Use dbus_g_object_class_install_info to include generated object
4677         info.
4678
4679         * test/glib/Makefile.am: Generate server-side glue for test-service-glib.c,
4680         as well as client-side bindings.
4681
4682         * test/glib/test-dbus-glib.c: Include test-service-glib-bindings.h.
4683         (main): Activate TestSuiteGLibService; test invoke a bunch of its methods
4684         using both the dbus_gproxy stuff directly as well as the generated bindings.
4685
4686 2005-02-15  Havoc Pennington  <hp@redhat.com>
4687
4688         * dbus/dbus-connection.c (dbus_connection_dispatch): always
4689         complete a pending call, don't run filters first.
4690
4691         * glib/dbus-gproxy.c (dbus_g_proxy_end_call): change to use
4692         dbus_pending_call_steal_reply
4693
4694         * dbus/dbus-pending-call.c (dbus_pending_call_block): just call
4695         _dbus_connection_block_pending_call
4696         (dbus_pending_call_get_reply): change to steal_reply and return a
4697         ref
4698
4699         * dbus/dbus-connection.c
4700         (dbus_connection_send_with_reply_and_block): port to work in terms
4701         of DBusPendingCall
4702         (_dbus_connection_block_pending_call): replace block_for_reply
4703         with this
4704
4705 2005-02-14  Havoc Pennington  <hp@redhat.com>
4706
4707         * dbus/dbus-userdb-util.c (_dbus_user_database_lookup_group):
4708         properly handle looking up group information by name; fix 
4709         from j@bootlab.org
4710
4711 2005-02-13  Havoc Pennington  <hp@redhat.com>
4712
4713         * dbus/dbus-connection.c (dbus_connection_return_message) 
4714         (dbus_connection_borrow_message): hold dispatch lock while message
4715         is outstanding
4716         (_dbus_connection_block_for_reply): hold dispatch lock while we
4717         block for the reply, so nobody steals our reply
4718         (dbus_connection_pop_message): hold the dispatch lock while we
4719         pluck the message
4720
4721 2005-02-13  Havoc Pennington  <hp@redhat.com>
4722
4723         * dbus/dbus-connection.c (_dbus_connection_acquire_dispatch)
4724         (_dbus_connection_release_dispatch)
4725         (_dbus_connection_acquire_io_path)
4726         (_dbus_connection_release_io_path): make the mutex and condvar
4727         control access to the "acquired" flag. Drop the connection lock
4728         while waiting on the condvar. Hopefully these are baby steps in
4729         roughly the right direction.
4730
4731 2005-02-13  Havoc Pennington  <hp@redhat.com>
4732
4733         * dbus/dbus-connection.c: use separate mutexes for the condition
4734         variables; this is some kind of baseline for sanity, but the
4735         condition variables still aren't used correctly afaict
4736
4737 2005-02-13  Havoc Pennington  <hp@redhat.com>
4738
4739         * dbus/dbus-object-tree.c (handle_default_introspect_and_unlock):
4740         fix a double-unlock
4741
4742         * dbus/dbus-connection.c
4743         (_dbus_connection_detach_pending_call_unlocked): add this
4744
4745         Initial semi-correct pass through to fix thread locking; there are
4746         still some issues with the condition variable paths I'm pretty
4747         sure
4748         
4749         * dbus/dbus-server.c: add a mutex on DBusServer and appropriate
4750         lock/unlock calls
4751
4752         * dbus/dbus-connection.c (_dbus_connection_do_iteration_unlocked):
4753         rename to add _unlocked
4754         (struct DBusConnection): move "dispatch_acquired" and
4755         "io_path_acquired" to use only one bit each.
4756         (CONNECTION_LOCK, CONNECTION_UNLOCK): add checks with !DBUS_DISABLE_CHECKS
4757         (dbus_connection_set_watch_functions): hacky fix to reentrancy
4758         (_dbus_connection_add_watch, _dbus_connection_remove_watch) 
4759         (_dbus_connection_toggle_watch, _dbus_connection_add_timeout) 
4760         (_dbus_connection_remove_timeout) 
4761         (_dbus_connection_toggle_timeout): drop lock when calling out to
4762         user functions; done in a hacky/bad way.
4763         (_dbus_connection_send_and_unlock): add a missing unlock
4764         (_dbus_connection_block_for_reply): add a missing unlock
4765
4766         * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated):
4767         drop lock in a hacky probably unsafe way to call out to user
4768         function
4769
4770 2005-02-12  Havoc Pennington  <hp@redhat.com>
4771
4772         * tools/dbus-tree-view.c (info_set_func_text): display more
4773         details on args
4774
4775         * bus/driver.c (bus_driver_handle_list_services): list the bus
4776         driver
4777
4778         * glib/dbus-gparser.c (parse_arg): generate an arg name if none is supplied
4779
4780         * glib/dbus-gidl.c (signal_info_get_n_args): new function
4781         (method_info_get_n_args): new function
4782
4783 2005-02-12  Havoc Pennington  <hp@redhat.com>
4784
4785         * bus/driver.c (bus_driver_handle_introspect): add introspection
4786         for bus driver
4787
4788 2005-02-12  Havoc Pennington  <hp@redhat.com>
4789
4790         * bus/driver.c: put the signature of each bus driver method in the
4791         table of handlers and check it on incoming calls; this isn't
4792         really useful, but going to add introspect support in a minute.
4793
4794 2005-02-11  Joe Shaw  <joeshaw@novell.com>
4795
4796         * mono/Connection.cs: The unpredictability of finalizers in mono
4797         prevents us from deterministically disconnecting the filters from
4798         the Service class's finalizer, so move tracking of filters and
4799         matches here.  Add API for that.
4800
4801         * mono/Service.cs: Remove the code, add code which calls the
4802         methods now on the Connection class.
4803
4804 2005-02-11  John (J5) Palmieri  <johnp@redhat.com>
4805
4806         * python/dbus.py (class Sender): added to support dbus signals better
4807         (Bus::add_signal_receiver): added expand_args parameter which defaults
4808         to True.  When expand args is True the signal handler will pass the 
4809         message arguments as parameters to the signal handler.  If False
4810         revert to previous behavior where the signal handler must get the
4811         argument list from the message.  This is to help port applications
4812         like HAL that have a tendancy to send variable length argument lists.
4813         self._match_rule_to_receivers is now a dict of dicts.
4814         (Bus::remove_signal_receiver): pop handler off the dict intead of 
4815         removing it from a list
4816         (Bus::_signal_func): change signal handlers so that interface,
4817         signal_name, service, path and message are packed into a Sender
4818         object and that is passed to the handler.  If expand_args is True
4819         extract the args list from the message and append it to the parameter
4820         list
4821         
4822         * python/dbus_bindings.pyx.in (class Signature): added to support 
4823         signiature types
4824         (MessageIter::__init__): changed iteration limit to match D-BUS
4825         (MessageIter::get*): added INT16, UINT16, SIGNATURE, DICT_ENTRY, 
4826         STRUCT and VARIENT type support
4827         (MessageIter::python_value_to_dbus_sig): made recursive to support
4828         recursive types
4829         (MessageIter::append*): added Signature, dict, tuple 
4830         support
4831
4832         * python/examples/example-client.py: added examples of getting tuples
4833         and dicts
4834
4835         * python/examples/example-service.py: added examples of sending tuples
4836         and dicts
4837
4838         * python/examples/example-signal-recipient.py: Fixed to handle new
4839         signal callback format
4840
4841 2005-02-10  Havoc Pennington  <hp@redhat.com>
4842
4843         * test/glib/test-dbus-glib.c (main): fix so this test doesn't fail
4844         (call dbus_g_proxy_add_signal)
4845
4846         * dbus/dbus-server-unix.c (_dbus_server_new_for_tcp_socket):
4847         escape the hostname
4848         (_dbus_server_new_for_domain_socket): escape the path
4849
4850         * dbus/dbus-address.c (dbus_address_escape_value): new
4851         (dbus_address_unescape_value): new
4852         (dbus_parse_address): unescape values
4853
4854         * dbus/dbus-string.c (_dbus_string_append_byte_as_hex): new function
4855
4856         * doc/dbus-specification.xml: explain how to escape values in
4857         addresses
4858
4859 2005-02-10  Havoc Pennington  <hp@redhat.com>
4860
4861         * dbus/dbus-message-factory.c (generate_special): modify test to
4862         avoid using a non-basic dict key
4863
4864         * dbus/dbus-marshal-validate-util.c: add test for the below
4865
4866         * doc/dbus-specification.xml: require that dict keys are a basic
4867         type
4868
4869         * dbus/dbus-marshal-validate.c
4870         (_dbus_validate_signature_with_reason): require that dict key is a
4871         basic type
4872
4873 2005-02-10  Havoc Pennington  <hp@redhat.com>
4874
4875         * dbus/dbus-object-tree.c (handle_default_introspect_and_unlock):
4876         change to be _and_unlock instead of _unlocked
4877
4878         * dbus/dbus-connection.c
4879         (_dbus_connection_send_preallocated_unlocked_no_update): rename to
4880         have no_update so we can find this bug quickly in future
4881
4882 2005-02-10  Havoc Pennington  <hp@redhat.com>
4883
4884         * dbus/dbus-message-util.c (verify_test_message): tests for string
4885         array
4886
4887         * dbus/dbus-message.c (dbus_message_append_args_valist): add
4888         support for arrays of string/signature/path
4889
4890 2005-02-10  Joe Shaw  <joeshaw@novell.com>
4891
4892         * dbus/dbus-connection.c
4893         (_dbus_connection_queue_received_message_link,
4894         _dbus_connection_message_sent): Add the path to
4895         the verbose output.
4896         (_dbus_connection_send_preallocated_and_unlock): Added.  Calls
4897         _dbus_connection_send_preallocated_unlocked(), updated the
4898         dispatch status, and unlocks.  Fixes a bug where certain
4899         situations (like a broken pipe) could cause a Disconnect message
4900         to not be sent, tricking the bus into thinking a service was still
4901         there when the process had quit.
4902         (_dbus_connection_send_preallocated): Call
4903         _dbus_connection_send_preallocated_and_unlock().
4904         (_dbus_connection_send_and_unlock): Added.  Calls
4905         _dbus_connection_send_preallocated_and_unlock().
4906         (dbus_connection_send): Call _dbus_connection_send_and_unlock().
4907         (dbus_connection_send_with_reply): Update the dispatch status and
4908         unlock.
4909
4910         * mono/Service.cs (~Service): Added.  Removes the filter so that
4911         we don't get unmanaged code calling back into a GCed delegate.
4912         (RemoveFilter); Added.
4913
4914 2005-02-09  John (J5) Palmieri  <johnp@redhat.com>
4915
4916         * dbus/dbus-message.c (dbus_message_iter_open_container):
4917         - Removed check for iterator type being an array because
4918         get_arg_type does not work with writer iterators
4919         - Pass NULL to _dbus_type_writer_recurse if signiture is NULL
4920
4921 2005-02-07  Havoc Pennington  <hp@redhat.com>
4922
4923         * doc/dbus-specification.xml: some more language cleanups; add
4924         stuff about how to deal with invalid protocol and extension
4925         points; add _ to allowed chars in auth commands; add EXTENSION_
4926         auth command prefix
4927
4928 2005-02-06  Havoc Pennington  <hp@redhat.com>
4929
4930         * s/expected/required/ in a couple places for clarity
4931
4932 2005-02-07  Colin Walters  <walters@verbum.org>
4933
4934         * bus/selinux.c (bus_selinux_allows_send): Handle NULL for
4935         sender or proposed_recipient.
4936
4937 2005-02-06  Havoc Pennington  <hp@redhat.com>
4938
4939         * dbus/dbus-message-factory.c (generate_special): more tests
4940
4941         * dbus/dbus-marshal-validate.c (validate_body_helper): detect
4942         array length that exceeds the maximum
4943
4944 2005-02-05  Havoc Pennington  <hp@redhat.com>
4945
4946         * dbus/dbus-message-factory.c (generate_special): more test cases,
4947         increasing coverage
4948
4949         * dbus/dbus-marshal-validate.c (validate_body_helper): return the
4950         reason why a signature was invalid
4951
4952         * dbus/dbus-marshal-header.c (load_and_validate_field): fix to
4953         skip the length of the string before we look at it in validation
4954
4955         * dbus/dbus-string-util.c (_dbus_string_test): add tests for
4956         equal_substring
4957
4958         * dbus/dbus-message.c (_dbus_message_loader_new): default
4959         max_message_length to DBUS_MAXIMUM_MESSAGE_LENGTH
4960
4961 2005-02-05  Havoc Pennington  <hp@redhat.com>
4962
4963         * dbus/dbus-marshal-validate.c (validate_body_helper): fix crash
4964         if the signature of a variant was empty
4965         (_dbus_validate_signature_with_reason): catch "(a)" (array inside
4966         struct with no element type)
4967
4968         * dbus/dbus-message-factory.c (generate_uint32_changed): add more
4969         mangled messages to break things
4970
4971 2005-02-04  Havoc Pennington  <hp@redhat.com>
4972
4973         * glib/dbus-gproxy.c (dbus_g_proxy_disconnect_signal): use
4974         g_quark_try_string() so it actually can return 0
4975         (dbus_g_proxy_connect_signal): ditto
4976
4977 2005-02-04  Havoc Pennington  <hp@redhat.com>
4978
4979         * glib/dbus-gproxy.c (dbus_g_proxy_emit_remote_signal): fix a
4980         bogus warning
4981         (tristring_from_message): assert cleanly on null path/interface
4982         (should not be possible though I decided later)
4983         (dbus_g_proxy_dispose): move proxy manager unregistration here
4984         (DBUS_G_PROXY_DESTROYED): add this macro, and use it in a bunch of
4985         g_return_if_fail() checks
4986
4987 2005-02-04  Havoc Pennington  <hp@redhat.com>
4988
4989         * doc/Makefile.am (EXTRA_DIST): add DTDs to makefile
4990
4991         * doc/introspect.dtd: add introspect.dtd from David A. Wheeler
4992         (with some minor changes)
4993
4994         * doc/dbus-specification.xml: add deprecated attribute to
4995         introspection format
4996
4997 2005-01-31  Havoc Pennington  <hp@redhat.com>
4998
4999         * glib/dbus-gproxy.c: rewrite how signals work again, this time I
5000         think it's sort of right
5001
5002 2005-01-30  Havoc Pennington  <hp@redhat.com>
5003
5004         * tools/dbus-viewer.c: kind of half-ass hook up the option menu.
5005
5006 2005-01-30  Havoc Pennington  <hp@redhat.com>
5007
5008         * tools/dbus-names-model.c: dynamically watch NameOwnerChanged
5009
5010         * autogen.sh: change to autotools 1.9
5011
5012         * glib/dbus-gproxy.c: completely change how signals work
5013         (dbus_g_proxy_add_signal): new function to specify signature of a
5014         signal
5015         (dbus_g_proxy_emit_received): marshal the dbus message to GValues,
5016         and g_warning if the incoming message has the wrong signature.
5017
5018 2005-01-30  Havoc Pennington  <hp@redhat.com>
5019
5020         * tools/dbus-names-model.c (have_names_notify): fix this
5021
5022         * dbus/dbus-message.c (_dbus_message_iter_get_args_valist): clean
5023         up the string array handling a bit 
5024
5025 2005-01-30  Havoc Pennington  <hp@redhat.com>
5026
5027         * glib/dbus-glib.c (dbus_g_pending_call_set_notify): new function
5028         (dbus_g_pending_call_cancel): new function
5029
5030         * dbus/dbus-glib.h: move GType decls for connection/message here;
5031         * dbus/dbus-glib.c: move all the g_type and ref/unref stuff in
5032         here, just kind of rationalizing how we handle all that
5033
5034         * tools/dbus-names-model.c: new file for a tree model listing the
5035         services on a bus
5036
5037         * tools/dbus-tree-view.c (model_new): use proper typing on the
5038         model rows
5039
5040 2005-01-30  Havoc Pennington  <hp@redhat.com>
5041
5042         * glib/dbus-gmain.c: add a custom GSource back that just checks
5043         whether the message queue has anything in it; otherwise, there are 
5044         cases where we won't see messages in the queue since there was no 
5045         IO visible to the glib main loop
5046
5047         * dbus/dbus-connection-internal.h (_DBUS_DEFAULT_TIMEOUT_VALUE):
5048         increase default message timeout to 25 seconds
5049
5050 2005-01-30  Havoc Pennington  <hp@redhat.com>
5051
5052         * test/glib/test-profile.c (no_bus_stop_server): remove the
5053         warning about the g_warning that I just fixed
5054
5055         * glib/dbus-gmain.c: rewrite the main loop stuff to avoid the
5056         custom source, seems to be a lot easier to understand and work
5057         better.
5058
5059 2005-01-30  Havoc Pennington  <hp@redhat.com>
5060
5061         I think this main loop thing is conceptually broken, but here are 
5062         some band aids. I'll maybe rewrite it in a minute.
5063         
5064         * glib/dbus-gmain.c (add_timeout): timeout stuff doesn't use the
5065         custom GSource, so don't pass it in; confusing
5066         (gsource_server_finalize, gsource_connection_finalize): add
5067         finalize handlers that remove all the watches.  
5068
5069 2005-01-30  Havoc Pennington  <hp@redhat.com>
5070
5071         * glib/dbus-gobject.c (introspect_properties): fix the XML
5072         generated
5073
5074         * dbus/dbus-message.c (dbus_message_unref): add an in_cache flag
5075         which effectively detects the use of freed messages
5076
5077         * glib/dbus-gobject.c (handle_introspect): modify and return the
5078         reply message instead of the incoming message
5079
5080         * dbus/dbus-object-tree.c (handle_default_introspect_unlocked):
5081         gee, maybe it should SEND THE XML instead of just making a string
5082         and freeing it again ;-)
5083
5084         * tools/dbus-print-message.c (print_message): improve printing of
5085         messages
5086
5087         * configure.in: add debug-glib.service to the output
5088
5089 2005-01-30  Havoc Pennington  <hp@redhat.com>
5090
5091         dbus-viewer introspected and displayed the bus driver
5092         
5093         * dbus/dbus-object-tree.c 
5094         (object_tree_test_iteration): add tests for a handler registered on "/"
5095
5096         * dbus/dbus-object-tree.c
5097         (_dbus_decompose_path): fix to handle path "/" properly
5098         (run_decompose_tests): add tests for path decomposition
5099         
5100         * glib/dbus-gutils.c (_dbus_gutils_split_path): fix to handle "/"
5101         properly
5102
5103         * glib/dbus-gobject.c (handle_introspect): fix quotes
5104
5105         * test/glib/run-test.sh: support launching the bus, then running
5106         dbus-viewer
5107
5108         * test/glib/test-service-glib.c (main): put in a trivial gobject
5109         subclass and register it on the connection
5110
5111         * bus/driver.c (bus_driver_handle_introspect): implement
5112         introspection of the bus driver service
5113
5114         * dbus/dbus-protocol.h: add #defines for the XML namespace,
5115         identifiers, doctype decl
5116
5117         * bus/driver.c (bus_driver_handle_get_service_owner): handle
5118         attempts to get owner of DBUS_SERVICE_ORG_FREEDESKTOP_DBUS by 
5119         returning the service unchanged.
5120         (bus_driver_handle_message): remove old check for reply_serial in
5121         method calls, now the message type deals with that
5122         (bus_driver_handle_message): handle NULL interface
5123
5124         * glib/dbus-gproxy.c (dbus_g_proxy_get_bus_name): new function
5125
5126         * glib/dbus-gloader-expat.c (description_load_from_string): allow
5127         -1 for len
5128
5129         * tools/dbus-viewer.c: add support for introspecting a service on
5130         a bus
5131
5132         * glib/dbus-gproxy.c (dbus_g_pending_call_ref): add
5133         (dbus_g_pending_call_unref): add
5134
5135 2005-01-29  Havoc Pennington  <hp@redhat.com>
5136
5137         * tools/dbus-tree-view.c: add support for displaying properties.
5138         (run dbus-viewer with an introspect xml file as arg, then resize
5139         the window so the tree elements show up, not sure what that is)
5140
5141         * glib/dbus-gobject.c (handle_introspect): return
5142         org.freedesktop.Properties and org.freedesktop.Introspectable
5143         interfaces when we are introspected.
5144
5145         * doc/dbus-specification.xml: allow empty interface name when 
5146         Get/Set a property
5147
5148 2005-01-29  Havoc Pennington  <hp@redhat.com>
5149
5150         * glib/Makefile.am: rename dbus-glib-tool to dbus-binding-tool;
5151         though it uses glib, it could be extended for any binding in
5152         principle
5153
5154         * glib/dbus-gobject.c (gobject_message_function): change to the
5155         new way properties work
5156
5157         * dbus/dbus-protocol.h: add the new interfaces
5158
5159         * doc/dbus-specification.xml: document the introspection format,
5160         Introspectable interface, and add an org.freedesktop.Properties
5161         interface.
5162
5163         * glib/dbus-gparser.c: add support for a <property> element
5164
5165         * glib/dbus-gidl.c: add PropertyInfo
5166
5167         * glib/dbus-gobject.c (handle_introspect): put the outermost
5168         <node> outside the signal and property descriptions.
5169         (introspect_properties): export properties as <property> rather
5170         than as method calls
5171
5172 2005-01-28  Havoc Pennington  <hp@redhat.com>
5173
5174         * doc/TODO, doc/dbus-specification.xml: spec and TODO tweaks
5175         related to authentication protocol
5176
5177 2005-01-28  John (J5) Palmieri  <johnp@redhat.com>
5178
5179         * python/dbus_bindings.pyx.in: Updated to handle new D-BUS type system
5180                 - BUS_ACTIVATION -> BUS_STARTER
5181                 - DBUS_BUS_ACTIVATION -> DBUS_BUS_STARTER
5182                 - class MessageIter (__init__): Added recursion checking 
5183                 so we throw a nice error instead of just disconnecting from the
5184                 bus.
5185                 (get): Added arg_type parameter for recursion.
5186                 Removed the nil type
5187                 Added signiture type placeholder (not implemented)
5188                 Added struct type placeholder (not implemented)
5189                 Added varient type placeholder (not implemented)
5190                 Commented out dict type for now     
5191                 (get_element_type): renamed from get_array_type
5192                 (get_*): changed to use the dbus_message_iter_get_basic API
5193                 (get_*_array): removed in favor of recursive get_array method
5194                 (get_array): new recursive method which calls get to marshal
5195                 the elements of the array
5196                 (value_to_dbus_sig): New method returns the corrasponding
5197                 dbus signiture to a python value
5198                 (append): Comment out dict handling for now
5199                 Handle lists with the new recursive API
5200                 Comment out None handling for now
5201                 (append_nil): removed
5202                 (append_*): changed to use dbus_message_iter_append_basic API
5203                 (append_*_array): removed in favor of recursive append_array 
5204                 method
5205                 (__str__): Make it easier to print out recursive iterators
5206                 for debugging
5207                 - class Message (__str__): moved type inspection to the
5208                 MessageIter class' __str__ method
5209                 (get_iter): Added an append parameter wich defaults to False
5210                 If True use the new API's to create an append iterator
5211
5212         * python/dbus.py: Update to use new bindings API
5213                 - TYPE_ACTIVATION -> TYPE_STARTER
5214                 - class Bus (_get_match_rule): GetServiceOwner -> GetNameOwner
5215                 - class ActivationBus -> class StarterBus
5216                 - class RemoteObject (__call__): get an append iterator
5217                 - (_dispatch_dbus_method_call): get an append iterator
5218                 - class Object (emit_signal): get an append iterator
5219
5220         * python/examples/: Fixed up the examples to work with the new API
5221                 
5222 2005-01-28  Joe Shaw  <joeshaw@novell.com>
5223
5224         * configure.in: Bump version up to 0.30.
5225
5226         * HACKING: Add a release item to bump the version number up after 
5227         a release.
5228
5229 2005-01-28  Havoc Pennington  <hp@redhat.com>
5230
5231         * doc/dbus-specification.xml: update to describe 16-bit types and
5232         dict entries
5233
5234         * dbus/dbus-marshal-basic.c (_dbus_unpack_uint16): fix broken
5235         assertion
5236
5237         * dbus/dbus-protocol.h (DBUS_TYPE_DICT_ENTRY): add DICT_ENTRY as a
5238         type
5239
5240         * dbus/dbus-marshal-recursive.c: implement
5241
5242 2005-01-27  Havoc Pennington  <hp@redhat.com>
5243
5244         * dbus/dbus-arch-deps.h.in: add 16/32-bit types
5245
5246         * configure.in: find the right type for 16 and 32 bit ints as well
5247         as 64
5248
5249         * dbus/dbus-protocol.h (DBUS_TYPE_INT16, DBUS_TYPE_UINT16): add
5250         the 16-bit types so people don't have to stuff them in 32-bit or
5251         byte arrays.
5252
5253 2005-01-27  Havoc Pennington  <hp@redhat.com>
5254
5255         * dbus/dbus-message.c: byteswap the message if you init an
5256         iterator to read/write from it
5257         
5258         * dbus/dbus-marshal-byteswap.c: new file implementing 
5259         _dbus_marshal_byteswap()
5260
5261         * dbus/dbus-marshal-basic.c: add _dbus_swap_array()
5262
5263 2005-01-26  Havoc Pennington  <hp@redhat.com>
5264         
5265         * dbus/dbus-marshal-validate-util.c: break this out (and fix
5266         build, apparently - nobody noticed?)
5267         
5268 2005-01-26  Havoc Pennington  <hp@redhat.com>
5269
5270         * dbus/dbus-marshal-recursive.h: remove todo comment
5271
5272 2005-01-25  Joe Shaw  <joeshaw@novell.com>
5273
5274         * Land the mono binding changes to conform to the new APIs.
5275
5276         * mono/Makefile.am: Remove Custom.cs, DBusType/Custom.cs,
5277         DBusType/Dict.cs, and DBusType/Nil.cs from the build.
5278
5279         * mono/Arguments.cs (GetCodeAsString): Added.  Returns the dbus
5280         type code as a string.
5281         (InitAppending): Rename dbus_message_append_iter_init() to
5282         dbus_message_iter_init_append().
5283
5284         * mono/BusDriver.cs: Rename ServiceEventHandler to
5285         NameOwnerChangedHandler.  Rename GetServiceOwner to GetOwner.
5286         Rename ServiceOwnerChanged to NameOwnerChanged.
5287
5288         * mono/Connection.cs: Rename BaseService to UniqueName, and the
5289         underlying C call.
5290
5291         * mono/Custom.cs: Removed.  The CUSTOM type has been removed.
5292
5293         * mono/Service.cs: Rename Exists to HasOwner, internally rename
5294         dbus_bus_acquire_service() to dbus_bus_request_name().
5295
5296         * mono/DBusType/Array.cs (ctor): Use Type.GetElementType() instead
5297         of Type.UnderlyingSystemType to get the correct element type for
5298         the array.
5299         (ctor): Update code for new APIs: use dbus_message_iter_recurse(),
5300         dbus_message_get_{element|arg}_type() instead of
5301         dbus_message_iter_init_array_iterator().
5302         (Append): Replace dbus_message_iter_append_array() with
5303         dbus_message_iter_open_container() and
5304         dbus_message_iter_close_container().
5305
5306         * mono/DBusType/Custom.cs, mono/DBusType/Nil.cs: Removed.  These
5307         types have been removed.
5308         
5309         * mono/DBusType/*.cs: Replace calls of
5310         dbus_message_iter_get_[type]() to dbus_message_iter_get_basic(),
5311         but specify the type in the DllImport extern declaration.  Ditto
5312         for dbus_message_iter_append_[type]() ->
5313         dbus_message_iter_append_basic().
5314
5315         * mono/example/BusListener.cs: Update for ServiceEventHandler ->
5316         NameOwnerChangedHandler.
5317
5318 2005-01-25  John (J5) Palmieri  <johnp@redhat.com>
5319
5320         * python/dbus_bindings.pyx.in: Rename of methods and bindings
5321                 - get_base_service -> get_unique_name
5322                 - bus_get_base_service -> bus_get_unique_name
5323                 - dbus_bus_get_base_service -> dbus_bus_get_unique_name
5324                 - ACTIVATION_REPLY_ACTIVATED -> DBUS_START_REPLY_SUCCESS 
5325                 - ACTIVATION_REPLY_ALREADY_ACTIVE -> DBUS_START_REPLY_ALREADY_RUNNING
5326                 - bus_activate_service -> bus_start_service_by_name
5327                 - dbus_bus_activate_service -> dbus_bus_start_service_by_name
5328                 - bus_acquire_service -> bus_request_name
5329                 - dbus_bus_acquire_service -> dbus_bus_request_name
5330                 - bus_service_exists -> bus_name_has_owner
5331                 - dbus_bus_service_exists -> dbus_bus_name_has_owner
5332
5333         * python/dbus.py: Rename of methods
5334                 - activate_service -> start_service_by_name
5335                 - bus_acquire_service -> bus_request_name
5336                 - ACTIVATION_REPLY_ACTIVATED -> START_REPLY_SUCCESS 
5337                 - ACTIVATION_REPLY_ALREADY_ACTIVE -> START_REPLY_ALREADY_RUNNING
5338
5339         
5340 2005-01-24  Joe Shaw  <joeshaw@novell.com>
5341
5342         * dbus/dbus-connection.c (dbus_connection_dispatch): Print out the
5343         signature for the method that can't be found.
5344
5345         * dbus/dbus-message.c (dbus_message_iter_init): To check to see if
5346         the message has any arguments, we need to call
5347         _dbus_type_reader_get_current_type(), not
5348         _dbus_type_reader_has_next().
5349
5350 2005-01-24  Havoc Pennington  <hp@redhat.com>
5351
5352         * dbus/dbus-message-factory.c: more testing of message validation
5353
5354         * dbus/dbus-protocol.h (DBUS_MINIMUM_HEADER_SIZE): move to this
5355         header
5356
5357 2005-01-23  Havoc Pennington  <hp@redhat.com>
5358
5359         * dbus/dbus-message-factory.c, dbus/dbus-message-util.c: 
5360         get this all working, not many tests in the framework yet though
5361
5362 2005-01-22  Havoc Pennington  <hp@redhat.com>
5363
5364         * doc/dbus-faq.xml, doc/dbus-tutorial: add a FAQ and update
5365         tutorial, based on work from David Wheeler.
5366
5367 2005-01-21  Havoc Pennington  <hp@redhat.com>
5368
5369         * dbus/dbus-bus.c: add more return_if_fail checks
5370
5371         * dbus/dbus-message.c (load_message): have the "no validation"
5372         mode (have to edit the code to toggle the mode for now though)
5373
5374         * dbus/dbus-marshal-header.c (_dbus_header_load): have a mode that
5375         skips all validation; I want to use this at least for benchmark
5376         baseline, I'm not sure if it should be a publicly-available switch.
5377
5378 2005-01-21  Havoc Pennington  <hp@redhat.com>
5379
5380         * glib/dbus-gmain.c: don't put the GLib bindings in the same
5381         toplevel doxygen group as the low-level API stuff
5382
5383         * dbus/dbus.h: note that libdbus is the low-level API
5384
5385 2005-01-20  Havoc Pennington  <hp@redhat.com>
5386
5387         * update-dbus-docs.sh: script to update docs on the web site, only
5388         works for me though. neener.
5389
5390 2005-01-20  Havoc Pennington  <hp@redhat.com>
5391
5392         * dbus/dbus-sysdeps.c (_dbus_poll): amazingly, trying to compile
5393         code can reveal bugs in it
5394
5395 2005-01-20  Havoc Pennington  <hp@redhat.com>
5396
5397         * dbus/dbus-sysdeps.c (_dbus_poll): fix several bugs in the
5398         select() version, patches from Tor Lillqvist
5399
5400 2005-01-20  Havoc Pennington  <hp@redhat.com>
5401
5402         * doc/dbus-tutorial.xml: replace > with &gt;
5403
5404         * bus/services.c (bus_registry_acquire_service): validate the name
5405         and return a better error if it's no good.
5406
5407         * doc/dbus-specification.xml: note NO_AUTO_START change
5408
5409         * dbus/dbus-protocol.h (DBUS_HEADER_FLAG_NO_AUTO_START): change
5410         from AUTO_START, we're toggling the default
5411
5412         * bus/dispatch.c: adapt the tests to change of auto-start default
5413
5414 2005-01-18  Havoc Pennington  <hp@redhat.com>
5415
5416         * rename dbus-daemon-1 to dbus-daemon throughout
5417
5418 2005-01-18  Havoc Pennington  <hp@redhat.com>
5419
5420         * Throughout, grand renaming to strip out the use of "service",
5421         just say "name" instead (or "bus name" when ambiguous).  Did not
5422         change the internal code of the message bus itself, only the
5423         programmer-facing API and messages.
5424         
5425         * doc/dbus-specification.xml: further update the message bus section
5426         
5427         * bus/config-parser.c (all_are_equiv): fix bug using freed string
5428         in error case
5429
5430 2005-01-17  Havoc Pennington  <hp@redhat.com>
5431
5432         * dbus/dbus-types.h: remove 16-bit types since we don't use them
5433         ever
5434
5435         * dbus/dbus-marshal-validate.c (_dbus_validate_path): disallow any
5436         "invalid name character" not only non-ASCII
5437
5438         * doc/dbus-specification.xml: further update spec, message bus 
5439         parts are still out-of-date but the marshaling etc. stuff is now
5440         accurate-ish
5441
5442 2005-01-17  Havoc Pennington  <hp@redhat.com>
5443
5444         * doc/dbus-specification.xml: partially update spec
5445
5446 2005-01-17  Havoc Pennington  <hp@redhat.com>
5447
5448         * Throughout, align variant bodies according to the contained
5449         type, rather than always to 8. Should save a fair bit of space in
5450         message headers.
5451         
5452         * dbus/dbus-marshal-validate.c (_dbus_validate_body_with_reason):
5453         fix handling of case where p == end
5454
5455         * doc/TODO: remove the dbus_bool_t item and variant alignment items
5456
5457 2005-01-17  Havoc Pennington  <hp@redhat.com>
5458
5459         * dbus/dbus-types.h: hardcode dbus_bool_t to 32 bits
5460
5461         * Throughout: modify DBUS_TYPE_BOOLEAN to be a 32-bit type instead
5462         of an 8-bit type. Now dbus_bool_t is the type to use whenever you 
5463         are marshaling/unmarshaling a boolean.
5464
5465 2005-01-16  Havoc Pennington  <hp@redhat.com>
5466
5467         This is about it on what can be disabled/deleted from libdbus
5468         easily, back below 150K anyhow. Deeper cuts are more work than 
5469         just turning the code off as I've done here.
5470         
5471         * dbus/dbus-marshal-basic.c (_dbus_pack_int32): we don't need the
5472         signed int convenience funcs
5473
5474         * dbus/dbus-internals.c (_dbus_verbose_real): omit when not in
5475         verbose mode
5476
5477         * dbus/dbus-string-util.c, dbus/dbus-string.c: more breaking
5478         things out of libdbus
5479
5480         * dbus/dbus-sysdeps.c, dbus/dbus-sysdeps-util.c: same
5481         
5482         * dbus/dbus-hash.c: purge the TWO_STRINGS crap (well, make it
5483         tests-enabled-only, though it should probably be deleted)
5484
5485         * dbus/dbus-message-util.c: same stuff
5486
5487         * dbus/dbus-auth-util.c: same stuff
5488
5489 2005-01-16  Havoc Pennington  <hp@redhat.com>
5490
5491         * dbus/dbus-userdb-util.c: split out part of dbus-userdb.c
5492
5493         * dbus/dbus-sysdeps.c (_dbus_uid_from_string): move here to pave
5494         way for stripping down dbus-userdb.c stuff included in libdbus.
5495         Rename _dbus_parse_uid for consistency.
5496
5497 2005-01-16  Havoc Pennington  <hp@redhat.com>
5498
5499         * dbus/dbus-internals.c (_dbus_real_assert): print the function
5500         name the assertion failed in
5501
5502         * dbus/dbus-internals.h (_dbus_return_if_fail) 
5503         (_dbus_return_val_if_fail): assert that the name of the function
5504         containing the check doesn't start with '_', since we only want to 
5505         use checks on public functions
5506         
5507         * dbus/dbus-connection.c (_dbus_connection_ref_unlocked): change
5508         checks to assertions
5509
5510         * dbus/dbus-marshal-header.c (_dbus_header_set_field_basic):
5511         change checks to asserts for private function
5512
5513         * dbus/dbus-message.c (_dbus_message_set_serial): checks
5514         to asserts for private function
5515
5516         * dbus/dbus-marshal-recursive.c (skip_one_complete_type): remove
5517         broken assertion that was breaking make check
5518         (_dbus_type_reader_array_is_empty): remove this rather than fix
5519         it, was only used in assertions
5520
5521 2005-01-16  Havoc Pennington  <hp@redhat.com>
5522
5523         * test/unused-code-gc.py: hacky script to find code that's used
5524         only by the bus (not libdbus) or used only by tests or not used at
5525         all. It has some false alarms, but looks like we can clean up a
5526         lot of size from libdbus.
5527
5528         * dbus/dbus-sysdeps.c, dbus/dbus-sysdeps-utils.c,
5529         dbus/Makefile.am: initially move 10K of binary size out of libdbus
5530         
5531 2005-01-16  Havoc Pennington  <hp@redhat.com>
5532
5533         * Add and fix docs according to Doxygen warnings throughout
5534         source.
5535         
5536         * dbus/dbus-marshal-recursive.c
5537         (_dbus_type_reader_array_is_empty): change this to just call
5538         array_reader_get_array_len() and make it static
5539
5540         * dbus/dbus-message.c (dbus_message_iter_get_element_type): rename
5541         from get_array_type
5542         (dbus_message_iter_init_append): rename from append_iter_init
5543
5544         * dbus/dbus-marshal-recursive.c
5545         (_dbus_type_reader_get_element_type): rename from
5546         _dbus_type_reader_get_array_type
5547
5548 2005-01-15  Havoc Pennington  <hp@redhat.com>
5549
5550         * test/glib/test-profile.c (with_bus_server_filter): fix crash
5551
5552         * dbus/dbus-marshal-basic.c (_dbus_unpack_uint32): inline as macro
5553         when DBUS_DISABLE_ASSERT
5554         (_dbus_marshal_set_basic): be sure we align for the string length
5555
5556         * dbus/dbus-marshal-recursive.c (skip_one_complete_type): make
5557         this look faster
5558
5559         * dbus/dbus-string.c (_dbus_string_get_const_data_len): add an
5560         inline macro version
5561         (_dbus_string_set_byte): provide inline macro version
5562
5563 2005-01-15  Havoc Pennington  <hp@redhat.com>
5564
5565         * Land the new message args API and type system.
5566
5567         This patch is huge, but the public API change is not 
5568         really large. The set of D-BUS types has changed somewhat, 
5569         and the arg "getters" are more geared toward language bindings;
5570         they don't make a copy, etc.
5571
5572         There are also some known issues. See these emails for details
5573         on this huge patch:
5574         http://lists.freedesktop.org/archives/dbus/2004-December/001836.html
5575         http://lists.freedesktop.org/archives/dbus/2005-January/001922.html
5576         
5577         * dbus/dbus-marshal-*: all the new stuff
5578
5579         * dbus/dbus-message.c: basically rewritten
5580
5581         * dbus/dbus-memory.c (check_guards): with "guards" enabled, init
5582         freed blocks to be all non-nul bytes so using freed memory is less
5583         likely to work right
5584
5585         * dbus/dbus-internals.c (_dbus_test_oom_handling): add
5586         DBUS_FAIL_MALLOC=N environment variable, so you can do
5587         DBUS_FAIL_MALLOC=0 to skip the out-of-memory checking, or
5588         DBUS_FAIL_MALLOC=10 to make it really, really, really slow and
5589         thorough.
5590
5591         * qt/message.cpp: port to the new message args API
5592         (operator<<): use str.utf8() rather than str.unicode()
5593         (pretty sure this is right from the Qt docs?)
5594
5595         * glib/dbus-gvalue.c: port to the new message args API
5596
5597         * bus/dispatch.c, bus/driver.c: port to the new message args API
5598
5599         * dbus/dbus-string.c (_dbus_string_init_const_len): initialize the
5600         "locked" flag to TRUE and align_offset to 0; I guess we never
5601         looked at these anyhow, but seems cleaner.
5602
5603         * dbus/dbus-string.h (_DBUS_STRING_ALLOCATION_PADDING):
5604         move allocation padding macro to this header; use it to implement
5605         (_DBUS_STRING_STATIC): ability to declare a static string.
5606
5607         * dbus/dbus-message.c (_dbus_message_has_type_interface_member):
5608         change to return TRUE if the interface is not set.
5609
5610         * dbus/dbus-string.[hc]: move the D-BUS specific validation stuff
5611         to dbus-marshal-validate.[hc]
5612
5613         * dbus/dbus-marshal-basic.c (_dbus_type_to_string): move here from
5614         dbus-internals.c
5615
5616         * dbus/Makefile.am: cut over from dbus-marshal.[hc]
5617         to dbus-marshal-*.[hc]
5618
5619         * dbus/dbus-object-tree.c (_dbus_decompose_path): move this
5620         function here from dbus-marshal.c
5621
5622 2005-01-12  Joe Shaw  <joeshaw@novell.com>
5623
5624         * NEWS: Update for 0.23.
5625
5626         * configure.in: Release 0.23.
5627
5628 2005-01-12  Joe Shaw  <joeshaw@novell.com>
5629
5630         * mono/Makefile.am, mono/example/Makefile.am: Always build the 
5631         dbus DLL with --debug.  Clean up after the .mdb files this leaves
5632         behind.
5633
5634         * mono/doc/Makefile.am: Need to uninstall the docs on "make
5635         uninstall"
5636
5637         * mono/Arguments.cs (GetDBusTypeConstructor): If the type
5638         is an enum, get the enum's underlying type.  Another mono
5639         1.1.3 fix.
5640
5641 2005-01-11  Joe Shaw  <joeshaw@novell.com>
5642
5643         Patch from Sjoerd Simons <sjoerd@luon.net>
5644
5645         * mono/Makefile.am, mono/example/Makefile.am: Don't redefine
5646         DESTDIR.  It breaks stuff.
5647
5648 2005-01-11  Joe Shaw  <joeshaw@novell.com>
5649
5650         Patch from Tambet Ingo <tambet@ximian.com>
5651
5652         * mono/DBusType/Array.cs (Get): Get the underlying element type by
5653         calling type.GetElementType().  The code previously depended on
5654         broken Mono behavior, which was fixed in Mono 1.1.3.
5655
5656         * mono/DBusType/Dict.cs (constructor): Fix the parameters for
5657         Activator.CreateInstance() so that the class's constructor is
5658         called with the right parameters.
5659
5660 2005-01-11  Joe Shaw  <joeshaw@novell.com>
5661
5662         Patch from Timo Teräs <ext-timo.teras@nokia.com>
5663
5664         * dbus/dbus-connection.c
5665         (_dbus_connection_queue_received_message_link): Call
5666         _dbus_connection_remove_timeout() instead of the _locked()
5667         variant, since it's always called from
5668         _dbus_connection_handle_watch(), which handles the locking.
5669         Removed the _locked() variant since it's no longer used.
5670
5671 2005-01-03  Havoc Pennington  <hp@redhat.com>
5672
5673         * dbus/dbus-internals.h: I'm an idiot, _dbus_assert certainly can
5674         return
5675         
5676 2004-12-26  Havoc Pennington  <hp@redhat.com>
5677
5678         * dbus/dbus-internals.h: add _DBUS_GNUC_NORETURN to _dbus_assert
5679
5680 2005-01-03  Havoc Pennington  <hp@redhat.com>
5681
5682         * dbus/dbus-sysdeps.c (_dbus_sysdeps_test): fix using == on
5683         floating point
5684
5685         * dbus/dbus-string.c (_dbus_string_insert_alignment): new function
5686
5687 2005-01-02  Havoc Pennington  <hp@redhat.com>
5688
5689         * dbus/dbus-internals.h (_DBUS_ALIGN_OFFSET): new macro
5690
5691 2005-01-01  Havoc Pennington  <hp@redhat.com>
5692
5693         * configure.in: add -Wfloat-equal
5694
5695 2005-01-01  Havoc Pennington  <hp@redhat.com>
5696
5697         * dbus/dbus-sysdeps.h: add _DBUS_DOUBLES_BITWISE_EQUAL macro, 
5698         for a variety of reasons '==' doesn't do this.
5699
5700 2004-12-31  Havoc Pennington  <hp@redhat.com>
5701
5702         * dbus/dbus-string.c (_dbus_string_equal_substrings): new function
5703         I keep wishing I had
5704
5705 2004-12-30  John (J5) Palmieri  <johnp@redhat.com>
5706
5707         * python/dbus.py: s/ACTIVATION_REPLY_ACTIVE/ACTIVATION_REPLY_ACTIVATED
5708
5709 2004-12-30  John (J5) Palmieri  <johnp@redhat.com>
5710
5711         * python/dbus_bindings.pyx.in: Change DBUS_ACTIVATION_REPLY_ACTIVATED
5712         and DBUS_ACTIVATION_REPLY_ALREADY_ACTIVE to match the values in
5713         dbus-protocol.h.  Because they are defines and not enums they are not
5714         autogenerated.
5715
5716 2004-12-26  John (J5) Palmieri  <johnp@redhat.com>
5717
5718         * python/dbus_bindings.pyx.in (bus_activate_service): Bind
5719         dbus_bus_activate_service
5720
5721         * python/dbus.py (Bus.activate_service): activate a service on the
5722         bus.
5723
5724 2004-12-24  Havoc Pennington  <hp@redhat.com>
5725
5726         * test/decode-gcov.c: change to use .gcno and .gcda files, but the
5727         file format has also changed and I haven't adapted to that yet
5728         
5729         * Makefile.am: load .gcno files from latest gcc
5730
5731 2004-12-23  John (J5) Palmieri  <johnp@redhat.com>
5732         * Patch from Rob Taylor <robtaylor@fastmail.fm>
5733
5734         * python/dbus_bindings.pyx.in (bus_get_unix_user): New
5735         lowlevel binding
5736
5737         * python/dbus.py (get_unix_user): Added binding to 
5738         call dbus_bindings.bus_get_unix_user
5739
5740         * python/extract.py: Modified the proto_pat regex to
5741         handle unsigned long
5742
5743 2004-12-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
5744
5745         * dbus/make-dbus-glib-error-enum.sh: omit the function keyword for
5746         better POSIX compliance.
5747
5748 2004-12-19  Havoc Pennington  <hp@redhat.com>
5749
5750         * dbus/dbus-string.c (_dbus_string_insert_4_aligned) 
5751         (_dbus_string_insert_8_aligned): new functions
5752
5753         * dbus/dbus-string.c (_dbus_string_alloc_space): new function
5754
5755 2004-12-18  Havoc Pennington  <hp@redhat.com>
5756
5757         * dbus/dbus-string.c (_dbus_string_validate_ascii): use ISASCII
5758         macro
5759
5760         * dbus/dbus-message.c: fix a comment, and add a still-unused
5761         not-implemented function
5762
5763         * dbus/dbus-marshal.h: fix comment
5764
5765         * dbus/dbus-internals.h (_DBUS_ISASCII): new macro
5766
5767 2004-12-17  Joe Shaw  <joeshaw@novell.com>
5768
5769         * mono/DBusType/Byte.cs, mono/DBusType/Int32.cs,
5770         mono/DBusType/Int64.cs, mono/DBusType/UInt32.cs,
5771         mono/DBusType/UInt64.cs: Use Enum.GetUnderlyingType() instead of
5772         Type.UnderlyingSystemType to get the actual system type
5773         underneath.  This code previously depended on the broken Mono
5774         behavior, which was fixed in 1.1.3.
5775
5776 2004-11-27  Havoc Pennington  <hp@redhat.com>
5777
5778         * dbus/dbus-string.h (_dbus_string_get_byte): inline when asserts
5779         are disabled
5780         (_dbus_string_get_const_data): inline when asserts are disabled
5781
5782         * dbus/dbus-message.c: record the _dbus_current_generation of
5783         creation so we can complain if dbus_shutdown() is used improperly.
5784         Do this only if checks are enabled.
5785
5786         * dbus/dbus-connection.c: ditto
5787         
5788 2004-11-26  Havoc Pennington  <hp@redhat.com>
5789
5790         * test/glib/test-profile.c: add with_bus mode to profile echoes
5791         that go through the bus.
5792
5793         * test/glib/run-test.sh: add ability to run test-profile
5794
5795         * bus/dbus-daemon-1.1.in: fix to say that SIGHUP causes partial
5796         config file reload.
5797
5798 2004-11-26  Havoc Pennington  <hp@redhat.com>
5799
5800         * test/glib/test-profile.c: clean up how the fake_malloc_overhead
5801         thing was implemented
5802
5803 2004-11-26  Havoc Pennington  <hp@redhat.com>
5804
5805         * test/glib/test-profile.c: tweak a bit, add support for some
5806         made-up minimal malloc overhead with plain sockets, since in 
5807         real life some sort of buffers are unavoidable thus we could 
5808         count them in the theoretical best case
5809
5810 2004-11-26  Havoc Pennington  <hp@redhat.com>
5811
5812         * dbus/dbus-message.c (dbus_message_cache_or_finalize): fix bug
5813         where I was trying to cache one too many messages
5814
5815 2004-11-26  Havoc Pennington  <hp@redhat.com>
5816
5817         * dbus/dbus-message.c: reimplement message cache as an array which 
5818         makes the cache about twice as fast and saves maybe 1.5% overall
5819
5820 2004-11-26  Havoc Pennington  <hp@redhat.com>
5821
5822         * dbus/dbus-threads.c (init_global_locks): forgot to put the
5823         message cache lock here
5824
5825 2004-11-26  Havoc Pennington  <hp@redhat.com>
5826
5827         * dbus/dbus-message.c (struct DBusMessage): put the locked bit and
5828         the "char byte_order" next to each other to save 4 bytes
5829         (dbus_message_new_empty_header): reduce preallocation, since the
5830         message cache should achieve a similar effect
5831         (dbus_message_cache_or_finalize, dbus_message_get_cached): add a
5832         message cache that keeps a few DBusMessage around in a pool,
5833         another 8% speedup or so.
5834
5835         * dbus/dbus-dataslot.c (_dbus_data_slot_list_clear): new function
5836
5837 2004-11-25  Havoc Pennington  <hp@redhat.com>
5838
5839         * dbus/dbus-transport-unix.c (unix_do_iteration): if we're going
5840         to write, without reading or blocking, try it before the poll()
5841         and skip the poll() if nothing remains to write. This is about a
5842         3% speedup in the echo client/server
5843
5844 2004-11-25  Havoc Pennington  <hp@redhat.com>
5845
5846         The primary change here is to always write() once before adding
5847         the write watch, which gives us about a 10% performance increase.
5848         
5849         * dbus/dbus-transport-unix.c: a number of modifications to cope
5850         with removing messages_pending
5851         (check_write_watch): properly handle
5852         DBUS_AUTH_STATE_WAITING_FOR_MEMORY; adapt to removal of
5853         messages_pending stuff
5854         (check_read_watch): properly handle WAITING_FOR_MEMORY and
5855         AUTHENTICATED cases
5856         (unix_handle_watch): after writing, see if the write watch can be
5857         removed
5858         (unix_do_iteration): assert that write_watch/read_watch are
5859         non-NULL rather than testing that they aren't, since they 
5860         aren't allowed to be NULL. check_write_watch() at the end so 
5861         we add the watch if we did not finish writing (e.g. got EAGAIN)
5862
5863         * dbus/dbus-transport-protected.h: remove messages_pending call,
5864         since it resulted in too much inefficient watch adding/removing; 
5865         instead we now require that the transport user does an iteration 
5866         after queueing outgoing messages, and after trying the first
5867         write() we add a write watch if we got EAGAIN or exceeded our 
5868         max bytes to write per iteration setting
5869
5870         * dbus/dbus-string.c (_dbus_string_validate_signature): add this
5871         function
5872
5873         * dbus/dbus-server-unix.c (unix_finalize): the socket name was
5874         freed and then accessed, valgrind flagged this bug, fix it
5875
5876         * dbus/dbus-message.c: fix several bugs where HEADER_FIELD_LAST was taken
5877         as the last valid field plus 1, where really it is equal to the
5878         last valid field. Corrects some message corruption issues.
5879
5880         * dbus/dbus-mainloop.c: verbosity changes
5881
5882         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): handle OOM
5883         instead of aborting in one of the test codepaths
5884
5885         * dbus/dbus-internals.c (_dbus_verbose_real): fix a bug that
5886         caused not printing the pid ever again if a verbose was missing
5887         the newline at the end
5888         (_dbus_header_field_to_string): add HEADER_FIELD_SIGNATURE
5889
5890         * dbus/dbus-connection.c: verbosity changes; 
5891         (dbus_connection_has_messages_to_send): new function
5892         (_dbus_connection_message_sent): no longer call transport->messages_pending
5893         (_dbus_connection_send_preallocated_unlocked): do one iteration to
5894         try to write() immediately, so we can avoid the write watch. This
5895         is the core purpose of this patchset
5896         (_dbus_connection_get_dispatch_status_unlocked): if disconnected,
5897         dump the outgoing message queue, so nobody will get confused
5898         trying to send them or thinking stuff is pending to be sent
5899
5900         * bus/test.c: verbosity changes
5901
5902         * bus/driver.c: verbosity/assertion changes
5903
5904         * bus/dispatch.c: a bunch of little tweaks to get it working again
5905         because this patchset changes when/where you need to block.
5906
5907 2004-11-23  Havoc Pennington  <hp@redhat.com>
5908
5909         * test/glib/test-profile.c: modify to accept a plain_sockets
5910         argument in which case it will bench plain sockets instead of
5911         libdbus, for comparison purposes.
5912
5913 2004-11-22  Havoc Pennington  <hp@redhat.com>
5914
5915         * test/glib/test-profile.c (N_CLIENT_THREADS): run multiple
5916         threads for more time, so sysprof can get a grip on it.
5917
5918         * dbus/dbus-string.c (_dbus_string_validate_utf8): remove
5919         pointless variable
5920
5921 2004-11-13  Havoc Pennington  <hp@redhat.com>
5922
5923         * test/glib/test-profile.c: fix this thing up a bit
5924
5925         * dbus/dbus-message.c (dbus_message_new_empty_header): increase
5926         preallocation sizes by a fair bit; not sure if this will be an
5927         overall performance win or not, but it does reduce reallocs.
5928
5929         * dbus/dbus-string.c (set_length, reallocate_for_length): ignore
5930         the test hack that forced constant realloc if asserts are
5931         disabled, so we can profile sanely. Sprinkle in some
5932         _DBUS_UNLIKELY() which are probably pointless, but before I
5933         noticed the real performance problem I put them in.
5934         (_dbus_string_validate_utf8): micro-optimize this thing a little
5935         bit, though callgrind says it didn't help; then special-case
5936         ascii, which did help a lot; then be sure we detect nul bytes as
5937         invalid, which is a bugfix.
5938         (align_length_then_lengthen): add some more _DBUS_UNLIKELY
5939         superstition; use memset to nul the padding instead of a manual
5940         loop.
5941         (_dbus_string_get_length): inline this as a
5942         macro; it showed up in the profile because it's used for loop
5943         tests and so forth
5944
5945 2004-11-10  Colin Walters  <walters@verbum.org>
5946
5947         * dbus/dbus-spawn.c (check_babysit_events): Handle EINTR,
5948         for extra paranoia.
5949
5950 2004-11-09  Colin Walters  <walters@verbum.org>
5951
5952         * dbus/dbus-string.c (_dbus_string_get_length): New
5953         function, writes DBusString to C buffer.
5954
5955         * dbus/dbus-string.h: Prototype it.
5956
5957         * dbus/dbus-message.c (dbus_message_type_to_string): New
5958         function, converts message type into C string.
5959
5960         * dbus/dbus-message.h: Prototype it.
5961
5962         * bus/selinux.c (bus_selinux_check): Take source pid,
5963         target pid, and audit data.  Pass audit data to
5964         avc_has_perm.
5965         (log_audit_callback): New function, appends extra
5966         audit information.
5967         (bus_selinux_allows_acquire_service): Also take
5968         service name, add it to audit data.
5969         (bus_selinux_allows_send): Also take message
5970         type, interface, method member, error name,
5971         and destination, and add them to audit data.
5972         (log_cb): Initialize func_audit.
5973         
5974         * bus/selinux.h (bus_selinux_allows_acquire_service)
5975         (bus_selinux_allows_send): Update prototypes 
5976
5977         * bus/services.c (bus_registry_acquire_service): Pass
5978         service name to bus_selinux_allows_acquire_service.
5979
5980         * bus/bus.c (bus_context_check_security_policy): Pass
5981         additional audit data.  Move assignment of dest
5982         to its own line.
5983
5984 2004-11-07  Colin Walters  <walters@verbum.org>
5985
5986         * dbus/dbus-transport-unix.c (do_authentication): Always
5987         initialize auth_completed.
5988         
5989 2004-11-07  Colin Walters  <walters@verbum.org>
5990
5991         * bus/bus.c (load_config): Break into three
5992         separate functions: process_config_first_time_only,
5993         process_config_every_time, and process_config_postinit.
5994         (process_config_every_time): Move call of
5995         bus_registry_set_service_context_table into
5996         process_config_postinit.
5997         (process_config_postinit): New function, does
5998         any processing that needs to happen late
5999         in initialization (and also on reload).
6000         (bus_context_new): Instead of calling load_config,
6001         open config parser here and call process_config_first_time_only
6002         and process_config_every_time directly.  Later, after
6003         we have forked but before changing UID,
6004         invoke bus_selinux_full_init, and then call
6005         process_config_postinit.
6006         (bus_context_reload_config): As in bus_context_new,
6007         load parse file inside here, and call process_config_every_time
6008         and process_config_postinit.
6009
6010         * bus/services.h, bus/services.c
6011         (bus_registry_set_service_context_table): Rename
6012         from bus_registry_set_sid_table.  Take string hash from config
6013         parser, and convert them here into SIDs.
6014
6015         * bus/config-parser.c (struct BusConfigParser): Have
6016         config parser only store a mapping of service->context
6017         string.
6018         (merge_service_context_hash): New function.
6019         (merge_included): Merge context string hashes instead
6020         of using bus_selinux_id_table_union.
6021         (bus_config_parser_new): Don't use bus_selinux_id_table_new;
6022         simply create a new string hash.
6023         (bus_config_parser_unref): Unref it.
6024         (start_selinux_child): Simply insert strings into hash,
6025         don't call bus_selinux_id_table_copy_over.
6026
6027         * bus/selinux.h, bus/selinux.c (bus_selinux_id_table_union)
6028         (bus_selinux_id_table_copy_over): Delete.
6029
6030 2004-11-03  Colin Walters  <walters@verbum.org>
6031
6032         * bus/selinux.c (bus_selinux_pre_init): Kill some unused
6033         variables.
6034         
6035 2004-11-03  Colin Walters  <walters@verbum.org>
6036
6037         * bus/test-main.c (test_pre_hook): Fix test logic,
6038         thanks Joerg Barfurth <Joerg.Barfurth@Sun.COM>.
6039
6040 2004-11-02  Colin Walters  <walters@redhat.com>
6041
6042         * bus/selinux.c (bus_selinux_init): Split into two functions,
6043         bus_selinux_pre_init and bus_selinux_post_init.
6044         (bus_selinux_pre_init): Just determine whether SELinux is
6045         enabled.
6046         (bus_selinux_post_init): Do everything else.
6047
6048         * bus/main.c (main): Call bus_selinux_pre_init before parsing
6049         config file, and bus_selinux_post_init after.  This ensures that
6050         we don't lose the policyreload notification thread that
6051         bus_selinux_init created before forking previously.
6052         
6053         * bus/test-main.c (test_pre_hook): Update for split.
6054
6055 2004-10-31  Owen Fraser-Green  <owen@discobabe.net>
6056
6057         Patch from Johan Fischer <linux@fischaz.com>
6058         
6059         * mono/doc/Makefile.am (install-data-local): Added directory
6060         install for DESTDIR
6061
6062 2004-10-29  Colin Walters  <walters@redhat.com>
6063
6064         * dbus/dbus-sysdeps.h (_dbus_become_daemon): Also take
6065         parameter for fd to write pid to.       
6066
6067         * dbus/dbus-sysdeps.c (_dbus_become_daemon): Implement it.
6068         
6069         * bus/bus.c (bus_context_new): Pass print_pid_fd
6070         to _dbus_become_daemon (bug #1720)
6071
6072 2004-10-29  Colin Walters  <walters@redhat.com>
6073
6074         Patch from Ed Catmur <ed@catmur.co.uk>
6075
6076         * mono/doc/Makefile.am (install-data-local): Handle
6077         DESTDIR.
6078
6079 2004-10-29  Colin Walters  <walters@redhat.com>
6080
6081         * bus/.cvsignore, qt/.cvsignore: Update.
6082
6083 2004-10-29  Colin Walters  <walters@redhat.com>
6084
6085         Patch from Kristof Vansant <de_lupus@pandora.be>
6086
6087         * configure.in: Detect Slackware.
6088         * bus/Makefile.am (SCRIPT_IN_FILES): Add rc.messagebus.in.
6089         * bus/rc.messagebus.in: New file.
6090
6091 2004-10-29  Colin Walters  <walters@redhat.com>
6092
6093         * tools/dbus-monitor.c (filter_func): Return
6094         DBUS_HANDLER_RESULT_HANDLED in filter function
6095         for now.  See:
6096         http://freedesktop.org/pipermail/dbus/2004-August/001433.html
6097
6098 2004-10-29  Colin Walters  <walters@redhat.com>
6099
6100         Patch from Matthew Rickard <mjricka@epoch.ncsc.mil>
6101
6102         * bus/services.c (bus_registry_acquire_service): 
6103         Correctly retrieve service name from DBusString
6104         for printing.
6105
6106 2004-10-29  Colin Walters  <walters@redhat.com>
6107
6108         * dbus/dbus-glib.h: Update documentation to not
6109         refer to internal APIs.
6110
6111 2004-10-27  Joe Shaw  <joeshaw@novell.com>
6112
6113         * mono/Arguments.cs (GetDBusTypeConstructor):
6114         type.UnderlyingSystemType will return "System.Byte" if you do it
6115         on "byte[]", which is not what we want.  So check the type.IsArray
6116         property and use System.Array instead.
6117
6118 2004-10-25  John (J5) Palmieri  <johnp@redhat.com>
6119
6120         * dbus/dbus-sysdeps.c (fill_user_info): On errors do not free
6121         the DBusUserInfo structure since this is passed into the function.
6122         This would cause a double free when the function that allocated
6123         the structure would try to free it when an error occured.
6124
6125         * (bus/session.conf.in, bus/Makefile.am, dbus/configure.in):
6126         use /usr/share/dbus-1/services instead of /usr/lib/dbus-1.0/services
6127         for service activation to avoid 32bit/64bit parallel install issues
6128
6129 2004-10-21  Colin Walters  <walters@verbum.org>
6130
6131         * AUTHORS: Fix my email address, the @gnu.org one
6132         has been bouncing for some time.  Also add J5.
6133         
6134 2004-10-21  Colin Walters  <walters@verbum.org>
6135
6136         * dbus/dbus-transport-unix.c (do_authentication): Return
6137         authentication status to callers.
6138         (unix_handle_watch): If we completed authentication this round,
6139         don't do another read.  Instead wait until the next iteration,
6140         after we've read any pending data in the auth buffer.
6141         (unix_do_iteration): Ditto.
6142         (unix_handle_watch): Updated for new do_authentication prototype.
6143
6144 2004-10-18  Colin Walters  <walters@verbum.org>
6145
6146         * bus/selinux.c (bus_selinux_enabled): Handle
6147         --disable-selinux case.
6148         
6149 2004-10-18  Colin Walters  <walters@verbum.org>
6150
6151         * bus/selinux.h: Add bus_selinux_enabled.
6152         
6153         * bus/selinux.c (bus_selinux_enabled): Implement it.
6154         
6155         * bus/config-parser.c (struct include): Add
6156         if_selinux_enabled member.
6157         (start_busconfig_child): Parse if_selinux_enabled
6158         attribute for include.
6159         (bus_config_parser_content): Handle it.
6160
6161         * bus/session.conf.in, bus/system.conf.in: Add
6162         inclusion of context mapping to default config files;
6163         conditional on SELinux being enabled.
6164         
6165         * doc/busconfig.dtd: Add to if_selinux_enabled to default DTD.
6166         
6167         * test/data/invalid-config-files/badselinux-1.conf, 
6168         test/data/invalid-config-files/badselinux-2.conf:
6169         Test files for bad syntax.
6170         
6171 2004-10-17  Colin Walters  <walters@verbum.org>
6172
6173         * dbus/dbus-memory.c (_dbus_initialize_malloc_debug, check_guards)
6174         (dbus_malloc, dbus_malloc0, dbus_realloc): Fix up printf
6175         format specifier mismatches.
6176
6177 2004-10-07  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6178
6179         * dbus/dbus-sysdeps.c (_dbus_file_get_contents): fix an incorrect
6180         format string.
6181
6182         * glib/dbus-dbus-gmain.c (dbus_g_bus_get): do not mangle NULL
6183         pointer (bug #1540, Leonardo Boiko).
6184
6185 2004-09-28  Jon Trowbridge  <trow@ximian.com>
6186
6187         * mono/BusDriver.cs: Changed BusDriver struct to remove
6188         the ServiceCreated and ServiceDeleted events and replace them
6189         with the new ServiceOwnerChanged event.
6190
6191         * mono/example/BusListener.cs: Added a new example program,
6192         which listens for and reports any ServiceOwnerChanged events
6193         on the bus driver.
6194
6195         * mono/example/Makefile.am (DESTDIR): Build changes for the
6196         new BusListener.cs example.
6197
6198 2004-09-27  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6199
6200         * bus/signals.c (bus_match_rule_parse): validate the components of
6201         match rules (bug #1439).
6202
6203         * dbus/dbus-bus.c (dbus_bus_add_match): add a missing OOM test.
6204
6205 2004-09-24  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6206
6207         * doc/dbus-specification.xml: document ServiceOwnerChanged
6208         signal.
6209         
6210         * bus/driver.c, bus/driver.h, bus/services.c: Use
6211         ServiceOwnerChanged signal instead of ServiceCreated and
6212         ServiceDeleted.
6213         
6214         * bus/dispatch.c: update testcase for the new signal.
6215
6216 2004-09-20  Jon Trowbridge  <trow@ximian.com>
6217
6218         Patch from Nat Friedman <nat@novell.com>
6219
6220         * mono/Makefile.am: A number of small build fixes to allow "make
6221         distcheck" to succeed.
6222
6223         * mono/example/Makefile.am: "make distcheck" fixes.
6224
6225         * mono/AssemblyInfo.cs.in: When signing the assembly, look for the
6226         key in @srcdir@.
6227
6228         * test/Makefile.am: "make distcheck" fixes.
6229
6230 2004-09-17  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6231
6232         * dbus/dbus-sysdeps.c (_dbus_user_at_console): fix memleak in OOM.
6233
6234         * doc/busconfig.dtd: update the DTD for the at_console attribute.
6235
6236         * bus/driver.c (bus_driver_handle_hello): correctly handle Hello
6237         messages after the first one (bug #1389).
6238         
6239         * bus/dispatch.c (check_double_hello_message): add a test case for
6240         the double hello message bug.
6241         (check_existent_service_activation): fix check of spawning error.
6242         
6243 2004-09-16  David Zeuthen  <david@fubar.dk>
6244
6245         * python/dbus_bindings.pyx.in: Add support for int64 and uint64
6246
6247 2004-09-12  David Zeuthen  <david@fubar.dk>
6248
6249         Patch from Kay Sievers <kay.sievers@vrfy.org>
6250
6251         * bus/bus.c (bus_context_new):
6252         * bus/bus.h:
6253         * bus/main.c (usage)
6254         (main):
6255         Add commandline option --nofork to override configuration file
6256         setting.
6257
6258 2004-09-09  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6259
6260         * dbus/dbus-*.h: remove the ; after DBUS_(BEGIN|END)_DECLS. Some C
6261         compilers don't like it (bug #974).
6262
6263 2004-09-04  Harald Fernengel  <harry@kdevelop.org>
6264
6265         * qt/connection.*: Applied patch by Jérôme Lodewyck
6266         <lodewyck@clipper.ens.fr> to integrate an existing
6267         connection into the Qt eventloop
6268
6269 2004-08-30  Jon Trowbridge  <trow@ximian.com>
6270
6271         * mono/BusDriver.cs: Added.  This is a class for interacting with
6272         the org.freedesktop.DBus service.
6273
6274         * mono/Message.cs: Added a mechanism to expose the message that is
6275         currently being dispatched via the static Message.Current
6276         property.  Added Message.Sender and Message.Destination
6277         properties.
6278
6279         * mono/Handler.cs: Expose the dispatched message via
6280         Message.Current when handling method calls.
6281
6282         * mono/Service.cs: Expose the dispatched message via
6283         Message.Current when handling signal emissions.
6284         
6285         * mono/Connection.cs: Bind dbus_bus_get_base_service via the
6286         Connection.BaseService property.
6287
6288 2004-08-28  Havoc Pennington  <hp@redhat.com>
6289
6290         * dbus/dbus-userdb.c (_dbus_is_console_user): remove unused variable
6291
6292         More fixes from Steve Grubb
6293         
6294         * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): fix fd leak
6295         (_dbus_listen_tcp_socket): fix fd leak
6296
6297         * dbus/dbus-spawn.c (read_pid, read_ints): move the "again:" for
6298         EINTR to a bit lower in the code
6299
6300 2004-08-26  Jon Trowbridge  <trow@ximian.com>
6301
6302         * bus/driver.c (bus_driver_handle_service_exists): Respond with
6303         TRUE if we are inquiring about the existence of the built-in
6304         org.freedesktop.DBus service.
6305
6306 2004-08-25  John Palmieri  <johnp@redhat.com>
6307         * bus/config-parser.c:
6308         (struct PolicyType): Add POLICY_CONSOLE
6309         (struct Element.d.policy): s/gid_or_uid/gid_uid_or_at_console
6310         (start_busconfig_child): Sets up console element when
6311         <policy at_console=""> is encountered in a policy file
6312         (append_rule_from_element): Convert console elements to console
6313         rules.
6314
6315         * bus/policy.c: 
6316         (bus_policy_create_client_policy): Add console rules to the client
6317         policy based on if the client is at the console
6318         (bus_policy_append_console_rule): New function for adding a
6319         console rule to a policy
6320         (bus_policy_merge): Handle console rule merging
6321
6322         * dbus/dbus-sysdeps.h: Added the DBUS_CONSOLE_DIR constant
6323         where we check for console user files
6324         
6325         * dbus/dbus-sysdeps.c:
6326         (_dbus_file_exists): New function which checks if the given
6327         file exists
6328         (_dbus_user_at_console): New function which does the system
6329         specific process of checking if the user is at the console
6330
6331         * dbus/dbus-userdb.c:
6332         (_dbus_is_console_user): New function converts a UID to user name
6333         and then calls the system specific _dbus_user_at_console to 
6334         see if the user is at the console and therefor a console user
6335
6336 2004-08-25  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6337
6338         * bus/config-parser.c (set_limit):
6339         * bus/dbus-daemon-1.1.in:
6340         * test/data/valid-config-files/many-rules.conf: set the
6341         max_match_rules_per_connection limt from the config file. 
6342
6343         * doc/busconfig.dtd: update the DTD.
6344
6345         * bus/driver.c: remove some unused variables.
6346
6347 2004-08-24  Mikael Hallendal  <micke@imendio.com>
6348
6349         * dbus/dbus-glib-lowlevel.h: Removed dbus_bus_get_with_g_main since 
6350         it's been replaced by dbus_g_bus_get
6351
6352 2004-08-23  Colin Walters  <walters@redhat.com>
6353
6354         Updated SELinux support from Matthew Rickard <mjricka@epoch.ncsc.mil>
6355
6356         * bus/selinux.h: Prototype bus_selinux_get_policy_root.
6357
6358         * bus/selinux.c: Create a thread for policy reload notification.
6359         (bus_selinux_get_policy_root): Implement.
6360
6361         * bus/config-parser.c (start_busconfig_child)
6362         (bus_config_parser_content): Support SELinux-root relative
6363         inclusion.
6364
6365         * configure.in <HAVE_SELINUX>: Add -lpthread.
6366         
6367         * bus/test-main.c (test_pre_hook, test_post_hook): New.
6368         (test_post_hook): Move memory checking into here.
6369         (test_pre_hook, test_post_hook): Move SELinux checks in
6370         here, but conditional on a DBUS_TEST_SELINUX environment
6371         variable.  Unfortunately we can't run the SELinux checks
6372         as a normal user, since they won't have any permissions
6373         for /selinux.  So this will have to be tested manually
6374         for now, until we have virtualization for most of
6375         libselinux.
6376         
6377 2004-08-23  Havoc Pennington  <hp@redhat.com>
6378
6379         * dbus/dbus-sysdeps.c (_dbus_change_identity): add setgroups() to
6380         drop supplementary groups, suggested by Steve Grubb
6381
6382 2004-08-20  Colin Walters  <walters@redhat.com>
6383
6384         * bus/config-parser.c (start_busconfig_child): Remove some unused
6385         variables.
6386         
6387         * bus/selinux.c (bus_selinux_id_table_insert): Avoid compiler
6388         warning.
6389
6390 2004-08-17  Joe Shaw  <joeshaw@novell.com>
6391
6392         * configure.in: If --enable-mono is passed in, if we can't find
6393         mono error out.
6394
6395         * mono/Makefile.am: Use /gacutil to install assemblies into the
6396         GAC and not /root.
6397
6398 2004-08-12  Havoc Pennington  <hp@redhat.com>
6399
6400         * NEWS: update for 0.22
6401
6402         * configure.in: release 0.22
6403
6404 2004-08-11  Colin Walters  <walters@redhat.com>
6405
6406         * tools/dbus-send.c (main, usage): Add --reply-timeout
6407         argument.
6408
6409 2004-08-10  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6410
6411         * bus/bus.c (process_config_first_time_only): get rid of an unused
6412         DBusError that was causing a memoy leak (bug #989).
6413
6414         * dbus/dbus-keyring.c, dbus/dbus-message.c:
6415         fix compilation on Solaris/Forte C (bug #974)
6416
6417         * bus/main.c (main): plug two minuscule memleaks.
6418
6419 2004-08-10  Havoc Pennington  <hp@redhat.com>
6420
6421         * doc/dbus-tutorial.xml: add some more info on GLib bindings
6422
6423 2004-08-09  Havoc Pennington  <hp@redhat.com>
6424
6425         * COPYING: switch to Academic Free License version 2.1 instead of
6426         2.0, to resolve complaints about patent termination clause.
6427
6428 2004-07-31  John (J5) Palmieri  <johnp@redhat.com>
6429
6430         * README: added documentation for the --enable-python 
6431         configure switch.
6432
6433 2004-07-31  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6434
6435         * bus/config-parser.c (bus_config_parser_new): fix an invalid
6436         _unref in the SELinux support.
6437
6438         * doc/busconfig.dtd: update DTD for SELinux support.
6439
6440         * bus/config-loader-libxml.c: fix error handler and parser
6441         initialisation/cleanup. OOM test now works with libxml2 HEAD.
6442
6443         * configure.in: remove the warning about libxml2.
6444
6445         * dbus/dbus-bus.c: silence doxygen warning.
6446
6447 2004-07-31  Colin Walters  <walters@redhat.com>
6448
6449         * configure.in: Move #error in SELinux check to its own line.
6450
6451 2004-07-31  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6452
6453         * dbus/dbus-internals.h (_DBUS_SET_OOM):
6454         * bus/utils.h (BUS_SET_OOM): use dbus_error_set_const instead of
6455         dbus_error_set.
6456
6457         * bus/dispatch.c (check_send_exit_to_service): fix the test case,
6458         broken by the change in the _SET_OOM macros.
6459
6460 2004-07-31  Colin Walters  <walters@redhat.com>
6461
6462         * bus/selinux.c <HAVE_SELINUX>: Include utils.h to get
6463         BUS_SET_OOM.
6464
6465 2004-07-31  Colin Walters  <walters@redhat.com>
6466
6467         * configure.in: Use AC_TRY_COMPILE instead of AC_EGREP_HEADER
6468         to correctly detect DBUS__ACQUIRE_SVC.  Also add an
6469         AC_MSG_CHECKING.
6470
6471 2004-07-24  Havoc Pennington  <hp@redhat.com>
6472
6473         SELinux support from Matthew Rickard <mjricka@epoch.ncsc.mil>
6474
6475         * bus/selinux.c, bus/selinux.h: new file encapsulating selinux
6476         functionality
6477
6478         * configure.in: add --enable-selinux
6479         
6480         * bus/policy.c (bus_policy_merge): add FIXME to a comment
6481
6482         * bus/main.c (main): initialize and shut down selinux
6483
6484         * bus/connection.c: store SELinux ID on each connection, to avoid 
6485         repeated getting of the string context and converting it into 
6486         an ID
6487
6488         * bus/bus.c (bus_context_get_policy): new accessor, though it
6489         isn't used
6490         (bus_context_check_security_policy): check whether the security
6491         context of sender connection can send to the security context of
6492         recipient connection
6493
6494         * bus/config-parser.c: add parsing for <selinux> and <associate>
6495         
6496         * dbus/dbus-transport.c (_dbus_transport_get_unix_fd): to
6497         implement dbus_connection_get_unix_fd()
6498
6499         * dbus/dbus-connection.c (dbus_connection_get_unix_fd): new
6500         function, used by the selinux stuff
6501         
6502 2004-07-29  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6503
6504         * bus/config-loader-libxml.c: complete the implementation of
6505         libxml backend for config file loader. Doesn't work with full OOM
6506         test yet. 
6507         
6508         * configure.in: change error when selecting libxml into a warning.
6509         
6510         * test/data/invalid-config-files: add two non-well-formed XML
6511         files. 
6512         
6513         * glib/Makefile.am: libdbus_gtool always uses expat, not libxml.
6514         
6515         * dbus/dbus-transport-unix.c (unix_handle_watch): do not
6516         disconnect in case of DBUS_WATCH_HANGUP, several do_reading() may
6517         be necessary to read all the buffer. (bug #894)
6518
6519         * bus/activation.c (bus_activation_activate_service): fix a
6520         potential assertion failure (bug #896). Small optimization in the
6521         case of auto-activation messages.
6522
6523         * dbus/dbus-message.c (verify_test_message, _dbus_message_test):
6524         add test case for byte-through-vararg bug (#901). patch by Kimmo
6525         Hämäläinen. 
6526
6527 2004-07-28  Anders Carlsson  <andersca@gnome.org>
6528
6529         * python/dbus.py:
6530         * python/dbus_bindings.pyx.in:
6531         Add dbus.init_gthreads (), allow emit_signal to pass
6532         arguments to the signal.
6533         
6534 2004-07-24  Havoc Pennington  <hp@redhat.com>
6535
6536         * AUTHORS: add some people, not really comprehensively, let me
6537         know if I missed you
6538
6539 2004-07-24  Havoc Pennington  <hp@redhat.com>
6540
6541         * Makefile.am (DIST_SUBDIRS): add DIST_SUBDIRS, problem solved by
6542         Owen
6543
6544         * test/Makefile.am (DIST_SUBDIRS): here also
6545
6546 2004-07-22  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6547
6548         * dbus/dbus-sysdeps.c (fill_user_info): fix inexistent label name,
6549         breaking build on Solaris, reported by Farhad Saberi on the ML.
6550
6551         * dbus/dbus-message.c (dbus_message_append_args_valist): fix the
6552         va_arg invocation to account for integer promotion in the case of
6553         DBUS_TYPE_BYTE (unsigned char is promoted to int). (bug #901)
6554
6555         * bus/services.c (bus_service_remove_owner): fix bug #902, use
6556         _dbus_list_get_first_link, not _dbus_list_get_first.
6557
6558         * dbus/dbus-bus.c (dbus_bus_service_exists): plug a memory leak.
6559
6560         * dbus/dbus-object-tree.c (free_subtree_recurse): always null
6561         handler functions so that the asserts in _dbus_object_subtree_unref
6562         do not fail.
6563
6564         * dbus/dbus-transport-unix.c (do_reading):
6565         _dbus_transport_queue_messages return value is of type
6566         dbus_bool_t, not DBusDispatchStatus.
6567         
6568 2004-07-19  David Zeuthen  <david@fubar.dk>
6569
6570         * dbus/dbus-protocol.h: Add DBUS_ERROR_UNIX_PROCESS_ID_UNKNOWN
6571
6572         * bus/dispatch.c:
6573         (check_get_connection_unix_user): Debug says GetProperty; but the
6574         method is called GetConnectionUnixUser
6575         (check_get_connection_unix_process_id): New function
6576         (bus_dispatch_test): Actually call check_get_connection_unix_user();
6577         also call check_get_connection_unix_process_id()
6578         
6579         * bus/driver.c:
6580         (bus_driver_handle_get_connection_unix_process_id): New function,
6581         handles GetConnectionUnixProcessID on the org.freedesktop.DBus
6582         interface
6583         
6584         * dbus/dbus-auth.c:
6585         (handle_server_data_external_mech): Set pid from the credentials
6586         obtained from the socket
6587         
6588         * dbus/dbus-connection.c:
6589         (dbus_connection_get_unix_process_id): New function
6590         
6591         * dbus/dbus-connection.h: 
6592         Add prototype for dbus_connection_get_unix_process_id
6593         
6594         * dbus/dbus-transport.c:
6595         (_dbus_transport_get_unix_process_id): New function
6596         
6597         * dbus/dbus-transport.h:
6598         Add prototype for _dbus_transport_get_unix_process_id
6599         
6600 2004-07-19  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6601
6602         * dbus/dbus-message.c: Message counter fix, patch by Christian
6603         Hammond <chipx86@gnupdate.org>
6604
6605 2004-07-18  Seth Nickell  <seth@gnome.org>
6606
6607         * python/dbus.py:
6608         * python/dbus_bindings.pyx.in:
6609         * python/tests/test-client.py:
6610
6611         Add dbus.ByteArray and dbus_bindings.ByteArray
6612         types so that byte streams can be passed back.
6613
6614         Give jdahlin the heaps of credit that are so
6615         rightfully his.
6616         
6617 2004-07-12  Seth Nickell  <seth@gnome.org>
6618
6619         * python/dbus.py:
6620
6621         Add message argument to the default object_method_handler
6622         function.
6623         
6624         * python/dbus_bindings.pyx.in:
6625
6626         Automatically return NIL when passed an empty list
6627         (we can't pass back a list since lists are typed
6628         and we don't have any idea what type the the client
6629         intended the list to be... :-( )
6630         
6631 2004-07-10  Seth Nickell  <seth@gnome.org>
6632
6633         * python/examples/Makefile.am:
6634
6635         Fix distcheck breakage caused by new examples.
6636
6637 2004-07-10  Seth Nickell  <seth@gnome.org>
6638
6639         * python/dbus.py:
6640
6641         Add "message" argument to service-side dbus.Object
6642         methods. This will break existing services written
6643         using the python bindings, but will allow extraction
6644         of all the message information (e.g. who its from).
6645
6646         Add improved "object oriented" signal handling/emission.
6647         
6648         * python/examples/example-service.py:
6649
6650         Nix this example.
6651         
6652         * python/examples/example-signal-emitter.py:
6653         * python/examples/example-signal-recipient.py:
6654
6655         Two new examples that show how to emit and receive
6656         signals using the new APIs.
6657         
6658         * python/examples/example-signals.py:
6659         * python/examples/gconf-proxy-service.py:
6660         * python/examples/gconf-proxy-service2.py:
6661
6662         Add "message" argument to service methods.
6663
6664 2004-06-28  Kay Sievers <kay.sievers@vrfy.org>
6665
6666         * bus/driver.c (bus_driver_handle_get_connection_unix_user)
6667         * dbus/bus.c (dbus_bus_get_unix_user)
6668         * doc/dbus-specification.xml: implement GetConnectionUnixUser
6669         method of org.freedesktop.DBus interface.
6670
6671         * bus/dispatch.c: test case
6672
6673 2004-06-23  John (J5) Palmieri  <johnp@redhat.com>
6674
6675         * python/Makefile.am: switched include directory from glib/ to dbus/
6676         since dbus-glib.h moved
6677  
6678 2004-06-22  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6679
6680         * configure.in: prevent building the gcj stuff and libxml loader
6681         since they are broken.
6682
6683 2004-06-20  Havoc Pennington  <hp@redhat.com>
6684
6685         * dbus/dbus-glib-error-enum.h: autogenerate the GError enum 
6686         codes from the dbus error names
6687         
6688         * glib/dbus-glib.h: move to subdir dbus/ since it's included 
6689         as dbus/dbus-glib.h and that breakage is now visible due to 
6690         including dbus/dbus-glib.h in dbus-glib-lowlevel.h
6691         
6692         * glib/dbus-glib.h: s/gproxy/g_proxy/
6693
6694         * dbus/dbus-shared.h: new header to hold stuff shared with
6695         binding APIs
6696         
6697         * dbus/dbus-protocol.h (DBUS_ERROR_*): move errors here rather
6698         than dbus-errors.h
6699
6700         * glib/dbus-glib.h (dbus_set_g_error): move to
6701         dbus-glib-lowlevel.h
6702
6703         * glib/dbus-glib.h: remove dbus/dbus.h from here; change a bunch
6704         of stuff to enable this
6705
6706         * dbus/dbus-glib-lowlevel.h: put dbus/dbus.h here
6707
6708         * a bunch of other changes with the same basic "separate glib 
6709         bindings from dbus.h" theme
6710         
6711 2004-06-10  Owen Fraser-Green  <owen@discobabe.net>
6712
6713         * dbus-sharp.pc.in: Removed glib-sharp inclusion in Libs.
6714
6715         * python/examples/Makefile.am: Fixed typo in EXTRA_DIST.
6716
6717 2004-06-09  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6718
6719         * bus/driver.c, dbus/dbus-bus.c: use BOOLEAN instead of UINT32 for
6720         the reply value of the ServiceExists message.
6721
6722 2004-06-07  John (J5) Palmieri  <johnp@redhat.com>
6723
6724         * python/dbus_bindings.pyx.in: No longer need to parse path
6725         elements and pass them as arrays of strings.  The C API now
6726         accepts plain path strings.
6727         (_build_parsed_path): removed 
6728
6729 2004-06-07  Havoc Pennington  <hp@redhat.com>
6730
6731         * doc/TODO: remove auto-activation item since it's done; sort
6732         items by importance/milestone
6733
6734 2004-06-07  Havoc Pennington  <hp@redhat.com>
6735
6736         * dbus/dbus-message-builder.c (_dbus_message_data_load): append
6737         random signature when using REQUIRED_FIELDS (this hack won't work
6738         in the long term)
6739
6740         * dbus/dbus-message.c: change the signature to be a header field,
6741         instead of message->signature special-case string. Incremental
6742         step forward. Then we can fix up code to send the signature in the
6743         message, then fix up code to validate said signature, then fix up
6744         code to not put the typecodes inline, etc.
6745         (load_one_message): don't make up the signature after the fact
6746         (decode_header_data): require signature field for the known
6747         message types
6748
6749         * dbus/dbus-marshal.c (_dbus_marshal_string_len): new
6750
6751         * dbus/dbus-protocol.h: add DBUS_HEADER_FIELD_SIGNATURE
6752
6753 2004-06-07  Owen Fraser-Green  <owen@discobabe.net>
6754
6755         * mono/DBusType/ObjectPath.cs: Renamed PathName argument to Path
6756
6757         * mono/Handler.cs: Updated to follow new path argument for
6758         (un-)registering objects.
6759
6760         * mono/example/Makefile.am:
6761         * mono/Makefile.am:
6762         * configure.in: Bumped required version for mono and use new -pkg
6763         syntax for deps
6764
6765 2004-06-05  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6766
6767         * dbus/dbus-connection.h, dbus/dbus-connection.c: have object path
6768         registration functions take the path argument as char* instead of
6769         char**.
6770
6771         * dbus/dbus-marshal.h, dbus/dbus-marshal.c (_dbus_decompose_path):
6772         split off the path decompostion part of
6773         _dbus_demarshal_object_path. Some misc. fixes to silence compiler
6774         warnings. 
6775
6776         * glib/dbus-gobject.c, test/test-service.c: update accordingly.
6777         
6778 2004-06-02  Kristian Høgsberg  <krh@redhat.com>
6779  
6780         * dbus/dbus-auth.c: Rewrite auth protocol handling to use a state
6781         machine approach.  A state is implemented as a function that
6782         handles incoming events as specified for that state.
6783         
6784         * doc/dbus-specification.xml: Update auth protocol state machine
6785         specification to match implementation.  Remove some leftover
6786         base64 examples.
6787
6788 2004-06-02  Kristian Høgsberg  <krh@redhat.com>
6789
6790         * glib/dbus-gproxy.c, glib/dbus-gmain.c, dbus/dbus-string.c,
6791         dbus/dbus-object-tree.c, dbus/dbus-message.c: add comments to
6792         quiet doxygen.
6793
6794         * Doxyfile.in: remove deprecated options.
6795
6796         * dbus/dbus-message-handler.c, dbus/dbus-message-handler.h,
6797         glib/test-thread.h, glib/test-thread-client.c,
6798         glib/test-thread-server.c, glib/test-profile.c,
6799         glib/test-dbus-glib.c: remove these unused files.
6800
6801 2004-06-01  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6802
6803         * dbus/dbus-object-tree.c
6804         (_dbus_object_tree_dispatch_and_unlock): fix dispatch for
6805         non-fallback handlers (bug #684).
6806         (_dbus_object_subtree_new): initialize invoke_as_fallback field.
6807         (find_subtree_recurse): report wether the returned subtree is an
6808         exact match or a "fallback" match higher up in the tree.
6809         (object_tree_test_iteration): update test case.
6810
6811 2004-06-01  Seth Nickell  <seth@gnome.org>
6812
6813         * python/dbus_bindings.pyx.in:
6814         * python/tests/test-client.py:
6815
6816         Round off basic type support. Add dicts (yay!), and 
6817         remaining array types.
6818
6819         Make MessageIter more general so it works for dicts too.
6820
6821         Mark all loop variables as C integers.
6822         
6823 2004-05-31  Havoc Pennington  <hp@redhat.com>
6824
6825         * glib/dbus-gidl.c (method_info_add_arg): keep args sorted with
6826         "in" before "out"
6827
6828         * glib/dbus-gobject.c (dbus_type_to_string): move to dbus-gutils.c
6829
6830         * glib/dbus-glib-tool.c (main): set up to have a --self-test
6831         option that runs the tests, and start filling in some code
6832         including for starters just dumping the interfaces to stdout
6833
6834         * glib/Makefile.am (INCLUDES): define DBUS_LOCALEDIR
6835
6836         * test/data/valid-introspection-files/lots-of-types.xml: test of
6837         an example introspection file
6838
6839         * glib/dbus-gparser.c (parser_check_doctype): doctype should be
6840         "node" (I think...)
6841
6842 2004-05-31  Seth Nickell  <seth@gnome.org>
6843
6844         * python/dbus_bindings.pyx.in:
6845         * python/tests/test-client.py:
6846
6847         Test Suite: 1
6848         Python Bindings: 0
6849
6850         Fix string array memory trashing bug... oops...
6851
6852 2004-05-30  Seth Nickell  <seth@gnome.org>
6853
6854         * python/dbus.py:
6855
6856         Add a nicer-but-less-flexible alternate API for handling 
6857         calls to virtual objects in dbus.ObjectTree.
6858
6859         Screw up the argument order to the dbus.Object constructor
6860         for consistency with dbus.ObjectTree (and to make dbus_methods
6861         optional for future extension)
6862         
6863         * python/examples/Makefile.am:
6864         * python/examples/gconf-proxy-service.py:
6865         * python/examples/gconf-proxy-service2.py:
6866
6867         Alternate implementation of gconf-proxy-service using the
6868         nicer dbus.ObjectTree API.
6869         
6870         * python/examples/example-service.py:
6871         * python/tests/test-server.py
6872
6873         Reverse the argument order to deal with dbus.Object constructor
6874         changes.
6875         
6876 2004-05-30  Seth Nickell  <seth@gnome.org>
6877
6878         * python/examples/example-client.py:
6879         * python/examples/example-service.py:
6880
6881         Take it back. Lists seem to work but they're broken
6882         in the test suite. Make the base examples use
6883         lists (works fine).
6884
6885 2004-05-30  Seth Nickell  <seth@gnome.org>
6886
6887         * python/dbus_bindings.pyx.in:
6888         * python/tests/test-client.py:
6889
6890         Add some more tests and fix errors that crop up.
6891         Unfortunately, currently it seems like marshalling
6892         and unmarshalling of lists is completely broken :-(
6893
6894 2004-05-30  Seth Nickell  <seth@gnome.org>
6895
6896         * python/dbus_bindings.pyx.in:
6897
6898         Add support for ObjectPath type.
6899
6900         * python/dbus.py:
6901
6902         Refactor message handling code to a common function.
6903         
6904         * python/tests/test-client.py:
6905         * python/tests/test-server.py:
6906
6907         Add tests that check to make sure values of all types
6908         can be echoed from a service w/o mangling.
6909         
6910 2004-05-29  Seth Nickell  <seth@gnome.org>
6911
6912         * python/dbus.py:
6913
6914         Add ObjectTree class which allows implementation
6915         of trees of "virtual" objects. Basically the python
6916         wrapper for "register_fallback".
6917         
6918         * python/examples/Makefile.am
6919         * python/examples/gconf-proxy-client.py:
6920         * python/examples/gconf-proxy-service.py:
6921
6922         Implement a simple GConf proxy service that supports
6923         get/set on string and int GConf keys using the ObjectTree.
6924         
6925 2004-05-29  Seth Nickell  <seth@gnome.org>
6926
6927         * python/dbus.py:
6928         * python/examples/example-client.py:
6929         * python/examples/example-service.py:
6930         * python/examples/list-system-services.py:
6931
6932         Add SessionBus, SystemBus and ActivationBus classes
6933         so you don't need to know the special little BUS_TYPE
6934         flag.
6935         
6936 2004-05-29  Havoc Pennington  <hp@redhat.com>
6937
6938         * bus/config-parser.c (process_test_valid_subdir): temporarily
6939         stop testing config parser OOM handling, since expat has issues
6940         http://freedesktop.org/pipermail/dbus/2004-May/001153.html
6941
6942         * bus/dbus-daemon-1.1.in: change requested_reply to
6943         send_requested_reply/receive_requested_reply so we can send the
6944         replies, not just receive them.
6945
6946         * bus/config-parser.c: parse the new
6947         send_requested_reply/receive_requested_reply
6948
6949         * bus/policy.c (bus_client_policy_check_can_send): add
6950         requested_reply argument and use it
6951
6952         * bus/bus.c (bus_context_check_security_policy): pass through
6953         requested_reply status to message send check
6954
6955         * bus/system.conf.in: adapt to requested_reply change
6956         
6957 2004-05-28  Havoc Pennington  <hp@redhat.com>
6958
6959         * test/glib/test-service-glib.c (main): remove unused variable
6960
6961         * glib/dbus-gidl.c (base_info_ref): fix a silly compiler warning
6962
6963         * dbus/dbus-auth.h (enum): remove AUTHENTICATED_WITH_UNUSED_BYTES
6964         from the enum, no longer in use.
6965
6966         * dbus/dbus-sysdeps.h: include config.h so DBUS_VA_COPY actually
6967         works right.
6968
6969         * dbus/dbus-message.c: add various _dbus_return_val_if_fail for
6970         whether error_name passed in is a valid error name.
6971
6972 2004-05-28  John (J5) Palmieri  <johnp@redhat.com>
6973
6974         * dbus/dbus-message.c (dbus_message_get_args): Added support for
6975         OBJECT_PATH and OBJECT_PATH_ARRAY
6976
6977 2004-05-28  Seth Nickell  <seth@gnome.org>
6978
6979         * python/examples/Makefile.am:
6980
6981         Forget to add Makefile.am. Do not pass go.
6982
6983 2004-05-28  Michael Meeks  <michael@ximian.com>
6984
6985         * glib/dbus-gvalue.c (dbus_gvalue_marshal, dbus_gvalue_demarshal): 
6986         fix no int64 case.
6987
6988         * dbus/dbus-string.c (_dbus_string_parse_basic_type): impl.
6989
6990         * dbus/dbus-message.c (_dbus_message_iter_get_basic_type),
6991         (_dbus_message_iter_get_basic_type_array): impl.
6992         drastically simplify ~all relevant _get methods to use these.
6993         (_dbus_message_iter_append_basic_array),
6994         (dbus_message_iter_append_basic): impl
6995         drastically simplify ~all relevant _append methods to use these.
6996
6997         * dbus/dbus-message-builder.c (parse_basic_type) 
6998         (parse_basic_array, lookup_basic_type): impl.
6999         (_dbus_message_data_load): prune scads of duplicate /
7000         cut & paste coding.
7001
7002         * dbus/dbus-marshal.c (_dbus_demarshal_basic_type_array) 
7003         (_dbus_demarshal_basic_type): implement,
7004         (demarshal_and_validate_len/arg): beef up debug.
7005         (_dbus_marshal_basic_type, _dbus_marshal_basic_type_array): impl.
7006
7007 2004-05-27  Seth Nickell  <seth@gnome.org>
7008
7009         * configure.in:
7010         * python/Makefile.am:
7011
7012         Include the example python apps in the tarball.
7013         
7014         * python/examples/list-system-services.py
7015
7016         Add a python new example that fetches the list of services
7017         from the system bus.
7018         
7019 2004-05-27  Seth Nickell  <seth@gnome.org>
7020
7021         * python/dbus.py:
7022         * python/dbus_bindings.pyx.in:
7023
7024         Fix failure to notify that a signal was not handled,
7025         resulted in hung functions.
7026         
7027 2004-05-25  Colin Walters  <walters@redhat.com>
7028
7029         * tools/dbus-monitor.c (main): Monitor all types of messages.
7030
7031 2004-05-23  Owen Fraser-Green  <owen@discobabe.net>
7032
7033         * mono/Handler.cs, mono/Service.cs: Added UnregisterObject method
7034         which unregisters the object path and disposes the handler.
7035
7036 2004-05-23  Kristian Høgsberg  <krh@redhat.com>
7037  
7038         Patch from Timo Teräs <ext-timo.teras@nokia.com> (#614):
7039          
7040         * dbus/dbus-message.c (dbus_message_iter_get_args_valist): Swap
7041         operands to && so we call dbus_message_iter_next () for the last
7042         argument also.
7043
7044 2004-05-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7045
7046         * dbus/dbus-object-tree.c
7047         (_dbus_object_tree_list_registered_unlock, lookup_subtree): return
7048         children even if the requested path isn't registered.
7049         (object_tree_test_iteration): test object_tree_list_registered.
7050
7051         * configure.in: undefine HAVE_ABSTRACT_SOCKETS instead of defining
7052         it to 0.
7053         
7054 2004-05-20  Kristian Høgsberg  <krh@redhat.com>
7055
7056         * doc/TODO: Remove resolved items.
7057
7058         * bus/expirelist.h (struct BusExpireList): remove unused n_items
7059         field.
7060         
7061         * bus/connection.c (bus_connections_expect_reply): Enforce the
7062         per-connection limit on pending replies.
7063         
7064         Patch from Jon Trowbridge <trow@ximian.com>:
7065  
7066         * bus/main.c (setup_reload_pipe): Added.  Creates a pipe and sets
7067         up a watch that triggers a config reload when one end of the pipe
7068         becomes readable.
7069         (signal_handler): Instead of doing the config reload in our SIGHUP
7070         handler, just write to the reload pipe and let the associated
7071         watch handle the reload when control returns to the main loop.
7072  
7073         * bus/driver.c (bus_driver_handle_reload_config): Added.
7074         Implements a ReloadConfig method for requesting a configuration
7075         file reload via the bus driver.
7076  
7077 2004-05-19  Owen Fraser-Green  <owen@discobabe.net>
7078
7079         * HACKING: Updated release instructions concerning the wiki page.
7080
7081 2004-05-18  Kristian Høgsberg  <krh@redhat.com>
7082
7083         * dbus/dbus-auth.c (client_try_next_mechanism): Remove logic to
7084         filter against auth->allowed_mechs; we only add allowed mechs in
7085         record_mechanisms().
7086  
7087         * dbus/dbus-auth-script.c (_dbus_auth_script_run): Add an
7088         ALLOWED_MECHS to auth-script format so we can set the list of
7089         allowed mechanisms.
7090  
7091         * data/auth/client-out-of-mechanisms.auth-script: New test to
7092         check client disconnects when it is out of mechanisms to try.
7093  
7094         * dbus/dbus-auth.c (process_command): Remove check for lines
7095         longer that 1 MB; we only buffer up maximum 16 kB.
7096  
7097         * dbus/dbus-transport.c, dbus/dbus-transport-unix.c,
7098         dbus/dbus-auth-script.c, dbus/dbus-auth.c, dbus/dbus-auth.h:
7099         Remove auth state AUTHENTICATED_WITH_UNUSED_BYTES, instead always
7100         assume there might be unused bytes.
7101  
7102         * dbus/dbus-auth.c (_dbus_auth_do_work): Remove check for
7103         client-out-of-mechs, it is handled in process_reject(). Move check
7104         for max failures to send_rejected(), as it's a server-only thing.
7105
7106         * dbus/dbus-auth.c: Factor out protocol reply code into functions
7107         send_auth(), send_data(), send_rejected(), send_error(),
7108         send_ok(), send_begin() and send_cancel().
7109
7110 2004-05-17  Kristian Høgsberg  <krh@redhat.com>
7111
7112         Remove base64 encoding, replace with hex encoding. Original patch
7113         from trow@ximian.com, added error handling.
7114
7115         * dbus/dbus-string.c (_dbus_string_base64_encode)
7116         (_dbus_string_base64_decode): Remove.
7117         (_dbus_string_hex_decode): Add end_return argument so we can
7118         distinguish between OOM and invalid hex encoding.
7119         (_dbus_string_test): Remove base64 tests and add test case for
7120         invalid hex.
7121
7122         * dbus/dbus-keyring.c, dbus/dbus-auth-script.c, dbus/dbus-auth.c:
7123         Replace base64 with hex.
7124
7125         * test/data/auth/invalid-hex-encoding.auth-script: New test case
7126         for invalid hex encoded data in auth protocol.
7127
7128 2004-05-17  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7129
7130         * dbus/dbus-connection.c (check_for_reply_unlocked): plug a memory
7131         leak.
7132
7133 2004-05-15  Owen Fraser-Green  <owen@discobabe.net>
7134
7135         * mono/dbus-sharp.dll.config.in: Added for GAC
7136         * mono/dbus-sharp.snk: Added for GAC
7137         * mono/Assembly.cs.in: Added for GAC
7138         * mono/Makefile.am: Changes for GAC installation        
7139         * configure.in: Added refs for dbus-sharp.dll.config.in and
7140         Assembly.cs.in. More fixes for mono testing
7141         * mono/example/Makefile.am: Changed var to CSC
7142         * Makefile.am: Changed flag name to DBUS_USE_CSC
7143
7144 2004-05-15  Owen Fraser-Green  <owen@discobabe.net>
7145
7146         * mono/Makefile.am: Added SUBDIRS for docs. Changed SUBDIRS order
7147         * mono/doc/*: Added documentation framework
7148         * configure.in: Added monodoc check
7149         * README: Added description of mono configure flags
7150
7151 2004-05-11  John (J5) Palmieri  <johnp@redhat.com>:
7152
7153         * doc/dbus-specification.xml: Added a "Required" column to the 
7154         header fields table and changed the "zero or more" verbage in
7155         the above paragraph to read "The header must contain the required 
7156         named header fields and zero or more of the optional named header 
7157         fields".
7158         * test/data/invalid-messages/*.message: Added the required PATH 
7159         named header field to the tests so that they don't fail on 
7160         'Missing path field'
7161
7162 2004-05-07  John (J5) Palmieri  <johnp@redhat.com>
7163
7164         * python/dbus-bindings.pyx.in: Stopped the bindings from trashing
7165         the stack by implicitly defining variable and parameter types and
7166         removing the hack of defining C pointers as python objects and later
7167         casting them.
7168
7169 2004-05-02  Owen Fraser-Green  <owen@discobabe.net>
7170
7171         * mono/Makefile.am: Removed test-dbus-sharp.exe from all target
7172
7173 2004-05-01  Owen Fraser-Green  <owen@discobabe.net>
7174
7175         * mono/DBusType/Dict.cs: Handle empty dicts
7176         * mono/DBusType/Array.cs: Handle empty arrays
7177         * mono/Arguments.cs: Handle empty arguments
7178
7179 2004-04-30  Owen Fraser-Green  <owen@discobabe.net>
7180
7181         * dbus-sharp.pc.in: Modified to include include Libs and Requires
7182         field
7183
7184 2004-04-25  Kristian Høgsberg  <krh@redhat.com>
7185
7186         * test/data/valid-messages/standard-*.message: Update message
7187         test scripts to new header field names.
7188
7189 2004-04-22  John (J5) Palmieri  <johnp@redhat.com>
7190
7191         * test/break-loader.c (randomly_do_n_things): tracked down buffer
7192         overflow to times_we_did_each_thing array which would chop off the
7193         first character of the failure_dir string. Increased the size of
7194         the array to 7 to reflect the number of random mutation functions
7195         we have.
7196
7197 2004-04-21  Kristian Høgsberg  <krh@redhat.com>
7198
7199         * dbus/dbus-server-unix.c (unix_finalize): Don't unref
7200         unix_server->watch here, it is unreffed in disconnect.
7201         (_dbus_server_new_for_tcp_socket): convert NULL host to
7202         "localhost" here so we don't append NULL to address.
7203         
7204         * dbus/dbus-server.c (_dbus_server_test): Add test case for
7205         various addresses, including tcp with no explicit host.
7206
7207 2004-04-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7208
7209         * dbus/dbus-message.c (decode_header_data, decode_string_field):
7210         fix incorrect setting of .name_offset in the HeaderField (it was
7211         off by two bytes, positioned right after the name and typecode)
7212
7213         * bus/bus.c (bus_context_new, bus_context_unref): test before
7214         calling dbus_server_free_data_slot and _dbus_user_database_unref
7215         in case of an error.
7216
7217         * tools/Makefile.am: add $(DBUS_GLIB_TOOL_LIBS), xml libs needed
7218         by libdbus-gtool.
7219
7220 2004-04-19  Kristian Høgsberg  <krh@redhat.com>
7221
7222         * dbus/dbus-transport-unix.c (unix_do_iteration): Rewrite to use
7223         _dbus_poll() instead of select().
7224
7225 2004-04-15  Jon Trowbridge  <trow@ximian.com>
7226
7227         * bus/main.c (signal_handler): Reload the configuration files
7228         on SIGHUP.
7229         (main): Set up our SIGHUP handler.
7230
7231         * bus/bus.c (struct BusContext): Store the config file, user and
7232         fork flag in the BusContext.
7233         (process_config_first_time_only): Added.  Contains the code
7234         (previously in bus_context_new) for setting up the BusContext from
7235         the BusConfigParser that should only be run the first time the
7236         config files are read.
7237         (process_config_every_time): Added.  Contains the code (previously
7238         in bus_context_new) for setting up the BusContext from the
7239         BusConfigParser that should be run every time the config files are
7240         read.
7241         (load_config): Added.  Builds a BusConfigParser from the config
7242         files and passes the resulting structure off to
7243         process_config_first_time_only (assuming this is the first time)
7244         and process_config_every_time.
7245         (bus_context_new): All of the config-related code has been moved
7246         to process_config_first_time_only and process_config_every_time.
7247         Now this function just does the non-config-related initializations
7248         and calls load_config.
7249         (bus_context_reload_config): Added.
7250
7251 2004-04-15  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7252
7253         * bus/driver.c (bus_driver_handle_get_service_owner):
7254         implement a GetServiceOwner method.
7255         * doc/dbus-specification.xml: document it.
7256         * dbus/dbus-errors.h: add a 'ServiceHasNoOwner' error.
7257         
7258         * glib/dbus-gproxy.c (dbus_gproxy_new_for_service_owner):
7259         implement, using the bus GetServiceOwner method.
7260
7261         * test/glib/test-dbus-glib.c:
7262         use dbus_gproxy_new_for_service_owner so that we can receive the
7263         signal. 
7264
7265 2004-04-15  John (J5) Palmieri  <johnp@redhat.com>
7266
7267         * dbus/dbus-internals.c, dbus/dbus-message-builder.c,
7268         dbus/dbus-message.c, dbus/dbus-protocol.h
7269         (DBUS_HEADER_FIELD_SERVICE): renamed DBUS_HEADER_FIELD_DESTINATION
7270
7271         * dbus/dbus-internals.c, dbus/dbus-message-builder.c,
7272         dbus/dbus-message.c, dbus/dbus-protocol.h
7273         (DBUS_HEADER_FIELD_SENDER_SERVICE): renamed DBUS_HEADER_FIELD_SENDER
7274
7275         * dbus/dbus-internals.c (_dbus_header_field_to_string):
7276         DBUS_HEADER_FIELD_DESTINATION resolves to "destination"
7277         DBUS_HEADER_FIELD_SENDER resolves to "sender"
7278
7279         * doc/dbus-specification.xml (Header Fields Table):
7280         s/SERVICE/DESTINATION
7281         s/SENDER_SERVICE/SENDER
7282
7283
7284 2004-04-14  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7285
7286         * test/glib/test-dbus-glib.c (timed_exit): fail the test after
7287         a few seconds.
7288
7289 2004-04-13  Michael Meeks  <michael@ximian.com>
7290
7291         * glib/dbus-gobject.c (handle_introspect): split out
7292         (introspect_properties): this.
7293         (handle_introspect): implement this.
7294
7295         * test/glib/Makefile.am: use the absolute path so the bus
7296         daemon's chdir ("/") doesn't kill us dead.
7297
7298         * configure.in: subst ABSOLUTE_TOP_BUILDDIR
7299
7300 2004-04-12  Jon Trowbridge  <trow@ximian.com>
7301
7302         * bus/config-parser.c (struct BusConfigParser): Added
7303         included_files field.
7304         (seen_include): Added.  Checks whether or not a file has already
7305         been included by any parent BusConfigParser.
7306         (bus_config_parser_new): Copy the parent's included_files.
7307         (include_file): Track which files have been included, and fail on
7308         circular inclusions.
7309         (process_test_valid_subdir): Changed printf to report if we are
7310         testing valid or invalid conf files.
7311         (all_are_equiv): Changed printf to be a bit clearer about
7312         what we are actually doing.
7313         (bus_config_parser_test): Test invalid configuration files.
7314
7315 2004-04-09  Jon Trowbridge  <trow@ximian.com>
7316
7317         * bus/config-parser.c (bus_config_parser_new): Added a 'parent'
7318         argument.  If non-null, the newly-constructed BusConfigParser will
7319         be initialized with the parent's BusLimits instead of the default
7320         values.
7321         (include_file): When including a config file, pass in
7322         the current parser as the parent and then copy the BusLimits
7323         from the included BusConfigParser pack to the current parser.
7324         (process_test_valid_subdir): Renamed from process_test_subdir.
7325         (process_test_equiv_subdir): Added.  Walks through a directory,
7326         descending into each subdirectory and loading the config files
7327         it finds there.  If any subdirectory contains two config files
7328         that don't produce identical BusConfigParser structs, fail.
7329         For now, the BusConfigParser's BusPolicies are not compared.
7330         (bus_config_parser_test): Call both process_test_valid_subdir and
7331         process_test_equiv_subdir.
7332
7333         * bus/config-loader-libxml.c (bus_config_load): Take a parent
7334         argument and pass it along to the call to bus_config_parser_new.
7335         Also made a few small changes to allow this code to compile.
7336
7337         * bus/config-loader-expat.c (bus_config_load): Take a parent
7338         argument and pass it along to the call to bus_config_parser_new.
7339
7340         * bus/bus.c (bus_context_new): Load the config file
7341         with a NULL parent argument.
7342
7343 2004-03-29  Michael Meeks  <michael@ximian.com>
7344
7345         * glib/dbus-gobject.c (introspect_properties): split
7346         out, fix mangled 'while' flow control.
7347         (introspect_signals): implement.
7348         (handle_introspect): update.
7349
7350 2004-03-29  Michael Meeks  <michael@ximian.com>
7351
7352         * glib/dbus-gobject.c (set_object_property): split out / 
7353         re-work, use the property type, and not the message type(!)
7354         (get_object_property): ditto.
7355
7356         * glib/dbus-gvalue.c (dbus_gvalue_demarshal),
7357         (dbus_gvalue_marshal): make this code re-usable, needed
7358         for signals too, also on both proxy and server side.
7359         Re-write for more efficiency / readability.
7360
7361 2004-03-29  Michael Meeks  <michael@ximian.com>
7362
7363         * dbus/dbus-message.c
7364         (dbus_message_new_error_printf): impl.
7365
7366         * dbus/dbus-connection.c
7367         (dbus_connection_unregister_object_path): fix warning.
7368
7369         * configure.in: fix no-mono-installed situation.
7370
7371 2004-03-27  Havoc Pennington  <hp@redhat.com>
7372
7373         Patch from Timo Teräs:
7374         
7375         * tools/dbus-send.c (main): if --print-reply, assume type is
7376         method call; support boolean type args
7377         
7378         * dbus/dbus-connection.c (dbus_connection_send_with_reply): fix a
7379         bunch of memleak and logic bugs
7380         
7381 2004-03-23  Owen Fraser-Green  <owen@discobabe.net>
7382
7383         * mono/Arguments.cs:
7384         * mono/Introspector.cs:
7385         * mono/Handler.cs:
7386         * mono/InterfaceProxy.cs:
7387         * mono/Message.cs
7388         * mono/ProxyBuilder.cs:
7389         * mono/Service.cs:
7390         Added InterfaceProxy class to avoid building proxies for every
7391         object.
7392
7393         * dbus-message.h:
7394         * dbus-message.c (dbus_message_append_args_valist)
7395         (dbus_message_iter_get_object_path)
7396         (dbus_message_iter_get_object_path_array)
7397         (dbus_message_iter_append_object_path)
7398         (dbus_message_iter_append_object_path_array):
7399         Added object_path iter functions to handle OBJECT_PATH arguments
7400         
7401 2004-03-23  Owen Fraser-Green  <owen@discobabe.net>
7402
7403         First checkin of mono bindings.
7404         * configure.in:
7405         * Makefile.am:
7406         Build stuff for the bindings
7407         * dbus-sharp.pc.in: Added for pkgconfig
7408         
7409 2004-03-21  Havoc Pennington  <hp@redhat.com>
7410
7411         * test/test-service.c (main): remove debug spew
7412
7413 2004-03-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7414
7415         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): accept empty
7416         arrays
7417
7418         * dbus/dbus-message.h, bus/dbus-message.c (dbus_message_iter_init)
7419         (dbus_message_iter_init_array_iterator)
7420         (dbus_message_iter_init_dict_iterator): return a dbus_bool_t to
7421         indicate whether the iterator is empty
7422
7423         * dbus/dbus-pending-call.c, dbus/dbus-server.c: silence compiler
7424         warnings
7425
7426 2004-03-19  Havoc Pennington  <hp@redhat.com>
7427
7428         * NEWS: 0.21 updates
7429
7430         * configure.in: 0.21
7431
7432         * doc/Makefile.am: add all XMLTO usage to DBUS_XML_DOCS_ENABLED
7433         
7434         * python/Makefile.am: change to avoid dist of dbus_bindings.c so
7435         you don't need pyrex to make dist
7436
7437         * qt/Makefile.am (libdbus_qt_1_la_SOURCES): add integrator.h to
7438         sources; run moc
7439         
7440 2004-03-18  Richard Hult  <richard@imendio.com>
7441
7442         * dbus/dbus-message.c (dbus_message_get_auto_activation) 
7443         (dbus_message_set_auto_activation): Add doxygen docs.
7444
7445 2004-03-16  Richard Hult  <richard@imendio.com>
7446
7447         * bus/activation.c: (bus_activation_service_created),
7448         (bus_activation_send_pending_auto_activation_messages),
7449         (bus_activation_activate_service):
7450         * bus/activation.h:
7451         * bus/dispatch.c: (bus_dispatch),
7452         (check_nonexistent_service_auto_activation),
7453         (check_service_auto_activated),
7454         (check_segfault_service_auto_activation),
7455         (check_existent_service_auto_activation), (bus_dispatch_test):
7456         * bus/driver.c: (bus_driver_handle_activate_service):
7457         * bus/services.c: (bus_registry_acquire_service):
7458         * dbus/dbus-message.c: (dbus_message_set_auto_activation),
7459         (dbus_message_get_auto_activation):
7460         * dbus/dbus-message.h:
7461         * dbus/dbus-protocol.h: Implement auto-activation.
7462         
7463         * doc/dbus-specification.xml: Add auto-activation to the spec.
7464
7465 2004-03-12  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7466
7467         * dbus/dbus-marshal.c (_dbus_marshal_get_arg_end_pos):
7468         fix a bug with CUSTOM types.
7469
7470         * dbus/dbus-message.c (message_iter_test, _dbus_message_test): add
7471         a unit test for this bug (used to fail).
7472
7473 2004-03-12  Mikael Hallendal  <micke@imendio.com>
7474
7475         * bus/activation.c:
7476         (babysitter_watch_callback): notify all pending activations waiting for
7477           the same exec that the activation failed.
7478         (bus_activation_activate_service): shortcut the activation if we 
7479           already waiting for the same executable to start up.
7480
7481 2004-03-12  Mikael Hallendal  <micke@imendio.com>
7482
7483         * bus/activation.c: 
7484         - Added service file reloading. 
7485           Each service files directory is kept in an hash table in 
7486           BusActivation and each BusActivationEntry knows what .service-file it
7487           was read from. So when you try to activate a service the bus will 
7488           check if it's been updated, removed or if new .service-files has 
7489           been installed.
7490         - Test code at the bottom for the service file reloading.
7491         * bus/test-main.c: (main):
7492         * bus/test.h:
7493         - added service reloading test.
7494         * dbus/dbus-sysdeps.c: 
7495         * dbus/dbus-sysdeps.h: (_dbus_delete_directory): Added.
7496
7497 2004-03-08  Michael Meeks  <michael@ximian.com>
7498
7499         * dbus/dbus-connection.c (_dbus_connection_block_for_reply): 
7500         bail immediately if disconnected, to avoid busy loop.
7501
7502         * dbus/dbus-message.c (dbus_message_iter_get_args_valist):
7503         cleanup cut/paste/inefficiency.
7504
7505 2004-03-01  David Zeuthen  <david@fubar.dk>
7506
7507         * dbus/dbus-string.c (_dbus_string_append_printf_valist): Fix a
7508         bug where args were used twice. This bug resulted in a segfault
7509         on a Debian/PPC system when starting the messagebus daemon. Include
7510         dbus-sysdeps.h for DBUS_VA_COPY
7511
7512         * dbus/dbus-sysdeps.h: Define DBUS_VA_COPY if neccessary. From GLib
7513
7514         * configure.in: Check for va_copy; define DBUS_VA_COPY to the
7515         appropriate va_copy implementation. From GLib
7516         
7517 2004-02-24  Joe Shaw  <joe@ximian.com>
7518
7519         * bus/services.c (bus_registry_acquire_service): We need to pass
7520         in the service name to dbus_set_error() to prevent a crash.
7521
7522 2003-12-26  Anders Carlsson  <andersca@gnome.org>
7523
7524         * AUTHORS: Reveal my True identity.
7525
7526 2003-12-17  Mikael Hallendal  <micke@imendio.com>
7527
7528         * dbus/dbus-message.c: (dbus_message_append_args_valist): 
7529         - Added case for DBUS_TYPE_BYTE, patch from Johan Hedberg.
7530
7531 2003-12-13  Mikael Hallendal  <micke@imendio.com>
7532
7533         * doc/TODO: Added not about better error check of configuration files.
7534
7535 2003-12-02  Richard Hult  <richard@imendio.com>
7536
7537         * Update AFL version to 2.0 throughout the source files to reflect
7538         the update that was done a while ago.
7539
7540 2003-12-02  Richard Hult  <richard@imendio.com>
7541
7542         * dbus/dbus-message.c (dbus_message_iter_append_dict): Set
7543         wrote_dict_key to FALSE on the iter that the dict is appended to,
7544         just like when appending other types. Fixes a bug where a dict
7545         couldn't be put inside a dict.
7546         (dbus_message_iter_append_dict_key): Fix typo in warning message.
7547         (message_iter_test, _dbus_message_test): Add test case for dict
7548         inside dict.
7549
7550 2003-12-01  David Zeuthen  <david@fubar.dk>
7551
7552         * python/dbus.py: Add the actual message when calling the reciever
7553         of a signal such that parameters can be inspected. Add the method
7554         remove_signal_receiver
7555         
7556 2003-11-26  Mikael Hallendal  <micke@imendio.com>
7557
7558         * bus/*.[ch]:
7559         * dbus/*.[ch]:
7560         * glib/*.[ch]: Made ref functions return the pointer
7561
7562 2003-11-25  Zack Rusin  <zack@kde.org>
7563
7564         * qt/integrator.h, qt/integrator.cpp: Adding handling of DBusServer,
7565
7566         * qt/server.h, qt/server.cpp, qt/Makefile.am: Adding DBusServer 
7567         wrappers,
7568
7569         * qt/connection.h, qt/connection.cpp: Adjusting to changes in 
7570         the Integrator and to better fit with the server,
7571
7572 2003-11-24  Zack Rusin  <zack@kde.org>
7573
7574         * qt/connection.h, qt/connection.cpp: removing initDbus method since
7575         the integrator handles it now
7576
7577         * qt/integrator.h, qt/integrator.cpp: reworking handling of timeouts,
7578         since QTimer wasn't really meant to be used the way DBusTimeout is
7579
7580 2003-11-24  Zack Rusin  <zack@kde.org>
7581
7582         * qt/integrator.h, qt/integrator.cpp, Makefile.am: Adding 
7583         Integrator class which integrates D-BUS with the Qt event loop,
7584
7585         * qt/connection.h, qt/connection.cpp: Move all the code which
7586         was dealing with D-BUS integration to the Integrator class,
7587         and start using Integrator,
7588
7589 2003-11-23  Zack Rusin  <zack@kde.org>
7590
7591         * qt/connection.h, qt/connection.cpp: Adding the DBusConnection 
7592         wrapper
7593
7594         * qt/message.h, qt/message.cpp: updating to the current D-BUS api,
7595         switching namespaces to DBusQt, reworking the class,
7596
7597         * Makefile.cvs: switching dependencies so that it matches KDE 
7598         schematics,
7599         
7600         * qt/Makefile.am: adding connection.{h,cpp} and message.{h,cpp} to 
7601         the library
7602
7603 2003-11-19  Havoc Pennington  <hp@redhat.com>
7604
7605         * NEWS: update
7606
7607         * configure.in: bump version to 0.20
7608
7609         * configure.in (have_qt): add yet another place to look for qt
7610         (someone hand trolltech a .pc file...)
7611
7612 2003-11-01  Havoc Pennington  <hp@redhat.com>
7613
7614         * doc/dbus-specification.xml: add state machine docs on the auth
7615         protocol; just a first draft, I'm sure it's wrong.      
7616
7617 2003-10-28  David Zeuthen  <david@fubar.dk>
7618
7619         * python/dbus_bindings.pyx.in: add get_dict to handle dictionaries
7620         return types. Fixup TYPE_* to reflect changes in dbus/dbus-protocol.h
7621         
7622 2003-10-28  Havoc Pennington  <hp@redhat.com>
7623
7624         * dbus/dbus-message.c (get_next_field): delete unused function
7625
7626 2003-10-28  Havoc Pennington  <hp@redhat.com>
7627
7628         * bus/expirelist.c (do_expiration_with_current_time): detect
7629         failure of the expire_func due to OOM
7630
7631         * bus/connection.c (bus_pending_reply_expired): return FALSE on OOM
7632
7633         * bus/dispatch.c (check_send_exit_to_service): fix to handle the
7634         NoReply error that's now created by the bus when the service exits
7635
7636 2003-10-28  Havoc Pennington  <hp@redhat.com>
7637
7638         * dbus/dbus-message.c (_dbus_message_test): enable and fix the
7639         tests for set_path, set_interface, set_member, etc.
7640
7641         * dbus/dbus-string.c (_dbus_string_insert_bytes): allow 0 bytes
7642
7643         * dbus/dbus-message.c (set_string_field): always just delete and
7644         re-append the field; accept NULL for deletion
7645         (re_align_fields_recurse): reimplement
7646         
7647 2003-10-26  Havoc Pennington  <hp@redhat.com>
7648
7649         * dbus/dbus-connection.c: fix docs to properly describe the
7650         disconnected message
7651         (_dbus_connection_notify_disconnected): remove this function; 
7652         we can't synchronously add the disconnected message, we have to 
7653         do it after we've queued any remaining real messages
7654         (_dbus_connection_get_dispatch_status_unlocked): queue the
7655         disconnect message only if the transport has finished queueing all
7656         its real messages and is disconnected.
7657         (dbus_connection_disconnect): update the dispatch status here
7658
7659 2003-10-22  Havoc Pennington  <hp@redhat.com>
7660
7661         * bus/bus.c (bus_context_check_security_policy): fix up assertion
7662
7663         * bus/connection.c (bus_transaction_send_from_driver): set the
7664         destination to the connection's base service
7665
7666 2003-10-20  Havoc Pennington  <hp@redhat.com>
7667
7668         hmm, make check is currently not passing.
7669         
7670         * doc/dbus-specification.xml: add requirement that custom type
7671         names follow the same rules as interface names.
7672
7673         * dbus/dbus-protocol.h: change some of the byte codes, to avoid
7674         duplication and allow 'c' to be 'custom'; dict is now 'm' for
7675         'map'
7676
7677         * doc/dbus-specification.xml: update type codes to match
7678         dbus-protocol.h, using the ASCII byte values. Rename type NAMED to
7679         CUSTOM. Add type OBJECT_PATH to the spec.
7680
7681 2003-10-17  Havoc Pennington  <hp@redhat.com>
7682
7683         * bus/driver.c (create_unique_client_name): use "." as separator
7684         in base service names instead of '-'
7685
7686         * dbus/dbus-string.c (_dbus_string_get_byte): allow getting nul
7687         byte at the end of the string
7688
7689         * dbus/dbus-internals.h (_DBUS_LIKELY, _DBUS_UNLIKELY): add
7690         optimization macros since string validation seems to be a slow
7691         point.
7692         
7693         * doc/dbus-specification.xml: restrict valid
7694         service/interface/member/error names. Add test suite code for the
7695         name validation.
7696
7697         * dbus/dbus-string.c: limit service/interface/member/error names 
7698         to [0-9][A-Z][a-z]_
7699
7700         * dbus/dbus-connection.c (dbus_connection_dispatch): add missing
7701         format arg to verbose spew
7702
7703         * glib/dbus-gproxy.c (dbus_gproxy_call_no_reply): if not out of
7704         memory, return instead of g_error
7705
7706         * test/test-service.c (path_message_func): support emitting a
7707         signal on request
7708
7709         * dbus/dbus-bus.c (init_connections_unlocked): only fill in
7710         activation bus type if DBUS_BUS_ACTIVATION was set; default to
7711         assuming the activation bus was the session bus so that services
7712         started manually will still register.
7713         (init_connections_unlocked): fix so that in OOM situation we get
7714         the same semantics when retrying the function
7715         
7716         * test/test-service.c (main): change to use path registration, to
7717         test those codepaths; register with DBUS_BUS_ACTIVATION rather
7718         than DBUS_BUS_SESSION
7719
7720 2003-10-16  Havoc Pennington  <hp@redhat.com>
7721
7722         * glib/dbus-gtest-main.c: bracket with #ifdef DBUS_BUILD_TESTS
7723
7724         * Makefile.am (GCOV_DIRS): remove "test", we don't care about test
7725         coverage of the tests
7726         (coverage-report.txt): don't move the .da and .bbg files around
7727
7728 2003-10-16  Havoc Pennington  <hp@redhat.com>
7729
7730         * bus/bus.c (struct BusContext): remove struct field I didn't mean
7731         to put there
7732
7733 2003-10-16  Havoc Pennington  <hp@redhat.com>
7734
7735         * bus/connection.c (bus_pending_reply_expired): either cancel or
7736         execute, not both
7737         (bus_connections_check_reply): use unlink, not remove_link, as we
7738         don't want to free the link; fixes double free mess
7739
7740         * dbus/dbus-pending-call.c (dbus_pending_call_block): fix in case
7741         where no reply was received
7742
7743         * dbus/dbus-connection.c (_dbus_pending_call_complete_and_unlock):
7744         fix a refcount leak
7745
7746         * bus/signals.c (match_rule_matches): add special cases for the
7747         bus driver, so you can match on sender/destination for it.
7748
7749         * dbus/dbus-sysdeps.c (_dbus_abort): print backtrace if
7750         DBUS_PRINT_BACKTRACE is set
7751
7752         * dbus/dbus-internals.c: add pid to assertion failure messages
7753
7754         * dbus/dbus-connection.c: add message type code to the debug spew
7755
7756         * glib/dbus-gproxy.c (gproxy_get_match_rule): match rules want
7757         sender=foo not service=foo
7758
7759         * dbus/dbus-bus.c (dbus_bus_get): if the activation bus is the
7760         session bus but DBUS_SESSION_BUS_ADDRESS isn't set, use 
7761         DBUS_ACTIVATION_ADDRESS instead
7762
7763         * bus/activation.c: set DBUS_SESSION_BUS_ADDRESS,
7764         DBUS_SYSTEM_BUS_ADDRESS if appropriate
7765
7766         * bus/bus.c (bus_context_new): handle OOM copying bus type into
7767         context struct
7768
7769         * dbus/dbus-message.c (dbus_message_iter_get_object_path): new function
7770         (dbus_message_iter_get_object_path_array): new function (half
7771         finished, disabled for the moment)
7772         
7773         * glib/dbus-gproxy.c (dbus_gproxy_end_call): properly handle
7774         DBUS_MESSAGE_TYPE_ERROR
7775
7776         * tools/dbus-launch.c (babysit): support DBUS_DEBUG_OUTPUT to
7777         avoid redirecting stderr to /dev/null
7778         (babysit): close stdin if not doing the "exit_with_session" thing
7779
7780         * dbus/dbus-sysdeps.c (_dbus_become_daemon): delete some leftover
7781         debug code; change DBUS_DEBUG_OUTPUT to only enable stderr, not
7782         stdout/stdin, so things don't get confused
7783         
7784         * bus/system.conf.in: fix to allow replies, I modified .conf
7785         instead of .conf.in again.
7786
7787 2003-10-14  David Zeuthen  <david@fubar.dk>
7788
7789         * python/dbus_bindings.pyx.in (MessageIter.get): fixed typo in
7790         argtype to arg_type when raising unknown arg type exception.
7791         Changed type list to reflect the changes in dbus-protocol.h so 
7792         the bindings actually work.
7793
7794 2003-10-14  Havoc Pennington  <hp@redhat.com>
7795
7796         * test/decode-gcov.c: support gcc 3.3 also, though gcc 3.3 seems
7797         to have a bug keeping it from outputting the .da files sometimes
7798         (string_get_string): don't append garbage nul bytes to the string.
7799
7800 2003-10-15  Seth Nickell  <seth@gnome.org>
7801
7802         * python/Makefile.am:
7803
7804         Include dbus_h_wrapper.h in the dist tarball.
7805
7806 2003-10-14  Havoc Pennington  <hp@redhat.com>
7807
7808         * bus/bus.c (bus_context_check_security_policy): revamp this to
7809         work more sanely with new policy-based requested reply setup
7810
7811         * bus/connection.c (bus_transaction_send_from_driver): set bus
7812         driver messages as no reply
7813
7814         * bus/policy.c (bus_client_policy_check_can_receive): handle a
7815         requested_reply attribute on allow/deny rules
7816
7817         * bus/system.conf: add <allow requested_reply="true"/>
7818
7819         * bus/driver.c (bus_driver_handle_message): fix check for replies
7820         sent to the bus driver, which was backward. How did this ever work
7821         at all though? I think I'm missing something.
7822
7823         * dbus/dbus-message.c (decode_header_data): require error and
7824         method return messages to have a reply serial field to be valid
7825         (_dbus_message_loader_queue_messages): break up this function;
7826         validate that reply serial and plain serial are nonzero; 
7827         clean up the OOM/error handling.
7828         (get_uint_field): don't return -1 from this
7829         (dbus_message_create_header): fix signed/unsigned bug
7830
7831         * bus/connection.c (bus_connections_expect_reply): save serial of
7832         the incoming message, not reply serial
7833
7834 2003-10-14  Havoc Pennington  <hp@redhat.com>
7835
7836         * bus/connection.c: implement pending reply tracking using
7837         BusExpireList
7838
7839         * bus/bus.c (bus_context_check_security_policy): verify that a
7840         reply is pending in order to allow a reply to be sent. Deny 
7841         messages of unknown type.
7842
7843         * bus/dbus-daemon-1.1.in: update to mention new resource limits
7844
7845         * bus/bus.c (bus_context_get_max_replies_per_connection): new
7846         (bus_context_get_reply_timeout): new
7847
7848 2003-10-13  Seth Nickell  <seth@gnome.org>
7849
7850         * python/Makefile.am:
7851
7852         Pass "make distcheck": remove a couple files from DIST_FILES
7853         that weren't included in the final version.
7854
7855 2003-10-12  Havoc Pennington  <hp@pobox.com>
7856
7857         Added test code that 1) starts an actual bus daemon and 2) uses
7858         DBusGProxy; fixed bugs that were revealed by the test. Lots 
7859         more testing possible, but this is the basic framework.
7860         
7861         * glib/dbus-gproxy.c (dbus_gproxy_manager_unregister): remove
7862         empty proxy lists from the proxy list hash
7863
7864         * dbus/dbus-message.c (dbus_message_iter_get_args_valist): add a
7865         couple of return_if_fail checks
7866
7867         * dbus/dbus-pending-call.c (_dbus_pending_call_new): use dbus_new0
7868         to allocate, so everything is cleared to NULL as it should be.
7869
7870         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): pass
7871         source as data to dbus_connection_set_timeout_functions() as the 
7872         timeout functions expected
7873
7874         * test/glib/run-test.sh: add a little script to start up a message
7875         bus and run tests using it
7876
7877         * tools/dbus-launch.1: updates
7878
7879         * tools/dbus-launch.c (main): add --config-file option
7880
7881         * tools/dbus-launch.c (main): remove confusing else if (runprog)
7882         that could never be reached.
7883
7884         * dbus/dbus-message.c (dbus_message_new_method_return) 
7885         (dbus_message_new_error, dbus_message_new_signal): set the
7886         no-reply-expected flag on all these. Redundant, but may
7887         as well be consistent.
7888
7889 2003-10-11  Havoc Pennington  <hp@pobox.com>
7890
7891         * test/decode-gcov.c (function_solve_graph): make broken block
7892         graph a nonfatal error since it seems to be broken. Need to debug
7893         this.
7894
7895         * dbus/dbus-marshal.c (_dbus_type_is_valid): new function since we
7896         can't just check type > INVALID < LAST anymore
7897
7898         * dbus/dbus-message.c (dbus_message_get_signature): new function
7899         (dbus_message_has_signature): new function
7900         (struct DBusMessage): add signature field (right now it isn't sent
7901         over the wire, just generated on the fly)
7902         (dbus_message_copy): copy the signature, and init strings to
7903         proper length to avoid some reallocs
7904         (dbus_message_iter_init_array_iterator): return void, since it
7905         can't fail
7906         (dbus_message_iter_init_dict_iterator): return void since it can't fail
7907         (_dbus_message_loader_queue_messages): add silly temporary hack to
7908         fill in message->signature on load
7909
7910         * dbus/dbus-protocol.h: change DBUS_TYPE_* values to be ASCII
7911         characters, so they are relatively human-readable.
7912
7913 2003-10-11  Havoc Pennington  <hp@pobox.com>
7914
7915         * dbus/dbus-message.c (_dbus_message_test): add more test
7916         coverage, but #if 0 for now since they uncover a bug 
7917         not fixed yet; I think in re_align_field_recurse()
7918         (re_align_field_recurse): add FIXME about broken assertion
7919
7920         * dbus/dbus-sysdeps.c (_dbus_sysdeps_test): add more test coverage
7921
7922         * bus/connection.c: share a couple code bits with expirelist.c
7923
7924         * bus/expirelist.h, bus/expirelist.c: implement a generic
7925         expire-items-after-N-seconds facility, was going to share between
7926         expiring connections and replies, decided not to use for expiring
7927         connections for now.
7928
7929         * COPYING: include AFL 2.0 (still need to change all the file headers)
7930
7931 2003-10-09  Havoc Pennington  <hp@redhat.com>
7932
7933         * configure.in: define DBUS_HAVE_GCC33_GCOV if we have
7934         gcc 3.3. Not that we do anything about it yet.
7935
7936         * bus/signals.c (bus_match_rule_parse): impose max length on the
7937         match rule text
7938
7939         * dbus/dbus-protocol.h: add DBUS_MAXIMUM_MATCH_RULE_LENGTH
7940
7941 2003-10-09  Havoc Pennington  <hp@redhat.com>
7942
7943         Make matching rules theoretically work (add parser).
7944         
7945         * bus/bus.c (bus_context_check_security_policy): fix up to handle
7946         the case where destination is explicitly specified as bus driver
7947         and someone else is eavesdropping.
7948         
7949         * bus/policy.c (bus_client_policy_check_can_receive): fix up
7950         definition of eavesdropping and assertion
7951
7952         * tools/dbus-send.c (main): use dbus_message_type_from_string
7953
7954         * bus/signals.c (bus_match_rule_parse): implement
7955
7956         * dbus/dbus-message.c (dbus_message_type_from_string): new
7957
7958         * dbus/dbus-errors.h (DBUS_ERROR_MATCH_RULE_INVALID): add
7959
7960 2003-10-02  Havoc Pennington  <hp@pobox.com>
7961
7962         * glib/dbus-gproxy.c (dbus_gproxy_call_no_reply): rename from
7963         dbus_gproxy_oneway_call
7964
7965         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main) 
7966         (dbus_server_setup_with_g_main): fix to allow calling them more
7967         than once on the same args
7968         (dbus_bus_get_with_g_main): new function
7969
7970 2003-10-02  Havoc Pennington  <hp@redhat.com>
7971
7972         * doc/dbus-tutorial.xml: write some stuff
7973
7974 2003-09-29  Havoc Pennington  <hp@pobox.com>
7975
7976         * configure.in: split checks for Doxygen from XML docs, check for
7977         xmlto
7978
7979         * doc/Makefile.am: XML-ify all the docs, and add a blank
7980         dbus-tutorial.xml
7981
7982 2003-09-29  Havoc Pennington  <hp@pobox.com>
7983
7984         * Merge dbus-object-names branch. To see the entire patch 
7985         do cvs diff -r DBUS_OBJECT_NAMES_BRANCHPOINT -r dbus-object-names,
7986         it's huuuuge though.
7987         To revert, I tagged DBUS_BEFORE_OBJECT_NAMES_MERGE.
7988         
7989 2003-09-28  Havoc Pennington  <hp@pobox.com>
7990
7991         * HACKING: update to reflect new server
7992
7993 2003-09-26  Seth Nickell  <seth@gnome.org>
7994
7995         * python/dbus.py:
7996         * python/examples/example-signals.py:
7997
7998         Start implementing some notions of signals. The API
7999         is really terrible, but they sort of work (with the
8000         exception of being able to filter by service, and to
8001         transmit signals *as* a particular service). Need to
8002         figure out how to make messages come from the service
8003         we registered :-(
8004         
8005         * python/dbus_bindings.pyx.in:
8006
8007         Removed duplicate message_handler callbacks.
8008         
8009 2003-09-25  Havoc Pennington  <hp@redhat.com>
8010
8011         * bus/session.conf.in: fix my mess
8012
8013 2003-09-25  Havoc Pennington  <hp@pobox.com>
8014
8015         * bus/session.conf.in: fix security policy, reported by Seth Nickell
8016
8017 2003-09-25  Seth Nickell  <seth@gnome.org>
8018
8019         * python/examples/example-service.py:
8020
8021         Johan notices complete wrong code in example-service, but
8022         completely wrong in a way that works exactly the same (!).
8023         Johan is confused, how could this possibly work? Example
8024         code fails to serve purpose of making things clear.
8025         Seth fixes.
8026
8027 2003-09-25  Mark McLoughlin  <mark@skynet.ie>
8028
8029         * doc/dbus-specification.sgml: don't require header fields
8030         to be 4-byte aligned and specify that fields should be
8031         distinguished from padding by the fact that zero is not
8032         a valid field name.
8033         
8034         * doc/TODO: remove re-alignment item and add item to doc
8035         the OBJECT_PATH type.
8036         
8037         * dbus/dbus-message.c:
8038         (HeaderField): rename the original member to value_offset
8039         and introduce a name_offset member to keep track of where
8040         the field actually begins.
8041         (adjust_field_offsets): remove.
8042         (append_int_field), (append_uint_field),
8043         (append_string_field): don't align the start of the header
8044         field to a 4-byte boundary.
8045         (get_next_field): impl finding the next marhsalled field
8046         after a given field.
8047         (re_align_field_recurse): impl re-aligning a number of
8048         already marshalled fields.
8049         (delete_field): impl deleting a field of any type and
8050         re-aligning any following fields.
8051         (delete_int_or_uint_field), (delete_string_field): remove.
8052         (set_int_field), (set_uint_field): no need to re-check
8053         that we have the correct type for the field.
8054         (set_string_field): ditto and impl re-aligning any
8055         following fields.
8056         (decode_header_data): update to take into account that
8057         the fields aren't 4-byte aligned any more and the new
8058         way to distinguish padding from header fields. Also,
8059         don't exit when there is too much header padding.
8060         (process_test_subdir): print the directory.
8061         (_dbus_message_test): add test to make sure a following
8062         field is re-aligned correctly after field deletion.
8063         
8064         * dbus/dbus-string.[ch]:
8065         (_dbus_string_insert_bytes): rename from insert_byte and
8066         allow the insert of multiple bytes.
8067         (_dbus_string_test): test inserting multiple bytes.
8068
8069         * dbus/dbus-marshal.c: (_dbus_marshal_set_string): add
8070         warning note to docs about having to re-align any
8071         marshalled values following the string.
8072         
8073         * dbus/dbus-message-builder.c:
8074         (append_string_field), (_dbus_message_data_load):
8075         don't align the header field.
8076         
8077         * dbus/dbus-auth.c: (process_test_subdir): print the
8078         directory.
8079         
8080         * test/break-loader.c: (randomly_add_one_byte): upd. for
8081         insert_byte change.
8082         
8083         * test/data/invalid-messages/bad-header-field-alignment.message:
8084         new test case.
8085         
8086         * test/data/valid-messages/unknown-header-field.message: shove
8087         a dict in the unknown field.
8088
8089 2003-09-25  Seth Nickell  <seth@gnome.org>
8090
8091         * python/dbus.py:
8092         * python/dbus_bindings.pyx.in:
8093
8094         Handle return values.
8095         
8096         * python/examples/example-client.py:
8097         * python/examples/example-service.py:
8098
8099         Pass back return values from the service to the client.
8100         
8101 2003-09-24  Seth Nickell  <seth@gnome.org>
8102
8103         * python/dbus.py:
8104
8105         Connect Object methods (when you are sharing an object) up... pass
8106         in a list of methods to be shared. Sharing all the methods just
8107         worked out too weird. You can now create nice Services over the
8108         DBus in Python. :-)
8109         
8110         * python/dbus_bindings.pyx.in:
8111
8112         Keep references to user_data tuples passed into C functions so 
8113         Python doesn't garbage collect on us.
8114
8115         Implement MethodReturn and Error subclasses of Message for creating
8116         DBusMessage's of those types.
8117         
8118         * python/examples/example-client.py:
8119         * python/examples/example-service.py:
8120
8121         Simple example code showing both how create DBus services and objects,
8122         and how to use them.
8123
8124 2003-09-23  Havoc Pennington  <hp@pobox.com>
8125
8126         * glib/dbus-gproxy.c (dbus_gproxy_manager_filter): implement
8127
8128 2003-09-23  Havoc Pennington  <hp@redhat.com>
8129
8130         * glib/dbus-gproxy.c (dbus_gproxy_connect_signal): implement
8131         (dbus_gproxy_disconnect_signal): implement
8132         (dbus_gproxy_manager_remove_signal_match): implement
8133         (dbus_gproxy_manager_add_signal_match): implement
8134         (dbus_gproxy_oneway_call): implement
8135
8136 2003-09-23  Havoc Pennington  <hp@pobox.com>
8137
8138         * glib/dbus-gproxy.c (struct DBusGProxy): convert to a GObject
8139         subclass. This means dropping the transparent thread safety of the
8140         proxy; you now need a separate proxy per-thread, or your own
8141         locking on the proxy. Probably right anyway.
8142         (dbus_gproxy_ref, dbus_gproxy_unref): nuke, just use g_object_ref
8143
8144 2003-09-22  Havoc Pennington  <hp@redhat.com>
8145
8146         * glib/dbus-gproxy.c (dbus_gproxy_manager_get): implement
8147
8148 2003-09-21  Seth Nickell  <seth@gnome.org>
8149
8150         First checkin of the Python bindings.
8151         
8152         * python/.cvsignore:
8153         * python/Makefile.am:
8154         * python/dbus_bindings.pyx.in:
8155         * python/dbus_h_wrapper.h:
8156
8157         Pieces for Pyrex to operate on, building a dbus_bindings.so
8158         python module for low-level access to the DBus APIs.
8159         
8160         * python/dbus.py:
8161
8162         High-level Python module for accessing DBus objects.
8163
8164         * configure.in:
8165         * Makefile.am:
8166
8167         Build stuff for the python bindings.
8168
8169         * acinclude.m4:
8170
8171         Extra macro needed for finding the Python C header files.
8172
8173 2003-09-21  Havoc Pennington  <hp@pobox.com>
8174
8175         * glib/dbus-gproxy.c (dbus_gproxy_manager_new): start
8176         implementing the proxy manager, didn't get very far.
8177
8178         * dbus/dbus-bus.c (dbus_bus_add_match): new
8179         (dbus_bus_remove_match): new
8180
8181         * glib/dbus-gproxy.c (dbus_gproxy_new_for_service): add a
8182         path_name argument; adjust the other not-yet-implemented 
8183         gproxy constructors to be what I think they should be.
8184
8185 2003-09-21  Havoc Pennington  <hp@pobox.com>
8186
8187         * dbus/dbus-bus.c (dbus_bus_get): set exit_on_disconnect to TRUE
8188         by default for message bus connections.
8189
8190         * dbus/dbus-connection.c (dbus_connection_dispatch): exit if
8191         exit_on_disconnect flag is set and we process the disconnected
8192         signal.
8193         (dbus_connection_set_exit_on_disconnect): new function
8194
8195 2003-09-21  Havoc Pennington  <hp@pobox.com>
8196
8197         Get matching rules mostly working in the bus; only actually
8198         parsing the rule text remains. However, the client side of
8199         "signal connections" hasn't been started, this patch is only the
8200         bus side.
8201         
8202         * dbus/dispatch.c: fix for the matching rules changes
8203         
8204         * bus/driver.c (bus_driver_handle_remove_match)
8205         (bus_driver_handle_add_match): send an ack reply from these
8206         method calls
8207
8208         * glib/dbus-gproxy.c (dbus_gproxy_begin_call): fix order of
8209         arguments, reported by Seth Nickell
8210
8211         * bus/config-parser.c (append_rule_from_element): support
8212         eavesdrop=true|false attribute on policies so match rules 
8213         can be prevented from snooping on the system bus.
8214
8215         * bus/dbus-daemon-1.1.in: consistently use terminology "sender"
8216         and "destination" in attribute names; fix some docs bugs; 
8217         add eavesdrop=true|false attribute
8218
8219         * bus/driver.c (bus_driver_handle_add_match)
8220         (bus_driver_handle_remove_match): handle AddMatch, RemoveMatch
8221         messages
8222
8223         * dbus/dbus-protocol.h (DBUS_SERVICE_ORG_FREEDESKTOP_BROADCAST): get
8224         rid of broadcast service concept, signals are just always broadcast
8225
8226         * bus/signals.c, bus/dispatch.c, bus/connection.c, bus/bus.c:
8227         mostly implement matching rules stuff (currently only exposed as signal
8228         connections)
8229
8230 2003-09-21  Mark McLoughlin  <mark@skynet.ie>
8231
8232         * doc/dbus-specification.sgml: Change the header field name
8233         to be an enum and update the rest of the spec to reference
8234         the fields using the conventinal name.
8235
8236         * dbus/dbus-protocol.h: update to reflect the spec.
8237
8238         * doc/TODO: add item to remove the 4 byte alignment requirement.
8239         
8240         * dbus/dbus-message.c: Remove the code to generalise the
8241         header/body length and serial number header fields as named
8242         header fields so we can reference field names using the 
8243         protocol values.
8244         (append_int_field), (append_uint_field), (append_string_field):
8245         Append the field name as a byte rather than four chars.
8246         (delete_int_or_uint_field), (delete_string_field): reflect the
8247         fact that the field name and typecode now occupy 4 bytes instead
8248         of 8.
8249         (decode_string_field), (decode_header_data): update to reflect
8250         protocol changes and move the field specific encoding from
8251         decode_string_field() back into decode_header_data().
8252         
8253         * dbus/dbus-internals.[ch]: (_dbus_header_field_to_string):
8254         Add utility to aid debugging.
8255         
8256         * dbus/dbus-message-builder.c:
8257         (append_string_field), (_dbus_message_data_load): Update to
8258         reflect protocol changes; Change the FIELD_NAME directive
8259         to HEADER_FIELD and allow it to take the field's conventional
8260         name rather than the actual value.
8261         
8262         * test/data/*/*.message: Update to use HEADER_FIELD instead
8263         of FIELD_NAME; Always align the header on an 8 byte boundary
8264         *before* updating the header length.
8265
8266 2003-09-15  Havoc Pennington  <hp@pobox.com>
8267
8268         * dbus/dbus-pending-call.c: add the get/set object data
8269         boilerplate as for DBusConnection, etc. Use generic object data
8270         for the notify callback.
8271
8272         * glib/dbus-gparser.c (parse_node): parse child nodes
8273
8274         * tools/dbus-viewer.c: more hacking on the dbus-viewer
8275         
8276         * glib/dbus-gutils.c (_dbus_gutils_split_path): add a file to
8277         contain functions shared between the convenience lib and the
8278         installed lib
8279
8280         * glib/Makefile.am (libdbus_glib_1_la_LDFLAGS): add
8281         -export-symbols-regex to the GLib library
8282
8283         * dbus/dbus-object-tree.c (_dbus_object_tree_dispatch_and_unlock):
8284         fix the locking in here, and add a default handler for
8285         Introspect() that just returns sub-nodes.
8286
8287 2003-09-14  Havoc Pennington  <hp@pobox.com>
8288
8289         * glib/dbus-gthread.c (dbus_g_thread_init): rename to make g_foo
8290         rather than gfoo consistent
8291
8292         * glib/dbus-gproxy.h: delete for now, move contents to
8293         dbus-glib.h, because the include files don't work right since we
8294         aren't in the dbus/ subdir.
8295         
8296         * glib/dbus-gproxy.c (dbus_gproxy_send): finish implementing
8297         (dbus_gproxy_end_call): finish
8298         (dbus_gproxy_begin_call): finish
8299
8300         * glib/dbus-gmain.c (dbus_set_g_error): new
8301
8302         * glib/dbus-gobject.c (handle_introspect): include information
8303         about child nodes in the introspection
8304
8305         * dbus/dbus-connection.c (dbus_connection_list_registered): new
8306         function to help in implementation of introspection
8307
8308         * dbus/dbus-object-tree.c
8309         (_dbus_object_tree_list_registered_and_unlock): new function
8310
8311 2003-09-12  Havoc Pennington  <hp@pobox.com>
8312
8313         * glib/dbus-gidl.h: add common base class for all the foo_info
8314         types
8315
8316         * tools/dbus-viewer.c: add GTK-based introspection UI thingy
8317         similar to kdcop
8318
8319         * test/Makefile.am: try test srcdir -ef . in addition to test
8320         srcdir = ., one of them should work (yeah lame)
8321         
8322         * glib/Makefile.am: build the "idl" parser stuff as a convenience
8323         library
8324         
8325         * glib/dbus-gparser.h: make description_load routines return
8326         NodeInfo* not Parser*
8327
8328         * Makefile.am (SUBDIRS): build test dir after all library dirs
8329
8330         * configure.in: add GTK+ detection
8331
8332 2003-09-07  Havoc Pennington  <hp@pobox.com>
8333
8334         * Make Doxygen contented.
8335
8336 2003-09-07  Havoc Pennington  <hp@pobox.com>
8337
8338         * doc/dbus-specification.sgml: more updates
8339
8340 2003-09-06  Havoc Pennington  <hp@pobox.com>
8341
8342         * doc/dbus-specification.sgml: partial updates
8343
8344         * bus/dbus-daemon-1.1.in: fix the config file docs for the
8345         zillionth time; hopefully I edited the right file this time.
8346
8347         * bus/config-parser.c (append_rule_from_element): support
8348         send_type, send_path, receive_type, receive_path
8349
8350         * bus/policy.c: add message type and path to the list of things
8351         that can be "firewalled"
8352
8353 2003-09-06  Havoc Pennington  <hp@pobox.com>
8354
8355         * dbus/dbus-connection.c (dbus_connection_register_fallback): add this
8356         (dbus_connection_register_object_path): make this not handle
8357         messages to paths below the given path
8358
8359 2003-09-03  Havoc Pennington  <hp@pobox.com>
8360
8361         * test/glib/Makefile.am: add this with random glib-linked test
8362         programs
8363
8364         * glib/Makefile.am: remove the random test programs from here,
8365         leave only the unit tests
8366
8367         * glib/dbus-gobject.c (_dbus_gobject_test): add test for 
8368         uscore/javacaps conversion, and fix     
8369         (get_object_property, set_object_property): change to .NET
8370         convention for mapping props to methods, set_FooBar/get_FooBar, 
8371         since one language has such a convention we may as well copy it. 
8372         Plus real methods in either getFooBar or get_foo_bar style won't 
8373         collide with this convention.
8374
8375 2003-09-01  Havoc Pennington  <hp@pobox.com>
8376
8377         * glib/dbus-gparser.c: implement
8378
8379         * glib/dbus-gobject.c: start implementing skeletons support
8380
8381         * configure.in: when disabling checks/assert, also define
8382         G_DISABLE_ASSERT and G_DISABLE_CHECKS
8383
8384 2003-09-01  Havoc Pennington  <hp@pobox.com>
8385
8386         * glib/Makefile.am: rearrange a bunch of files and get "make
8387         check" framework set up
8388
8389 2003-08-31  Havoc Pennington  <hp@pobox.com>
8390
8391         * fix build with --disable-tests
8392
8393 2003-08-30  Havoc Pennington  <hp@pobox.com>
8394
8395         * dbus/dbus-connection.c: purge DBusMessageHandler
8396
8397         * dbus/dbus-message-handler.c: remove DBusMessageHandler, just 
8398         use callbacks everywhere
8399
8400 2003-08-30  Havoc Pennington  <hp@pobox.com>
8401
8402         * test/data/valid-config-files/system.d/test.conf: change to 
8403         root for the user so warnings don't get printed
8404
8405         * dbus/dbus-message.c: add dbus_message_get_path,
8406         dbus_message_set_path
8407         
8408         * dbus/dbus-object-tree.c (do_test_dispatch): add test of
8409         dispatching to a path
8410
8411         * dbus/dbus-string.c (_dbus_string_validate_path): add
8412
8413         * dbus/dbus-marshal.c (_dbus_demarshal_object_path): implement
8414         (_dbus_marshal_object_path): implement
8415
8416         * dbus/dbus-protocol.h (DBUS_HEADER_FIELD_PATH): new header field 
8417         to contain the path to the target object
8418         (DBUS_HEADER_FIELD_SENDER_SERVICE): rename
8419         DBUS_HEADER_FIELD_SENDER to explicitly say it's the sender service
8420
8421 2003-08-30  Havoc Pennington  <hp@pobox.com>
8422
8423         * dbus/dbus-object-tree.c: write tests and fix the discovered bugs
8424
8425 2003-08-29  Havoc Pennington  <hp@pobox.com>
8426
8427         * dbus/dbus-object-tree.c: modify to allow overlapping paths to be
8428         registered
8429         (struct DBusObjectSubtree): shrink this
8430         a lot, since we may have a lot of them
8431         (_dbus_object_tree_free_all_unlocked): implement
8432         (_dbus_object_tree_dispatch_and_unlock): implement
8433
8434 2003-08-29  Havoc Pennington  <hp@pobox.com>
8435
8436         * dbus/dbus-internals.h: fix _DBUS_N_GLOBAL_LOCKS
8437
8438 2003-08-28  Havoc Pennington  <hp@pobox.com>
8439
8440         purge DBusObjectID
8441         
8442         * dbus/dbus-connection.c: port to no ObjectID, create a
8443         DBusObjectTree, rename ObjectTree to ObjectPath in public API
8444
8445         * dbus/dbus-connection.h (struct DBusObjectTreeVTable): delete 
8446         everything except UnregisterFunction and MessageFunction
8447         
8448         * dbus/dbus-marshal.c: port away from DBusObjectID, 
8449         add DBUS_TYPE_OBJECT_PATH
8450         
8451         * dbus/dbus-object-registry.[hc], dbus/dbus-object.[hc], 
8452         dbus/dbus-objectid.[hc]: remove these, we are moving to 
8453         path-based object IDs
8454
8455 2003-08-25  Havoc Pennington  <hp@pobox.com>
8456
8457         Just noticed that dbus_message_test is hosed, I wonder when I
8458         broke that. I thought make check was passing earlier...
8459         
8460         * dbus/dbus-object-tree.c: add new "object tree" to match DCOP 
8461         container tree, will replace most of dbus-object-registry
8462
8463         * dbus/dbus-string.c (_dbus_string_append_printf_valist): fix C99
8464         screwup
8465
8466 2003-08-19  Havoc Pennington  <hp@pobox.com>
8467
8468         * dbus/dbus-message.c (decode_string_field): support FIELD_SENDER
8469         (dbus_message_is_error): fix this function
8470
8471         * bus/dbus-daemon-1.1: clarify logic on when <deny>/<allow> rules
8472         match
8473
8474         * bus/policy.c (bus_client_policy_check_can_receive): fix code to
8475         reflect clarified man page
8476         (bus_client_policy_check_can_send): ditto
8477         
8478         * bus/session.conf.in: fixup
8479
8480         * bus/system.conf.in: fixup
8481
8482 2003-08-18  Havoc Pennington  <hp@redhat.com>
8483
8484         * dbus/dbus-hash.c (_dbus_hash_table_insert_two_strings): fix
8485
8486         * dbus/dbus-message.c (_dbus_message_loader_queue_messages): fix
8487         dumb bug created earlier (wrong order of args to
8488         decode_header_data())
8489         
8490         * tools/dbus-send.c: port
8491
8492         * tools/dbus-print-message.c (print_message): port
8493
8494         * test/data/*messages: port all messages over
8495         
8496         * dbus/dbus-message-builder.c: support including 
8497         message type
8498         
8499         * bus/driver.c: port over
8500         
8501         * bus/dispatch.c: port over to new stuff
8502
8503         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
8504         rename disconnect signal to "Disconnected"
8505
8506 2003-08-17  Havoc Pennington  <hp@pobox.com>
8507
8508         This doesn't compile yet, but syncing up so I can hack on it from
8509         work. What are branches for if not broken code? ;-)
8510         
8511         * dbus/dbus-protocol.h: remove DBUS_HEADER_FIELD_NAME, add
8512         DBUS_HEADER_FIELD_INTERFACE, DBUS_HEADER_FIELD_MEMBER,
8513         DBUS_HEADER_FIELD_ERROR_NAME
8514         
8515         * dbus/dbus-hash.c: Introduce DBUS_HASH_TWO_STRINGS as hack to use
8516         for the interface+member pairs
8517         (string_hash): change to use g_str_hash algorithm
8518         (find_direct_function, find_string_function): refactor these to
8519         share most code.
8520         
8521         * dbus/dbus-message.c: port all of this over to support 
8522         interface/member fields instead of name field
8523
8524         * dbus/dbus-object-registry.c: port over
8525         
8526         * dbus/dbus-string.c (_dbus_string_validate_interface): rename
8527         from _dbus_string_validate_name
8528
8529         * bus/dbus-daemon-1.1: change file format for the 
8530         <deny>/<allow> stuff to match new message naming scheme
8531
8532         * bus/policy.c: port over
8533
8534         * bus/config-parser.c: parse new format
8535         
8536 2003-08-16  Havoc Pennington  <hp@pobox.com>
8537
8538         * dbus/dbus-object-registry.c (add_and_remove_objects): remove
8539         broken assertion
8540
8541         * glib/dbus-gproxy.c: some hacking
8542
8543 2003-08-15  Havoc Pennington  <hp@redhat.com>
8544
8545         * dbus/dbus-pending-call.c (dbus_pending_call_block): implement
8546
8547         * dbus/dbus-connection.c
8548         (dbus_connection_send_with_reply_and_block): factor out internals;
8549         change to convert any error replies to DBusError instead of 
8550         returning them as a message
8551
8552 2003-08-15  Havoc Pennington  <hp@pobox.com>
8553
8554         * dbus/dbus-connection.c, 
8555         dbus/dbus-pending-call.c: Finish the pending call stuff
8556
8557 2003-08-14  Havoc Pennington  <hp@redhat.com>
8558
8559         * dbus/dbus-pending-call.c: start on new object that will replace
8560         DBusMessageHandler and ReplyHandlerData for tracking outstanding
8561         replies
8562
8563         * dbus/dbus-gproxy.c: start on proxy object used to communicate
8564         with remote interfaces
8565
8566         * dbus/dbus-gidl.c: do the boring boilerplate in here
8567         
8568 2003-08-12  Havoc Pennington  <hp@pobox.com>
8569
8570         * bus/dispatch.c (bus_dispatch): make this return proper 
8571         DBusHandlerResult to avoid DBUS_ERROR_UNKNOWN_METHOD
8572
8573         * dbus/dbus-errors.c (dbus_set_error): use
8574         _dbus_string_append_printf_valist
8575
8576         * dbus/dbus-string.c (_dbus_string_append_printf_valist)
8577         (_dbus_string_append_printf): new
8578
8579         * dbus/dbus-errors.h (DBUS_ERROR_UNKNOWN_MESSAGE): change to
8580         UNKNOWN_METHOD
8581
8582         * dbus/dbus-connection.c (dbus_connection_dispatch): handle
8583         DBUS_HANDLER_RESULT_NEED_MEMORY; send default error reply if a
8584         message is unhandled.
8585
8586 2003-08-11  Havoc Pennington  <hp@pobox.com>
8587
8588         * bus/test.c (client_disconnect_handler): change to return
8589         HANDLED (would have been REMOVE_MESSAGE)
8590
8591         * dbus/dbus-object.h (enum DBusHandlerResult): rename to
8592         HANDLED/NOT_YET_HANDLED instead of
8593         REMOVE_MESSAGE/ALLOW_MORE_HANDLERS to make it clearer how it 
8594         should be used.
8595
8596 2003-08-10  Havoc Pennington  <hp@pobox.com>
8597
8598         * tools/dbus-send.c (main): add --type argument, for now
8599         supporting only method_call and signal types.
8600
8601         * tools/dbus-print-message.c: print message type
8602
8603         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
8604         init connection->objects
8605
8606         * doc/dbus-specification.sgml: fix sgml
8607
8608         * bus/*.c: port over to object-instance API changes
8609
8610         * test/test-service.c: ditto
8611         
8612         * dbus/dbus-message.c (dbus_message_create_header): allow #NULL
8613         name, we will have to fix up the rest of the code to also handle
8614         this
8615         (dbus_message_new): generic message-creation call
8616         (set_string_field): allow appending name field
8617
8618 2003-08-06  Havoc Pennington  <hp@pobox.com>
8619
8620         * dbus/dbus-object-registry.c: implement signal connection 
8621         and dispatch
8622
8623         * dbus/dbus-connection.c (_dbus_connection_unref_unlocked): new
8624
8625         * dbus/dbus-internals.c (_dbus_memdup): new function
8626
8627 2003-08-02  Havoc Pennington  <hp@pobox.com>
8628
8629         * dbus/dbus-message.c (dbus_message_get_no_reply)
8630         (dbus_message_set_no_reply): add these and remove
8631         set_is_error/get_is_error
8632
8633         * dbus/dbus-protocol.h, doc/dbus-specification.sgml: 
8634         remove the ERROR flag, since there's now an ERROR type
8635
8636 2003-08-01  Havoc Pennington  <hp@pobox.com>
8637
8638         * dbus/dbus-object-registry.c (_dbus_object_registry_handle_and_unlock):
8639         implement
8640
8641         * dbus/dbus-message.c (dbus_message_get_type): new function
8642
8643         * doc/dbus-specification.sgml: add "type" byte to messages
8644
8645 2003-08-01  Havoc Pennington  <hp@pobox.com>
8646
8647         * dbus/dbus-protocol.h (DBUS_MESSAGE_TYPE_*): introduce
8648         a message type enum to distinguish kinds of message
8649         (DBUS_HEADER_FLAG_NO_REPLY_EXPECTED): flag for a message 
8650         that need not be replied to
8651
8652 2003-08-01  Havoc Pennington  <hp@pobox.com>
8653
8654         * dbus/dbus-marshal.c: adapt to DBusObjectID changes
8655         (unpack_8_octets): fix no-64-bit-int bug
8656
8657         * dbus/dbus-object-registry.c (validate_id): validate the 
8658         connection ID bits, not just the instance ID.
8659
8660         * dbus/dbus-connection.c (_dbus_connection_init_id): initialize
8661         the connection-global 33 bits of the object ID
8662
8663         * dbus/dbus-object-registry.c (info_from_entry): fill in 
8664         object ID in the new way
8665
8666         * dbus/dbus-objectid.h: rather than high/low bits, specifically 
8667         define server/client/instance bits.
8668
8669 2003-07-30  Havoc Pennington  <hp@pobox.com>
8670
8671         * dbus/dbus-connection.c (dbus_connection_register_object): fix
8672         build
8673
8674 2003-07-13  Havoc Pennington  <hp@pobox.com>
8675
8676         * dbus/dbus-object.h (struct DBusObjectVTable): add padding
8677         fields to DBusObjectVTable and DBusObjectInfo
8678
8679 2003-07-12  Havoc Pennington  <hp@pobox.com>
8680
8681         * dbus/dbus-object-registry.c: implement unit test,
8682         fix bugs discovered in process
8683
8684         * dbus/dbus-connection.c: remove handler_table and
8685         register_handler(), add DBusObjectRegistry usage
8686
8687         * dbus/dbus-objectid.c (dbus_object_id_is_null)
8688         (dbus_object_id_set_null): new functions
8689
8690 2003-07-08  Havoc Pennington  <hp@pobox.com>
8691
8692         * dbus/dbus-object.c: implement some of this
8693
8694         * dbus/dbus-object-registry.c
8695         (_dbus_object_registry_add_and_unlock): fill in the object_id out
8696         param
8697         (_dbus_object_registry_new): handle OOM
8698
8699 2003-07-08  Havoc Pennington  <hp@pobox.com>
8700
8701         * dbus/dbus-object.h: sketch out an API for registering objects
8702         with a connection, that allows us to use as little as 24 bytes
8703         per object and lets application code represent an object in 
8704         any conceivable way.
8705
8706         * dbus/dbus-object-registry.c: implement the hard bits of the
8707         DBusConnection aspect of object API. Not yet wired up.
8708         
8709 2003-07-06  Havoc Pennington  <hp@pobox.com>
8710
8711         * dbus/dbus-marshal.c (_dbus_marshal_set_object_id): new function
8712         (_dbus_marshal_object_id): new
8713         (_dbus_demarshal_object_id): new
8714         (_dbus_marshal_get_arg_end_pos): support object ID type, and
8715         consolidate identical switch cases. Don't conditionalize handling
8716         of DBUS_TYPE_UINT64, need to handle the type always.
8717         (_dbus_marshal_validate_arg): consolidate identical cases, and
8718         handle DBUS_TYPE_OBJECT_ID
8719
8720         * dbus/dbus-objectid.c: new file with DBusObjectID data type.
8721
8722         * dbus/dbus-protocol.h: add DBUS_TYPE_OBJECT_ID
8723
8724 2003-09-28  Havoc Pennington  <hp@pobox.com>
8725
8726         * real 0.13 release
8727
8728 2003-09-28  Havoc Pennington  <hp@pobox.com>
8729
8730         * doc/Makefile.am (dbus-specification.html): testing a funky hack
8731         to work with Debian db2html
8732
8733 2003-09-28  Havoc Pennington  <hp@pobox.com>
8734
8735         * configure.in: 0.13
8736
8737         * doc/Makefile.am (dbus-test-plan.html): accept nonexistence of
8738         stylesheet-images for benefit of Debian
8739         
8740         Change back to using filesystem-linked sockets for the system
8741         bus, so only root can create the default system bus address.
8742         
8743         * bus/system.conf.in: change to use
8744         DBUS_SYSTEM_BUS_DEFAULT_ADDRESS
8745
8746         * dbus/Makefile.am (INCLUDES): remove DBUS_SYSTEM_BUS_PATH define
8747         from here.
8748
8749         * configure.in: define DBUS_SYSTEM_BUS_DEFAULT_ADDRESS
8750         here, and AC_DEFINE DBUS_SYSTEM_PATH
8751
8752 2003-08-09  Anders Carlsson  <andersca@codefactory.se>
8753
8754         * doc/TODO:
8755         * doc/busconfig.dtd:
8756         Add busconfig DTD.
8757         
8758 2003-08-09  Anders Carlsson  <andersca@codefactory.se>
8759
8760         * doc/dbus-specification.sgml:
8761         Add activation reply values.
8762         
8763 2003-08-05  Havoc Pennington  <hp@redhat.com>
8764
8765         * configure.in: 0.12
8766
8767 2003-08-05  Anders Carlsson  <andersca@codefactory.se>
8768
8769         * glib/dbus-gmain.c: (watch_fd_new), (watch_fd_ref),
8770         (watch_fd_unref), (dbus_gsource_check), (dbus_gsource_dispatch),
8771         (add_watch), (remove_watch), (create_source):
8772         Refcount fds, fixes some reentrancy issues.
8773         
8774 2003-07-30  Havoc Pennington  <hp@redhat.com>
8775
8776         * dbus/dbus-bus.c (init_connections_unlocked): fix default system
8777         bus address to be abstract if we have abstract sockets
8778
8779         * NEWS: update
8780
8781 2003-07-28  Havoc Pennington  <hp@redhat.com>
8782
8783         * bus/messagebus.in: fix to avoid processname/servicename 
8784         confusion, from Michael Kearey
8785         https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=100965
8786         
8787 2003-07-23  Havoc Pennington  <hp@pobox.com>
8788
8789         * dbus/dbus-message.c (dbus_message_iter_get_named): 
8790         fix from Andy Hanton to remove broken "+1"
8791
8792 2003-07-16  Havoc Pennington  <hp@pobox.com>
8793
8794         * tools/dbus-launch.c (babysit): close stdout/stderr in the
8795         babysitter process, as suggested by Thomas Leonard, so 
8796         an "eval `dbus-launch --exit-with-session`" will actually 
8797         return
8798
8799 2003-07-16  Havoc Pennington  <hp@pobox.com>
8800
8801         * configure.in: print out EXPANDED_* variables in the summary at
8802         the end; clean up the code that computes EXPANDED_ variables and
8803         get the ones using exec_prefix right. Should make things work
8804         when you build without --prefix
8805
8806 2003-06-29  Havoc Pennington  <hp@pobox.com>
8807
8808         * mono/Test.cs (class Test): fire up a main loop and run it
8809
8810         * mono/DBus.cs (DBus): don't g_thread_init since it can only be
8811         done once, the app has to do it
8812
8813 2003-06-26  Havoc Pennington  <hp@pobox.com>
8814
8815         * mono/Connection.cs: set up connection with the glib main loop
8816
8817 2003-07-01  Havoc Pennington  <hp@redhat.com>
8818
8819         * doc/dbus-specification.sgml: clarify the format of a type code,
8820         change suggested by Jim Blandy
8821
8822 2003-06-29  Miloslav Trmac  <mitr@volny.cz>
8823
8824         * doc/Makefile.am:
8825         * tools/Makefile.am: Don't assume srcdir == builddir.
8826
8827         * dbus/dbus-memory.c (dbus_realloc): Don't check guards after shrinking
8828         the allocated block.
8829         (_dbus_memory_test): New function.
8830         * dbus/dbus-test.h: Add _dbus_memory_test ().
8831         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): Call it.
8832
8833         * dbus/dbus-message.c (decode_header_data): Use %.4s instead
8834         of %c%c%c%c.
8835         (dbus_message_new): Remove obsolete @todo.
8836
8837         * dbus/dbus-marshal.c (_dbus_marshal_set_int64)
8838         (_dbus_marshal_set_uint64): Fix comment.
8839
8840         * dbus/dbus-message.c (append_int_field, append_uint_field): Don't
8841         hardcode FIELD_REPLY_SERIAL.
8842
8843         * dbus/dbus-mainloop.c (_dbus_loop_remove_watch)
8844         (_dbus_loop_remove_timeout): Cast function pointers to (void *) for %p
8845
8846         * configure.in: Add -D_POSIX_C_SOURCE=199309L -DBSD_SOURCE to CFLAGS
8847         and disable DBUS_USE_ATOMIC_INT_486 when --enable-ansi is used
8848
8849 2003-06-24  Havoc Pennington  <hp@pobox.com>
8850
8851         * mono/*.cs: Use IntPtr.Zero instead of ((IntPtr) 0)
8852
8853 2003-06-23  Anders Carlsson  <andersca@codefactory.se>
8854
8855         * configure.in:
8856         * gcj/.cvsignore:
8857         * gcj/Hello.java:
8858         * gcj/Makefile.am:
8859         * gcj/TestMessage.java: (TestMessage), (TestMessage.main):
8860         * gcj/org/.cvsignore:
8861         * gcj/org/Makefile.am:
8862         * gcj/org/freedesktop/.cvsignore:
8863         * gcj/org/freedesktop/Makefile.am:
8864         * gcj/org/freedesktop/dbus/.cvsignore:
8865         * gcj/org/freedesktop/dbus/Makefile.am:
8866         * gcj/org/freedesktop/dbus/Message.java: (Message),
8867         (Message.Message):
8868         * gcj/org/freedesktop/dbus/natMessage.cc:
8869         Fix the build system.
8870
8871 2003-06-22  Havoc Pennington  <hp@pobox.com>
8872
8873         * mono/Connection.cs: add more bindings
8874
8875         * dbus/dbus-threads.c (dbus_threads_init): allow calling this
8876         more than once.
8877
8878 2003-06-22  Havoc Pennington  <hp@pobox.com>
8879
8880         * mono/Connection.cs, mono/DBus.cs, mono/Error.cs:
8881         Start wrapping more stuff.
8882
8883 2003-06-22  Havoc Pennington  <hp@pobox.com>
8884
8885         * mono/Message.cs: implement Message.Wrap() that ensures we only
8886         have a single C# wrapper per DBusMessage, assuming it works which
8887         it probably doesn't.
8888
8889         * dbus/dbus-message.c (dbus_message_allocate_data_slot): new
8890         (dbus_message_free_data_slot): new
8891         (dbus_message_set_data): new
8892         (dbus_message_get_data): new
8893
8894 2003-06-22  Havoc Pennington  <hp@pobox.com>
8895
8896         * dbus/dbus-dataslot.c (_dbus_data_slot_allocator_unref)
8897         (_dbus_data_slot_allocator_alloc): rework these to keep a
8898         reference count on each slot and automatically manage a global
8899         slot ID variable passed in by address
8900
8901         * bus/bus.c: convert to new dataslot API
8902
8903         * dbus/dbus-bus.c: convert to new dataslot API
8904
8905         * dbus/dbus-connection.c: convert to new dataslot API
8906
8907         * dbus/dbus-server.c: convert to new dataslot API
8908
8909         * glib/dbus-gmain.c: ditto
8910
8911         * bus/test.c: ditto
8912
8913         * bus/connection.c: ditto
8914
8915 2003-06-22  Anders Carlsson  <andersca@codefactory.se>
8916
8917         * configure.in: Add AM_PROG_GCJ and move AM_PROG_LIBTOOL
8918         after the gcj checks so that the correct configuration tags
8919         will be added to libtool.
8920
8921         * dbus-glib-1.pc.in: No need to specify any includes since
8922         dbus-1.pc.in has those.
8923
8924 2003-06-22  Havoc Pennington  <hp@pobox.com>
8925
8926         * mono/*, gcj/*, configure.in, Makefile.am:
8927         Check in makefiles and subdirs for mono and gcj bindings.
8928         Neither binding actually exists, just trying to get through
8929         all the build and other boring bits.
8930
8931 2003-06-21  Philip Blundell  <philb@gnu.org>
8932
8933         * tools/dbus-monitor.1: Updated.
8934
8935         * tools/dbus-send.1: Likewise.
8936
8937 2003-06-20  Anders Carlsson  <andersca@codefactory.se>
8938
8939         * dbus/dbus-transport-unix.c (unix_handle_watch): Check
8940         for hangup and error after checking read so we won't discard
8941         pending data if both hangup and read are set.
8942
8943 2003-06-19  Philip Blundell  <philb@gnu.org>
8944
8945         * tools/dbus-print-message.c (print_message): Handle BOOLEAN.
8946
8947         * tools/dbus-send.c: Accept both --system and --session.
8948
8949         * tools/dbus-monitor.c: Same here.
8950
8951 2003-06-19  Anders Carlsson  <andersca@codefactory.se>
8952
8953         * glib/dbus-glib.h: Fix so that dbus-glib.h can be used
8954         from C++ (Patch by Miloslav Trmac).
8955
8956 2003-06-15  Joe Shaw  <joe@assbarn.com>
8957
8958         * configure.in: Check for socklen_t.
8959
8960         * dbus/dbus-sysdeps.c: Define socklen_t if it's not defined.
8961
8962         * test/test-segfault.c: Add #include <sys/time.h>
8963
8964         * tools/Makefile.am: Add DBUS_X_CFLAGS to the INCLUDES since
8965         dbus-launch needs it.
8966
8967 2003-06-09  Havoc Pennington  <hp@redhat.com>
8968
8969         * dbus/dbus-sysdeps.c (_dbus_listen_unix_socket): don't use
8970         SUN_LEN, it breaks abstract socket usage
8971
8972         * dbus/dbus-internals.c (_dbus_verbose_real): only print PID at
8973         starts of lines.
8974
8975 2003-06-04  Havoc Pennington  <hp@pobox.com>
8976
8977         * dbus/dbus-server.c (dbus_server_listen): allow abstract sockets
8978         using unix:abstract=/foo, and when listening in a tmpdir
8979         i.e. unix:tmpdir=/tmp, always use abstract sockets if we can.
8980
8981         * dbus/dbus-transport.c (_dbus_transport_open): support
8982         unix:abstract=/foo
8983
8984         * dbus/dbus-server-unix.c (_dbus_server_new_for_domain_socket):
8985         support abstract sockets
8986
8987         * dbus/dbus-transport-unix.c
8988         (_dbus_transport_new_for_domain_socket): support abstract sockets
8989
8990         * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket): add "abstract"
8991         toggle as an argument, implement abstract namespace support
8992         (_dbus_listen_unix_socket): ditto
8993
8994         * configure.in: add --enable-abstract-sockets and implement
8995         a configure check for autodetection of the right value.
8996
8997 2003-06-01  Havoc Pennington  <hp@pobox.com>
8998
8999         * tools/dbus-cleanup-sockets.c: add utility to clean up sockets
9000         in /tmp (though on Linux this will end up being useless,
9001         when we add abstract namespace support)
9002
9003         * configure.in: define DBUS_SESSION_SOCKET_DIR in addition to
9004         subst'ing it
9005
9006 2003-05-28  Colin Walters  <walters@verbum.org>
9007
9008         * tools/dbus-monitor.c (main): Fix silly typo (s/--session/--system/).
9009
9010 2003-05-18  Anders Carlsson  <andersca@codefactory.se>
9011
9012         * dbus/dbus-message.c (dbus_message_new): Remove @todo.
9013
9014 2003-05-17  Colin Walters  <walters@gnu.org>
9015
9016         * tools/dbus-send.c: Don't exit with an error code if --help was
9017         passed.  Default to using the session bus instead of the system
9018         one.
9019
9020         * tools/dbus-launch.c: Ditto.
9021
9022         * tools/dbus-monitor.c: Ditto.
9023
9024         * tools/dbus-send.1: Update with new arguments.
9025
9026         * tools/dbus-launch.c: Emit code to export variables.  New
9027         arguments -s and -c to specify shell syntax, and a bit of code to
9028         autodetect syntax.  Also, allow specifying a program to run.
9029
9030         * tools/dbus-launch.1: Update with new arguments.
9031
9032         * tools/dbus-send.1: Ditto.
9033
9034         * tools/dbus-monitor.1: Ditto.
9035
9036 2003-05-17  Havoc Pennington  <hp@pobox.com>
9037
9038         * bus/config-parser.c (merge_included): merge in policies from
9039         child configuration file.
9040
9041         * bus/policy.c (bus_policy_merge): function to merge two policies
9042         together
9043
9044 2003-05-16  Havoc Pennington  <hp@redhat.com>
9045
9046         * dbus/dbus-connection.c: disable verbose lock spew
9047
9048         * tools/dbus-send.c: add --print-reply command line option
9049
9050         * tools/dbus-print-message.h (print_message): new util function
9051         shared by dbus-send and dbus-monitor
9052
9053         * tools/dbus-monitor.c (handler_func): exit on disconnect
9054
9055         * dbus/dbus-transport-unix.c (do_reading): if the transport is
9056         disconnected, don't try to use the read_watch
9057
9058         * dbus/dbus-watch.c (dbus_watch_get_enabled): assert watch != NULL
9059         so we can find this bug more easily
9060
9061 2003-05-16  Havoc Pennington  <hp@redhat.com>
9062
9063         * bus/policy.c (free_rule_list_func): avoid a crash when passed
9064         NULL as DBusHashTable is annoyingly likely to do.
9065
9066 2003-05-16  Colin Walters  <walters@verbum.org>
9067
9068         * tools/dbus-monitor.c: Add --session argument and usage()
9069         function.
9070
9071         * tools/dbus-monitor.1: Update with new --session arg.
9072
9073         * bus/Makefile.am (install-data-hook): Create
9074         $(libdir)/dbus-1.0/services so that the session bus is happy.
9075
9076 2003-05-15  Havoc Pennington  <hp@redhat.com>
9077
9078         * dbus/dbus-sysdeps.c (_dbus_atomic_dec, _dbus_atomic_inc): work
9079         on non-x86. ifdef's are evil.
9080
9081 2003-05-15  Havoc Pennington  <hp@redhat.com>
9082
9083         * configure.in: 0.11
9084
9085         * NEWS: update
9086
9087         * bus/Makefile.am (initddir): apparently we are supposed to put
9088         init scripts in /etc/rc.d/init.d not /etc/init.d
9089
9090         * bus/Makefile.am: remove the "you must --enable-tests to make
9091         check" as it broke distcheck
9092
9093         * bus/Makefile.am (install-data-hook): create /etc/dbus-1/system.d
9094
9095 2003-05-13  James Willcox  <jwillcox@gnome.org>
9096
9097         * configure.in:
9098         * bus/activation.c: (bus_activation_service_created),
9099         (bus_activation_activate_service):
9100         * bus/driver.c: (bus_driver_send_service_deleted),
9101         (bus_driver_send_service_created), (bus_driver_send_service_lost),
9102         (bus_driver_send_service_acquired),
9103         (bus_driver_send_welcome_message),
9104         (bus_driver_handle_list_services):
9105         * bus/session.conf.in:
9106         * dbus/dbus-bus.c: (dbus_bus_acquire_service),
9107         (dbus_bus_service_exists), (dbus_bus_activate_service):
9108         * dbus/dbus-bus.h:
9109
9110         Add some convenience API which lets you activate a service, and did a
9111         bunch of s/0/DBUS_TYPE_INVALID/ in calls to dbus_message_append_args()
9112         and dbus_message_get_args()
9113
9114 2003-05-11  Havoc Pennington  <hp@pobox.com>
9115
9116         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): fix to avoid
9117         calling _dbus_marshal_validate_arg() for every byte in a byte
9118         array, etc.
9119
9120         * dbus/dbus-message-handler.c: use atomic reference counting to
9121         reduce number of locks slightly; the global lock in here sucks
9122
9123         * dbus/dbus-connection.c
9124         (_dbus_connection_update_dispatch_status_and_unlock): variant of
9125         update_dispatch_status that can be called with lock held; then use
9126         in a couple places to reduce locking/unlocking
9127         (dbus_connection_send): hold the lock over the whole function
9128         instead of acquiring it twice.
9129
9130         * dbus/dbus-timeout.c (_dbus_timeout_new): handle OOM
9131
9132         * bus/connection.c (bus_connections_setup_connection): fix access
9133         to already-freed memory.
9134
9135         * dbus/dbus-connection.c: keep a little cache of linked list
9136         nodes, to avoid using the global linked list alloc lock in the
9137         normal send-message case. Instead we just use the connection lock
9138         that we already have to take.
9139
9140         * dbus/dbus-list.c (_dbus_list_find_last): new function
9141
9142         * dbus/dbus-sysdeps.c (_dbus_atomic_inc, _dbus_atomic_dec):
9143         change to use a struct for the atomic type; fix docs,
9144         they return value before increment, not after increment.
9145
9146         * dbus/dbus-string.c (_dbus_string_append_4_aligned)
9147         (_dbus_string_append_8_aligned): new functions to try to
9148         microoptimize this operation.
9149         (reallocate_for_length): break this out of set_length(), to
9150         improve profile info, and also so we can consider inlining the
9151         set_length() part.
9152
9153         * dbus/dbus-message.c (dbus_message_new_empty_header): init data
9154         strings with some preallocation, cuts down on our calls to realloc
9155         a fair bit. Though if we can get the "move entire string to empty
9156         string" optimization below to kick in here, it would be better.
9157
9158         * dbus/dbus-string.c (_dbus_string_move): just call
9159         _dbus_string_move_len
9160         (_dbus_string_move_len): add a special case for moving
9161         an entire string into an empty string; we can just
9162         swap the string data instead of doing any reallocs.
9163         (_dbus_string_init_preallocated): new function
9164
9165 2003-05-11  Havoc Pennington  <hp@pobox.com>
9166
9167         Write a "test-profile" that does echo client-server with threads;
9168         profile reveals lock contention, memcpy/realloc of buffers, and
9169         UTF-8 validation as hot spots. 20% of lock contention eliminated
9170         with dbus_atomic_inc/dec implementation on x86.  Much remaining
9171         contention is global mempool locks for GList and DBusList.
9172
9173         * dbus/dbus-sysdeps.c (_dbus_atomic_inc, _dbus_atomic_dec): add
9174         x86 implementation
9175
9176         * dbus/dbus-connection.c (struct DBusConnection): use
9177         dbus_atomic_t for the reference count
9178
9179         * dbus/dbus-message.c (struct DBusMessage): declare
9180         dbus_atomic_t values as volatile
9181
9182         * configure.in: code to detect ability to use atomic integer
9183         operations in assembly, from GLib patch
9184
9185         * dbus/dbus-internals.c (_dbus_verbose_real): call getpid every
9186         time, tired of it being wrong in threads and forked processes
9187
9188         * glib/test-profile.c: a little program to bounce messages back
9189         and forth between threads and eat CPU
9190
9191         * dbus/dbus-connection.c: add debug spew macros for debugging
9192         thread locks; include config.h at top; fix deadlock in
9193         dbus_connection_flush()
9194
9195 2003-05-08  Havoc Pennington  <hp@pobox.com>
9196
9197         * dbus/dbus-spawn.c: s/_exit/exit/ because it was keeping gcov
9198         data from getting written, and there wasn't a good reason to
9199         use _exit really.
9200
9201         * test/decode-gcov.c (mark_inside_dbus_build_tests): don't count
9202         dbus_verbose lines in test coverage
9203         (main): add list of functions sorted by # of untested blocks
9204         to the coverage report
9205
9206         * dbus/dbus-mempool.c: put some test-only code in DBUS_BUILD_TESTS
9207
9208         * dbus/dbus-marshal.c (_dbus_marshal_test): extend test coverage
9209
9210         * dbus/dbus-message-handler.c (_dbus_message_handler_test):
9211         extend test coverage
9212
9213         * test/data/auth/cancel.auth-script: test canceling an
9214         authentication
9215
9216         * dbus/Makefile.am: remove dbus-server-debug.[hc] for now, as they
9217         aren't used. in CVS history if we end up needing them.
9218
9219 2003-05-04  Havoc Pennington  <hp@pobox.com>
9220
9221         * dbus/dbus-message-handler.c (_dbus_message_handler_test): add
9222         unit test
9223
9224         * dbus/dbus-marshal.c (_dbus_demarshal_string_array): fix this
9225         function, which assumed length was in # of strings, not bytes
9226
9227         * dbus/dbus-message.c (_dbus_message_test): add tests for some
9228         missing coverage
9229
9230         * dbus/dbus-connection.c
9231         (_dbus_connection_queue_received_message): disable function for
9232         now, we are only using it in test mode
9233
9234         * dbus/dbus-message.c (_dbus_message_loader_queue_messages):
9235         remove a mistaken FIXME
9236
9237 2003-05-04  Havoc Pennington  <hp@pobox.com>
9238
9239         * dbus/dbus-connection.c (dbus_connection_preallocate_send):
9240         unlock mutex on successful return, patch from Anders Gustafsson
9241
9242 2003-05-04  Havoc Pennington  <hp@pobox.com>
9243
9244         * dbus-glib-1.pc.in (Requires): fix dependencies, from
9245         Anders Gustafsson
9246
9247 2003-05-04  Havoc Pennington  <hp@pobox.com>
9248
9249         * tools/dbus-launch.c: implement
9250
9251         * bus/main.c (main), bus/bus.c (bus_context_new):
9252         implement --print-pid and --fork
9253
9254 2003-05-03  Havoc Pennington  <hp@redhat.com>
9255
9256         * dbus/dbus-address.c (dbus_parse_address): fix bug when a key in
9257         the address had no value, and add to test suite. Fix and
9258         regression test from Miloslav Trmac
9259
9260 2003-05-03  Havoc Pennington  <hp@pobox.com>
9261
9262         * dbus/dbus-watch.c (dbus_watch_handle): warn and return if a
9263         watch is invalid when handled
9264
9265         * tools/Makefile.am, tools/dbus-launch.c, tools/dbus-launch.1: add
9266         dbus-launch utility to launch the bus from a shell script.  Didn't
9267         actually implement dbus-launch yet, it's just a placeholder still.
9268
9269 2003-05-03  Havoc Pennington  <hp@pobox.com>
9270
9271         * bus/Makefile.am, bus/dbus-daemon-1.1.in: man page for the
9272         daemon; also documents daemon config file, so replaces
9273         doc/config-file.txt. Corrected some stuff from config-file.txt in
9274         the process of moving it.
9275
9276 2003-05-03  Havoc Pennington  <hp@pobox.com>
9277
9278         * tools/Makefile.am, tools/dbus-send.1, tools/dbus-monitor.1:
9279         add some man pages
9280
9281 2003-05-03  Colin Walters  <walters@verbum.org>
9282
9283         * dbus/dbus-sysdeps.c (fill_user_info): Test against
9284         DBUS_UID_UNSET to determine whether to do a uid lookup or not.
9285
9286         * Makefile.am: Update to use new .pc versioning scheme.
9287
9288 2003-05-02  Havoc Pennington  <hp@redhat.com>
9289
9290         * bus/system.conf.in: allow send/receive to/from message bus
9291         service
9292
9293 2003-04-30  Havoc Pennington  <hp@redhat.com>
9294
9295         * configure.in: print a note when building with unit tests and
9296         without assertions
9297
9298 2003-04-30  Havoc Pennington  <hp@redhat.com>
9299
9300         * Makefile.am: add a check-local that complains if you didn't
9301         configure with --enable-tests
9302
9303 2003-04-29  Havoc Pennington  <hp@redhat.com>
9304
9305         * glib/dbus-gmain.c: docs cleanups
9306
9307         * dbus/dbus-types.h: add docs on int64 types
9308
9309         * dbus/dbus-memory.c: fix docs to avoid putting private API in
9310         public API docs section
9311
9312 2003-04-29  Havoc Pennington  <hp@redhat.com>
9313
9314         * dbus-1.pc.in, dbus-glib-1.pc.in: rename these from
9315         dbus-1.0.pc.in, dbus-glib-1.0.pc.in. As these change with the
9316         parallel install API version, not with the D-BUS package version.
9317
9318         * HACKING: move some of README over here
9319
9320         * README: updates, and document API/ABI policy
9321
9322         * configure.in: reindentation
9323
9324 2003-04-29  Havoc Pennington  <hp@redhat.com>
9325
9326         * dbus/dbus.h: add "you have to define DBUS_API_SUBJECT_TO_CHANGE
9327         to use this library" to be sure people have the right
9328         expectations.
9329
9330 2003-04-28  Havoc Pennington  <hp@redhat.com>
9331
9332         * configure.in: add --enable-docs which by default is auto yes if
9333         doxygen and db2html found, no otherwise; but can be forced on/off
9334
9335         * doc/Makefile.am: conditionalize whether to build docs on
9336         --enable-docs
9337
9338 2003-04-28  Havoc Pennington  <hp@redhat.com>
9339
9340         * configure.in: 0.10
9341
9342         * NEWS: update
9343
9344         * bus/system.conf.in: add <includedir>system.d</includedir>
9345
9346         * dbus/dbus-userdb.c (_dbus_user_database_lookup): fix bug when
9347         username was provided but not uid
9348
9349         * bus/config-parser.c (struct BusConfigParser): keep track of
9350         whether the parser is toplevel or was included; change some
9351         of the error handling if it's included.
9352
9353 2003-04-27  Havoc Pennington  <hp@pobox.com>
9354
9355         Unbreak my code...
9356
9357         * dbus/dbus-transport.c (_dbus_transport_get_dispatch_status):
9358         report correct status if we finish processing authentication
9359         inside this function.
9360
9361         * bus/activation.c (try_send_activation_failure): use
9362         bus_transaction_send_error_reply
9363
9364         * bus/connection.c (bus_connection_get_groups): return an error
9365         explaining the problem
9366
9367         * bus/bus.c (bus_context_check_security_policy): implement
9368         restriction here that inactive connections can only send the
9369         hello message. Also, allow bus driver to send anything to
9370         any recipient.
9371
9372         * bus/connection.c (bus_connection_complete): create the
9373         BusClientPolicy here instead of on-demand.
9374         (bus_connection_get_policy): don't return an error
9375
9376         * dbus/dbus-message.c (dbus_message_new_error_reply): allow NULL
9377         sender field in message being replied to
9378
9379         * bus/bus.c (bus_context_check_security_policy): fix silly typo
9380         causing it to return FALSE always
9381
9382         * bus/policy.c (bus_client_policy_check_can_send): fix bug where
9383         we checked sender rather than destination
9384
9385 2003-04-25  Havoc Pennington  <hp@redhat.com>
9386
9387         test suite is slightly hosed at the moment, will fix soon
9388
9389         * bus/connection.c (bus_connections_expire_incomplete): fix to
9390         properly disable the timeout when required
9391         (bus_connection_set_name): check whether we can remove incomplete
9392         connections timeout after we complete each connection.
9393
9394         * dbus/dbus-mainloop.c (check_timeout): fix this up a bit,
9395         probably still broken.
9396
9397         * bus/services.c (bus_registry_acquire_service): implement max
9398         number of services owned, and honor allow/deny rules on which
9399         services a connection can own.
9400
9401         * bus/connection.c (bus_connection_get_policy): report errors here
9402
9403         * bus/activation.c: implement limit on number of pending
9404         activations
9405
9406 2003-04-25  Havoc Pennington  <hp@redhat.com>
9407
9408         * dbus/dbus-transport.c (_dbus_transport_get_unix_user): fix bug
9409         where we used >= 0 instead of != DBUS_UID_UNSET.
9410
9411 2003-04-25  Havoc Pennington  <hp@redhat.com>
9412
9413         * glib/dbus-gmain.c (remove_watch): fix for a crash when watches
9414         were toggled without add/remove, fix from Anders Gustafsson
9415
9416 2003-04-24  Havoc Pennington  <hp@redhat.com>
9417
9418         * test/data/valid-config-files/basic.conf: add <limit> tags to
9419         this test
9420
9421         * bus/config-parser.h, bus/config-parser.c, bus/bus.c: Implement
9422         <limit> tag in configuration file.
9423
9424 2003-04-24  Havoc Pennington  <hp@redhat.com>
9425
9426         * bus/dispatch.c: somehow missed some name_is
9427
9428         * dbus/dbus-timeout.c (_dbus_timeout_set_enabled)
9429         (_dbus_timeout_set_interval): new
9430
9431         * bus/connection.c (bus_connections_setup_connection): record time
9432         when each connection is first set up, and expire them after the
9433         auth timeout passes.
9434
9435 2003-04-24  Havoc Pennington  <hp@redhat.com>
9436
9437         * dbus/dbus-message.c (dbus_message_name_is): rename
9438         (dbus_message_service_is): rename
9439         (dbus_message_sender_is): rename
9440         (dbus_message_get_service): rename
9441
9442 2003-04-24  Havoc Pennington  <hp@redhat.com>
9443
9444         * configure.in: add --enable-checks
9445
9446         * dbus/dbus-message.c (dbus_message_new): reverse name/service arguments
9447
9448         * dbus/dbus-connection.c (dbus_connection_preallocate_send): fix
9449         to use thread locks.
9450         (_dbus_connection_handler_destroyed_locked): move some private
9451         functions into proper docs group
9452
9453         * dbus/dbus-internals.h: add _dbus_return_if_fail,
9454         _dbus_return_val_if_fail
9455
9456         Throughout: use dbus_return_if_fail
9457
9458 2003-04-23  James Willcox  <jwillcox@gnome.org>
9459
9460         * glib/dbus-glib.h:
9461         * glib/dbus-gmain.c: (add_timeout), (wakeup_main), (create_source),
9462         (dbus_connection_setup_with_g_main),
9463         (dbus_server_setup_with_g_main):
9464         * glib/test-dbus-glib.c: (main):
9465         * glib/test-thread-client.c: (main):
9466         * glib/test-thread-server.c: (new_connection_callback), (main):
9467         * tools/dbus-monitor.c: (main):
9468
9469         Added a GMainContext argument to dbus_connection_setup_with_g_main()
9470         and dbus_server_setup_with_g_main().
9471
9472 2003-04-20  Havoc Pennington  <hp@pobox.com>
9473
9474         * doc/dbus-specification.sgml: document the restrictions on
9475         message and service names
9476
9477 2003-04-22  Havoc Pennington  <hp@redhat.com>
9478
9479         * dbus/dbus-message.c, dbus/dbus-marshal.c: add 64-bit integer
9480         support, and do some code cleanups to share more code and
9481         speed up array marshal/demarshal.
9482
9483         * dbus-1.0.pc.in (Cflags): put libdir include file in cflags
9484
9485         * configure.in: generate dbus-arch-deps.h
9486
9487         * dbus/dbus-protocol.h (DBUS_TYPE_INT64, DBUS_TYPE_UINT64): add
9488         64-bit typecodes
9489
9490 2003-04-22  Havoc Pennington  <hp@redhat.com>
9491
9492         * test/data/valid-messages/opposite-endian.message: fix test
9493         to use proper type for rply field
9494
9495         * test/data/invalid-messages: add tests for below validation
9496
9497         * dbus/dbus-message.c (decode_header_data): validate field types,
9498         and validate that named fields are valid names
9499         (decode_name_field): consider messages in the
9500         org.freedesktop.Local. namespace to be invalid.
9501
9502         * dbus/dbus-string.c (_dbus_string_validate_name): new
9503
9504 2003-04-19  Havoc Pennington  <hp@pobox.com>
9505
9506         * bus/driver.c (bus_driver_handle_hello): check limits and
9507         return an error if they are exceeded.
9508
9509         * bus/connection.c: maintain separate lists of active and inactive
9510         connections, and a count of each. Maintain count of completed
9511         connections per user. Implement code to check connection limits.
9512
9513         * dbus/dbus-list.c (_dbus_list_unlink): export
9514
9515         * bus/bus.c (bus_context_check_security_policy): enforce a maximum
9516         number of bytes in the message queue for a connection
9517
9518 2003-04-18  Havoc Pennington  <hp@pobox.com>
9519
9520         * dbus/dbus-auth.c (record_mechanisms): memleak fixes
9521
9522         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): fix some
9523         memleaks
9524
9525         * dbus/dbus-keyring.c (add_new_key): fix a memleak, and
9526         on realloc be sure to update the pointer in the keyring
9527
9528         * dbus/dbus-string.c (_dbus_string_zero): compensate for align
9529         offset to avoid writing to unallocated memory
9530
9531         * dbus/dbus-auth.c (process_rejected): return FALSE if we fail to
9532         try the next mechanism, so we properly handle OOM
9533
9534         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): fix double-free
9535         on OOM.
9536         (_dbus_keyring_new): fix OOM bug
9537         (_dbus_keyring_new_homedir): always set error; impose a maximum
9538         number of keys we'll load from the file, mostly to speed up the
9539         test suite and make its OOM checks more useful, but also for
9540         general sanity.
9541
9542         * dbus/dbus-auth.c (process_error_server): reject authentication
9543         if we get an error from the client
9544         (process_cancel): on cancel, send REJECTED, per the spec
9545         (process_error_client): send CANCEL if we get an error from the
9546         server.
9547
9548 2003-04-18  Havoc Pennington  <hp@pobox.com>
9549
9550         * dbus/dbus-mainloop.c (_dbus_loop_iterate): fix UMR in verbose
9551         debug spew
9552
9553         * dbus/dbus-auth.c (handle_client_data_cookie_sha1_mech): fix OOM
9554         handling problem
9555
9556         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): only whine
9557         about DBUS_TEST_HOMEDIR once
9558
9559         * bus/Makefile.am (TESTS_ENVIRONMENT): put DBUS_TEST_HOMEDIR in
9560         the environment
9561
9562         * bus/dispatch.c (bus_dispatch_sha1_test): actually load sha1
9563         config file so we test the right thing
9564
9565         Throughout: assorted docs improvements
9566
9567 2003-04-18  Havoc Pennington  <hp@pobox.com>
9568
9569         * glib/dbus-gmain.c: adapt to watch changes
9570
9571         * bus/bus.c, bus/activation.c, etc.: adjust to watch changes
9572
9573         * dbus/dbus-server.h: remove dbus_server_handle_watch
9574
9575         * dbus/dbus-connection.h: remove dbus_connection_handle_watch
9576
9577         * dbus/dbus-watch.c (dbus_watch_handle): change DBusWatch to work
9578         like DBusTimeout, so we don't need dbus_connection_handle_watch
9579         etc.
9580
9581 2003-04-17  Havoc Pennington  <hp@redhat.com>
9582
9583         * dbus/dbus-userdb.c, dbus/dbus-sysdeps.c: redo all the passwd
9584         database usage so it all goes via the DBusUserDatabase cache.
9585
9586 2003-04-17  Havoc Pennington  <hp@redhat.com>
9587
9588         * dbus/dbus-mainloop.c (_dbus_loop_iterate): fix logic so that if
9589         there was an OOM watch we skipped, we always return TRUE so we
9590         iterate again to have a look at it again. Fixes test suite hang.
9591         Code rearrangement also lets us lose some memset and only iterate
9592         over callbacks once.
9593
9594         * bus/driver.c (bus_driver_handle_message): sense of test for
9595         reply was backward
9596
9597 2003-04-16  Havoc Pennington  <hp@pobox.com>
9598
9599         * doc/dbus-specification.sgml: make spec say serials are unsigned
9600
9601         * dbus/dbus-message.h: change message serials to unsigned
9602
9603         * dbus/dbus-connection.c: adapt to message serials being unsigned
9604
9605 2003-04-15  Havoc Pennington  <hp@pobox.com>
9606
9607         * bus/bus.c: create and keep around a shared DBusUserDatabase
9608         object.
9609
9610         * bus/connection.c (bus_connection_get_groups): don't cache
9611         groups for user in the connection object, since user database
9612         object now does that.
9613
9614 2003-04-16  Havoc Pennington  <hp@redhat.com>
9615
9616         * dbus/dbus-message.c (_dbus_message_add_size_counter): keep a
9617         list of size counters
9618         (_dbus_message_loader_putback_message_link): put back a popped link
9619
9620         * dbus/dbus-connection.c
9621         (dbus_connection_set_max_live_messages_size): rename
9622         max_received_size
9623         (dbus_connection_get_outgoing_size): get size of outgoing
9624         queue
9625         (_dbus_connection_set_connection_counter): remove this cruft
9626
9627 2003-04-14  Havoc Pennington  <hp@redhat.com>
9628
9629         * dbus/dbus-userdb.c: user database abstraction, mostly to get
9630         caching, but at some point we might want to be able to use a
9631         different database.
9632
9633         * bus/dispatch.c (bus_dispatch_sha1_test): add a test that uses
9634         SHA1 conf file to test the sha1 auth mechanism, since the regular
9635         test always uses EXTERNAL when available.
9636
9637         * configure.in,
9638         test/data/valid-config-files/debug-allow-all-sha1.conf.in:
9639         add conf file that requires use of sha1 auth
9640
9641 2003-04-13  Havoc Pennington  <hp@pobox.com>
9642
9643         * tools/dbus-send.c, tools/dbus-monitor.c: two utility programs
9644         from Philip Blundell to send messages and monitor them.
9645
9646 2003-04-13  Havoc Pennington  <hp@pobox.com>
9647
9648         * dbus/dbus-mainloop.c: fix some reentrancy issues by refcounting
9649         callbacks
9650
9651         * test/data/valid-config-files/debug-allow-all.conf.in: allow all
9652         users
9653
9654         * dbus/dbus-transport.c (_dbus_transport_get_dispatch_status):
9655         fix to only recover unused bytes if we're already authenticated
9656         (_dbus_transport_get_is_authenticated): fix to still mark us
9657         authenticated if there are unused bytes.
9658
9659         * bus/dispatch.c: implement security policy checking
9660
9661         * bus/connection.c (bus_transaction_send_from_driver): new
9662
9663         * bus/bus.c (bus_context_check_security_policy): new
9664
9665         * bus/dispatch.c (send_service_nonexistent_error): delete this,
9666         now we just set the DBusError and it gets converted to an error
9667         reply.
9668
9669         * bus/connection.c (allow_user_function): enable code using actual
9670         data from the config file
9671
9672         * bus/policy.c (list_allows_user): handle wildcard rules for
9673         user/group connection perms
9674
9675 2003-04-13  Havoc Pennington  <hp@pobox.com>
9676
9677         * bus/config-parser.c: Load up the BusPolicy and BusPolicyRules
9678
9679         * dbus/dbus-sysdeps.c (_dbus_get_user_id): new function
9680
9681         * bus/policy.c (bus_policy_append_mandatory_rule)
9682         (bus_policy_append_default_rule, bus_policy_append_user_rule)
9683         (bus_policy_append_group_rule): new functions
9684
9685 2003-04-12  Havoc Pennington  <hp@pobox.com>
9686
9687         * bus/config-parser.c (bus_config_parser_new): fix a memleak
9688
9689         * dbus/dbus-sysdeps.c: change DBusCredentials to use longs for
9690         the pid/gid/uid, just for paranoia.
9691
9692         * test/break-loader.c (randomly_do_n_things): find a byte
9693         containing a type code, and randomly change it to a different
9694         type code.
9695
9696 2003-04-12  Havoc Pennington  <hp@pobox.com>
9697
9698         * bus/policy.h: change BusPolicy to be the thing from the config
9699         file, and rename old BusPolicy to BusClientPolicy
9700
9701         * bus/bus.c, bus/connection.c, bus/config-parser.c: change to
9702         match change in how policy works
9703
9704         * dbus/dbus-internals.h: mark assert_not_reached as
9705         __attribute((noreturn))__
9706
9707 2003-04-11  Havoc Pennington  <hp@redhat.com>
9708
9709         * doc/dbus-specification.sgml: fix a spot with the wrong name for
9710         the broadcast service. Use boolean return for ServiceExists.
9711
9712 2003-04-11  Havoc Pennington  <hp@redhat.com>
9713
9714         * configure.in: add another directory to look for qt in.
9715
9716 2003-04-11  Havoc Pennington  <hp@redhat.com>
9717
9718         * AUTHORS: add Colin Walters
9719
9720 2003-04-11  Havoc Pennington  <hp@redhat.com>
9721
9722         * NEWS: update
9723
9724         * configure.in: 0.9
9725
9726 2003-04-11  Havoc Pennington  <hp@redhat.com>
9727
9728         * bus/messagebus.in: remove pid file when stopping the
9729         message bus, since the bus won't have privileges to remove it
9730         itself.
9731
9732 2003-04-11  Havoc Pennington  <hp@redhat.com>
9733
9734         * bus/bus.c (bus_context_new): move credentials change after
9735         creating pidfile
9736
9737 2003-04-11  Havoc Pennington  <hp@pobox.com>
9738
9739         * test/decode-gcov.c: add "below average functions" to the
9740         coverage report, and change how some of the code works.
9741
9742         * bus/test-main.c: bracket some stuff in DBUS_BUILD_TESTS so it's
9743         not in the coverage stats.
9744
9745         * test/test-service.c (main): use _dbus_verbose not fprintf in a
9746         couple places so running the test suite doesn't result in megaspam.
9747
9748 2003-04-11  Havoc Pennington  <hp@pobox.com>
9749
9750         * bus/dispatch.c (check_existent_service_activation): accept a no
9751         memory error in a place we didn't before
9752
9753         * bus/test.c (bus_test_run_everything): remove hacky "do it twice
9754         in case the first one failed," since the test suite is less
9755         broken now.
9756
9757 2003-04-10  Havoc Pennington  <hp@pobox.com>
9758
9759         * bus/dispatch.c (check_segfault_service_activation): add test
9760         for launching an executable that just crashes.
9761
9762         * test/test-segfault.c (main): try setting coredumpsize to 0 so we
9763         don't leave a million cores. We'll see how portable this is.
9764
9765 2003-04-10  Havoc Pennington  <hp@pobox.com>
9766
9767         * dbus/dbus-spawn.c (_dbus_spawn_async_with_babysitter): move all
9768         the possible parent failures before we fork, so that we don't
9769         fail to create a babysitter after creating the child.
9770
9771         * bus/activation.c (bus_activation_activate_service): kill child
9772         if we don't successfully complete the activation.
9773
9774 2003-04-10  Havoc Pennington  <hp@redhat.com>
9775
9776         * dbus/dbus-connection.c (dbus_connection_flush): don't spin on
9777         the connection if it's disconnected
9778
9779         * bus/activation.c (bus_activation_service_created): use new
9780         transaction features to roll back removal of pending activation if
9781         we don't successfully create the service after all. Don't remove
9782         pending activation if the function fails.
9783
9784         * dbus/dbus-list.c (_dbus_list_insert_before_link)
9785         (_dbus_list_insert_after_link): new code to facilitate
9786         services.c fixes
9787
9788         * dbus/dbus-hash.c (_dbus_hash_table_insert_string_preallocated):
9789         new functionality, so we can preallocate the ability to insert
9790         into a hash table.
9791
9792         * bus/connection.c (bus_transaction_add_cancel_hook): new function
9793         allowing us to put custom hooks in a transaction to be used for
9794         cancelling said transaction
9795
9796         * doc/dbus-specification.sgml: add some discussion of secondary
9797         service owners, and disallow zero-length service names
9798
9799         * bus/services.c (bus_registry_acquire_service): new function,
9800         splits out part of bus_driver_handle_acquire_service() and fixes
9801         a bug where we didn't remove the service doing the acquiring
9802         from the secondary queue if we failed to remove the current owner
9803         from the front of the queue.
9804
9805 2003-04-10  Alexander Larsson  <alexl@redhat.com>
9806
9807         * doc/dbus-specification.sgml:
9808         s/org.freedesktop.Broadcast/org.freedesktop.DBus.Broadcast/
9809
9810 2003-04-10  Alexander Larsson  <alexl@redhat.com>
9811
9812         * bus/.cvsignore:
9813         * glib/.cvsignore:
9814         * test/.cvsignore:
9815         Added files to cvsignore
9816
9817         * dbus/dbus-message.h:
9818         * dbus/dbus-message.c: (dbus_message_iter_get_named):
9819         Make get_named() take two out argument and return a boolean.
9820         (dbus_message_iter_get_args_valist):
9821         Update usage of get_named().
9822         (dbus_message_iter_append_byte):
9823         Fix typo
9824         (dbus_message_iter_append_named)
9825         Fix typo
9826         (message_iter_test), (check_message_handling_type), (_dbus_message_test):
9827         More tests.
9828
9829 2003-04-10  Alexander Larsson  <alexl@redhat.com>
9830
9831         * dbus/dbus-marshal.[ch]:
9832         Add array_type_pos argument to _dbus_marshal_validate_arg.
9833         Let you pass a NULL end_pos to _dbus_marshal_validate_type.
9834
9835         * dbus/dbus-message.[ch]:
9836         Multi-dimensional arrays have full type specification in the
9837         outermost array. Iter code re-arranged to handle this.
9838         Added some more iter tests.
9839
9840         * doc/dbus-specification.sgml:
9841         Add me to authors.
9842         Remove old FIXME.
9843         Update new array encoding description.
9844         Correct DBUS_SERVICE_FLAGS_REPLACE_EXISTING description.
9845
9846         * test/data/invalid-messages/array-with-mixed-types.message:
9847         * test/data/valid-messages/array-of-array-of-uint32.message:
9848         Change to the new array format.
9849
9850         * test/data/invalid-messages/too-short-dict.message:
9851         Fix bug in test.
9852
9853         * test/data/valid-messages/recursive-types.message:
9854         Fix up and extend test.
9855
9856 2003-04-10  Havoc Pennington  <hp@pobox.com>
9857
9858         * bus/dispatch.c: lots of fixes
9859
9860         * dbus/dbus-mainloop.c (_dbus_loop_dispatch): export
9861         (_dbus_loop_iterate): remove old "quit if no callbacks" code,
9862         that was crack, broke the test service.
9863
9864         * dbus/dbus-transport.c (_dbus_transport_open): fix error
9865         handling to avoid piling up errors if we get a failure on the
9866         first address.
9867
9868         * dbus/dbus-internals.c (_dbus_real_assert_not_reached): include
9869         pid in assertion failures.
9870
9871         * dbus/dbus-mainloop.c (_dbus_loop_iterate): use static arrays up
9872         to some fixed size of file descriptor array. Don't return TRUE
9873         anytime a timeout exists, that led to lots of busy loop silliness
9874         in the tests.
9875
9876 2003-04-09  Havoc Pennington  <hp@redhat.com>
9877
9878         * dbus/dbus-mainloop.c (check_timeout): fix timeouts, I thought
9879         I'd checked this in earlier but hadn't.
9880
9881 2003-04-09  Havoc Pennington  <hp@redhat.com>
9882
9883         * bus/dispatch.c (bus_dispatch_test): get a bit further through
9884         the activation test (man this is getting old!)
9885
9886 2003-04-09  Havoc Pennington  <hp@redhat.com>
9887
9888         * test/test-utils.c: use dispatch status function to fix this up
9889
9890         * bus/connection.c (connection_watch_callback): don't dispatch
9891         from here
9892         (connection_timeout_callback): don't dispatch from here
9893         (bus_connections_setup_connection): set the dispatch status function
9894         (bus_connection_disconnected): unset it
9895
9896         * dbus/dbus-mainloop.c (_dbus_loop_queue_dispatch): new function
9897         used to add a connection to be dispatched
9898         (_dbus_loop_iterate): do the dispatching at the end of each
9899         iteration
9900
9901         * dbus/dbus-connection.c
9902         (dbus_connection_set_dispatch_status_function): new function
9903         allowing us to fix up main loop usage
9904         (_dbus_connection_last_unref): free all the various function
9905         user data
9906         (dbus_connection_dispatch): call the DispatchStatusFunction
9907         whenever this function returns
9908         (dbus_connection_handle_watch): call DispatchStatusFunction
9909         (dbus_connection_send_with_reply_and_block): call DispatchStatusFunction
9910         (reply_handler_timeout): call DispatchStatusFunction
9911         (dbus_connection_flush): call DispatchStatusFunction
9912
9913 2003-04-09  Havoc Pennington  <hp@redhat.com>
9914
9915         * dbus/dbus-bus.c (dbus_bus_register): fix up error handling and
9916         a memory leak
9917
9918         * bus/dispatch.c (check_service_activated): fix bug in test
9919
9920         * dbus/dbus-mainloop.c (check_timeout): fix this up
9921
9922         * dbus/dbus-internals.c (_dbus_verbose_real): include PID in
9923         verbose output so we can sort out output from different processes,
9924         e.g. in the activation case.
9925
9926 2003-04-08  Colin Walters  <walters@gnu.org>
9927
9928         * bus/bus.c (struct BusContext) [pidfile]: New member, to store
9929         the pid file.
9930         (bus_context_new): Set it.
9931         (bus_context_unref): Use it to delete the pid file.
9932
9933 2003-04-08  Havoc Pennington  <hp@redhat.com>
9934
9935         * test/data/invalid-messages/array-with-mixed-types.message:
9936         regression test that fails for the moment
9937
9938         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): reorder
9939         tests for convenience
9940
9941         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): don't allow
9942         array of nil, it broke things.
9943
9944         * test/data/invalid-messages/array-of-nil.message: regression test
9945
9946         * test/data/valid-messages/array-of-array-of-uint32.message:
9947         happened to write this so added it to suite
9948
9949 2003-04-08  Havoc Pennington  <hp@redhat.com>
9950
9951         * bus/driver.c (bus_driver_handle_acquire_service): init
9952         retval/reply before checking name
9953
9954         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): add a
9955         recursion depth argument
9956
9957         * dbus/dbus-message.h (struct DBusMessageIter): put some padding
9958         in the public struct for future extension
9959
9960         * dbus/dbus-message-builder.c (_dbus_message_data_load): fix
9961         typo
9962
9963         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): fix a verbose
9964         message
9965
9966         * doc/dbus-specification.sgml: fix typo
9967
9968 2003-04-08  Alexander Larsson  <alexl@redhat.com>
9969
9970         Implemented recursive types, named types and new-style iters
9971
9972         * bus/driver.c:
9973         * glib/test-thread-client.c: (thread_func):
9974         * glib/test-thread-server.c: (handle_test_message):
9975         * test/test-service.c: (handle_echo):
9976         Update to new api
9977
9978         * dbus/Makefile.am:
9979         * dbus/dbus-dict.c:
9980         * dbus/dbus-dict.h:
9981         * dbus/dbus.h
9982         Remove DBusDict
9983
9984         * dbus/dbus-internals.c: (_dbus_type_to_string):
9985         Update for new types.
9986
9987         * dbus/dbus-marshal.[ch]:
9988         Implement recursive types and the new marshalling format.
9989         Remove hardcoded dict marshalling.
9990         Marshal named types.
9991
9992         * dbus/dbus-message-builder.c:
9993         Add BYTE_ARRAY.
9994         Remove references to old types
9995
9996         * dbus/dbus-message.[ch]:
9997         New non-refcounted iter API that supports recursive iters.
9998         Use iters for appending, including support for recursive
9999         iters.
10000         Add byte and named type support.
10001         Update everything to new marshalling formats.
10002         Add tests for new API.
10003
10004         * dbus/dbus-protocol.h:
10005         Remove old array types.
10006         Add types: BYTE, ARRAY, DICT, NAMED
10007
10008         * dbus/dbus-string.c:
10009         * dbus/dbus-sysdeps.c:
10010         Make parse_double locale safe.
10011
10012         * dbus/dbus-test-main.c:
10013         Call setlocale.
10014
10015         * dbus/dbus-test.c:
10016         Kill dict test
10017
10018         * doc/dbus-specification.sgml:
10019         Update spec
10020
10021         * test/data/incomplete-messages/missing-body.message:
10022         * test/data/invalid-messages/bad-boolean.message:
10023         * test/data/invalid-messages/bad-boolean-array.message:
10024         * test/data/invalid-messages/boolean-array-length-too-long.message-raw:
10025         * test/data/invalid-messages/boolean-has-no-value.message-raw:
10026         * test/data/invalid-messages/too-short-dict.message:
10027         * test/data/valid-messages/dict-simple.message:
10028         * test/data/valid-messages/dict.message:
10029         * test/data/valid-messages/emptiness.message:
10030         * test/data/valid-messages/lots-of-arguments.message:
10031         * test/data/valid-messages/no-padding.message:
10032         * test/data/valid-messages/recursive-types.message:
10033         Add missing NAME fields
10034         Fix up dicts & arrays
10035
10036         * test/data/invalid-messages/dict-with-nil-value.message:
10037         Removed, this is not invalid anymore.
10038
10039         * test/data/valid-messages/recursive-types.message:
10040         Add new test for deeply recursive types.
10041
10042 2003-04-07  Havoc Pennington  <hp@pobox.com>
10043
10044         * bus/driver.c (bus_driver_handle_acquire_service): return an
10045         error if you try to acquire a service that starts with ':'
10046
10047 2003-04-07  Havoc Pennington  <hp@redhat.com>
10048
10049         * doc/dbus-specification.sgml: require that base service names
10050         start with ':' and that the base service is created/deleted
10051         as first and last things a connection does on the bus
10052
10053         * bus/dispatch.c (check_existent_service_activation): lots more
10054         work on the activation test; it doesn't fully pass yet...
10055
10056         * test/test-service.c (main): fix so we don't memleak the
10057         connection to the message bus
10058         (filter_func): accept a message asking us to exit
10059
10060 2003-04-06  Havoc Pennington  <hp@pobox.com>
10061
10062         * qt/Makefile.am (dbusinclude_HEADERS): install dbus-qt.h,
10063         from Colin Walters
10064
10065         * configure.in: fixes to Qt detection from Colin Walters
10066
10067         * doc/Makefile.am: Only remove generated docbook dirs if they
10068         exist, from Colin Walters
10069
10070         * dbus/dbus-bus.c: change how we set well-known connections to
10071         NULL, so that it works if a single connection is stored in
10072         two well-known array slots.
10073
10074         * test/Makefile.am: remove a lot of stuff that isn't immediately
10075         useful, it's in CVS history if we want it.
10076
10077         * test/test-service.c: use dbus-mainloop instead of that
10078         watch.[hc] crack
10079
10080 2003-04-06  Havoc Pennington  <hp@pobox.com>
10081
10082         * dbus/Makefile.am: split lists of sources into stuff that goes in
10083         the library, util functions that go in the lib and are also used
10084         elsewhere, and util functions that are used in tests/daemon but
10085         don't go in the lib.
10086
10087         * dbus/dbus-mainloop.h, dbus/dbus-mainloop.c: move bus/loop.[hc]
10088         here so it can be used in test binaries also
10089
10090 2003-04-06  Havoc Pennington  <hp@pobox.com>
10091
10092         * dbus/dbus-sysdeps.c (_dbus_become_daemon): write the pidfile
10093         here in the parent process, so we can return an error if it
10094         fails. Also, move some of the code into the child so the parent
10095         is less hosed if we fail midway through.
10096
10097         * bus/bus.c (bus_context_new): move pidfile detection further up
10098         in the function, before we start overwriting sockets and such.
10099
10100         * bus/messagebus.in: adjust this a bit, not sure if it will work.
10101
10102         * configure.in: add --with-system-pid-file and --with-system-socket
10103
10104 2003-04-06  Colin Walters  <walters@verbum.org>
10105
10106         * configure.in (DBUS_SYSTEM_PID_FILE): New variable.
10107
10108         * bus/system.conf.in: Declare a pidfile.
10109
10110         * bus/bus.c (bus_context_new): Test for an existing pid file, and
10111         create one (if appropriate).
10112
10113         * bus/config-parser.c (enum ElementType) [ELEMENT_PIDFILE]: New.
10114         (struct BusConfigParser) [pidfile]: New.
10115         (element_type_to_name, merge_included, start_busconfig_child)
10116         (bus_config_parser_end_element, bus_config_parser_content): Handle it.
10117         (bus_config_parser_unref): Free it.
10118         (bus_config_parser_get_pidfile): New function.
10119
10120         * bus/config-parser.h (_dbus_write_pid_file): Prototype.
10121
10122         * dbus/dbus-errors.h (DBUS_ERROR_PIDFILE_EXISTS): New error.
10123
10124         * dbus/dbus-sysdeps.c (_dbus_write_pid_file): New function.
10125
10126         * dbus/dbus-sysdeps.h: Prototype it.
10127
10128 2003-04-06  Havoc Pennington  <hp@pobox.com>
10129
10130         * bus/bus.c (bus_context_new): print the address in here, rather
10131         than in main(), because we need to do it before forking the daemon
10132
10133         * bus/dispatch.c (send_service_nonexistent_error): set the sender
10134         on the service nonexistent error
10135
10136         * bus/driver.c (bus_driver_handle_acquire_service): set the
10137         sender on the AcquireService reply
10138
10139         * test/data/valid-config-files/debug-allow-all.conf.in: Make test
10140         server also listen on a UNIX socket so services can connect to it.
10141
10142 2003-04-06  Havoc Pennington  <hp@pobox.com>
10143
10144         * dbus/dbus-threads.c: Redo how the fake debug mutexes are done
10145         so it detects deadlocks and also we actually init threads when
10146         debugging.
10147
10148 2003-04-06  Havoc Pennington  <hp@pobox.com>
10149
10150         * dbus/dbus-server-unix.c (_dbus_server_new_for_domain_socket):
10151         save the domain socket name, and unlink it when we disconnect the
10152         server. Means that at least when we exit normally, we won't leave
10153         a bunch of junk in /tmp
10154
10155         * dbus/dbus-transport-unix.c
10156         (_dbus_transport_new_for_domain_socket): code cleanup (nicer
10157         memory management). (I was making a real change here but then
10158         didn't)
10159
10160 2003-04-06  Havoc Pennington  <hp@pobox.com>
10161
10162         * bus/bus.c (bus_context_new): fix wrong handling of
10163         server_data_slot_unref() in the error case.
10164
10165         * dbus/dbus-internals.h (_dbus_assert): change so it passes
10166         "(condition) != 0" to _dbus_real_assert so that
10167         "_dbus_assert (pointer)" doesn't cause a warning
10168
10169         * bus/main.c (main): accept --print-address option to print out
10170         the message bus address
10171
10172         * dbus/dbus-sysdeps.c (_dbus_generate_random_ascii): export this
10173
10174         * dbus/dbus-transport.c (_dbus_transport_open): special error for
10175         "tmpdir" option to unix: address on client side
10176
10177         * dbus/dbus-server.c (dbus_server_listen): handle "tmpdir" option
10178         to unix: address
10179
10180         * configure.in (TEST_SOCKET_DIR): locate a temporary directory
10181         we can use to create sockets in the test suite.
10182
10183         * bus/main.c (signal_handler): on SIGTERM, exit the daemon
10184         cleanly. To be used for testing.
10185
10186         * dbus/dbus-spawn.c (babysit): use _dbus_set_signal_handler()
10187
10188         * dbus/dbus-sysdeps.c (_dbus_set_signal_handler): new
10189
10190         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
10191         handle trying to call this when there's no servers active
10192
10193 2003-04-05  Havoc Pennington  <hp@pobox.com>
10194
10195         * NEWS: update
10196
10197         * configure.in: 0.8
10198
10199 2003-04-05  Havoc Pennington  <hp@pobox.com>
10200
10201         * bus/bus.c (setup_server): fix this so dbus-daemon-1 doesn't
10202         crash on startup. Need to get "try starting the daemon"
10203         in the test suite I guess. ;-)
10204
10205         * dbus/dbus-server.h, dbus/dbus-server.c: remove the stuff that
10206         tracked the number of open connections; it's better done in
10207         application-specific code as you want it to span all servers etc.
10208
10209 2003-04-05  Havoc Pennington  <hp@pobox.com>
10210
10211         * bus/Makefile.am (install-data-hook): add missing DESTDIR,
10212         patch from Colin Walters
10213
10214 2003-04-05  Havoc Pennington  <hp@pobox.com>
10215
10216         * doc/config-file.txt (Elements): fix docs of <auth> to reflect
10217         reality; in fact multiple mechanisms are allowed.
10218
10219         * dbus/dbus-internals.c (_dbus_real_assert)
10220         (_dbus_real_assert_not_reached): move guts of _dbus_assert() and
10221         _dbus_assert_not_reached() into functions, so that they don't show
10222         up in basic block counts for test coverage, and don't use up as
10223         much disk space. Does mean slower execution speed though, so
10224         assumes --disable-asserts is the normal production case.
10225
10226 2003-04-05  Havoc Pennington  <hp@pobox.com>
10227
10228         * test/Makefile.am (dist-hook): also dist *.in files
10229
10230         * NEWS: update
10231
10232         * configure.in: 0.7
10233
10234 2003-04-05  Havoc Pennington  <hp@pobox.com>
10235
10236         * dbus/dbus-string.c: docs warning
10237
10238         * dbus/dbus-spawn.c: missing docs
10239
10240         * dbus/dbus-memory.c (struct ShutdownClosure): missing docs
10241
10242 2003-04-05  Havoc Pennington  <hp@pobox.com>
10243
10244         * bus/loop.c (bus_loop_iterate): fix the timeout code, using
10245         magic from GLib
10246
10247         * dbus/dbus-spawn.c (_dbus_babysitter_unref): set sitter_pid
10248         to -1 once we've reaped the babysitter
10249         (_dbus_babysitter_handle_watch): do as much work as we can, not
10250         just one go of it
10251
10252         * bus/activation.c: add code using DBusBabysitter so that we
10253         handle it when a service fails to start up properly.
10254         (bus_activation_service_created): don't remove the activation
10255         entries as we go, just let them get removed when we free the pending
10256         activation. Unref reply messages after sending them.
10257
10258 2003-04-05  Havoc Pennington  <hp@pobox.com>
10259
10260         * test/decode-gcov.c (main): print per-directory stats in the report
10261
10262         * Makefile.am (coverage-report.txt): don't include test/* in gcov stats
10263
10264 2003-04-05  Havoc Pennington  <hp@pobox.com>
10265
10266         * Makefile.am (coverage-report.txt): add target "coverage-report.txt"
10267
10268         * test/decode-gcov.c: hack up a little program to suck data
10269         out of gcov files. Yes this is sort of silly.
10270
10271         * configure.in: define something in config.h and do an
10272         AM_CONDITIONAL when gcov is enabled
10273
10274 2003-04-04  Havoc Pennington  <hp@redhat.com>
10275
10276         * dbus/dbus-spawn.c, dbus/dbus-spawn.h: Change dbus_spawn to
10277         return a "babysitter" object that is used to monitor the status of
10278         the spawned process and reap it when required.
10279
10280         * test/test-segfault.c, test/test-exit.c,
10281         test/test-sleep-forever.c: binaries that do various lame things,
10282         used in the test suite.
10283
10284         * dbus/dbus-sysdeps.c: kill _dbus_errno_to_string()
10285
10286 2003-04-03  Havoc Pennington  <hp@pobox.com>
10287
10288         * dbus/dbus-spawn.c: Move dbus-spawn into a separate file
10289         in preparation for modifying it, dbus-sysdeps is getting
10290         a bit unmanageable.
10291
10292 2003-04-03  Havoc Pennington  <hp@redhat.com>
10293
10294         * bus/loop.h, bus/loop.c: make the mainloop an object so we can
10295         have multiple ones
10296
10297         * bus/*.[hc]: adapt to mainloop change
10298
10299 2003-04-03  Havoc Pennington  <hp@redhat.com>
10300
10301         * bus/activation.c (load_directory): fix up memleaks
10302         (bus_activation_entry_free): free the entry
10303
10304         * dbus/dbus-bus.c (dbus_bus_acquire_service): return an error if
10305         we get one from the message bus; fix memleaks.
10306
10307         * dbus/dbus-message.c (dbus_set_error_from_message): new function
10308
10309 2003-04-03  Havoc Pennington  <hp@pobox.com>
10310
10311         * bus/config-parser.c (bus_config_parser_unref): free
10312         list of mechanisms, bug discovered by test suite enhancements
10313         (putting system.conf and session.conf into suite)
10314
10315         * test/Makefile.am, test/test-service.c: add placeholder for a
10316         test service that we'll activate as part of test suite. Doesn't
10317         do anything yet.
10318
10319         * dbus/dbus-sysdeps.c (_dbus_setenv): support unsetenv by
10320         setting NULL value, and use system malloc not dbus_malloc()
10321         when we have unavoidable memleakage.
10322
10323         * dbus/dbus-bus.c (dbus_bus_get): fix bug where bus type of 0
10324         didn't work, and support DBUS_BUS_ACTIVATION.
10325
10326         * bus/activation.c (child_setup): pass our well-known bus type to
10327         the child
10328
10329         * bus/config-parser.c: support <type> to specify well-known type
10330
10331         * doc/dbus-specification.sgml: document the env variables to
10332         locate well-known buses and find service activator
10333
10334 2003-04-02  Havoc Pennington  <hp@redhat.com>
10335
10336         * test/Makefile.am (all-local): add a rule to copy tests to
10337         builddir, so we can have generated tests. Use this to remove the
10338         silly hack for testing system.conf and session.conf. Will use this
10339         shortly to generate .service files pointing to test binaries.
10340
10341 2003-04-02  Havoc Pennington  <hp@redhat.com>
10342
10343         * dbus/dbus-string.c (set_length): fix a bug - we allocated max of
10344         current alloc and needed new length, not max of the doubled
10345         allocation and needed new length. Also, when building tests,
10346         don't do the double-allocation stuff, just realloc every time.
10347
10348 2003-04-02  Havoc Pennington  <hp@redhat.com>
10349
10350         * dbus/dbus-sysdeps.c (_dbus_file_get_contents): include filenames
10351         in error messages
10352         (_dbus_string_get_dirname): new
10353         (_dbus_sysdeps_test): new
10354         (_dbus_directory_open): include dirnames in error messages
10355
10356         * bus/config-parser.c: interpret <include> and <includedir> and
10357         <servicedir> relative to config file location if the given
10358         filename is not absolute.
10359
10360         * dbus/dbus-string.c (_dbus_string_find_byte_backward): new
10361
10362 2003-04-02  Havoc Pennington  <hp@redhat.com>
10363
10364         * bus/connection.c (bus_transaction_send_error_reply): set sender
10365         service for the error, and unref the reply on success
10366
10367         * bus/activation.c: convert to use BusTransaction so OOM can be
10368         handled correctly
10369         (bus_activation_service_created): set sender of the message
10370
10371 2003-04-01  Havoc Pennington  <hp@redhat.com>
10372
10373         * bus/config-parser.c, bus/bus.c: implement <servicedir> and
10374         <includedir> (at least mostly)
10375
10376         * dbus/dbus-sysdeps.c (_dbus_change_identity): set the group ID
10377         first, then the user ID
10378
10379 2003-04-01  Havoc Pennington  <hp@pobox.com>
10380
10381         * dbus/dbus-server.c (dbus_server_set_auth_mechanisms): new
10382         function
10383
10384         * dbus/dbus-auth.c (_dbus_auth_set_mechanisms): new
10385
10386         * dbus/dbus-internals.c (_dbus_dup_string_array): new function
10387
10388         * dbus/dbus-sysdeps.c (_dbus_listen_unix_socket): chmod the
10389         socket 0777, and unlink any existing socket.
10390
10391         * bus/bus.c (bus_context_new): change our UID/GID and fork if
10392         the configuration file so specifies; set up auth mechanism
10393         restrictions
10394
10395         * bus/config-parser.c (bus_config_parser_content): add support
10396         for <fork> option and fill in code for <auth>
10397
10398         * bus/system.conf.in: add <fork/> to default configuration,
10399         and limit auth mechanisms to EXTERNAL
10400
10401         * doc/config-file.txt (Elements): add <fork>
10402
10403         * dbus/dbus-sysdeps.c (_dbus_become_daemon): new function
10404         (_dbus_change_identity): new function
10405
10406 2003-03-31  Havoc Pennington  <hp@redhat.com>
10407
10408         * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket)
10409         (_dbus_listen_unix_socket): fix off-by-one error in null
10410         termination spotted by Nalin
10411
10412 2003-03-31  Havoc Pennington  <hp@redhat.com>
10413
10414         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): allow setting
10415         DBUS_TEST_HOMEDIR when tests are enabled, so we can test without
10416         having a real home directory available.
10417
10418 2003-03-31  Havoc Pennington  <hp@redhat.com>
10419
10420         * bus/Makefile.am (install-data-hook): create /var/run/dbus
10421
10422         * bus/messagebus.in: add init script for Red Hat /etc/init.d
10423
10424         * configure.in: add support for specifying a style of init script
10425         to install
10426
10427 2003-03-31  Havoc Pennington  <hp@redhat.com>
10428
10429         Fix some annoying DBusString API and fix all affected code.
10430
10431         * dbus/dbus-string.c (_dbus_string_init): get rid of annoying
10432         max_length argument
10433         (_dbus_string_get_data): change to return string instead of using
10434         an out param
10435         (_dbus_string_get_const_data): ditto
10436         (_dbus_string_get_data_len): ditto
10437         (_dbus_string_get_const_data_len): ditto
10438
10439 2003-03-31  Havoc Pennington  <hp@redhat.com>
10440
10441         * bus/main.c (main): fix up the command line arguments to be nicer
10442
10443 2003-03-31  Havoc Pennington  <hp@redhat.com>
10444
10445         * dbus/Makefile.am (INCLUDES): use EXPANDED_LOCALSTATEDIR to
10446         define DBUS_SYSTEM_BUS_PATH as we want to compile in the same
10447         final location that lands in the config file
10448
10449         * bus/config-loader-expat.c (bus_config_load): fix type of
10450         XML_Parser variable
10451
10452         * doc/TODO: remove TODO item for dbus_bus_get()
10453
10454         * dbus/dbus-bus.c (bus_data_free): add missing lock/unlock
10455
10456 2003-03-31  Havoc Pennington  <hp@pobox.com>
10457
10458         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_domain_socket)
10459         (_dbus_transport_new_for_tcp_socket): these didn't need the "server"
10460         argument since they are always client side
10461
10462         * dbus/dbus-server.c (dbus_server_get_address): new function
10463
10464         * bus/main.c (main): take the configuration file as an argument.
10465
10466         * test/data/valid-config-files/debug-allow-all.conf: new file to
10467         use with dispatch.c tests for example
10468
10469         * bus/test-main.c (main): require test data dir
10470
10471         * bus/bus.c (bus_context_new): change this to take a
10472         configuration file name as argument
10473
10474         * doc/config-file.txt (Elements): add <servicedir>
10475
10476         * bus/system.conf, bus/session.conf: new files
10477
10478         * dbus/dbus-bus.c (dbus_bus_get): look for system bus on
10479         well-known socket if none set
10480
10481         * configure.in: create system.conf and session.conf
10482
10483 2003-03-30  Havoc Pennington  <hp@pobox.com>
10484
10485         * bus/config-parser.c: hacking
10486
10487         * dbus/dbus-memory.c: don't use DBusList for the list of stuff
10488         to shut down, since it could cause weirdness with the DBusList
10489         lock
10490
10491         * dbus/dbus-list.c (_dbus_list_test): add tests for the
10492         link-oriented stack routines
10493         (alloc_link): free the mempool if the first alloc from it fails
10494
10495         * dbus/dbus-mempool.c (struct DBusMemBlock): fix alignment issue
10496
10497         * dbus/dbus-string.c (UNICODE_VALID): sync new version of this
10498         from GLib
10499         (_dbus_string_skip_white): new
10500
10501         * doc/config-file.txt (Elements): add <includedir>
10502
10503 2003-03-28  Havoc Pennington  <hp@pobox.com>
10504
10505         * dbus/dbus-string.c (_dbus_string_copy_data_len)
10506         (_dbus_string_copy_data): new functions
10507
10508 2003-03-28  Anders Carlsson  <andersca@codefactory.se>
10509
10510         * dbus/dbus-bus.c: (bus_data_free), (dbus_bus_get):
10511         * dbus/dbus-bus.h:
10512         Add dbus_bus_get.
10513
10514         * dbus/dbus-memory.c:
10515         Fix a doc comment.
10516
10517 2003-03-28  Havoc Pennington  <hp@pobox.com>
10518
10519         * bus/test.c (bus_test_flush_bus): remove the sleep from here,
10520         I think it may have just been superstition. Not sure.
10521
10522         * dbus/dbus-string.c (_dbus_string_base64_decode): catch some OOM
10523         failures that were not being handled.
10524
10525         * dbus/dbus-auth.c (process_auth): fix a memleak in OOM handling
10526
10527         * dbus/dbus-memory.c: add ability to set number of mallocs in a
10528         row that will fail on out-of-memory.
10529
10530         * dbus/dbus-internals.c (_dbus_test_oom_handling): convenience
10531         function for testing out-of-memory handling.
10532
10533         * bus/config-loader-expat.c (memsuite): don't wrap the dbus
10534         allocation functions, they do map exactly to the expat ones.
10535
10536 2003-03-27  Havoc Pennington  <hp@redhat.com>
10537
10538         * bus/config-loader-libxml.c (bus_config_load): add another error
10539         check
10540
10541 2003-03-26  Anders Carlsson  <andersca@codefactory.se>
10542
10543         * doc/TODO:
10544         Add note about automatic service activation.
10545
10546         * doc/dbus-specification.sgml:
10547         Rename the specification and clarify a few things.
10548
10549 2003-03-26  Anders Carlsson  <andersca@codefactory.se>
10550
10551         * Doxyfile.in:
10552         * dbus/dbus-address.c:
10553         * dbus/dbus-dict.c:
10554         * dbus/dbus-marshal.c:
10555         * dbus/dbus-server-debug-pipe.c:
10556         * dbus/dbus-transport-unix.c:
10557         Fix documentation warnings.
10558
10559 2003-03-26  Havoc Pennington  <hp@pobox.com>
10560
10561         * bus/test-main.c, dbus/dbus-test.c (main): check memleaks
10562         after every test so it's quick and easy to see which leaked, and
10563         so we test multiple dbus_shutdown() calls
10564
10565         * configure.in: change configure.in XML stuff to also support
10566         expat
10567
10568         * config-loader-libxml.c: some hacking
10569
10570         * config-loader-expat.c: some hacking
10571
10572         * config-parser.c: some hacking, plus tests
10573
10574 2003-03-25  Havoc Pennington  <hp@redhat.com>
10575
10576         * throughout - add more _DBUS_ASSERT_ERROR_IS_CLEAR
10577
10578         * configure.in: add --with-xml option to specify XML library,
10579         right now only libxml is supported.
10580
10581         * bus/config-loader-libxml.c, config-parser.c: sync some minor
10582         nonworking code between home and work, still just stubs
10583
10584 2003-03-24  Havoc Pennington  <hp@redhat.com>
10585
10586         * dbus/dbus-sysdeps.c (_dbus_set_fd_nonblocking): move to this
10587         file
10588
10589         * dbus/dbus-errors.c (dbus_set_error, dbus_set_error_const): allow
10590         NULL argument for "message" if the error is a well-known one,
10591         fill in a generic message in this case.
10592
10593         * dbus/dbus-errors.h (DBusResultCode): Kill DBusResultCode in
10594         favor of DBusError
10595
10596         * bus/test.c (bus_test_flush_bus): add
10597
10598         * bus/policy.c (bus_policy_test): test code stub
10599
10600 2003-03-24  Havoc Pennington  <hp@pobox.com>
10601
10602         * bus/connection.c (bus_connections_setup_connection): set up
10603         the "can this user connect" function, but it always returns
10604         TRUE until we have a config file parser so we can have a config
10605         file that allows connections.
10606
10607 2003-03-23  Havoc Pennington  <hp@pobox.com>
10608
10609         * dbus/dbus-threads.c (dbus_mutex_new, dbus_condvar_new): with
10610         DBUS_BUILD_TESTS, actually alloc/free a block of memory for
10611         the mutex, so we can check for proper memory management
10612         and OOM handling.
10613
10614         * dbus/dbus-dataslot.c: remove the mutex from
10615         DBusDataSlotAllocator and lock it manually when using it,
10616         to simplify fitting it into the global slots framework.
10617
10618         * dbus/dbus-threads.c (init_static_locks): rework how we're
10619         handling global locks so they are easily shut down.
10620
10621         * bus/policy.c (bus_policy_append_rule): fix
10622
10623         * bus/test-main.c (main): check for memleaks
10624
10625         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): make
10626         test suite check for memleaks
10627
10628         * dbus/dbus-memory.c: add support in test mode for tracking
10629         number of outstanding blocks
10630
10631 2003-03-23  Havoc Pennington  <hp@pobox.com>
10632
10633         * bus/policy.c, bus/bus.c, bus/connection.c: implement allow/deny
10634         policies code
10635
10636         * dbus/dbus-hash.h: add ULONG hash keys
10637
10638         * dbus/dbus-sysdeps.c (_dbus_get_groups): new
10639         (_dbus_get_group_id): new function
10640
10641 2003-03-20  Havoc Pennington  <hp@redhat.com>
10642
10643         * dbus/dbus-connection.c (dbus_connection_set_unix_user_function):
10644         new function
10645         (dbus_connection_get_unix_user): new function
10646
10647 2003-03-20  Havoc Pennington  <hp@pobox.com>
10648
10649         * bus/connection.c (bus_connection_send_oom_error): assert that
10650         message has a sender
10651         (connection_execute_transaction): ditto
10652         (bus_connection_preallocate_oom_error): fix to set the sender, and
10653         set recipient to the destination service, not the bus driver
10654
10655         * bus/policy.c: hacking
10656
10657         * dbus/dbus-message.c (dbus_message_service_is): new function
10658         (dbus_message_sender_is): new
10659
10660 2003-03-19  Havoc Pennington  <hp@redhat.com>
10661
10662         * bus/policy.c: start sketching code for policy restrictions on
10663         what connections can do.
10664
10665 2003-03-18  Havoc Pennington  <hp@redhat.com>
10666
10667         * doc/TODO: some notes on high-level todo items. Little nitpick
10668         stuff is all in @todo, so no need to add it here.
10669
10670         * doc/config-file.txt: some notes on how config file might look
10671
10672 2003-03-18  Anders Carlsson  <andersca@codefactory.se>
10673
10674         * configure.in: 0.6
10675
10676         * NEWS: Update.
10677
10678 2003-03-17  Havoc Pennington  <hp@redhat.com>
10679
10680         * dbus/dbus-internals.h: add gcc attributes so that
10681         our printf-style functions warn on bad arguments to
10682         format
10683
10684         * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): fix printf
10685         format bug
10686
10687         * dbus/dbus-message.c (_dbus_message_loader_queue_messages): fix
10688         printf format bug
10689
10690 2003-03-17  Havoc Pennington  <hp@redhat.com>
10691
10692         * bus/test-main.c (main): make it print something as it runs
10693         so make check doesn't look stuck
10694
10695         * doc/negotiation.txt, doc/dbus-sasl-profile.txt: remove
10696         from CVS, now obsolete
10697
10698 2003-03-17  Anders Carlsson  <andersca@codefactory.se>
10699
10700         * bus/dispatch.c: (bus_dispatch):
10701         Refetch the service name since it may have been reallocated
10702         when dbus_message_set_sender was called.
10703
10704         * dbus/dbus-sysdeps.c: (_dbus_accept):
10705         Add address and address length variables and use them to stop
10706         valgrind from complaining.
10707
10708 2003-03-17  Havoc Pennington  <hp@pobox.com>
10709
10710         All tests pass, no memleaks, no valgrind complaints.
10711
10712         * bus/test.c: refcount handler_slot
10713
10714         * bus/connection.c (bus_connections_new): refcount
10715         connection_data_slot
10716
10717         * dbus/dbus-auth-script.c (_dbus_auth_script_run): delete unused
10718         bytes so that auth scripts pass.
10719
10720         * bus/dispatch.c: init message_handler_slot so it gets allocated
10721         properly
10722
10723         * bus/dispatch.c (message_handler_slot_ref): fix memleak
10724
10725         * dbus/dbus-server-debug-pipe.c (_dbus_server_debug_pipe_new):
10726         dealloc server_pipe_hash when no longer used for benefit of
10727         leak checking
10728
10729         * dbus/dbus-auth.c (process_command): memleak fix
10730
10731         * bus/dispatch.c (check_hello_message): memleak fix
10732
10733 2003-03-16  Havoc Pennington  <hp@pobox.com>
10734
10735         * dbus/dbus-bus.c (ensure_bus_data): fix double-unref of the data slot
10736
10737 2003-03-17  Anders Carlsson  <andersca@codefactory.se>
10738
10739         * bus/activation.c (bus_activation_activate_service): Append
10740         the pending activation entry to the list of pending activations.
10741
10742 2003-03-16  Havoc Pennington  <hp@pobox.com>
10743
10744         * bus/dispatch.c (bus_dispatch_test): remove double-unrefs of
10745         connections
10746
10747         * dbus/dbus-address.c (create_entry): fix OOM handling when
10748         failing to alloc entry->method
10749
10750 2003-03-16  Havoc Pennington  <hp@pobox.com>
10751
10752         * dbus/dbus-watch.c (_dbus_watch_new): handle failure to malloc
10753         the watch
10754
10755         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
10756         add some missing dbus_set_result
10757
10758         * bus/dispatch.c (bus_dispatch_add_connection): handle failure to
10759         alloc the DBusMessageHandler
10760
10761         * dbus/dbus-transport.c (_dbus_transport_disconnect): don't ref
10762         the transport here, since we call this from the finalizer; it
10763         resulted in a double-finalize.
10764
10765         * dbus/dbus-transport.c (_dbus_transport_disconnect): fix a bug
10766         where we tried to use transport->connection that was NULL,
10767         happened when transport was disconnected early on due to OOM
10768
10769         * bus/*.c: adapt to handle OOM for watches/timeouts
10770
10771         * dbus/dbus-transport-unix.c: port to handle OOM during
10772         watch handling
10773
10774         * dbus/dbus-auth.c (_dbus_auth_get_unused_bytes): return a
10775         reference to unused bytes instead of a copy
10776
10777         * dbus/dbus-server.c (dbus_server_handle_watch): return FALSE for
10778         out of memory
10779
10780         * dbus/dbus-connection.c (dbus_connection_handle_watch): return
10781         FALSE on OOM
10782
10783         * dbus/dbus-timeout.c (dbus_timeout_handle): return FALSE for out
10784         of memory
10785
10786 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
10787
10788         * doc/dbus-specification.sgml:
10789         Document reply message for ActivateService.
10790
10791 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
10792
10793         * bus/activation.c: (bus_pending_activation_entry_free),
10794         (bus_pending_activation_free), (bus_activation_new),
10795         (bus_activation_unref), (bus_activation_service_created),
10796         (bus_activation_activate_service):
10797         * bus/activation.h:
10798         * bus/bus.c: (bus_context_new):
10799         * bus/desktop-file.c: (new_section):
10800         * bus/driver.c: (bus_driver_send_service_deleted),
10801         (bus_driver_handle_activate_service):
10802         * bus/services.c: (bus_registry_new), (bus_registry_ensure):
10803         * bus/services.h:
10804         * dbus/dbus-connection.c:
10805         (dbus_connection_send_with_reply_and_block):
10806         * dbus/dbus-message.c: (dbus_message_append_args_valist):
10807         * dbus/dbus-protocol.h:
10808         Make activation work better. Now pending activations will be queued
10809         and the daemon won't try to activate services that are already registered.
10810
10811 2003-03-16  Havoc Pennington  <hp@pobox.com>
10812
10813         * dbus/dbus-bus.c (ensure_bus_data): handle failure to set
10814         connection data
10815
10816         * dbus/dbus-memory.c (_dbus_initialize_malloc_debug): support
10817         DBUS_MALLOC_BACKTRACES to print trace when failing an alloc
10818
10819 2003-03-16  Havoc Pennington  <hp@pobox.com>
10820
10821         * dbus/dbus-string.c (_dbus_string_validate_utf8): oops, unbreak
10822         this. always run the test suite before commit...
10823
10824         * bus/*: adapt to DBusConnection API changes
10825
10826         * glib/dbus-gmain.c: adapt to DBusConnection API changes,
10827         requires renaming stuff to avoid dbus_connection_dispatch name
10828         conflict.
10829
10830         * dbus/dbus-transport.c (_dbus_transport_queue_messages): new
10831         function
10832
10833         * dbus/dbus-message.c (_dbus_message_loader_queue_messages):
10834         separate from _dbus_message_loader_return_buffer()
10835
10836         * dbus/dbus-connection.c (dbus_connection_get_n_messages): remove
10837         this, because it's now always broken to use; the number of
10838         messages in queue vs. the number still buffered by the message
10839         loader is undefined/meaningless. Should use
10840         dbus_connection_get_dispatch_state().
10841         (dbus_connection_dispatch): rename from
10842         dbus_connection_dispatch_message
10843
10844 2003-03-16  Havoc Pennington  <hp@pobox.com>
10845
10846         * dbus/dbus-string.c (_dbus_string_validate_utf8): copy in a real
10847         implementation
10848
10849 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
10850
10851         * dbus/dbus-connection.c:
10852         (dbus_connection_send_with_reply_and_block):
10853         Decrease connection->n_incoming when removing an entry
10854         from the list.
10855         * dbus/dbus-dict.c: (dbus_dict_entry_free),
10856         (dbus_dict_set_boolean_array), (dbus_dict_set_int32_array),
10857         (dbus_dict_set_uint32_array), (dbus_dict_set_double_array),
10858         (dbus_dict_set_byte_array), (dbus_dict_set_string_array),
10859         (dbus_dict_get_boolean_array), (dbus_dict_get_double_array),
10860         (dbus_dict_get_byte_array):
10861         Handle NULL arrays and strings. Also add support for byte arrays.
10862
10863         * dbus/dbus-marshal.c: (_dbus_marshal_byte_array),
10864         (_dbus_marshal_dict), (_dbus_demarshal_byte_array),
10865         (_dbus_demarshal_int32_array), (_dbus_demarshal_uint32_array),
10866         (_dbus_demarshal_double_array), (_dbus_demarshal_string_array),
10867         (_dbus_demarshal_dict), (demarshal_and_validate_len),
10868         (_dbus_marshal_validate_arg), (_dbus_marshal_test):
10869         * dbus/dbus-marshal.h:
10870         Add support for marshalling and demarshalling empty arrays and strings.
10871
10872         * dbus/dbus-message.c: (dbus_message_append_args_valist),
10873         (dbus_message_append_string_array),
10874         (dbus_message_iter_get_boolean),
10875         (dbus_message_iter_get_boolean_array),
10876         (dbus_message_iter_get_int32_array),
10877         (dbus_message_iter_get_uint32_array),
10878         (dbus_message_iter_get_double_array),
10879         (dbus_message_iter_get_byte_array),
10880         (dbus_message_iter_get_string_array), (dbus_message_iter_get_dict),
10881         (check_message_handling):
10882         Add support for getting empty arrays and dicts.
10883
10884         * dbus/dbus-string.c: (_dbus_string_validate_utf8):
10885         Don't do any validation at all for now, that's better than just checking
10886         for ASCII.
10887
10888         * test/data/valid-messages/emptiness.message:
10889         New test message with lots of empty arrays.
10890
10891 2003-03-16  Havoc Pennington  <hp@pobox.com>
10892
10893         * dbus/dbus-connection.c
10894         (_dbus_connection_queue_received_message_link): new function that
10895         can't fail due to OOM
10896
10897         * dbus/dbus-message.c (_dbus_message_loader_pop_message_link):
10898         new function pops a message together with a list link
10899         containing it.
10900
10901         * dbus/dbus-transport-unix.c (queue_messages): use new link-based
10902         message queuing functions to avoid needing to alloc memory
10903
10904 2003-03-16  Havoc Pennington  <hp@pobox.com>
10905
10906         Oops - test code was only testing failure of around 30 of the
10907         mallocs in the test path, but it turns out there are 500+
10908         mallocs. I believe this was due to misguided linking setup such
10909         that there was one copy of dbus_malloc etc. in the daemon and one
10910         in the shared lib, and only daemon mallocs were tested. In any
10911         case, the test case now tests all 500+ mallocs, and doesn't pass
10912         yet, though there are lots of fixes in this patch.
10913
10914         * dbus/dbus-connection.c (dbus_connection_dispatch_message): fix
10915         this so that it doesn't need to allocate memory, since it
10916         has no way of indicating failure due to OOM (and would be
10917         annoying if it did).
10918
10919         * dbus/dbus-list.c (_dbus_list_pop_first_link): new function
10920
10921         * bus/Makefile.am: rearrange to create two self-contained
10922         libraries, to avoid having libraries with overlapping symbols.
10923         that was resulting in weirdness, e.g. I'm pretty sure there
10924         were two copies of global static variables.
10925
10926         * dbus/dbus-internals.c: move the malloc debug stuff to
10927         dbus-memory.c
10928
10929         * dbus/dbus-list.c (free_link): free list mempool if it becomes
10930         empty.
10931
10932         * dbus/dbus-memory.c (_dbus_disable_mem_pools): new function
10933
10934         * dbus/dbus-address.c (dbus_parse_address): free list nodes
10935         on failure.
10936
10937         * bus/dispatch.c (bus_dispatch_add_connection): free
10938         message_handler_slot when no longer using it, so
10939         memory leak checkers are happy for the test suite.
10940
10941         * dbus/dbus-server-debug-pipe.c (debug_finalize): free server name
10942
10943         * bus/bus.c (new_connection_callback): disconnect in here if
10944         bus_connections_setup_connection fails.
10945
10946         * bus/connection.c (bus_connections_unref): fix to free the
10947         connections
10948         (bus_connections_setup_connection): if this fails, don't
10949         disconnect the connection, just be sure there are no side
10950         effects.
10951
10952         * dbus/dbus-string.c (undo_alignment): unbreak this
10953
10954         * dbus/dbus-auth.c (_dbus_auth_unref): free some stuff we were
10955         leaking
10956         (_dbus_auth_new): fix the order in which we free strings
10957         on OOM failure
10958
10959         * bus/connection.c (bus_connection_disconnected): fix to
10960         not send ServiceDeleted multiple times in case of memory
10961         allocation failure
10962
10963         * dbus/dbus-bus.c (dbus_bus_get_base_service): new function to
10964         get the base service name
10965         (dbus_bus_register_client): don't return base service name,
10966         instead store it on the DBusConnection and have an accessor
10967         function for it.
10968         (dbus_bus_register_client): rename dbus_bus_register()
10969
10970         * bus/dispatch.c (check_hello_message): verify that other
10971         connections on the bus also got the correct results, not
10972         just the one sending hello
10973
10974 2003-03-15  Havoc Pennington  <hp@pobox.com>
10975
10976         Make it pass the Hello handling test including all OOM codepaths.
10977         Now to do other messages...
10978
10979         * bus/services.c (bus_service_remove_owner): fix crash when
10980         removing owner from an empty list of owners
10981         (bus_registry_ensure): don't leave service in the list of
10982         a connection's owned services if we fail to put the service
10983         in the hash table.
10984
10985         * bus/connection.c (bus_connection_preallocate_oom_error): set
10986         error flag on the OOM error.
10987
10988         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
10989         handle _dbus_transport_set_connection failure
10990
10991         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd): modify
10992         to create watches up front and simply enable/disable them as
10993         needed.
10994         (unix_connection_set): this can now fail on OOM
10995
10996         * dbus/dbus-timeout.c, dbus/dbus-watch.c: add concept
10997         of enabling/disabling a watch or timeout.
10998
10999         * bus/loop.c (bus_loop_iterate): don't touch disabled
11000         watches/timeouts
11001
11002         * glib/dbus-gmain.c: adapt to enable/disable watches and timeouts
11003
11004 2003-03-15  Havoc Pennington  <hp@pobox.com>
11005
11006         * bus/dispatch.c (bus_dispatch_test): OK, now finally actually
11007         write useful test code, after all that futzing around ;-)
11008
11009         Test does not yet pass because we can't handle OOM in
11010         _dbus_transport_messages_pending (basically,
11011         dbus_connection_preallocate_send() does not prealloc the write
11012         watch). To fix this, I think we need to add new stuff to
11013         set_watch_functions, namely a SetEnabled function so we can alloc
11014         the watch earlier, then enable it later.
11015
11016         * dbus/Makefile.am (libdbus_convenience_la_SOURCES): move
11017         dbus-memory.c to the convenience lib
11018
11019         * bus/test.c: rename some static functions to keep them clearly
11020         distinct from stuff in connection.c. Handle client disconnection.
11021
11022 2003-03-14  Havoc Pennington  <hp@pobox.com>
11023
11024         * bus/dispatch.c (bus_dispatch_test): do test using debug-pipe
11025         transport, tests more of the real codepath. Set up clients
11026         with bus_setup_debug_client.
11027
11028         * bus/test.c (bus_setup_debug_client): function to set up debug
11029         "clients" on the main loop
11030
11031         * dbus/dbus-transport.c (_dbus_transport_open): add debug-pipe
11032         support
11033
11034         * dbus/dbus-server.c (dbus_server_listen): add debug-pipe
11035         server type
11036
11037         * dbus/dbus-server-debug.c: support a debug server based on pipes
11038
11039         * dbus/dbus-sysdeps.c (_dbus_full_duplex_pipe): new function
11040         (_dbus_close): new function
11041
11042         * configure.in: check for socketpair
11043
11044 2003-03-14  Havoc Pennington  <hp@redhat.com>
11045
11046         * dbus/dbus-memory.c: add a "detect buffer overwrites on free"
11047         cheesy hack
11048
11049         * dbus/dbus-transport-debug.c: rework this a good bit to be
11050         less complicated. hopefully still works.
11051
11052         * dbus/dbus-server-debug.c (handle_new_client): remove timeout
11053         manually
11054
11055         * glib/dbus-gmain.c (timeout_handler): don't remove timeout
11056         after running it
11057
11058         * dbus/dbus-message.c (dbus_message_copy): rename from
11059         dbus_message_new_from_message, fix it up to copy
11060         all the message fields, add test case
11061
11062         * bus/dispatch.c (bus_dispatch_test): add some more test code,
11063         not quite passing yet
11064
11065 2003-03-14  Havoc Pennington  <hp@pobox.com>
11066
11067         * bus/loop.c (bus_loop_iterate): add this so we can "run loop
11068         until no work remains" in test code. (the large diff here
11069         is just code movement, no actual changes)
11070
11071         * dbus/dbus-server-debug.c (DEFAULT_INTERVAL): change interval to
11072         1, no point waiting around for test code.
11073         (_dbus_server_debug_accept_transport): unref the timeout
11074         after adding it (right?)
11075
11076         * dbus/dbus-transport-debug.c (DEFAULT_INTERVAL): ditto
11077
11078 2003-03-13  Havoc Pennington  <hp@redhat.com>
11079
11080         * dbus/dbus-timeout.c (_dbus_timeout_list_set_functions): handle
11081         out of memory
11082
11083         * dbus/dbus-watch.c (_dbus_watch_list_set_functions): handle out
11084         of memory
11085
11086         * dbus/dbus-connection.h: Make AddWatchFunction and
11087         AddTimeoutFunction return a bool so they can fail on out-of-memory
11088
11089         * bus/bus.c (bus_context_new): set up timeout handlers
11090
11091         * bus/connection.c (bus_connections_setup_connection): set up
11092         timeout handlers
11093
11094         * glib/dbus-gmain.c: adapt to the fact that set_functions stuff
11095         can fail
11096
11097         * bus/bus.c (bus_context_new): adapt to changes
11098
11099         * bus/connection.c: adapt to changes
11100
11101         * test/watch.c: adapt to DBusWatch changes
11102
11103         * bus/dispatch.c (bus_dispatch_test): started adding this but
11104         didn't finish
11105
11106 2003-03-14  Anders Carlsson  <andersca@codefactory.se>
11107
11108         * bus/dispatch.c (send_service_nonexistent_error): Fix typo.
11109
11110 2003-03-13  Havoc Pennington  <hp@pobox.com>
11111
11112         * bus/test.c, bus/test.h, bus/Makefile.am, bus/test-main.c:
11113         set up a test framework as for the library
11114
11115 2003-03-12  Havoc Pennington  <hp@pobox.com>
11116
11117         Throughout: purge global variables, introduce BusActivation,
11118         BusConnections, BusRegistry, etc. objects instead.
11119
11120         * bus/bus.h, bus/bus.c: introduce BusContext as a global
11121         message bus object
11122
11123         * test/Makefile.am (TEST_BINARIES): disable bus-test for now,
11124         going to redo this a bit differently I think
11125
11126 2003-03-12  Havoc Pennington  <hp@redhat.com>
11127
11128         Mega-patch that gets the message bus daemon initially handling
11129         out-of-memory. Work still needed. Also lots of random
11130         moving stuff to DBusError instead of ResultCode.
11131
11132         * dbus/dbus-list.c (_dbus_list_length_is_one): new function
11133
11134         * dbus/dbus-connection.c
11135         (dbus_connection_send_with_reply_and_block): use DBusError
11136
11137         * dbus/dbus-bus.c: adapt to API changes, make it use DBusError not
11138         DBusResultCode
11139
11140         * dbus/dbus-connection.c (dbus_connection_send): drop the result
11141         code here, as the only failure possible is OOM.
11142
11143         * bus/connection.c (bus_connection_disconnect):
11144         rename bus_connection_disconnected as it's a notification only
11145
11146         * bus/driver.c (bus_driver_handle_acquire_service): don't free
11147         "name" on get_args failure, should be done by get_args;
11148         don't disconnect client for bad args, just return an error.
11149         (bus_driver_handle_service_exists): ditto
11150
11151         * bus/services.c (bus_services_list): NULL-terminate returned array
11152
11153         * bus/driver.c (bus_driver_send_service_lost)
11154         (bus_driver_send_service_acquired): send messages from driver to a
11155         specific client to the client's unique name, not to the broadcast
11156         service.
11157
11158         * dbus/dbus-message.c (decode_header_data): reject messages that
11159         contain no name field
11160         (_dbus_message_get_client_serial): rename to
11161         dbus_message_get_serial and make public
11162         (_dbus_message_set_serial): rename from set_client_serial
11163         (_dbus_message_set_reply_serial): make public
11164         (_dbus_message_get_reply_serial): make public
11165
11166         * bus/connection.c (bus_connection_foreach): allow stopping
11167         iteration by returning FALSE from foreach function.
11168
11169         * dbus/dbus-connection.c (dbus_connection_send_preallocated)
11170         (dbus_connection_free_preallocated_send)
11171         (dbus_connection_preallocate_send): new API for sending a message
11172         without possibility of malloc failure.
11173         (dbus_connection_send_message): rename to just
11174         dbus_connection_send (and same for whole function family)
11175
11176         * dbus/dbus-errors.c (dbus_error_free): make this reinit the error
11177
11178         * dbus/dbus-sysdeps.c (_dbus_exit): new function
11179
11180         * bus/activation.c: handle/return errors
11181
11182         * dbus/dbus-errors.h: add more DBUS_ERROR #define
11183
11184         * dbus/dbus-sysdeps.c (_dbus_directory_open) (_dbus_file_get_contents)
11185         (_dbus_directory_get_next_file): use DBusError instead of DBusResultCode
11186         (_dbus_result_from_errno): move to this file
11187
11188 2003-03-10  Anders Carlsson  <andersca@codefactory.se>
11189
11190         * dbus/dbus-marshal.c:
11191         (_dbus_marshal_set_string):
11192         Take a length argument so we can marshal the correct string
11193         length.
11194
11195         (_dbus_marshal_dict), (_dbus_demarshal_dict),
11196         (_dbus_marshal_get_arg_end_pos), (_dbus_marshal_validate_arg),
11197         (_dbus_marshal_test):
11198         * dbus/dbus-marshal.h:
11199         Add support for marshalling and demarshalling dicts.
11200
11201         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
11202         Add support for TYPE DICT.
11203
11204         * dbus/dbus-message.c: (set_string_field):
11205         Adjust header padding.
11206
11207         (dbus_message_append_args_valist), (dbus_message_append_dict),
11208         (dbus_message_get_args_valist), (dbus_message_iter_get_arg_type),
11209         (dbus_message_iter_get_dict), (_dbus_message_loader_return_buffer),
11210         (check_message_handling), (check_have_valid_message):
11211         * dbus/dbus-message.h:
11212         Add functions for setting and getting dicts.
11213
11214         * dbus/dbus-protocol.h:
11215         Add DBUS_TYPE_DICT.
11216
11217         * dbus/dbus.h:
11218         Add dbus-dict.h
11219
11220         * doc/dbus-specification.sgml:
11221         Add information about how dicts are marshalled.
11222
11223         * test/data/invalid-messages/dict-with-nil-value.message:
11224         * test/data/invalid-messages/too-short-dict.message:
11225         * test/data/valid-messages/dict-simple.message:
11226         * test/data/valid-messages/dict.message:
11227         Add sample messages containing dicts.
11228
11229 2003-03-08  Anders Carlsson  <andersca@codefactory.se>
11230
11231         * dbus/dbus-dict.h: Add DBUS_END_DECLS.
11232
11233 2003-03-07  Anders Carlsson  <andersca@codefactory.se>
11234
11235         * dbus/Makefile.am:
11236         * dbus/dbus-dict.c: (dbus_dict_entry_free), (dbus_dict_new),
11237         (dbus_dict_get_keys), (insert_entry), (dbus_dict_set_boolean),
11238         (dbus_dict_set_int32), (dbus_dict_set_uint32),
11239         (dbus_dict_set_double), (dbus_dict_set_string),
11240         (dbus_dict_set_boolean_array), (dbus_dict_set_int32_array),
11241         (dbus_dict_set_uint32_array), (dbus_dict_set_double_array),
11242         (dbus_dict_set_string_array), (_dbus_dict_test):
11243         * dbus/dbus-dict.h:
11244         Fix according to comments from Havoc.
11245
11246 2003-03-06  Michael Meeks  <michael@server.home>
11247
11248         * configure.in: if we don't have kde-config, disable have_qt.
11249
11250 2003-03-07  Anders Carlsson  <andersca@codefactory.se>
11251
11252         * dbus/Makefile.am:
11253         Add dbus-dict.[ch]
11254
11255         * dbus/dbus-dict.c: (dbus_dict_entry_free), (dbus_dict_new),
11256         (dbus_dict_ref), (dbus_dict_unref), (dbus_dict_contains),
11257         (dbus_dict_remove), (dbus_dict_get_value_type),
11258         (dbus_dict_get_keys), (dbus_dict_put_boolean),
11259         (dbus_dict_put_int32), (dbus_dict_put_uint32),
11260         (dbus_dict_put_double), (dbus_dict_put_string),
11261         (dbus_dict_put_boolean_array), (dbus_dict_put_int32_array),
11262         (dbus_dict_put_uint32_array), (dbus_dict_put_double_array),
11263         (dbus_dict_put_string_array), (dbus_dict_get_boolean),
11264         (dbus_dict_get_int32), (dbus_dict_get_uint32),
11265         (dbus_dict_get_double), (dbus_dict_get_string),
11266         (dbus_dict_get_boolean_array), (dbus_dict_get_int32_array),
11267         (dbus_dict_get_uint32_array), (dbus_dict_get_double_array),
11268         (dbus_dict_get_string_array), (_dbus_dict_test):
11269         * dbus/dbus-dict.h:
11270         Add DBusDict implementation
11271
11272         * dbus/dbus-test.c: (dbus_internal_do_not_use_run_tests):
11273         * dbus/dbus-test.h:
11274         Add _dbus_dict_test
11275
11276 2003-03-04  Havoc Pennington  <hp@pobox.com>
11277
11278         * test/data/auth/*: adapt to changes
11279
11280         * dbus/dbus-auth-script.c (_dbus_auth_script_run): add
11281         USERID_BASE64 and change USERNAME_BASE64 to put in username not
11282         userid
11283
11284         * dbus/dbus-keyring.c (_dbus_keyring_validate_context): prevent
11285         more stuff from being in a context name, to make the protocol
11286         simpler to deal with
11287
11288         * dbus/dbus-errors.c (dbus_error_has_name): new function
11289         (dbus_error_is_set): new function
11290
11291         * dbus/dbus-auth.c: replace DBUS_STUPID_TEST_MECH auth
11292         with DBUS_COOKIE_SHA1, implement DBUS_COOKIE_SHA1
11293
11294         * dbus/dbus-connection.c (dbus_connection_flush): also read
11295         messages during a flush operation
11296
11297         * dbus/Makefile.am: remove dbus-md5 since it isn't currently used.
11298
11299 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
11300
11301         * configure.in: Check for gethostbyname on Solaris.
11302
11303         * dbus/dbus-transport.c: (_dbus_transport_open):
11304         Remove duplicate "tcp" entry.
11305
11306         * doc/dbus-specification.sgml:
11307         Clarify some things.
11308
11309 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
11310
11311         * dbus/dbus-auth.c: (send_rejected), (process_test_subdir):
11312         * dbus/dbus-keyring.c: (_dbus_keyring_new_homedir),
11313         (_dbus_keyring_test):
11314         * dbus/dbus-md5.c: (_dbus_md5_compute):
11315         * dbus/dbus-sha.c: (_dbus_sha_compute):
11316         Plug memory leaks.
11317
11318 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
11319
11320         * README: Add some things.
11321
11322 2003-03-04  Anders Carlsson  <andersca@codefactory.se>
11323
11324         * dbus/dbus-message.c (dbus_message_append_args_valist): Add a break;
11325         after case DBUS_TYPE_BOOELAN.
11326
11327 2003-03-02  Havoc Pennington  <hp@pobox.com>
11328
11329         * test/break-loader.c (randomly_set_extreme_ints): add test that
11330         sets really huge and small integers
11331
11332         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): add check
11333         that length of boolean array fits in the string, and that
11334         string has room for boolean value in single-bool case.
11335
11336         * dbus/dbus-message-builder.c (_dbus_message_data_load): add
11337         optional value to "ALIGN" command which is what to fill the
11338         alignment with.
11339
11340         * test/data/valid-messages/no-padding.message: add regression
11341         test for the message padding problem
11342
11343 2003-03-02  Havoc Pennington  <hp@pobox.com>
11344
11345         * dbus/dbus-message.c (decode_header_data): fix to always init
11346         message_padding, from Benjamin Dauvergne
11347
11348 2003-03-02  Havoc Pennington  <hp@pobox.com>
11349
11350         * configure.in: 0.5
11351
11352         * NEWS: Update.
11353
11354 2003-03-01  Joe Shaw  <joe@assbarn.com>
11355
11356         * configure.in: Check for "struct cmsgcred" and try to access its
11357         members for BSD-like unices.
11358
11359         * dbus/dbus-sysdeps.c (read_credentials_byte): Fold this back into
11360         _dbus_read_credentials_unix_socket().
11361         (_dbus_read_credentials_unix_socket): Use recvmsg() instead of
11362         read() for reading the credential byte off the unix socket.  Use
11363         struct cmsgcred on systems that support it.
11364
11365 2003-02-27  Alexander Larsson  <alexl@redhat.com>
11366
11367         * glib/Makefile.am:
11368         * configure.in:
11369         Make gthreads-2.0 dependency optional. Don't build thread test if
11370         its not found.
11371
11372 2003-02-27  Havoc Pennington  <hp@pobox.com>
11373
11374         * dbus/dbus-connection.c
11375         (dbus_connection_send_message_with_reply_and_block): fix doh!
11376         doh! doh! bug that resulted in never removing a reply from the
11377         queue, no wonder we called get_reply_serial so much ;-)
11378
11379         * dbus/dbus-message.c (struct DBusMessage): cache reply serial
11380         and client serial instead of demarshaling them every time
11381
11382 2003-02-27  Havoc Pennington  <hp@pobox.com>
11383
11384         * dbus/dbus-marshal.c (_dbus_demarshal_int32): rewrite to be much
11385         more inlined, using dbus-string-private.h, speeds things up
11386         substantially
11387
11388         * dbus/dbus-string.c (_dbus_string_free): apply align offset
11389         when freeing the string
11390         (_dbus_string_steal_data): fix for align offset
11391         (undo_alignment): new function
11392
11393 2003-02-26  Havoc Pennington  <hp@redhat.com>
11394
11395         All kinds of audit fixes from Owen, plus initial attempt to
11396         handle unaligned memory returned from malloc.
11397
11398         * dbus/dbus-string.c (_dbus_string_init): clamp max length to
11399         leave room for align_offset and nul byte
11400         (fixup_alignment): function to track an align_offset and
11401         ensure real->str is aligned
11402         (DBUS_GENERIC_STRING_PREAMBLE): len must be less than allocated,
11403         to allow a nul byte plus align offset
11404         (_dbus_string_lock): fix overflow issue
11405         (_dbus_string_init_const_len): add assertions on sanity of len,
11406         assign allocated to be ALLOCATION_PADDING larger than len
11407         (set_length): fixup the overflow handling
11408         (_dbus_string_get_data_len): fix overflow in assertion
11409         (open_gap): detect overflow in size of gap to be opened
11410         (_dbus_string_lengthen): add overflow check
11411         (_dbus_string_align_length): fix overflow with _DBUS_ALIGN_VALUE
11412         (_dbus_string_append): add overflow check
11413         (_dbus_string_append_unichar): overflow
11414         (_dbus_string_delete): fix overflow in assertion
11415         (_dbus_string_copy_len): overflow in assertion
11416         (_dbus_string_replace_len): overflows in assertions
11417         (_dbus_string_find): change to implement in terms of
11418         _dbus_string_find_to
11419         (_dbus_string_find_to): assorted fixage
11420         (_dbus_string_equal_c_str): assert c_str != NULL,
11421         fix logic so the function works
11422         (_dbus_string_ends_with_c_str): fix overflow thingy
11423         (_dbus_string_base64_encode): overflow fix
11424         (_dbus_string_validate_ascii): overflow
11425         (_dbus_string_validate_nul): overflow
11426
11427 2003-02-26  Havoc Pennington  <hp@redhat.com>
11428
11429         * dbus/dbus-marshal.c (_dbus_marshal_test): fix to work with DISABLE_ASSERTS
11430
11431 2003-02-26  Alexander Larsson  <alexl@redhat.com>
11432
11433         * configure.in:
11434         Set DBUS_GLIB_THREADS_LIBS for apps using gthread-2.0
11435
11436         * dbus/dbus-connection.c:
11437         * dbus/dbus-connection.h:
11438         Fix _dbus_connection_acquire_io_path and _dbus_connection_acquire_dispatch.
11439         Add dbus_connection_set_wakeup_main_function and use it when queueing
11440         incoming and outgoing messages.
11441
11442
11443         * dbus/dbus-dataslot.c:
11444         Threadsafe usage of DBusDataSlotAllocator
11445
11446         * dbus/dbus-message.c: (dbus_message_get_args_iter):
11447         dbus_new can fail.
11448
11449         * dbus/dbus-server-unix.c:
11450         Add todo comment
11451
11452         * glib/dbus-gmain.c:
11453         Implement the new wakeup functions for glib.
11454
11455         * glib/Makefile.am:
11456         * glib/test-thread-client.c:
11457         * glib/test-thread-server.c:
11458         * glib/test-thread.h:
11459         Initial cut at some thread test code. Not really done yet.
11460
11461 2003-02-26  Havoc Pennington  <hp@pobox.com>
11462
11463         * dbus/dbus-connection.c
11464         (dbus_connection_send_message_with_reply_and_block): fix crash
11465         where we ref'd the outgoing message instead of the returned reply
11466
11467         * dbus/dbus-transport-unix.c (do_authentication): check read watch
11468         at the end of this function, so if we didn't need to read for
11469         authentication, we reinstall it for receiving messages
11470
11471         * dbus/dbus-message.c (dbus_message_new_reply): allow replies to
11472         a NULL sender for peer-to-peer case
11473
11474         * dbus/dbus-transport-unix.c (check_read_watch): handle
11475         !authenticated case correctly
11476
11477         * glib/dbus-gmain.c: add support for DBusServer
11478
11479         * dbus/dbus-server.c: add data slot support
11480
11481         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): check
11482         return values and handle errors
11483
11484         * dbus/dbus-dataslot.c: factor out the data slot stuff from
11485         DBusConnection
11486
11487         * Doxyfile.in (INPUT): add glib subdir
11488
11489         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): rename
11490         setup_with_g_main instead of hookup_with_g_main; write docs
11491
11492 2003-02-24  Anders Carlsson  <andersca@codefactory.se>
11493
11494         * dbus/dbus-marshal.c: (_dbus_marshal_validate_arg):
11495         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
11496         * dbus/dbus-message.c: (dbus_message_append_boolean),
11497         (dbus_message_append_boolean_array),
11498         (dbus_message_get_args_valist), (_dbus_message_test):
11499         * dbus/dbus-message.h:
11500         * doc/dbus-specification.sgml:
11501         Various fixes as pointed out by Havoc.
11502
11503         * test/data/invalid-messages/bad-boolean-array.message:
11504         * test/data/invalid-messages/bad-boolean.message:
11505         Add invalid boolean value test cases.
11506
11507 2003-02-24  Anders Carlsson  <andersca@codefactory.se>
11508
11509         * dbus/dbus-internals.c: (_dbus_type_to_string):
11510         * dbus/dbus-marshal.c: (_dbus_marshal_get_arg_end_pos),
11511         (_dbus_marshal_validate_arg):
11512         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
11513         * dbus/dbus-message.c: (dbus_message_append_args_valist),
11514         (dbus_message_append_boolean), (dbus_message_append_boolean_array),
11515         (dbus_message_get_args_valist), (dbus_message_iter_get_boolean),
11516         (dbus_message_iter_get_int32), (dbus_message_iter_get_uint32),
11517         (dbus_message_iter_get_double),
11518         (dbus_message_iter_get_boolean_array), (message_iter_test):
11519         * dbus/dbus-message.h:
11520         * dbus/dbus-protocol.h:
11521         * doc/dbus-specification.sgml:
11522         * test/data/valid-messages/lots-of-arguments.message:
11523         Add support for boolean and boolean array types.
11524
11525 2003-02-23  Havoc Pennington  <hp@pobox.com>
11526
11527         * dbus/dbus-keyring.c: finish most of this implementation and
11528         simple unit test
11529
11530         * dbus/dbus-errors.c (dbus_set_error_const, dbus_set_error): make
11531         these barf if the error isn't cleared to NULL
11532
11533         * dbus/dbus-sysdeps.c (_dbus_delete_file): set error on failure
11534         (_dbus_create_directory): new function
11535
11536         * dbus/dbus-errors.c (dbus_set_error): fix warning
11537
11538         * dbus/dbus-string.c (_dbus_string_hex_encode): new function
11539         (_dbus_string_hex_decode): new function
11540         (test_hex_roundtrip): test code
11541
11542         * dbus/dbus-sha.c (_dbus_sha_compute): use dbus_string_hex_encode
11543
11544         * dbus/dbus-md5.c (_dbus_md5_compute): use dbus_string_hex_encode
11545
11546         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): make this use
11547         the save-to-temp/rename trick to atomically write the new file
11548         (_dbus_string_parse_uint): new function
11549
11550 2003-02-22  Havoc Pennington  <hp@pobox.com>
11551
11552         * test/Makefile.am (dist-hook): fix dist for test/data/sha-1
11553
11554 2003-02-22  Havoc Pennington  <hp@pobox.com>
11555
11556         * dbus/dbus-message.c (dbus_message_iter_get_string_array):
11557         (dbus_message_iter_get_byte_array): Fix up doxygen warnings
11558
11559         * dbus/dbus-sha.c: add implementation of SHA-1 algorithm
11560
11561         * dbus/test/data/sha-1: add US government test suite for SHA-1
11562
11563 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
11564
11565         * dbus/dbus-marshal.c: (_dbus_demarshal_string_array):
11566         Make string arrays NULL-terminated.
11567
11568         * dbus/dbus-memory.c: (dbus_free_string_array):
11569         * dbus/dbus-memory.h:
11570         New function for freeing NULL-terminated string arrays.
11571
11572         * dbus/dbus-message-builder.c: (append_quoted_string),
11573         (_dbus_message_data_load):
11574         Add support for array types.
11575
11576         * dbus/dbus-message.c: (check_message_handling):
11577         Add more types as test cases.
11578
11579         * dbus/dbus-sysdeps.c: (_dbus_string_parse_int),
11580         (_dbus_string_parse_double):
11581         Add the start offset to the end offset.
11582
11583         * test/data/valid-messages/lots-of-arguments.message:
11584         New test message with lots of arguments.
11585
11586 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
11587
11588         * dbus/dbus-message.c: (dbus_message_append_nil),
11589         (dbus_message_append_int32), (dbus_message_append_uint32),
11590         (dbus_message_append_double), (dbus_message_append_string),
11591         (dbus_message_append_int32_array),
11592         (dbus_message_append_uint32_array),
11593         (dbus_message_append_double_array),
11594         (dbus_message_append_byte_array),
11595         (dbus_message_append_string_array):
11596         Fix all out-of-memory handling in these functions.
11597
11598 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
11599
11600         * dbus/dbus-message.c: (dbus_message_append_nil):
11601         Fix a silly.
11602
11603 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
11604
11605         * dbus/dbus-message.c: (dbus_message_append_args_valist),
11606         (dbus_message_append_nil), (dbus_message_append_int32_array),
11607         (dbus_message_append_uint32_array),
11608         (dbus_message_append_double_array),
11609         (dbus_message_append_byte_array),
11610         (dbus_message_append_string_array), (dbus_message_get_args_valist),
11611         (dbus_message_iter_get_int32_array),
11612         (dbus_message_iter_get_uint32_array),
11613         (dbus_message_iter_get_double_array),
11614         (dbus_message_iter_get_byte_array),
11615         (dbus_message_iter_get_string_array):
11616
11617         * dbus/dbus-message.h:
11618         Add functions for appending and getting arrays.
11619
11620 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
11621
11622         * dbus/dbus-mempool.c (_dbus_mem_pool_new): Make the
11623         element size at least 8 bytes, fixes mempool tests on
11624         64-bit machines.
11625
11626 2003-02-20  Alexander Larsson  <alexl@redhat.com>
11627
11628         * dbus/dbus-transport-unix.c (unix_do_iteration):
11629         Unlock the connection mutex during a blocking select call.
11630         Add todo about how we need a way to wake up the select.
11631
11632         * dbus/dbus-connection-internal.h:
11633         * dbus/dbus-connection.c:
11634         Add _dbus_connection_lock and _dbus_connection_unlock.
11635
11636 2003-02-19  Havoc Pennington  <hp@pobox.com>
11637
11638         * Doxyfile.in (PREDEFINED): put DOXYGEN_SHOULD_SKIP_THIS in
11639         Doxyfile.in, not Doxyfile
11640
11641         * dbus/dbus-keyring.c: do some hacking on this
11642
11643         * dbus/dbus-sysdeps.c (_dbus_delete_file): new
11644
11645         * dbus/dbus-errors.c (dbus_set_error_const): do not call
11646         dbus_error_init
11647         (dbus_set_error): remove dbus_error_init, check for message ==
11648         NULL *before* we sprintf into it, and add @todo about including
11649         system headers in this file
11650
11651         * dbus/dbus-sysdeps.c (_dbus_create_file_exclusively): new
11652
11653         * dbus/dbus-errors.h (DBUS_ERROR_FAILED): add
11654
11655         * dbus/dbus-sysdeps.c (get_user_info): break this function out to
11656         get various bits of user information based on either username
11657         or user ID
11658         (_dbus_homedir_from_username): new function
11659
11660 2003-02-19  Anders Carlsson  <andersca@codefactory.se>
11661
11662         * configure.in:
11663         Add check for nonposix getpwnam_r
11664
11665         * dbus/dbus-mempool.c: (_dbus_mem_pool_new):
11666         Align the pool element size to a sizeof (void *) boundary.
11667
11668         * dbus/dbus-sysdeps.c: (_dbus_setenv), (_dbus_connect_unix_socket),
11669         (_dbus_listen_unix_socket), (_dbus_credentials_from_username):
11670         General Solaris fixes.
11671
11672         * test/data/valid-messages/simplest-manual.message:
11673         Explicitly state that we want little-endian packing.
11674
11675 2003-02-19  Mikael Hallendal  <micke@codefactory.se>
11676
11677         * dbus/dbus-server.c (dbus_server_listen): Support tcp: addresses.
11678
11679         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_tcp_socket):
11680         Added to create a transport connecting using a tcp/ip socket.
11681
11682         * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): Added to connect
11683         to a tcp socket at given host and port.
11684         (_dbus_listen_tcp_socket): added to listen on tcp socket for given
11685         hostname and port.
11686
11687         * dbus/dbus-server.c (dbus_server_listen): Support tcp: addresses.
11688
11689         * dbus/dbus-server-unix.c (_dbus_server_new_for_tcp_socket):
11690         Added to create a server listening on a TCP/IP socket.
11691
11692 2003-02-19  Havoc Pennington  <hp@pobox.com>
11693
11694         Throughout: mop up all the Doxygen warnings and undocumented
11695         stuff.
11696
11697         * dbus/dbus-sysdeps.c (do_exec): do not use execvp, we don't want
11698         to search any paths.
11699
11700         * dbus/dbus-threads.c: move global mutex initializers to
11701         dbus-internals.h, multiple prototypes was confusing doxygen
11702         besides being kind of ugly
11703
11704         * Doxyfile (PREDEFINED): have Doxygen define
11705         DOXYGEN_SHOULD_SKIP_THIS so we can exclude things from
11706         docs with #ifndef DOXYGEN_SHOULD_SKIP_THIS
11707         (do not abuse the feature! it's for stuff like the autogenerated
11708         macros in dbus-md5.c, not just for things you don't feel like
11709         documenting...)
11710
11711 2003-02-18  Havoc Pennington  <hp@pobox.com>
11712
11713         * dbus/dbus-string.c (_dbus_string_zero): new function
11714
11715         * dbus/dbus-md5.c: include MD5 implementation by L. Peter Deutsch,
11716         wrap it in some dbus-friendly API
11717
11718         * dbus/dbus-types.h: add 16-bit types
11719
11720 2003-02-18  Joe Shaw  <joe@assbarn.com>
11721
11722         * dbus/dbus-auth.c (handle_server_data_stupid_test_mech): Just get
11723         credentials from our currently running process.
11724         (get_word): Fix a buglet where we were copying the entire length
11725         instead of relative to our position.
11726
11727         * dbus/dbus-hash.c (_dbus_hash_test): Don't try to allocate the
11728         keys on the stack... it's 640k of data.
11729
11730         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): Always
11731         read the credentials byte off the socket, even if we don't have
11732         SO_PEERCRED.
11733         (_dbus_poll): Implement poll() using select() for systems which
11734         don't have it.
11735
11736         * glib/test-dbus-glib.c (main): Print out an error if no
11737         parameters are given.
11738
11739         * test/data/auth/fallback.auth-script: Added.  Tests that a client
11740         can fallback to a secondary auth mechanism if the first fails.
11741
11742 2003-02-18  Havoc Pennington  <hp@pobox.com>
11743
11744         * AUTHORS: add Alex
11745
11746 2003-02-17  Havoc Pennington  <hp@pobox.com>
11747
11748         * doc/dbus-specification.sgml: lots of cosmetic
11749         cleanups/rearrangement, add assorted FIXME, change DBUS_ADDRESS
11750         env variable to DBUS_BUS_ADDRESS, s/client/application/,
11751         s/server/bus/ (except in authentication section). Add a section
11752         "Message Bus Message Routing"
11753
11754 2003-02-17  Anders Carlsson  <andersca@codefactory.se.>
11755
11756         Release 0.4
11757
11758         * NEWS: Update
11759
11760 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
11761
11762         * doc/dbus-specification.sgml:
11763         Specification updates.
11764
11765 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
11766
11767         * bus/activation.c: (bus_activation_init), (child_setup),
11768         (bus_activation_activate_service):
11769         * bus/activation.h:
11770         * bus/main.c: (main):
11771         Set DBUS_ADDRESS environment variable.
11772
11773         * dbus/dbus-errors.c: (dbus_set_error):
11774         Don't use va_copy since that's a C99 feature.
11775
11776         * dbus/dbus-sysdeps.c: (_dbus_setenv), (do_exec),
11777         (_dbus_spawn_async):
11778         * dbus/dbus-sysdeps.h:
11779         Add child_setup_func to _dbus_spawn_async.
11780
11781         * doc/dbus-specification.sgml:
11782         Update specification.
11783
11784         * test/spawn-test.c: (setup_func), (main):
11785         Fix test.
11786
11787 2003-02-17  Alexander Larsson  <alexl@redhat.com>
11788
11789         * dbus/dbus-connection.c (_dbus_connection_handler_destroyed_locked):
11790         Added todo.
11791
11792 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
11793
11794         * doc/.cvsignore:
11795         * doc/Makefile.am:
11796         * doc/dbus-test-plan.sgml:
11797         Add test plan document.
11798
11799         * test/Makefile.am:
11800         Fix distcheck.
11801
11802 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
11803
11804         * dbus/dbus-message.c: (decode_header_data),
11805         (_dbus_message_loader_return_buffer):
11806         Set the header padding amount when loading a message.
11807
11808 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
11809
11810         * bus/dispatch.c: (send_one_message):
11811         Only send broadcast messages to registered connections.
11812
11813         * dbus/dbus-message.c: (dbus_message_name_is):
11814         * dbus/dbus-message.h:
11815         New convenience function.
11816
11817         * dbus/dbus-transport-debug.c: (do_reading):
11818         Only dispatch one message per run.
11819
11820         * test/Makefile.am:
11821         * test/bus-test.c: (new_connection_callback), (die),
11822         (test_hello_client1_handler), (test_hello_client2_handler),
11823         (test_hello_replies), (main):
11824
11825         * test/bus-test-loop.[ch]:
11826         Add these.
11827
11828 2003-02-16  Havoc Pennington  <hp@pobox.com>
11829
11830         * dbus/dbus-connection.c (dbus_connection_dispatch_message): fix
11831         backward conditional
11832
11833 2003-02-16  Alexander Larsson  <alexl@redhat.com>
11834
11835         * dbus/dbus-connection.c:
11836         Implement sent_message_with_reply. (with_reply_and block is still
11837         busted).
11838         Made dispatch_message not lose message if OOM.
11839
11840         * dbus/dbus-errors.h:
11841         Add NoReply error (for reply timeouts).
11842
11843 2003-02-16  Alexander Larsson  <alexl@redhat.com>
11844
11845         * dbus/dbus-hash.c (_dbus_hash_table_unref):
11846         Actually free keys and values when destroying hashtable.
11847
11848 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
11849
11850         * dbus/dbus-auth.c: (client_try_next_mechanism):
11851         Plug a leak.
11852
11853         * dbus/dbus-threads.c: (dbus_condvar_wait_timeout):
11854         Return TRUE if there's no thread implementation around.
11855
11856         * glib/dbus-gmain.c: (free_source),
11857         (dbus_connection_hookup_with_g_main):
11858         Make sure to remove the GSource when the connection is finalized.
11859
11860 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
11861
11862         * bus/dispatch.c: (bus_dispatch_message_handler):
11863         * dbus/dbus-errors.h:
11864         Return an error if someone tries to send a message to a service
11865         that doesn't exist.
11866
11867 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
11868
11869         * bus/activation.c: (load_directory), (bus_activation_init),
11870         (bus_activation_activate_service):
11871         * bus/activation.h:
11872         * bus/driver.c:
11873         (bus_driver_handle_activate_service), (bus_driver_handle_message):
11874         More work on the activation handling.
11875
11876         * dbus/dbus-errors.h:
11877         Add some error messages
11878
11879         * dbus/dbus-message.c: (dbus_message_new_error_reply):
11880         * dbus/dbus-message.h:
11881         New function that creates an error message.
11882
11883         * dbus/dbus-protocol.h:
11884         Add ACTIVATE_SERVER message.
11885
11886         * dbus/dbus-server-unix.c: (unix_handle_watch),
11887         (_dbus_server_new_for_domain_socket):
11888         Call _dbus_fd_set_close_on_exec.
11889
11890         * dbus/dbus-sysdeps.c: (make_pipe), (do_exec),
11891         (_dbus_spawn_async), (_dbus_disable_sigpipe),
11892         (_dbus_fd_set_close_on_exec):
11893         * dbus/dbus-sysdeps.h:
11894         Add _dbus_fd_set_close_on exec function. Also add function that checks
11895         that all open fds are set to close-on-exec and warns otherwise.
11896
11897         * dbus/dbus-transport-unix.c:
11898         (_dbus_transport_new_for_domain_socket):
11899         Call _dbus_fd_set_close_on_exec.
11900
11901 2003-02-16  Havoc Pennington  <hp@pobox.com>
11902
11903         * dbus/dbus-connection.c (dbus_connection_set_change_sigpipe):
11904         allow people to avoid setting SIGPIPE to SIG_IGN
11905         (_dbus_connection_new_for_transport): disable SIGPIPE unless
11906         we've been asked not to
11907
11908 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
11909
11910         * dbus/dbus-list.c: (_dbus_list_append_link),
11911         (_dbus_list_prepend_link):
11912         * dbus/dbus-memory.c: (dbus_malloc), (dbus_malloc0),
11913         (dbus_realloc):
11914         Warning fixes.
11915
11916 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
11917
11918         * bus/Makefile.am:
11919         * bus/activation.c: (bus_activation_entry_free),
11920         (add_desktop_file_entry), (load_directory), (bus_activation_init):
11921         * bus/activation.h:
11922         * bus/main.c: (main):
11923         Add simple activation support, doesn't work yet though.
11924
11925 2003-02-15   Zack Rusin  <zack@kde.org>
11926
11927         * qt/dbus-qthread.cpp:  small casting fix
11928
11929 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
11930
11931         * dbus/dbus-errors.c: (dbus_set_error):
11932         * dbus/dbus-errors.h:
11933         Add a few errors and make dbus_set_error void.
11934
11935         * dbus/dbus-sysdeps.c:
11936         (_dbus_errno_to_string), (close_and_invalidate), (make_pipe),
11937         (write_err_and_exit), (read_ints), (do_exec), (_dbus_spawn_async):
11938         * dbus/dbus-sysdeps.h:
11939         Add _dbus_spawn_async.
11940
11941         * test/spawn-test.c: (main):
11942         Test for _dbus_spawn_async.
11943
11944 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
11945
11946         * dbus/dbus-internals.h:
11947         Fix build without tests.
11948
11949         * dbus/dbus-list.c: (alloc_link):
11950         Fix a segfault when a malloc fails.
11951
11952         * dbus/dbus-memory.c: (initialize_malloc_debug), (dbus_malloc),
11953         (dbus_malloc0), (dbus_realloc):
11954         Add support for malloc debugging.
11955
11956 2003-02-15  Alexander Larsson  <alexl@redhat.com>
11957
11958         * dbus/dbus-threads.c:
11959         * dbus/dbus-threads.h:
11960         Add condvars. Remove static mutext from API.
11961         Implement static mutexes by initializing them from threads_init.
11962
11963         * glib/dbus-gthread.c:
11964         * qt/dbus-qthread.cpp:
11965         Update with the thread api changes.
11966
11967
11968         * dbus/dbus-list.c:
11969         * dbus/dbus-list.h:
11970         Turn StaticMutex into normal mutex + init function.
11971         Export new functions _dbus_list_alloc_link, _dbus_list_free_link,
11972         _dbus_list_append_link, _dbus_list_prepend_link
11973
11974
11975         * dbus/dbus-sysdeps.c:
11976         * dbus/dbus-sysdeps.h:
11977         New type dbus_atomic_t, and new functions _dbus_atomic_inc,
11978         _dbus_atomic_dec. Only slow fallback implementation at the moment.
11979
11980         * dbus/dbus-protocol.h:
11981         Add DBUS_MESSAGE_LOCAL_DISCONNECT define
11982
11983         * dbus/dbus-message.c:
11984         Make ref/unref atomic.
11985         Fix some docs.
11986
11987         * dbus/dbus-connection-internal.h:
11988         * dbus/dbus-connection.c:
11989         * dbus/dbus-connection.h:
11990         Make threadsafe.
11991         Change _peek to _borrow,_return & _steal_borrowed.
11992         Change disconnect callback to event.
11993         Make dbus_connection_dispatch_messages reentrant.
11994
11995         * dbus/dbus-transport.c:
11996         Don't ref the connection on calls to the transport
11997         implementation.
11998
11999         * dbus/dbus-message-handler.c:
12000         Make threadsafe.
12001
12002         * glib/dbus-gmain.c:
12003         Don't use peek_message anymore
12004
12005         * test/Makefile.am:
12006         * test/debug-thread.c:
12007         * test/debug-thread.h:
12008         Simple thread implementation that asserts() on deadlocks in
12009         single-threaded code.
12010
12011         * test/bus-test.c:
12012         (main) Call debug_threads_init.
12013
12014         * test/watch.c:
12015         Use disconnect message instead of disconnect callback.
12016
12017         * bus/connection.c:
12018         * bus/connection.h:
12019         Don't call dbus_connection_set_disconnect_function. Instead export
12020         bus_connection_disconnect.
12021
12022         * bus/dispatch.c:
12023         Call bus_connection_disconnect when we get a disconnected message.
12024
12025 2003-02-15  Havoc Pennington  <hp@pobox.com>
12026
12027         * dbus/dbus-message.c (dbus_message_new): fool around with the
12028         docs
12029
12030 2003-02-14  Havoc Pennington  <hp@pobox.com>
12031
12032         * dbus/dbus-mempool.c: fail if the debug functions so indicate
12033
12034         * dbus/dbus-memory.c: fail if the debug functions indicate we
12035         should
12036
12037         * dbus/dbus-internals.c (_dbus_set_fail_alloc_counter)
12038         (_dbus_decrement_fail_alloc_counter): debug functions to
12039         simulate memory allocation failures
12040
12041 2003-02-14  Havoc Pennington  <hp@pobox.com>
12042
12043         * dbus/dbus-errors.h (struct DBusError): add a word of padding
12044         to DBusError
12045
12046 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12047
12048         * bus/driver.c: (bus_driver_handle_hello):
12049         * bus/driver.h:
12050         * bus/services.c: (bus_service_lookup):
12051         Reorder message sending so we get a more sane order.
12052
12053         * test/bus-test.c: (message_handler):
12054         Fix tyop.
12055
12056 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12057
12058         * bus/driver.c: (bus_driver_send_service_deleted),
12059         (bus_driver_send_service_created), (bus_driver_send_service_lost),
12060         (bus_driver_send_service_acquired), (bus_driver_handle_hello),
12061         (bus_driver_send_welcome_message),
12062         (bus_driver_handle_list_services),
12063         (bus_driver_handle_acquire_service),
12064         (bus_driver_handle_service_exists):
12065         * dbus/dbus-bus.c: (dbus_bus_register_client),
12066         (dbus_bus_acquire_service), (dbus_bus_service_exists):
12067         * dbus/dbus-errors.c: (dbus_result_to_string):
12068         * dbus/dbus-errors.h:
12069         * dbus/dbus-message.c: (dbus_message_append_args),
12070         (dbus_message_append_args_valist), (dbus_message_get_args),
12071         (dbus_message_get_args_valist), (dbus_message_get_args_iter),
12072         (dbus_message_iter_get_arg_type), (dbus_message_iter_get_string),
12073         (dbus_message_iter_get_byte_array),
12074         (dbus_message_iter_get_string_array), (message_iter_test),
12075         (check_message_handling), (_dbus_message_test):
12076         * dbus/dbus-message.h:
12077         * test/bus-test.c: (main):
12078         Change fields to arguments in messages, so that they won't be
12079         confused with header fields.
12080
12081         * glib/test-dbus-glib.c: (main):
12082         Remove append_fields from hello message.
12083
12084 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12085
12086         * dbus/dbus-errors.c:
12087         * dbus/dbus-message.c:
12088         * dbus/dbus-string.c:
12089         Documentation fixes.
12090
12091 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12092
12093         * glib/dbus-gmain.c: (timeout_handler), (add_timeout),
12094         (remove_timeout):
12095         Implement support for timeouts in dbus-glib.
12096
12097 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12098
12099         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
12100         * dbus/dbus-message.c: (process_test_subdir):
12101         * test/break-loader.c: (find_breaks_based_on):
12102         Plug some memory leaks.
12103
12104 2003-02-13  Richard Hult  <rhult@codefactory.se>
12105
12106         * bus/main.c: Fix build.
12107
12108         * dbus/dbus-errors.h:
12109         * dbus/dbus-errors.c: Fix copyright for Anders.
12110
12111 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12112
12113         * bus/Makefile.am:
12114         Add utils.[ch]
12115
12116         * bus/connection.c: (bus_connection_foreach):
12117         Fix a warning.
12118
12119         * bus/desktop-file.c: (grow_lines_in_section), (grow_sections),
12120         (unescape_string), (new_section), (parse_section_start),
12121         (parse_key_value), (report_error), (bus_desktop_file_load),
12122         (bus_desktop_file_get_string):
12123         * bus/desktop-file.h:
12124         Use DBusError for error reporting.
12125
12126         * bus/dispatch.c: (send_one_message),
12127         (bus_dispatch_message_handler):
12128         * bus/driver.c: (bus_driver_send_service_deleted),
12129         (bus_driver_send_service_created), (bus_driver_send_service_lost),
12130         (bus_driver_send_service_acquired), (bus_driver_handle_hello),
12131         (bus_driver_send_welcome_message),
12132         (bus_driver_handle_list_services),
12133         (bus_driver_handle_acquire_service),
12134         (bus_driver_handle_service_exists):
12135         * bus/loop.c: (bus_loop_run):
12136         * bus/main.c:
12137         Use BUS_HANDLE_OOM instead of _DBUS_HANDLE_OOM.
12138
12139         * bus/utils.c: (bus_wait_for_memory):
12140         * bus/utils.h:
12141         New files with general utility functions.
12142
12143         * dbus/dbus-internals.h:
12144         Remove _DBUS_HANDLE_OOM.
12145
12146 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12147
12148         * dbus/dbus-errors.c: (dbus_result_to_string), (dbus_error_init),
12149         (dbus_error_free), (dbus_set_error_const), (dbus_set_error):
12150         * dbus/dbus-errors.h:
12151         Add DBusError structure.
12152
12153 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12154
12155         * test/data/valid-messages/standard-acquire-service.message:
12156         * test/data/valid-messages/standard-hello.message:
12157         * test/data/valid-messages/standard-list-services.message:
12158         * test/data/valid-messages/standard-service-exists.message:
12159         Add some standard messages.
12160
12161 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12162
12163         * bus/driver.c: (bus_driver_send_welcome_message),
12164         (bus_driver_handle_list_services),
12165         (bus_driver_handle_acquire_service),
12166         (bus_driver_handle_service_exists), (bus_driver_handle_message):
12167         Update for API changes in libdbus.
12168
12169         * dbus/dbus-message.c: (dbus_message_new_reply):
12170         * dbus/dbus-message.h:
12171         Remove the name argument. The spec states that replies shouldn't
12172         have a name.
12173
12174 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12175
12176         * bus/desktop-file.c: (parse_section_start), (parse_key_value),
12177         (report_error), (bus_desktop_file_load), (lookup_section),
12178         (lookup_line), (bus_desktop_file_get_raw),
12179         (bus_desktop_file_get_string):
12180         * bus/desktop-file.h:
12181         Some fixes, and new functions for getting a key value from a section.
12182
12183 2003-02-13  Havoc Pennington  <hp@pobox.com>
12184
12185         * test/data/auth/fail-after-n-attempts.auth-script: new test
12186
12187         * dbus/dbus-auth.c (send_rejected): shutdown_mech() when we
12188         reject the client.
12189
12190 2003-02-13  Havoc Pennington  <hp@pobox.com>
12191
12192         * dbus/dbus-auth.c (handle_server_data_external_mech): args to
12193         dbus_credentials_match were backward
12194
12195         * dbus/dbus-auth-script.c (_dbus_auth_script_run): support
12196         NO_CREDENTIALS and ROOT_CREDENTIALS
12197
12198         * dbus/dbus-auth.c (_dbus_auth_do_work): move get_state() routine
12199         into here. Never process more commands after we've reached an
12200         end state; store further data as unused bytes.
12201
12202         * test/data/auth/*: add more auth tests
12203
12204         * dbus/dbus-auth-script.c (_dbus_auth_script_run): support EXPECT
12205         command to match exact string and EXPECT_UNUSED to match unused
12206         bytes
12207
12208         * test/Makefile.am (dist-hook): fix to dist all the test stuff
12209
12210 2003-02-12  Havoc Pennington  <hp@pobox.com>
12211
12212         * dbus/dbus-string.c (_dbus_string_pop_line): fix to also strip
12213         \r off of popped lines
12214
12215         * dbus/dbus-auth.c (_dbus_auth_test): write code to run auth
12216         scripts
12217
12218         * dbus/dbus-auth-script.c (_dbus_auth_script_run): when doing a
12219         SEND, append \r\n
12220
12221 2003-02-12  Havoc Pennington  <hp@pobox.com>
12222
12223         * dbus/Makefile.am: remove break-loader from the build, since it
12224         moved.
12225
12226         * configure.in: add --enable-gcov to turn on coverage profiling
12227         flags and disable optimization
12228
12229 2003-02-10  Havoc Pennington  <hp@pobox.com>
12230
12231         * dbus/dbus-auth-script.c, dbus/dbus-auth-script.h: sync
12232         initial cut at test framework for DBusAuth from laptop.
12233         Doesn't quite work yet but it compiles and I need to get
12234         it off the 266mhz laptop. ;-)
12235
12236         * dbus/dbus-server-debug.c (_dbus_server_debug_accept_transport):
12237         fix a memleak in error case
12238
12239 2003-02-12  Anders Carlsson  <andersca@codefactory.se>
12240
12241         * bus/Makefile.am:
12242         * bus/desktop-file.c:
12243         * bus/desktop-file.h:
12244         Add a desktop file parser.
12245
12246 2003-02-11  Zack Rusin  <zack@kde.org>
12247
12248         * qt/message.[h|cpp]: sample implementation
12249         of the KDE wrapper for DBusMessage
12250
12251 2003-02-09  Zack Rusin  <zack@kde.org>
12252
12253         * test/bus-test.c: make_it_compile
12254         * doc/dbus-specification.sgml: minimal semantic fix
12255
12256 2003-02-06  Anders Carlsson  <andersca@codefactory.se>
12257
12258         Release 0.3
12259
12260         * NEWS: Update
12261
12262 2003-02-06  Anders Carlsson  <andersca@codefactory.se>
12263
12264         * dbus/Makefile.am:
12265         * dbus/dbus-break-loader.c:
12266         * test/Makefile.am:
12267         * test/break-loader.c:
12268         Move dbus-break-loader to test/ and rename it to break-loader.
12269
12270 2003-02-02  Havoc Pennington  <hp@pobox.com>
12271
12272         * dbus/dbus-keyring.c, dbus/dbus-keyring.h: template files
12273         for code to manage cookies in your home directory
12274
12275         * dbus/dbus-sysdeps.c (_dbus_generate_random_bytes): new function
12276
12277         * dbus/dbus-auth.c (get_state): impose a maximum number of tries
12278         to authenticate, then disconnect the client.
12279
12280 2003-02-03  Alexander Larsson  <alexl@redhat.com>
12281
12282         * dbus/dbus-message.c (dbus_message_append_fields):
12283         Correct docs.
12284
12285 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
12286
12287         * doc/dbus-specification.sgml:
12288         Update address format section.
12289
12290 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
12291
12292         * test/Makefile.am:
12293         * test/bus-test.c: (get_time), (add_timeout), (remove_timeout),
12294         (message_handler), (new_connection_callback), (loop_quit),
12295         (loop_run), (main):
12296         Add bus test.
12297
12298 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
12299
12300         * bus/driver.c: (bus_driver_handle_service_exists):
12301         Simplify the code a bit.
12302
12303         * dbus/dbus-bus.c: (dbus_bus_service_exists):
12304         Fix a silly.
12305
12306 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
12307
12308         * bus/Makefile.am:
12309         Add libdbus-daemon.la and link to it.
12310
12311 2003-02-01  James Willcox  <jwillcox@gnome.org>
12312
12313         * bus/driver.c: (bus_driver_handle_own_service):
12314         Actually include the service reply code in the message.
12315
12316 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
12317
12318         * bus/driver.c: (bus_driver_handle_service_exists):
12319         Don't unref the incoming message.
12320
12321 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
12322
12323         * dbus/dbus.h: Add dbus-address.h and dbus-bus.h
12324
12325 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
12326
12327         * dbus/dbus-server.c: (dbus_server_listen):
12328         * dbus/dbus-transport.c: (_dbus_transport_open):
12329         ifdef out the calls to the debug transport and server.
12330
12331 2003-02-02  Alexander Larsson  <alexl@redhat.com>
12332
12333         * dbus/dbus-watch.c (dbus_watch_get_flags):
12334         Add note in the docs that ERROR or HANGUP won't be returned
12335         and are assumed always on.
12336
12337         * glib/dbus-gmain.c (add_watch):
12338         Always add IO_ERR | IO_HUP
12339
12340         * dbus/dbus-message.h:
12341         Add semicolon after dbus_message_iter_get_string_array().
12342         Makes qt code build again
12343
12344 2003-02-01  Anders Carlsson  <andersca@codefactory.se>
12345
12346         * bus/driver.c: (create_unique_client_name),
12347         (bus_driver_handle_hello):
12348         Don't take a name, just use a numeric id to identify
12349         each client.
12350
12351         * dbus/Makefile.am:
12352         * dbus/dbus-bus.c: (dbus_bus_register_client),
12353         (dbus_bus_acquire_service), (dbus_bus_service_exists):
12354         * dbus/dbus-bus.h:
12355         Add new convenience functions for communicating with the bus.
12356
12357         * dbus/dbus-message.h:
12358
12359         * dbus/dbus-protocol.h:
12360         Fix a typo.
12361
12362 2003-02-01  Alexander Larsson  <alexl@redhat.com>
12363
12364         * dbus/dbus-message.c (dbus_message_append_fields):
12365         Add some more doc comments.
12366
12367 2003-02-01  Havoc Pennington  <hp@pobox.com>
12368
12369         * dbus/dbus-break-loader.c (randomly_modify_length): change
12370         a 4-byte value in the message as if it were a length
12371
12372         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): don't set
12373         execute bit on saved files
12374
12375 2003-02-01  Havoc Pennington  <hp@pobox.com>
12376
12377         * dbus/dbus-break-loader.c (main): new program to find messages
12378         that break the loader.
12379
12380         * dbus/dbus-sysdeps.c (_dbus_string_append_uint): new function
12381         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): new function
12382
12383         * dbus/dbus-string.c (_dbus_string_set_byte): new
12384
12385 2003-01-31  Havoc Pennington  <hp@pobox.com>
12386
12387         * dbus/dbus-message.c: refactor the test code to be more general,
12388         in preparation for writing a "randomly permute test cases to
12389         try to break the loader" program.
12390
12391 2003-01-31  Havoc Pennington  <hp@pobox.com>
12392
12393         * doc/dbus-specification.sgml: work on the specification
12394
12395         * dbus/dbus-message.c (_dbus_message_loader_return_buffer): check
12396         the protocol version of the message.
12397
12398         * dbus/dbus-protocol.h: drop special _REPLY names, the spec
12399         no longer specifies that.
12400         (DBUS_SERVICE_REPLY_SERVICE_EXISTS): fix flags (1/2/4/8 not
12401         1/2/3/4)
12402
12403         * dbus/dbus-marshal.c (_dbus_marshal_get_arg_end_pos): add missing
12404         "break" for DBUS_TYPE_NIL, remove @todo
12405
12406 2003-01-31  Havoc Pennington  <hp@pobox.com>
12407
12408         * dbus/dbus-message.c (dbus_message_set_is_error_reply): rename
12409         just set_is_error/get_is_error as this is a commonly-used
12410         function, and write docs.
12411
12412 2003-01-31  Anders Carlsson  <andersca@codefactory.se>
12413
12414         * dbus/dbus-address.c: (dbus_address_entry_free):
12415         Free key and value lists.
12416
12417         * dbus/dbus-internals.c: (_dbus_type_to_string):
12418         Add the types we didn't have.
12419
12420         * dbus/dbus-marshal.c: (_dbus_marshal_get_arg_end_pos),
12421         (_dbus_marshal_validate_arg):
12422         Add NIL types.
12423
12424         * dbus/dbus-message.c: (dbus_message_set_sender):
12425         Remove todo about being able to set sender to NULL.
12426
12427         (dbus_message_set_is_error_reply),
12428         (dbus_message_get_is_error_reply):
12429         * dbus/dbus-message.h:
12430         New functions.
12431
12432         * dbus/dbus-protocol.h:
12433         Add error reply flag.
12434
12435         * test/data/valid-messages/opposite-endian.message:
12436         Add NIL type to test.
12437
12438 2003-01-31  Havoc Pennington  <hp@pobox.com>
12439
12440         * doc/dbus-specification.sgml: fully specify the header.  Add
12441         flags and major protocol version, and change header/body len to
12442         unsigned.
12443
12444         * dbus/dbus-message-builder.c (append_saved_length): append length
12445         as uint32
12446
12447         * dbus/dbus-message.c (dbus_message_create_header): change header
12448         length and body length to unsigned. Add the new fields from the
12449         spec
12450         (_dbus_message_loader_return_buffer): unsigned header/body len
12451
12452 2003-01-30  Havoc Pennington  <hp@pobox.com>
12453
12454         * dbus/dbus-auth.c: rework to use only REJECTED, no
12455         MECHANISMS
12456
12457         * doc/dbus-sasl-profile.txt: drop MECHANISMS and just
12458         use REJECTED, suggested by Mark McLoughlin
12459
12460 2003-01-30  Havoc Pennington  <hp@pobox.com>
12461
12462         * dbus/dbus-server.c (dbus_server_listen): @todo about how we need
12463         a better way to report errors here. e.g.  "unix address lacks
12464         path" or something. also "no such file" when the path doesn't
12465         exist, etc.
12466
12467         * dbus/dbus-address.c (dbus_address_entries_free): add @todo about
12468         leaking list nodes
12469         (dbus_parse_address): add @todo about documenting address format,
12470         and allowing , and ; to be escaped
12471
12472 2003-01-30  Anders Carlsson  <andersca@codefactory.se>
12473
12474         * dbus/Makefile.am:
12475         Add dbus-address.[ch]
12476
12477         * dbus/dbus-address.c: (dbus_address_entry_free),
12478         (dbus_address_entries_free), (create_entry),
12479         (dbus_address_entry_get_method), (dbus_address_entry_get_value),
12480         (dbus_parse_address), (_dbus_address_test):
12481         * dbus/dbus-address.h:
12482         New files for dealing with address parsing.
12483
12484         * dbus/dbus-connection.c:
12485         Document timeout functions.
12486
12487         * dbus/dbus-message.c:
12488         Document dbus_message_new_from_message.
12489
12490         * dbus/dbus-server-debug.c:
12491         Document.
12492
12493         * dbus/dbus-server.c: (dbus_server_listen):
12494         Parse address and use correct server implementation.
12495
12496         * dbus/dbus-string.c: (_dbus_string_find_to), (_dbus_string_test):
12497         * dbus/dbus-string.h:
12498         New function with test.
12499
12500         * dbus/dbus-test.c: (dbus_internal_symbol_do_not_use_run_tests):
12501         * dbus/dbus-test.h:
12502         Add address tests.
12503
12504         * dbus/dbus-transport-debug.c:
12505         Document.
12506
12507         * dbus/dbus-transport.c: (_dbus_transport_open):
12508         Parse address and use correct transport implementation.
12509
12510 2003-01-30  Havoc Pennington  <hp@pobox.com>
12511
12512         * dbus/dbus-message.c: use message->byte_order instead of
12513         DBUS_COMPILER_BYTE_ORDER throughout.
12514         (dbus_message_create_header): pad header to align the
12515         start of the body of the message to 8-byte boundary
12516
12517         * dbus/dbus-marshal.h: make all the demarshalers take const
12518         DBusString arguments.
12519
12520         * dbus/dbus-message.c (_dbus_message_loader_return_buffer):
12521         validate message args here, so we don't have to do slow validation
12522         later, and so we catch bad messages as they are incoming. Also add
12523         better checks on header_len and body_len. Also fill in
12524         message->byte_order
12525
12526         * dbus/dbus-string.c (_dbus_string_validate_utf8): new (not
12527         implemented properly)
12528         (_dbus_string_validate_nul): new function to check all-nul
12529
12530         * dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): rename
12531         get_arg_end_pos and remove all validation
12532         (_dbus_marshal_validate_arg): actually do validation here.
12533
12534 2003-01-29  Havoc Pennington  <hp@pobox.com>
12535
12536         * dbus/dbus-message.c (check_message_handling): fix assertion
12537         failure on set_client_serial
12538
12539 2003-01-28  Havoc Pennington  <hp@pobox.com>
12540
12541         * dbus/dbus-server-debug.c: Add doc section comments
12542
12543         * dbus/dbus-transport-debug.c: add doc section comments
12544
12545 2003-01-28  Havoc Pennington  <hp@redhat.com>
12546
12547         * dbus/dbus-string.c (_dbus_string_base64_decode): append bytes in
12548         the reverse order from how I had it
12549         (_dbus_string_base64_encode): reverse encoding order. I was
12550         basically byteswapping everything during encoding.
12551
12552 2003-01-28  Anders Carlsson  <andersca@codefactory.se>
12553
12554         * dbus/dbus-connection-internal.h:
12555         * dbus/dbus-connection.c: (_dbus_connection_add_timeout),
12556         (_dbus_connection_remove_timeout):
12557         Add functions for adding and removing timeouts.
12558
12559         * dbus/dbus-message.c: (dbus_message_new_from_message):
12560         Add new function that takes a message and creates an exact
12561         copy of it, but with the refcount set to 1.
12562         (check_message_handling):
12563         Fix build error.
12564
12565         * dbus/dbus-server-protected.h:
12566         * dbus/dbus-server.c: (_dbus_server_init_base),
12567         (_dbus_server_finalize_base), (_dbus_server_add_timeout),
12568         (dbus_server_set_timeout_functions):
12569         (_dbus_server_remove_timeout):
12570         New functions so that a server can add and remove timeouts.
12571
12572         (dbus_server_listen):
12573         Add commented out call to dbus_server_debug_new.
12574
12575         * dbus/dbus-timeout.c: (_dbus_timeout_new):
12576         Actually set the handler, doh.
12577
12578         * dbus/dbus-transport.c: (_dbus_transport_open):
12579         Add commented out call to dbus_transport_debug_client_new.
12580
12581         * dbus/Makefile.am:
12582         Add dbus-transport-debug.[ch] and dbus-server-debug.[ch]
12583
12584 2003-01-28  Havoc Pennington  <hp@pobox.com>
12585
12586         * dbus/dbus-message.c (check_message_handling): function to check
12587         on the loaded message, iterates over it etc.
12588
12589 2003-01-28  Havoc Pennington  <hp@pobox.com>
12590
12591         * test/Makefile.am (dist-hook): fix make distdir
12592
12593         * dbus/Makefile.am (TESTS_ENVIRONMENT): fix make check
12594
12595 2003-01-27  Havoc Pennington  <hp@pobox.com>
12596
12597         * dbus/dbus-mempool.c (time_for_size): replace printf with
12598         _dbus_verbose
12599
12600         * dbus/dbus-message-builder.c (_dbus_message_data_load): allow
12601         empty lines; fix the SAVE_LENGTH stuff to be
12602         START_LENGTH/END_LENGTH so it actually works; couple other
12603         bugfixes
12604
12605         * test/Makefile.am (dist-hook): add dist-hook for .message files
12606
12607         * dbus/dbus-string.c (DBUS_STRING_COPY_PREAMBLE): source of a copy
12608         can be constant or locked.
12609         (_dbus_string_free): allow freeing a const string as
12610         documented/intended
12611
12612         * dbus/dbus-sysdeps.c (_dbus_concat_dir_and_file): utility
12613
12614         * dbus/dbus-test-main.c (main): take an argument which is the
12615         directory containing test data
12616
12617         * dbus/dbus-message.c (_dbus_message_test): pass a test_data_dir
12618         argument to this and load all the messages in test/data/
12619         checking that they can be loaded or not loaded as appropriate.
12620
12621 2003-01-27  Anders Carlsson  <andersca@codefactory.se>
12622
12623         * bus/dispatch.c: (bus_dispatch_message_handler):
12624         Dispatch messages sent to services.
12625
12626         * bus/driver.c: (bus_driver_send_service_deleted),
12627         (bus_driver_send_service_created), (bus_driver_send_service_lost),
12628         (bus_driver_send_service_acquired):
12629         Add helper functions for sending service related messages.
12630
12631         (bus_driver_send_welcome_message):
12632         Send HELLO_REPLY instead of WELCOME.
12633
12634         (bus_driver_handle_list_services):
12635         Send LIST_SERVICES_REPLY instead of SERVICES.
12636
12637         (bus_driver_handle_own_service),
12638         (bus_driver_handle_service_exists):
12639         New message handlers.
12640
12641         (bus_driver_handle_message):
12642         Invoke new message handlers.
12643
12644         (bus_driver_remove_connection):
12645         Don't remove any services here since that's done automatically
12646         by bus_service_remove_owner now.
12647
12648         * bus/driver.h:
12649         New function signatures.
12650
12651         * bus/services.c: (bus_service_add_owner):
12652         Send ServiceAcquired message if we're the only primary owner.
12653
12654         (bus_service_remove_owner):
12655         Send ServiceAcquired/ServiceLost messages.
12656
12657         (bus_service_set_prohibit_replacement),
12658         (bus_service_get_prohibit_replacement):
12659         Functions for setting prohibit replacement.
12660
12661         (bus_service_has_owner):
12662         New function that checks if a connection is in the owner queue of
12663         a certain service.
12664
12665         * bus/services.h:
12666         Add new function signatures.
12667
12668         * dbus/dbus-list.c: (_dbus_list_test):
12669         Add tests for _dbus_list_remove_last and traversing the list backwards.
12670
12671         * dbus/dbus-list.h:
12672         Fix a typo in _dbus_list_get_prev_link, if we're at the first element we can't
12673         go any further, so return NULL then.
12674
12675         * dbus/dbus-protocol.h:
12676         Add new messages, service flags and service replies.
12677
12678 2003-01-26  Havoc Pennington  <hp@pobox.com>
12679
12680         * dbus/dbus-message-builder.c: implement, completely untested.
12681
12682         * test/data/*: add data to be used in testing.
12683         ".message" files are our simple loadable text format.
12684         ".message-raw" will be binary dumps of messages.
12685
12686         * dbus/dbus-string.c (_dbus_string_starts_with_c_str): new
12687
12688 2003-01-26  Havoc Pennington  <hp@pobox.com>
12689
12690         * dbus/dbus-sysdeps.c (_dbus_file_get_contents): new function
12691
12692         * dbus/dbus-errors.c (dbus_result_to_string): add
12693         file errors
12694
12695         * dbus/dbus-message-builder.c: new file, will contain code to load
12696         up messages from files. Not implemented yet.
12697
12698 2003-01-26  Havoc Pennington  <hp@pobox.com>
12699
12700         * dbus/dbus-message.c (dbus_message_set_sender): support deleting
12701         the sender by setting to NULL
12702
12703 2003-01-26  Havoc Pennington  <hp@pobox.com>
12704
12705         The unit tests pass, but otherwise untested.  If it breaks, the
12706         tests should have been better. ;-)
12707
12708         * bus/driver.c (bus_driver_handle_hello): return if we disconnect
12709         the connection.
12710
12711         * dbus/dbus-message.c: redo everything so we maintain
12712         message->header as the only copy of the various fields.
12713         This avoids the possibility of out-of-memory in some cases,
12714         for example dbus_message_lock() can't run out of memory anymore,
12715         and avoids extra copying. Figured I may as well go ahead and do
12716         this since it was busted for dbus_message_lock to not return
12717         failure on OOM, and dbus_message_write_header was totally
12718         unchecked for OOM. Also fixed some random other bugs.
12719
12720         * dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): verify
12721         that strings are nul-terminated. Also, end_pos can be equal
12722         to string length just not greater than, I think.
12723         (_dbus_marshal_set_int32): new function
12724         (_dbus_marshal_set_uint32): new function
12725         (_dbus_marshal_set_string): new function
12726
12727         * dbus/dbus-connection.c (_dbus_connection_new_for_transport): fix
12728         a warning, init timeout_list to NULL
12729         (dbus_connection_send_message): don't use uninitialized variable
12730         "serial"
12731
12732         * dbus/dbus-string.c (_dbus_string_replace_len): new function
12733
12734 2003-01-26  Anders Carlsson  <andersca@codefactory.se>
12735
12736         * bus/driver.c: (bus_driver_handle_hello),
12737         (bus_driver_send_welcome_message):
12738         Plug leaks
12739
12740 2003-01-26  Anders Carlsson  <andersca@codefactory.se>
12741
12742         * dbus/dbus-auth.c: (process_auth), (_dbus_auth_unref):
12743         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport),
12744         (dbus_connection_unref):
12745         * dbus/dbus-marshal.c: (_dbus_marshal_test):
12746         * dbus/dbus-message.c: (dbus_message_unref),
12747         Plug memory leaks.
12748
12749         (dbus_message_get_fields):
12750         Remove debugging printout.
12751
12752         (_dbus_message_loader_return_buffer):
12753         Don't store the header string.
12754
12755         (_dbus_message_test):
12756         Plug leaks.
12757
12758 2003-01-26  Richard Hult  <rhult@codefactory.se>
12759
12760         * glib/dbus-gmain.c (dbus_connection_dispatch): Traverse a copy of
12761         the file descriptor list, since it can change under us.
12762
12763 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
12764
12765         * glib/dbus-gmain.c: (dbus_connection_prepare),
12766         (dbus_connection_check), (dbus_connection_dispatch), (add_watch),
12767         (remove_watch), (dbus_connection_hookup_with_g_main):
12768         Rewrite the glib handling to use its own GSource instead of a
12769         GIOChannel so we can catch messages put in the queue while waiting
12770         for a reply.
12771
12772 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
12773
12774         * bus/Makefile.am:
12775         * bus/connection.c: (connection_disconnect_handler),
12776         (connection_watch_callback), (bus_connection_setup):
12777         * bus/dispatch.c: (send_one_message),
12778         (bus_dispatch_broadcast_message), (bus_dispatch_message_handler),
12779         (bus_dispatch_add_connection), (bus_dispatch_remove_connection):
12780         * bus/dispatch.h:
12781         * bus/driver.c: (bus_driver_send_service_deleted),
12782         (bus_driver_send_service_created), (bus_driver_handle_hello),
12783         (bus_driver_send_welcome_message),
12784         (bus_driver_handle_list_services), (bus_driver_remove_connection),
12785         (bus_driver_handle_message):
12786         * bus/driver.h:
12787         Refactor code, put the message dispatching in its own file. Use
12788         _DBUS_HANDLE_OOM. Also send ServiceDeleted messages when a client
12789         is disconnected.
12790
12791 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
12792
12793         * dbus/dbus-internals.h:
12794         Add _DBUS_HANDLE_OOM macro, it doesn't do anything currently.
12795
12796         * dbus/dbus-message.c: (dbus_message_get_sender):
12797         * dbus/dbus-message.h:
12798         Implement dbus_message_get_sender.
12799
12800         * dbus/dbus-protocol.h:
12801         Add message and service defines.
12802
12803 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
12804
12805         * dbus/dbus-connection.c: (dbus_connection_send_message):
12806         * dbus/dbus-message-internal.h:
12807         * dbus/dbus-message.c: (_dbus_message_get_client_serial),
12808         (dbus_message_write_header):
12809         Remove _dbus_messag_unlock and don't set the client serial on a
12810         message if one already exists.
12811
12812 2003-01-24  Havoc Pennington  <hp@pobox.com>
12813
12814         * dbus/dbus-list.c (alloc_link): put a thread lock on the global
12815         list_pool
12816
12817         * bus/driver.c (bus_driver_handle_list_services): fix a leak
12818         on OOM
12819
12820 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
12821
12822         * dbus/dbus-list.c: (alloc_link), (free_link):
12823         Use a memory pool for the links.
12824
12825 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
12826
12827         * bus/connection.c: (bus_connection_foreach):
12828         * bus/connection.h:
12829         Add new bus_connection_foreach function.
12830
12831         * bus/driver.c: (send_one_message), (bus_driver_broadcast_message):
12832         Add function that broadcasts a message to all clients.
12833
12834         (bus_driver_send_service_created), (bus_driver_handle_hello),
12835         (bus_driver_send_welcome_message),
12836         (bus_driver_handle_list_services), (bus_driver_message_handler):
12837         Implement functions that take care of listing services, and notifying
12838         clients when new services are created.
12839
12840         * bus/services.c: (bus_services_list):
12841         * bus/services.h:
12842         Add new function that returns an array of strings with the currently
12843         registered services.
12844
12845         * glib/dbus-glib.h:
12846         * glib/dbus-gmain.c:
12847         Update copyright year.
12848
12849 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
12850
12851         * dbus/dbus-connection.c: (dbus_connection_send_message):
12852         Unlock the message in case it was sent earlier.
12853
12854         (dbus_connection_send_message_with_reply_and_block):
12855         Remove the reply message from the list.
12856
12857         * dbus/dbus-marshal.c: (_dbus_demarshal_string_array):
12858         Set array_len and new_pos correctly.
12859
12860         (_dbus_marshal_test):
12861         Remove debug output.
12862
12863         * dbus/dbus-message-internal.h:
12864         * dbus/dbus-message.c: (_dbus_message_get_reply_serial):
12865         New function that returns the reply serial.
12866
12867         (_dbus_message_unlock):
12868         New function that unlocks a message and resets its header.
12869
12870         (dbus_message_append_string_array),
12871         (dbus_message_get_fields_valist),
12872         (dbus_message_iter_get_field_type),
12873         (dbus_message_iter_get_string_array),
12874         (dbus_message_get_fields),
12875         (dbus_message_append_fields_valist):
12876         Handle string arrays.
12877
12878         (dbus_message_set_sender):
12879         Make this function public since the bus daemon needs it.
12880
12881         (decode_header_data):
12882         Set the reply serial to -1 initially.
12883
12884         * dbus/dbus-message.h:
12885         Add dbus_message_set_sender.
12886
12887 2003-01-24  Havoc Pennington  <hp@pobox.com>
12888
12889         * doc/dbus-specification.sgml: add some stuff
12890
12891 2003-01-22  Havoc Pennington  <hp@pobox.com>
12892
12893         * doc/dbus-specification.sgml: Start to document the protocol.
12894
12895 2003-01-22  Havoc Pennington  <hp@pobox.com>
12896
12897         * dbus/dbus-connection.c
12898         (dbus_connection_send_message_with_reply_and_block): add some @todo
12899
12900         * bus/driver.c (bus_driver_add_connection): add a FIXME about memleak
12901
12902 2003-01-21  Havoc Pennington  <hp@pobox.com>
12903
12904         (patch untested because can't compile)
12905
12906         * bus/driver.c (create_unique_client_name): make this function
12907         never recycle client names. Also, caller should initialize
12908         the DBusString.
12909
12910         * dbus/dbus-sysdeps.c (_dbus_get_current_time): new function
12911
12912 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
12913
12914         * dbus/dbus-marshal.c: (_dbus_marshal_double),
12915         (_dbus_marshal_int32), (_dbus_marshal_uint32),
12916         (_dbus_marshal_int32_array), (_dbus_marshal_uint32_array),
12917         (_dbus_marshal_double_array), (_dbus_marshal_string_array),
12918         (_dbus_demarshal_int32_array), (_dbus_demarshal_uint32_array),
12919         (_dbus_demarshal_double_array), (_dbus_demarshal_string_array),
12920         (_dbus_marshal_get_field_end_pos), (_dbus_marshal_test):
12921         * dbus/dbus-marshal.h:
12922         * dbus/dbus-protocol.h:
12923         Add support for marshalling and demarshalling integer, double
12924         and string arrays.
12925
12926 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
12927
12928         * bus/Makefile.am:
12929         Add driver.[ch]
12930
12931         * bus/connection.c: (connection_disconnect_handler):
12932         Remove the connection from the bus driver's list.
12933
12934         (connection_watch_callback): Dispatch messages.
12935
12936         (free_connection_data): Free connection name.
12937
12938         (bus_connection_setup): Add connection to the bus driver's list.
12939         (bus_connection_remove_owned_service):
12940         (bus_connection_set_name), (bus_connection_get_name):
12941         Add functions for setting and getting the connection's name.
12942
12943         * bus/connection.h:
12944         Add function headers.
12945
12946         * bus/driver.c: (create_unique_client_name),
12947         (bus_driver_handle_hello_message),
12948         (bus_driver_send_welcome_message), (bus_driver_message_handler),
12949         (bus_driver_add_connection), (bus_driver_remove_connection):
12950         * bus/driver.h:
12951         * bus/main.c:
12952         * bus/services.c: (bus_service_free):
12953         * bus/services.h:
12954         New file that handles communication and registreation with the bus
12955         itself.
12956
12957 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
12958
12959         * dbus/dbus-connection.c: (dbus_connection_send_message):
12960         Add a new client_serial parameter.
12961
12962         (dbus_connection_send_message_with_reply):
12963         Remove a @todo since we've implemented the blocking function.
12964
12965         (dbus_connection_send_message_with_reply_and_block):
12966         New function that sends a message and waits for a reply and
12967         then returns the reply.
12968
12969         * dbus/dbus-connection.h:
12970         Add new functions.
12971
12972         * dbus/dbus-errors.c: (dbus_result_to_string):
12973         * dbus/dbus-errors.h:
12974         Add new DBUS_RESULT.
12975
12976         * dbus/dbus-message-internal.h:
12977         * dbus/dbus-message.c: (_dbus_message_get_reply_serial),
12978         (_dbus_message_set_sender), (dbus_message_write_header),
12979         (dbus_message_new_reply), (decode_header_data),
12980         (_dbus_message_loader_return_buffer), (_dbus_message_test):
12981         * dbus/dbus-message.h:
12982         Add new functions that set the reply serial and sender.
12983         Also marshal and demarshal them correctly and add test.
12984
12985         * dbus/dbus-protocol.h:
12986         Add new DBUS_MESSAGE_TYPE_SENDER.
12987
12988         * glib/dbus-glib.h:
12989         * glib/dbus-gmain.c: (watch_callback), (free_callback_data),
12990         (add_watch), (remove_watch), (add_timeout), (remove_timeout),
12991         (dbus_connection_hookup_with_g_main):
12992         * glib/test-dbus-glib.c: (main):
12993         Rewrite to use GIOChannel and remove the GSource crack.
12994
12995         * test/echo-client.c: (main):
12996         * test/watch.c: (check_messages):
12997         Update for changed APIs
12998
12999 2003-01-19  Anders Carlsson  <andersca@codefactory.se>
13000
13001         * dbus/Makefile.am: Add dbus-timeout.[cħ]
13002
13003         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport):
13004         Create a DBusTimeoutList.
13005         (dbus_connection_set_timeout_functions): Add new function to
13006         set timeout callbacks
13007
13008         * dbus/dbus-connection.h: Add public DBusTimeout API.
13009
13010         * dbus/dbus-message.c: (dbus_message_get_service):
13011         * dbus/dbus-message.h:  New function.
13012
13013         * dbus/dbus-server.c: Fix small doc typo.
13014
13015         * dbus/dbus-timeout.[ch]: New files for mainloop timeouts.
13016
13017 2003-01-19  Anders Carlsson  <andersca@codefactory.se>
13018
13019         * dbus/dbus-string.c (_dbus_string_move_len): Don't delete all
13020         of the string, just as long as specified.
13021
13022 2003-01-19  Havoc Pennington  <hp@pobox.com>
13023
13024         * dbus/dbus-connection.c (dbus_connection_get_is_authenticated):
13025         new function
13026
13027         * dbus/dbus-server.c (dbus_server_set_max_connections)
13028         (dbus_server_get_max_connections, dbus_server_get_n_connections):
13029         keep track of current number of connections, and add API for
13030         setting a max (but haven't implemented enforcing the max yet)
13031
13032 2003-01-18  Havoc Pennington  <hp@pobox.com>
13033
13034         * dbus/dbus-transport-unix.c (unix_do_iteration): only do the
13035         reading/writing if read_watch != NULL or write_watch != NULL.
13036
13037         * dbus/dbus-message.c (_dbus_message_loader_return_buffer): fix
13038         the message loader code to actually load message->header and
13039         message->body into the newly-created message.
13040
13041         * dbus/dbus-transport-unix.c (check_write_watch): fix a mem leak
13042         in OOM case
13043
13044         * dbus/dbus-connection.c (dbus_connection_set_max_message_size)
13045         (dbus_connection_get_max_message_size)
13046         (dbus_connection_set_max_live_messages_size)
13047         (dbus_connection_get_max_live_messages_size): implement some
13048         resource limitation functions
13049
13050         * dbus/dbus-resources.c: new file implementing some of the
13051         resource limits stuff
13052
13053         * dbus/dbus-message.c (dbus_message_iter_get_byte_array): add
13054         missing docs, add @todo to handle OOM etc.
13055
13056         * dbus/dbus-marshal.c (_dbus_demarshal_byte_array): add missing
13057         docs
13058
13059 2003-01-18  Havoc Pennington  <hp@pobox.com>
13060
13061         * dbus/dbus-connection.c (dbus_connection_unref): disconnect the
13062         connection if it hasn't been already.
13063
13064         * dbus/dbus-connection.h: kill off the idea of an ErrorFunction,
13065         replace with DisconnectFunction.
13066
13067 2003-01-18  Havoc Pennington  <hp@pobox.com>
13068
13069         Building --disable-verbose-mode --disable-asserts --disable-tests
13070         cuts the library from 112K to 45K or so
13071
13072         * configure.in: check for varargs macro support,
13073         add --enable-verbose-mode, --enable-asserts.
13074
13075         * dbus/dbus-internals.h (_dbus_assert): support
13076         DBUS_DISABLE_ASSERT
13077         (_dbus_verbose): support DBUS_ENABLE_VERBOSE_MODE
13078
13079 2003-01-18  Havoc Pennington  <hp@pobox.com>
13080
13081         * dbus/dbus-test.c: include config.h so that tests actually run
13082
13083         * dbus/dbus-string.c: add assertions that stuff is 8-byte aligned,
13084         so the failure mode when that assumption fails will be plenty
13085         obvious.
13086
13087 2003-01-18  Havoc Pennington  <hp@pobox.com>
13088
13089         * configure.in: default --enable-tests to $USE_MAINTAINER_MODE
13090
13091         * dbus/Makefile.am: fix it up so dubs-test-main.c is included in
13092         the distribution
13093
13094         * test/Makefile.am: don't use special variable "TESTS" for echo-*
13095         since we don't want to use those in make check
13096
13097 2003-01-15  Havoc Pennington  <hp@redhat.com>
13098
13099         Release 0.2
13100
13101         * NEWS: update
13102
13103 2003-01-15  Havoc Pennington  <hp@redhat.com>
13104
13105         * test/Makefile.am: fix so that test source code ends up in the
13106         distribution on make distcheck
13107
13108 2003-01-15  Havoc Pennington  <hp@redhat.com>
13109
13110         Release 0.1.
13111
13112         * NEWS: update
13113
13114 2003-01-15  Havoc Pennington  <hp@redhat.com>
13115
13116         * dbus/dbus-test.c (dbus_internal_symbol_do_not_use_run_tests):
13117         fix build when --disable-tests
13118
13119         * Makefile.am (EXTRA_DIST): put HACKING in here
13120
13121         * HACKING: document procedure for making a tarball release.
13122
13123 2003-01-14  Anders Carlsson  <andersca@codefactory.se>
13124
13125         * bus/connection.c: (connection_error_handler),
13126         (bus_connection_setup):
13127         * bus/main.c: (main):
13128         Make sure that the DBusConnectionData struct is NULLed
13129         out to prevent a segfault.
13130
13131         * dbus/dbus-errors.c: (dbus_result_to_string):
13132         * dbus/dbus-errors.h:
13133         * dbus/dbus-message.c: (dbus_message_get_fields),
13134         (dbus_message_get_fields_valist), (_dbus_message_test):
13135         * dbus/dbus-message.h:
13136         Make dbus_message_get_fields return a result code so we can
13137         track invalid fields as well as oom.
13138
13139 2003-01-11  Havoc Pennington  <hp@pobox.com>
13140
13141         * configure.in: change --enable-test/--enable-ansi action-if-given
13142         to enable_foo=$enableval instead of enable_foo=yes
13143
13144 2003-01-08  Havoc Pennington  <hp@pobox.com>
13145
13146         * dbus/dbus-string.c (_dbus_string_align_length): new function
13147
13148         * dbus/dbus-test-main.c: move main() for test app here
13149         * dbus/dbus-test.c
13150         (dbus_internal_symbol_do_not_use_run_tests): we have to export a
13151         symbol to run tests, because dbus-test isn't in the main
13152         library
13153
13154         Code review nitpicks.
13155
13156         * dbus/dbus-message.c (dbus_message_write_header): add newlines
13157         for people with narrow emacs ;-). Assert client_serial was filled
13158         in. Assert message->name != NULL.
13159         (dbus_message_append_fields): have "first_field_type" arg separate
13160         from va list, needed for C++ binding that also uses varargs IIRC
13161         and helps with type safety
13162         (dbus_message_new): add @todo about using DBusString to store
13163         service/name internally
13164         (dbus_message_new): don't leak ->service and ->name on OOM later
13165         in the function
13166         (dbus_message_unref): free the service name
13167         (dbus_message_get_fields): same change to varargs
13168         i.e. first_field_type
13169         (_dbus_message_loader_return_buffer): assert that the message data
13170         is aligned (if not it's a bug in our code). Put in verbose griping
13171         about why we set corrupted = TRUE.
13172         (decode_header_data): add FIXME that char* is evil.  Was going to
13173         add FIXME about evil locale-specific string.h strncmp, but just
13174         switched to wacky string-as-uint32 optimization. Move check for
13175         "no room for field name" above get_const_data_len() to avoid
13176         assertion failure in get_const_data_len if we have trailing 2
13177         bytes or the like. Check for service and name fields being
13178         provided twice. Don't leak service/name on error. Require field
13179         names to be aligned to 4 bytes.
13180
13181         * dbus/dbus-marshal.c: move byte swap stuff to header
13182         (_dbus_pack_int32): uscore-prefix
13183         (_dbus_unpack_int32): uscore-prefix
13184         (_dbus_unpack_uint32): export
13185         (_dbus_demarshal_string): add @todo complaining about use of
13186         memcpy()
13187         (_dbus_marshal_get_field_end_pos): add @todo about bad error
13188         handling allowing corrupt data to go unchecked
13189
13190 2003-01-08  Havoc Pennington  <hp@redhat.com>
13191
13192         * dbus/dbus-transport-unix.c (unix_do_iteration): add read/write
13193         to the select() as needed for authentication. (should be using
13194         _dbus_poll() not select, but for another day)
13195
13196         * dbus/dbus.h: include dbus/dbus-protocol.h
13197
13198 2003-01-08  Anders Carlsson  <andersca@codefactory.se>
13199
13200         * dbus/Makefile.am (dbusinclude_HEADERS): Install
13201         dbus-connection.h
13202
13203 2003-01-08  Anders Carlsson  <andersca@codefactory.se>
13204
13205         * dbus/dbus-internals.c: (_dbus_type_to_string):
13206         New function that returns a string describing a type.
13207
13208         * dbus/dbus-marshal.c: (_dbus_demarshal_byte_array):
13209         * dbus/dbus-marshal.h:
13210         * dbus/dbus-message.c: (dbus_message_get_fields_valist),
13211         (dbus_message_iter_get_field_type), (dbus_message_iter_get_double),
13212         (dbus_message_iter_get_byte_array):
13213         * dbus/dbus-message.h:
13214         Add new convenience functions for appending and getting message fields.
13215         Also add demarshalling routines for byte arrays.
13216
13217 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
13218
13219         * dbus/dbus-connection-internal.h:
13220         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport),
13221         (_dbus_connection_get_next_client_serial),
13222         (dbus_connection_send_message):
13223         * dbus/dbus-internals.h:
13224         * dbus/dbus-marshal.c: (unpack_uint32), (dbus_unpack_int32),
13225         (dbus_pack_int32), (_dbus_marshal_double), (_dbus_marshal_int32),
13226         (_dbus_marshal_uint32), (_dbus_demarshal_double),
13227         (_dbus_demarshal_int32), (_dbus_demarshal_uint32),
13228         (_dbus_demarshal_string), (_dbus_marshal_get_field_end_pos),
13229         (_dbus_verbose_bytes), (_dbus_marshal_test):
13230         * dbus/dbus-marshal.h:
13231         * dbus/dbus-message-internal.h:
13232         * dbus/dbus-message.c: (_dbus_message_set_client_serial),
13233         (dbus_message_write_header), (_dbus_message_lock),
13234         (dbus_message_new), (dbus_message_ref), (dbus_message_unref),
13235         (dbus_message_get_name), (dbus_message_append_int32),
13236         (dbus_message_append_uint32), (dbus_message_append_double),
13237         (dbus_message_append_string), (dbus_message_append_byte_array),
13238         (dbus_message_get_fields_iter), (dbus_message_iter_ref),
13239         (dbus_message_iter_unref), (dbus_message_iter_has_next),
13240         (dbus_message_iter_next), (dbus_message_iter_get_field_type),
13241         (dbus_message_iter_get_string), (dbus_message_iter_get_int32),
13242         (dbus_message_iter_get_uint32), (dbus_message_iter_get_double),
13243         (decode_header_data), (_dbus_message_loader_return_buffer),
13244         (message_iter_test), (_dbus_message_test):
13245         * dbus/dbus-message.h:
13246         * dbus/dbus-protocol.h:
13247         * dbus/dbus-test.c: (main):
13248         * dbus/dbus-test.h:
13249         * glib/test-dbus-glib.c: (message_handler), (main):
13250         * test/echo-client.c: (main):
13251         * test/watch.c: (check_messages):
13252         Make messages sendable and receivable for real.
13253
13254 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
13255
13256         * dbus/dbus-marshal.c: (_dbus_marshal_double),
13257         (_dbus_marshal_string), (_dbus_marshal_byte_array):
13258         * dbus/dbus-message.c: (dbus_message_append_int32),
13259         (dbus_message_append_uint32), (dbus_message_append_double),
13260         (dbus_message_append_string), (dbus_message_append_byte_array):
13261         Handle OOM restoration.
13262
13263 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
13264
13265         * dbus/dbus-marshal.c: (_dbus_marshal_string),
13266         (_dbus_demarshal_string), (_dbus_marshal_test):
13267         * dbus/dbus-marshal.h:
13268         * dbus/dbus-message.c: (dbus_message_get_name),
13269         Document these functions.
13270
13271         (dbus_message_append_int32), (dbus_message_append_uint32),
13272         (dbus_message_append_double), (dbus_message_append_string),
13273         (dbus_message_append_byte_array):
13274         * dbus/dbus-message.h:
13275         Add functions for adding message fields of different types.
13276
13277         * dbus/dbus-protocol.h:
13278         Add the different types.
13279
13280 2003-01-05  Havoc Pennington  <hp@pobox.com>
13281
13282         * bus/connection.c: implement routines for handling connections,
13283         first thing is keeping a list of owned services on each connection
13284         and setting up watches etc.
13285
13286         * bus/services.c: implement a mapping from service names to lists
13287         of connections
13288
13289         * dbus/dbus-hash.c: add DBUS_HASH_POINTER
13290
13291         * dbus/dbus-threads.c (dbus_static_mutex_lock): add functions
13292         to use static mutexes for global data
13293
13294         * dbus/dbus-connection.c (dbus_connection_set_data): add new
13295         collection of functions to set/get application-specific data
13296         on the DBusConnection.
13297
13298 2003-01-04  Havoc Pennington  <hp@pobox.com>
13299
13300         * dbus/dbus-sysdeps.c (_dbus_sleep_milliseconds): new function
13301         (_dbus_poll): new function
13302
13303         * dbus/dbus-internals.h (_DBUS_STRUCT_OFFSET): new macro
13304         copied from GLib
13305
13306         * bus/loop.c: initial code for the daemon main loop
13307
13308 2003-01-04  Havoc Pennington  <hp@pobox.com>
13309
13310         * test/watch.c (error_handler): make it safe if the error handler
13311         is called multiple times (if we s/error handler/disconnect
13312         handler/ we should just guarantee it's called only once)
13313
13314         * dbus/dbus-transport.c (_dbus_transport_disconnect): call the
13315         error handler on disconnect (it's quite possible we should
13316         just change the error handler to a "disconnect handler," I'm
13317         not sure we have any other meaningful errors)
13318
13319         * configure.in: check for getpwnam_r
13320
13321         * dbus/dbus-transport.c, dbus/dbus-transport-unix.c,
13322         dbus/dbus-auth.c: add credentials support, add EXTERNAL auth
13323         mechanism as in SASL spec, using socket credentials
13324
13325         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): new function
13326         (_dbus_send_credentials_unix_socket): new function
13327
13328         * dbus/dbus-sysdeps.c (_dbus_accept_unix_socket): rename just
13329         dbus_accept()
13330         (_dbus_write): only check errno if <0 returned
13331         (_dbus_write_two): ditto
13332
13333 2003-01-02  Anders Carlsson  <andersca@codefactory.se>
13334
13335         * dbus/dbus-marshal.c: (_dbus_marshal_utf8_string),
13336         (_dbus_marshal_byte_array), (_dbus_demarshal_utf8_string),
13337         (_dbus_marshal_test):
13338         * dbus/dbus-marshal.h:
13339         Add _dbus_marshal_byte_array and rename _dbus_marshal_string
13340         to _dbus_marshal_utf8_string. Also fix some tests.
13341
13342 2002-12-28  Harri Porten  <porten@kde.org>
13343
13344         * configure.in: added check for C++ compiler and a very cheesy
13345         check for the Qt integration
13346
13347         * Makefile.am (SUBDIRS): compile qt subdir if support is enabled
13348
13349         * qt/Makefile.am: added
13350
13351         * qt/.cvsignore: added
13352
13353         * qt/dbus-qthread.cc, qt/dbus-qthread.cpp: renamed former to
13354         latter, added #ifdef QT_THREAD_SUPPORT guard.
13355
13356         * dbus/Makefile.am: added missing headers for make dist
13357
13358 2002-12-28  Kristian Rietveld  <kris@gtk.org>
13359
13360         * dbus/Makefile.am: fixup export-symbols-regex.
13361
13362 2002-12-27  Anders Carlsson  <andersca@codefactory.se>
13363
13364         * acinclude.m4: Add this file and put the
13365         PKG_CHECK_MODULE macro in it.
13366
13367 2002-12-27  Anders Carlsson  <andersca@codefactory.se>
13368
13369         * dbus/dbus-marshal.c: (_dbus_marshal_string),
13370         (_dbus_demarshal_double), (_dbus_demarshal_int32),
13371         (_dbus_demarshal_uint32), (_dbus_demarshal_string),
13372         (_dbus_marshal_test):
13373         Make the demarshalling routines align the pos argument.
13374         Add string marshalling tests and fix the obvious bugs
13375         discovered.
13376
13377 2002-12-26  Havoc Pennington  <hp@pobox.com>
13378
13379         * dbus/dbus-auth.c: fixes fixes fixes
13380
13381         * dbus/dbus-transport-unix.c: wire up support for
13382         encoding/decoding data on the wire
13383
13384         * dbus/dbus-auth.c (_dbus_auth_encode_data)
13385         (_dbus_auth_decode_data): append to target string
13386         instead of nuking it.
13387
13388 2002-12-26  Havoc Pennington  <hp@pobox.com>
13389
13390         * dbus/dbus-marshal.h (DBUS_COMPILER_BYTE_ORDER): #ifdef
13391         WORDS_BIGENDIAN then compiler byte order is DBUS_BIG_ENDIAN,
13392         doh
13393
13394         * dbus/dbus-marshal.c: Add macros to do int swapping in-place and
13395         avoid swap_bytes() overhead (ignoring possible assembly stuff for
13396         now). Main point is because I wanted unpack_uint32 to implement
13397         _dbus_verbose_bytes
13398         (_dbus_verbose_bytes): new function
13399
13400         * dbus/dbus-string.c (_dbus_string_validate_ascii): new function
13401
13402         * dbus/dbus-message.c (_dbus_message_loader_get_is_corrupted): add
13403         mechanism to handle a corrupt message stream
13404         (_dbus_message_loader_new): fix preallocation to only prealloc,
13405         not prelengthen
13406
13407         * dbus/dbus-string.c (_dbus_string_skip_blank): fix this function
13408         (_dbus_string_test): enhance tests for copy/move and fix the
13409         functions
13410
13411         * dbus/dbus-transport-unix.c: Hold references in more places to
13412         avoid reentrancy problems
13413
13414         * dbus/dbus-transport.c: ditto
13415
13416         * dbus/dbus-connection.c (dbus_connection_dispatch_message): don't
13417         leak reference count in no-message case
13418
13419         * test/watch.c (do_mainloop): handle adding/removing watches
13420         during iteration over the watches. Also, ref the connection/server
13421         stored on a watch, so we don't try to mangle a destroyed one.
13422
13423         * dbus/dbus-transport-unix.c (do_authentication): perform
13424         authentication
13425
13426         * dbus/dbus-auth.c (get_state): add a state
13427         AUTHENTICATED_WITH_UNUSED_BYTES and return it if required
13428         (_dbus_auth_get_unused_bytes): append the unused bytes
13429         to the passed in string, rather than prepend
13430
13431         * dbus/dbus-transport.c (_dbus_transport_init_base): create
13432         the auth conversation DBusAuth
13433
13434         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd)
13435         (_dbus_transport_new_for_domain_socket): when creating a
13436         transport, pass in whether it's a client-side or server-side
13437         transport so we know which DBusAuth to create
13438
13439 2002-12-03  Havoc Pennington  <hp@pobox.com>
13440
13441         * dbus/dbus-transport-unix.c (unix_finalize): finalize base
13442         _after_ finalizing the derived members
13443         (unix_connection_set): unref watch if we fail to add it
13444
13445         * dbus/dbus-connection.c (dbus_connection_unref): delete the
13446         transport first, so that the connection owned by the
13447         transport will be valid as the transport finalizes.
13448
13449         * dbus/dbus-transport-unix.c (unix_finalize): free the write_watch
13450         if necessary, and remove watches from the connection.
13451
13452         * dbus/dbus-watch.c (_dbus_watch_list_free): improve a comment
13453
13454 2002-12-26  Anders Carlsson  <andersca@codefactory.se>
13455
13456         * dbus/dbus-marshal.c: (_dbus_marshal_string),
13457         (_dbus_demarshal_double), (_dbus_demarshal_int32),
13458         (_dbus_demarshal_uint32), (_dbus_demarshal_string),
13459         (_dbus_marshal_test):
13460         * dbus/dbus-marshal.h:
13461         Add string marshal functions and have the demarshal functions
13462         return the new position.
13463
13464 2002-12-25  Havoc Pennington  <hp@pobox.com>
13465
13466         * doc/dbus-sasl-profile.txt: docs on the authentication protocol,
13467         it is a simple protocol that just maps directly to SASL.
13468
13469         * dbus/dbus-auth.h, dbus/dbus-auth.c: authentication protocol
13470         initial implementation, not actually used yet.
13471
13472         * dbus/dbus-string.c (_dbus_string_find): new function
13473         (_dbus_string_equal): new function
13474         (_dbus_string_base64_encode): new function
13475         (_dbus_string_base64_decode): new function
13476
13477 2002-12-25  Anders Carlsson  <andersca@codefactory.se>
13478
13479         * dbus/Makefile.am:
13480         * dbus/dbus-marshal.c: (swap_bytes), (_dbus_marshal_double),
13481         (_dbus_marshal_int32), (_dbus_marshal_uint32),
13482         (_dbus_demarshal_double), (_dbus_demarshal_int32),
13483         (_dbus_demarshal_uint32), (_dbus_marshal_test):
13484         * dbus/dbus-marshal.h:
13485         * dbus/dbus-protocol.h:
13486         * dbus/dbus-test.c: (main):
13487         * dbus/dbus-test.h:
13488         Add un-optimized marshalling/demarshalling routines.
13489
13490 2002-12-25  Harri Porten  <porten@kde.org>
13491
13492         * qt/dbus-qt.h: adjusted ctor and getter to KDE/Qt conventions
13493
13494 2002-12-24  Zack Rusin  <zack@kde.org>
13495
13496         * qt/dbus-qthread.cc: adding - integrates QMutex into Dbus
13497         * qt/dbus-qt.h: skeleton with two sample implemenatation of the
13498         main loop stuff
13499
13500 2002-12-24  Havoc Pennington  <hp@pobox.com>
13501
13502         * glib/dbus-gthread.c: fix include
13503
13504         * glib/dbus-glib.h: rename DBusMessageHandler for now.
13505         I think glib API needs to change, though, as you don't
13506         want to use DBusMessageFunction, you want to use the
13507         DBusMessageHandler object. Probably
13508         dbus_connection_open_with_g_main_loop()
13509         and dbus_connection_setup_g_main_loop() or something like that
13510         (but think of better names...) that just create a connection
13511         that has watch/timeout functions etc. already set up.
13512
13513         * dbus/dbus-connection.c
13514         (dbus_connection_send_message_with_reply): new function just to
13515         show how the message handler helps us deal with replies.
13516
13517         * dbus/dbus-list.c (_dbus_list_remove_last): new function
13518
13519         * dbus/dbus-string.c (_dbus_string_test): free a string that
13520         wasn't
13521
13522         * dbus/dbus-hash.c: use memory pools for the hash entries
13523         (rebuild_table): be more paranoid about overflow, and
13524         shrink table when we can
13525         (_dbus_hash_test): reduce number of sprintfs and write
13526         valid C89. Add tests for case where we grow and then
13527         shrink the hash table.
13528
13529         * dbus/dbus-mempool.h, dbus/dbus-mempool.c: memory pools
13530
13531         * dbus/dbus-connection.c (dbus_connection_register_handler)
13532         (dbus_connection_unregister_handler): new functions
13533
13534         * dbus/dbus-message.c (dbus_message_get_name): new
13535
13536         * dbus/dbus-list.c: fix docs typo
13537
13538         * dbus/dbus-message-handler.h, dbus/dbus-message-handler.c:
13539         an object representing a handler for messages.
13540
13541 2002-12-16  Anders Carlsson  <andersca@codefactory.se>
13542
13543         * glib/dbus-glib.h:
13544         * glib/dbus-gthread.c: (dbus_gthread_init):
13545         Don't use the gdbus prefix for public functions.
13546
13547 2002-12-16  Anders Carlsson  <andersca@codefactory.se>
13548
13549         * Makefile.am:
13550         * configure.in:
13551         Add GLib checks and fixup .pc files
13552
13553         * glib/Makefile.am:
13554         * glib/dbus-glib.h:
13555         * glib/dbus-gmain.c: (gdbus_connection_prepare),
13556         (gdbus_connection_check), (gdbus_connection_dispatch),
13557         (gdbus_add_connection_watch), (gdbus_remove_connection_watch),
13558         (dbus_connection_gsource_new):
13559         * glib/dbus-gthread.c: (dbus_gmutex_new), (dbus_gmutex_free),
13560         (dbus_gmutex_lock), (dbus_gmutex_unlock), (dbus_gthread_init):
13561         * glib/test-dbus-glib.c: (message_handler), (main):
13562         Add GLib support.
13563
13564 2002-12-15  Harri Porten  <porten@kde.org>
13565
13566         * autogen.sh: check for libtoolize before attempting to use it
13567
13568         * dbus/dbus-transport-unix.c: include <sys/time.h> for timeval
13569         struct.
13570
13571         * .cvsignore: ignore more stamp files
13572
13573         * dbus/dbus-watch.c (_dbus_watch_list_new): fixed doc error
13574
13575         * test/Makefile.am: added -I$(top_srcdir) to be able to compile
13576         without make install.
13577
13578 2002-12-15  Havoc Pennington  <hp@pobox.com>
13579
13580         * dbus/dbus-threads.c: add thread stubs that a higher library
13581         layer can fill in. e.g. the GLib wrapper might fill them in with
13582         GThread stuff. We still need to use this thread API to
13583         thread-safe-ize the library.
13584
13585 2002-12-12  Havoc Pennington  <hp@pobox.com>
13586
13587         * dbus/dbus-transport-unix.c, dbus/dbus-server-unix.c: use the
13588         below new interfaces and include fewer system headers.
13589
13590         * dbus/dbus-sysdeps.c (_dbus_read): new function
13591         (_dbus_write): new function
13592         (_dbus_write_two): new function
13593         (_dbus_connect_unix_socket): new function
13594         (_dbus_listen_unix_socket): new function
13595
13596         * dbus/dbus-message-internal.h: change interfaces to use
13597         DBusString
13598
13599 2002-12-11  Havoc Pennington  <hp@pobox.com>
13600
13601         * dbus/dbus-types.h: add dbus_unichar
13602
13603         * dbus/dbus-internals.c (_dbus_verbose): use _dbus_getenv
13604
13605         * dbus/dbus-connection.c (dbus_connection_send_message): return
13606         TRUE on success
13607
13608         * dbus/dbus-transport.c: include dbus-watch.h
13609
13610         * dbus/dbus-connection.c: include dbus-message-internal.h
13611
13612         * HACKING: add file with coding guidelines stuff.
13613
13614         * dbus/dbus-string.h, dbus/dbus-string.c: Encapsulate all string
13615         handling here, for security purposes (as in vsftpd). Not actually
13616         using this class yet.
13617
13618         * dbus/dbus-sysdeps.h, dbus/dbus-sysdeps.c: Encapsulate all
13619         system/libc usage here, as in vsftpd, for ease of auditing (and
13620         should also simplify portability). Haven't actually moved all the
13621         system/libc usage into here yet.
13622
13623 2002-11-25  Havoc Pennington  <hp@pobox.com>
13624
13625         * dbus/dbus-internals.c (_dbus_verbose): fix to not
13626         always print the first verbose message.
13627
13628 2002-11-24  Havoc Pennington  <hp@pobox.com>
13629
13630         * test/echo-client.c, test/echo-server.c: cheesy test
13631         clients.
13632
13633         * configure.in (AC_CHECK_FUNCS): check for writev
13634
13635         * dbus/dbus-message.c (_dbus_message_get_network_data): new
13636         function
13637
13638         * dbus/dbus-list.c (_dbus_list_foreach): new function
13639
13640         * dbus/dbus-internals.c (_dbus_verbose): new function
13641
13642         * dbus/dbus-server.c, dbus/dbus-server.h: public object
13643         representing a server that listens for connections.
13644
13645         * dbus/.cvsignore: create
13646
13647         * dbus/dbus-errors.h, dbus/dbus-errors.c:
13648         public API for reporting errors
13649
13650         * dbus/dbus-connection.h, dbus/dbus-connection.c:
13651         public object representing a connection that
13652         sends/receives messages. (Same object used for
13653         both client and server.)
13654
13655         * dbus/dbus-transport.h, dbus/dbus-transport.c:
13656         Basic abstraction for different kinds of stream
13657         that we might read/write messages from.
13658
13659 2002-11-23  Havoc Pennington  <hp@pobox.com>
13660
13661         * dbus/dbus-internals.h (_DBUS_INT_MAX): add _DBUS_INT_MIN
13662         _DBUS_INT_MAX
13663
13664         * dbus/dbus-test.c (main): add list test, and include
13665         dbus-test.h as intended
13666
13667         * dbus/dbus-hash.c (_dbus_hash_table_remove_string)
13668         (_dbus_hash_table_remove_int): return value indicates
13669         whether the entry existed to remove
13670
13671         * dbus/dbus-list.c: add linked list utility class,
13672         with docs and tests
13673
13674         * dbus/dbus-hash.c: add TODO item about shrinking the hash bucket
13675         array sometimes.
13676
13677 2002-11-23  Havoc Pennington  <hp@pobox.com>
13678
13679         * Doxyfile.in (INCLUDE_FILE_PATTERNS): expand DBUS_BEGIN_DECLS/
13680         DBUS_END_DECLS to nothing, that should fix this once and for all
13681
13682         * Doxyfile.in (JAVADOC_AUTOBRIEF): set to YES
13683
13684         * dbus/dbus-message.c, dbus/dbus-hash.c:
13685         add some missing @brief
13686
13687 2002-11-23  Havoc Pennington  <hp@pobox.com>
13688
13689         * dbus/dbus-message.h: put semicolons after DEBUG_BEGIN_DECLS
13690         to avoid confusing Doxygen
13691
13692         * dbus/dbus-hash.c: @} not }@
13693
13694         * dbus/dbus-message.c (struct DBusMessage): split out
13695         internals docs
13696
13697 2002-11-23  Havoc Pennington  <hp@pobox.com>
13698
13699         * configure.in: pile on more warning flags if using gcc
13700
13701         * Doxyfile.in (EXTRACT_STATIC): set to NO, so we don't have
13702         to document static functions
13703
13704         * configure.in: add summary to end of configure so it
13705         looks nice and attractive
13706
13707         * dbus/dbus-hash.c: finish implementation and write unit
13708         tests and docs
13709
13710         * configure.in: add --enable-tests to enable unit tests
13711
13712         * dbus/dbus-test.c: test program to run unit tests
13713         for all files in dbus/*, initially runs a test for
13714         dbus-hash.c
13715
13716         * dbus/dbus-internals.h: file to hold some internal utility stuff
13717
13718 2002-11-22  Havoc Pennington  <hp@redhat.com>
13719
13720         * dbus/dbus-hash.c: copy in Tcl hash table, not yet
13721         "ported" away from Tcl
13722
13723         * dbus/dbus-types.h: header for types such as dbus_bool_t
13724
13725 2002-11-22  Havoc Pennington  <hp@redhat.com>
13726
13727         * dbus/dbus.h: fixups for doc warnings
13728
13729         * Doxyfile.in (FILE_PATTERNS): we need to scan .h to pick up
13730         macros
13731         (QUIET): make it quiet so we can see warnings
13732
13733         * dbus/dbus-memory.c: teach D-BUS to allocate and free memory
13734
13735 2002-11-22  Havoc Pennington  <hp@redhat.com>
13736
13737         * Makefile.am: include "Doxyfile" target in all-local
13738
13739         * configure.in: generate the Doxyfile
13740
13741         * Doxyfile.in: move Doxyfile here, so we can use
13742         configure to generate a Doxyfile with the right
13743         version number etc.
13744
13745 2002-11-22  Havoc Pennington  <hp@redhat.com>
13746
13747         * dbus/dbus-message.c: move inline docs into .c file
13748
13749         * Doxyfile (OUTPUT_DIRECTORY): move output to doc/api
13750         so all docs are under doc/
13751         (MAN_EXTENSION): generate man pages. Use extension
13752         ".3dbus" which matches ".3qt" on my system,
13753         I guess this is OK, I don't know really.
13754         (FILE_PATTERNS): look for .c files not .h, makes sense
13755         for plain C I think
13756
13757 2002-11-22  Havoc Pennington  <hp@pobox.com>
13758
13759         * Makefile.am (SUBDIRS): rename subdir "server" to "bus"
13760         because any app can be a server, and any app can be a client,
13761         the bus is a special kind of server.
13762
13763 Thu Nov 21 23:35:31 2002  Zack Rusin  <zack@kde.org>
13764
13765         * Doxyfile : adding. Still needs Makefile rules to be generated
13766         automatically (just run "doxygen" in the toplevel dir for now to
13767         generate docs)
13768
13769         * dbus/dbus-message.h : Adding sample docs (javadoc since
13770         resembles gtk-doc a little more)
13771
13772         * dbus/dbus.h : Adding sample docs
13773
13774 2002-11-21  Havoc Pennington  <hp@redhat.com>
13775
13776         * dbus/Makefile.am (INCLUDES): define DBUS_COMPILATION
13777         so we can allow ourselves to include files directly,
13778         instead of having to use dbus.h
13779
13780         * dbus/dbus.h: fill in
13781
13782         * dbus/dbus-message.h: sketch out a sample header file.
13783         Include griping if you include it directly instead of
13784         via dbus.h
13785
13786         * dbus/dbus-macros.h: new file with macros for extern "C",
13787         TRUE/FALSE, NULL, etc.
13788
13789         * doc/file-boilerplate.c: put include guards in here
13790
13791 2002-11-21  Havoc Pennington  <hp@redhat.com>
13792
13793         * doc/file-boilerplate.c: include both AFL and GPL boilerplate.
13794
13795         * COPYING: include the GPL as well, and license code
13796         under both AFL and GPL.
13797
13798 2002-11-21  Havoc Pennington  <hp@redhat.com>
13799
13800         * acconfig.h: get rid of this
13801
13802         * autogen.sh (run_configure): add --no-configure option
13803
13804         * configure.in: remove AC_ARG_PROGRAM to make
13805         autoconf complain less. add AC_PREREQ.
13806         add AC_DEFINE third arg.
13807
13808 2002-11-21  Anders Carlsson  <andersca@codefactory.se>
13809
13810         * doc/Makefile.am:
13811         Fix references so we can distcheck.
13812
13813 2002-11-21  Havoc Pennington  <hp@redhat.com>
13814
13815         * Initial module creation
13816