These are all patches from Kjartan Maraas <kmaraas at gnome dot org>
[platform/upstream/dbus.git] / ChangeLog
1 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
2
3         These are all patches from Kjartan Maraas <kmaraas at gnome dot org>
4         with cleanups of bugs found from Coverity reports:
5
6         * dbus/dbus-sysdeps-util.c (_dbus_write_pid_file):
7         close the file on error to avoid a leak
8
9         * bus/expirelist.c (bus_expire_list_test):
10         Check for NULL on dbus_new0
11
12         * bus/activation.c (update_directory):
13         remove dead code
14
15         * bus/config-parser.c (merge_service_context_hash, start_selinux_child):
16         Fix some leaks
17
18         * bus/bus.c (process_config_every_time):
19         Fixed a leak
20
21         * bus/desktop-file.c (parse_key_value):
22         Fixed leak
23
24         * bus/selinux.c (bus_selinux_id_table_insert):
25         Fixed leak
26
27 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
28
29         * dbus/dbus-object-tree.c (_dbus_object_subtree_new):
30         remove dead code
31
32 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
33
34         * tools/run-with-tmp-session-bus.sh: use #!/bin/sh instead of
35         #!/bin/bash
36
37 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
38
39         * Doxyfile.in: fix the INPUT line so we can generate docs 
40         when sourcedir != builddir (patch from Cygwin Ports maintainer
41         <yselkowitz at users dot sourceforge dot net>
42
43 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
44
45         * dbus/dbus-sysdeps.h:
46         * dbus/dbus-sysdeps.c: 
47         * dbus/dbus-string.c: 
48         s/_dbus_printf_length/_dbus_printf_string_upper_bound to comform with
49         GLib's function which does the same thing
50
51         * configure.in:
52         * bus/Makefile.am:
53         * bus/dir-watch-default.c:
54         * bus/dir-watch-dnotify.c:
55         * bus/dir-watch-kqueue.c:
56         Add kqueue directory watching for freebsd and split the directory
57         watching code into seperate files per method/arch
58         (patches from Timothy Redaelli <drizzt at gufi dotorg>)
59
60 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
61
62         * configure.in:
63         * tools/Makefile.am:
64         * tools/dbus-launch.c:
65         * bus/Makefile.am:
66         allow --with-dbus-daemondir switch to be used to make the
67         daemon install to a seperate bindir like /usr/libexec
68         (patch from Brian Cameron <brian dot cameron at sun dot com)
69
70 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
71
72         * bus/Makefile.am (install-data-hook): removed the slash after 
73         $(DESTDIR) so we don't get the double slash which does not work
74         in windows (patch from Andras Porjesz 
75         <andras dot porjesz at siemens dot com>)
76
77 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
78
79         * dbus/dbus-sysdeps.h:
80         * dbus/dbus-sysdeps.c: 
81           add _dbus_printf_length (patch from Peter Kümmel 
82           <syntheticpp at gmx dot net>)
83
84 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
85
86         * dbus/dbus-internals.c: unistd.h is not used 
87         (_dbus_verbose_real): only enable verbose printing 
88         if DBUS_VERBOSE environment var is set to '1'
89         (patch from Peter Kümmel <syntheticpp at gmx dot net>)
90
91 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
92
93         * configure.in: add a GCC flag check for -Wdeclaration-after-statement
94         so we still compile on older gcc (patch from Frederic Peters 
95         <fpeters at 0d dot be>
96
97 2006-08-04  Havoc Pennington  <hp@redhat.com>
98
99         * configure.in: add -Wdeclaration-after-statement
100
101         * dbus/dbus-connection.c: change all the pending call stuff to
102         reflect the fact that pending call operations use the connection
103         lock
104
105         * dbus/dbus-pending-call.c: add locking here
106
107         * dbus/dbus-errors.c (struct DBusRealError): don't make the name
108         field const consistent with how message field is done
109
110 2006-08-03  John (J5) Palmieri  <johnp@redhat.com>
111
112         * s/D-BUS/D-Bus/g
113
114 2006-08-03  John (J5) Palmieri  <johnp@redhat.com>
115
116         * dbus/dbus-object-tree.c: Patch by Benjamin Otte 
117         <in7y118 at public.uni-hamburg dot de> - fix invalid
118         read/write reported by valgrind
119
120 2006-07-24  John (J5) Palmieri  <johnp@redhat.com>
121
122         * Released 0.91
123
124 2006-07-22  John (J5) Palmieri  <johnp@redhat.com>
125
126         * dbus/dbus-connection.c:
127         (_dbus_connection_attach_pending_call_unlocked):
128         (connection_timeout_and_complete_all_pending_calls_unlocked):
129         Make sure we set timeout_added on pending calls to FALSE when
130         we remove the timeout from the connection
131
132 2006-07-21  John (J5) Palmieri  <johnp@redhat.com>
133
134         * Removed some extra bindings stuff lingering around (thanks timo)
135         * dbus-pendingcall.c (_dbus_pending_call_new): 
136         s/dbus_connection_ref/_dbus_connection_ref_unlocked fixes assertion
137         when we tried to take a lock on an already locked connection
138
139 2006-07-17  John (J5) Palmieri  <johnp@redhat.com>
140
141         * Released 0.90
142
143 2006-07-17  Havoc Pennington  <hp@redhat.com>
144
145         * dbus/dbus-marshal-basic.c (_dbus_type_to_string): support 64-bit
146         ints, reported by Owen Taylor
147
148 2006-07-17  John (J5) Palmieri  <johnp@redhat.com>
149
150         * doc/TODO:
151         * dbus/dbus-bus.c:
152         * dbus-errors.c:
153         * dbus/dbus-marshal-validate.c:
154           Removed TODO items which were fixed or are no longer relevent
155
156 2006-07-17  John (J5) Palmieri  <johnp@redhat.com>
157
158         * dbus-qt4-1.pc.in, dbus-sharp.pc.in:
159         Remove stray files from the stripped bindings
160
161 2006-07-16  Havoc Pennington  <hp@redhat.com>
162
163         * dbus/dbus-pending-call.c (_dbus_pending_call_set_timeout_error):
164         Improve the error message on reply timeout
165
166 2006-07-14  John (J5) Palmieri  <johnp@redhat.com>
167
168         * Remove all bindings
169
170 2006-07-13  John (J5) Palmieri  <johnp@redhat.com>
171
172         * dbus-connection.c (dbus_connection_send_with_reply): return TRUE
173         and set pending_reply out arg to NULL is connection is disconnected
174         (connection_timeout_and_complete_all_pending_calls_unlocked): New
175         static method for cleaning up pending calls on disconnect
176         (_dbus_connection_get_dispatch_status_unlocked): If we have pending 
177         calls queued timeouts on disconnect 
178
179          * dbus/dbus-pending-call.c (_dbus_pending_call_set_connection):
180         Remove 
181
182 2006-07-13  Carlos Garcia Campos  <carlosgc@gnome.org>
183
184         * bus/activation.[ch] (bus_activation_list_services): new function to 
185         get the list of services that can be activated
186
187         * bus/dispatch.c: test coverage for the new bus method
188         ListActivatableNames
189
190         * bus/driver.c: new bus method ListActivatableNames to get the list of
191         services that can be activated
192
193         * doc/dbus-specification.xml: ListActivatableNames method documentation
194
195 2006-07-12  John (J5) Palmieri  <johnp@redhat.com>
196         * dbus/Makefile.am: add dbus-pending-call-internal.h to the list of
197         source files
198
199 2006-07-12  John (J5) Palmieri  <johnp@redhat.com>
200         * dbus/dbus-message-factory.c:
201         Fix index into an array (patch by Peter Kümmel <syntheticpp at gmx.net>)
202
203 2006-07-12  John (J5) Palmieri  <johnp@redhat.com>
204         * dbus/dbus-connection-internal.h:
205         * dbus/dbus-connection.c:
206         * file dbus/dbus-pending-call.c:
207         * dbus/dbus-pending-call.h:
208         Make DBusPendingCall an opaque type even to D-Bus internals
209
210 2006-07-07  John (J5) Palmieri  <johnp@redhat.com>
211
212         * dbus/dbus-connection.h: remove connection_disconnect and replace with
213         connection_close
214
215         * dbus/dbus-connection.c: include dbus-bus.h
216         (_dbus_connection_read_write_dispatch): make static
217
218 2006-07-07  John (J5) Palmieri  <johnp@redhat.com>
219
220         * dbus/dbus-connection.c (dbus_connection_close): removed deprecated
221         function
222         (dbus_connection_dispatch): On disconnect unref any shared connections
223
224         * dbus/dbus-bus.c (_dbus_bus_check_connection_and_unref): new function
225         for cleaning up shared connections on disconnect
226         (internal_bus_get): get a hard refrence to shared connections when
227         they are created
228         
229         * doc/TODO: Remove items which are no longer relevent or have been fixed
230         Split 1.0 todo items with a 0.90 freeze todo list
231  
232 2006-06-14  Ross Burton  <ross@openedhand.com>
233
234         * glib/dbus-gobject.c:
235         Free a leaking GArray (surely not!) in dbus_g_method_return.
236
237 2006-06-14  Ross Burton  <ross@openedhand.com>
238
239         * tools/Makefile.am:
240         * tools/dbus-monitor.c:
241         Don't use the GLib bindings in dbus-monitor (patch from Ralf
242         Habacker).
243         
244 2006-06-14  Ross Burton  <ross@openedhand.com>
245
246         * tools/dbus-print-message.c:
247         Also print the object path when outputting signals or method calls.
248
249 2006-06-13  Thiago Macieira <thiago.macieira@trolltech.com>
250
251         * qt/src/Makefile.am: install the qdbus.h header.
252         This allows people to actually use the installed code.
253
254 2006-06-12  Ross Burton  <ross@openedhand.com>
255
256         * glib/dbus-gproxy.c:
257         Don't leak a GArray when firing signals (thank Rob Taylor for review).
258
259 2006-06-12  Thiago Macieira <thiago.macieira@trolltech.com>
260
261         * Released 0.62
262
263 2006-06-12  Thiago Macieira <thiago.macieira@trolltech.com>
264
265         * dbus/dbus-arch-deps.h.in: Remove spurious semi-colons that
266         break pedantic builds. Closes bug 6043 (patch approved by
267         Havoc back in February).
268
269 2006-06-12  Thiago Macieira <thiago.macieira@trolltech.com>
270
271         * qt/src/qdbusintegrator.cpp: Fix bug in parsing async methods
272         that took a QDBusMessage parameter.
273         * qt/src/qdbusbus.h: Add a default flag for RequestName.
274         * qt/tools/dbus.cpp: Don't use automatic call because we might
275         be calling an async method: request a reply.
276
277 2006-06-11  Thiago Macieira <thiago.macieira@trolltech.com>
278
279         * test/qt/*: Update the testcases, including testing the new
280         functionality of sending null QByteArray and QString over the
281         bus. Add new headertest test and restore the old
282         qdbusxmlparser test.
283
284 2006-06-11  Thiago Macieira <thiago.macieira@trolltech.com>
285
286         * qt/tools/dbuscpp2xml.cpp: Compile on Windows.
287         * qt/tools/dbusidl2cpp.cpp: Add missing newline.
288
289         * qt/examples/Makefile.am:
290         * qt/examples/chat.h: Use UI-generated files with the ui_*.h
291         form.
292
293         * qt/src/qdbusmarshall.cpp: Allow sending of QString() and
294         QByteArray() (nulls) over the bus.
295         * qt/src/qdbusabstractinterface.cpp: Use the correct variable,
296         the one that has the signature suffix stripped.
297         * qt/src/qdbusreply.h: Make some methods const.
298
299 2006-06-09  Thiago Macieira <thiago.macieira@trolltech.com>
300
301         Patch from Timo Hoenig <thoenig@suse.de>.
302
303         * qt/dbus/Makefile.am: New file.  Fix "make dist", add all headers
304         required during build to EXTRA_DIST.
305         * qt/src/Makefile.am: Fix "make dist", add 'qdbus.h' to EXTRA_DIST.
306         * qt/Makefile.am: Fix "make dist", add 'dbus' to DIST_SUBDIRS.
307         * configure.in: Fix "make dist", take care that the Makefile for
308         qt/dbus is being generated.
309
310 2006-06-07  John (J5) Palmieri  <johnp@redhat.com>
311
312         * bus/bus.c: Fix eavesdropping on method calls
313
314 2006-06-07  John (J5) Palmieri  <johnp@redhat.com>
315
316         * configure.in:
317         * dbus/dbus-userdb-util.c:
318         Add Solaris console owner patch from Artem Kachitchkine
319
320 2006-06-07  Thiago Macieira <thiago.macieira@trolltech.com>
321
322         * qt/Makfile.am:
323         * qt/src/Makefile.am: Fix the EXTRA_DIST after the
324         reorganisation. Thanks to Timo Hoenig for pointing this out.
325
326 2006-06-06  Robert McQueen  <robot101@debian.org>
327
328         * glib/dbus-gtype-specialized.c: Fix obvious leak of GArray in every
329           call to dbus_g_type_get_struct.
330
331 2006-06-06  Robert McQueen  <robot101@debian.org>
332
333         * glib/dbus-gvalue-utils.c: Fix the failing test where static string
334           pointers were put into a GPtrArray-based specialised collection, and
335           then freed along with the array. GValues which you add into
336           collections or maps which have the NOCOPY flag set are assumed to not
337           belong to the caller, so rather than the existing pointer-stealing
338           semantics, they are copied instead. Given that the main consumers of
339           this abstraction are the bindings themselves, I don't think this is
340           too bad, but others should watch their choice of take vs set_static.
341
342 2006-06-06  Robert McQueen  <robot101@debian.org>
343
344         * glib/dbus-gvalue-utils.c: Spotted a warning about the return value
345           of g_slist_prepend not being used. Fixed copying of slist-based
346           specialised collections, then wrote a test case and found that it was
347           all broken. Went on to fix iterating and appending too. Good thing
348           nobody uses this code yet.
349
350 2006-06-06  Robert McQueen  <robot101@debian.org>
351
352         * glib/dbus-gvalue-utils.c: Remove duplicated code by having all of
353           the iterators use gvalue_take_ptrarray_value (the GValues themselves
354           are discarded without unsetting, so it makes no difference whether
355           we take or set_static). Remove cases for G_TYPE_POINTER because
356           there really is nothing useful we can do with them in our
357           specialised types - we *need* boxed copy/free functions at the very
358           least.
359
360 2006-06-05  Thiago Macieira <thiago.macieira@trolltech.com>
361
362         * qt/dbus: Add directory. I had forgotten to add this
363         yesterday after the move...
364
365         * qt/examples/Makefile.am:
366         * qt/examples/dbus.cpp: Moved to qt/tools/dbus.cpp.
367
368         * qt/tools/Makefile.am:
369         * qt/tools/dbus.cpp: Moved from qt/examples/dbus.cpp.
370         Added feature to get and set properties.
371         Added validation of service, object path and interface names.
372
373         * qt/tools/dbusidl2cpp.cpp: Two new features:
374         1) Allow specifying both the header and the source file names,
375         by separating them with a colon.
376         2) Don't write an interface output if the -p switch wasn't
377         given, but the -a was.
378
379         * qt/src/*: Fix usage of Iterators and ConstIterators.
380         Fix shadowing of variables by other variables (-Wshadow).
381         Fix keyword-cleanliness in headers.
382         Fix ASCII-cast (QLatin1String, QLatin1Char).
383         Fix validation of member names.
384         Add extra checking of introspection data during XML parsing.
385         Various bug fixes.
386
387 2006-06-04  Thiago Macieira <thiago.macieira@trolltech.com>
388
389         * dbus/Makefile.am:
390         * dbus/qdbus.h: Remove unnecessary file. This is mirrored into
391         qt/dbus/qdbus.h now.
392
393 2006-06-04  Thiago Macieira <thiago.macieira@trolltech.com>
394
395         * configure.in: Make --disable-qt actually do
396           something. Patch inspired by Zack Rusin.
397
398 2006-06-04  Thiago Macieira <thiago.macieira@trolltech.com>
399
400         * qt/: Update to Subversion r548032.
401         This includes a big reorganisation of the files inside the
402         subdir.
403
404 2006-05-30  Sjoerd Simons  <sjoerd@luon.net>
405
406         * dbus/dbus-sysdeps.c: Make tcp socket connection error somewhat more
407         clear:  
408         "Failed to connect to socket <host>:<port> <error>" instead of
409         "Failed to connect to socket <host>: <error>:<port>"
410
411         * dbus/dbus-transport-unix.c: Fix crash when no host option is given
412         for a tcp transport. 
413
414 2006-05-29  Thiago Macieira  <thiago.macieira@trolltech.com>
415
416         * qt/*: Update the QtDBus bindings up to revision 546310 in
417         Subversion.
418         This adds the dbuscpp2xml tool, that parses a C++ header and
419         outputs a D-BUS Introspection XML.
420
421 2006-05-21  Havoc Pennington  <hp@redhat.com>
422
423         * glib/dbus-gproxy.c: Put in a pile of assertions that the proxy name
424         is not NULL when it shouldn't be. Also a couple of possible fixes
425         for #4637 though I don't understand why the bug happens, to be
426         honest... also the object constructor has an assert name != NULL
427         and the name is only currently NULL for peer-to-peer proxies that 
428         I don't think anyone uses? So it should be asserting.
429         Anyway, for now at least see if we get an earlier assertion failure.
430
431         * glib/dbus-gvalue-utils.c: Put in a couple of assertions for
432         apparently broken code to be sure the tests fail and someone 
433         will fix them...
434
435 2006-05-07  Thiago Macieira  <thiago.macieira@trolltech.com>
436
437         * qt/qdbusmarshall.cpp: Fix a problem of demarshalling lists
438         and arrays when they had a single element: has_next returns
439         false, even before you read the element. So, instead, check
440         the array length.
441
442 2006-05-06  Thiago Macieira  <thiago.macieira@trolltech.com>
443
444         * qt/qdbusmessage.cpp:
445         * qt/qdbustypehelper_p.h:
446         * qt/qdbusintegrator.cpp: gcc 3.4 doesn't like Q_FOREACH when
447         the list is a const-reference
448
449 2006-05-03  John (J5) Palmieri  <johnp@redhat.com>
450
451         * Adding old doc patch that never got applied
452         
453         * dbus/bus.c (dbus_bus_add_match): Add documentation
454
455         * doc/dbus-specification.xml: Add documentation for the match rules
456           and the AddMatch and RemoveMatch methods
457
458 2006-05-02  Thiago Macieira  <thiago.macieira@trolltech.com>
459
460         * qt/dbusidl2cpp.cpp: There's no callAsync. Use the correct
461         call (r535506)
462
463         * qt/dbusidl2cpp.cpp:
464         * qt/qdbusabstractadaptor.cpp:
465         * qt/qdbusabstractadaptor.h: Make QDBusAdaptorConnector be a
466         sibling of the QDBusAbstractAdaptor objects instead of the
467         parent. (r535848)
468
469         * qt/dbusidl2cpp.cpp:
470         * qt/qdbusabstractinterface.cpp:
471         * qt/qdbusabstractinterface.h:
472         * qt/qdbusabstractinterface_p.h:
473         * qt/qdbusinterface.cpp: Make properties in interfaces
474         actually work. The code that was generated would not compile,
475         due to moc calls to functions that did not exist. They now
476         shall. (r536571)
477
478 2006-04-30  Thiago Macieira  <thiago.macieira@trolltech.com>
479
480         * Makefile.am:
481         * configure.in:
482         * dbus-qt4-1.pc.in: Add a pkg-config file for libdbus-qt4-1.
483         Thanks to Brad Hards for providing the patch
484
485 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
486
487         * qt/dbusidl2cpp.cpp: There's no callAsync. Use the correct
488         call. (r535506)
489
490 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
491
492         * qt/examples/dbus.cpp: Enhance error messages and use
493         QDBusInterfacePtr.
494
495 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
496
497         * qt/qdbusinterface.h: Rename QDBusRef to QDBusInterfacePtr
498         and disable the copy operators. (r533772, r534746)
499
500         * qt/qdbuserror.h: Remove the automatic cast to bool. (r533929)
501
502         * qt/qdbusabstractinterface.cpp:
503         * qt/qdbusabstractinterface.h: Change the default call mode to
504         not use the event loop. Add convenience call() methods that
505         take a CallMode parameter. (r534042)
506
507         * qt/qdbusconnection.h: Change the default call mode to not
508         use the event loop. (r534042)
509
510         * qt/qdbusinterface.cpp:
511         * qt/qdbusinterface.h: Add a method to tell us if the
512         interface is valid (since we don't return a null pointer
513         anymore) (r534099)
514
515         * qt/qdbusinterface_p.h: Don't crash if metaObject is 0
516         (r534101)
517
518         * qt/qdbusinternalfilters.cpp: Decouple the introspection
519         function in two so taht we get the chance to introspect
520         without having a QDBusMessage (r534102)
521
522         * qt/qdbusbus.h:
523         * qt/qdbusconnection.cpp:
524         * qt/qdbusconnection_p.h:
525         * qt/qdbusintegrator.cpp: Keep a list of our own names to
526         avoid a round-trip to the server when attempting to introspect
527         one of our own objects. Also make sure the filter functions
528         match the empty interface as well. (r534108)
529         Don't keep the connection names. Instead, trust the unique
530         connection name (r534111)
531         Remove event loop usage (r534112)
532
533 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
534
535         * qt/qdbusintegrator.cpp: Fix assertion failure spotted by
536         Brad Hards.
537
538 2006-04-28  Robert McQueen  <robot101@debian.org>
539
540         * glib/dbus-gproxy.c: Fix properties so that they can be given in
541         any order, making it easier for people who inherit from this
542         object.
543
544 2006-04-28  Robert McQueen  <robot101@debian.org>
545
546         * glib/dbus-gvalue-utils.c: Patch from Jakub Stachowski to fix leaking
547         of memory from within pointer arrays and lists. Fixes bug #6300.
548
549 2006-04-28  Robert McQueen  <robot101@debian.org>
550
551         * glib/dbus-gvalue.c: Patch from Jakub Stachowski to fix a leak in
552         generating struct signatures. Fixes bug #6083.
553
554 2006-04-28  Robert McQueen  <robot101@debian.org>
555
556         * qt/Makefile.am: Tweak CLEANFILES from qdbusconnection.moc
557         to qdbusconnection_p.moc.
558
559 2006-04-24 John (J5) Palmieri <johnp@redhat.com>
560
561         * README, INSTALL: Doc fixes
562         Patch from Brad Hards <bradh at frogmouth.net>
563
564 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
565
566         * qt/examples/dbus.cpp: Use the new merged-interface mode for
567         the dynamic meta object. No need to guess which interface to
568         call.
569
570 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
571
572         * qt/qdbusconnection_p.h:
573         * qt/qdbusmetaobject.cpp:
574         * qt/qdbusmetaobject_p.h:
575         * qt/qdbusintegrator.cpp: Use the new merged-interface mode
576         for the dynamic meta object. No need to guess which
577         interface to call.
578         * qt/qdbusabstractinterface_p.h:
579         * qt/qdbusconnection.cpp:
580         * qt/qdbusintegrator.cpp:
581         * qt/qdbusinterface.cpp:
582         * qt/qdbusinterface.h: Make findInterface always return a non-null pointer.
583         Add a QDBusRef that looks and behaves like DCOPRef.
584
585 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
586
587         * dbus/dbus-connection.c: Interfaces are optional in method
588         calls, so don't give up if the interface parameter is NULL.
589         Patch reviewed by Havoc Pennington.
590
591 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
592
593         * qt/qdbusreply.h: Add default constructor and operator=
594           (r532625)
595         * qt/qdbustypehelper_p.h: Use a clean namespace: no foreach()
596           in public headers (r532952)
597         * qt/qdbusabstractinterface.cpp:
598         * qt/qdbusabstractinterface_p.h: Add the AutoDetect mode and
599           make it the default (r532951)
600
601 2006-04-19  John (J5) Palmieri  <johnp@redhat.com>
602
603         * dbus/dbus-connection.c: Fix asserts
604         Patch from Tim Moloney <t.moloney at verizon.net>
605
606 2006-04-19  John (J5) Palmieri  <johnp@redhat.com>
607
608         * mono/Connection.cs, mono/Message.cs: Check Target type
609         Patch from Aaron Bockover (abockover at novell.com)
610
611 2006-04-13  Thiago Macieira  <thiago.macieira@trolltech.com>
612
613         * INSTALL: fine-tune the requirements for the Qt4 binding.
614
615 2006-04-16  Daniel P. Berrange  <dan@berrange.com>
616
617         * tools/dbus-print-message.c: Added support for printing of all 
618           remaining data types. Fixed logic for indentation of compound
619           data types.
620         
621 2006-04-15  Daniel P. Berrange  <dan@berrange.com>
622
623         * INSTALL: fill out content of file providing DBus specific
624           build installations, followed by generic Auto* INSTALL file
625           content
626         
627 2006-04-13  Thiago Macieira  <thiago.macieira@trolltech.com>
628
629         * qt/qdbusintegrator.cpp: Work around g++ 3.3 bug.
630           Patch by Stefan Eilers. (r529537)
631
632 2006-04-13  Thiago Macieira  <thiago.macieira@trolltech.com>
633
634         * qt/qdbusinternalfilters.cpp: Don't show the parent's
635           contents (r528208)
636
637 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
638
639         * qt/Makefile.am: fix the dependency for
640           qdbusconnection_p.moc. It's included in qdbusintegrator.cpp,
641           not in qdbusconnection.cpp.
642           Thanks to Jakub Stachowski <stachowski@hypair.net> for
643           spotting this.
644
645 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
646
647         * qt/examples/listnames.cpp:
648         * qt/examples/Makefile.am: Three ways to list the names on the
649           bus.
650
651 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
652
653         * test/qt/tst_hal.cpp: Remove the waiting, since it's not
654           needed anymore. Requires Qt 4.1.3 to work properly. (r528148)
655
656 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
657
658         Merge from Subversion:
659         * qt/qt-dbus.qdocconf: Update Trolltech's webpage link to
660           something that exists (r526315)
661         * qt/qdbusinternalfilters.cpp: Correctly detect non-scriptable
662           slots/signals (r526316)
663         * qt/qdbusinternalfilters.cpp: Fix the setProperty call and
664           also return an unknown-method error if the parameters don't
665           match for org.freedesktop.DBus.Properties. (r526842)
666         * qt/examples/dbus.cpp: Allow passing of QVariants (r526843)
667         * qt/qdbusintegrator.cpp: Restore the proper order of
668           delivery: don't make method returns be delivered on priority
669           (r528150)
670
671 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
672
673         * configure.in qt/Makefile.am: add qt/examples
674         * qt/examples: Add QtDBus example programs:
675           - hello: Hello, World
676           - ping: Simple method-calling program
677           - pong: Simple object-exporting program (not using adaptors)
678           - complexping: Interactive method-calling program 
679                 (also gets and sets properties).
680           - complexpong: Sample program exporting methods, signals and
681                 properties, using adaptors.
682           - dbus: Simple implementation of a generic method-calling
683                 program, similar to 'dbus-send', but with semantics
684                 similar to 'dcop'.
685           - chat: Simplistic chat program, implemented using signals
686                 and the system bus. Looks like IRC.
687
688 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
689
690         * configure.in: Detect QtGui (necessary for one of the
691           example programs). Note: this increases the minimum required
692           version of Qt to 4.1.3.
693
694 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
695
696         * test/qt/*: Sync with KDE Subversion revision 523647.
697         Update the testcases to the new API. Remove testcases for
698         classes that are no longer public or have been removed.
699
700 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
701
702         * qt/*: 
703         * dbus/qdbus.h: Sync with KDE Subversion revision
704         523647. Hopefully, this will be the last of the
705         source-incompatible changes. Documentation has been improved;
706         support for QList<basic-types> has been added; QDBusObject is
707         gone; QDBus(Abstract)Interface is now a QObject with
708         auto-generated meta-object; QDBusIntrospection is marked
709         private, since QMetaObject can be used now; lots of bugfixes.
710
711 2006-03-16  John (J5) Palmieri  <johnp@redhat.com>
712
713         Patch from Milosz Derezynski <internalerror at gmail.com>
714         
715         * configure.in:
716         Output the service directory in the configure summary
717
718         * dbus-1.pc.in:
719         Add session_bus_services_dir
720
721 2006-03-10  Ross Burton  <ross@openedhand.com>
722
723         * tools/dbus-print-message.c:
724         Add support for object paths and signatures.
725
726 2006-03-06  Sjoerd Simons <sjoerd@luon.net>
727
728         * bus/bus.c: (bus_context_reload_config): Flush the user database cache on
729         config reload.
730         * bus/dbus-daemon.1.in: Also note that SIGHUP flushes the user/group
731         information caches
732         * dbus/dbus-hash.c: (_dbus_hash_table_remove_all): 
733         * dbus/dbus-hash.h: Add function to remove all entries from a hash table
734         * dbus/dbus-userdb.c: (_dbus_user_database_flush):
735         * dbus/dbus-userdb.h: Add function to flush all user/group information
736         caches.
737
738 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
739
740         * qt/dbusidl2cpp.cpp:
741         * qt/Makefile.am: add the dbusidl2cpp tool, the replacement
742         for dcopidl2cpp, found in the KDE installations (or the more
743         modern kalyptus): generate Qt4 C++ code for the input XML
744         introspection. Currently no IDL parsing.
745
746 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
747
748         * test/qt/*: Update the self-tests.
749
750 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
751
752         * qt/*: 
753         * dbus/qdbus.h: Sync with KDE Subversion revision 516237. This
754         represents the first feature-complete version of the Qt4
755         bindings since I took ove maintainership.
756
757 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
758
759         * qt/Doxyfile: Adding a Doxyfile for the Qt4 bindings
760         dir. This is C++, so we can't use the DBus ones.
761
762 2006-03-02  John (J5) Palmieri  <johnp@redhat.com>
763
764         * python/dbus_bindings.pyx: Remove refrence to sys/cdefs.h
765         (Patch from Artem Kachitchkine <Artem.Kachitchkin at Sun.COM>)
766
767 2006-03-02  John (J5) Palmieri  <johnp@redhat.com>
768
769         * dbus/dbus-connection.c: 
770         (_dbus_connection_block_pending_call):
771         Check to see if our data has already been read off the connection
772         by another blocking pending call before we block in poll.
773         (check_for_reply_and_update_dispatch_unlocked):
774         Code taken from _dbus_connection_block_pending_call - checks for
775         an already read reply and updates the dispatch if there is one.
776
777         * test/name-test/test-pending-call-dispatch.c:
778         New test for making sure we don't get stuck polling a 
779         dbus connection which has no data on the socket when
780         blocking out of order on two or more pending calls.
781
782 2006-02-28  Thiago Macieira <thiago.macieira@trolltech.com>
783
784         * qt/Makefile.am: Patch by Sjoerd Simons. More .moc issues:
785         make/automake don't detect that we're talking about the same
786         .lo file if I specify the full path to the source files.
787
788 2006-02-26  Havoc Pennington  <hp@redhat.com>
789
790         * bus/dbus-daemon.1.in: improve the language in a couple spots I noticed
791
792         * dbus/dbus-bus.c (internal_bus_get): in the error message if the
793         session bus variable is unset, suggest "man dbus-launch" and "man
794         dbus-daemon" to figure out how to fix the problem
795
796 2006-02-25  Havoc Pennington  <hp@redhat.com>
797
798         * glib/dbus-glib-tool.c (usage): fix up the usage message, someone
799         should make this thing use the new glib options parser
800
801 2006-02-25  Thiago Macieira <thiago.macieira@trolltech.com>
802
803         * qt/Makefile.am: Patch by Sjoerd Simons. Fix the path to the
804         .lo files taking moc sources.
805
806 2006-02-25  Havoc Pennington  <hp@redhat.com>
807
808         * dbus/dbus.h, dbus/Makefile.am: add dbus-signature.h to dbus.h
809         and install it as a public header
810
811 2006-02-24  John (J5) Palmieri  <johnp@redhat.com>
812
813         * Released 0.61
814
815 2006-02-24  John (J5) Palmieri  <johnp@redhat.com>
816         
817         * proxies.py: Fix the callchain
818
819 2006-02-24  John (J5) Palmieri <johnp@redhat.com>
820         
821         * patch from Sjoerd Simons <sjoerd at debian.org>:      
822
823         * dbus/dbus-sysdeps-util.c (_dbus_group_info_free): Moved to 
824         dbus/dbus-sysdeps.c
825
826         * dbus/dbus-userdb.c (_dbus_group_info_free_allocated): Don't
827         call _dbus_group_info_free_allocated which causes infinite loop,
828         correctly call _dbus_group_info_free
829
830 2006-02-20  Thiago Macieira <thiago.macieira@trolltech.com>
831
832         * qt/qdbusinterface_p.h:
833         * qt/qdbusinterface.cpp: Use the standard
834         org.freedesktop.DBus.Method.NoReply annotation for the "async"
835         calls instead of creating one for us.
836
837         * qt/qdbusconnection_p.h:
838         * qt/qdbusintegrator.cpp: Remove debugging code.
839
840         * qt/qdbusintegrator.cpp:
841         * qt/qdbusmessage.cpp:
842         * qt/qdbusmessage_p.h:
843         * qt/qdbusmessage.h: Change the behaviour of automatic
844         reply-sending: now a reply is always sent, unless the caller
845         didn't request one or if the user slot has already sent one.
846
847 2006-02-16  Robert McQueen  <robot101@debian.org>
848
849         * configure.in: Patch from Debian packages by Sjoerd Simons
850         <sjoerd@debian.org> to add --with-qt-moc and --with-qt3-moc
851         arguments so it's possible to build both bindings in the
852         same tree.
853
854         * qt/Makefile.am: Fix truncated value so that make dist works.
855
856 2006-02-16  Robert McQueen  <robot101@debian.org>
857
858         * acinclude.m4, configure.in: Patch from Brad Hards
859         <bradh@frogmouth.net> to avoid warnings from autoconf 1.9 by
860         improving quoting, re-ordering a few checks, and a few other
861         aesthetic tidy-ups.
862
863 2006-02-16  Robert McQueen  <robot101@debian.org>
864
865         * dbus/dbus-message.c (dbus_message_iter_get_fixed_array):
866         Patch from Rob Taylor <rob.taylor@collabora.co.uk> to correct a bogus
867         assertion that the next element to read from the iter is fixed in
868         size. This is not the case when you are at the end of the iter,
869         because the next element type is INVALID.
870
871         * dbus/dbus-string.c (_dbus_string_init_const_len): Correct a
872         a bogus assert which means that you may not initialise a 0-length
873         string unless you provide a non-NULL pointer. This prevented
874         you from marshalling messages containing zero-length arrays in
875         some cases.
876
877         * glib/dbus-gvalue.c (demarshal_collection_array): Another patch
878         from Rob to correct bogus asserts when trying to demarshal an
879         array and get_fixed_array got you 0 elements. Append nothing to
880         the GArray in this case.
881
882         * test/glib/test-dbus-glib.c: Add a test case for round-tripping
883         an empty array via the glib bindings. Without all of the above
884         patches, this new test fails.
885
886 2006-02-16  Robert McQueen  <robot101@debian.org>
887
888         * glib/dbus-gmain.c: Make the previous commit compile.
889
890         * python/_dbus.py, python/matchrules.py: Patch from Ole Andre
891         Ravnaas <ole.andre.ravnaas@collabora.co.uk> to allow you to
892         specify sender_keyword="foo", path_keyword="bar" when adding
893         a signal listener, so that you can bind to signals generically
894         but still do something useful in your callback.
895
896         * python/dbus_bindings.pyx: Demarshal the byte type as unsigned
897         chars so that they're not cast to chars and made negative. Thanks
898         to Jakub Stachowski for reporting this and testing the fix.
899
900 2006-02-15  John (J5) Palmieri  <johnp@redhat.com>
901
902         * dbus/dbus-glib.h:
903         * glib/dbus-gmain.h:
904         (dbus_g_connection_open): new method for openning
905         a connection to an arbitrary address in the glib bindings
906
907         * ChangeLog: checkin last entry which doesn't seem to be commited
908
909 2006-02-13  John (J5) Palmieri  <johnp@redhat.com>
910
911         * tools/dbus-launch.c: Fixed sh syntax output
912
913 2006-02-13  Robert McQueen  <robot101@debian.org>
914
915         * glib/dbus-binding-tool-glib.c, glib/dbus-gmain.c,
916         glib/dbus-gsignature.c, glib/dbus-gtype-specialized.c,
917         glib/dbus-gtype-specialized.h, glib/dbus-gvalue-utils.c,
918         glib/dbus-gvalue-utils.h, glib/dbus-gvalue.c:
919         Patch from Rob Taylor <rob.taylor@collabora.co.uk> to add a big
920         missing piece of the glib bindings jigsaw puzzle. This modifies
921         the existing specialised types to have N type parameters (rather
922         than the current 1 or 2 for arrays and dictionaries respectively).
923         You can then use this to get a glib type to represent any arbitrary
924         D-Bus struct type using dbus_g_type_get_struct. The only
925         implementation of these types is with GValueArrays as before,
926         but it's now possible to store these in arrays, emit them in
927         signals, etc.
928
929 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
930
931         * dbus/dbus-signature.c (dbus_signature_iter_recurse): Correctly
932         deal with nested arrays (Bug #5823) Patch by Thiago Macieira 
933         <thiago.macieira at trolltech.com>
934
935 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
936
937         * mono/doc/Makefile.am: Fix parallel make problem with mono-doc
938         (Bug #4213) Patch from Doug Goldstein <cardoe at gentoo.org>
939
940 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
941
942         * bus/connection.c (bus_connections_expect_reply): Make
943         pending reply limit not common to all connections (Bug #5416)
944         Patch from Kimmo Hämäläinen <kimmo.hamalainen at nokia.com>
945
946 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
947
948         * tools/dbus-launch.c: Fixed csh syntax output (Bug #5720)
949
950 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
951
952         * gcj/Makefile.am: point to correct jar command (Bug #4529)
953         patch from Doug Goldstein <cardoe at gentoo.org>
954
955 2006-02-09  Joe Shaw  <joeshaw@novell.com>
956
957         * mono/Arguments.cs: Fix a magic number in the mono bindings
958         that doesn't work on 64 bit arches.  Patch from Peter Johanson.
959
960 2006-01-27  Robert McQueen  <robot101@debian.org>
961
962         * glib/dbus-binding-tool-glib.[ch]: Patch based on Ricardo Kekki's
963         patch to use an annotation org.freedesktop.DBus.GLib.ClientCSymbol
964         when generating the client-side methods, instead of overloading
965         CSymbol which broke everything horribly. My apologies.
966
967 2006-01-27  Robert McQueen  <robot101@debian.org>
968
969         * glib/dbus-gtype-specialized.[ch], glib/dbus-gvalue-utils.c: Patch
970         by me and Rob Taylor to add a simple_free function to D-Bus map
971         and collection types, which allows those types which can be freed
972         with a GDestroyNotify (such as GHashTables and GArrays, but not
973         GPtrArrays) to be stored as the values in hashtables.
974
975         * test/glib/test-dbus-glib.c, test/glib/test-service-glib.{c,xml}:
976         Patch by Rob Taylor to add nested dicts to the glib tests to check
977         the above code works, and appears not to leak when called repeatedly.
978
979 2006-01-27  Robert McQueen  <robot101@debian.org>
980
981         * glib/dbus-gvalue.c (demarshal_valuearray): Patch from Rob Taylor
982         to free a D-Bus allocated string with dbus_free () instead of
983         g_free ().
984
985 2006-01-27  Iain Holmes  <iain@openedhand.com>
986
987         * glib/dbus-gproxy.c (dbus_g_proxy_dispose): Protect the dispose
988         method from being called multiple times.
989
990 2006-01-19  Robert McQueen  <robot101@debian.org>
991
992         * glib/dbus-binding-tool-glib.c: Patch from Rob Taylor
993         <rob.taylor@collabora.co.uk> to add support for generating bindings
994         to arrays that are represented as GPtrArrays rather than GArrays (ie
995         size-variable things, such as strings, objects, structs, etc).
996
997 2006-01-05  Robert McQueen  <robot101@debian.org>
998
999         * dbus/dbus-glib.h, glib/dbus-gproxy.c: Patch from Ricardo Kekki
1000         <ricardo.kekki@movial.fi> to make it possible to inherit from
1001         DBusGProxy, by splitting the DBusGProxy struct into a public part and
1002         a private part, and moving the setting of the DBusGProxyManager into a
1003         connection property, allowing proper GObject construction.
1004
1005 2006-01-05  Robert McQueen  <robot101@debian.org>
1006
1007         * glib/dbus-binding-tool-glib.c: Patch from Ricardo Kekki
1008         <ricardo.kekki@movial.fi> to make dbus-binding-tool heed C symbol name
1009         annotations when generating glib client bindings.
1010
1011 2005-12-19 John (J5) Palmieri  <johnp@redhat.com>
1012
1013         * dbus/dbus-shared.h: Call it shared constants instead of shared macros
1014
1015         * dbus/dbus-protocol.h: add DOxygen markup to quiet warnings
1016
1017 2005-12-19 John (J5) Palmieri  <johnp@redhat.com>
1018
1019         * dbus/dbus-shared.h: add DOxygen markup to quiet warnings
1020
1021 2005-12-19 John (J5) Palmieri  <johnp@redhat.com> 
1022
1023         * dbus/dbus-macros.h: correct DOxygen end of section (s/}@/@})
1024
1025 2005-12-19  Ross Burton  <ross@openedhand.com>
1026
1027         * doc/dbus-tutorial.xml:
1028         Document the Glib client-side bindings, and list all possible annotations.
1029
1030 2005-12-19  John (J5) Palmieri  <johnp@redhat.com>
1031
1032         * dbus/bus.c (dbus_bus_release_name): Add documentation
1033
1034 2005-12-06  Robert McQueen  <robot101@debian.org>
1035
1036         * python/service.py: s/sucessful/successful/ so we're allocating to
1037         and reading from the same variable. Oops.
1038
1039 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
1040
1041         * Released 0.60
1042
1043 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
1044
1045         * test/qt/Makefile.am: build from srcdir
1046
1047         * qt/qtconnection.cpp (requestName): Changed PROHIBIT_REPLACE to ALLOW_REPLACE
1048         Note - this code is wrong and needs to be fixed by the Qt binding
1049         developers.  The flags should be treated as bitfields and not enums.
1050
1051         * qt/qtconnection.h: Change ProhibitReplace to AllowReplace
1052
1053 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
1054
1055         * dbus/dbus-list.c (_dbus_list_insert_after_link, _dbus_list_insert_after, 
1056           link_after): remove #ifdef DBUS_BUILD_TESTS since we use these methods 
1057           in production code
1058
1059 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
1060
1061         * dbus/dbus-connection.c (dbus_connection_read_write): Add new
1062         method for getting messages off the bus in the absence of a
1063         mainloop.  This method is much like 
1064         dbus_connection_read_write_dispatch except it does not dispatch
1065         the messages to a registered filter function.  Instead it
1066         allows a developer to process messages by directly popping
1067         them off the bus.
1068
1069 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
1070
1071         * bus/desktop-file.c (parse_key_value): Ignore locales allowing 
1072         the parser to continue instead of returning error
1073         (bus_desktop_file_load): Do not free parser data when
1074         parse_section_start or parse_key_value fails because it was 
1075         already freed by parser_free (patch from Carlos Garcia Campos  
1076         <carlosgc at gnome.org>)
1077
1078 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
1079
1080         * dbus/dbus-auth.c, dbus/dbus-connection.c, dbus/dbus-keyring.c,
1081         dbus/dbus-server-debug-pipe.c, glib/dbus-binding-tool-glib.c
1082         glib/dbus-glib-tool.c, glib/dbus-gparser.c, glib/dbus-gproxy.c
1083         test/test-segfault.c, test/test-utils.c,
1084         test/glib/test-dbus-glib.c, tools/dbus-cleanup-sockets.c
1085         tools/dbus-launch.c, tools/dbus-tree-view.c, tools/dbus-viewer.c:
1086         Various cleanup of dead code and compiler warnings (patch from
1087         Kjartan Maraas <kmaraas at gnome.org>) 
1088
1089 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
1090
1091         * glib/dbus-gmain.c (connection_setup_add_watch): plugged a leak
1092         (patch from Carlos Garnacho Parro <carlosg at gnome.org>
1093
1094 2005-11-27  Robert McQueen  <robot101@debian.org>
1095
1096         * python/dbus_bindings.pyx: Repair my previous commit which reverted
1097         part of the preceding one. Oops. Merge patch by Johan Hedberg
1098         <johan.hedberg@nokia.com> to fix marshalling of 16-bit integer values
1099         on big-endian platforms.
1100
1101         * test/python/test-client.py: Add some 16-bit integers to the test
1102         values.
1103
1104 2005-11-27  Carlos Garcia Campos  <carlosgc@gnome.org>
1105
1106         * glib/dbus-gobject.c: Append a GValue instead of a basic type in
1107         method return message for property getters
1108
1109 2005-11-27  Robert McQueen  <robot101@debian.org>
1110
1111         * python/dbus_bindings.pyx: Fix a bug where doing a strict append
1112         with type v of an instance of dbus.Variant(foo, type='x') caused
1113         it to be boxed twice before sending over the bus.
1114
1115         * python/dbus_bindings.pyx, python/service.py,
1116         test/python/test-client.py: Update the constants for the new
1117         request_name flags, and update comments/test cases now that queueing
1118         is the default action.
1119
1120 2005-11-22  John (J5) Palmieri  <johnp@redhat.com>
1121
1122         * configure.in:
1123         - Change version to 0.60 for impending release
1124         - upped the sonames because of ABI and API breakage
1125
1126 2005-11-22  John (J5) Palmieri  <johnp@redhat.com>
1127
1128         * configure.in: Add test/name-test/Makefile to the generated
1129         Makefile list
1130
1131         * dbus/dbus-shared.h (#define DBUS_NAME_FLAG_ALLOW_REPLACEMENT):
1132         New flag which replaces DBUS_NAME_FLAG_PROHIBIT_REPLACEMENT
1133         (#define DBUS_NAME_FLAG_DO_NOT_QUEUE): New flag for specifying
1134         not to queue an ower if it can't be the primary owner
1135
1136         * bus/bus.h: Add new internal BusOwner struct
1137
1138         * bus/driver.c (bus_driver_handle_hello): Send flags (0 for default)
1139         to bus_registry_ensure and don't set the prohibit_replacement flag
1140         since they are now set per BusOwner and not per name.
1141         (bus_driver_handle_list_queued_owners): bus method (ListQueuedOwners) 
1142         that returns the list of connections in a name's connection queue
1143         
1144         * bus/services.c (struct BusService): remove prohibit_replacement field
1145         (struct BusOwner): new struct for keeping track of queued connections
1146         and their associated flags for the queue
1147         (struct BusRegistry): add a BusOwner memory pool
1148         (bus_registry_new): initialize the BusOwner memory pool
1149         (bus_registry_unref): free the BusOwner memory pool
1150         (_bus_service_find_owner_link): new internal method for
1151         searching the queue for a specific connection
1152         (bus_owner_set_flags): new method for adding setting the flags on a
1153         bus owner
1154         (bus_owner_new): new method that creates a BusOwner object from the
1155         pool and sets its flags
1156         (bus_owner_ref, bus_owner_unref): ref counting for BusOwner objects
1157         (bus_registry_ensure): Add the flags parameter
1158         (bus_registry_acquire_service): Switch from using raw connections to
1159         using the BusOwner struct
1160         Add new state machine for dealing with the new set of flags
1161         (bus_registry_set_service_context_table, struct OwnershipCancelData, 
1162         cancel_ownership, free_ownership_cancel_data, 
1163         add_cancel_ownership_to_transaction, struct OwnershipRestoreData, 
1164         restore_ownership, free_ownership_restore_data, 
1165         add_restore_ownership_to_transaction): Switch to using BusOwner 
1166         instead of raw connections
1167         (bus_service_add_owner): Add flags parameter
1168         Switch to using BusOwner instead of raw connections
1169         Add state machine for dealing with the new set of flags
1170         (bus_service_swap_owner): Swaps the first and second owners in the
1171         queue.  Used to make sure proper signals are sent when a service looses 
1172         or gains primary ownership.  We never insert an owner at the top of the
1173         queue.  Instead we insert it in the second position and then swap.
1174         (bus_service_remove_owner): Remove the owner from the queue sending
1175         out the NameLost and NameOwnerChanged signals if the we were the 
1176         primary owner
1177         (bus_service_get_primary_owners_connection): New method that extracts
1178         the connection from the primary owner
1179         (bus_service_get_primary_owner): Returns the BusOwner instead of the 
1180         connection
1181         (bus_service_get_allow_replacement): Changed from the old 
1182         bus_service_get_prohibit_replacement method.  Checks the flags of the 
1183         primary owner and returns if it can be replaced or not
1184         (bus_service_set_prohibit_replacement): removed
1185         (bus_service_has_owner): returns TRUE if and owner with
1186         the specified connection exists in the queue
1187         
1188         * dbus/dbus-bus.c (dbus_bus_connection_get_unique_name): New helper
1189         method that only compiles if tests are enabled.  Allows us to get the 
1190         unique name of a connection so we can check it against the queue when
1191         doing regression tests
1192
1193         * bus/activation.c (bus_activation_send_pending_auto_activate),
1194         bus/dispatch.c (bus_dispatch),  
1195         bus/driver.c (bus_driver_handle_get_service_owner, 
1196         bus_driver_handle_get_connection_unix_user, 
1197         bus_driver_handle_get_connection_unix_process_id,
1198         bus_driver_handle_get_connection_selinux_security_context),
1199         bus/signals.c (connection_is_primary_owner): 
1200         use bus_service_get_primary_owners_connection instead of
1201         bus_service_get_primary_owner
1202
1203         * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket, 
1204         _dbus_listen_unix_socket): Calculate the length of the socket
1205         path and use that instead of using a fixed length which was
1206         causing socket names to contain many trailing Nul bytes.
1207
1208         * dbus/dbus-glib-lowlevel.h, glib/dbus-gobject.c
1209         (dbus_g_method_get_sender): New method for extracting the sender 
1210         from a DBusGMethodInvocation
1211         (dbus_g_method_return_get_reply): changed name to 
1212         dbus_g_method_get_reply
1213         (dbus_g_method_return_send_reply): changed name to
1214         dbus_g_method_send reply
1215
1216         * doc/dbus-specification.xml: New docs that describe how the new
1217         queueing system works and talks about the changes to the how
1218         we specify socket names
1219
1220         * glib/examples/example-service.c, 
1221         glib/examples/example-signal-emitter.c,
1222         glib/examples/statemachine/statemachine-server.c:
1223         Changed the RequestName flags to the new system
1224
1225         * test/name-test/ (test-names.c, run-test.sh, Makefile.am): New
1226         regression test suite for testing various states of the new
1227         queueing system
1228         
1229 2005-11-15  Robert McQueen  <robot101@debian.org>
1230
1231         * dbus/dbus-glib-lowlevel.h, glib/dbus-gobject.c: Patch from Rob
1232         Taylor to add two methods, dbus_g_method_return_get_reply and
1233         dbus_g_method_return_send_reply, to allow you to get the reply
1234         message from a DBusGMethodInvocation, append arbitrary stuff to it,
1235         and send it. The GLib bindings can't marshal a return value of
1236         something like a(s) if the array is empty - ultimately they should be
1237         made to heed the signature of the out arguments as the Python bindings
1238         now can, but this is a workable interim solution which might have
1239         other applications.
1240
1241 2005-11-15  Robert McQueen  <robot101@debian.org>
1242
1243         * bus/driver.c, bus/services.c, bus/services.h: Add a ReleaseName
1244         method to org.freedesktop.DBus to release a bus name or give up
1245         waiting in the queue for it.
1246
1247         * dbus/dbus-bus.c, dbus/dbus-bus.h, dbus/dbus-shared.h: Add a
1248         dbus_bus_release_name method to send the ReleaseName method calls.
1249         Add constants for the return values to dbus/dbus-shared.h.
1250
1251         * doc/dbus-specification.xml: Document the new ReleaseName method
1252         in the specification.
1253
1254         * python/dbus_bindings.pyx: Add a low-level python binding for the
1255         release name method.
1256
1257         * python/exceptions.py, python/service.py: Make freeing BusName
1258         objects release the name. Add a NameExistsException, and fix a
1259         bug with creating UnknownMethodException.
1260
1261         * test/python/test-client.py: Add tests for freeing BusName
1262         objects causing names to be released.
1263
1264 2005-11-14  Robert McQueen  <robot101@debian.org>
1265
1266         * python/service.py: Include the traceback in the error reply when we
1267         send an exception over the bus. _BEST_ _PATCH_ _EVER_
1268
1269 2005-11-14  David Zeuthen  <davidz@redhat.com>
1270
1271         Patch from Timo Hoenig <thoenig@suse.de>.
1272
1273         * bus/bus.c: I've recently investigated why the automatic reload
1274         of configuration files does not work as expected.
1275
1276         Currently, reloading configuration files does only work when
1277         running dbus-daemon with --nodaemon.  If we are running as daemon
1278         we're hitting a dnotify bug once we fork the process.
1279
1280         We're initializing the dnotify fds before calling fork().  Once
1281         the child process forked it does still have the fds (and they
1282         still show up in /proc/`pidof dbus-daemon`/fd/) but we're not
1283         getting SIGIO as changes are made to the configuration files.
1284
1285         The attached patch moves the initialization of the dnotify fds to
1286         process_config_postinit().  This is safe for all current code
1287         paths and solves the dnotify disfunction.  If we're running
1288         dbus-daemon as daemon the fds for dnotify are now being
1289         initialized after fork() for the child process.
1290
1291         * configure.in: The current configure.in check for dnotify probes
1292         'x$target_os' for being 'xlinux-gnu'.  I've changed the check to
1293         match for 'xlinux', too. Additionally I have adapted the configure
1294         option's style to match with the others.
1295
1296 2005-11-14  Robert McQueen  <robot101@debian.org>
1297
1298         * python/decorators.py, python/service.py: Add a new argument to the
1299         dbus.service.method decorator called sender_keyword, which if set,
1300         specifies the name of an argument which will be provided the bus
1301         name of the method caller.
1302
1303         * test/python/test-client.py, test/python/test-service.py: Add a
1304         method and test to check the sender_keyword functionality.
1305
1306 2005-11-07  John (J5) Palmieri  <johnp@redhat.com>
1307
1308         * bus/driver.c (bus_driver_handle_reload_config): Make sure we send an 
1309         empty reply so blocking calls don't block forever (Patch from Sjoerd 
1310         Simons <sjoerd at luon.net>)
1311
1312         * AUTHORS: Add Robert McQueen for his work on the Python
1313         Bindings and other parts of D-Bus
1314
1315 2005-11-07  Robert McQueen  <robot101@debian.org>
1316
1317         * python/decorators.py: Change emit_signal function to use the
1318         signature annotation of the signal when marhsalling the arguments from
1319         the service. Fix a bug where the code checking signature length
1320         against argument length referenced the wrong variable.
1321
1322         * python/introspect_parser.py: Avoid adding the type signature of
1323         signal arguments to any methods which occur after them in the
1324         introspection data (!) by making the parser a little more careful
1325         about its current state.
1326
1327         * python/service.py: Remove debug prints from last commit (again :D).
1328
1329         * test/python/test-client.py, test/python/test-service.py: Add test
1330         signals with signature decorators to test the strict marshalling code
1331         gives errors at the right time. Could do with checking the signals
1332         actually get emitted too, given that the test does nothing with
1333         signals at the moment...
1334
1335 2005-11-07  Robert McQueen  <robot101@debian.org>
1336
1337         * python/_dbus.py: Add WeakReferenceDictionary cache of dbus.Bus
1338         instances to stop madness of creating new instances representing
1339         the same bus connection all the time, rendering any tracking of
1340         match rules and bus names quite meaningless. Caught a bug where
1341         the private argument to SessionBus() and friends was being passed
1342         in as use_default_mainloop by mistake. Still some problems with
1343         multiple dbus_binding.Connection instances representing the same
1344         low-level connection (eg when you use both SessionBus() and
1345         StarterBus() in same process), but it's a lot better now than it
1346         was.
1347
1348         * python/dbus_bindings.pyx: Add constants with the return values
1349         for bus_request_name().
1350
1351         * python/service.py: Store bus name instances in a per-dbus.Bus cache
1352         and retrieve the same instances for the same name, so deletion can be
1353         done with refcounting. Also now throws some kind of error if you
1354         don't actually get the name you requested, unlike previously...
1355
1356         * test/python/test-client.py: Add tests for instance caching of buses
1357         and bus name objects.
1358
1359 2005-11-04  Robert McQueen  <robot101@debian.org>
1360
1361         * python/dbus_bindings.pyx, test/python/test-client.py: Fix
1362         marshalling of boolean values. Add some booleans to the values in
1363         the test client.
1364
1365         * python/decorators.py, python/service.py: Add an 'async_callbacks'
1366         argument to the dbus.service.method decorator, which allows you to
1367         name arguments to take two callback functions for replying with
1368         return values or an exception.
1369
1370         * test/python/test-client.py, test/python/test-service.py: Add test
1371         case using asynchronous method reply functions, both return values and
1372         errors, and from within both the function itself and from a mainloop
1373         callback.
1374
1375         * python/decorators.py, python/service.py: Perform checking that the
1376         number of method/signal arguments matches the number of types in the
1377         signature at class loading time, not when you first introspect the
1378         class.
1379
1380         * python/service.py: Remove debug print left by the last commit.
1381
1382 2005-11-03  Robert McQueen  <robot101@debian.org>
1383
1384         * python/service.py: Heavy refactoring of method invocation, with
1385         hopefully no effect on functionality. Nuked _dispatch_dbus_method_call
1386         in favour of a new _message_cb that uses seperate functions for
1387         looking up the method to call, marshalling the return values, and
1388         sending exceptions as errors, and is easier to follow as a
1389         consequence.  Fixes some corner cases about returning things that
1390         don't match your declared out_signature, allows exceptions to define
1391         _dbus_error_name and have it be sent over the bus as the error name,
1392         and paves the way for cool stuff like heeding the message no reply
1393         flag, asynchronous method implementations, informing the method of the
1394         sender, and including backtraces in the error messages.
1395
1396         * test/python/test-client.py: Catch and print exceptions thrown in the
1397         async callback tests, rather than passing them to the low-level
1398         bindings to be ignored in a noisy and frustrating manner.
1399
1400 2005-11-03  Robert McQueen  <robot101@debian.org>
1401
1402         * python/_dbus.py, python/proxies.py, python/service.py: Add __repr__
1403         functions to dbus.Bus, dbus.service.BusName and dbus.service.Object,
1404         tweak others to be consistent.
1405
1406         * test/python/test-client.py: Tweak output of testInheritance.
1407
1408 2005-10-29  Robert McQueen  <robot101@debian.org>
1409
1410         * python/service.py: Major changes to allow multiple inheritance
1411         from classes that define D-Bus interfaces:
1412         
1413          1. Create a new Interface class which is the parent class of
1414             Object, and make the ObjectType metaclass into InterfaceType.
1415         
1416          2. Patch written with Rob Taylor to replace use of method_vtable
1417             with code that walks the class's __MRO__ (method resolution order)
1418             to behave like Python does when invoking methods and allow
1419             overriding as you'd expect. Code is quite tricky because
1420             we have to find two methods, the one to invoke which has the
1421             right name and isn't decorated with the /wrong/ interface,
1422             and the one to pick up the signatures from which is decorated
1423             with the right interface.
1424         
1425             The same caveats apply as to normal multiple inheritance -
1426             this has undefined behaviour if you try and inherit from two
1427             classes that define a method with the same name but are
1428             decorated with different interfaces. You should decorate
1429             your overriding method with the interface you want.
1430         
1431          3. Replace grungy introspection XML generation code in the metaclass
1432             with dictionaries that cope correctly with multiple inheritance
1433             and the overriding of methods. This also uses the signature
1434             decorations to provide correct introspection data, including
1435             the debut appearance of the types of your return values. :D
1436
1437         * test/python/test-client.py, test/python/test-service.py: Add a test
1438         case to try invoking an method that overrides one inherited from a
1439         D-Bus interface class.
1440
1441 2005-10-29  Robert McQueen  <robot101@debian.org>
1442
1443         * python/dbus_bindings.pyx: Tweak 'raise AssertionError' to assert().
1444         Add checking for the end of struct character when marshalling a
1445         struct in MessageIter.append_strict.
1446
1447         * python/examples/example-service.py,
1448         python/examples/gconf-proxy-service.py,
1449         python/examples/gconf-proxy-service2.py: Update to use gobject
1450         mainloop directly rather than appearing to depend on gtk.
1451
1452         * python/test/test-client.py, python/test/test-server.py: Remove
1453         obsolete and broken test scripts for old bindings. We have up to date
1454         and working tests in test/python/.
1455
1456 2005-10-29  Robert McQueen  <robot101@debian.org>
1457
1458         * python/decorators.py: Add optional arguments to the method and
1459         signal decorators to allow you to specify the signature of arguments
1460         and return values. Preserve the doc strings of signal functions in the
1461         decorated version, for pydoc and friends.
1462
1463         * python/dbus_bindings.pyx, python/proxies.py: Replace the
1464         parse_signature_block function with an iterable dbus.Signature()
1465         type. Fix a bug in MessageIter.append_strict where you could append
1466         anything by claiming it was a string.
1467
1468         * python/service.py: Use the out_signature decoration on methods to
1469         marshal return values, meaning you no longer require dbus.Array()
1470         or dbus.Dictionary() to indicate the type when returning empty
1471         arrays or dictionaries. Fix a bug where exceptions which are defined
1472         in __main__ are not turned into error replies.
1473
1474         * test/python/test-client.py, test/python/test-service.py: Add test
1475         for correct marshalling of return values according to out_signature.
1476         Fix a bug in the async call test where the error_handler is missing a
1477         self argument.
1478
1479 2005-10-29  Robert McQueen  <robot101@debian.org>
1480
1481         * glib/Makefile.am, glib/examples/Makefile.am,
1482         glib/examples/statemachine/Makefile.am: Merge patch from Ubuntu by
1483         Daniel Stone to replace explicit calls to libtool with $(LIBTOOL).
1484
1485         * test/python/.cvsignore: Add run-with-tmp-session-bus.conf.
1486
1487         * tools/dbus-monitor.1, tools/dbus-monitor.c: Merge dbus-monitor patch
1488         from Ubuntu by Daniel Silverstone to allow specifying match rules on
1489         the command line.
1490
1491 2005-10-27  Ross Burton  <ross@openedhand.com>
1492
1493         * dbus/dbus-marshal-header.c:
1494         Remove dead code.
1495
1496         * glib/dbus-gobject.c:
1497         Stop compiler warning.
1498
1499 2005-10-25  Ross Burton  <ross@openedhand.com>
1500
1501         * dbus/dbus-auth.c:
1502         * dbus/dbus-server-unix.c:
1503         * dbus/dbus-transport-unix.c:
1504         * glib/dbus-gmain.c:
1505         * glib/dbus-gobject.c:
1506         Add some const keywords.
1507
1508 2005-10-25  Ross Burton  <ross@openedhand.com>
1509
1510         * doc/dbus-specification.xml:
1511         Document the NoReply annotation.
1512
1513         * glib/dbus-binding-tool-glib.h:
1514         * glib/dbus-binding-tool-glib.c:
1515         Respect the NoReply annotation.
1516
1517 2005-10-24  Robert McQueen <robot101@debian.org>
1518
1519         * python/dbus_bindings.pyx (String, MessageIter): make D-Bus strings
1520         derive from unicode instead of str, and encode/decode UTF-8 when
1521         marshalling/unmarshalling bus messages
1522
1523         * python/introspect_parser.py: encode introspection data as UTF-8
1524         before passing the buffer into libxml2
1525
1526         * test/python/test-client.py: add unicode test strings
1527
1528         * test/data/valid-service-files/.cvsignore, test/python/.cvsignore:
1529         ignore generated python test files
1530
1531 2005-10-17  John (J5) Palmieri  <johnp@redhat.com>
1532
1533         * glib/dbus-gvalue-utils.c (hash_free_from_gtype): handle gdouble
1534         and G_TYPE_VALUE_ARRAY (DBUS_TYPE_STRUCT)
1535         (gvalue_from_hash_value, hash_value_from_gvalue): handle gdouble
1536
1537         * glib/dbus-gvalue.c (dbus_gvalue_to_signature): add missing
1538         DBUS_STRUCT_BEGIN_CHAR and DBUS_STRUCT_END_CHAR charaters
1539         when constructing struct signatures
1540
1541         * python/_dbus.py (Bus): handle private connections using the
1542         private keyword in the constructor. defaults to private=False
1543         (Bus::close): new method to close a connection to the bus
1544
1545         * python/dbus_bindings.pyx (Connection::close): renamed method
1546         was previously called disconnect
1547         (bus_get): now supports getting a private connection
1548
1549         * python/proxies.py (ProxyMethod::__call__): check if ignore_reply
1550         keyword is set to True.  if it is, execute the method without waiting
1551         for a reply
1552         (ProxyObject::_introspect_execute_queue): new method for executing
1553         all the pending methods that were waiting for the introspect to
1554         finish.  this is called when introspect either succeeds or fails
1555         (ProxyObject::_introspect_error_handler): call queued methods
1556
1557 2005-10-14  John (J5) Palmieri  <johnp@redhat.com>
1558
1559         * python/dbus_bindings.pyx (MessageIter::append_strict): check for
1560         STRUCT_BEGIN not TYPE_STRUCT in indicate we are marshalling a struct
1561
1562         * python/service.py (Object::_message_cb): handle exceptions correctly
1563         by sending them over the wire to the calling app.  This makes sure
1564         the client returns immediately instead of waiting the 15 seconds to
1565         timeout.
1566
1567         * test/python/test-client.py (TestDBusBindings::testBenchmarkIntrospect): 
1568         Add a test to benchmark how long it takes to introspect a service and 
1569         call a method which returns a large element (pretty fast)
1570
1571         * test/python/test-service.py (TestObject::GetComplexArray): new test 
1572         method which pushes a lot of data
1573
1574 2005-10-13  John (J5) Palmieri  <johnp@redhat.com>
1575
1576         * python/service.py(ObjectType::_reflect_on_signal, _reflect_on_method):        
1577         reclaim memory outside of the loop and use del istead of just setting
1578         the key to None
1579
1580 2005-10-13  John (J5) Palmieri  <johnp@redhat.com>
1581
1582         * python/service.py (ObjectType::_reflect_on_signal): Always close
1583         signal tag even when there are no arguments
1584
1585 2005-10-13  John (J5) Palmieri  <johnp@redhat.com>
1586
1587         * configure.in: Set mono, mono-docs and Qt3 to default
1588         to no instead of auto when building.  These bindings do not
1589         have full time maintainers and will not be supported for the
1590         1.0 release.
1591
1592 2005-10-12  John (J5) Palmieri  <johnp@redhat.com>
1593
1594         patches from Michael Krivoruchko <misha at sun.com>: 
1595         
1596         * dbus/dbus-connection.c (_dbus_connection_queue_received_message_link,
1597         _dbus_connection_message_sent, 
1598         _dbus_connection_send_preallocated_unlocked_no_update, 
1599         _dbus_connection_pop_message_link_unlocked): handle the case when path 
1600         is NULL when calling _dbus_verbose
1601
1602         * configure.in: check for functions getpeerucred and getpeereid
1603
1604         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): provides 
1605         support of auth EXTERNAL on Solaris 10+ (getpeerucred), FreeBSD 4.6+, 
1606         OpenBSD 3.0+ and FreeBSD 5.0+ as well as MacOSX 10.2+ (getpeereid). 
1607         Patch was only tested on Solaris 10 x86 so it might be issues
1608         with other platforms (i.e. BSDs and MacOSX)
1609         
1610
1611 2005-10-05  John (J5) Palmieri  <johnp@redhat.com>
1612
1613         * glib/dbus-gvalue.c (marshal_variant): call _dbus_gvalue_marshal 
1614         instead of marshal basic so we can handle recursive types in a variant
1615
1616         * test/glib/test-dbus-glib.c: Add test for marshaling recurive types
1617         in variants
1618
1619         * test/glib/test-service-glib.c, test-service-glib.xml
1620         (my_object_echo_variant [EchoVariant], 
1621         my_object_process_variant_of_array_of_ints123
1622         [ProcessVariantOfArrayOfInts123]): 
1623         Add two test methods
1624
1625         * python/introspect_parser.py: New module for parsing introspect
1626         data.
1627
1628         * python/dbus_bindings.pyx:
1629         (various places): when throwing errors fix to use errormsg instead 
1630         of message local variable because Pyrex can get confused with other 
1631         message variables (initial patch by Robert McQueen 
1632         <robert.mcqueen at collabora.co.uk>)
1633         (MessageIter::parse_signature_block): new method for getting the next
1634         block in a signiture.
1635         (MessageIter::append_strict): new method for appending values strictly
1636         using the passed in signature instead of guessing at the type
1637         (MessageItter:: append_dict, append_struct, append_array): use 
1638         signatures to marshal children if the signature is available
1639         
1640         * python/exceptions.py (IntrospectionParserException): new exception
1641
1642         * python/proxies.py (ProxyMethod::__call__): Marshal args with 
1643         introspected signatures if available, else we fall back to the
1644         old way of doing things.
1645         (ProxyObject::_introspect_reply_handler ): parse introspection data
1646         
1647         * python/service.py (ObjectType::_reflect_on_method): Properly
1648         terminate <method> if there are no args in the reflection data
1649
1650         * test/python/test-client.py: add tests for talking with the GLib
1651         test server.  This gives us better coverage for introspection since
1652         python to python will always generate arguments as variants.  It also
1653         allows us to test the robustness of the GLib bindings and interlanguage
1654         communications.
1655
1656         
1657 2005-10-03  John (J5) Palmieri  <johnp@redhat.com>
1658
1659         * bus/driver.c (bus_driver_handle_introspect): Add signals
1660         to the introspect data. (patch from Daniel P. Berrange 
1661         <dan at berrange.com>)
1662
1663         * bus/dispatch.c (check_existent_ping): Add testcase for Ping
1664         
1665         * dbus/dbus-connection.c (_dbus_connection_peer_filter,
1666         _dbus_connection_run_builtin_filters): Changed these to
1667         be unlock_no_update functions and call 
1668         _dbus_connection_send_unlocked_no_update instead of
1669         dbus_connection_send to avoid locking errors.
1670         
1671         * doc/TODO: Removed the make Ping test TODO
1672         
1673 2005-09-26  John (J5) Palmieri  <johnp@redhat.com>
1674
1675         * dbus/Python.pyx: Fixed memory leaks when throwing errors.
1676         We now copy the message from a DBusError and then free 
1677         the error object befor throwing the error
1678
1679         * glib/dbus-glib-tool.c: removed extra comma at the end of the
1680         DBusBindingOutputMode enum which was causing a warning.
1681         #include <time.h> so using time_t is explicitly defined
1682
1683 2005-09-26  John (J5) Palmieri  <johnp@redhat.com>
1684
1685         * Integrate patches from Lennart Poettering <mzsqb at 0pointer.de>:
1686         - dbus/dbus-bus.c
1687         (internal_bus_get): new method that take over the heavy lifting
1688         of dbus_bus_get and adds the ability to get a private connection
1689         to the bus
1690         (dbus_bus_get): wrapper to internal_bus_get that provides the same
1691         interface as in previous versions
1692         (dbus_bus_get_private): new method that is a wrapper to 
1693         internal_bus_get to get a private connection to the bus
1694
1695         - dbus/dbus-bus.h
1696         (dbus_bus_get_private): add as a public libdbus interface
1697
1698         - dbus-1.pc.in: output system_bus_default_address and 
1699         sysconfdir variables so apps can use them when compiling
1700
1701 2005-09-23  Harald Fernengel  <harry@kdevelop.org>
1702         * dbus/qt: New Qt bindings
1703
1704 2005-09-12  Waldo Bastian  <bastian@kde.org>
1705
1706         * dbus/dbus-marshal-validate.c,
1707         doc/dbus-specification.xml, test/Makefile.am,
1708         test/test-names.c: allow hyphens in bus names.
1709
1710 2005-09-11  Mark McLoughlin  <mark@skynet.ie>
1711
1712         * test/data/auth/fallback.auth-script: we don't
1713         retry the EXTERNAL method when we know its going
1714         to fail anymore.
1715
1716 2005-09-11  Mark McLoughlin  <mark@skynet.ie>
1717
1718         * dbus/dbus-connection-internal.h: rename
1719         (add|remove|toggle)_(watch|timeout) to unlocked()
1720         
1721         * dbus/dbus-connection.c: ditto.
1722         
1723         * dbus/dbus-timeout.c, dbus/dbus-transport-unix.c:
1724         Update some callers for the renaming.
1725
1726 2005-09-10  Mark McLoughlin  <mark@skynet.ie>
1727
1728         * dbus/dbus-auth.c: (record_mechanisms): don't
1729         retry the first auth mechanism because we know
1730         we're just going to get rejected again.
1731         
1732         * dbus/dbus-keyring.c: (_dbus_keyring_reload):
1733         Fix thinko ... and what a nasty little bugger to
1734         track down you were ...
1735
1736         * dbus/dbus-connection.c:
1737         (_dbus_connection_add_watch),
1738         (_dbus_connection_remove_watch): add note about
1739         these needing the connection to be locked.
1740         (_dbus_connection_get_dispatch_status_unlocked):
1741         set status to DATA_REMAINS when we queue the
1742         disconnected message.
1743         
1744         * bus/dispatch.c:
1745         (bus_dispatch): fix warning.
1746         (check_existent_service_no_auto_start):
1747         Expect ChildSignaled error too.
1748         (check_existent_hello_from_self): fix another
1749         couple of warnings.
1750         
1751 2005-09-08  Joe Shaw  <joeshaw@novell.com>
1752
1753         Patches from James Willcox <snorp@snorp.net>
1754
1755         * mono/Makefile.am: Add Int16.cs and UInt16.cs
1756
1757         * mono/DBusType/Array.cs: Handle multidimensional arrays, and
1758         support array "out" parameters.
1759
1760         * mono/DBusType/Int16.cs, mono/DBusType/UInt16.cs: New files,
1761         for 16-bit int support.
1762
1763 2005-09-06  John (J5) Palmieri  <johnp@redhat.com>
1764
1765         * Released 0.50
1766
1767         * Patch from Steve Grubb:
1768         - bus/activation.c (bus_activation_service_reload_test): clean up
1769         some indentation
1770         - dbus/dbus-keyring.c (_dbus_keyring_reload): fix conditional 
1771         - dbus/dbus-message-factory.c (generate_special): fix a couple of
1772         buffer overflows in the test suite.  This is non critical because
1773         it can not be exploited and this code is only run when doing a 
1774         make check.
1775
1776         * Patch from Yaakov Selkowitz: Build fixes for Cygwin
1777         - configure.in: Don't check and link against kdecore, only qt headers
1778         - dbus/Makefile.am: Add -no-undefined to libdbus_1_la_LDFLAGS
1779         - gcj/org/freedesktop/dbus/Makefile.am:
1780         add libdbus_gcj_1_la_LDFLAGS = -no-undefined
1781         - glib/Makefile.am: Add -no-undefined to libdbus_glib_1_la_LDFLAGS
1782         and $(DBUS_GLIB_LIBS) to dbus_binding_tool_LDADD
1783         - qt/Makefile.am: Add -no-undefined to libdbus_qt_1_la_LDFLAGS
1784         - tools/Makefile.am: Add platform extentions to binaries 
1785         (i.e. .exe on windows)
1786
1787         * configure.in: 
1788         - Make it so if no suitable version of python is found we only 
1789         disable building python instead of exiting the configure script
1790         - Require version 2.4 of glib for glib bindings
1791         - Up version to 0.50
1792
1793         * python/__init__.py: Sync version with libdbus to (0,50,0)
1794         
1795 2005-09-05  Olivier Andrieu  <oliv__a@users.sourceforge.net>
1796
1797         * dbus/dbus-object-tree.c (find_subtree_recurse):
1798         a couple of optimizations (bug #710):
1799         - do a binary search in the tree
1800         - insert a new child at the right place directly, no need for
1801           qsort anymore
1802         - do the "double alloc" thing when allocating children
1803
1804 2005-08-31  John (J5) Palmieri  <johnp@redhat.com>
1805
1806         * python/Makefile.am: Break on pyrexc errors instead of ignoring them
1807
1808         * python/dbus_bindings.pyx: Memory management foo
1809         (global): remove hacky _user_data_references global list
1810         (GIL_safe_cunregister_function_handler): userdata now stuffed into
1811         tuples. Unref user_data
1812         (GIL_safe_cmessage_function_handler): userdata now stuffed into tuples
1813         (Connection::__del__): Remove and replace with __dealloc__ method
1814         (Connection::add_filter): Stuff user_data into a tuple.  Use Py_INCREF
1815         to keep tuple from being deallocated instead of the global var hack
1816         (Connection::register_object_path): Stuff user_data into a tuple.
1817         Use Py_INCREF to keep tuple from being deallocated instead of the 
1818         global var hack
1819         (Connection::register_fallback): Stuff user_data into a tuple.
1820         Use Py_INCREF to keep tuple from being deallocated instead of the 
1821         global var hack
1822         (GIL_safe_pending_call_notification): Don't unref the message
1823         because it gets unreffed when going out of scope.  Py_XDECREF
1824         the user_data
1825         (PendingCall::__del__): Remove and replace with __dealloc__ method
1826         (PendingCall::set_notify): ref the pending call because we will
1827         need it to stick around for when the notify callback gets called
1828         (Message::__del__): Remove and replace with __dealloc__ method
1829
1830         * python/dbus_glib_bindings.pyx (init_gthreads): Changed to 
1831         gthreads_init to match up with the dbus call
1832
1833         * python/glib.py (init_threads): Changed to threads_init to match
1834         up with gobject.threads_init().  init_threads is kept for backwards
1835         compat but will most likely be deprecated in the future
1836
1837         * test/python/test-client.py: 
1838         - revamp to use Python's unittest functionality
1839         - add async call tests
1840         - setup threads in glib and dbus so we make sure locks are working
1841         
1842 2005-08-30  John (J5) Palmieri  <johnp@redhat.com>
1843
1844         * python/dbus_bindings.pyx 
1845         (_pending_call_notification, cunregister_function_handler, 
1846         cmessage_function_handler): All callback functions have been rearranged 
1847         to workaround a bug in Pyrex when working with the GIL which is Python's 
1848         global lock when dealing with threads.  They have been split into
1849         a wrapper function (which assumes the name of the old function) and
1850         a _GIL_safe_<function name> function which contains the functionality
1851         of the old function.  This ensures that Pyrex does not write code
1852         the lock is released.
1853         
1854
1855 2005-08-30  John (J5) Palmieri  <johnp@redhat.com>
1856
1857         * python/dbus_bindings.pyx (_pending_call_notification): Obtain the
1858         GIL global lock when calling back into Python
1859
1860 2005-08-29  John (J5) Palmieri  <johnp@redhat.com>
1861
1862         * Release 0.36.2
1863
1864         * Add Havoc's patch that never got applied to HEAD (Bug #2436):
1865
1866         * bus/policy.c (bus_policy_allow_user): change default "user is
1867         allowed" to be "user has same uid as the bus itself"; any
1868         allow/deny rules will override.
1869
1870         * bus/session.conf.in: don't allow all users, since now by default
1871         the user that ran the bus can connect.
1872
1873 2005-08-26  Colin Walters  <walters@verbum.org>
1874
1875         * tools/dbus-print-message.c (print_message): Flush stdout
1876         after printing a message, so that redirecting to a file, then
1877         hitting Ctrl-C works.
1878
1879 2005-08-25  John (J5) Palmieri  <johnp@redhat.com>
1880
1881         * python/dbus_bindings.pyx: Tracked down a major memleak and fixed it
1882         (EmptyMessage): new class that subclasses Message.  This is a workaround
1883         to a Pyrex bug that fails to call __del__ when the Message object goes out
1884         of scope.  For some reason subclassing Message fixes this bug
1885         (Bus::send_with_reply_and_block): use EmptyMessage instead of Message
1886         - s/Message(_create=0)/EmptyMessage everywhere else
1887         
1888         * test/python/test-{server|client}.py: add the python/.libs directory
1889         to the lookup path so dbus_bindings and dbus_glib_bindings don't
1890         get picked up from the system
1891
1892 2005-08-25  Colin Walters  <walters@verbum.org>
1893
1894         * glib/dbus-gproxy.c (dbus_g_proxy_call): Doc update, thanks
1895         to Ryan Lortie for the suggestion.
1896
1897 2005-08-24  John (J5) Palmieri  <johnp@redhat.com>
1898
1899         * test/python: Add python regression test
1900
1901         * configure.in: Add test/python/Makefile
1902
1903         * test/Makefile.am: Add the python directory to SUBDIRS
1904
1905 2005-08-24  John (J5) Palmieri  <johnp@redhat.com>
1906
1907         * Release 0.36.1
1908
1909         * python/_dbus.py: 
1910         (Interface::connect_to_signal): propigate keywords for match on args
1911         (Bus::add_signal_receiver): Fix typo s/dbus_inteface/dbus_interface
1912
1913         * python/proxies.py (ProxyObject::connect_to_signal):
1914         propigate keywords for match on args
1915
1916         * Makefile.am: point everything to pyexecdir since python borks
1917         on multilib
1918
1919 2005-08-23  John (J5) Palmieri  <johnp@redhat.com>
1920
1921         * Release 0.36
1922
1923 2005-08-23  Colin Walters  <walters@verbum.org>
1924
1925         * test/glib/Makefile.am: Don't multiply-define EXTRA_DIST.
1926
1927 2005-08-23  John (J5) Palmieri  <johnp@redhat.com>
1928
1929         * python/dbus_glib_bindings.pyx: reorder imports and c definitions
1930         to fix some wranings. We now use dbus_bindings.DBusConnection instead
1931         of defining DBusConnection ourselves.
1932
1933 2005-08-18  John (J5) Palmieri  <johnp@redhat.com>
1934
1935         * python/dbus.pth: New path file to fix up problems when installing
1936         c libraries to lib64 and python files to lib.
1937
1938         * python/Makefile.am: install dbus.pth in the correct spot
1939
1940 2005-08-17  John (J5) Palmieri  <johnp@redhat.com>
1941         * ChangeLog: clean up my last entry a bit
1942
1943         * doc/introspect.xsl: New stylesheet for converting introspection data
1944         into browser renderable xhtml. Contributed by Lennart Poettering.
1945
1946         * doc/introspect.dtd: Fixups in the introspect format from Lennart
1947         Poettering.
1948
1949         * doc/dbus-tutorial.xml: 
1950         - Add Colin Walter to the Authors section for authoring the GLib
1951         section
1952         - Add descriptions of the new signature and type functionality
1953         in the Python complex type mapping section
1954         - Add a sidenote on the new args matching functionality in 
1955         the Python bindings
1956         - Fixed up some of the examples to use the gobject.MainLoop
1957         instead of gtk.main
1958         
1959         * python/_dbus.py:
1960         (Bus::_create_args_dict): New. Converts a hash of arg matches
1961         to a more useable format
1962         (Bus::add_signal_receiver): add a **keywords parameter for catching
1963         arg match parameters
1964         (Bus::remove_signal_receiver): add a **keywords parameter for catching
1965         arg match parameters
1966         
1967         * python/matchrules.py:
1968         (MatchTree::exec_matches): Check for arg matches
1969         (SignalMatchRule::add_args_match): New method
1970         (SignalMatchRule::execute): Added args_list parameter as an optimization
1971         so we don't have to marshal the args more than once
1972         (SignalMatchRule::match_args_from_list): New method that checks to see
1973         if the rule's arg matches match an argument list.  Only arguments
1974         set in the rule are checked.
1975         (SignalMatchRule::match_args_from_rule): New method that checks to see
1976         if the rule's arg matches match another rule's.  All args have to match
1977         in order for this method to return true.  If either rule has more args
1978         then it is not a match.
1979         (SignalMatchRule::is_match): Add args match
1980         (SignalMatchRule::repr): Add args to the final output if they exist
1981
1982 2005-08-17  Ross Burton  <ross@burtonini.com>
1983
1984         * glib/dbus-gproxy.c:
1985         (dbus_g_proxy_call_no_reply): unref the message once sent.
1986         (dbus_g_proxy_call): protect against NULL proxy.
1987
1988 2005-08-16  John (J5) Palmieri  <johnp@redhat.com>
1989
1990         * python/__init__.py: Version updated (0, 43, 0)
1991         
1992         * python/dbus_bindings.pyx: 
1993         - Fixed type objects to have self passed into __init__
1994         - Added the Variant type
1995         - Add the ability to specify types or signatures for Array, Variant 
1996         and Dictionary
1997         (Connection::send_with_reply_handlers): return a PendingCall object
1998         (_pending_call_notification): handle the case when an error is returned 
1999         without an error message in the body
2000         (MessageIter::get_boolean): return True or False instead of an integer
2001         (MessageIter::python_value_to_dbus_sig): add direct checking of types 
2002         and add checks for objects with embeded signatures or types (Array, 
2003         Variant and Dictionary)
2004         (MessageIter::append_byte): handle case when the value is a dbus.Byte
2005         (MessageIter::append_dict): handle embeded types or signatures
2006         (MessageIter::append_array): handle embeded types or signatures
2007         (MessageIter::append_variant): new method
2008         
2009         * python/proxies.py:
2010         (DeferedMethod): New. Dummy executable object used when queuing calls 
2011         blocking on introspection data
2012         (ProxyMethod::__call__): add the timeout keyword for specifying longer 
2013         or shorter timeouts for method calls
2014         (ProxyObject): Add first pass at an introspection state machine
2015         (ProxyObject::__init__): Add introspect keyword for turing off an on 
2016         introspection. 
2017         (ProxyObject::_Introspect): Internal Introspect call that bypasses 
2018         the usual mechanisms for sending messages.  This is to avoid a deadlock
2019         where the Intospect call would be queued waiting for the Introspect 
2020         call to finish ;-)
2021         (ProxyObject::_introspect_reply_handler): New.  This method is called 
2022         when introspection returns with no error
2023         (ProxyObject::_introspect_error_handler): New.  This method is called 
2024         when introspection encounters an error
2025         (ProxyObject::__getattr__): Code to handle different introspection 
2026         states.  Queue async calls or block blocking calls if we are 
2027         introspecting.  Pass through as normal if we are not or are done with 
2028         introspecting.
2029         
2030         * python/service.py: Import signal and method from decorators.py
2031
2032         * python/types.py: Add Variant type
2033
2034 2005-08-16  Colin Walters  <walters@verbum.org>
2035
2036         * glib/dbus-gobject.c (dbus_set_g_error): Don't lose if the
2037         DBusError message is NULL.
2038
2039 2005-08-09  Havoc Pennington  <hp@redhat.com>
2040
2041         * dbus/dbus-errors.c: apply patch from Timo Teras to make a
2042         malloc'd copy of the name parameter
2043
2044 2005-08-09  Havoc Pennington  <hp@redhat.com>
2045
2046         * dbus/dbus-message.c (dbus_message_set_reply_serial): print
2047         warning if the reply serial is set to 0
2048
2049 2005-08-04  Colin Walters  <walters@verbum.org>
2050
2051         * glib/dbus-gvalue-utils.h (_dbus_g_type_specialized_builtins_init)
2052         (dbus_g_type_is_fixed, dbus_g_type_fixed_get_size)
2053         (dbus_gvalue_set_from_pointer, dbus_g_hash_table_value_foreach)
2054         (dbus_g_hash_table_insert_values, dbus_g_hash_table_insert_steal_values)
2055         (dbus_gtype_is_valid_hash_key, dbus_gtype_is_valid_hash_value)
2056         (dbus_g_hash_func_from_gtype, dbus_g_hash_free_from_gtype)
2057         (dbus_g_hash_equal_from_gtype, dbus_gvalue_stor, dbus_gvalue_take):
2058         * glib/dbus-gvalue.h (dbus_g_value_types_init)
2059         (dbus_gvalue_demarshal, dbus_gvalue_demarshal_variant)
2060         (dbus_gvalue_demarshal_message, dbus_gvalue_marshal):
2061         
2062         Prefix name with _ to ensure they're not exported.  All callers
2063         updated.
2064
2065         * glib/dbus-gvalue.c (typecode_to_gtype)
2066         (dbus_typecode_maps_to_basic, basic_typecode_to_gtype)
2067         (signature_iter_to_g_type_dict)
2068         (signature_iter_to_g_type_array)
2069         (dbus_gtype_from_signature_iter, dbus_gtype_from_signature)
2070         (dbus_gtypes_from_arg_signature):
2071         Move to dbus-gsignature.c.
2072
2073         * glib/dbus-binding-tool-glib.c (dbus_binding_tool_output_glib_server): Call
2074         dbus_g_type_specialized_builtins_init instead of dbus_g_value_types_init.
2075         (dbus_binding_tool_output_glib_client): Ditto.
2076
2077         * glib/Makefile.am (DBUS_GLIB_INTERNALS): Add dbus-gsignature.c
2078         and dbus-gsignature.h
2079
2080         * test/glib/test-service-glib.c (my_object_rec_arrays): Delete
2081         unused variable.
2082
2083 2005-08-03  Colin Walters  <walters@verbum.org>
2084
2085         * glib/dbus-gobject.c: Add tests on hardcoded object info; this should
2086         catch any incompatible changes accidentally made.
2087
2088 2005-08-03  Havoc Pennington  <hp@redhat.com>
2089
2090         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): fix
2091         typo, from Julien Puydt
2092
2093         * bus/connection.c (bus_connection_disconnected): we were always
2094         doing a wait_for_memory due to a buggy loop, found by Timo Hoenig
2095
2096 2005-08-01  Colin Walters  <walters@verbum.org>
2097
2098         Patch from Joe Markus Clarke:   
2099         
2100         * glib/dbus-gidl.c (property_info_unref, arg_info_unref): Fix
2101         use-after-free.
2102
2103 2005-08-01  Colin Walters  <walters@verbum.org>
2104         
2105         Patch from Joe Markus Clarke:   
2106         
2107         * tools/dbus-send.c (main): 
2108         
2109         Don't use C99 style initializers (bug #3933).
2110         
2111 2005-08-01  Colin Walters  <walters@verbum.org>
2112
2113         Patch from Joe Markus Clarke:   
2114
2115         * glib/dbus-gvalue.c (dbus_g_value_types_init): 
2116         * glib/dbus-gvalue-utils.c (dbus_g_type_specialized_builtins_init) 
2117         * glib/dbus-gobject.c (write_interface):
2118
2119         Don't use C99 style initializers (bug #3933).
2120
2121 2005-07-31  Havoc Pennington  <hp@redhat.com>
2122
2123         * tools/dbus-viewer.c (load_child_nodes): fix invocation of
2124         dbus_g_proxy_call, fix from Piotr Zielinski bug #3920
2125
2126 2005-07-30  Havoc Pennington  <hp@redhat.com>
2127
2128         * fix a bunch of Doxygen warnings and mistakes
2129
2130 2005-07-30  Havoc Pennington  <hp@redhat.com>
2131
2132         * dbus/dbus-sysdeps.c (_dbus_string_parse_uint): remove #ifdef
2133         DBUS_BUILD_TESTS since it's now used in production code
2134
2135 2005-07-29  Havoc Pennington  <hp@redhat.com>
2136
2137         * test/glib/test-profile.c (write_junk): initialize the junk
2138         buffer so valgrind doesn't have a breakdown
2139
2140 2005-07-29  Havoc Pennington  <hp@redhat.com>
2141
2142         * bus/signals.c (bus_signals_test): add match_rule_equal() tests
2143         (match_rule_matches): remove unused arg
2144         (test_matching): add tests for match_rule_matches()
2145
2146         * bus/signals.c (bus_match_rule_parse_arg_match): add ability to
2147         do arg0='foo' arg5='bar' in the match rules
2148         (match_rule_matches): don't match if the arg0='foo' doesn't match.
2149
2150         * dbus/dbus-protocol.h (DBUS_MAXIMUM_MATCH_RULE_ARG_NUMBER): add this
2151
2152 2005-07-29  Ross Burton  <ross@openedhand.com>
2153
2154         * dbus/dbus-connection.c:
2155         Don't create a DBusCondVar which is never used.
2156
2157 2005-07-27  Ross Burton  <ross@openedhand.com>
2158
2159         * dbus/dbus-message.c:
2160         Reduce the size of the maximum cached message to 10K.
2161
2162 2005-07-25  Ross Burton  <ross@openedhand.com>
2163
2164         * glib/dbus-gproxy.c:
2165         Remove matches when all proxies are unregistered.
2166
2167 2005-07-24  Colin Walters  <walters@verbum.org>
2168
2169         * glib/dbus-gvalue.c (signature_iter_to_g_type_array): Don't require
2170         typedata; recursive arrays won't have it.
2171
2172         * test/glib/test-dbus-glib.c:
2173         * test/glib/test-service-glib.c:
2174         * test/glib/test-service-glib.xml: Add recursive arrays tests.
2175         
2176 2005-07-20  John (J5) Palmieir  <johnp@redhat.com>
2177
2178         * python/_dbus.py, _util.py, decorators.py, extract.py, matchrules.py.
2179         proxies.py, service.py: Cleanup of code after running it through the
2180         pyflakes code checker mostly dealing with undefined names.  
2181         (Bug #3828, Patch from Anthony Baxter <anthony@interlink.com.au>)
2182
2183 2005-07-17  John (J5) Palmieri  <johnp@redhat.com>
2184
2185         * NEWS: Update to 0.35.2
2186
2187 2005-07-17  John (J5) Palmieri  <johnp@redhat.com>
2188
2189         * python/_dbus.py: Remove import of the dbus.services
2190         module as it no longer exists (patch from Dimitur Kirov)
2191
2192         * python/service.py (Object::__init__): Fixed typo
2193         s/name/bus_name (patch from Dimitur Kirov)
2194
2195         * python/examples/example-signal-emitter.py: import dbus.glib
2196         to get the main loop and use glib mainloop instead of gtk so
2197         X doesn't have to be running.
2198
2199         * python/examples/example-signal-recipient.py: import dbus.glib
2200         to get the main loop and use glib mainloop instead of gtk so
2201         X doesn't have to be running. Import the decorators module
2202         directly.
2203
2204         * test/glib/Makefile.am:  Added DIST_EXTRA files that distcheck
2205         didn't pick up on but are needed to build
2206
2207         * configure.in: upped version to 0.35.2
2208
2209         * bus/driver.c, bus/selinux.c, bus/selinux.h, dbus/dbus-protocol.h:
2210         added Colin Walters' SELinux API rename patch from head 
2211         s/unix sercurity context/selinux security context/
2212
2213 2005-07-16  John (J5) Palmieri  <johnp@redhat.com>
2214
2215         * python/Makefile.am: dbus_binding.pxd.in should be included 
2216         in EXTRA_DIST not dbus_binding.pxd
2217         fix up $(srcdir) hopefully for the last time
2218
2219         * NEWS: Update to 0.35.1
2220
2221 2005-07-16  Colin Walters  <walters@verbum.org>
2222
2223         * bus/driver.c (bus_driver_handle_get_connection_selinux_security_context): Renamed
2224         from bus_driver_handle_get_connection_unix_security_context.  Update for
2225         error usage.
2226         (message_handlers): Update for renames.
2227
2228         * bus/selinux.c (bus_selinux_allows_send): Handle OOM on
2229         _dbus_string_init failure correctly.
2230         (bus_selinux_append_context): Convert SID to context.  Append it
2231         as a byte array.
2232         (bus_selinux_shutdown): Handle the case where bus_selinux_full_init
2233         hasn't been called.
2234
2235         * bus/selinux.h: Update prototype.
2236
2237         * dbus/dbus-protocol.h (DBUS_ERROR_SELINUX_SECURITY_CONTEXT_UNKNOWN): Renamed
2238         from DBUS_ERROR_UNIX_SECURITY_CONTEXT_UNKNOWN.
2239
2240 2005-07-15  Colin Walters  <walters@verbum.org>
2241
2242         * doc/TODO: Add note about convenience wrappers.
2243
2244 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
2245
2246         * NEWS: Update to 0.35
2247
2248 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
2249
2250         * glib/Makefile.am: Add make-dbus-glib-error-switch.sh to EXTRA_DIST
2251         so distcheck doesn't fail
2252
2253         * glib/examples/Makefile.am: Add example-service.xml and 
2254         example-signal-emitter.xml to EXTRA_DIST so distcheck doesn't fail
2255
2256         * glib/examples/statemachine/Makefile.am: Add statemachine.xml and
2257         statemachine-server.xml to EXTRA_DIST so distcheck doesn't fail
2258
2259         * python/Makefile.am: Preprend $(srcdir)/ to source files so the
2260         compiler looks in the right places during distcheck
2261
2262 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
2263
2264         * glib/example/Makefile.am: Fix a typo which cause make distcheck
2265         to fail
2266
2267 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
2268
2269         * python/examples/example-service.py,
2270         python/examples/example-signal-emitter.py: Fixed up examples
2271         for API changes
2272
2273 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
2274
2275         * python/__init__.py: Upped to version (0,42,0) because of
2276         the API change
2277
2278 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
2279
2280         * ChangeLog: fix date in last entry
2281
2282         * configure.in, bus/system.conf.in: add the ability to configure 
2283         the system bus user at compiletime with the --with-dbus-user flag
2284         (patch from Kristof Vansant)
2285
2286 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
2287
2288         * bus/dispatch.c, test/test-service.c: Add testcase
2289         for sending messages to oneself (TODO item).
2290
2291         * python/service.py (class Object): Swap ordering of bus_name 
2292         and object_path parameters to better support inheritance.
2293
2294         * doc/dbus-tutorial.xml: change Python docs to reflect change
2295         in parameter ordering and fix the inheritance section.
2296
2297         * doc/TODO: remove sending message to oneself TODO item
2298
2299 2005-07-15  Ross Burton  <ross@openedhand.com>
2300
2301         * glib/dbus-gproxy.c:
2302         Fix a leak when calling methods via the proxy.
2303
2304 2005-07-15  Colin Walters  <walters@verbum.org>
2305
2306         * bus/selinux.c (bus_selinux_append_context): Wrap in
2307         HAVE_SELINUX.
2308
2309 2005-07-14  John (J5) Palmieri  <johnp@redhat.com>
2310
2311         * python/_dbus.py (Bus::remove_signal_receiver):
2312         don't add a callback to the match if none has been passed in
2313         
2314         * python/matchrules.py (SignalMatchTree::remove): if the rule
2315         being matched does not have a callback treat it as a wildcard
2316         fix matching logic
2317
2318         * doc/dbus-tutorial.xml: Add Python tutorial
2319
2320 2005-07-14  Colin Walters  <walters@verbum.org>
2321
2322         * bus/driver.c
2323         (bus_driver_handle_get_connection_unix_security_context): New function.
2324         (message_handlers): Add.
2325
2326         * bus/selinux.c (bus_selinux_append_context): New function; appends
2327         security context to message.
2328
2329         * bus/selinux.h: Prototype.
2330
2331         * dbus/dbus-protocol.h (DBUS_ERROR_UNIX_SECURITY_CONTEXT_UNKNOWN): New.
2332
2333 2005-07-14  John (J5) Palmieri  <johnp@redhat.com>
2334
2335         * bus/activation.c: clean up all tabs to be 8 spaces 
2336         (bus_activation_activate_service): make sure we clean up
2337         if activation fails
2338
2339         * bus/dispatch.c: clean up all tabs to be 8 spaces 
2340         (check_shell_fail_service_auto_start): New function
2341         tests to make sure we get fail properly when trying to auto start a service
2342         with a faulty command line
2343         (check_shell_service_success_auto_start): New function tests to make sure
2344         auto started services get the arguments on the command line
2345
2346         * test/test-shell-service.c: Added service for testing auto-starting with 
2347         command line arguments
2348
2349         * test/data/valid-service-files/debug-shell-echo-fail.service.in, 
2350         test/data/valid-service-files/debug-shell-echo-success.service.in:
2351         Added service files for testing auto-starting with command line arguments
2352
2353         * */.cvsignore: added a bunch of generated files to various .cvsignore files
2354
2355 2005-07-14  Rodrigo Moya  <rodrigo@novell.com>
2356
2357         * dbus/dbus-shell.[ch]: copy/pasted code from GLib.
2358         
2359         * dbus/Makefile.am: added new files to build.
2360
2361         * bus/activation.c (bus_activation_activate_service): support
2362         activation commands with parameters.
2363
2364         * test/shell-test.c: added test program for the shell parsing
2365         code.
2366
2367 2005-07-13  David Zeuthen  <davidz@redhat.com>
2368
2369         * tools/dbus-send.c (append_arg, type_from_name): Also support 16 and
2370         64 bit signed and unsigned parameters
2371
2372 2005-07-13  John (J5) Palmieri  <johnp@redhat.com>
2373
2374         * python/.cvsignore: remove dbus_bindings.pyx, add dbus_bindings.pxd
2375
2376         * python/service.py (class Name): renamed BusName to make it clearer
2377         what the object is for (a name on the bus)
2378
2379         * python/examples/example-service.py,
2380         python/examples/example-signal-emitter.py: change the Name object to
2381         BusName
2382
2383 2005-07-12  Colin Walters  <walters@verbum.org>
2384
2385         Patch from Jim Gettys <Jim.Gettys@hp.com>.
2386
2387         * tools/dbus-launch.c: Include sys/select.h.
2388
2389 2005-07-12  John (J5) Palmieri  <johnp@redhat.com>
2390         * python/dbus_bindings.pyx.in: removed
2391
2392         * python/dbus_bindings.pyx: Added.
2393         - Fixed some memleaks (patch from 
2394         Sean Meiners <sean.meiners@linspireinc.com>)
2395         - Broke out the #include "dbus_h_wrapper.h" and put it in its
2396         own pxd file (Pyrex definition)
2397         - Broke out glib dependancies into its own pyx module
2398         
2399         * python/dbus_bindings.pdx: Added.
2400         - Defines C class Connection for exporting to other modules
2401
2402         * python/dbus_glib_bindings.pyx: Added.
2403         - New module to handle lowlevel dbus-glib mainloop integration
2404
2405         * python/glib.py: Added.
2406         - Registers the glib mainloop when you import this module
2407
2408         * python/services.py: Removed (renamed to service.py)
2409         
2410         * python/service.py: Added.
2411         - (class Server): renamed Name
2412
2413         * python/__init__.py: Bump ro version (0,41,0)
2414         -don't import the decorators or service module
2415         by default.  These now reside in the dbus.service namespace
2416
2417         * python/_dbus.py (Bus::__init__): Add code run the main loop 
2418         setup function on creation 
2419
2420         * python/examples/example-service.py,
2421         python/examples/example-signal-emitter.py: update examples
2422
2423         * python/examples/gconf-proxy-service.py,
2424         python/examples/gconf-proxy-service2.py: TODO fix these up
2425
2426         * doc/TODO: Addition
2427         - Added a Python Bindings 1.0 section
2428         - added "Add match on args or match on details to match rules"
2429
2430
2431 2005-07-12  Colin Walters  <walters@verbum.org>
2432
2433         * glib/examples/statemachine/Makefile.am (statemachine-server-glue.h) 
2434         (statemachine-glue.h): 
2435         * glib/examples/Makefile.am (example-service-glue.h) 
2436         (example-signal-emitter-glue.h): 
2437         * glib/Makefile.am (dbus-glib-error-switch.h): 
2438         Add libtool --mode=execute so we use the built library instead
2439         of any installed one.
2440
2441 2005-07-11  Colin Walters  <walters@verbum.org>
2442
2443         * glib/dbus-gvalue.c (struct _DBusGValue): Delete.
2444         (dbus_g_value_types_init): Remove assertion.
2445         (dbus_g_value_get_g_type, dbus_g_value_open)
2446         (dbus_g_value_iterator_get_values, dbus_g_value_get_signature)
2447         (dbus_g_value_copy, dbus_g_value_free): Delete unimplemented
2448         functions related to DBusGValue.  Now we marshal/demarshal
2449         structures as GValueArray.
2450         (dbus_gtype_from_signature_iter): Return G_TYPE_VALUE_ARRAY for
2451         structures.
2452         (signature_iter_to_g_type_array): Don't call
2453         signature_iter_to_g_type_struct.
2454         (signature_iter_to_g_type_struct): Delete.
2455         (dbus_gvalue_to_signature): Delete.
2456         (dbus_gvalue_to_signature): New function with same name as other
2457         one; we can convert structures to signatures.
2458         (demarshal_valuearray): New function.
2459         (get_type_demarshaller): Use it.
2460         (demarshal_recurse): Delete.
2461         (marshal_proxy): New function.
2462         (marshal_map): Warn if we can't determine signature from type.
2463         (marshal_collection_ptrarray): Ditto.
2464         (marshal_collection_array): Ditto.
2465         (get_type_marshaller): Use marshal_valuearray.
2466         (marshal_recurse): Delete.
2467         (_dbus_gvalue_test): Add some tests.
2468
2469         * dbus/dbus-glib.h (struct _DBusGValueIterator): 
2470         (dbus_g_value_get_g_type, DBUS_TYPE_G_VALUE)
2471         (dbus_g_value_open, dbus_g_value_iterator_get_value)
2472         (dbus_g_value_iterator_get_values, dbus_g_value_iterator_recurse)
2473         (dbus_g_value_free): Remove prototypes.
2474
2475         * glib/dbus-binding-tool-glib.c (dbus_g_type_get_lookup_function): Handle
2476         G_TYPE_VALUE_ARRAY.
2477
2478         * glib/examples/example-service.c:
2479         * glib/examples/example-client.c: Implement GetTuple.
2480
2481         * test/glib/test-dbus-glib.c:
2482         * test/glib/test-service-glib.c:
2483         * test/glib/test-service-glib.xml: Add structure tests.
2484
2485 2005-07-10  Colin Walters  <walters@verbum.org>
2486
2487         * doc/TODO: Knock off some GLib items with this patch.
2488
2489         * glib/dbus-gvalue-utils.c (_dbus_gtype_can_signal_error) 
2490         (_dbus_gvalue_signals_error): New functions.
2491
2492         * glib/dbus-gvalue-utils.h: Prototype them.
2493
2494         * glib/dbus-gobject.c (arg_iterate): Update to handle return vals
2495         and change to not output const/retval flags for input args.  All
2496         callers updated.
2497         (invoke_object_method): Refactor to handle return values.  Add
2498         some more comments in various places.  Remove debug g_print.
2499
2500         * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_RETURNVAL): New.
2501
2502         * glib/dbus-binding-tool-glib.c (dbus_g_type_get_marshal_name):
2503         Handle G_TYPE_NONE.
2504         (compute_gsignature): New function; refactored from code from
2505         compute_marshaller and compute_marshaller_name.  Enhance to
2506         handle return values and async ops more cleanly.  Update for
2507         async ops returning NONE instead of BOOLEAN.
2508         (compute_marshaller, compute_marshaller_name): Call compute_gsignature
2509         and output appropriate string.
2510         (generate_glue): Handle return value annotation.  Also don't dump
2511         constness flag for input arguments.
2512
2513         * glib/Makefile.am (DBUS_GLIB_INTERNALS): New variable; contains
2514         files shared between installed library and utilities.
2515         (libdbus_glib_1_la_SOURCES): Move some stuf into DBUS_GLIB_INTERNALS.
2516         (libdbus_gtool_la_SOURCES): Suck in DBUS_GLIB_INTERNALS so the
2517         binding tool can access gtype utility functions.
2518
2519         * test/glib/test-service-glib.c: 
2520         * test/glib/test-service-glib.xml: 
2521         * test/glib/test-dbus-glib.c: Add some tests for return values.
2522
2523 2005-07-09  Colin Walters  <walters@verbum.org>
2524
2525         * glib/dbus-gparser.c (parse_annotation): Add annotations to
2526         argument if available, not method.
2527
2528         * glib/dbus-gobject.c (arg_iterate): More verbose warnings.
2529         (invoke_object_method): First, remove some redundant
2530         GValues (object_value, error_value) in favor of working on
2531         array directly.  Second, rework constness to be less buggy.
2532         Now we iterate directly over the argument metadata instead
2533         of parallel iterating over output signature and metadata.
2534
2535         * glib/dbus-glib-tool.h: Add INVALID_ANNOTATION error.
2536
2537         * glib/dbus-binding-tool-glib.c (generate_glue): Barf on const
2538         annotation on input args.
2539         
2540 2005-07-09  Colin Walters  <walters@verbum.org>
2541
2542         * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_CONST):
2543         Define.
2544
2545         * glib/dbus-binding-tool-glib.c (generate_glue): Handle Const
2546         annotation.
2547
2548         * glib/dbus-gobject.c (arg_iterate): Update to parse constval too.
2549         (method_dir_signature_from_object_info): Handle arg_iterate change.
2550         (write_interface): Ditto.
2551         (lookup_object_info): Don't barf if format_version is > 0.
2552         (invoke_object_method): Handle arg constness.
2553
2554         * glib/dbus-gidl.c (struct ArgInfo): Add annotations.
2555         (arg_info_new): Create.
2556         (arg_info_unref): Destroy.
2557         (arg_info_get_annotations, arg_info_get_annotation) 
2558         (arg_info_add_annotation): New functions.
2559
2560         * glib/dbus-gidl.h: Prototype them.
2561
2562         * glib/dbus-gparser.c (parse_annotation): Allow annotations in
2563         args, disallow them in properties.
2564         (parse_annotation): Handle arg annotations.
2565
2566         * test/glib/test-service-glib.xml: 
2567         * test/glib/test-service-glib.c: Update to make some methods
2568         const.
2569
2570 2005-07-08  Colin Walters  <walters@verbum.org>
2571
2572         * test/glib/test-service-glib.xml: 
2573         * test/glib/test-service-glib.c:
2574         * test/glib/test-dbus-glib.c: Test a{sv}.
2575
2576         * glib/examples/statemachine/statemachine.c:
2577         * glib/examples/statemachine/statemachine-server.c:
2578         * glib/examples/statemachine/statemachine-client.c: Fix some bugs,
2579         add progress bar, etc.
2580
2581         * glib/dbus-gvalue.c (register_array, register_dict): Delete; not
2582         needed anymore due to generic array/map marshalling.
2583         (dbus_g_value_types_init): Don't register basic arrays or the
2584         string/string hash.
2585         (dbus_gtype_from_signature_iter): Don't try to recurse into
2586         variants.
2587         (dbus_gtype_to_signature): Check collection/map before type
2588         metadata.
2589         (demarshal_garray_basic): Renamed to demarshal_collection_array.
2590         (demarshal_ghashtable): Renamed to demarshal_map; fix to use new
2591         generic map creation/append functions instead of hash table
2592         specifically.
2593         (get_type_demarshaller): Handle maps.
2594         (demarshal_collection): Dispatch on collection type to either
2595         demarshal_collection_ptrarray or demarshal_collection_array.
2596         (get_type_marshaller): Handle maps.
2597         (marshal_collection): Dispatch collection type to either
2598         marshal_collection_ptrarray or marshal_collection_array.
2599         (_dbus_gvalue_test): New test.
2600
2601         * glib/dbus-gvalue-utils.c (unset_and_free_g_value): New function.
2602         (hash_free_from_gtype): Use it to free GValues.
2603         (hashtable_append): New function.
2604         (ptrarray_append): Fix prototype.
2605         (slist_append): Ditto.
2606         (_dbus_gvalue_utils_test): Extend tests.
2607
2608         * glib/dbus-gtype-specialized.c
2609         (dbus_g_type_specialized_init_append): Renamed from
2610         dbus_g_type_specialized_collection_init_append.  Remove const from
2611         value, since we steal it.
2612         (dbus_g_type_specialized_map_append): New function.
2613
2614         * glib/dbus-gtype-specialized.h: Update prototypes.
2615         Add DBusGTypeSpecializedMapAppendFunc.
2616
2617         * glib/dbus-gtest.c (dbus_glib_internal_do_not_use_run_tests): Run
2618         _dbus_gvalue_test.
2619         
2620         * glib/dbus-gtest.h: Prototype it.
2621
2622 2005-07-08  Ross Burton  <ross@openedhand.com>
2623
2624         * dbus/dbus-glib.h:
2625         Add DBysGAsyncData for the async bindings.
2626
2627         * glib/dbus-binding-tool-glib.c:
2628         Re-enable the async bindings.
2629
2630         * test/glib/test-dbus-glib.c:
2631         Add a test for the generated async bindings.
2632
2633 2005-07-08  Colin Walters  <walters@verbum.org>
2634
2635         * doc/TODO: Update GLib todo bits, also add a post-1.0 TODO for a
2636         connection concept.
2637         
2638 2005-07-08  Colin Walters  <walters@verbum.org>
2639         
2640         * tools/Makefile.am: Kill of print-introspect in favor of using
2641         dbus-send --print-reply=literal.
2642
2643         * test/glib/test-service-glib.xml: 
2644         * test/glib/test-service-glib.c (my_object_get_objs): New test
2645         for "ao".
2646
2647         * test/glib/test-dbus-glib.c (echo_received_cb): Free echo data.
2648         (main): Test GetObjs.
2649
2650         * glib/examples/statemachine/Makefile.am:
2651         * glib/examples/statemachine/sm-marshal.list:
2652         * glib/examples/statemachine/statemachine-client.c:
2653         * glib/examples/statemachine/statemachine-server.c:
2654         * glib/examples/statemachine/statemachine-server.xml:
2655         * glib/examples/statemachine/statemachine.c:
2656         * glib/examples/statemachine/statemachine.h:
2657         * glib/examples/statemachine/statemachine.xml:
2658
2659         New example.
2660
2661         * glib/examples/example-service.c (main): Move invocation
2662         of dbus_g_object_type_install_info earlier, to emphasize it
2663         should only be done once.
2664
2665         * glib/examples/example-signal-emitter.c (main): Ditto.
2666
2667         * glib/examples/Makefile.am (SUBDIRS): Include statemachine.
2668
2669         * glib/dbus-gvalue.h (dbus_gtype_to_signature)
2670         (dbus_gvalue_marshal): Update prototypes.
2671
2672         * glib/dbus-gvalue.c: Update all marshalling functions to take
2673         const GValue instead of GValue.
2674         (signature_iter_to_g_type_array): Return a GPtrArray for nonfixed
2675         types.
2676         (dbus_gvalue_to_signature): Update for dbus_gtype_to_signature
2677         change.
2678         (dbus_gtype_to_signature): Handle generic collecitons and maps.
2679         Return a newly-allocated string.
2680         (demarshal_proxy, demarshal_object_path, demarshal_object)
2681         (demarshal_strv, demarshal_ghashtable): Set error, don't assert if
2682         we get the wrong types from message.
2683         (get_type_demarshaller): New function, extracted from
2684         dbus_gvalue_demarshal.
2685         (demarshal_collection): New function, demarshals generic
2686         collection.
2687         (dbus_gvalue_demarshal): Just invoke result of
2688         get_type_demarshaller.  Throw error if we don't have one.
2689         (marshal_garray_basic): Abort on OOM.
2690         (get_type_marshaller): New function, extracted from
2691         dbus_gvalue_marshal.
2692         (collection_marshal_iterator, marshal_collection): New functions;
2693         implements generic marshalling for an iteratable specialized
2694         collection.
2695         (dbus_gvalue_marshal): Just invoke result of get_type_marshaller.
2696
2697         * glib/dbus-gvalue-utils.c (gvalue_from_ptrarray_value): Handle
2698         G_TYPE_STRING.
2699         (ptrarray_value_from_gvalue): Ditto.
2700         (ptrarray_append, ptrarray_free): New functions.
2701         (slist_constructor, slist_iterator, slist_copy_elt, slist_copy) 
2702         (slist_append, slist_end_append, slist_free): New functions.
2703         (dbus_g_type_specialized_builtins_init): Add append fuctions
2704         for GPtrArray and GSList.  Register GSList.
2705         (test_specialized_hash, _dbus_gvalue_utils_test): New functions.
2706
2707         * glib/dbus-gtype-specialized.h (DBusGTypeSpecializedAppendContext):
2708         New.
2709         (dbus_g_type_specialized_collection_init_append)
2710         (dbus_g_type_specialized_collection_append)
2711         (dbus_g_type_specialized_collection_end_append): Prototype.
2712         (DBusGTypeSpecializedCollectionVtable): Add append_func and
2713         end_append_func.
2714
2715         * glib/dbus-gtype-specialized.c (dbus_g_type_specialized_collection_init_append) 
2716         (dbus_g_type_specialized_collection_append) 
2717         (dbus_g_type_specialized_collection_end_append): New functions.
2718         (dbus_g_type_map_value_iterate): Take const GValue.
2719         (dbus_g_type_collection_value_iterate): Ditto.
2720
2721         * glib/dbus-gtest.c (dbus_glib_internal_do_not_use_run_tests): Run
2722         _dbus_gvalue_utils_test.
2723         
2724         * glib/dbus-gtest.h: Prototype it.
2725
2726         * glib/dbus-gproxy.c (dbus_g_proxy_manager_filter): Avoid
2727         using uninitialized owner_list.
2728         (dbus_g_proxy_begin_call_internal): Move return_if_fail to
2729         public API.
2730         (dbus_g_proxy_end_call_internal): Update to use error set
2731         from dbus_gvalue_demarshal instead of setting it here.
2732         (dbus_g_proxy_begin_call): Move return_if_fail here.
2733
2734         * glib/dbus-gobject.c (write_interface): Update for
2735         dbus_gtype_to_signature returning new string.
2736
2737         * configure.in: Add glib/examples/statemachine.
2738
2739 2005-07-08  Joe Shaw  <joeshaw@novell.com>
2740
2741         * configure.in: Add a configure option, --with-console-auth-dir
2742         
2743         * dbus/dbus-sysdeps-util.c (_dbus_user_at_console): Use the
2744         new setting.  Patch from Kay Sievers.
2745
2746 2005-07-06  Colin Walters  <walters@verbum.org>
2747
2748         * dbus/dbus-glib.h (DBusGPendingCall, DBusGPendingCallNotify)
2749         (DBUS_TYPE_G_PENDING_CALL, dbus_g_pending_call_get_g_type)
2750         (dbus_g_pending_call_ref, dbus_g_pending_call_unref): Delete.
2751         (dbus_g_pending_call_set_notify, dbus_g_pending_call_cancel):
2752         Delete in favor of dbus_g_proxy_begin_call and
2753         dbus_g_proxy_cancel_call.
2754         (DBusGProxyCall, DBusGProxyCallNotify): New.
2755         (dbus_g_proxy_begin_call): Change prototype to take callback, user
2756         data, and destroy function.  This replaces
2757         dbus_g_pending_call_set_notify.
2758         (dbus_g_proxy_cancel_call): Prototype.
2759         (DBusGAsyncData): Delete, shouldn't be needed anymore.
2760
2761         * glib/dbus-gproxy.c (struct _DBusGProxy): Add call_id_counter and
2762         pending_calls map.
2763         (struct _DBusGProxyManager): Add bus_proxy member, which is an
2764         internal proxy for calls to the bus. Remove
2765         pending_nameowner_calls, now the internal proxy keeps track.
2766         (dbus_g_proxy_manager_unref): Unref bus proxy, remove reference to
2767         pending_nameowner_calls.
2768         (got_name_owner_cb): Update prototype, and use
2769         dbus_g_proxy_end_call.
2770         (got_name_owner_cb): Remove reference to pending_nameowner_calls.
2771         (dbus_g_proxy_manager_register): Delete directly libdbus code in
2772         favor of using internal proxy.
2773         (dbus_g_proxy_manager_unregister): Update to use
2774         dbus_g_proxy_cancel_call for any pending GetNameOwner call.
2775         (dbus_g_proxy_init): Initialize pending calls map.
2776         (dbus_g_proxy_constructor): New.
2777         (dbus_g_proxy_class_init): Add get/set property functions,
2778         constructor, and add NAME, PATH, and INTERFACE properties.
2779         (cancel_pending_call): New function.
2780         (dbus_g_proxy_dispose): Iterate over any outstanding calls and
2781         cancel them.
2782         (dbus_g_proxy_set_property, dbus_g_proxy_get_property): New.
2783         (GPendingNotifyClosure): New structure.
2784         (d_pending_call_notify, d_pending_call_free): Moved here from
2785         dbus-glib.c.
2786         (DBUS_G_VALUE_ARRAY_COLLECT_ALL): Moved around to satisfy function
2787         ordering.
2788         (manager_begin_bus_call): New internal function for talking to
2789         internal bus proxy.
2790         (dbus_g_proxy_new): Construct object using GObjet properties.
2791         (dbus_g_proxy_begin_call_internal): Update to take user data, etc.
2792         Create closure of same, and insert call into map of pending calls.
2793         (dbus_g_proxy_end_call_internal): Take call id instead of pending
2794         call.  Look up pending call in current set.  Remove it when we've
2795         completed.
2796         (dbus_g_pending_call_end, dbus_g_proxy_end_call_internal): Delete.
2797         (dbus_g_proxy_begin_call): Change API to take callback, user data,
2798         and destroy function directly.
2799         (dbus_g_proxy_end_call): Update to take DBusGProxyCall.
2800         (dbus_g_proxy_call): Invoke with NULL callback.
2801         (dbus_g_proxy_cancel_call): New function, replaces
2802         dbus_g_pending_call_cancel.
2803
2804         * glib/dbus-gparser.c (validate_signature): Fix call to
2805         dbus_set_g_error.
2806
2807         * glib/dbus-gobject.c (dbus_g_object_type_dbus_metadata_quark):
2808         New quark for attaching metadata to GType.
2809         (info_hash): Delete.
2810         (lookup_object_info): Look up using quark.
2811         (dbus_g_object_type_install_info): Check that a type is classed,
2812         not that it's an object.  Also just install type data using quark
2813         instead of using global hash.
2814
2815         * glib/dbus-glib.c (dbus_g_pending_call_ref) 
2816         (dbus_g_pending_call_unref, dbus_pending_call_get_g_type)
2817         (GPendingNotifyClosure): Delete.
2818         (d_pending_call_notify, d_pending_call_free): Move to dbus-gproxy.c.
2819         (dbus_g_pending_call_set_notify, dbus_g_pending_call_cancel): Delete.
2820
2821         * glib/dbus-binding-tool-glib.c (generate_client_glue): Disable async
2822         client method generation until we can fix it...
2823         
2824         * tools/dbus-viewer.c (load_child_nodes): Use dbus_g_proxy_call.
2825         (load_from_service_thread_func): Ditto.
2826
2827         * tools/dbus-names-model.c (struct NamesModel): Hold
2828         DBusGProxyCall.
2829         (have_names_notify): Update prototype, use
2830         dbus_g_proxy_cancel_call.
2831         (names_model_reload): Update for new dbus_g_proxy_begin_call API.
2832
2833         * tools/dbus-monitor.c (filter_func): Update for print_message
2834         API change.
2835
2836         * test/glib/test-dbus-glib.c: Add more tests for async
2837         invocations.  Update many begin_call/end_call pairs to just use
2838         dbus_g_proxy_call.
2839
2840         * tools/dbus-send.c (main): Add --print-reply=literal mode.  This
2841         allows us to dump print-introspect.c.
2842
2843         * tools/dbus-print-message.h (print_message): Add literal argument
2844         to print_message which is intended to allow printing arguments without
2845         metadata like "string=".
2846
2847         * tools/dbus-print-message.c (print_iter): Add literal argument.
2848         (print_message): Allow printing string messages literally.
2849
2850 2005-07-05  Colin Walters  <walters@verbum.org>
2851
2852         * glib/dbus-gproxy.c (marshal_dbus_message_to_g_marshaller):
2853         Remove value refcount leak, original patch from Jorn Baayen
2854         <jorn@openedhand.com>.  Also remove useless extra value in favor
2855         of prepending to value array directly.
2856
2857 2005-07-02  Colin Walters  <walters@verbum.org>
2858
2859         * glib/dbus-gmain.c (_dbus_gmain_test): Fix test.
2860
2861 2005-07-01  Colin Walters  <walters@verbum.org>
2862
2863         Patch from Jonathan Matthew <jonathan@kaolin.hn.org>
2864         
2865         * glib/dbus-gvalue.c (basic_typecode_to_gtype): Fix return type.
2866         (dbus_g_value_types_init): Marshal G_TYPE_CHAR as DBUS_TYPE_BYTE,
2867         G_TYPE_LONG as DBUS_TYPE_INT32, G_TYPE_ULONG as DBUS_TYPE_UINT32,
2868         and G_TYPE_FLOAT as DBUS_TYPE_DOUBLE.
2869
2870 2005-06-30  Colin Walters  <walters@verbum.org>
2871
2872         * test/glib/test-dbus-glib.c:
2873         * test/glib/test-service-glib.c:
2874         * test/glib/test-service-glib.xml: Update tests for new error
2875         setting bits, also add async tests (patch from Ross Burton).
2876
2877         * test/glib/Makefile.am (test_service_glib_LDADD): Add
2878         DBUS_GLIB_THREADS_LIBS.
2879
2880         * glib/dbus-gproxy.c (get_name_owner)
2881         (dbus_g_pending_call_end_valist): Ditto.
2882
2883         * glib/dbus-gobject.c (error_metadata): New mapping from GError
2884         domain (GQuark) to DBusGErrorInfo.  
2885         (gerror_domaincode_to_dbus_error_name): Attempt to look up error
2886         quark in error_metadata.  Take message interface as default
2887         error message interface.
2888         (gerror_to_dbus_error_message): Pass message interface.
2889         (dbus_set_g_error): Resurrected.
2890         (dbus_g_error_info_free): New function.
2891         (dbus_g_object_type_install_info): Use g_type_class_ref instead
2892         of _peek to actually create the object class if it hasn't been
2893         created yet.
2894         (dbus_g_error_domain_register): New function.
2895
2896         * glib/dbus-gmain.c (dbus_g_bus_get): Switch to dbus_set_g_error.
2897
2898         * glib/dbus-gparser.c (validate_signature): Ditto.
2899
2900         * dbus/dbus-glib.h (dbus_g_error_set): Delete.
2901         (dbus_g_error_domain_register): Prototype.
2902
2903         * glib/dbus-glib.c (dbus_g_error_set): Delete.
2904         Update tests.
2905
2906 2005-06-29  Colin Walters  <walters@verbum.org>
2907
2908         * dbus/dbus-glib.h: Delete DBUS_TYPE_G_PROXY_ARRAY.  Add
2909         DBUS_TYPE_G_OBJECT_PATH.
2910
2911         * glib/dbus-gvalue.c (dbus_g_value_types_init): Remove marshallers
2912         for G_TYPE_OBJECT and DBUS_TYPE_G_PROXY_ARRAY (the latter should
2913         be handled more generically).  Add DBUS_TYPE_G_OBJECT_PATH.
2914         (dbus_g_object_path_get_g_type): New function.
2915         (dbus_gtype_from_signature_iter): Map DBUS_TYPE_OBJECT_PATH
2916         to DBUS_TYPE_G_OBJECT_PATH by default.
2917         (demarshal_proxy): Remove unused name variable.
2918         (demarshal_object_path, marshal_object_path): New functions.
2919         (demarshal_proxy_array, marshal_proxy_array): Delete.
2920         
2921         * glib/dbus-binding-tool-glib.c (dbus_g_type_get_c_name): Map
2922         DBUS_TYPE_G_OBJECT_PATH to char *.
2923         (dbus_g_type_get_lookup_function): Map builtin
2924         DBUS_TYPE_G_OBJECT_PATH.
2925
2926         * test/glib/test-dbus-glib.c
2927         * test/glib/test-service-glib.c (my_object_objpath): 
2928         Adapt tests to new object path marshalling.
2929
2930 2005-06-29  John (J5) Palmieri  <johnp@redhat.com>
2931
2932         * configure.in: force check for Python >= 2.4
2933
2934 2005-06-29  Colin Walters  <walters@verbum.org>
2935         
2936         Patch from Ross Burton <ross@openedhand.com>
2937         
2938         * glib/dbus-gobject.c (invoke_object_method): Unset object
2939         value in all cases, not only in async case.
2940
2941 2005-06-29  Colin Walters  <walters@verbum.org>
2942
2943         * glib/dbus-gproxy.c (struct _DBusGProxy): Add new member
2944         name_call for keeping track of any outgoing GetNameOwner call.
2945         Also add for_owner and associated.
2946         (struct _DBusGProxyManager): Add owner_names, which is hash table
2947         that maps a base name to a list of names it owns (that we're
2948         interested in).  Add pending_nameowner_calls which is a list of
2949         all outstanding GetNameOwner; avoids us having to iterate over
2950         every proxy.  Add unassociated_proxies which keeps track of name
2951         proxies with no associated name owner.
2952         (dbus_g_proxy_manager_unref): Destroy owner_names.
2953         (struct DBusGProxyNameOwnerInfo): New struct for keeping track of
2954         name refcounts.
2955         (find_name_in_info, name_owner_foreach)
2956         (dbus_g_proxy_manager_lookup_name_owner, insert_nameinfo)
2957         (dbus_g_proxy_manager_monitor_name_owner)
2958         (dbus_g_proxy_manager_unmonitor_name_owner)
2959         (unassociate_proxies, dbus_g_proxy_manager_replace_name_owner):
2960         New functions; they manipulate the owner_names mapping.
2961         (got_name_owner_cb): New function.
2962         (get_name_owner): New function, extracted from
2963         dbus_g_proxy_new_for_name_owner.
2964         (dbus_g_proxy_manager_register): For now we need to keep track of
2965         all NameOwnerChanged.  Also if the proxy is for a name, if we
2966         don't already know the name owner, queue a new GetNameOwner
2967         request and add it to our list of unassociated proxies.  Otherwise
2968         inc the refcount.
2969         (dbus_g_proxy_manager_unregister): If this proxy is for a name,
2970         cancel any pending GetNameOwner call, etc.
2971         (dbus_g_proxy_manager_filter): Handle NameOwnerChanged.  Also use
2972         the owner_names mapping to look up the current names for the
2973         signal source, and dispatch to any proxies for that name.
2974         (dbus_g_proxy_new): Initialize new members.
2975         (dbus_g_proxy_new_for_name): Delete unused proxy variable.
2976         (dbus_g_proxy_new_for_name_owner): Use get_name_owner.
2977         (dbus_g_pending_call_end_valist): New function, extracted from
2978         dbus_g_proxy_end_call_internal.  Useful when we don't have a proxy
2979         but want to use the GLib infrastructure.  Also note how many
2980         arguments in reply were over.
2981         (dbus_g_pending_call_end): New function, just call
2982         dbus_g_pending_call_end_valist.
2983         (dbus_g_proxy_end_call_internal): Just call
2984         dbus_g_pending_call_end_valist.
2985
2986         * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller): Fix lookup
2987         of builtin marshaller for STRING_STRING_STRING.
2988
2989         * test/glib/test-dbus-glib.c: 
2990         * test/glib/test-service-glib.c:
2991         * test/glib/test-service-glib.xml:
2992         Extend tests to cover name proxies, destruction of owner proxies,
2993         etc.
2994         
2995         * glib/examples/example-signal-recipient.c
2996         (dbus_g_proxy_new_for_name_owner): Create a name proxy.
2997         
2998         * tools/dbus-send.c (main): Print D-BUS error name in addition
2999         to message.
3000
3001 2005-06-28  John (J5) Palmieri  <johnp@redhat.com>
3002
3003         * python/dbus_bindings.pyx.in (cunregister_function_handler,
3004         cmessage_function_handler): Patch from 
3005         Anthony Baxter <anthony@interlink.com.au> fixes threading problems
3006         by using the Py_GILState_Ensure/Release to synchronize with the
3007         python runtime.
3008         
3009 2005-06-28  Ray Strode  <rstrode@redhat.com>
3010
3011         *  dbus/dbus-spawn.c (_dbus_babysitter_unref): kill
3012         babysitter helper process on last unref, bug #2813.
3013
3014 2005-06-27  Colin Walters  <walters@verbum.org>
3015
3016         * test/glib/test-dbus-glib.c: 
3017         * test/glib/test-service-glib.c:
3018         * test/glib/test-service-glib.xml:
3019         Test hash table signal emitting.
3020
3021         * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller): Convert
3022         types to their fundamental basis types, since this is what
3023         marshallers operate on.  Also add an entry for VOID__BOXED.
3024         (dbus_g_object_register_marshaller_array): Convert to fundamental.
3025
3026 2005-06-26  Havoc Pennington  <hp@redhat.com>
3027
3028         * doc/dbus-tutorial.xml: fix names of interface/service/path, fix
3029         from Don Park
3030
3031 2005-06-26  Colin Walters  <walters@verbum.org>
3032
3033         * glib/dbus-glib.c (dbus_set_g_error): Delete.
3034         (dbus_g_error_set): New public function from its ashes; used by
3035         both service-side method implementation and GLib bindings
3036         internals.
3037         (dbus_g_error_has_name, dbus_g_error_get_name): New function.
3038         (_dbus_glib_test): Add some tests.
3039
3040         * test/glib/test-dbus-glib.c (main): Test dbus_g_error_has_name.
3041
3042         * test/glib/test-service-glib.c (my_object_throw_error): Use
3043         dbus_g_error_set.
3044
3045         * glib/dbus-gobject.c (gerror_to_dbus_error_message): Handle
3046         errors thrown by dbus_g_error_set.
3047
3048         * glib/dbus-gmain.c (dbus_g_bus_get): Change to dbus_g_error_set.
3049
3050         * glib/dbus-gparser.c (validate_signature): Ditto.
3051
3052         * glib/dbus-gproxy.c (dbus_g_proxy_new_for_name_owner) 
3053         (dbus_g_proxy_end_call_internal): Ditto.
3054
3055         * glib/Makefile.am: Generate dbus-glib-error-switch.h, which
3056         converts DBUS_ERROR_x to DBUS_GERROR_x.
3057         (libdbus_glib_1_la_SOURCES, BUILT_SOURCES, CLEANFILES): Add it.
3058
3059         * doc/TODO: Remove error TODO.
3060
3061         * doc/dbus-tutorial.xml: Update with documentation about error
3062         handling.
3063
3064         * dbus/make-dbus-glib-error-enum.sh: Tighten up regexp to make
3065         sure we only change DBUS_ERROR to DBUS_GERROR, not all ERROR to
3066         GERROR.  Also add DBUS_GERROR_REMOTE_EXCEPTION.
3067
3068 2005-06-22  Colin Walters  <walters@verbum.org>
3069         
3070         Patch from Ross Burton <ross@openedhand.com>
3071
3072         * glib/dbus-gobject.c (dbus_g_method_return): Free out_sig.
3073
3074 2005-06-20  Colin Walters  <walters@verbum.org>
3075
3076         * configure.in: Add glib/examples.
3077
3078         * glib/Makefile.am: Add examples/
3079
3080         * glib/examples/.cvsignore
3081         * glib/examples/Makefile.am
3082         * glib/examples/example-client.c
3083         * glib/examples/example-service.c
3084         * glib/examples/example-service.xml
3085         * glib/examples/example-signal-emitter.c
3086         * glib/examples/example-signal-emitter.xml
3087         * glib/examples/example-signal-recipient.c:
3088         New files; GLib binding examples, ported from
3089         python/examples.
3090
3091 2005-06-20  Colin Walters  <walters@verbum.org>
3092
3093         * dbus/dbus-glib.h: 
3094         * glib/dbus-gproxy.c: Rename dbus_g_proxy_invoke to
3095         dbus_g_proxy_call.
3096
3097         * glib/dbus-binding-tool-glib.c: 
3098         * doc/dbus-tutorial.xml: 
3099         * test/glib/test-dbus-glib.c: Update for rename.
3100         
3101 2005-06-20  Colin Walters  <walters@verbum.org>
3102
3103         Patch suggested by Ross Burton <ross@openedhand.com>
3104
3105         * glib/dbus-gobject.c (export_signals): Free signal name.
3106         (g_value_init): Use G_VALUE_NOCOPY_CONTENTS to plug
3107         memory leak.  Add a bit of documentation.
3108         (dbus_g_method_return_error): Free context, and note we do
3109         so.
3110
3111 2005-06-18  Murray Cumming  <murrayc@murrayc.com>
3112
3113         * dbus/dbus-glib.h:
3114         * glib/dbus-gobject.c:
3115         * glib/dbus-gproxy.c:
3116         * glib/dbus-gvalue.c: Predeclare structs as 
3117         typedef struct _Something Something instead of 
3118         typedef struct Something Something, so we can 
3119         redeclare the prototypes. Other GNOME libraries 
3120         do this already.
3121
3122 2005-06-17  Colin Walters  <walters@verbum.org>
3123
3124         * tools/dbus-names-model.c (have_names_notify): Fix call
3125         to dbus_g_proxy_end_call.
3126         
3127 2005-06-17  Colin Walters  <walters@verbum.org>
3128
3129         * glib/dbus-gproxy.c (dbus_g_proxy_emit_remote_signal): Don't
3130         spew warnings if we get malformed remote signals.
3131
3132         * glib/dbus-gobject.c (propsig_iterate): New function.
3133         (lookup_object_info): New function, extracted from
3134         lookup_object_and_method.
3135         (introspect_properties, introspect_signals): Delete; these
3136         are merged into write_interface.
3137         (write_interface): Write out signals and properties here;
3138         dump the org.gtk.object stuff and use the interface given
3139         in the introspection data blob.  Also fix up property XML.
3140         (lookup_values): New function.
3141         (introspect_interfaces): Gather a mapping from interface to a
3142         list of its methods, signals, and properties, then write out
3143         each interface.
3144         (lookup_object_and_method): Use lookup_object_info.
3145         (struct DBusGSignalClosure): Add interface.
3146         (dbus_g_signal_closure_new): Add interface. Don't dup signame;
3147         we can just use the constant data.
3148         (dbus_g_signal_closure_finalize): Don't free signal name.
3149         (signal_emitter_marshaller): Use interface from signal closure.
3150         (export_signals): Only export signals mentioned in introspection
3151         blob.
3152         (dbus_g_connection_register_g_object): Warn if we have no
3153         introspection data for an object.
3154         (funcsig_equal): Remove unused variable.
3155         (dbus_g_object_register_marshaller): Take varargs instead of
3156         list.
3157         (dbus_g_object_register_marshaller_array): New function,
3158         extracted from old dbus_g_object_register_marshaller.
3159
3160         * glib/dbus-binding-tool-glib.c (struct DBusBindingToolCData): Add
3161         signals and property data.
3162         (write_quoted_string): New function, extracted from generate_glue.
3163         (generate_glue): Write signals and properties to introspection
3164         blob.
3165
3166         * dbus/dbus-glib.h (struct DBusGObjectInfo): Include
3167         exported_signals and exported_properties.
3168         (dbus_g_object_register_marshaller): Update prototype.
3169         (dbus_g_object_register_marshaller_array): Prototype.
3170         
3171         * test/glib/test-dbus-glib.c: Extend testing to cover new signals.
3172
3173         * test/glib/test-service-glib.c: Add new test signals and method
3174         to emit them.
3175
3176         * test/glib/test-service-glib.xml: Add some test signals.
3177
3178         * test/glib/Makefile.am (BUILT_SOURCES): Add my-object-marshal.c
3179         and my-object-marshal.h
3180         (test_service_glib_SOURCES, test_dbus_glib_SOURCES): Add
3181         my-object-marshal.c.
3182         (my-object-marshal.c, my-object-marshal.h): Implement.
3183
3184         * test/glib/.cvsignore: Update.
3185
3186         * doc/TODO: Remove two GLib TODO items fixed by this
3187         patch.
3188
3189 2005-06-16  Colin Walters  <walters@verbum.org>
3190
3191         * doc/TODO: Update for GLib bindings.
3192         
3193 2005-06-16  Colin Walters  <walters@verbum.org>
3194
3195         * glib/dbus-binding-tool-glib.c:
3196         * glib/dbus-gobject.c:
3197         * glib/dbus-gproxy.c:  Add Nokia copyright; Patch
3198         from Ross Burton, for his GLib bindings work.
3199
3200 2005-06-16  Colin Walters  <walters@verbum.org>
3201
3202         * glib/dbus-gobject.c (funcsig_hash, funcsig_equal): Use n_params
3203         to iterate instead of walking to G_TYPE_INVALID.
3204
3205         Patch based on a patch from Ryan Gammon.
3206
3207 2005-06-16  Colin Walters  <walters@verbum.org>
3208
3209         * bus/bus.c (bus_context_new): Set parser to NULL
3210         after we unref it (Patch from Chris Boscolo, #2174).
3211         
3212 2005-06-16  Colin Walters  <walters@verbum.org>
3213
3214         * python/dbus_bindings.pyx.in: Import size_t,
3215         __int64_t, __uint64_t, and __signed.
3216
3217         * dbus/dbus-sysdeps.c <HAVE_CMSGCRED> (write_credentials_byte):
3218         Define cmsg struct, output it.
3219         (_dbus_read_credentials_unix_socket):
3220         Use cmsg struct.
3221         
3222         Patch from Joe Markus Clarke for FreeBSD support.
3223         
3224 2005-06-16  Colin Walters  <walters@verbum.org>
3225
3226         * tools/dbus-send.c (append_array): Use strtok.
3227         (append_dict): New function.
3228         (type_from_name): New function, extracted from main.
3229         (main): Handle sending dicts.
3230
3231         * tools/dbus-print-message.c (print_iter): Print dict
3232         entries.
3233         
3234 2005-06-16  Colin Walters  <walters@verbum.org>
3235
3236         * glib/dbus-gvalue.c (marshal_basic): Marshal NULL string
3237         values as the empty string (#2948).
3238         
3239 2005-06-16  Colin Walters  <walters@verbum.org>
3240
3241         * dbus/Makefile.am:
3242         * mono/doc/Makefile.am:
3243         * test/glib/Makefile.am:
3244
3245         Fix srcdir != builddir issues (Patch from Chris Wilson, #3477)
3246
3247 2005-06-16  Colin Walters  <walters@verbum.org>
3248
3249         * dbus/dbus-marshal-header.c (_dbus_header_load): Set
3250         header byte order from expected byte order (Patch from Chris Wilson, #3475).
3251
3252         * dbus/dbus-marshal-byteswap.c (byteswap_body_helper): 
3253         Increment pointer after swapping fixed array.  Add assertion
3254         for array length.
3255                 
3256 2005-06-15  Colin Walters  <walters@verbum.org>
3257
3258         * dbus/dbus-sysdeps.c <HAVE_CMSGCRED> (_dbus_read_credentials_unix_socket):
3259         Fix call to dbus_set_error.  (Patch from Michael Banck, #3461)
3260         
3261 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
3262
3263         * NEWS: Update to 0.34
3264
3265 2005-06-15  David Zeuthen  <davidz@redhat.com>
3266
3267         * configure.in (LT_CURRENT): Revert back to 1 as the library
3268         hasn't changed and we've certainly not committed to protocol
3269         stability yet.  All this does is to break ABI. See commit note
3270         from hp@redhat.com 2005-05-05 for details.
3271         
3272 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
3273
3274         * dbus/dbus-connection.c (_dbus_connection_peer_filter): New method 
3275         (_dbus_connection_run_builtin_filters): New method
3276         (dbus_connection_dispatch): Run the builtin filters which in turn
3277         runs the peer filter which handles Ping messages.
3278
3279         * doc/TODO: 
3280          - Ping isn't handled: This patch fixes it
3281          
3282          - Add a test case for the Ping message: added TODO item
3283
3284 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
3285
3286         * dbus/dbus-message.c:
3287         (dbus_message_has_path): New method
3288         (dbus_message_has_interface): New method
3289         (dbus_message_has_member): New method
3290
3291         * dbus/dbus/dbus-sysdeps.c (_dbus_check_dir_is_private_to_user):
3292         New method
3293
3294         * dbus/dbus-keyring.c (_dbus_keyring_reload): Check to see that 
3295         the keyring directory is private to the user
3296
3297         * doc/TODO:
3298          - The convenience functions in dbus-bus.h should perhaps have
3299          the signatures that they would have if they were autogenerated
3300          stubs. e.g. the acquire service function. We should also evaluate
3301          which of these functions to include, in light of the fact that
3302          GLib/Qt native stubs will probably also exist.: Punted
3303
3304          - add dbus_message_has_path(), maybe has_member/interface:
3305          fixed in this patch
3306
3307          - in dbus-keyring.c, enforce that the keyring dir is not
3308          world readable/writable: Fixed in this patch
3309
3310 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
3311
3312         * dbus/dbus-marshal-validate.h: Added a new validation
3313         error code DBUS_VALIDITY_UNKNOWN_OOM_ERROR = -4 for 
3314         out of memory errors when validating signitures
3315
3316         * dbus/dbus-marshal-header.c: use DBUS_VALIDITY_UNKNOWN_OOM_ERROR
3317         in places where we previously used DBUS_VALID and a FALSE return 
3318         value to indicate OOM
3319         
3320         * dbus/dbus-marshal-validate.c (_dbus_validate_signature_with_reason):
3321         Use a stack to track the number of elements inside containers.  The 
3322         stack values are then used to validate that dict entries have only two
3323         elements within them.
3324         (validate_body_helper): check the reason for failure when validating
3325         varients
3326         
3327         * dbus/dbus-message.c (load_message): use 
3328         DBUS_VALIDITY_UNKNOWN_OOM_ERROR in places where we previously used 
3329         DBUS_VALID and a FALSE return value to indicate OOM
3330
3331         * doc/TODO: remove "- validate dict entry number of fields" as this
3332         patch fixes it
3333
3334 2005-06-14  David Zeuthen  <davidz@redhat.com>
3335
3336         * bus/bus.c (process_config_every_time): Drop existing conf-dir
3337         watches (if applicable) and add new watches
3338
3339         * bus/main.c (signal_handler): Handle SIGIO if using D_NOTIFY
3340         (main): Setup SIGIO signal handler if using D_NOTIFY
3341
3342         * bus/config-parser.h: Add prototype bus_config_parser_get_conf_dirs
3343
3344         * bus/config-parser.c (struct BusConfigParser): Add conf_dirs list
3345         (merge_included): Also merge conf_dirs list
3346         (bus_config_parser_unref): Clear conf_dirs list
3347         (include_dir): Add directory to conf_dirs list
3348         (bus_config_parser_get_conf_dirs): New function
3349
3350         * bus/dir-watch.[ch]: New files
3351
3352         * bus/Makefile.am (BUS_SOURCES): Add dir-watch.[ch]
3353
3354         * configure.in: Add checks for D_NOTIFY on Linux
3355
3356 2005-06-14  Colin Walters  <walters@verbum.org>
3357
3358         * glib/dbus-binding-tool-glib.c:
3359         * glib/dbus-gobject.c:
3360         * glib/dbus-gvalue.c: Fix indentation and brace style.
3361         
3362 2005-06-14  Ross Burton <ross@openedhand.com>.
3363
3364         * glib/dbus-glib.h: Make DBusGMethodInvocation
3365         a private structure.  Rearrange prototypes a bit.
3366         
3367         * glib/dbus-gproxy.c (dbus_g_proxy_invoke): Add
3368         documentation for first_arg_type.
3369         
3370         * glib/dbus-gobject.c: Move DBusGMethodInvocation
3371         here, add documentation.  Move dbus_g_method_return
3372         and dbus_g_method_return_error into public API
3373         section.
3374
3375 2005-06-14  Colin Walters  <walters@verbum.org>
3376
3377         * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller):
3378         Add missing return statements, noticed by Ross Burton.
3379         
3380 2005-06-13  Ross Burton <ross@openedhand.com>.
3381
3382         * glib/dbus-gobject.c: Handle errors on message
3383         demarshalling by sending error message back.
3384         * glib/dbus-gvalue.c: Initialize return variables.
3385
3386 2005-06-13  Colin Walters  <walters@verbum.org>
3387
3388         * glib/Makefile.am: Fix thinko in last patch.
3389
3390 2005-06-13  Colin Walters  <walters@verbum.org>
3391
3392         * glib/Makefile.am: Move dbus-gtype-specialized.c
3393         and dbus-gtype-specialized.h into a _HEADERS variable,
3394         install them.
3395
3396 2005-06-12  Colin Walters  <walters@verbum.org>
3397
3398         Async signals and various bugfixes and testing by
3399         Ross Burton <ross@openedhand.com>.
3400
3401         * glib/dbus-gvalue.h: (struct DBusBasicGValue): Delete.
3402         (dbus_gvalue_genmarshal_name_from_type)
3403         (dbus_gvalue_ctype_from_type): Moved to dbus-binding-tool-glib.c.
3404         (dbus_gtype_to_dbus_type): Renamed to dbus_gtype_from_signature.
3405         (dbus_g_value_types_init, dbus_gtype_from_signature)
3406         (dbus_gtype_from_signature_iter, dbus_gtype_to_signature)
3407         (dbus_gtypes_from_arg_signature): New function prototypes.
3408         (dbus_gvalue_demarshal): Take context and error arguments.
3409         (dbus_gvalue_demarshal_variant): New function.
3410         (dbus_gvalue_demarshal_message): New function.
3411         (dbus_gvalue_store): Delete.
3412
3413         * glib/dbus-gvalue.c:
3414
3415         File has been almost entirely rewritten; now we special-case
3416         more types such as DBUS_TYPE_SIGNATURE, handle arrays and
3417         hash tables correctly, etc.  Full support for recursive values
3418         is not yet complete.
3419
3420         * glib/dbus-gproxy.c (dbus_g_proxy_class_init): Change last
3421         argument of signal to G_TYPE_POINTER since we now pass a
3422         structure.
3423         (lookup_g_marshaller): Delete in favor of
3424         _dbus_gobject_lookup_marshaller.
3425         (marshal_dbus_message_to_g_marshaller): Use
3426         _dbus_gobject_lookup_marshaller and dbus_gvalue_demarshal_message
3427         to handle remote signal callbacks.
3428         (dbus_g_proxy_new_from_proxy): New function; creates a new
3429         DBusGProxy by copying an existing one.
3430         (dbus_g_proxy_get_interface, dbus_g_proxy_set_interface)
3431         (dbus_g_proxy_get_path): New functions.
3432         (dbus_g_proxy_marshal_args_to_message): New function;
3433         factored out of existing code.
3434         (DBUS_G_VALUE_ARRAY_COLLECT_ALL): Collect all arguments
3435         from a varargs array.
3436         (dbus_g_proxy_begin_call_internal): New function.
3437         (dbus_g_proxy_end_call_internal): New function.
3438         (dbus_g_proxy_begin_call): Take GTypes instead of DBus types
3439         as arguments; simply invoke dbus_g_proxy_begin_call_internal
3440         after collecting args into value array.
3441         (dbus_g_proxy_end_call): Take GTypes instead of DBus types;
3442         invoke dbus_g_proxy_end_call_internal.
3443         (dbus_g_proxy_invoke): Simply invoke begin_call_interanl and
3444         end_call_internal.
3445         (dbus_g_proxy_call_no_reply): Take GTypes instead of DBus
3446         types.
3447         (array_free_all): New function.
3448         (dbus_g_proxy_add_signal): Take GTypes.
3449
3450         * glib/dbus-gobject.h:
3451         (_dbus_glib_marshal_dbus_message_to_gvalue_array): Delete.
3452         (_dbus_gobject_get_path, _dbus_gobject_lookup_marshaller):
3453         Prototype.
3454
3455         * glib/dbus-gobject.c: Add a global marshal_table hash which
3456         stores mappings from type signatures to marshallers.  Change lots
3457         of invocations of dbus_gtype_to_dbus_type to
3458         dbus_gtype_to_signature.
3459         (_dbus_glib_marshal_dbus_message_to_gvalue_array): Delete.
3460         (introspect_signals): Fix test for query.return_type.
3461         (set_object_property): Update invocation of dbus_gvalue_demarshal.
3462         (invoke_object_method): Many changes.  Handle asynchronous
3463         invocations.  Convert arguments with
3464         dbus_gvalue_demarshal_message.  Handle errors.  Use
3465         DBusSignatureIter instead of strlen on args. Handle all arguments
3466         generically.  Special-case variants.
3467         (dbus_g_method_return, dbus_g_method_return_error): New function.
3468         (DBusGSignalClosure): New structure, closes over signal
3469         information.
3470         (dbus_g_signal_closure_new): New function.
3471         (dbus_g_signal_closure_finalize): New function.
3472         (signal_emitter_marshaller): New function; is special marshaller
3473         which emits signals on bus.
3474         (export_signals): New function; introspects object signals and
3475         connects to them.
3476         (dbus_g_object_type_install_info): Take GType instead of
3477         GObjectClass.
3478         (dbus_g_connection_register_g_object): Invoke export_signals.
3479         (dbus_g_connection_lookup_g_object): New function.
3480         (DBusGFuncSignature) New structure; used for mapping type
3481         signatures to marshallers.
3482         (funcsig_hash): New function; hashes DBusGFuncSignature.
3483         (funcsig_equal): New function; compares DBusGFuncSignature.
3484         (_dbus_gobject_lookup_marshaller): New function.
3485         (dbus_g_object_register_marshaller): New function; used to
3486         register a marshaller at runtime for a particular signature.
3487
3488         * glib/dbus-gmain.c (_dbus_gmain_test): Add various tests.
3489
3490         * glib/dbus-binding-tool-glib.h: Add DBUS_GLIB_ANNOTATION_ASYNC
3491         which notes a server method implementation should be
3492         asynchronous.
3493
3494         * glib/dbus-binding-tool-glib.c
3495         (dbus_binding_tool_output_glib_server): Call
3496         dbus_g_value_types_init.
3497         (write_formal_parameters): Use dbus_gtype_from_signature.  Handle
3498         variants specially.
3499         (dbus_g_type_get_lookup_function): Turn GType into an invocation
3500         of a lookup function.
3501         (write_args_for_direction): Use dbus_g_type_get_lookup_function.
3502         (write_untyped_out_args): New method; write output arguments.
3503         (write_formal_declarations_for_direction): Function for
3504         writing prototypes.
3505         (write_formal_parameters_for_direction): Function for
3506         writing implementations.
3507         (write_typed_args_for_direction): Function for writing
3508         arguments prefixed with GTypes.
3509         (write_async_method_client): Write out async version
3510         of method.
3511
3512         * glib/dbus-binding-tool-glib.c: Include dbus-gvalue-utils.h.
3513         (dbus_g_type_get_marshal_name): Move mapping from GType
3514         to marshal name into here.
3515         (dbus_g_type_get_c_name): Move into here.
3516         (compute_marshaller): Convert signature to type with
3517         dbus_gtype_from_signature, use dbus_g_type_get_marshal_name.
3518         (compute_marshaller_name): Ditto.
3519         (compute_marshaller): Handle async signal annotations.
3520         (gather_marshallers): Return if we don't have a known
3521         prefix.
3522         (generate_glue): Collect introspection blob here, and
3523         write all of the blob at the end.  This allows an object
3524         with multiple interfaces to work.
3525         Mark async methods in introspection blob.
3526
3527         * glib/Makefile.am (libdbus_glib_1_la_SOURCES): Add
3528         dbus-gtype-specialized.c, dbus-gtype-specialized.h,
3529         dbus-gvalue-utils.h, dbus-gvalue-utils.c.
3530
3531         * dbus/dbus-glib.h: Don't include dbus-protocol.h; this
3532         avoids people accidentally using DBUS_TYPE_* which should
3533         not be necessary anymore.
3534         Do include dbus-gtype-specialized.h, which are utilities
3535         for GLib container types.
3536         Add various #defines for types such as
3537         DBUS_TYPE_G_BOOLEAN_ARRAY.
3538         (DBusGValueIterator, DBusGValue): Define, not fully used
3539         yet.
3540         (dbus_g_value_get_g_type): Type for recursive value.
3541         (dbus_g_value_open, dbus_g_value_iterator_get_value)
3542         (dbus_g_value_iterator_get_values, dbus_g_value_iterator_recurse)
3543         (dbus_g_value_free): Prototypes.
3544         (dbus_g_object_register_marshaller, dbus_g_proxy_new_from_proxy): Prototype.
3545         (dbus_g_proxy_set_interface): Prototype.
3546         (dbus_g_proxy_begin_call, dbus_g_proxy_end_call)
3547         (dbus_g_proxy_call_no_reply): Take GLib types instead of DBus
3548         types.
3549         (dbus_g_proxy_get_path, dbus_g_proxy_get_interface):
3550         Accessors.
3551         (DBusGAsyncData, DBusGMethodInvocation): Structures for
3552         doing async invocations.
3553         (dbus_g_method_return, dbus_g_method_return_error):
3554         Prototypes.
3555         * doc/dbus-tutorial.xml: Update GLib section.
3556         
3557         * tools/dbus-viewer.c (load_child_nodes): Update
3558         for new invocation type of dbus_g_proxy_end_call.
3559         (load_from_service_thread_func): Ditto.
3560
3561         * tools/print-introspect.c (main): Ditto.
3562
3563         * tools/dbus-names-model.c (have_names_notify)
3564         (names_model_reload, names_model_set_connection)
3565         Use GTypes.
3566
3567         * python/Makefile.am (INCLUDES): Define DBUS_COMPILATION,
3568         needed since Python bindings use GLib bindings.
3569
3570         * test/glib/Makefile.am (INCLUDES): Define DBUS_COMPILATION.
3571         Add --prefix argument.
3572
3573         * tools/Makefile.am: Define DBUS_COMPILATION.  Remove
3574         unneeded --ignore-unsupported arg.
3575         
3576         * test/glib/test-service-glib.c: 
3577         * test/glib/test-service-glib.xml:
3578         * test/glib/test-dbus-glib.c: Add many more tests.
3579
3580 2005-06-06  David Zeuthen  <davidz@redhat.com>
3581
3582         * doc/TODO: Add item about need to remove deprecated functions.
3583
3584         * dbus/dbus-connection.h: Add prototype for dbus_connection_disconnect
3585
3586         * dbus/dbus-connection.c (dbus_connection_disconnect): New function
3587         to repair the ABI which was broken with the last commit.
3588
3589 2005-06-02  John (J5) Palmieri <johnp@redhat.com>
3590
3591         *  dbus/dbus-connection.c, dbus/dbus-connection.h 
3592         (dbus_connection_disconnect): renamed to dbus_connection_close 
3593         for API symmetry with dbus_connection_open
3594         (_dbus_connection_open_internal): 
3595         s/dbus_connection_disconnect/dbus_connection_close
3596
3597         * dbus/dbus-bus.c (dbus_bus_get):
3598         s/dbus_connection_disconnect/dbus_connection_close
3599
3600         * bus/connection.c (bus_connections_unref, 
3601         bus_connections_setup_connection, bus_connections_expire_incomplete):
3602         s/dbus_connection_disconnect/dbus_connection_close
3603
3604         * bus/dispatch.c (bus_dispatch, kill_client_connection, 
3605         kill_client_connection_unchecked, check_hello_connection):
3606         s/dbus_connection_disconnect/dbus_connection_close
3607
3608         * bus/bus.c (new_connection_callback):
3609         s/dbus_connection_disconnect/dbus_connection_close
3610
3611         * tools/dbus-send.c (main):
3612         s/dbus_connection_disconnect/dbus_connection_close
3613
3614         * test/glib/test-profile.c (no_bus_thread_func, with_bus_thread_func):
3615         s/dbus_connection_disconnect/dbus_connection_close
3616         
3617         * test/test-service.c (path_message_func, filter_func):
3618         s/dbus_connection_disconnect/dbus_connection_close
3619         
3620         * doc/TODO: remove connection_open/connection_disconnect lacks symmetry         item that was just fixed
3621         
3622 2005-05-25  Colin Walters  <walters@verbum.org>
3623
3624         * dbus/dbus-protocol.h: Move various bus service #defines such
3625           as DBUS_SERVICE_DBUS and DBUS_NAME_FLAG_PROHIBIT_REPLACEMENT to
3626           dbus/dbus-shared.h.
3627         * dbus/dbus-shared.h: Various defines moved here.
3628         * dbus/dbus-marshal-header.c: Include dbus-shared.h.
3629
3630 2005-05-25  John (J5) Palmieri  <johnp@redhat.com>
3631
3632         * python/__init__.py: Python bindings deserve a minor version
3633         update.  Upped to (0, 40, 2)
3634
3635 2005-05-24  John (J5) Palmieri  <johnp@redhat.com>
3636
3637         * python/decorators.py: add explicitly_pass_message decorator
3638         for passing in the dbus message as keyword for edge case signal
3639         handling
3640
3641         * python/matchrules.py (SignalMatchRule.__repr__): fix output
3642         to conform with what dbus expects for match rules
3643         (SignalMatchRule.execute): add the dbus message as a keyword
3644         if the signal handler has requested it
3645
3646         * python/examples/example/signal-recipient.py: added some more
3647         examples on how to hook up to signals
3648
3649 2005-05-23  John (J5) Palmieri  <johnp@redhat.com>
3650
3651         * python/decorators.py: import dbus_bindings
3652
3653         * python/matchrules.py (SignalMatchRule, SignalMatchTree, 
3654         SignalMatchNode): new classes that implement wildcard signal
3655         callback matching using a tree lookup. Heavily modified from a
3656         patch sent by Celso Pinto (fd.o bug #3241)
3657
3658         * _dbus.py (add_signal_receiver, remove_signal_receiver, _signal_func):
3659         use new match classes to handle signals.
3660
3661 2005-05-19  John (J5) Palmieri  <johnp@redhat.com>
3662         
3663         * python/dbus_bindings.pyx.in: s/TYPE_PATH/TYPE_OBJECT_PATH
3664
3665 2005-05-18  Havoc Pennington  <hp@redhat.com>
3666
3667         * configure.in: use GLIB_GNU_GETTEXT to get INTLLIBS and require
3668         gettext. Not really worth requiring yet perhaps, but any
3669         production quality 1.0 would require it so we should go ahead and
3670         get things set up. We do have a couple token calls to
3671         bindtextdomain in the code already.
3672
3673 2005-05-16  John (J5) Palmieri  <johnp@redhat.com>
3674
3675         * glib/dbus-gmain.c (io_handler_dispatch): fix deadlock
3676         when using recursive g_main_loops
3677
3678         * python/_dbus.py (class Bus): add the ProxyObjectClass
3679         alias for ProxyObject to make it easier for the Twisted 
3680         networking framework to integrate dbus.
3681
3682         * python/proxies.py (class ProxyObject): add the ProxyMethodClass
3683         alias for ProxyMethod to make it easier for the Twisted 
3684         networking framework to integrate dbus. 
3685
3686 2005-05-11  Ross Burton  <ross@openedhand.com>
3687
3688         * glib/dbus-glib-tool.c: Add --prefix argument.
3689         * glib/dbus-binding-tool-glib.h: Add prefix argument.
3690         * glib/dbus-binding-tool-glib.c (compute_marshaller_name):
3691         Add prefix argument.
3692         (generate_glue): Pass prefix argument down.
3693         (dbus_binding_tool_output_glib_server): Pass prefix to
3694         glib-genmarshal.
3695         
3696 2005-05-11  Colin Walters  <walters@verbum.org>
3697
3698         * tools/dbus-send.c (append_array): New function.
3699         (append_arg): Broken out from main.
3700         (main): Add cheesy hack to send arrays and variants.
3701         (usage): Update.
3702         * tools/dbus-print-message.c (print_iter): Broken out
3703         from main.
3704
3705 2005-05-11  Colin Walters  <walters@verbum.org>
3706
3707         * dbus/dbus-signature.c (dbus_signature_iter_get_signature):
3708         New function, returns signature string for signature iter.
3709         * dbus/dbus-signature.h: Prototype it.
3710         * dbus/dbus-message.c (dbus_message_iter_get_signature):
3711         New function, returns signature string for message iter.
3712         (dbus_message_iter_get_array_len): New function, returns
3713         length of array.
3714         (dbus_message_iter_get_fixed_array): Fix assertion; this
3715         function should be used when the iter is pointing to the
3716         contents of an array
3717         * dbus/dbus-message.h: Prototypes.
3718         * dbus/dbus-marshal-recursive.c (_dbus_type_reader_get_array_length):
3719         New function; returns length of an array.
3720         * dbus/dbus-marshal-recursive.h: Prototype it.
3721         
3722 2005-05-11  Colin Walters  <walters@verbum.org>
3723
3724         * dbus/dbus-sysdeps-util.c <!HAVE_POSIX_GETPWNAM_R>: Fix
3725         compilation error.
3726         
3727 2005-05-08  Havoc Pennington  <hp@redhat.com>
3728
3729         * dbus/dbus-sysdeps-util.c (_dbus_become_daemon): write the
3730         daemon's pid, not the parent's pid, to the file descriptor.
3731         Reported by Taj Morton.
3732
3733 2005-05-05  Havoc Pennington  <hp@redhat.com>
3734
3735         * configure.in (LT_*): add notes on how the libtool versioning
3736         works to save thinking. Increment soname to indicate protocol
3737         breakage (though really the library interface hasn't changed I
3738         guess)
3739
3740         * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated):
3741         verify the GUID received from server matches what we were
3742         expecting, if we had an expectation
3743
3744         * dbus/dbus-auth.c (send_ok): send GUID along with the OK command
3745         (_dbus_auth_get_guid_from_server): new function
3746         (send_begin): parse the OK args
3747
3748         * doc/dbus-specification.xml: add GUID to the auth protocol
3749
3750 2005-05-05  John (J5) Palmieri  <johnp@redhat.com>
3751
3752         * Fix my name in previous changelog ;)
3753
3754         * python/proxies.py (ProxyObject.__getattr__): add further patch
3755         from Anthony Baxter to throw an AttributeError when python 
3756         __special__ functions are called instead of marshling them over 
3757         the bus (Bug#1685 comment 3).
3758
3759 2005-05-04  John (J5) Palmieri  <johnp@redhat.com>
3760
3761         * python/Makefile.am: changed to use pyexecdir for the binding
3762         shared libraries (Bug#2494)
3763
3764         * python/exceptions.py: bring exceptions over from the bindings
3765         so they can be used in applications (Bug#2036)
3766         Make all exceptions derive from DBusException
3767
3768         * python/_dbus.py, python/proxies.py: implement __repr__ in a couple
3769         of classes so that print obj doesn't throw an exception (Bug #1685)
3770
3771 2005-05-03  Ross Burton  <ross@openedhand.com>
3772
3773         * glib/dbus-gobject.c (dbus_g_connection_register_g_object):
3774         Return if we get an error during registration.  Set up a
3775         weak reference on object to unregister if object is destroyed.
3776         (unregister_gobject): New function.
3777         
3778 2005-05-01  John (J5) Palmieri  <johnp@redhat.com>
3779
3780         * python/dbus_bindings.pyx.in: 
3781         - added new type classes for hinting to the marashaler what type 
3782         to send over the wire
3783         - added int16 and uint16 marshalers
3784         - Fixed a bug in the type constants that caused int32 to go out
3785         as uint16 over the wire
3786         * python/dbus.py: split up into different files and renamed _dbus.py
3787         * python/__init__.py, python/_util.py, python/decorators.py, 
3788         python/exceptions.py, python/proxies.py, python/services.py,
3789         python/types.py: new files split off from dbus.py
3790         * python/Makefile.am: Add new files, remove dbus.py and 
3791         install all python files to <python module dir>/dbus
3792         * python/examples/*: Added #!/usr/bin/env python to the top of
3793         every example.  Patch provided by Tatavarty Kalyan
3794
3795 2005-04-25  John (J5) Palmieri  <johnp@redhat.com>
3796
3797         * NEWS: Update to 0.33
3798
3799 2005-04-25  John (J5) Palmieri  <johnp@redhat.com>
3800
3801         * python/dbus_bindings.pyx.in (send_with_reply_handlers): New send
3802         method for doing async calls
3803         (_pending_call_notification): New C function for handling pendning call
3804         callbacks
3805         (set_notify): New method for setting pending call notification
3806         
3807         * python/dbus.py: new version tuple "version" is set at (0, 40, 0)
3808         Async capabilities added to remote method calls
3809         (Sender): class removed
3810         (RemoteService): class removed
3811         (ObjectTree): class removed for now
3812         (RemoteObject): Renamed to ProxyObject
3813         (RemoteMethod): Renamed to ProxyMethod
3814         (method): Decorator added for decorating python methods as dbus methods
3815         (signal): Decorator added for decorating python methods as signal emitters
3816         (ObjectType): Metaclass added for generating introspection data and the
3817         method callback vtable
3818         (Interface): Wrapper class added to wrap objects in a dbus interface
3819         (Object): Uses ObjectType as its metaclass and exports Introspect
3820         of the org.freedesktop.DBus.Introspectable interface
3821         (ValidationException, UnknownMethodException): new exceptions
3822
3823         * python/examples/*: Modified to fit with the new bindings
3824
3825 2005-04-23  Havoc Pennington  <hp@redhat.com>
3826
3827         * dbus/dbus-message.c (dbus_message_append_args): fix doc comment,
3828         reported by Tony Houghton
3829
3830         * test/test-service.c (main): test
3831         dbus_connection_get_object_path_data()
3832
3833         * dbus/dbus-object-tree.c (find_handler): be sure we always init
3834         the exact_match
3835         (_dbus_object_tree_get_user_data_unlocked): new function used by
3836         dbus_connection_get_object_path_data()
3837         (do_register): add assertion test for get_user_data_unlocked
3838         (object_tree_test_iteration): more tests
3839
3840         * dbus/dbus-connection.c (dbus_connection_get_object_path_data):
3841         new function from Dan Reed to let you get the user data from 
3842         dbus_connection_register_object_path()
3843
3844 2005-04-23  John (J5) Palmieri  <johnp@redhat.com>
3845
3846         * dbus/dbus-marshal-recursive-util.c: Fixed buffer overflow
3847         in numerous places that did not account for the NULL terminator
3848         (signature_from_seed): changed the manual string copy loop to 
3849         just use strcpy instead
3850         make check should now pass
3851
3852 2005-04-19  John (J5) Palmieri  <johnp@redhat.com>
3853
3854         * dbus/dbus-marshal-header.c (_dbus_header_create): Fix assert
3855         so that it allows messages that are not signals to pass in 
3856         NULL as the interface.
3857
3858 2005-04-18  David Zeuthen  <davidz@redhat.com>
3859
3860         * glib/dbus-gmain.c (io_handler_destroy_source): 
3861         (timeout_handler_destroy_source, connection_setup_free): 
3862         Also unref the source to avoid memory leaks.
3863
3864 2005-04-13  David Zeuthen  <davidz@redhat.com>
3865
3866         * bus/config-parser.c (bus_config_parser_new): Bump this to a
3867         more reasonable, yet still totally arbitrary, value :-). 
3868
3869 2005-04-13  David Zeuthen  <davidz@redhat.com>
3870
3871         * doc/TODO: Added an "important for 1.0" item about selinux
3872         allow/deny messages
3873
3874 2005-04-13  David Zeuthen  <davidz@redhat.com>
3875
3876         * bus/selinux.c: Add c-file-style to top of file
3877         (log_audit_callback): Don't free the data here anymore
3878         (bus_selinux_check): Don't take spid and tpid since appending
3879         that to auxdata may OOM.
3880         (bus_selinux_allows_acquire_service): Handle OOM and signal back
3881         to the caller if we are OOM by taking an error object.
3882         (bus_selinux_allows_send): -do-
3883
3884         * bus/selinux.h: Fix prototypes for bus_selinux_allows_acquire_service
3885         and bus_selinux_allows_send
3886
3887         * bus/bus.c (bus_context_check_security_policy): Pass error and
3888         pass on OOM thrown by bus_selinux_allows_send()
3889
3890         * bus/services.c (bus_registry_acquire_service): Pass error and
3891         pass on OOM thrown by bus_selinux_allows_acquire_service()
3892
3893 2005-04-13  Havoc Pennington  <hp@redhat.com>
3894
3895         * glib/dbus-gmain.c (message_queue_dispatch): only dispatch one
3896         message at a time to avoid monopolizing the main loop, bug 
3897         #2953 from Benjamin Otte
3898
3899 2005-04-09  Havoc Pennington  <hp@redhat.com>
3900
3901         * dbus/dbus-string.c (copy): change a memcpy to memmove due to
3902         possible overlap, fix from Daniel Reed
3903         (fixup_alignment): fix signedness warnings
3904         (_dbus_string_append_unichar): ditto
3905
3906 2005-04-09  Havoc Pennington  <hp@redhat.com>
3907
3908         * dbus/dbus-message-util.c (_dbus_message_test): fix signedness warning
3909
3910         * glib/dbus-glib-tool.c (main): fix warning
3911
3912         * glib/dbus-binding-tool-glib.c (generate_glue): fix warning
3913
3914         * dbus/dbus-connection.c (dbus_connection_read_write_dispatch):
3915         add a new function that can be used in simple applications that
3916         don't have a main loop and are willing to block
3917
3918 2005-04-05  David Zeuthen  <davidz@redhat.com>
3919
3920         Fix https://bugs.freedesktop.org/show_bug.cgi?id=2889
3921
3922         * glib/dbus-gmain.c:
3923         (io_handler_destroy_source): Remove from list of IO handlers
3924         of the ConnectionSetup object
3925         (timeout_handler_destroy_source): -do- for timeout handlers
3926         (io_handler_source_finalized): Don't remove from list since
3927         we now do that in io_handler_destroy_source(). Renamed from
3928         io_handler_source_destroyed
3929         (timeout_handler_source_destroyed): -do- for timeout handlers
3930         (connection_setup_free): It is now safe to iterate over all
3931         IO and timeout handlers as the _destroy_source removes them
3932         from the list synchronously
3933
3934 2005-03-30  Havoc Pennington  <hp@redhat.com>
3935
3936         * configure.in: change check to gtk 2.4
3937
3938         * tools/dbus-viewer.c (name_combo_changed_callback): remove
3939         gtk_combo_box_get_active_text() usage to decrement GTK requirement
3940         to 2.4
3941
3942 2005-03-29  John (J5) Palmieri  <johnp@redhat.com>
3943
3944         * News: Update 0.32
3945
3946         * HACKING: Fixed realease instructions.  configure.in should be updated to
3947           the next release by the person who made the last release.
3948
3949 2005-03-29  John (J5) Palmieri  <johnp@redhat.com>
3950
3951         * python/lvalue_cast_post_process.py - removed.  Patch has been
3952           submitted to Pyrex maintainers that fixes gcc4.0 errors
3953
3954         * python/Makefile.am: removed refrences to lvalue_cast_post_process.py
3955
3956 2005-03-24  Daniel Reed  <n@ml.org>
3957
3958         * tools/Makefile.am: Make print-introspect and
3959         dbus-bus-introspect.xml building conditional on HAVE_GLIB.
3960
3961 2005-03-22  John (J5) Palmieri  <johnp@redhat.com>
3962
3963         * tools/Makefile.am: Patch by Colin Walters that fixes distcheck
3964
3965         * dbus/dbus-userdb.c, dbus/dbus-userdb-util.c: Add patch we have 
3966           had in Red Hat packages for a while but for some reason never 
3967           got merged upstream
3968           (_dbus_is_a_number): New checks if a string
3969           can be converted to a number and does the conversion if it can
3970           (_dbus_user_database_lookup): Add check to see if the given username
3971           is a udi.  This allows udi's to be used instead of usernames in the
3972           config file.
3973           (_dbus_user_database_lookup_group): Add check to see if the given groupname
3974           is a gdi.  This allows gdi's to be used instead of groupnames in the
3975           config file.
3976
3977 2005-03-21  John (J5) Palmieri  <johnp@redhat.com>
3978
3979         * python/lvalue_cast_post_process.py - added post processor to fix Pyrex
3980           code so that it compiles with gcc4.0
3981
3982         * python/Makefile.am: Added lvalue_cast_post_process.py to EXTRA_DIST
3983           run dbus_bindings.c through lvalue_cast_post_process.py and copy the
3984           results back to dbus_binding.c
3985
3986 2005-03-20  Colin Walters  <walters@verbum.org>
3987
3988         Patch suggested by Inguva Rajasekhar <ringuva@novell.com>.
3989
3990         * configure.in: Require GTK+ 2.6.
3991         
3992 2005-03-20  Colin Walters  <walters@verbum.org>
3993
3994         * Makefile.am (SUBDIRS, DIST_SUBDIRS): Build tools before test.
3995
3996 2005-03-17  Tom Parker  <palfrey@tevp.net>
3997
3998         * dbus/dbus-userdb.c (_dbus_user_database_lookup): Don't
3999         print DBUS_UID_UNSET; instead print passed username.  Also
4000         be sure to actually use gid looked up in cache.
4001         
4002         * dbus/dbus-userdb-util.c (_dbus_user_database_lookup_group): Ditto
4003         for DBUS_GID_UNSET and groupname.
4004
4005 2005-03-17  Colin Walters  <walters@verbum.org>
4006
4007         * bus/print-introspect.c: Move to tools/.
4008         * bus/run-with-tmp-session-bus.sh: Ditto.
4009         
4010         * glib/Makefile.am (dbus-glib-bindings.h): Move
4011         generation to tools/Makefile.am.
4012
4013         * test/glib/run-test.sh: Update to handle move
4014         of run-with-tmp-session-bus.sh.
4015
4016         * test/glib/test-service-glib.c: Update to handle
4017         move of dbus-glib-bindings.h.
4018
4019         * tools/print-introspect.c: Moved here
4020         from bus/, and ported to GLib bindings.
4021
4022         * tools/run-with-tmp-session-bus.sh: Moved here
4023         from bus/.
4024
4025         * tools/Makefile.am: Generate dbus-glib-bindings.h
4026         and dbus-bus-introspect.xml here.
4027
4028         * tools/.cvsignore, glib/.cvsignore, bus/.cvsignore:
4029         Update.
4030
4031 2005-03-17  Colin Walters  <walters@verbum.org>
4032
4033         * bus/driver.c (write_args_for_direction): Use
4034         _dbus_string_get_const_data to retrieve string;
4035         _dbus_string_get_const_data_len doesn't actually return
4036         a NULL-terminated substring.
4037
4038         * test/glib/test-service-glib.c: Include dbus-glib-bindings.h.
4039         (main): Change to use org_freedesktop_DBus_request_name
4040         instead of using g_proxy_begin_call/end_call.
4041
4042 2005-03-15  Joe Shaw  <joeshaw@novell.com>
4043
4044         * mono/ProxyBuilder.cs (BuildFinalizer): Fix some invalid IL when
4045         generating the finalizer.  Fixes from Ben Maurer.
4046
4047 2005-03-12  Joe Shaw  <joeshaw@novell.com>
4048
4049         * mono/BusDriver.cs: Update method names: ListServices
4050         becomes ListNames; GetOwner becomes GetNameOwner.
4051
4052         * mono/ProxyBuilder.cs (BuildFinalizer): Need to load arg 0
4053         onto the eval stack when removing the delegate.
4054
4055 2005-03-12  Joe Shaw  <joeshaw@novell.com>
4056
4057         * mono/dbus-sharp.dll.config.in: Don't hardcode 0 for
4058         LT_CURRENT.  Set it to the autoconf variable.
4059                                                                                 
4060         * mono/ProxyBuilder.cs: Add a finalizer to the generated proxy
4061         classes that disconnects the signal handler delegate from the
4062         service object.  Fixes a big leak of proxy objects on the
4063         client side of things.  Patch from Ben Maurer
4064         <bmaurer@ximian.com>
4065
4066 2005-03-12  Colin Walters  <walters@verbum.org>
4067
4068         * bus/driver.c (write_args_for_direction): New function,
4069         parses a type signature into arguments and outputs to
4070         XML.
4071         (bus_driver_handle_introspect): Use it instead of
4072         hardcoding XML for certain signatures.
4073         
4074         * bus/Makefile.am (dbus-bus-introspect.xml): Add
4075         dependency on dbus-daemon.
4076
4077         * glib/dbus-glib-tool.c (main): Parse ignore_unsupported
4078         argument, pass it to dbus_binding_tool_output_glib_client.
4079
4080         * glib/dbus-binding-tool-glib.c
4081         (generate_client_glue): Protect against multiple inclusion.
4082         (dbus_binding_tool_output_glib_client): Add
4083         G_BEGIN_DECLS/G_END_DECLS.
4084
4085         * glib/dbus-binding-tool-glib.c (compute_client_method_name):
4086         Change to just take iface prefix directly.
4087         (write_formal_parameters): Clarify error message.
4088         (check_supported_parameters): New function; checks to see type
4089         signatures of method parameters are supported.
4090         (generate_client_glue): Handle ignore_unsupported flag.
4091         (dbus_binding_tool_output_glib_client): Handle ignore_unsupported
4092         parameter.
4093
4094         * glib/Makefile.am (dbus-glib-bindings.h): Pass
4095         --ignore-unsupported by default until glib bindings
4096         support arrays.
4097
4098 2005-03-11  Colin Walters  <walters@verbum.org>
4099
4100         * glib/Makefile.am: Generate dbus-glib-bindings.h and
4101         install it.
4102
4103         * bus/print-introspect.c: New file; prints introspection
4104         data for a given name and object path.
4105
4106         * bus/run-with-tmp-session-bus.sh: New file, refactored
4107         from test/glib/run-test.sh.  Creates a temporary session
4108         bus and runs another program.
4109
4110         * test/glib/run-test.sh: Refactor to invoke
4111         run-with-tmp-session-bus.sh.
4112
4113         * bus/driver.c (bus_driver_handle_introspect): Fix to print new
4114         introspection format.  Also change to use DBUS_TYPE_x_AS_STRING
4115         macros instead of hardcoding.
4116
4117         * glib/.cvsignore, bus/.cvsignore, test/glib/.cvsignore: Update.
4118
4119 2005-03-11  Joe Shaw  <joeshaw@novell.com>
4120
4121         * dbus/dbus-connection.c (dbus_connection_send_with_reply): Remove
4122         this unref; it doesn't match up evenly in some codepaths.
4123         (_dbus_connection_block_pending_call): Unref at every exitpoint;
4124         this evenly matches with the ref near the top of this function.
4125
4126 2005-03-09  Joe Shaw  <joeshaw@novell.com>
4127
4128         * dbus/dbus-object-tree.c
4129         (_dbus_object_tree_unregister_and_unlock): If checks are enabled
4130         and we try to unregister a path that's not registered, still go
4131         through the process of unlocking and don't just return.
4132
4133 2005-03-09  Colin Walters  <walters@verbum.org>
4134
4135         * glib/dbus-gproxy.c (dbus_g_proxy_invoke): New method; calls
4136         to this are generated for client-side wrappers.  Invokes a
4137         D-BUS method and returns reply values.  
4138
4139         * glib/dbus-binding-tool-glib.c (write_args_sig_for_direction): New
4140         function; writes signature string for argument direction.
4141         (write_args_for_direction): Change to pass input values directly
4142         instead of via address, and fix indentation.
4143         (generate_client_glue): Change to invoke dbus_g_proxy_invoke.  Also
4144         make generated wrappers inlineable.
4145
4146         * dbus/dbus-message.c (dbus_message_iter_get_fixed_array): Add
4147         note about using dbus_type_is_fixed.
4148
4149         * dbus/dbus-marshal-basic.c (_dbus_type_is_fixed): Moved to
4150         dbus/dbus-signature.c as dbus_type_is_fixed.
4151
4152         All callers updated.
4153
4154         * dbus/dbus-signature.c (dbus_type_is_fixed): Moved here
4155         from dbus/dbus-marshal-basic.c:_dbus_type_is_fixed.
4156
4157         * dbus/dbus-signature.h: Prototype.
4158
4159         * glib/dbus-binding-tool-glib.c (compute_marshaller_name): Fix
4160         error printf code.
4161
4162         * test/glib/test-dbus-glib.c (main): Be sure to clear error as
4163         appropriate instead of just freeing it.
4164         (main): Free returned strings using g_free.
4165
4166         * test/glib/Makefile.am (test-service-glib-glue.h)
4167         (test-service-glib-bindings.h): Add dependency on dbus-binding-tool.
4168
4169         * glib/dbus-gvalue.c (MAP_BASIC): Refactored from MAP_BASIC_INIT;
4170         simply maps a simple D-BUS type to GType.
4171         (dbus_dbus_type_to_gtype): Function which maps D-BUS type to
4172         GType.
4173         (dbus_gvalue_init): Just invoke dbus_dbus_type_to_gtype and
4174         initialize the value with it.
4175         (dbus_gvalue_binding_type_from_type): Unused, delete.
4176         (dbus_gvalue_demarshal): Switch to hardcoding demarshalling for
4177         various types instead of unmarshalling to value data directly.
4178         Remove can_convert boolean.
4179         (dbus_gvalue_marshal): Remove duplicate initialization; switch to
4180         returning directly instead of using can_convert boolean.
4181         (dbus_gvalue_store): New function; not related to D-BUS per-se.
4182         Stores a GValue in a pointer to a value of its corresponding C
4183         type.
4184
4185         * glib/dbus-gvalue.h: Remove dbus_gvalue_binding_type_from_type,
4186         add dbus_gvalue_store.
4187
4188 2005-03-08  Joe Shaw  <joeshaw@novell.com>
4189
4190         Fix a bunch of lifecycle and memory management problems
4191         in the mono bindings.
4192
4193         * mono/Arguments.cs (Arguments): Implement IDisposable
4194
4195         * mono/Bus.cs (Bus): Don't allow public instantiation.  This is
4196         strictly a static class.
4197
4198         * mono/Connection.cs: Move the DBusObjectPathVTable and associated
4199         delegates into this file.
4200         (Connection): Implement IDisposable.
4201         (Dispose): Disconnect the connection and set the raw connection
4202         pointer to IntPtr.Zero.
4203         (~Connection): Call Dispose().
4204         (RegisterObjectPath): Added.  Manages the registration of object
4205         paths so we can cleanly disconnect them at dispose/finalize time.
4206         (UnregisterObjectPath): Ditto.
4207         (set_RawConnection): Unregister all of the object paths when
4208         changing the underlying DBusConnection.  Add them back onto the
4209         new connection, if any.
4210
4211         * mono/Handler.cs: Don't implement IDisposable; it doesn't use any
4212         more unmanaged resources anymore, so it's not necessary.  Move all
4213         the DBusObjectPathVTable stuff out of here.
4214         (Handler): Save references to our delegates so that they don't get
4215         finalized.  Call Connection.RegisterObjectPath() instead of
4216         dbus_connection_register_object_path() directly.
4217         (Message_Called): Dispose the message after we're finished with
4218         it.
4219
4220         * mono/Message.cs (Message): Implement IDisposable.
4221         (Dispose): Dispose the Arguments, and set the RawMessage to
4222         IntPtr.Zero.
4223         (SendWithReplyAndBlock): We own the ref to the reply that comes
4224         back from dbus_connection_send_with_reply_and_block() so add a
4225         comment about that and unref it after we've constructed a managed
4226         MethodReturn class around it.  Fixes a big, big leak.
4227
4228         * mono/ProxyBuilder.cs: Reflect into Message to get the Dispose
4229         method.
4230         (BuildSignalHandler): After we've sent the Signal message, dispose
4231         of it.
4232         (BuildMethod): Dispose of the method call and reply messages after
4233         we've sent the message and extracted the data we want from the
4234         reply.
4235
4236         * mono/Service.cs (UnregisterObject): Don't call handler.Dispose()
4237         anymore.
4238         (Service_FilterCalled): Dispose of the message after we're
4239         finished with it.
4240
4241 2005-03-08  Joe Shaw  <joeshaw@novell.com>
4242
4243         * dbus/dbus-connection.c (dbus_connection_send_with_reply):
4244         After we attach our pending call to the connection, unref
4245         it.  Fixes a leak.
4246  
4247         * mono/Connection.cs (set_RawConnection): Disconnect our
4248         filter and match callbacks from the old connection and
4249         reconnect them to the new connection, if any.
4250
4251         * mono/DBusType/Array.cs: "Code" is a static member, so
4252         don't use "this" to refer to it.  Fix for stricter checking
4253         in Mono 1.1.4.
4254  
4255         * mono/DBusType/ObjectPath.cs (Append): Don't leak the
4256         object path that we pass into unmanaged code.
4257  
4258         * mono/DBusType/String.cs (Append): Don't leak the string
4259         that we pass into unmanged code.
4260
4261 2005-03-07  John (J5) Palmieri  <johnp@redhat.com>
4262         * NEWS: Update for 0.31
4263
4264         * configure.in: Release 0.31
4265         add LT_CURRENT, LT_REVISION, LT_AGE for easy soname bumping
4266
4267         * qt/Makefile.am: fixed build
4268
4269         * dbus/Makefile.am: soname bump for libdbus
4270
4271         * glib/Makefile.am: soname bump for libdbus-glib
4272
4273 2005-03-05  Havoc Pennington  <hp@redhat.com>
4274
4275         * dbus/dbus-sysdeps.c:
4276         (pseudorandom_generate_random_bytes_buffer): fix to have no return
4277         value
4278         (_dbus_generate_random_bytes_buffer): fix return value
4279
4280         * dbus/dbus-sysdeps-util.c: s/GETPWNAME/GETPWNAM/ so configure
4281         checks actually work, from Tom Parker <fdo@tevp.net>
4282
4283 2005-03-01  Colin Walters  <walters@verbum.org>
4284
4285         * test/glib/test-dbus-glib.c (lose, lose_gerror): Utility
4286         functions copied from dbus-glib-tool.c.
4287         (main): Convert lots of error code to use them.
4288         Also add some testing for introspection bits.
4289
4290 2005-03-01  Colin Walters  <walters@verbum.org>
4291         
4292         * doc/TODO: Remove introspection signature TODO.
4293
4294 2005-02-27  Colin Walters  <walters@verbum.org>
4295
4296         * glib/dbus-gidl.c (property_info_get_type, arg_info_get_type):
4297         Change return value to const char * instead of int so we can do
4298         full signatures.
4299         (struct PropertyInfo, struct ArgInfo): Store char *.
4300         (property_info_new, arg_info_new): Update parameters, strdup.
4301         (property_info_unref, arg_info_unref): Free.
4302
4303         * glib/dbus-gidl.h: Update prototypes.
4304
4305         * glib/dbus-gparser.c (basic_type_from_string): Delete.
4306         (validate_signature): New function, just validates signature and
4307         sets GError.
4308         (parse_property, parse_arg): Invoke validate_signature.  Store
4309         signature instead of just type code.
4310
4311         * glib/dbus-gvalue.c (base_type_from_signature): New utility
4312         function to return a primary type for a signature, dropping
4313         information about types in container types.
4314         (dbus_gvalue_genmarshal_name_from_type)
4315         (dbus_gvalue_binding_type_from_type)
4316         (dbus_gvalue_ctype_from_type): Update to take full signature
4317          instead of type code.
4318         (dbus_gtype_to_dbus_type): Moved here from glib/dbus-gobject.c.
4319
4320         * glib/dbus-gvalue.h: Update prototypes for above.
4321
4322         * glib/dbus-gobject.c (gtype_to_dbus_type): Moved to
4323         glib/dbus-gvalue.c as dbus_gtype_to_dbus_type.
4324         (introspect_properties, introspect_signals, write_interface):
4325         Update to handle signatures, and remove usage of
4326         _dbus_gutils_type_to_string.
4327         (handle_introspect): Print out type codes instead of e.g. "string"
4328         in hardcoded introspection XML; also use x_AS_STRING constants
4329         instead of hardcoding in string.
4330
4331         * glib/dbus-glib-tool.c (pretty_print): Handle signature change
4332         to string.  Remove usage of _dbus_gutils_type_to_string.
4333
4334         * glib/dbus-gutils.c (_dbus_gutils_type_to_string): Delete.
4335
4336         * glib/dbus-gutils.h (_dbus_gutils_type_to_string): Update for
4337         deletion.
4338         
4339         * glib/dbus-binding-tool-glib.c (compute_marshaller)
4340         (compute_marshaller_name, generate_glue): Handle signature change
4341         to string.
4342         (write_formal_parameters, write_args_for_direction): Ditto, and
4343         remove FIXME.
4344
4345         * tools/dbus-tree-view.c (type_to_string): Delete.
4346         (info_set_func_text): Update to print full signatures.
4347
4348         * test/glib/test-service-glib.xml: Change types to new
4349         introspection format.
4350
4351 2005-02-26  Havoc Pennington  <hp@redhat.com>
4352
4353         * doc/TODO: remove the "guid" item
4354
4355         * test/glib/test-profile.c (no_bus_thread_func): use open_private
4356         (with_bus_thread_func): use open_private
4357
4358         * dbus/dbus-connection.c (dbus_connection_open_private): new
4359         function that works like the old dbus_connection_open()
4360         (dbus_connection_open): now returns an existing connection if
4361         possible
4362
4363         * dbus/dbus-server-unix.c (handle_new_client_fd_and_unlock): pass
4364         through the GUID to the transport
4365
4366         * dbus/dbus-server.c (_dbus_server_init_base): keep around the
4367         GUID in hex-encoded form.
4368
4369         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
4370         pass GUID argument in to the transport
4371
4372         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd): add
4373         guid argument
4374
4375         * dbus/dbus-transport.c (_dbus_transport_init_base): add guid argument
4376
4377         * dbus/dbus-auth.c (_dbus_auth_server_new): add guid argument
4378
4379 2005-02-25  Havoc Pennington  <hp@redhat.com>
4380
4381         * doc/dbus-specification.xml: document the GUID thing
4382
4383         * dbus/dbus-server.c (_dbus_server_init_base): initialize a
4384         globally unique ID for the server, and put a "guid=hexencoded"
4385         field in the address
4386
4387         * dbus/dbus-bus.c: fix missing #include of dbus-threads-internal.h
4388
4389         * dbus/dbus-message.c: ditto
4390
4391         * dbus/dbus-dataslot.c: ditto
4392
4393         * dbus/dbus-list.c: ditto
4394
4395         * dbus/dbus-internals.h: wait, just include
4396         dbus-threads-internal.h here
4397         
4398         * dbus/dbus-string.c (_dbus_string_copy_to_buffer): move back for
4399         use in main library
4400
4401         * dbus/dbus-sysdeps.c (_dbus_generate_random_bytes_buffer): new function
4402
4403 2005-02-24  Colin Walters  <walters@verbum.org>
4404
4405         * test/glib/Makefile.am (EXTRA_DIST): Add test-service-glib.xml
4406
4407 2005-02-24  John (J5) Palmieir  <johnp@redhat.com>
4408
4409         * glib/Makefile.am: added dbus-gobject.h to sources list
4410         so distcheck doesn't fail
4411         
4412 2005-02-24  Havoc Pennington  <hp@redhat.com>
4413
4414         * dbus/dbus-server.c, dbus/dbus-server-unix.c: change semantics so
4415         you must disconnect before unref, since locking and other things
4416         are screwed up otherwise. Fix assorted other locking stuff.
4417
4418         * dbus/dbus-signature.c (dbus_signature_iter_get_element_type):
4419         fix compilation
4420
4421         * dbus/dbus-threads-internal.h: move the mutex/condvar wrappers
4422         into a private header and don't export from the library
4423
4424         * throughout - call _dbus_thread_stuff vs. dbus_thread_stuff
4425
4426 2005-02-24  Colin Walters  <walters@verbum.org>
4427         
4428         * dbus/dbus-signature.c: New file; implements various functions
4429         related to type signatures.  Includes an interator for parsing,
4430         validation functions.
4431         (dbus_type_is_basic): Moved here from
4432         dbus-marshal-basic.c:_dbus_type_is_basic.
4433         (dbus_type_is_container): Moved here from
4434         dbus-marshal-basic.c:_dbus_type_is_container.
4435
4436         All callers of _dbus_type_is_container and _dbus_type_is_basic
4437         updated, and include dbus-signature.h.
4438
4439         * dbus/dbus-signature.h: New file; prototypes for the above.
4440
4441         * dbus/Makefile.am (DBUS_LIB_SOURCES): Add dbus-signature.c,
4442         dbus-signature.h.
4443
4444         * dbus/dbus-marshal-basic.c (map_type_char_to_type): New utility
4445         function factored out of _dbus_first_type_in_signature.
4446         (_dbus_first_type_in_signature_c_str): New function; returns first
4447         type code for a type signature character.
4448
4449         * dbus/dbus-marshal-basic.h: Prototype _dbus_first_type_in_signature_c_str,
4450         handle function moves.
4451
4452         * dbus/dbus-marshal-recursive.h: Export _dbus_type_signature_next.
4453
4454         * dbus/dbus-marshal-recursive.c (_dbus_type_signature_next): New
4455         function; skips to next complete type in type signature.
4456         Implemented using previous skip_one_complete_type.  Now
4457         skip_one_complete_type just delegates to
4458         _dbus_type_signature_next.
4459
4460         * dbus/dbus-marshal-basic.c (_dbus_type_is_basic): Moved
4461         to dbus-signature.c
4462         (_dbus_type_is_container): Ditto.
4463
4464         * doc/dbus-specification.xml: Update introspection sample to
4465         use real type signatures.
4466
4467         * dbus/dbus-test.h: Prototype signature test.
4468
4469         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): Run
4470         signature tests.
4471
4472         * dbus/dbus-protocol.h (DBUS_ERROR_INVALID_SIGNATURE): New error.
4473
4474 2005-02-23  John (J5) Palmieri  <johnp@redhat.com>
4475
4476         * python/dbus_bindings.pyx.in (PendingCall::get_reply):
4477         s/dbus_pending_call_get_reply/dbus_pending_call_steal_reply
4478
4479 2005-02-21  Colin Walters  <walters@verbum.org>
4480
4481         * dbus/dbus-test-main.c (main): Take optional specific test
4482         argument.
4483
4484         * dbus/dbus-test.c (run_test): New function, runs a test function
4485         with no data directory.
4486         (run_data_test): Like above, but takes data directory.
4487         (dbus_internal_do_not_use_run_tests): Take
4488         specific test argument.  Replace lots of cut n' paste code
4489         with run_test and run_data_test.
4490
4491         * dbus/dbus-test.h: Update prototype for
4492         dbus_internal_do_not_use_run_tests.
4493
4494 2005-02-20  Havoc Pennington  <hp@redhat.com>
4495
4496         Fix bugs reported by Daniel P. Berrange
4497         
4498         * dbus/dbus-server.c (_dbus_server_unref_unlocked): new function
4499         (protected_change_watch): new function
4500         (_dbus_server_toggle_watch, _dbus_server_remove_watch)
4501         (_dbus_server_add_watch): change to work like the
4502         dbus-connection.c equivalents; like those, probably kind of
4503         busted, but should at least mostly work for now
4504         (dbus_server_disconnect): drop the lock if we were already
4505         disconnected, patch from Daniel P. Berrange
4506
4507         * dbus/dbus-server.c (_dbus_server_toggle_timeout) 
4508         (_dbus_server_remove_timeout, _dbus_server_add_timeout): all the
4509         same stuff
4510
4511         * doc/TODO: todo about unscrewing this mess
4512
4513 2005-02-19  Colin Walters  <walters@verbum.org>
4514
4515         * glib/dbus-binding-tool-glib.c
4516         (dbus_binding_tool_output_glib_server): Fix iochannel refcounting.
4517
4518         * glib/dbus-glib-tool.c: Include dbus-glib-tool.h, as well
4519         as errno.h and sys/stat.h.
4520         (lose): New function, prints error with
4521         newline and exits.
4522         (lose_gerror): Similar, but takes GError for message.
4523         (main): Add --output argument to specify output file to write to,
4524         instead of always printing to stdout.  In this mode, determine
4525         timestamps on source files to see whether any are newer than the
4526         target file.  If not, exit.  Also convert a number of error
4527         messages to use lose (since it's shorter), and switch to using
4528         g_io_channel_shutdown.
4529
4530 2005-02-19  Havoc Pennington  <hp@redhat.com>
4531
4532         * glib/dbus-gobject.c
4533         (_dbus_glib_marshal_dbus_message_to_gvalue_array): add docs
4534
4535         * glib/dbus-glib.c: fix doxygen warnings
4536
4537         * glib/dbus-gparser.c (parse_annotation): error if an annotation
4538         is found on an <arg>
4539
4540 2005-02-17  Colin Walters  <walters@verbum.org>
4541
4542         * glib/dbus-gobject.h: Don't export
4543         _dbus_glib_marshal_dbus_message_to_gvalue_array.
4544         
4545         * glib/dbus-gobject.c (_dbus_glib_marshal_dbus_message_to_gvalue_array): Do rename.
4546         (invoke_object_method): Handle it.
4547
4548         * glib/dbus-gproxy.c (marshal_dbus_message_to_g_marshaller):
4549         Handle rename.
4550         
4551 2005-02-17  Colin Walters  <walters@verbum.org>
4552
4553         * bus/.cvsignore, doc/.cvsignore
4554         * test/data/valid-service-files/.cvsignore, test/glib/.cvsignore:
4555         Update.
4556
4557 2005-02-17  Colin Walters  <walters@verbum.org>
4558         
4559         * dbus/dbus-protocol.h (DBUS_SERVICE_ORG_FREEDESKTOP_DBUS):
4560         Rename to DBUS_SERVICE_DBUS.
4561         (DBUS_PATH_ORG_FREEDESKTOP_DBUS): Rename to DBUS_PATH_DBUS.
4562         (DBUS_PATH_ORG_FREEDESKTOP_LOCAL): Rename to DBUS_PATH_LOCAL.
4563         Change the value from "org.freedesktop.Local"
4564         to "org.freedesktop.DBus.Local".
4565         (DBUS_INTERFACE_ORG_FREEDESKTOP_DBUS): Rename to DBUS_INTERFACE_DBUS.
4566         (DBUS_INTERFACE_ORG_FREEDESKTOP_INTROSPECTABLE): Rename to
4567         DBUS_INTERFACE_INTROSPECTABLE.
4568         Change the value from "org.freedesktop.Introspectable"
4569         to "org.freedesktop.DBus.Introspectable".
4570         (DBUS_INTERFACE_ORG_FREEDESKTOP_PROPERTIES): Rename to
4571         DBUS_INTERFACE_PROPERTIES.
4572         Change the value from "org.freedesktop.Properties"
4573         to "org.freedesktop.DBus.Properties".
4574         (DBUS_INTERFACE_ORG_FREEDESKTOP_PEER): Rename to
4575         DBUS_INTERFACE_PEER.
4576         Change the value from "org.freedesktop.Peer"
4577         to "org.freedesktop.DBus.Peer".
4578         (DBUS_INTERFACE_ORG_FREEDESKTOP_LOCAL): 
4579         DBUS_INTERFACE_LOCAL.
4580         Change the value from "org.freedesktop.Local"
4581         to "org.freedesktop.DBus.Local".
4582
4583         All other users of those constants have been changed.
4584
4585         * bus/driver.c (bus_driver_handle_introspect): Use constants.
4586
4587         * glib/dbus-gobject.c (handle_introspect): Use constants.
4588
4589         * doc/dbus-faq.xml, doc/dbus-specification.xml: Update for rename.
4590
4591 2005-02-17  Colin Walters  <walters@verbum.org>
4592
4593         * glib/dbus-gparser.c (struct Parser): Add in_annotation boolean.
4594         (parse_node, parse_interface, parse_method, parse_signal)
4595         (parse_property, parse_annotation): Lose if we're currently in an
4596         annotation.
4597         (parse_annotation): New function.
4598         (parser_start_element, parser_end_element): Handle annotation.
4599         (parse_method, parse_interface): Remove support for c_name attribute,
4600         switch to annotations.
4601
4602         * glib/dbus-gidl.h (interface_info_get_binding_names)
4603         (method_info_get_binding_names)
4604         (interface_info_get_binding_name, method_info_get_binding_name)
4605         (interface_info_set_binding_name, method_info_set_binding_name):
4606         Remove.
4607         (interface_info_get_annotations, method_info_get_annotations)
4608         (interface_info_get_annotation, method_info_get_annotation)
4609         (interface_info_add_annotation, method_info_add_annotation):
4610         Prototype.
4611
4612         * glib/dbus-gidl.c (struct InterfaceInfo): Substitute "annotations"
4613         for "bindings".
4614         (struct MethodInfo): Ditto.
4615         Straightfoward conversion of binding methods into annotation methods
4616         as prototyped.
4617
4618         * glib/dbus-glib-tool.c (pretty_print): Print annotations.
4619
4620         * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_C_SYMBOL): Define.
4621
4622         * glib/dbus-binding-tool-glib.c (gather_marshallers, generate_glue):
4623         Use new annotation API.
4624
4625         * doc/introspect.dtd: Fix a number of DTD syntax errors.  Add
4626         annotation element.
4627         
4628         * doc/dbus-specification.xml: Discuss introspection annotations,
4629         include list of well-known annotations.
4630
4631         * test/glib/test-service-glib.xml: Make validate against new DTD.
4632
4633 2005-02-17  Colin Walters  <walters@verbum.org>
4634
4635         This patch is based on initial work from
4636         Paul Kuliniewicz <kuliniew@purdue.edu>.
4637
4638         * glib/dbus-gvalue.c (dbus_gvalue_init): New function; move
4639         initialization of GValue from dbus type to here.
4640         (dbus_gvalue_genmarshal_name_from_type): New function; generates a string
4641         for the "glib-genmarshal" program from a DBus type.
4642         (dbus_gvalue_binding_type_from_type): New function; turns a DBus type
4643         into the C name for it we use in the glib bindings.
4644         (dbus_gvalue_ctype_from_type): New function; maps a DBus type into a
4645         glib C type (not GValue).
4646         (dbus_gvalue_demarshal): invoke dbus_gvalue_init.
4647
4648         * glib/dbus-gutils.c (_dbus_gutils_wincaps_to_uscore): Moved here
4649         from dbus-gobject.c.
4650
4651         * glib/dbus-gutils.h: Prototype it.
4652
4653         * glib/dbus-gproxy.c: Include new dbus-gobject.h.
4654         (marshal_dbus_message_to_g_marshaller): Use new shared function
4655         dbus_glib_marshal_dbus_message_to_gvalue_array.
4656
4657         * glib/dbus-gparser.c (parse_interface, parse_method): Handle c_name attribute.
4658         Will be changed once we have annotations.
4659
4660         * glib/dbus-gobject.c: Change info_hash_mutex from GStaticMutex to
4661         GStaticRWLock.  Callers updated.
4662         (wincaps_to_uscore): Move to dbus-gutils.c.  Callers updated.
4663         (string_table_next): New function for iterating over zero-terminated
4664         string value array.
4665         (string_table_lookup): New function; retrieves specific entry in
4666         array.
4667         (get_method_data): New function; look up method data in object data chunk.
4668         (object_error_domain_prefix_from_object_info)
4669         (object_error_code_from_object_info): New functions, but not implemented yet.
4670         (method_interface_from_object_info): New function; retrieve interface name.
4671         (method_name_from_object_info): New function; retrieve method name.
4672         (method_arg_info_from_object_info): New function; retrieve argument data.
4673         (arg_iterate): New function; iterates over serialized argument data.
4674         (method_dir_signature_from_object_info): New function; returns a
4675         GString holding type signature for arguments for just one
4676         direction (input or output).
4677         (method_input_signature_from_object_info)
4678         (method_output_signature_from_object_info): New functions.
4679         (dbus_glib_marshal_dbus_message_to_gvalue_array): New shared function;
4680         converts dbus message arguments into a GValue array.  Used for both
4681         signal handling and method invocation.
4682         (struct DBusGlibWriteIterfaceData): New utility structure.
4683         (write_interface): New function; generate introspection XML for
4684         an interface.
4685         (introspect_interfaces): New function; gathers all interface->methods,
4686         generates introspection XML for them.
4687         (handle_introspect): Invoke introspect_interfaces.
4688         (get_object_property): Be sure to zero-initalize stack-allocated GValue.
4689         (lookup_object_and_method): New function; examines an incoming message
4690         and attempts to match it up (via interface, method name, and argument
4691         signature) with a known object and method.
4692         (gerror_domaincode_to_dbus_error_name): New function; converts a
4693         GError domain and code into a DBus error name.  Needs GError data
4694         added to object introspection to work well.
4695         (gerror_to_dbus_error_message): Creates a DBusMessage error return from
4696         GError.
4697         (invoke_object_method): New function to invoke an object method
4698         looked up via lookup_object_and_method.  Parses the incoming
4699         message, turns it into a GValue array, then invokes the marshaller
4700         specified in the DBusGMethodInfo.  Creates a new message with
4701         either return values or error message as appropriate.
4702         (gobject_message_function): Invoke lookup_object_and_method and
4703         invoke_object_method.
4704
4705         * glib/dbus-glib-tool.c: Include dbus-binding-tool-glib.h.
4706         (enum DBusBindingOutputMode): New enum for binding output modes.
4707         (pretty_print): Print binding names.
4708         (dbus_binding_tool_error_quark): GError bits.
4709         (version): Fix typo.
4710         (main): Create GIOChannel for output.  Parse new --mode argument,
4711         possible values are "pretty-print", "glib-server", "glib-client".
4712         Use mode to invoke appropriate function.
4713         
4714         * glib/dbus-gobject.h: Prototype dbus_glib_marshal_dbus_message_to_gvalue_array.
4715
4716         * glib/dbus-glib-tool.h: New header, just includes GError bits
4717         for now.
4718
4719         * glib/dbus-gidl.c (struct InterfaceInfo): Add bindings hashtable;
4720         maps binding style to name.
4721         (struct MethodInfo): Ditto.
4722         (get_hash_keys, get_hash_key): Utility function, returns keys for
4723         a GHashTable.
4724         (interface_info_new, method_info_new): Initialize bindings.
4725         (interface_info_unref, method_info_unref): Destroy bindings.
4726         (method_info_get_binding_names, method_info_get_binding_name)
4727         (interface_info_get_binding_names, interface_info_get_binding_name):
4728         Functions for retrieving binding names.
4729         (method_info_set_binding_name, interface_info_set_binding_name):
4730         Functions for setting binding names.
4731
4732         * glib/dbus-binding-tool-glib.h: New file, has prototypes
4733         for glib binding generation.
4734
4735         * glib/dbus-binding-tool-glib.c: New file, implements server-side
4736         and client-side glib glue generation.
4737
4738         * glib/Makefile.am (dbus_binding_tool_SOURCES): Add
4739         dbus-binding-tool-glib.c, dbus-binding-tool-glib.h,
4740         dbus-glib-tool.h.
4741
4742         * dbus/dbus-glib.h (struct DBusGMethodMarshaller): Remove in favor
4743         of using GClosureMarshal directly.
4744         (struct DBusGObjectInfo): Add n_infos member.
4745
4746         * test/glib/test-service-glib.xml: New file; contains introspection data
4747         for MyTestObject used in test-service-glib.c.
4748
4749         * test/glib/test-service-glib.c (enum MyObjectError): New GError enum.
4750         (my_object_do_nothing, my_object_increment, my_object_throw_error)
4751         (my_object_uppercase, my_object_many_args): New test methods.
4752         (main): Use dbus_g_object_class_install_info to include generated object
4753         info.
4754
4755         * test/glib/Makefile.am: Generate server-side glue for test-service-glib.c,
4756         as well as client-side bindings.
4757
4758         * test/glib/test-dbus-glib.c: Include test-service-glib-bindings.h.
4759         (main): Activate TestSuiteGLibService; test invoke a bunch of its methods
4760         using both the dbus_gproxy stuff directly as well as the generated bindings.
4761
4762 2005-02-15  Havoc Pennington  <hp@redhat.com>
4763
4764         * dbus/dbus-connection.c (dbus_connection_dispatch): always
4765         complete a pending call, don't run filters first.
4766
4767         * glib/dbus-gproxy.c (dbus_g_proxy_end_call): change to use
4768         dbus_pending_call_steal_reply
4769
4770         * dbus/dbus-pending-call.c (dbus_pending_call_block): just call
4771         _dbus_connection_block_pending_call
4772         (dbus_pending_call_get_reply): change to steal_reply and return a
4773         ref
4774
4775         * dbus/dbus-connection.c
4776         (dbus_connection_send_with_reply_and_block): port to work in terms
4777         of DBusPendingCall
4778         (_dbus_connection_block_pending_call): replace block_for_reply
4779         with this
4780
4781 2005-02-14  Havoc Pennington  <hp@redhat.com>
4782
4783         * dbus/dbus-userdb-util.c (_dbus_user_database_lookup_group):
4784         properly handle looking up group information by name; fix 
4785         from j@bootlab.org
4786
4787 2005-02-13  Havoc Pennington  <hp@redhat.com>
4788
4789         * dbus/dbus-connection.c (dbus_connection_return_message) 
4790         (dbus_connection_borrow_message): hold dispatch lock while message
4791         is outstanding
4792         (_dbus_connection_block_for_reply): hold dispatch lock while we
4793         block for the reply, so nobody steals our reply
4794         (dbus_connection_pop_message): hold the dispatch lock while we
4795         pluck the message
4796
4797 2005-02-13  Havoc Pennington  <hp@redhat.com>
4798
4799         * dbus/dbus-connection.c (_dbus_connection_acquire_dispatch)
4800         (_dbus_connection_release_dispatch)
4801         (_dbus_connection_acquire_io_path)
4802         (_dbus_connection_release_io_path): make the mutex and condvar
4803         control access to the "acquired" flag. Drop the connection lock
4804         while waiting on the condvar. Hopefully these are baby steps in
4805         roughly the right direction.
4806
4807 2005-02-13  Havoc Pennington  <hp@redhat.com>
4808
4809         * dbus/dbus-connection.c: use separate mutexes for the condition
4810         variables; this is some kind of baseline for sanity, but the
4811         condition variables still aren't used correctly afaict
4812
4813 2005-02-13  Havoc Pennington  <hp@redhat.com>
4814
4815         * dbus/dbus-object-tree.c (handle_default_introspect_and_unlock):
4816         fix a double-unlock
4817
4818         * dbus/dbus-connection.c
4819         (_dbus_connection_detach_pending_call_unlocked): add this
4820
4821         Initial semi-correct pass through to fix thread locking; there are
4822         still some issues with the condition variable paths I'm pretty
4823         sure
4824         
4825         * dbus/dbus-server.c: add a mutex on DBusServer and appropriate
4826         lock/unlock calls
4827
4828         * dbus/dbus-connection.c (_dbus_connection_do_iteration_unlocked):
4829         rename to add _unlocked
4830         (struct DBusConnection): move "dispatch_acquired" and
4831         "io_path_acquired" to use only one bit each.
4832         (CONNECTION_LOCK, CONNECTION_UNLOCK): add checks with !DBUS_DISABLE_CHECKS
4833         (dbus_connection_set_watch_functions): hacky fix to reentrancy
4834         (_dbus_connection_add_watch, _dbus_connection_remove_watch) 
4835         (_dbus_connection_toggle_watch, _dbus_connection_add_timeout) 
4836         (_dbus_connection_remove_timeout) 
4837         (_dbus_connection_toggle_timeout): drop lock when calling out to
4838         user functions; done in a hacky/bad way.
4839         (_dbus_connection_send_and_unlock): add a missing unlock
4840         (_dbus_connection_block_for_reply): add a missing unlock
4841
4842         * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated):
4843         drop lock in a hacky probably unsafe way to call out to user
4844         function
4845
4846 2005-02-12  Havoc Pennington  <hp@redhat.com>
4847
4848         * tools/dbus-tree-view.c (info_set_func_text): display more
4849         details on args
4850
4851         * bus/driver.c (bus_driver_handle_list_services): list the bus
4852         driver
4853
4854         * glib/dbus-gparser.c (parse_arg): generate an arg name if none is supplied
4855
4856         * glib/dbus-gidl.c (signal_info_get_n_args): new function
4857         (method_info_get_n_args): new function
4858
4859 2005-02-12  Havoc Pennington  <hp@redhat.com>
4860
4861         * bus/driver.c (bus_driver_handle_introspect): add introspection
4862         for bus driver
4863
4864 2005-02-12  Havoc Pennington  <hp@redhat.com>
4865
4866         * bus/driver.c: put the signature of each bus driver method in the
4867         table of handlers and check it on incoming calls; this isn't
4868         really useful, but going to add introspect support in a minute.
4869
4870 2005-02-11  Joe Shaw  <joeshaw@novell.com>
4871
4872         * mono/Connection.cs: The unpredictability of finalizers in mono
4873         prevents us from deterministically disconnecting the filters from
4874         the Service class's finalizer, so move tracking of filters and
4875         matches here.  Add API for that.
4876
4877         * mono/Service.cs: Remove the code, add code which calls the
4878         methods now on the Connection class.
4879
4880 2005-02-11  John (J5) Palmieri  <johnp@redhat.com>
4881
4882         * python/dbus.py (class Sender): added to support dbus signals better
4883         (Bus::add_signal_receiver): added expand_args parameter which defaults
4884         to True.  When expand args is True the signal handler will pass the 
4885         message arguments as parameters to the signal handler.  If False
4886         revert to previous behavior where the signal handler must get the
4887         argument list from the message.  This is to help port applications
4888         like HAL that have a tendancy to send variable length argument lists.
4889         self._match_rule_to_receivers is now a dict of dicts.
4890         (Bus::remove_signal_receiver): pop handler off the dict intead of 
4891         removing it from a list
4892         (Bus::_signal_func): change signal handlers so that interface,
4893         signal_name, service, path and message are packed into a Sender
4894         object and that is passed to the handler.  If expand_args is True
4895         extract the args list from the message and append it to the parameter
4896         list
4897         
4898         * python/dbus_bindings.pyx.in (class Signature): added to support 
4899         signiature types
4900         (MessageIter::__init__): changed iteration limit to match D-BUS
4901         (MessageIter::get*): added INT16, UINT16, SIGNATURE, DICT_ENTRY, 
4902         STRUCT and VARIENT type support
4903         (MessageIter::python_value_to_dbus_sig): made recursive to support
4904         recursive types
4905         (MessageIter::append*): added Signature, dict, tuple 
4906         support
4907
4908         * python/examples/example-client.py: added examples of getting tuples
4909         and dicts
4910
4911         * python/examples/example-service.py: added examples of sending tuples
4912         and dicts
4913
4914         * python/examples/example-signal-recipient.py: Fixed to handle new
4915         signal callback format
4916
4917 2005-02-10  Havoc Pennington  <hp@redhat.com>
4918
4919         * test/glib/test-dbus-glib.c (main): fix so this test doesn't fail
4920         (call dbus_g_proxy_add_signal)
4921
4922         * dbus/dbus-server-unix.c (_dbus_server_new_for_tcp_socket):
4923         escape the hostname
4924         (_dbus_server_new_for_domain_socket): escape the path
4925
4926         * dbus/dbus-address.c (dbus_address_escape_value): new
4927         (dbus_address_unescape_value): new
4928         (dbus_parse_address): unescape values
4929
4930         * dbus/dbus-string.c (_dbus_string_append_byte_as_hex): new function
4931
4932         * doc/dbus-specification.xml: explain how to escape values in
4933         addresses
4934
4935 2005-02-10  Havoc Pennington  <hp@redhat.com>
4936
4937         * dbus/dbus-message-factory.c (generate_special): modify test to
4938         avoid using a non-basic dict key
4939
4940         * dbus/dbus-marshal-validate-util.c: add test for the below
4941
4942         * doc/dbus-specification.xml: require that dict keys are a basic
4943         type
4944
4945         * dbus/dbus-marshal-validate.c
4946         (_dbus_validate_signature_with_reason): require that dict key is a
4947         basic type
4948
4949 2005-02-10  Havoc Pennington  <hp@redhat.com>
4950
4951         * dbus/dbus-object-tree.c (handle_default_introspect_and_unlock):
4952         change to be _and_unlock instead of _unlocked
4953
4954         * dbus/dbus-connection.c
4955         (_dbus_connection_send_preallocated_unlocked_no_update): rename to
4956         have no_update so we can find this bug quickly in future
4957
4958 2005-02-10  Havoc Pennington  <hp@redhat.com>
4959
4960         * dbus/dbus-message-util.c (verify_test_message): tests for string
4961         array
4962
4963         * dbus/dbus-message.c (dbus_message_append_args_valist): add
4964         support for arrays of string/signature/path
4965
4966 2005-02-10  Joe Shaw  <joeshaw@novell.com>
4967
4968         * dbus/dbus-connection.c
4969         (_dbus_connection_queue_received_message_link,
4970         _dbus_connection_message_sent): Add the path to
4971         the verbose output.
4972         (_dbus_connection_send_preallocated_and_unlock): Added.  Calls
4973         _dbus_connection_send_preallocated_unlocked(), updated the
4974         dispatch status, and unlocks.  Fixes a bug where certain
4975         situations (like a broken pipe) could cause a Disconnect message
4976         to not be sent, tricking the bus into thinking a service was still
4977         there when the process had quit.
4978         (_dbus_connection_send_preallocated): Call
4979         _dbus_connection_send_preallocated_and_unlock().
4980         (_dbus_connection_send_and_unlock): Added.  Calls
4981         _dbus_connection_send_preallocated_and_unlock().
4982         (dbus_connection_send): Call _dbus_connection_send_and_unlock().
4983         (dbus_connection_send_with_reply): Update the dispatch status and
4984         unlock.
4985
4986         * mono/Service.cs (~Service): Added.  Removes the filter so that
4987         we don't get unmanaged code calling back into a GCed delegate.
4988         (RemoveFilter); Added.
4989
4990 2005-02-09  John (J5) Palmieri  <johnp@redhat.com>
4991
4992         * dbus/dbus-message.c (dbus_message_iter_open_container):
4993         - Removed check for iterator type being an array because
4994         get_arg_type does not work with writer iterators
4995         - Pass NULL to _dbus_type_writer_recurse if signiture is NULL
4996
4997 2005-02-07  Havoc Pennington  <hp@redhat.com>
4998
4999         * doc/dbus-specification.xml: some more language cleanups; add
5000         stuff about how to deal with invalid protocol and extension
5001         points; add _ to allowed chars in auth commands; add EXTENSION_
5002         auth command prefix
5003
5004 2005-02-06  Havoc Pennington  <hp@redhat.com>
5005
5006         * s/expected/required/ in a couple places for clarity
5007
5008 2005-02-07  Colin Walters  <walters@verbum.org>
5009
5010         * bus/selinux.c (bus_selinux_allows_send): Handle NULL for
5011         sender or proposed_recipient.
5012
5013 2005-02-06  Havoc Pennington  <hp@redhat.com>
5014
5015         * dbus/dbus-message-factory.c (generate_special): more tests
5016
5017         * dbus/dbus-marshal-validate.c (validate_body_helper): detect
5018         array length that exceeds the maximum
5019
5020 2005-02-05  Havoc Pennington  <hp@redhat.com>
5021
5022         * dbus/dbus-message-factory.c (generate_special): more test cases,
5023         increasing coverage
5024
5025         * dbus/dbus-marshal-validate.c (validate_body_helper): return the
5026         reason why a signature was invalid
5027
5028         * dbus/dbus-marshal-header.c (load_and_validate_field): fix to
5029         skip the length of the string before we look at it in validation
5030
5031         * dbus/dbus-string-util.c (_dbus_string_test): add tests for
5032         equal_substring
5033
5034         * dbus/dbus-message.c (_dbus_message_loader_new): default
5035         max_message_length to DBUS_MAXIMUM_MESSAGE_LENGTH
5036
5037 2005-02-05  Havoc Pennington  <hp@redhat.com>
5038
5039         * dbus/dbus-marshal-validate.c (validate_body_helper): fix crash
5040         if the signature of a variant was empty
5041         (_dbus_validate_signature_with_reason): catch "(a)" (array inside
5042         struct with no element type)
5043
5044         * dbus/dbus-message-factory.c (generate_uint32_changed): add more
5045         mangled messages to break things
5046
5047 2005-02-04  Havoc Pennington  <hp@redhat.com>
5048
5049         * glib/dbus-gproxy.c (dbus_g_proxy_disconnect_signal): use
5050         g_quark_try_string() so it actually can return 0
5051         (dbus_g_proxy_connect_signal): ditto
5052
5053 2005-02-04  Havoc Pennington  <hp@redhat.com>
5054
5055         * glib/dbus-gproxy.c (dbus_g_proxy_emit_remote_signal): fix a
5056         bogus warning
5057         (tristring_from_message): assert cleanly on null path/interface
5058         (should not be possible though I decided later)
5059         (dbus_g_proxy_dispose): move proxy manager unregistration here
5060         (DBUS_G_PROXY_DESTROYED): add this macro, and use it in a bunch of
5061         g_return_if_fail() checks
5062
5063 2005-02-04  Havoc Pennington  <hp@redhat.com>
5064
5065         * doc/Makefile.am (EXTRA_DIST): add DTDs to makefile
5066
5067         * doc/introspect.dtd: add introspect.dtd from David A. Wheeler
5068         (with some minor changes)
5069
5070         * doc/dbus-specification.xml: add deprecated attribute to
5071         introspection format
5072
5073 2005-01-31  Havoc Pennington  <hp@redhat.com>
5074
5075         * glib/dbus-gproxy.c: rewrite how signals work again, this time I
5076         think it's sort of right
5077
5078 2005-01-30  Havoc Pennington  <hp@redhat.com>
5079
5080         * tools/dbus-viewer.c: kind of half-ass hook up the option menu.
5081
5082 2005-01-30  Havoc Pennington  <hp@redhat.com>
5083
5084         * tools/dbus-names-model.c: dynamically watch NameOwnerChanged
5085
5086         * autogen.sh: change to autotools 1.9
5087
5088         * glib/dbus-gproxy.c: completely change how signals work
5089         (dbus_g_proxy_add_signal): new function to specify signature of a
5090         signal
5091         (dbus_g_proxy_emit_received): marshal the dbus message to GValues,
5092         and g_warning if the incoming message has the wrong signature.
5093
5094 2005-01-30  Havoc Pennington  <hp@redhat.com>
5095
5096         * tools/dbus-names-model.c (have_names_notify): fix this
5097
5098         * dbus/dbus-message.c (_dbus_message_iter_get_args_valist): clean
5099         up the string array handling a bit 
5100
5101 2005-01-30  Havoc Pennington  <hp@redhat.com>
5102
5103         * glib/dbus-glib.c (dbus_g_pending_call_set_notify): new function
5104         (dbus_g_pending_call_cancel): new function
5105
5106         * dbus/dbus-glib.h: move GType decls for connection/message here;
5107         * dbus/dbus-glib.c: move all the g_type and ref/unref stuff in
5108         here, just kind of rationalizing how we handle all that
5109
5110         * tools/dbus-names-model.c: new file for a tree model listing the
5111         services on a bus
5112
5113         * tools/dbus-tree-view.c (model_new): use proper typing on the
5114         model rows
5115
5116 2005-01-30  Havoc Pennington  <hp@redhat.com>
5117
5118         * glib/dbus-gmain.c: add a custom GSource back that just checks
5119         whether the message queue has anything in it; otherwise, there are 
5120         cases where we won't see messages in the queue since there was no 
5121         IO visible to the glib main loop
5122
5123         * dbus/dbus-connection-internal.h (_DBUS_DEFAULT_TIMEOUT_VALUE):
5124         increase default message timeout to 25 seconds
5125
5126 2005-01-30  Havoc Pennington  <hp@redhat.com>
5127
5128         * test/glib/test-profile.c (no_bus_stop_server): remove the
5129         warning about the g_warning that I just fixed
5130
5131         * glib/dbus-gmain.c: rewrite the main loop stuff to avoid the
5132         custom source, seems to be a lot easier to understand and work
5133         better.
5134
5135 2005-01-30  Havoc Pennington  <hp@redhat.com>
5136
5137         I think this main loop thing is conceptually broken, but here are 
5138         some band aids. I'll maybe rewrite it in a minute.
5139         
5140         * glib/dbus-gmain.c (add_timeout): timeout stuff doesn't use the
5141         custom GSource, so don't pass it in; confusing
5142         (gsource_server_finalize, gsource_connection_finalize): add
5143         finalize handlers that remove all the watches.  
5144
5145 2005-01-30  Havoc Pennington  <hp@redhat.com>
5146
5147         * glib/dbus-gobject.c (introspect_properties): fix the XML
5148         generated
5149
5150         * dbus/dbus-message.c (dbus_message_unref): add an in_cache flag
5151         which effectively detects the use of freed messages
5152
5153         * glib/dbus-gobject.c (handle_introspect): modify and return the
5154         reply message instead of the incoming message
5155
5156         * dbus/dbus-object-tree.c (handle_default_introspect_unlocked):
5157         gee, maybe it should SEND THE XML instead of just making a string
5158         and freeing it again ;-)
5159
5160         * tools/dbus-print-message.c (print_message): improve printing of
5161         messages
5162
5163         * configure.in: add debug-glib.service to the output
5164
5165 2005-01-30  Havoc Pennington  <hp@redhat.com>
5166
5167         dbus-viewer introspected and displayed the bus driver
5168         
5169         * dbus/dbus-object-tree.c 
5170         (object_tree_test_iteration): add tests for a handler registered on "/"
5171
5172         * dbus/dbus-object-tree.c
5173         (_dbus_decompose_path): fix to handle path "/" properly
5174         (run_decompose_tests): add tests for path decomposition
5175         
5176         * glib/dbus-gutils.c (_dbus_gutils_split_path): fix to handle "/"
5177         properly
5178
5179         * glib/dbus-gobject.c (handle_introspect): fix quotes
5180
5181         * test/glib/run-test.sh: support launching the bus, then running
5182         dbus-viewer
5183
5184         * test/glib/test-service-glib.c (main): put in a trivial gobject
5185         subclass and register it on the connection
5186
5187         * bus/driver.c (bus_driver_handle_introspect): implement
5188         introspection of the bus driver service
5189
5190         * dbus/dbus-protocol.h: add #defines for the XML namespace,
5191         identifiers, doctype decl
5192
5193         * bus/driver.c (bus_driver_handle_get_service_owner): handle
5194         attempts to get owner of DBUS_SERVICE_ORG_FREEDESKTOP_DBUS by 
5195         returning the service unchanged.
5196         (bus_driver_handle_message): remove old check for reply_serial in
5197         method calls, now the message type deals with that
5198         (bus_driver_handle_message): handle NULL interface
5199
5200         * glib/dbus-gproxy.c (dbus_g_proxy_get_bus_name): new function
5201
5202         * glib/dbus-gloader-expat.c (description_load_from_string): allow
5203         -1 for len
5204
5205         * tools/dbus-viewer.c: add support for introspecting a service on
5206         a bus
5207
5208         * glib/dbus-gproxy.c (dbus_g_pending_call_ref): add
5209         (dbus_g_pending_call_unref): add
5210
5211 2005-01-29  Havoc Pennington  <hp@redhat.com>
5212
5213         * tools/dbus-tree-view.c: add support for displaying properties.
5214         (run dbus-viewer with an introspect xml file as arg, then resize
5215         the window so the tree elements show up, not sure what that is)
5216
5217         * glib/dbus-gobject.c (handle_introspect): return
5218         org.freedesktop.Properties and org.freedesktop.Introspectable
5219         interfaces when we are introspected.
5220
5221         * doc/dbus-specification.xml: allow empty interface name when 
5222         Get/Set a property
5223
5224 2005-01-29  Havoc Pennington  <hp@redhat.com>
5225
5226         * glib/Makefile.am: rename dbus-glib-tool to dbus-binding-tool;
5227         though it uses glib, it could be extended for any binding in
5228         principle
5229
5230         * glib/dbus-gobject.c (gobject_message_function): change to the
5231         new way properties work
5232
5233         * dbus/dbus-protocol.h: add the new interfaces
5234
5235         * doc/dbus-specification.xml: document the introspection format,
5236         Introspectable interface, and add an org.freedesktop.Properties
5237         interface.
5238
5239         * glib/dbus-gparser.c: add support for a <property> element
5240
5241         * glib/dbus-gidl.c: add PropertyInfo
5242
5243         * glib/dbus-gobject.c (handle_introspect): put the outermost
5244         <node> outside the signal and property descriptions.
5245         (introspect_properties): export properties as <property> rather
5246         than as method calls
5247
5248 2005-01-28  Havoc Pennington  <hp@redhat.com>
5249
5250         * doc/TODO, doc/dbus-specification.xml: spec and TODO tweaks
5251         related to authentication protocol
5252
5253 2005-01-28  John (J5) Palmieri  <johnp@redhat.com>
5254
5255         * python/dbus_bindings.pyx.in: Updated to handle new D-BUS type system
5256                 - BUS_ACTIVATION -> BUS_STARTER
5257                 - DBUS_BUS_ACTIVATION -> DBUS_BUS_STARTER
5258                 - class MessageIter (__init__): Added recursion checking 
5259                 so we throw a nice error instead of just disconnecting from the
5260                 bus.
5261                 (get): Added arg_type parameter for recursion.
5262                 Removed the nil type
5263                 Added signiture type placeholder (not implemented)
5264                 Added struct type placeholder (not implemented)
5265                 Added varient type placeholder (not implemented)
5266                 Commented out dict type for now     
5267                 (get_element_type): renamed from get_array_type
5268                 (get_*): changed to use the dbus_message_iter_get_basic API
5269                 (get_*_array): removed in favor of recursive get_array method
5270                 (get_array): new recursive method which calls get to marshal
5271                 the elements of the array
5272                 (value_to_dbus_sig): New method returns the corrasponding
5273                 dbus signiture to a python value
5274                 (append): Comment out dict handling for now
5275                 Handle lists with the new recursive API
5276                 Comment out None handling for now
5277                 (append_nil): removed
5278                 (append_*): changed to use dbus_message_iter_append_basic API
5279                 (append_*_array): removed in favor of recursive append_array 
5280                 method
5281                 (__str__): Make it easier to print out recursive iterators
5282                 for debugging
5283                 - class Message (__str__): moved type inspection to the
5284                 MessageIter class' __str__ method
5285                 (get_iter): Added an append parameter wich defaults to False
5286                 If True use the new API's to create an append iterator
5287
5288         * python/dbus.py: Update to use new bindings API
5289                 - TYPE_ACTIVATION -> TYPE_STARTER
5290                 - class Bus (_get_match_rule): GetServiceOwner -> GetNameOwner
5291                 - class ActivationBus -> class StarterBus
5292                 - class RemoteObject (__call__): get an append iterator
5293                 - (_dispatch_dbus_method_call): get an append iterator
5294                 - class Object (emit_signal): get an append iterator
5295
5296         * python/examples/: Fixed up the examples to work with the new API
5297                 
5298 2005-01-28  Joe Shaw  <joeshaw@novell.com>
5299
5300         * configure.in: Bump version up to 0.30.
5301
5302         * HACKING: Add a release item to bump the version number up after 
5303         a release.
5304
5305 2005-01-28  Havoc Pennington  <hp@redhat.com>
5306
5307         * doc/dbus-specification.xml: update to describe 16-bit types and
5308         dict entries
5309
5310         * dbus/dbus-marshal-basic.c (_dbus_unpack_uint16): fix broken
5311         assertion
5312
5313         * dbus/dbus-protocol.h (DBUS_TYPE_DICT_ENTRY): add DICT_ENTRY as a
5314         type
5315
5316         * dbus/dbus-marshal-recursive.c: implement
5317
5318 2005-01-27  Havoc Pennington  <hp@redhat.com>
5319
5320         * dbus/dbus-arch-deps.h.in: add 16/32-bit types
5321
5322         * configure.in: find the right type for 16 and 32 bit ints as well
5323         as 64
5324
5325         * dbus/dbus-protocol.h (DBUS_TYPE_INT16, DBUS_TYPE_UINT16): add
5326         the 16-bit types so people don't have to stuff them in 32-bit or
5327         byte arrays.
5328
5329 2005-01-27  Havoc Pennington  <hp@redhat.com>
5330
5331         * dbus/dbus-message.c: byteswap the message if you init an
5332         iterator to read/write from it
5333         
5334         * dbus/dbus-marshal-byteswap.c: new file implementing 
5335         _dbus_marshal_byteswap()
5336
5337         * dbus/dbus-marshal-basic.c: add _dbus_swap_array()
5338
5339 2005-01-26  Havoc Pennington  <hp@redhat.com>
5340         
5341         * dbus/dbus-marshal-validate-util.c: break this out (and fix
5342         build, apparently - nobody noticed?)
5343         
5344 2005-01-26  Havoc Pennington  <hp@redhat.com>
5345
5346         * dbus/dbus-marshal-recursive.h: remove todo comment
5347
5348 2005-01-25  Joe Shaw  <joeshaw@novell.com>
5349
5350         * Land the mono binding changes to conform to the new APIs.
5351
5352         * mono/Makefile.am: Remove Custom.cs, DBusType/Custom.cs,
5353         DBusType/Dict.cs, and DBusType/Nil.cs from the build.
5354
5355         * mono/Arguments.cs (GetCodeAsString): Added.  Returns the dbus
5356         type code as a string.
5357         (InitAppending): Rename dbus_message_append_iter_init() to
5358         dbus_message_iter_init_append().
5359
5360         * mono/BusDriver.cs: Rename ServiceEventHandler to
5361         NameOwnerChangedHandler.  Rename GetServiceOwner to GetOwner.
5362         Rename ServiceOwnerChanged to NameOwnerChanged.
5363
5364         * mono/Connection.cs: Rename BaseService to UniqueName, and the
5365         underlying C call.
5366
5367         * mono/Custom.cs: Removed.  The CUSTOM type has been removed.
5368
5369         * mono/Service.cs: Rename Exists to HasOwner, internally rename
5370         dbus_bus_acquire_service() to dbus_bus_request_name().
5371
5372         * mono/DBusType/Array.cs (ctor): Use Type.GetElementType() instead
5373         of Type.UnderlyingSystemType to get the correct element type for
5374         the array.
5375         (ctor): Update code for new APIs: use dbus_message_iter_recurse(),
5376         dbus_message_get_{element|arg}_type() instead of
5377         dbus_message_iter_init_array_iterator().
5378         (Append): Replace dbus_message_iter_append_array() with
5379         dbus_message_iter_open_container() and
5380         dbus_message_iter_close_container().
5381
5382         * mono/DBusType/Custom.cs, mono/DBusType/Nil.cs: Removed.  These
5383         types have been removed.
5384         
5385         * mono/DBusType/*.cs: Replace calls of
5386         dbus_message_iter_get_[type]() to dbus_message_iter_get_basic(),
5387         but specify the type in the DllImport extern declaration.  Ditto
5388         for dbus_message_iter_append_[type]() ->
5389         dbus_message_iter_append_basic().
5390
5391         * mono/example/BusListener.cs: Update for ServiceEventHandler ->
5392         NameOwnerChangedHandler.
5393
5394 2005-01-25  John (J5) Palmieri  <johnp@redhat.com>
5395
5396         * python/dbus_bindings.pyx.in: Rename of methods and bindings
5397                 - get_base_service -> get_unique_name
5398                 - bus_get_base_service -> bus_get_unique_name
5399                 - dbus_bus_get_base_service -> dbus_bus_get_unique_name
5400                 - ACTIVATION_REPLY_ACTIVATED -> DBUS_START_REPLY_SUCCESS 
5401                 - ACTIVATION_REPLY_ALREADY_ACTIVE -> DBUS_START_REPLY_ALREADY_RUNNING
5402                 - bus_activate_service -> bus_start_service_by_name
5403                 - dbus_bus_activate_service -> dbus_bus_start_service_by_name
5404                 - bus_acquire_service -> bus_request_name
5405                 - dbus_bus_acquire_service -> dbus_bus_request_name
5406                 - bus_service_exists -> bus_name_has_owner
5407                 - dbus_bus_service_exists -> dbus_bus_name_has_owner
5408
5409         * python/dbus.py: Rename of methods
5410                 - activate_service -> start_service_by_name
5411                 - bus_acquire_service -> bus_request_name
5412                 - ACTIVATION_REPLY_ACTIVATED -> START_REPLY_SUCCESS 
5413                 - ACTIVATION_REPLY_ALREADY_ACTIVE -> START_REPLY_ALREADY_RUNNING
5414
5415         
5416 2005-01-24  Joe Shaw  <joeshaw@novell.com>
5417
5418         * dbus/dbus-connection.c (dbus_connection_dispatch): Print out the
5419         signature for the method that can't be found.
5420
5421         * dbus/dbus-message.c (dbus_message_iter_init): To check to see if
5422         the message has any arguments, we need to call
5423         _dbus_type_reader_get_current_type(), not
5424         _dbus_type_reader_has_next().
5425
5426 2005-01-24  Havoc Pennington  <hp@redhat.com>
5427
5428         * dbus/dbus-message-factory.c: more testing of message validation
5429
5430         * dbus/dbus-protocol.h (DBUS_MINIMUM_HEADER_SIZE): move to this
5431         header
5432
5433 2005-01-23  Havoc Pennington  <hp@redhat.com>
5434
5435         * dbus/dbus-message-factory.c, dbus/dbus-message-util.c: 
5436         get this all working, not many tests in the framework yet though
5437
5438 2005-01-22  Havoc Pennington  <hp@redhat.com>
5439
5440         * doc/dbus-faq.xml, doc/dbus-tutorial: add a FAQ and update
5441         tutorial, based on work from David Wheeler.
5442
5443 2005-01-21  Havoc Pennington  <hp@redhat.com>
5444
5445         * dbus/dbus-bus.c: add more return_if_fail checks
5446
5447         * dbus/dbus-message.c (load_message): have the "no validation"
5448         mode (have to edit the code to toggle the mode for now though)
5449
5450         * dbus/dbus-marshal-header.c (_dbus_header_load): have a mode that
5451         skips all validation; I want to use this at least for benchmark
5452         baseline, I'm not sure if it should be a publicly-available switch.
5453
5454 2005-01-21  Havoc Pennington  <hp@redhat.com>
5455
5456         * glib/dbus-gmain.c: don't put the GLib bindings in the same
5457         toplevel doxygen group as the low-level API stuff
5458
5459         * dbus/dbus.h: note that libdbus is the low-level API
5460
5461 2005-01-20  Havoc Pennington  <hp@redhat.com>
5462
5463         * update-dbus-docs.sh: script to update docs on the web site, only
5464         works for me though. neener.
5465
5466 2005-01-20  Havoc Pennington  <hp@redhat.com>
5467
5468         * dbus/dbus-sysdeps.c (_dbus_poll): amazingly, trying to compile
5469         code can reveal bugs in it
5470
5471 2005-01-20  Havoc Pennington  <hp@redhat.com>
5472
5473         * dbus/dbus-sysdeps.c (_dbus_poll): fix several bugs in the
5474         select() version, patches from Tor Lillqvist
5475
5476 2005-01-20  Havoc Pennington  <hp@redhat.com>
5477
5478         * doc/dbus-tutorial.xml: replace > with &gt;
5479
5480         * bus/services.c (bus_registry_acquire_service): validate the name
5481         and return a better error if it's no good.
5482
5483         * doc/dbus-specification.xml: note NO_AUTO_START change
5484
5485         * dbus/dbus-protocol.h (DBUS_HEADER_FLAG_NO_AUTO_START): change
5486         from AUTO_START, we're toggling the default
5487
5488         * bus/dispatch.c: adapt the tests to change of auto-start default
5489
5490 2005-01-18  Havoc Pennington  <hp@redhat.com>
5491
5492         * rename dbus-daemon-1 to dbus-daemon throughout
5493
5494 2005-01-18  Havoc Pennington  <hp@redhat.com>
5495
5496         * Throughout, grand renaming to strip out the use of "service",
5497         just say "name" instead (or "bus name" when ambiguous).  Did not
5498         change the internal code of the message bus itself, only the
5499         programmer-facing API and messages.
5500         
5501         * doc/dbus-specification.xml: further update the message bus section
5502         
5503         * bus/config-parser.c (all_are_equiv): fix bug using freed string
5504         in error case
5505
5506 2005-01-17  Havoc Pennington  <hp@redhat.com>
5507
5508         * dbus/dbus-types.h: remove 16-bit types since we don't use them
5509         ever
5510
5511         * dbus/dbus-marshal-validate.c (_dbus_validate_path): disallow any
5512         "invalid name character" not only non-ASCII
5513
5514         * doc/dbus-specification.xml: further update spec, message bus 
5515         parts are still out-of-date but the marshaling etc. stuff is now
5516         accurate-ish
5517
5518 2005-01-17  Havoc Pennington  <hp@redhat.com>
5519
5520         * doc/dbus-specification.xml: partially update spec
5521
5522 2005-01-17  Havoc Pennington  <hp@redhat.com>
5523
5524         * Throughout, align variant bodies according to the contained
5525         type, rather than always to 8. Should save a fair bit of space in
5526         message headers.
5527         
5528         * dbus/dbus-marshal-validate.c (_dbus_validate_body_with_reason):
5529         fix handling of case where p == end
5530
5531         * doc/TODO: remove the dbus_bool_t item and variant alignment items
5532
5533 2005-01-17  Havoc Pennington  <hp@redhat.com>
5534
5535         * dbus/dbus-types.h: hardcode dbus_bool_t to 32 bits
5536
5537         * Throughout: modify DBUS_TYPE_BOOLEAN to be a 32-bit type instead
5538         of an 8-bit type. Now dbus_bool_t is the type to use whenever you 
5539         are marshaling/unmarshaling a boolean.
5540
5541 2005-01-16  Havoc Pennington  <hp@redhat.com>
5542
5543         This is about it on what can be disabled/deleted from libdbus
5544         easily, back below 150K anyhow. Deeper cuts are more work than 
5545         just turning the code off as I've done here.
5546         
5547         * dbus/dbus-marshal-basic.c (_dbus_pack_int32): we don't need the
5548         signed int convenience funcs
5549
5550         * dbus/dbus-internals.c (_dbus_verbose_real): omit when not in
5551         verbose mode
5552
5553         * dbus/dbus-string-util.c, dbus/dbus-string.c: more breaking
5554         things out of libdbus
5555
5556         * dbus/dbus-sysdeps.c, dbus/dbus-sysdeps-util.c: same
5557         
5558         * dbus/dbus-hash.c: purge the TWO_STRINGS crap (well, make it
5559         tests-enabled-only, though it should probably be deleted)
5560
5561         * dbus/dbus-message-util.c: same stuff
5562
5563         * dbus/dbus-auth-util.c: same stuff
5564
5565 2005-01-16  Havoc Pennington  <hp@redhat.com>
5566
5567         * dbus/dbus-userdb-util.c: split out part of dbus-userdb.c
5568
5569         * dbus/dbus-sysdeps.c (_dbus_uid_from_string): move here to pave
5570         way for stripping down dbus-userdb.c stuff included in libdbus.
5571         Rename _dbus_parse_uid for consistency.
5572
5573 2005-01-16  Havoc Pennington  <hp@redhat.com>
5574
5575         * dbus/dbus-internals.c (_dbus_real_assert): print the function
5576         name the assertion failed in
5577
5578         * dbus/dbus-internals.h (_dbus_return_if_fail) 
5579         (_dbus_return_val_if_fail): assert that the name of the function
5580         containing the check doesn't start with '_', since we only want to 
5581         use checks on public functions
5582         
5583         * dbus/dbus-connection.c (_dbus_connection_ref_unlocked): change
5584         checks to assertions
5585
5586         * dbus/dbus-marshal-header.c (_dbus_header_set_field_basic):
5587         change checks to asserts for private function
5588
5589         * dbus/dbus-message.c (_dbus_message_set_serial): checks
5590         to asserts for private function
5591
5592         * dbus/dbus-marshal-recursive.c (skip_one_complete_type): remove
5593         broken assertion that was breaking make check
5594         (_dbus_type_reader_array_is_empty): remove this rather than fix
5595         it, was only used in assertions
5596
5597 2005-01-16  Havoc Pennington  <hp@redhat.com>
5598
5599         * test/unused-code-gc.py: hacky script to find code that's used
5600         only by the bus (not libdbus) or used only by tests or not used at
5601         all. It has some false alarms, but looks like we can clean up a
5602         lot of size from libdbus.
5603
5604         * dbus/dbus-sysdeps.c, dbus/dbus-sysdeps-utils.c,
5605         dbus/Makefile.am: initially move 10K of binary size out of libdbus
5606         
5607 2005-01-16  Havoc Pennington  <hp@redhat.com>
5608
5609         * Add and fix docs according to Doxygen warnings throughout
5610         source.
5611         
5612         * dbus/dbus-marshal-recursive.c
5613         (_dbus_type_reader_array_is_empty): change this to just call
5614         array_reader_get_array_len() and make it static
5615
5616         * dbus/dbus-message.c (dbus_message_iter_get_element_type): rename
5617         from get_array_type
5618         (dbus_message_iter_init_append): rename from append_iter_init
5619
5620         * dbus/dbus-marshal-recursive.c
5621         (_dbus_type_reader_get_element_type): rename from
5622         _dbus_type_reader_get_array_type
5623
5624 2005-01-15  Havoc Pennington  <hp@redhat.com>
5625
5626         * test/glib/test-profile.c (with_bus_server_filter): fix crash
5627
5628         * dbus/dbus-marshal-basic.c (_dbus_unpack_uint32): inline as macro
5629         when DBUS_DISABLE_ASSERT
5630         (_dbus_marshal_set_basic): be sure we align for the string length
5631
5632         * dbus/dbus-marshal-recursive.c (skip_one_complete_type): make
5633         this look faster
5634
5635         * dbus/dbus-string.c (_dbus_string_get_const_data_len): add an
5636         inline macro version
5637         (_dbus_string_set_byte): provide inline macro version
5638
5639 2005-01-15  Havoc Pennington  <hp@redhat.com>
5640
5641         * Land the new message args API and type system.
5642
5643         This patch is huge, but the public API change is not 
5644         really large. The set of D-BUS types has changed somewhat, 
5645         and the arg "getters" are more geared toward language bindings;
5646         they don't make a copy, etc.
5647
5648         There are also some known issues. See these emails for details
5649         on this huge patch:
5650         http://lists.freedesktop.org/archives/dbus/2004-December/001836.html
5651         http://lists.freedesktop.org/archives/dbus/2005-January/001922.html
5652         
5653         * dbus/dbus-marshal-*: all the new stuff
5654
5655         * dbus/dbus-message.c: basically rewritten
5656
5657         * dbus/dbus-memory.c (check_guards): with "guards" enabled, init
5658         freed blocks to be all non-nul bytes so using freed memory is less
5659         likely to work right
5660
5661         * dbus/dbus-internals.c (_dbus_test_oom_handling): add
5662         DBUS_FAIL_MALLOC=N environment variable, so you can do
5663         DBUS_FAIL_MALLOC=0 to skip the out-of-memory checking, or
5664         DBUS_FAIL_MALLOC=10 to make it really, really, really slow and
5665         thorough.
5666
5667         * qt/message.cpp: port to the new message args API
5668         (operator<<): use str.utf8() rather than str.unicode()
5669         (pretty sure this is right from the Qt docs?)
5670
5671         * glib/dbus-gvalue.c: port to the new message args API
5672
5673         * bus/dispatch.c, bus/driver.c: port to the new message args API
5674
5675         * dbus/dbus-string.c (_dbus_string_init_const_len): initialize the
5676         "locked" flag to TRUE and align_offset to 0; I guess we never
5677         looked at these anyhow, but seems cleaner.
5678
5679         * dbus/dbus-string.h (_DBUS_STRING_ALLOCATION_PADDING):
5680         move allocation padding macro to this header; use it to implement
5681         (_DBUS_STRING_STATIC): ability to declare a static string.
5682
5683         * dbus/dbus-message.c (_dbus_message_has_type_interface_member):
5684         change to return TRUE if the interface is not set.
5685
5686         * dbus/dbus-string.[hc]: move the D-BUS specific validation stuff
5687         to dbus-marshal-validate.[hc]
5688
5689         * dbus/dbus-marshal-basic.c (_dbus_type_to_string): move here from
5690         dbus-internals.c
5691
5692         * dbus/Makefile.am: cut over from dbus-marshal.[hc]
5693         to dbus-marshal-*.[hc]
5694
5695         * dbus/dbus-object-tree.c (_dbus_decompose_path): move this
5696         function here from dbus-marshal.c
5697
5698 2005-01-12  Joe Shaw  <joeshaw@novell.com>
5699
5700         * NEWS: Update for 0.23.
5701
5702         * configure.in: Release 0.23.
5703
5704 2005-01-12  Joe Shaw  <joeshaw@novell.com>
5705
5706         * mono/Makefile.am, mono/example/Makefile.am: Always build the 
5707         dbus DLL with --debug.  Clean up after the .mdb files this leaves
5708         behind.
5709
5710         * mono/doc/Makefile.am: Need to uninstall the docs on "make
5711         uninstall"
5712
5713         * mono/Arguments.cs (GetDBusTypeConstructor): If the type
5714         is an enum, get the enum's underlying type.  Another mono
5715         1.1.3 fix.
5716
5717 2005-01-11  Joe Shaw  <joeshaw@novell.com>
5718
5719         Patch from Sjoerd Simons <sjoerd@luon.net>
5720
5721         * mono/Makefile.am, mono/example/Makefile.am: Don't redefine
5722         DESTDIR.  It breaks stuff.
5723
5724 2005-01-11  Joe Shaw  <joeshaw@novell.com>
5725
5726         Patch from Tambet Ingo <tambet@ximian.com>
5727
5728         * mono/DBusType/Array.cs (Get): Get the underlying element type by
5729         calling type.GetElementType().  The code previously depended on
5730         broken Mono behavior, which was fixed in Mono 1.1.3.
5731
5732         * mono/DBusType/Dict.cs (constructor): Fix the parameters for
5733         Activator.CreateInstance() so that the class's constructor is
5734         called with the right parameters.
5735
5736 2005-01-11  Joe Shaw  <joeshaw@novell.com>
5737
5738         Patch from Timo Teräs <ext-timo.teras@nokia.com>
5739
5740         * dbus/dbus-connection.c
5741         (_dbus_connection_queue_received_message_link): Call
5742         _dbus_connection_remove_timeout() instead of the _locked()
5743         variant, since it's always called from
5744         _dbus_connection_handle_watch(), which handles the locking.
5745         Removed the _locked() variant since it's no longer used.
5746
5747 2005-01-03  Havoc Pennington  <hp@redhat.com>
5748
5749         * dbus/dbus-internals.h: I'm an idiot, _dbus_assert certainly can
5750         return
5751         
5752 2004-12-26  Havoc Pennington  <hp@redhat.com>
5753
5754         * dbus/dbus-internals.h: add _DBUS_GNUC_NORETURN to _dbus_assert
5755
5756 2005-01-03  Havoc Pennington  <hp@redhat.com>
5757
5758         * dbus/dbus-sysdeps.c (_dbus_sysdeps_test): fix using == on
5759         floating point
5760
5761         * dbus/dbus-string.c (_dbus_string_insert_alignment): new function
5762
5763 2005-01-02  Havoc Pennington  <hp@redhat.com>
5764
5765         * dbus/dbus-internals.h (_DBUS_ALIGN_OFFSET): new macro
5766
5767 2005-01-01  Havoc Pennington  <hp@redhat.com>
5768
5769         * configure.in: add -Wfloat-equal
5770
5771 2005-01-01  Havoc Pennington  <hp@redhat.com>
5772
5773         * dbus/dbus-sysdeps.h: add _DBUS_DOUBLES_BITWISE_EQUAL macro, 
5774         for a variety of reasons '==' doesn't do this.
5775
5776 2004-12-31  Havoc Pennington  <hp@redhat.com>
5777
5778         * dbus/dbus-string.c (_dbus_string_equal_substrings): new function
5779         I keep wishing I had
5780
5781 2004-12-30  John (J5) Palmieri  <johnp@redhat.com>
5782
5783         * python/dbus.py: s/ACTIVATION_REPLY_ACTIVE/ACTIVATION_REPLY_ACTIVATED
5784
5785 2004-12-30  John (J5) Palmieri  <johnp@redhat.com>
5786
5787         * python/dbus_bindings.pyx.in: Change DBUS_ACTIVATION_REPLY_ACTIVATED
5788         and DBUS_ACTIVATION_REPLY_ALREADY_ACTIVE to match the values in
5789         dbus-protocol.h.  Because they are defines and not enums they are not
5790         autogenerated.
5791
5792 2004-12-26  John (J5) Palmieri  <johnp@redhat.com>
5793
5794         * python/dbus_bindings.pyx.in (bus_activate_service): Bind
5795         dbus_bus_activate_service
5796
5797         * python/dbus.py (Bus.activate_service): activate a service on the
5798         bus.
5799
5800 2004-12-24  Havoc Pennington  <hp@redhat.com>
5801
5802         * test/decode-gcov.c: change to use .gcno and .gcda files, but the
5803         file format has also changed and I haven't adapted to that yet
5804         
5805         * Makefile.am: load .gcno files from latest gcc
5806
5807 2004-12-23  John (J5) Palmieri  <johnp@redhat.com>
5808         * Patch from Rob Taylor <robtaylor@fastmail.fm>
5809
5810         * python/dbus_bindings.pyx.in (bus_get_unix_user): New
5811         lowlevel binding
5812
5813         * python/dbus.py (get_unix_user): Added binding to 
5814         call dbus_bindings.bus_get_unix_user
5815
5816         * python/extract.py: Modified the proto_pat regex to
5817         handle unsigned long
5818
5819 2004-12-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
5820
5821         * dbus/make-dbus-glib-error-enum.sh: omit the function keyword for
5822         better POSIX compliance.
5823
5824 2004-12-19  Havoc Pennington  <hp@redhat.com>
5825
5826         * dbus/dbus-string.c (_dbus_string_insert_4_aligned) 
5827         (_dbus_string_insert_8_aligned): new functions
5828
5829         * dbus/dbus-string.c (_dbus_string_alloc_space): new function
5830
5831 2004-12-18  Havoc Pennington  <hp@redhat.com>
5832
5833         * dbus/dbus-string.c (_dbus_string_validate_ascii): use ISASCII
5834         macro
5835
5836         * dbus/dbus-message.c: fix a comment, and add a still-unused
5837         not-implemented function
5838
5839         * dbus/dbus-marshal.h: fix comment
5840
5841         * dbus/dbus-internals.h (_DBUS_ISASCII): new macro
5842
5843 2004-12-17  Joe Shaw  <joeshaw@novell.com>
5844
5845         * mono/DBusType/Byte.cs, mono/DBusType/Int32.cs,
5846         mono/DBusType/Int64.cs, mono/DBusType/UInt32.cs,
5847         mono/DBusType/UInt64.cs: Use Enum.GetUnderlyingType() instead of
5848         Type.UnderlyingSystemType to get the actual system type
5849         underneath.  This code previously depended on the broken Mono
5850         behavior, which was fixed in 1.1.3.
5851
5852 2004-11-27  Havoc Pennington  <hp@redhat.com>
5853
5854         * dbus/dbus-string.h (_dbus_string_get_byte): inline when asserts
5855         are disabled
5856         (_dbus_string_get_const_data): inline when asserts are disabled
5857
5858         * dbus/dbus-message.c: record the _dbus_current_generation of
5859         creation so we can complain if dbus_shutdown() is used improperly.
5860         Do this only if checks are enabled.
5861
5862         * dbus/dbus-connection.c: ditto
5863         
5864 2004-11-26  Havoc Pennington  <hp@redhat.com>
5865
5866         * test/glib/test-profile.c: add with_bus mode to profile echoes
5867         that go through the bus.
5868
5869         * test/glib/run-test.sh: add ability to run test-profile
5870
5871         * bus/dbus-daemon-1.1.in: fix to say that SIGHUP causes partial
5872         config file reload.
5873
5874 2004-11-26  Havoc Pennington  <hp@redhat.com>
5875
5876         * test/glib/test-profile.c: clean up how the fake_malloc_overhead
5877         thing was implemented
5878
5879 2004-11-26  Havoc Pennington  <hp@redhat.com>
5880
5881         * test/glib/test-profile.c: tweak a bit, add support for some
5882         made-up minimal malloc overhead with plain sockets, since in 
5883         real life some sort of buffers are unavoidable thus we could 
5884         count them in the theoretical best case
5885
5886 2004-11-26  Havoc Pennington  <hp@redhat.com>
5887
5888         * dbus/dbus-message.c (dbus_message_cache_or_finalize): fix bug
5889         where I was trying to cache one too many messages
5890
5891 2004-11-26  Havoc Pennington  <hp@redhat.com>
5892
5893         * dbus/dbus-message.c: reimplement message cache as an array which 
5894         makes the cache about twice as fast and saves maybe 1.5% overall
5895
5896 2004-11-26  Havoc Pennington  <hp@redhat.com>
5897
5898         * dbus/dbus-threads.c (init_global_locks): forgot to put the
5899         message cache lock here
5900
5901 2004-11-26  Havoc Pennington  <hp@redhat.com>
5902
5903         * dbus/dbus-message.c (struct DBusMessage): put the locked bit and
5904         the "char byte_order" next to each other to save 4 bytes
5905         (dbus_message_new_empty_header): reduce preallocation, since the
5906         message cache should achieve a similar effect
5907         (dbus_message_cache_or_finalize, dbus_message_get_cached): add a
5908         message cache that keeps a few DBusMessage around in a pool,
5909         another 8% speedup or so.
5910
5911         * dbus/dbus-dataslot.c (_dbus_data_slot_list_clear): new function
5912
5913 2004-11-25  Havoc Pennington  <hp@redhat.com>
5914
5915         * dbus/dbus-transport-unix.c (unix_do_iteration): if we're going
5916         to write, without reading or blocking, try it before the poll()
5917         and skip the poll() if nothing remains to write. This is about a
5918         3% speedup in the echo client/server
5919
5920 2004-11-25  Havoc Pennington  <hp@redhat.com>
5921
5922         The primary change here is to always write() once before adding
5923         the write watch, which gives us about a 10% performance increase.
5924         
5925         * dbus/dbus-transport-unix.c: a number of modifications to cope
5926         with removing messages_pending
5927         (check_write_watch): properly handle
5928         DBUS_AUTH_STATE_WAITING_FOR_MEMORY; adapt to removal of
5929         messages_pending stuff
5930         (check_read_watch): properly handle WAITING_FOR_MEMORY and
5931         AUTHENTICATED cases
5932         (unix_handle_watch): after writing, see if the write watch can be
5933         removed
5934         (unix_do_iteration): assert that write_watch/read_watch are
5935         non-NULL rather than testing that they aren't, since they 
5936         aren't allowed to be NULL. check_write_watch() at the end so 
5937         we add the watch if we did not finish writing (e.g. got EAGAIN)
5938
5939         * dbus/dbus-transport-protected.h: remove messages_pending call,
5940         since it resulted in too much inefficient watch adding/removing; 
5941         instead we now require that the transport user does an iteration 
5942         after queueing outgoing messages, and after trying the first
5943         write() we add a write watch if we got EAGAIN or exceeded our 
5944         max bytes to write per iteration setting
5945
5946         * dbus/dbus-string.c (_dbus_string_validate_signature): add this
5947         function
5948
5949         * dbus/dbus-server-unix.c (unix_finalize): the socket name was
5950         freed and then accessed, valgrind flagged this bug, fix it
5951
5952         * dbus/dbus-message.c: fix several bugs where HEADER_FIELD_LAST was taken
5953         as the last valid field plus 1, where really it is equal to the
5954         last valid field. Corrects some message corruption issues.
5955
5956         * dbus/dbus-mainloop.c: verbosity changes
5957
5958         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): handle OOM
5959         instead of aborting in one of the test codepaths
5960
5961         * dbus/dbus-internals.c (_dbus_verbose_real): fix a bug that
5962         caused not printing the pid ever again if a verbose was missing
5963         the newline at the end
5964         (_dbus_header_field_to_string): add HEADER_FIELD_SIGNATURE
5965
5966         * dbus/dbus-connection.c: verbosity changes; 
5967         (dbus_connection_has_messages_to_send): new function
5968         (_dbus_connection_message_sent): no longer call transport->messages_pending
5969         (_dbus_connection_send_preallocated_unlocked): do one iteration to
5970         try to write() immediately, so we can avoid the write watch. This
5971         is the core purpose of this patchset
5972         (_dbus_connection_get_dispatch_status_unlocked): if disconnected,
5973         dump the outgoing message queue, so nobody will get confused
5974         trying to send them or thinking stuff is pending to be sent
5975
5976         * bus/test.c: verbosity changes
5977
5978         * bus/driver.c: verbosity/assertion changes
5979
5980         * bus/dispatch.c: a bunch of little tweaks to get it working again
5981         because this patchset changes when/where you need to block.
5982
5983 2004-11-23  Havoc Pennington  <hp@redhat.com>
5984
5985         * test/glib/test-profile.c: modify to accept a plain_sockets
5986         argument in which case it will bench plain sockets instead of
5987         libdbus, for comparison purposes.
5988
5989 2004-11-22  Havoc Pennington  <hp@redhat.com>
5990
5991         * test/glib/test-profile.c (N_CLIENT_THREADS): run multiple
5992         threads for more time, so sysprof can get a grip on it.
5993
5994         * dbus/dbus-string.c (_dbus_string_validate_utf8): remove
5995         pointless variable
5996
5997 2004-11-13  Havoc Pennington  <hp@redhat.com>
5998
5999         * test/glib/test-profile.c: fix this thing up a bit
6000
6001         * dbus/dbus-message.c (dbus_message_new_empty_header): increase
6002         preallocation sizes by a fair bit; not sure if this will be an
6003         overall performance win or not, but it does reduce reallocs.
6004
6005         * dbus/dbus-string.c (set_length, reallocate_for_length): ignore
6006         the test hack that forced constant realloc if asserts are
6007         disabled, so we can profile sanely. Sprinkle in some
6008         _DBUS_UNLIKELY() which are probably pointless, but before I
6009         noticed the real performance problem I put them in.
6010         (_dbus_string_validate_utf8): micro-optimize this thing a little
6011         bit, though callgrind says it didn't help; then special-case
6012         ascii, which did help a lot; then be sure we detect nul bytes as
6013         invalid, which is a bugfix.
6014         (align_length_then_lengthen): add some more _DBUS_UNLIKELY
6015         superstition; use memset to nul the padding instead of a manual
6016         loop.
6017         (_dbus_string_get_length): inline this as a
6018         macro; it showed up in the profile because it's used for loop
6019         tests and so forth
6020
6021 2004-11-10  Colin Walters  <walters@verbum.org>
6022
6023         * dbus/dbus-spawn.c (check_babysit_events): Handle EINTR,
6024         for extra paranoia.
6025
6026 2004-11-09  Colin Walters  <walters@verbum.org>
6027
6028         * dbus/dbus-string.c (_dbus_string_get_length): New
6029         function, writes DBusString to C buffer.
6030
6031         * dbus/dbus-string.h: Prototype it.
6032
6033         * dbus/dbus-message.c (dbus_message_type_to_string): New
6034         function, converts message type into C string.
6035
6036         * dbus/dbus-message.h: Prototype it.
6037
6038         * bus/selinux.c (bus_selinux_check): Take source pid,
6039         target pid, and audit data.  Pass audit data to
6040         avc_has_perm.
6041         (log_audit_callback): New function, appends extra
6042         audit information.
6043         (bus_selinux_allows_acquire_service): Also take
6044         service name, add it to audit data.
6045         (bus_selinux_allows_send): Also take message
6046         type, interface, method member, error name,
6047         and destination, and add them to audit data.
6048         (log_cb): Initialize func_audit.
6049         
6050         * bus/selinux.h (bus_selinux_allows_acquire_service)
6051         (bus_selinux_allows_send): Update prototypes 
6052
6053         * bus/services.c (bus_registry_acquire_service): Pass
6054         service name to bus_selinux_allows_acquire_service.
6055
6056         * bus/bus.c (bus_context_check_security_policy): Pass
6057         additional audit data.  Move assignment of dest
6058         to its own line.
6059
6060 2004-11-07  Colin Walters  <walters@verbum.org>
6061
6062         * dbus/dbus-transport-unix.c (do_authentication): Always
6063         initialize auth_completed.
6064         
6065 2004-11-07  Colin Walters  <walters@verbum.org>
6066
6067         * bus/bus.c (load_config): Break into three
6068         separate functions: process_config_first_time_only,
6069         process_config_every_time, and process_config_postinit.
6070         (process_config_every_time): Move call of
6071         bus_registry_set_service_context_table into
6072         process_config_postinit.
6073         (process_config_postinit): New function, does
6074         any processing that needs to happen late
6075         in initialization (and also on reload).
6076         (bus_context_new): Instead of calling load_config,
6077         open config parser here and call process_config_first_time_only
6078         and process_config_every_time directly.  Later, after
6079         we have forked but before changing UID,
6080         invoke bus_selinux_full_init, and then call
6081         process_config_postinit.
6082         (bus_context_reload_config): As in bus_context_new,
6083         load parse file inside here, and call process_config_every_time
6084         and process_config_postinit.
6085
6086         * bus/services.h, bus/services.c
6087         (bus_registry_set_service_context_table): Rename
6088         from bus_registry_set_sid_table.  Take string hash from config
6089         parser, and convert them here into SIDs.
6090
6091         * bus/config-parser.c (struct BusConfigParser): Have
6092         config parser only store a mapping of service->context
6093         string.
6094         (merge_service_context_hash): New function.
6095         (merge_included): Merge context string hashes instead
6096         of using bus_selinux_id_table_union.
6097         (bus_config_parser_new): Don't use bus_selinux_id_table_new;
6098         simply create a new string hash.
6099         (bus_config_parser_unref): Unref it.
6100         (start_selinux_child): Simply insert strings into hash,
6101         don't call bus_selinux_id_table_copy_over.
6102
6103         * bus/selinux.h, bus/selinux.c (bus_selinux_id_table_union)
6104         (bus_selinux_id_table_copy_over): Delete.
6105
6106 2004-11-03  Colin Walters  <walters@verbum.org>
6107
6108         * bus/selinux.c (bus_selinux_pre_init): Kill some unused
6109         variables.
6110         
6111 2004-11-03  Colin Walters  <walters@verbum.org>
6112
6113         * bus/test-main.c (test_pre_hook): Fix test logic,
6114         thanks Joerg Barfurth <Joerg.Barfurth@Sun.COM>.
6115
6116 2004-11-02  Colin Walters  <walters@redhat.com>
6117
6118         * bus/selinux.c (bus_selinux_init): Split into two functions,
6119         bus_selinux_pre_init and bus_selinux_post_init.
6120         (bus_selinux_pre_init): Just determine whether SELinux is
6121         enabled.
6122         (bus_selinux_post_init): Do everything else.
6123
6124         * bus/main.c (main): Call bus_selinux_pre_init before parsing
6125         config file, and bus_selinux_post_init after.  This ensures that
6126         we don't lose the policyreload notification thread that
6127         bus_selinux_init created before forking previously.
6128         
6129         * bus/test-main.c (test_pre_hook): Update for split.
6130
6131 2004-10-31  Owen Fraser-Green  <owen@discobabe.net>
6132
6133         Patch from Johan Fischer <linux@fischaz.com>
6134         
6135         * mono/doc/Makefile.am (install-data-local): Added directory
6136         install for DESTDIR
6137
6138 2004-10-29  Colin Walters  <walters@redhat.com>
6139
6140         * dbus/dbus-sysdeps.h (_dbus_become_daemon): Also take
6141         parameter for fd to write pid to.       
6142
6143         * dbus/dbus-sysdeps.c (_dbus_become_daemon): Implement it.
6144         
6145         * bus/bus.c (bus_context_new): Pass print_pid_fd
6146         to _dbus_become_daemon (bug #1720)
6147
6148 2004-10-29  Colin Walters  <walters@redhat.com>
6149
6150         Patch from Ed Catmur <ed@catmur.co.uk>
6151
6152         * mono/doc/Makefile.am (install-data-local): Handle
6153         DESTDIR.
6154
6155 2004-10-29  Colin Walters  <walters@redhat.com>
6156
6157         * bus/.cvsignore, qt/.cvsignore: Update.
6158
6159 2004-10-29  Colin Walters  <walters@redhat.com>
6160
6161         Patch from Kristof Vansant <de_lupus@pandora.be>
6162
6163         * configure.in: Detect Slackware.
6164         * bus/Makefile.am (SCRIPT_IN_FILES): Add rc.messagebus.in.
6165         * bus/rc.messagebus.in: New file.
6166
6167 2004-10-29  Colin Walters  <walters@redhat.com>
6168
6169         * tools/dbus-monitor.c (filter_func): Return
6170         DBUS_HANDLER_RESULT_HANDLED in filter function
6171         for now.  See:
6172         http://freedesktop.org/pipermail/dbus/2004-August/001433.html
6173
6174 2004-10-29  Colin Walters  <walters@redhat.com>
6175
6176         Patch from Matthew Rickard <mjricka@epoch.ncsc.mil>
6177
6178         * bus/services.c (bus_registry_acquire_service): 
6179         Correctly retrieve service name from DBusString
6180         for printing.
6181
6182 2004-10-29  Colin Walters  <walters@redhat.com>
6183
6184         * dbus/dbus-glib.h: Update documentation to not
6185         refer to internal APIs.
6186
6187 2004-10-27  Joe Shaw  <joeshaw@novell.com>
6188
6189         * mono/Arguments.cs (GetDBusTypeConstructor):
6190         type.UnderlyingSystemType will return "System.Byte" if you do it
6191         on "byte[]", which is not what we want.  So check the type.IsArray
6192         property and use System.Array instead.
6193
6194 2004-10-25  John (J5) Palmieri  <johnp@redhat.com>
6195
6196         * dbus/dbus-sysdeps.c (fill_user_info): On errors do not free
6197         the DBusUserInfo structure since this is passed into the function.
6198         This would cause a double free when the function that allocated
6199         the structure would try to free it when an error occured.
6200
6201         * (bus/session.conf.in, bus/Makefile.am, dbus/configure.in):
6202         use /usr/share/dbus-1/services instead of /usr/lib/dbus-1.0/services
6203         for service activation to avoid 32bit/64bit parallel install issues
6204
6205 2004-10-21  Colin Walters  <walters@verbum.org>
6206
6207         * AUTHORS: Fix my email address, the @gnu.org one
6208         has been bouncing for some time.  Also add J5.
6209         
6210 2004-10-21  Colin Walters  <walters@verbum.org>
6211
6212         * dbus/dbus-transport-unix.c (do_authentication): Return
6213         authentication status to callers.
6214         (unix_handle_watch): If we completed authentication this round,
6215         don't do another read.  Instead wait until the next iteration,
6216         after we've read any pending data in the auth buffer.
6217         (unix_do_iteration): Ditto.
6218         (unix_handle_watch): Updated for new do_authentication prototype.
6219
6220 2004-10-18  Colin Walters  <walters@verbum.org>
6221
6222         * bus/selinux.c (bus_selinux_enabled): Handle
6223         --disable-selinux case.
6224         
6225 2004-10-18  Colin Walters  <walters@verbum.org>
6226
6227         * bus/selinux.h: Add bus_selinux_enabled.
6228         
6229         * bus/selinux.c (bus_selinux_enabled): Implement it.
6230         
6231         * bus/config-parser.c (struct include): Add
6232         if_selinux_enabled member.
6233         (start_busconfig_child): Parse if_selinux_enabled
6234         attribute for include.
6235         (bus_config_parser_content): Handle it.
6236
6237         * bus/session.conf.in, bus/system.conf.in: Add
6238         inclusion of context mapping to default config files;
6239         conditional on SELinux being enabled.
6240         
6241         * doc/busconfig.dtd: Add to if_selinux_enabled to default DTD.
6242         
6243         * test/data/invalid-config-files/badselinux-1.conf, 
6244         test/data/invalid-config-files/badselinux-2.conf:
6245         Test files for bad syntax.
6246         
6247 2004-10-17  Colin Walters  <walters@verbum.org>
6248
6249         * dbus/dbus-memory.c (_dbus_initialize_malloc_debug, check_guards)
6250         (dbus_malloc, dbus_malloc0, dbus_realloc): Fix up printf
6251         format specifier mismatches.
6252
6253 2004-10-07  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6254
6255         * dbus/dbus-sysdeps.c (_dbus_file_get_contents): fix an incorrect
6256         format string.
6257
6258         * glib/dbus-dbus-gmain.c (dbus_g_bus_get): do not mangle NULL
6259         pointer (bug #1540, Leonardo Boiko).
6260
6261 2004-09-28  Jon Trowbridge  <trow@ximian.com>
6262
6263         * mono/BusDriver.cs: Changed BusDriver struct to remove
6264         the ServiceCreated and ServiceDeleted events and replace them
6265         with the new ServiceOwnerChanged event.
6266
6267         * mono/example/BusListener.cs: Added a new example program,
6268         which listens for and reports any ServiceOwnerChanged events
6269         on the bus driver.
6270
6271         * mono/example/Makefile.am (DESTDIR): Build changes for the
6272         new BusListener.cs example.
6273
6274 2004-09-27  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6275
6276         * bus/signals.c (bus_match_rule_parse): validate the components of
6277         match rules (bug #1439).
6278
6279         * dbus/dbus-bus.c (dbus_bus_add_match): add a missing OOM test.
6280
6281 2004-09-24  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6282
6283         * doc/dbus-specification.xml: document ServiceOwnerChanged
6284         signal.
6285         
6286         * bus/driver.c, bus/driver.h, bus/services.c: Use
6287         ServiceOwnerChanged signal instead of ServiceCreated and
6288         ServiceDeleted.
6289         
6290         * bus/dispatch.c: update testcase for the new signal.
6291
6292 2004-09-20  Jon Trowbridge  <trow@ximian.com>
6293
6294         Patch from Nat Friedman <nat@novell.com>
6295
6296         * mono/Makefile.am: A number of small build fixes to allow "make
6297         distcheck" to succeed.
6298
6299         * mono/example/Makefile.am: "make distcheck" fixes.
6300
6301         * mono/AssemblyInfo.cs.in: When signing the assembly, look for the
6302         key in @srcdir@.
6303
6304         * test/Makefile.am: "make distcheck" fixes.
6305
6306 2004-09-17  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6307
6308         * dbus/dbus-sysdeps.c (_dbus_user_at_console): fix memleak in OOM.
6309
6310         * doc/busconfig.dtd: update the DTD for the at_console attribute.
6311
6312         * bus/driver.c (bus_driver_handle_hello): correctly handle Hello
6313         messages after the first one (bug #1389).
6314         
6315         * bus/dispatch.c (check_double_hello_message): add a test case for
6316         the double hello message bug.
6317         (check_existent_service_activation): fix check of spawning error.
6318         
6319 2004-09-16  David Zeuthen  <david@fubar.dk>
6320
6321         * python/dbus_bindings.pyx.in: Add support for int64 and uint64
6322
6323 2004-09-12  David Zeuthen  <david@fubar.dk>
6324
6325         Patch from Kay Sievers <kay.sievers@vrfy.org>
6326
6327         * bus/bus.c (bus_context_new):
6328         * bus/bus.h:
6329         * bus/main.c (usage)
6330         (main):
6331         Add commandline option --nofork to override configuration file
6332         setting.
6333
6334 2004-09-09  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6335
6336         * dbus/dbus-*.h: remove the ; after DBUS_(BEGIN|END)_DECLS. Some C
6337         compilers don't like it (bug #974).
6338
6339 2004-09-04  Harald Fernengel  <harry@kdevelop.org>
6340
6341         * qt/connection.*: Applied patch by Jérôme Lodewyck
6342         <lodewyck@clipper.ens.fr> to integrate an existing
6343         connection into the Qt eventloop
6344
6345 2004-08-30  Jon Trowbridge  <trow@ximian.com>
6346
6347         * mono/BusDriver.cs: Added.  This is a class for interacting with
6348         the org.freedesktop.DBus service.
6349
6350         * mono/Message.cs: Added a mechanism to expose the message that is
6351         currently being dispatched via the static Message.Current
6352         property.  Added Message.Sender and Message.Destination
6353         properties.
6354
6355         * mono/Handler.cs: Expose the dispatched message via
6356         Message.Current when handling method calls.
6357
6358         * mono/Service.cs: Expose the dispatched message via
6359         Message.Current when handling signal emissions.
6360         
6361         * mono/Connection.cs: Bind dbus_bus_get_base_service via the
6362         Connection.BaseService property.
6363
6364 2004-08-28  Havoc Pennington  <hp@redhat.com>
6365
6366         * dbus/dbus-userdb.c (_dbus_is_console_user): remove unused variable
6367
6368         More fixes from Steve Grubb
6369         
6370         * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): fix fd leak
6371         (_dbus_listen_tcp_socket): fix fd leak
6372
6373         * dbus/dbus-spawn.c (read_pid, read_ints): move the "again:" for
6374         EINTR to a bit lower in the code
6375
6376 2004-08-26  Jon Trowbridge  <trow@ximian.com>
6377
6378         * bus/driver.c (bus_driver_handle_service_exists): Respond with
6379         TRUE if we are inquiring about the existence of the built-in
6380         org.freedesktop.DBus service.
6381
6382 2004-08-25  John Palmieri  <johnp@redhat.com>
6383         * bus/config-parser.c:
6384         (struct PolicyType): Add POLICY_CONSOLE
6385         (struct Element.d.policy): s/gid_or_uid/gid_uid_or_at_console
6386         (start_busconfig_child): Sets up console element when
6387         <policy at_console=""> is encountered in a policy file
6388         (append_rule_from_element): Convert console elements to console
6389         rules.
6390
6391         * bus/policy.c: 
6392         (bus_policy_create_client_policy): Add console rules to the client
6393         policy based on if the client is at the console
6394         (bus_policy_append_console_rule): New function for adding a
6395         console rule to a policy
6396         (bus_policy_merge): Handle console rule merging
6397
6398         * dbus/dbus-sysdeps.h: Added the DBUS_CONSOLE_DIR constant
6399         where we check for console user files
6400         
6401         * dbus/dbus-sysdeps.c:
6402         (_dbus_file_exists): New function which checks if the given
6403         file exists
6404         (_dbus_user_at_console): New function which does the system
6405         specific process of checking if the user is at the console
6406
6407         * dbus/dbus-userdb.c:
6408         (_dbus_is_console_user): New function converts a UID to user name
6409         and then calls the system specific _dbus_user_at_console to 
6410         see if the user is at the console and therefor a console user
6411
6412 2004-08-25  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6413
6414         * bus/config-parser.c (set_limit):
6415         * bus/dbus-daemon-1.1.in:
6416         * test/data/valid-config-files/many-rules.conf: set the
6417         max_match_rules_per_connection limt from the config file. 
6418
6419         * doc/busconfig.dtd: update the DTD.
6420
6421         * bus/driver.c: remove some unused variables.
6422
6423 2004-08-24  Mikael Hallendal  <micke@imendio.com>
6424
6425         * dbus/dbus-glib-lowlevel.h: Removed dbus_bus_get_with_g_main since 
6426         it's been replaced by dbus_g_bus_get
6427
6428 2004-08-23  Colin Walters  <walters@redhat.com>
6429
6430         Updated SELinux support from Matthew Rickard <mjricka@epoch.ncsc.mil>
6431
6432         * bus/selinux.h: Prototype bus_selinux_get_policy_root.
6433
6434         * bus/selinux.c: Create a thread for policy reload notification.
6435         (bus_selinux_get_policy_root): Implement.
6436
6437         * bus/config-parser.c (start_busconfig_child)
6438         (bus_config_parser_content): Support SELinux-root relative
6439         inclusion.
6440
6441         * configure.in <HAVE_SELINUX>: Add -lpthread.
6442         
6443         * bus/test-main.c (test_pre_hook, test_post_hook): New.
6444         (test_post_hook): Move memory checking into here.
6445         (test_pre_hook, test_post_hook): Move SELinux checks in
6446         here, but conditional on a DBUS_TEST_SELINUX environment
6447         variable.  Unfortunately we can't run the SELinux checks
6448         as a normal user, since they won't have any permissions
6449         for /selinux.  So this will have to be tested manually
6450         for now, until we have virtualization for most of
6451         libselinux.
6452         
6453 2004-08-23  Havoc Pennington  <hp@redhat.com>
6454
6455         * dbus/dbus-sysdeps.c (_dbus_change_identity): add setgroups() to
6456         drop supplementary groups, suggested by Steve Grubb
6457
6458 2004-08-20  Colin Walters  <walters@redhat.com>
6459
6460         * bus/config-parser.c (start_busconfig_child): Remove some unused
6461         variables.
6462         
6463         * bus/selinux.c (bus_selinux_id_table_insert): Avoid compiler
6464         warning.
6465
6466 2004-08-17  Joe Shaw  <joeshaw@novell.com>
6467
6468         * configure.in: If --enable-mono is passed in, if we can't find
6469         mono error out.
6470
6471         * mono/Makefile.am: Use /gacutil to install assemblies into the
6472         GAC and not /root.
6473
6474 2004-08-12  Havoc Pennington  <hp@redhat.com>
6475
6476         * NEWS: update for 0.22
6477
6478         * configure.in: release 0.22
6479
6480 2004-08-11  Colin Walters  <walters@redhat.com>
6481
6482         * tools/dbus-send.c (main, usage): Add --reply-timeout
6483         argument.
6484
6485 2004-08-10  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6486
6487         * bus/bus.c (process_config_first_time_only): get rid of an unused
6488         DBusError that was causing a memoy leak (bug #989).
6489
6490         * dbus/dbus-keyring.c, dbus/dbus-message.c:
6491         fix compilation on Solaris/Forte C (bug #974)
6492
6493         * bus/main.c (main): plug two minuscule memleaks.
6494
6495 2004-08-10  Havoc Pennington  <hp@redhat.com>
6496
6497         * doc/dbus-tutorial.xml: add some more info on GLib bindings
6498
6499 2004-08-09  Havoc Pennington  <hp@redhat.com>
6500
6501         * COPYING: switch to Academic Free License version 2.1 instead of
6502         2.0, to resolve complaints about patent termination clause.
6503
6504 2004-07-31  John (J5) Palmieri  <johnp@redhat.com>
6505
6506         * README: added documentation for the --enable-python 
6507         configure switch.
6508
6509 2004-07-31  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6510
6511         * bus/config-parser.c (bus_config_parser_new): fix an invalid
6512         _unref in the SELinux support.
6513
6514         * doc/busconfig.dtd: update DTD for SELinux support.
6515
6516         * bus/config-loader-libxml.c: fix error handler and parser
6517         initialisation/cleanup. OOM test now works with libxml2 HEAD.
6518
6519         * configure.in: remove the warning about libxml2.
6520
6521         * dbus/dbus-bus.c: silence doxygen warning.
6522
6523 2004-07-31  Colin Walters  <walters@redhat.com>
6524
6525         * configure.in: Move #error in SELinux check to its own line.
6526
6527 2004-07-31  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6528
6529         * dbus/dbus-internals.h (_DBUS_SET_OOM):
6530         * bus/utils.h (BUS_SET_OOM): use dbus_error_set_const instead of
6531         dbus_error_set.
6532
6533         * bus/dispatch.c (check_send_exit_to_service): fix the test case,
6534         broken by the change in the _SET_OOM macros.
6535
6536 2004-07-31  Colin Walters  <walters@redhat.com>
6537
6538         * bus/selinux.c <HAVE_SELINUX>: Include utils.h to get
6539         BUS_SET_OOM.
6540
6541 2004-07-31  Colin Walters  <walters@redhat.com>
6542
6543         * configure.in: Use AC_TRY_COMPILE instead of AC_EGREP_HEADER
6544         to correctly detect DBUS__ACQUIRE_SVC.  Also add an
6545         AC_MSG_CHECKING.
6546
6547 2004-07-24  Havoc Pennington  <hp@redhat.com>
6548
6549         SELinux support from Matthew Rickard <mjricka@epoch.ncsc.mil>
6550
6551         * bus/selinux.c, bus/selinux.h: new file encapsulating selinux
6552         functionality
6553
6554         * configure.in: add --enable-selinux
6555         
6556         * bus/policy.c (bus_policy_merge): add FIXME to a comment
6557
6558         * bus/main.c (main): initialize and shut down selinux
6559
6560         * bus/connection.c: store SELinux ID on each connection, to avoid 
6561         repeated getting of the string context and converting it into 
6562         an ID
6563
6564         * bus/bus.c (bus_context_get_policy): new accessor, though it
6565         isn't used
6566         (bus_context_check_security_policy): check whether the security
6567         context of sender connection can send to the security context of
6568         recipient connection
6569
6570         * bus/config-parser.c: add parsing for <selinux> and <associate>
6571         
6572         * dbus/dbus-transport.c (_dbus_transport_get_unix_fd): to
6573         implement dbus_connection_get_unix_fd()
6574
6575         * dbus/dbus-connection.c (dbus_connection_get_unix_fd): new
6576         function, used by the selinux stuff
6577         
6578 2004-07-29  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6579
6580         * bus/config-loader-libxml.c: complete the implementation of
6581         libxml backend for config file loader. Doesn't work with full OOM
6582         test yet. 
6583         
6584         * configure.in: change error when selecting libxml into a warning.
6585         
6586         * test/data/invalid-config-files: add two non-well-formed XML
6587         files. 
6588         
6589         * glib/Makefile.am: libdbus_gtool always uses expat, not libxml.
6590         
6591         * dbus/dbus-transport-unix.c (unix_handle_watch): do not
6592         disconnect in case of DBUS_WATCH_HANGUP, several do_reading() may
6593         be necessary to read all the buffer. (bug #894)
6594
6595         * bus/activation.c (bus_activation_activate_service): fix a
6596         potential assertion failure (bug #896). Small optimization in the
6597         case of auto-activation messages.
6598
6599         * dbus/dbus-message.c (verify_test_message, _dbus_message_test):
6600         add test case for byte-through-vararg bug (#901). patch by Kimmo
6601         Hämäläinen. 
6602
6603 2004-07-28  Anders Carlsson  <andersca@gnome.org>
6604
6605         * python/dbus.py:
6606         * python/dbus_bindings.pyx.in:
6607         Add dbus.init_gthreads (), allow emit_signal to pass
6608         arguments to the signal.
6609         
6610 2004-07-24  Havoc Pennington  <hp@redhat.com>
6611
6612         * AUTHORS: add some people, not really comprehensively, let me
6613         know if I missed you
6614
6615 2004-07-24  Havoc Pennington  <hp@redhat.com>
6616
6617         * Makefile.am (DIST_SUBDIRS): add DIST_SUBDIRS, problem solved by
6618         Owen
6619
6620         * test/Makefile.am (DIST_SUBDIRS): here also
6621
6622 2004-07-22  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6623
6624         * dbus/dbus-sysdeps.c (fill_user_info): fix inexistent label name,
6625         breaking build on Solaris, reported by Farhad Saberi on the ML.
6626
6627         * dbus/dbus-message.c (dbus_message_append_args_valist): fix the
6628         va_arg invocation to account for integer promotion in the case of
6629         DBUS_TYPE_BYTE (unsigned char is promoted to int). (bug #901)
6630
6631         * bus/services.c (bus_service_remove_owner): fix bug #902, use
6632         _dbus_list_get_first_link, not _dbus_list_get_first.
6633
6634         * dbus/dbus-bus.c (dbus_bus_service_exists): plug a memory leak.
6635
6636         * dbus/dbus-object-tree.c (free_subtree_recurse): always null
6637         handler functions so that the asserts in _dbus_object_subtree_unref
6638         do not fail.
6639
6640         * dbus/dbus-transport-unix.c (do_reading):
6641         _dbus_transport_queue_messages return value is of type
6642         dbus_bool_t, not DBusDispatchStatus.
6643         
6644 2004-07-19  David Zeuthen  <david@fubar.dk>
6645
6646         * dbus/dbus-protocol.h: Add DBUS_ERROR_UNIX_PROCESS_ID_UNKNOWN
6647
6648         * bus/dispatch.c:
6649         (check_get_connection_unix_user): Debug says GetProperty; but the
6650         method is called GetConnectionUnixUser
6651         (check_get_connection_unix_process_id): New function
6652         (bus_dispatch_test): Actually call check_get_connection_unix_user();
6653         also call check_get_connection_unix_process_id()
6654         
6655         * bus/driver.c:
6656         (bus_driver_handle_get_connection_unix_process_id): New function,
6657         handles GetConnectionUnixProcessID on the org.freedesktop.DBus
6658         interface
6659         
6660         * dbus/dbus-auth.c:
6661         (handle_server_data_external_mech): Set pid from the credentials
6662         obtained from the socket
6663         
6664         * dbus/dbus-connection.c:
6665         (dbus_connection_get_unix_process_id): New function
6666         
6667         * dbus/dbus-connection.h: 
6668         Add prototype for dbus_connection_get_unix_process_id
6669         
6670         * dbus/dbus-transport.c:
6671         (_dbus_transport_get_unix_process_id): New function
6672         
6673         * dbus/dbus-transport.h:
6674         Add prototype for _dbus_transport_get_unix_process_id
6675         
6676 2004-07-19  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6677
6678         * dbus/dbus-message.c: Message counter fix, patch by Christian
6679         Hammond <chipx86@gnupdate.org>
6680
6681 2004-07-18  Seth Nickell  <seth@gnome.org>
6682
6683         * python/dbus.py:
6684         * python/dbus_bindings.pyx.in:
6685         * python/tests/test-client.py:
6686
6687         Add dbus.ByteArray and dbus_bindings.ByteArray
6688         types so that byte streams can be passed back.
6689
6690         Give jdahlin the heaps of credit that are so
6691         rightfully his.
6692         
6693 2004-07-12  Seth Nickell  <seth@gnome.org>
6694
6695         * python/dbus.py:
6696
6697         Add message argument to the default object_method_handler
6698         function.
6699         
6700         * python/dbus_bindings.pyx.in:
6701
6702         Automatically return NIL when passed an empty list
6703         (we can't pass back a list since lists are typed
6704         and we don't have any idea what type the the client
6705         intended the list to be... :-( )
6706         
6707 2004-07-10  Seth Nickell  <seth@gnome.org>
6708
6709         * python/examples/Makefile.am:
6710
6711         Fix distcheck breakage caused by new examples.
6712
6713 2004-07-10  Seth Nickell  <seth@gnome.org>
6714
6715         * python/dbus.py:
6716
6717         Add "message" argument to service-side dbus.Object
6718         methods. This will break existing services written
6719         using the python bindings, but will allow extraction
6720         of all the message information (e.g. who its from).
6721
6722         Add improved "object oriented" signal handling/emission.
6723         
6724         * python/examples/example-service.py:
6725
6726         Nix this example.
6727         
6728         * python/examples/example-signal-emitter.py:
6729         * python/examples/example-signal-recipient.py:
6730
6731         Two new examples that show how to emit and receive
6732         signals using the new APIs.
6733         
6734         * python/examples/example-signals.py:
6735         * python/examples/gconf-proxy-service.py:
6736         * python/examples/gconf-proxy-service2.py:
6737
6738         Add "message" argument to service methods.
6739
6740 2004-06-28  Kay Sievers <kay.sievers@vrfy.org>
6741
6742         * bus/driver.c (bus_driver_handle_get_connection_unix_user)
6743         * dbus/bus.c (dbus_bus_get_unix_user)
6744         * doc/dbus-specification.xml: implement GetConnectionUnixUser
6745         method of org.freedesktop.DBus interface.
6746
6747         * bus/dispatch.c: test case
6748
6749 2004-06-23  John (J5) Palmieri  <johnp@redhat.com>
6750
6751         * python/Makefile.am: switched include directory from glib/ to dbus/
6752         since dbus-glib.h moved
6753  
6754 2004-06-22  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6755
6756         * configure.in: prevent building the gcj stuff and libxml loader
6757         since they are broken.
6758
6759 2004-06-20  Havoc Pennington  <hp@redhat.com>
6760
6761         * dbus/dbus-glib-error-enum.h: autogenerate the GError enum 
6762         codes from the dbus error names
6763         
6764         * glib/dbus-glib.h: move to subdir dbus/ since it's included 
6765         as dbus/dbus-glib.h and that breakage is now visible due to 
6766         including dbus/dbus-glib.h in dbus-glib-lowlevel.h
6767         
6768         * glib/dbus-glib.h: s/gproxy/g_proxy/
6769
6770         * dbus/dbus-shared.h: new header to hold stuff shared with
6771         binding APIs
6772         
6773         * dbus/dbus-protocol.h (DBUS_ERROR_*): move errors here rather
6774         than dbus-errors.h
6775
6776         * glib/dbus-glib.h (dbus_set_g_error): move to
6777         dbus-glib-lowlevel.h
6778
6779         * glib/dbus-glib.h: remove dbus/dbus.h from here; change a bunch
6780         of stuff to enable this
6781
6782         * dbus/dbus-glib-lowlevel.h: put dbus/dbus.h here
6783
6784         * a bunch of other changes with the same basic "separate glib 
6785         bindings from dbus.h" theme
6786         
6787 2004-06-10  Owen Fraser-Green  <owen@discobabe.net>
6788
6789         * dbus-sharp.pc.in: Removed glib-sharp inclusion in Libs.
6790
6791         * python/examples/Makefile.am: Fixed typo in EXTRA_DIST.
6792
6793 2004-06-09  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6794
6795         * bus/driver.c, dbus/dbus-bus.c: use BOOLEAN instead of UINT32 for
6796         the reply value of the ServiceExists message.
6797
6798 2004-06-07  John (J5) Palmieri  <johnp@redhat.com>
6799
6800         * python/dbus_bindings.pyx.in: No longer need to parse path
6801         elements and pass them as arrays of strings.  The C API now
6802         accepts plain path strings.
6803         (_build_parsed_path): removed 
6804
6805 2004-06-07  Havoc Pennington  <hp@redhat.com>
6806
6807         * doc/TODO: remove auto-activation item since it's done; sort
6808         items by importance/milestone
6809
6810 2004-06-07  Havoc Pennington  <hp@redhat.com>
6811
6812         * dbus/dbus-message-builder.c (_dbus_message_data_load): append
6813         random signature when using REQUIRED_FIELDS (this hack won't work
6814         in the long term)
6815
6816         * dbus/dbus-message.c: change the signature to be a header field,
6817         instead of message->signature special-case string. Incremental
6818         step forward. Then we can fix up code to send the signature in the
6819         message, then fix up code to validate said signature, then fix up
6820         code to not put the typecodes inline, etc.
6821         (load_one_message): don't make up the signature after the fact
6822         (decode_header_data): require signature field for the known
6823         message types
6824
6825         * dbus/dbus-marshal.c (_dbus_marshal_string_len): new
6826
6827         * dbus/dbus-protocol.h: add DBUS_HEADER_FIELD_SIGNATURE
6828
6829 2004-06-07  Owen Fraser-Green  <owen@discobabe.net>
6830
6831         * mono/DBusType/ObjectPath.cs: Renamed PathName argument to Path
6832
6833         * mono/Handler.cs: Updated to follow new path argument for
6834         (un-)registering objects.
6835
6836         * mono/example/Makefile.am:
6837         * mono/Makefile.am:
6838         * configure.in: Bumped required version for mono and use new -pkg
6839         syntax for deps
6840
6841 2004-06-05  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6842
6843         * dbus/dbus-connection.h, dbus/dbus-connection.c: have object path
6844         registration functions take the path argument as char* instead of
6845         char**.
6846
6847         * dbus/dbus-marshal.h, dbus/dbus-marshal.c (_dbus_decompose_path):
6848         split off the path decompostion part of
6849         _dbus_demarshal_object_path. Some misc. fixes to silence compiler
6850         warnings. 
6851
6852         * glib/dbus-gobject.c, test/test-service.c: update accordingly.
6853         
6854 2004-06-02  Kristian Høgsberg  <krh@redhat.com>
6855  
6856         * dbus/dbus-auth.c: Rewrite auth protocol handling to use a state
6857         machine approach.  A state is implemented as a function that
6858         handles incoming events as specified for that state.
6859         
6860         * doc/dbus-specification.xml: Update auth protocol state machine
6861         specification to match implementation.  Remove some leftover
6862         base64 examples.
6863
6864 2004-06-02  Kristian Høgsberg  <krh@redhat.com>
6865
6866         * glib/dbus-gproxy.c, glib/dbus-gmain.c, dbus/dbus-string.c,
6867         dbus/dbus-object-tree.c, dbus/dbus-message.c: add comments to
6868         quiet doxygen.
6869
6870         * Doxyfile.in: remove deprecated options.
6871
6872         * dbus/dbus-message-handler.c, dbus/dbus-message-handler.h,
6873         glib/test-thread.h, glib/test-thread-client.c,
6874         glib/test-thread-server.c, glib/test-profile.c,
6875         glib/test-dbus-glib.c: remove these unused files.
6876
6877 2004-06-01  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6878
6879         * dbus/dbus-object-tree.c
6880         (_dbus_object_tree_dispatch_and_unlock): fix dispatch for
6881         non-fallback handlers (bug #684).
6882         (_dbus_object_subtree_new): initialize invoke_as_fallback field.
6883         (find_subtree_recurse): report wether the returned subtree is an
6884         exact match or a "fallback" match higher up in the tree.
6885         (object_tree_test_iteration): update test case.
6886
6887 2004-06-01  Seth Nickell  <seth@gnome.org>
6888
6889         * python/dbus_bindings.pyx.in:
6890         * python/tests/test-client.py:
6891
6892         Round off basic type support. Add dicts (yay!), and 
6893         remaining array types.
6894
6895         Make MessageIter more general so it works for dicts too.
6896
6897         Mark all loop variables as C integers.
6898         
6899 2004-05-31  Havoc Pennington  <hp@redhat.com>
6900
6901         * glib/dbus-gidl.c (method_info_add_arg): keep args sorted with
6902         "in" before "out"
6903
6904         * glib/dbus-gobject.c (dbus_type_to_string): move to dbus-gutils.c
6905
6906         * glib/dbus-glib-tool.c (main): set up to have a --self-test
6907         option that runs the tests, and start filling in some code
6908         including for starters just dumping the interfaces to stdout
6909
6910         * glib/Makefile.am (INCLUDES): define DBUS_LOCALEDIR
6911
6912         * test/data/valid-introspection-files/lots-of-types.xml: test of
6913         an example introspection file
6914
6915         * glib/dbus-gparser.c (parser_check_doctype): doctype should be
6916         "node" (I think...)
6917
6918 2004-05-31  Seth Nickell  <seth@gnome.org>
6919
6920         * python/dbus_bindings.pyx.in:
6921         * python/tests/test-client.py:
6922
6923         Test Suite: 1
6924         Python Bindings: 0
6925
6926         Fix string array memory trashing bug... oops...
6927
6928 2004-05-30  Seth Nickell  <seth@gnome.org>
6929
6930         * python/dbus.py:
6931
6932         Add a nicer-but-less-flexible alternate API for handling 
6933         calls to virtual objects in dbus.ObjectTree.
6934
6935         Screw up the argument order to the dbus.Object constructor
6936         for consistency with dbus.ObjectTree (and to make dbus_methods
6937         optional for future extension)
6938         
6939         * python/examples/Makefile.am:
6940         * python/examples/gconf-proxy-service.py:
6941         * python/examples/gconf-proxy-service2.py:
6942
6943         Alternate implementation of gconf-proxy-service using the
6944         nicer dbus.ObjectTree API.
6945         
6946         * python/examples/example-service.py:
6947         * python/tests/test-server.py
6948
6949         Reverse the argument order to deal with dbus.Object constructor
6950         changes.
6951         
6952 2004-05-30  Seth Nickell  <seth@gnome.org>
6953
6954         * python/examples/example-client.py:
6955         * python/examples/example-service.py:
6956
6957         Take it back. Lists seem to work but they're broken
6958         in the test suite. Make the base examples use
6959         lists (works fine).
6960
6961 2004-05-30  Seth Nickell  <seth@gnome.org>
6962
6963         * python/dbus_bindings.pyx.in:
6964         * python/tests/test-client.py:
6965
6966         Add some more tests and fix errors that crop up.
6967         Unfortunately, currently it seems like marshalling
6968         and unmarshalling of lists is completely broken :-(
6969
6970 2004-05-30  Seth Nickell  <seth@gnome.org>
6971
6972         * python/dbus_bindings.pyx.in:
6973
6974         Add support for ObjectPath type.
6975
6976         * python/dbus.py:
6977
6978         Refactor message handling code to a common function.
6979         
6980         * python/tests/test-client.py:
6981         * python/tests/test-server.py:
6982
6983         Add tests that check to make sure values of all types
6984         can be echoed from a service w/o mangling.
6985         
6986 2004-05-29  Seth Nickell  <seth@gnome.org>
6987
6988         * python/dbus.py:
6989
6990         Add ObjectTree class which allows implementation
6991         of trees of "virtual" objects. Basically the python
6992         wrapper for "register_fallback".
6993         
6994         * python/examples/Makefile.am
6995         * python/examples/gconf-proxy-client.py:
6996         * python/examples/gconf-proxy-service.py:
6997
6998         Implement a simple GConf proxy service that supports
6999         get/set on string and int GConf keys using the ObjectTree.
7000         
7001 2004-05-29  Seth Nickell  <seth@gnome.org>
7002
7003         * python/dbus.py:
7004         * python/examples/example-client.py:
7005         * python/examples/example-service.py:
7006         * python/examples/list-system-services.py:
7007
7008         Add SessionBus, SystemBus and ActivationBus classes
7009         so you don't need to know the special little BUS_TYPE
7010         flag.
7011         
7012 2004-05-29  Havoc Pennington  <hp@redhat.com>
7013
7014         * bus/config-parser.c (process_test_valid_subdir): temporarily
7015         stop testing config parser OOM handling, since expat has issues
7016         http://freedesktop.org/pipermail/dbus/2004-May/001153.html
7017
7018         * bus/dbus-daemon-1.1.in: change requested_reply to
7019         send_requested_reply/receive_requested_reply so we can send the
7020         replies, not just receive them.
7021
7022         * bus/config-parser.c: parse the new
7023         send_requested_reply/receive_requested_reply
7024
7025         * bus/policy.c (bus_client_policy_check_can_send): add
7026         requested_reply argument and use it
7027
7028         * bus/bus.c (bus_context_check_security_policy): pass through
7029         requested_reply status to message send check
7030
7031         * bus/system.conf.in: adapt to requested_reply change
7032         
7033 2004-05-28  Havoc Pennington  <hp@redhat.com>
7034
7035         * test/glib/test-service-glib.c (main): remove unused variable
7036
7037         * glib/dbus-gidl.c (base_info_ref): fix a silly compiler warning
7038
7039         * dbus/dbus-auth.h (enum): remove AUTHENTICATED_WITH_UNUSED_BYTES
7040         from the enum, no longer in use.
7041
7042         * dbus/dbus-sysdeps.h: include config.h so DBUS_VA_COPY actually
7043         works right.
7044
7045         * dbus/dbus-message.c: add various _dbus_return_val_if_fail for
7046         whether error_name passed in is a valid error name.
7047
7048 2004-05-28  John (J5) Palmieri  <johnp@redhat.com>
7049
7050         * dbus/dbus-message.c (dbus_message_get_args): Added support for
7051         OBJECT_PATH and OBJECT_PATH_ARRAY
7052
7053 2004-05-28  Seth Nickell  <seth@gnome.org>
7054
7055         * python/examples/Makefile.am:
7056
7057         Forget to add Makefile.am. Do not pass go.
7058
7059 2004-05-28  Michael Meeks  <michael@ximian.com>
7060
7061         * glib/dbus-gvalue.c (dbus_gvalue_marshal, dbus_gvalue_demarshal): 
7062         fix no int64 case.
7063
7064         * dbus/dbus-string.c (_dbus_string_parse_basic_type): impl.
7065
7066         * dbus/dbus-message.c (_dbus_message_iter_get_basic_type),
7067         (_dbus_message_iter_get_basic_type_array): impl.
7068         drastically simplify ~all relevant _get methods to use these.
7069         (_dbus_message_iter_append_basic_array),
7070         (dbus_message_iter_append_basic): impl
7071         drastically simplify ~all relevant _append methods to use these.
7072
7073         * dbus/dbus-message-builder.c (parse_basic_type) 
7074         (parse_basic_array, lookup_basic_type): impl.
7075         (_dbus_message_data_load): prune scads of duplicate /
7076         cut & paste coding.
7077
7078         * dbus/dbus-marshal.c (_dbus_demarshal_basic_type_array) 
7079         (_dbus_demarshal_basic_type): implement,
7080         (demarshal_and_validate_len/arg): beef up debug.
7081         (_dbus_marshal_basic_type, _dbus_marshal_basic_type_array): impl.
7082
7083 2004-05-27  Seth Nickell  <seth@gnome.org>
7084
7085         * configure.in:
7086         * python/Makefile.am:
7087
7088         Include the example python apps in the tarball.
7089         
7090         * python/examples/list-system-services.py
7091
7092         Add a python new example that fetches the list of services
7093         from the system bus.
7094         
7095 2004-05-27  Seth Nickell  <seth@gnome.org>
7096
7097         * python/dbus.py:
7098         * python/dbus_bindings.pyx.in:
7099
7100         Fix failure to notify that a signal was not handled,
7101         resulted in hung functions.
7102         
7103 2004-05-25  Colin Walters  <walters@redhat.com>
7104
7105         * tools/dbus-monitor.c (main): Monitor all types of messages.
7106
7107 2004-05-23  Owen Fraser-Green  <owen@discobabe.net>
7108
7109         * mono/Handler.cs, mono/Service.cs: Added UnregisterObject method
7110         which unregisters the object path and disposes the handler.
7111
7112 2004-05-23  Kristian Høgsberg  <krh@redhat.com>
7113  
7114         Patch from Timo Teräs <ext-timo.teras@nokia.com> (#614):
7115          
7116         * dbus/dbus-message.c (dbus_message_iter_get_args_valist): Swap
7117         operands to && so we call dbus_message_iter_next () for the last
7118         argument also.
7119
7120 2004-05-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7121
7122         * dbus/dbus-object-tree.c
7123         (_dbus_object_tree_list_registered_unlock, lookup_subtree): return
7124         children even if the requested path isn't registered.
7125         (object_tree_test_iteration): test object_tree_list_registered.
7126
7127         * configure.in: undefine HAVE_ABSTRACT_SOCKETS instead of defining
7128         it to 0.
7129         
7130 2004-05-20  Kristian Høgsberg  <krh@redhat.com>
7131
7132         * doc/TODO: Remove resolved items.
7133
7134         * bus/expirelist.h (struct BusExpireList): remove unused n_items
7135         field.
7136         
7137         * bus/connection.c (bus_connections_expect_reply): Enforce the
7138         per-connection limit on pending replies.
7139         
7140         Patch from Jon Trowbridge <trow@ximian.com>:
7141  
7142         * bus/main.c (setup_reload_pipe): Added.  Creates a pipe and sets
7143         up a watch that triggers a config reload when one end of the pipe
7144         becomes readable.
7145         (signal_handler): Instead of doing the config reload in our SIGHUP
7146         handler, just write to the reload pipe and let the associated
7147         watch handle the reload when control returns to the main loop.
7148  
7149         * bus/driver.c (bus_driver_handle_reload_config): Added.
7150         Implements a ReloadConfig method for requesting a configuration
7151         file reload via the bus driver.
7152  
7153 2004-05-19  Owen Fraser-Green  <owen@discobabe.net>
7154
7155         * HACKING: Updated release instructions concerning the wiki page.
7156
7157 2004-05-18  Kristian Høgsberg  <krh@redhat.com>
7158
7159         * dbus/dbus-auth.c (client_try_next_mechanism): Remove logic to
7160         filter against auth->allowed_mechs; we only add allowed mechs in
7161         record_mechanisms().
7162  
7163         * dbus/dbus-auth-script.c (_dbus_auth_script_run): Add an
7164         ALLOWED_MECHS to auth-script format so we can set the list of
7165         allowed mechanisms.
7166  
7167         * data/auth/client-out-of-mechanisms.auth-script: New test to
7168         check client disconnects when it is out of mechanisms to try.
7169  
7170         * dbus/dbus-auth.c (process_command): Remove check for lines
7171         longer that 1 MB; we only buffer up maximum 16 kB.
7172  
7173         * dbus/dbus-transport.c, dbus/dbus-transport-unix.c,
7174         dbus/dbus-auth-script.c, dbus/dbus-auth.c, dbus/dbus-auth.h:
7175         Remove auth state AUTHENTICATED_WITH_UNUSED_BYTES, instead always
7176         assume there might be unused bytes.
7177  
7178         * dbus/dbus-auth.c (_dbus_auth_do_work): Remove check for
7179         client-out-of-mechs, it is handled in process_reject(). Move check
7180         for max failures to send_rejected(), as it's a server-only thing.
7181
7182         * dbus/dbus-auth.c: Factor out protocol reply code into functions
7183         send_auth(), send_data(), send_rejected(), send_error(),
7184         send_ok(), send_begin() and send_cancel().
7185
7186 2004-05-17  Kristian Høgsberg  <krh@redhat.com>
7187
7188         Remove base64 encoding, replace with hex encoding. Original patch
7189         from trow@ximian.com, added error handling.
7190
7191         * dbus/dbus-string.c (_dbus_string_base64_encode)
7192         (_dbus_string_base64_decode): Remove.
7193         (_dbus_string_hex_decode): Add end_return argument so we can
7194         distinguish between OOM and invalid hex encoding.
7195         (_dbus_string_test): Remove base64 tests and add test case for
7196         invalid hex.
7197
7198         * dbus/dbus-keyring.c, dbus/dbus-auth-script.c, dbus/dbus-auth.c:
7199         Replace base64 with hex.
7200
7201         * test/data/auth/invalid-hex-encoding.auth-script: New test case
7202         for invalid hex encoded data in auth protocol.
7203
7204 2004-05-17  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7205
7206         * dbus/dbus-connection.c (check_for_reply_unlocked): plug a memory
7207         leak.
7208
7209 2004-05-15  Owen Fraser-Green  <owen@discobabe.net>
7210
7211         * mono/dbus-sharp.dll.config.in: Added for GAC
7212         * mono/dbus-sharp.snk: Added for GAC
7213         * mono/Assembly.cs.in: Added for GAC
7214         * mono/Makefile.am: Changes for GAC installation        
7215         * configure.in: Added refs for dbus-sharp.dll.config.in and
7216         Assembly.cs.in. More fixes for mono testing
7217         * mono/example/Makefile.am: Changed var to CSC
7218         * Makefile.am: Changed flag name to DBUS_USE_CSC
7219
7220 2004-05-15  Owen Fraser-Green  <owen@discobabe.net>
7221
7222         * mono/Makefile.am: Added SUBDIRS for docs. Changed SUBDIRS order
7223         * mono/doc/*: Added documentation framework
7224         * configure.in: Added monodoc check
7225         * README: Added description of mono configure flags
7226
7227 2004-05-11  John (J5) Palmieri  <johnp@redhat.com>:
7228
7229         * doc/dbus-specification.xml: Added a "Required" column to the 
7230         header fields table and changed the "zero or more" verbage in
7231         the above paragraph to read "The header must contain the required 
7232         named header fields and zero or more of the optional named header 
7233         fields".
7234         * test/data/invalid-messages/*.message: Added the required PATH 
7235         named header field to the tests so that they don't fail on 
7236         'Missing path field'
7237
7238 2004-05-07  John (J5) Palmieri  <johnp@redhat.com>
7239
7240         * python/dbus-bindings.pyx.in: Stopped the bindings from trashing
7241         the stack by implicitly defining variable and parameter types and
7242         removing the hack of defining C pointers as python objects and later
7243         casting them.
7244
7245 2004-05-02  Owen Fraser-Green  <owen@discobabe.net>
7246
7247         * mono/Makefile.am: Removed test-dbus-sharp.exe from all target
7248
7249 2004-05-01  Owen Fraser-Green  <owen@discobabe.net>
7250
7251         * mono/DBusType/Dict.cs: Handle empty dicts
7252         * mono/DBusType/Array.cs: Handle empty arrays
7253         * mono/Arguments.cs: Handle empty arguments
7254
7255 2004-04-30  Owen Fraser-Green  <owen@discobabe.net>
7256
7257         * dbus-sharp.pc.in: Modified to include include Libs and Requires
7258         field
7259
7260 2004-04-25  Kristian Høgsberg  <krh@redhat.com>
7261
7262         * test/data/valid-messages/standard-*.message: Update message
7263         test scripts to new header field names.
7264
7265 2004-04-22  John (J5) Palmieri  <johnp@redhat.com>
7266
7267         * test/break-loader.c (randomly_do_n_things): tracked down buffer
7268         overflow to times_we_did_each_thing array which would chop off the
7269         first character of the failure_dir string. Increased the size of
7270         the array to 7 to reflect the number of random mutation functions
7271         we have.
7272
7273 2004-04-21  Kristian Høgsberg  <krh@redhat.com>
7274
7275         * dbus/dbus-server-unix.c (unix_finalize): Don't unref
7276         unix_server->watch here, it is unreffed in disconnect.
7277         (_dbus_server_new_for_tcp_socket): convert NULL host to
7278         "localhost" here so we don't append NULL to address.
7279         
7280         * dbus/dbus-server.c (_dbus_server_test): Add test case for
7281         various addresses, including tcp with no explicit host.
7282
7283 2004-04-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7284
7285         * dbus/dbus-message.c (decode_header_data, decode_string_field):
7286         fix incorrect setting of .name_offset in the HeaderField (it was
7287         off by two bytes, positioned right after the name and typecode)
7288
7289         * bus/bus.c (bus_context_new, bus_context_unref): test before
7290         calling dbus_server_free_data_slot and _dbus_user_database_unref
7291         in case of an error.
7292
7293         * tools/Makefile.am: add $(DBUS_GLIB_TOOL_LIBS), xml libs needed
7294         by libdbus-gtool.
7295
7296 2004-04-19  Kristian Høgsberg  <krh@redhat.com>
7297
7298         * dbus/dbus-transport-unix.c (unix_do_iteration): Rewrite to use
7299         _dbus_poll() instead of select().
7300
7301 2004-04-15  Jon Trowbridge  <trow@ximian.com>
7302
7303         * bus/main.c (signal_handler): Reload the configuration files
7304         on SIGHUP.
7305         (main): Set up our SIGHUP handler.
7306
7307         * bus/bus.c (struct BusContext): Store the config file, user and
7308         fork flag in the BusContext.
7309         (process_config_first_time_only): Added.  Contains the code
7310         (previously in bus_context_new) for setting up the BusContext from
7311         the BusConfigParser that should only be run the first time the
7312         config files are read.
7313         (process_config_every_time): Added.  Contains the code (previously
7314         in bus_context_new) for setting up the BusContext from the
7315         BusConfigParser that should be run every time the config files are
7316         read.
7317         (load_config): Added.  Builds a BusConfigParser from the config
7318         files and passes the resulting structure off to
7319         process_config_first_time_only (assuming this is the first time)
7320         and process_config_every_time.
7321         (bus_context_new): All of the config-related code has been moved
7322         to process_config_first_time_only and process_config_every_time.
7323         Now this function just does the non-config-related initializations
7324         and calls load_config.
7325         (bus_context_reload_config): Added.
7326
7327 2004-04-15  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7328
7329         * bus/driver.c (bus_driver_handle_get_service_owner):
7330         implement a GetServiceOwner method.
7331         * doc/dbus-specification.xml: document it.
7332         * dbus/dbus-errors.h: add a 'ServiceHasNoOwner' error.
7333         
7334         * glib/dbus-gproxy.c (dbus_gproxy_new_for_service_owner):
7335         implement, using the bus GetServiceOwner method.
7336
7337         * test/glib/test-dbus-glib.c:
7338         use dbus_gproxy_new_for_service_owner so that we can receive the
7339         signal. 
7340
7341 2004-04-15  John (J5) Palmieri  <johnp@redhat.com>
7342
7343         * dbus/dbus-internals.c, dbus/dbus-message-builder.c,
7344         dbus/dbus-message.c, dbus/dbus-protocol.h
7345         (DBUS_HEADER_FIELD_SERVICE): renamed DBUS_HEADER_FIELD_DESTINATION
7346
7347         * dbus/dbus-internals.c, dbus/dbus-message-builder.c,
7348         dbus/dbus-message.c, dbus/dbus-protocol.h
7349         (DBUS_HEADER_FIELD_SENDER_SERVICE): renamed DBUS_HEADER_FIELD_SENDER
7350
7351         * dbus/dbus-internals.c (_dbus_header_field_to_string):
7352         DBUS_HEADER_FIELD_DESTINATION resolves to "destination"
7353         DBUS_HEADER_FIELD_SENDER resolves to "sender"
7354
7355         * doc/dbus-specification.xml (Header Fields Table):
7356         s/SERVICE/DESTINATION
7357         s/SENDER_SERVICE/SENDER
7358
7359
7360 2004-04-14  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7361
7362         * test/glib/test-dbus-glib.c (timed_exit): fail the test after
7363         a few seconds.
7364
7365 2004-04-13  Michael Meeks  <michael@ximian.com>
7366
7367         * glib/dbus-gobject.c (handle_introspect): split out
7368         (introspect_properties): this.
7369         (handle_introspect): implement this.
7370
7371         * test/glib/Makefile.am: use the absolute path so the bus
7372         daemon's chdir ("/") doesn't kill us dead.
7373
7374         * configure.in: subst ABSOLUTE_TOP_BUILDDIR
7375
7376 2004-04-12  Jon Trowbridge  <trow@ximian.com>
7377
7378         * bus/config-parser.c (struct BusConfigParser): Added
7379         included_files field.
7380         (seen_include): Added.  Checks whether or not a file has already
7381         been included by any parent BusConfigParser.
7382         (bus_config_parser_new): Copy the parent's included_files.
7383         (include_file): Track which files have been included, and fail on
7384         circular inclusions.
7385         (process_test_valid_subdir): Changed printf to report if we are
7386         testing valid or invalid conf files.
7387         (all_are_equiv): Changed printf to be a bit clearer about
7388         what we are actually doing.
7389         (bus_config_parser_test): Test invalid configuration files.
7390
7391 2004-04-09  Jon Trowbridge  <trow@ximian.com>
7392
7393         * bus/config-parser.c (bus_config_parser_new): Added a 'parent'
7394         argument.  If non-null, the newly-constructed BusConfigParser will
7395         be initialized with the parent's BusLimits instead of the default
7396         values.
7397         (include_file): When including a config file, pass in
7398         the current parser as the parent and then copy the BusLimits
7399         from the included BusConfigParser pack to the current parser.
7400         (process_test_valid_subdir): Renamed from process_test_subdir.
7401         (process_test_equiv_subdir): Added.  Walks through a directory,
7402         descending into each subdirectory and loading the config files
7403         it finds there.  If any subdirectory contains two config files
7404         that don't produce identical BusConfigParser structs, fail.
7405         For now, the BusConfigParser's BusPolicies are not compared.
7406         (bus_config_parser_test): Call both process_test_valid_subdir and
7407         process_test_equiv_subdir.
7408
7409         * bus/config-loader-libxml.c (bus_config_load): Take a parent
7410         argument and pass it along to the call to bus_config_parser_new.
7411         Also made a few small changes to allow this code to compile.
7412
7413         * bus/config-loader-expat.c (bus_config_load): Take a parent
7414         argument and pass it along to the call to bus_config_parser_new.
7415
7416         * bus/bus.c (bus_context_new): Load the config file
7417         with a NULL parent argument.
7418
7419 2004-03-29  Michael Meeks  <michael@ximian.com>
7420
7421         * glib/dbus-gobject.c (introspect_properties): split
7422         out, fix mangled 'while' flow control.
7423         (introspect_signals): implement.
7424         (handle_introspect): update.
7425
7426 2004-03-29  Michael Meeks  <michael@ximian.com>
7427
7428         * glib/dbus-gobject.c (set_object_property): split out / 
7429         re-work, use the property type, and not the message type(!)
7430         (get_object_property): ditto.
7431
7432         * glib/dbus-gvalue.c (dbus_gvalue_demarshal),
7433         (dbus_gvalue_marshal): make this code re-usable, needed
7434         for signals too, also on both proxy and server side.
7435         Re-write for more efficiency / readability.
7436
7437 2004-03-29  Michael Meeks  <michael@ximian.com>
7438
7439         * dbus/dbus-message.c
7440         (dbus_message_new_error_printf): impl.
7441
7442         * dbus/dbus-connection.c
7443         (dbus_connection_unregister_object_path): fix warning.
7444
7445         * configure.in: fix no-mono-installed situation.
7446
7447 2004-03-27  Havoc Pennington  <hp@redhat.com>
7448
7449         Patch from Timo Teräs:
7450         
7451         * tools/dbus-send.c (main): if --print-reply, assume type is
7452         method call; support boolean type args
7453         
7454         * dbus/dbus-connection.c (dbus_connection_send_with_reply): fix a
7455         bunch of memleak and logic bugs
7456         
7457 2004-03-23  Owen Fraser-Green  <owen@discobabe.net>
7458
7459         * mono/Arguments.cs:
7460         * mono/Introspector.cs:
7461         * mono/Handler.cs:
7462         * mono/InterfaceProxy.cs:
7463         * mono/Message.cs
7464         * mono/ProxyBuilder.cs:
7465         * mono/Service.cs:
7466         Added InterfaceProxy class to avoid building proxies for every
7467         object.
7468
7469         * dbus-message.h:
7470         * dbus-message.c (dbus_message_append_args_valist)
7471         (dbus_message_iter_get_object_path)
7472         (dbus_message_iter_get_object_path_array)
7473         (dbus_message_iter_append_object_path)
7474         (dbus_message_iter_append_object_path_array):
7475         Added object_path iter functions to handle OBJECT_PATH arguments
7476         
7477 2004-03-23  Owen Fraser-Green  <owen@discobabe.net>
7478
7479         First checkin of mono bindings.
7480         * configure.in:
7481         * Makefile.am:
7482         Build stuff for the bindings
7483         * dbus-sharp.pc.in: Added for pkgconfig
7484         
7485 2004-03-21  Havoc Pennington  <hp@redhat.com>
7486
7487         * test/test-service.c (main): remove debug spew
7488
7489 2004-03-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7490
7491         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): accept empty
7492         arrays
7493
7494         * dbus/dbus-message.h, bus/dbus-message.c (dbus_message_iter_init)
7495         (dbus_message_iter_init_array_iterator)
7496         (dbus_message_iter_init_dict_iterator): return a dbus_bool_t to
7497         indicate whether the iterator is empty
7498
7499         * dbus/dbus-pending-call.c, dbus/dbus-server.c: silence compiler
7500         warnings
7501
7502 2004-03-19  Havoc Pennington  <hp@redhat.com>
7503
7504         * NEWS: 0.21 updates
7505
7506         * configure.in: 0.21
7507
7508         * doc/Makefile.am: add all XMLTO usage to DBUS_XML_DOCS_ENABLED
7509         
7510         * python/Makefile.am: change to avoid dist of dbus_bindings.c so
7511         you don't need pyrex to make dist
7512
7513         * qt/Makefile.am (libdbus_qt_1_la_SOURCES): add integrator.h to
7514         sources; run moc
7515         
7516 2004-03-18  Richard Hult  <richard@imendio.com>
7517
7518         * dbus/dbus-message.c (dbus_message_get_auto_activation) 
7519         (dbus_message_set_auto_activation): Add doxygen docs.
7520
7521 2004-03-16  Richard Hult  <richard@imendio.com>
7522
7523         * bus/activation.c: (bus_activation_service_created),
7524         (bus_activation_send_pending_auto_activation_messages),
7525         (bus_activation_activate_service):
7526         * bus/activation.h:
7527         * bus/dispatch.c: (bus_dispatch),
7528         (check_nonexistent_service_auto_activation),
7529         (check_service_auto_activated),
7530         (check_segfault_service_auto_activation),
7531         (check_existent_service_auto_activation), (bus_dispatch_test):
7532         * bus/driver.c: (bus_driver_handle_activate_service):
7533         * bus/services.c: (bus_registry_acquire_service):
7534         * dbus/dbus-message.c: (dbus_message_set_auto_activation),
7535         (dbus_message_get_auto_activation):
7536         * dbus/dbus-message.h:
7537         * dbus/dbus-protocol.h: Implement auto-activation.
7538         
7539         * doc/dbus-specification.xml: Add auto-activation to the spec.
7540
7541 2004-03-12  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7542
7543         * dbus/dbus-marshal.c (_dbus_marshal_get_arg_end_pos):
7544         fix a bug with CUSTOM types.
7545
7546         * dbus/dbus-message.c (message_iter_test, _dbus_message_test): add
7547         a unit test for this bug (used to fail).
7548
7549 2004-03-12  Mikael Hallendal  <micke@imendio.com>
7550
7551         * bus/activation.c:
7552         (babysitter_watch_callback): notify all pending activations waiting for
7553           the same exec that the activation failed.
7554         (bus_activation_activate_service): shortcut the activation if we 
7555           already waiting for the same executable to start up.
7556
7557 2004-03-12  Mikael Hallendal  <micke@imendio.com>
7558
7559         * bus/activation.c: 
7560         - Added service file reloading. 
7561           Each service files directory is kept in an hash table in 
7562           BusActivation and each BusActivationEntry knows what .service-file it
7563           was read from. So when you try to activate a service the bus will 
7564           check if it's been updated, removed or if new .service-files has 
7565           been installed.
7566         - Test code at the bottom for the service file reloading.
7567         * bus/test-main.c: (main):
7568         * bus/test.h:
7569         - added service reloading test.
7570         * dbus/dbus-sysdeps.c: 
7571         * dbus/dbus-sysdeps.h: (_dbus_delete_directory): Added.
7572
7573 2004-03-08  Michael Meeks  <michael@ximian.com>
7574
7575         * dbus/dbus-connection.c (_dbus_connection_block_for_reply): 
7576         bail immediately if disconnected, to avoid busy loop.
7577
7578         * dbus/dbus-message.c (dbus_message_iter_get_args_valist):
7579         cleanup cut/paste/inefficiency.
7580
7581 2004-03-01  David Zeuthen  <david@fubar.dk>
7582
7583         * dbus/dbus-string.c (_dbus_string_append_printf_valist): Fix a
7584         bug where args were used twice. This bug resulted in a segfault
7585         on a Debian/PPC system when starting the messagebus daemon. Include
7586         dbus-sysdeps.h for DBUS_VA_COPY
7587
7588         * dbus/dbus-sysdeps.h: Define DBUS_VA_COPY if neccessary. From GLib
7589
7590         * configure.in: Check for va_copy; define DBUS_VA_COPY to the
7591         appropriate va_copy implementation. From GLib
7592         
7593 2004-02-24  Joe Shaw  <joe@ximian.com>
7594
7595         * bus/services.c (bus_registry_acquire_service): We need to pass
7596         in the service name to dbus_set_error() to prevent a crash.
7597
7598 2003-12-26  Anders Carlsson  <andersca@gnome.org>
7599
7600         * AUTHORS: Reveal my True identity.
7601
7602 2003-12-17  Mikael Hallendal  <micke@imendio.com>
7603
7604         * dbus/dbus-message.c: (dbus_message_append_args_valist): 
7605         - Added case for DBUS_TYPE_BYTE, patch from Johan Hedberg.
7606
7607 2003-12-13  Mikael Hallendal  <micke@imendio.com>
7608
7609         * doc/TODO: Added not about better error check of configuration files.
7610
7611 2003-12-02  Richard Hult  <richard@imendio.com>
7612
7613         * Update AFL version to 2.0 throughout the source files to reflect
7614         the update that was done a while ago.
7615
7616 2003-12-02  Richard Hult  <richard@imendio.com>
7617
7618         * dbus/dbus-message.c (dbus_message_iter_append_dict): Set
7619         wrote_dict_key to FALSE on the iter that the dict is appended to,
7620         just like when appending other types. Fixes a bug where a dict
7621         couldn't be put inside a dict.
7622         (dbus_message_iter_append_dict_key): Fix typo in warning message.
7623         (message_iter_test, _dbus_message_test): Add test case for dict
7624         inside dict.
7625
7626 2003-12-01  David Zeuthen  <david@fubar.dk>
7627
7628         * python/dbus.py: Add the actual message when calling the reciever
7629         of a signal such that parameters can be inspected. Add the method
7630         remove_signal_receiver
7631         
7632 2003-11-26  Mikael Hallendal  <micke@imendio.com>
7633
7634         * bus/*.[ch]:
7635         * dbus/*.[ch]:
7636         * glib/*.[ch]: Made ref functions return the pointer
7637
7638 2003-11-25  Zack Rusin  <zack@kde.org>
7639
7640         * qt/integrator.h, qt/integrator.cpp: Adding handling of DBusServer,
7641
7642         * qt/server.h, qt/server.cpp, qt/Makefile.am: Adding DBusServer 
7643         wrappers,
7644
7645         * qt/connection.h, qt/connection.cpp: Adjusting to changes in 
7646         the Integrator and to better fit with the server,
7647
7648 2003-11-24  Zack Rusin  <zack@kde.org>
7649
7650         * qt/connection.h, qt/connection.cpp: removing initDbus method since
7651         the integrator handles it now
7652
7653         * qt/integrator.h, qt/integrator.cpp: reworking handling of timeouts,
7654         since QTimer wasn't really meant to be used the way DBusTimeout is
7655
7656 2003-11-24  Zack Rusin  <zack@kde.org>
7657
7658         * qt/integrator.h, qt/integrator.cpp, Makefile.am: Adding 
7659         Integrator class which integrates D-BUS with the Qt event loop,
7660
7661         * qt/connection.h, qt/connection.cpp: Move all the code which
7662         was dealing with D-BUS integration to the Integrator class,
7663         and start using Integrator,
7664
7665 2003-11-23  Zack Rusin  <zack@kde.org>
7666
7667         * qt/connection.h, qt/connection.cpp: Adding the DBusConnection 
7668         wrapper
7669
7670         * qt/message.h, qt/message.cpp: updating to the current D-BUS api,
7671         switching namespaces to DBusQt, reworking the class,
7672
7673         * Makefile.cvs: switching dependencies so that it matches KDE 
7674         schematics,
7675         
7676         * qt/Makefile.am: adding connection.{h,cpp} and message.{h,cpp} to 
7677         the library
7678
7679 2003-11-19  Havoc Pennington  <hp@redhat.com>
7680
7681         * NEWS: update
7682
7683         * configure.in: bump version to 0.20
7684
7685         * configure.in (have_qt): add yet another place to look for qt
7686         (someone hand trolltech a .pc file...)
7687
7688 2003-11-01  Havoc Pennington  <hp@redhat.com>
7689
7690         * doc/dbus-specification.xml: add state machine docs on the auth
7691         protocol; just a first draft, I'm sure it's wrong.      
7692
7693 2003-10-28  David Zeuthen  <david@fubar.dk>
7694
7695         * python/dbus_bindings.pyx.in: add get_dict to handle dictionaries
7696         return types. Fixup TYPE_* to reflect changes in dbus/dbus-protocol.h
7697         
7698 2003-10-28  Havoc Pennington  <hp@redhat.com>
7699
7700         * dbus/dbus-message.c (get_next_field): delete unused function
7701
7702 2003-10-28  Havoc Pennington  <hp@redhat.com>
7703
7704         * bus/expirelist.c (do_expiration_with_current_time): detect
7705         failure of the expire_func due to OOM
7706
7707         * bus/connection.c (bus_pending_reply_expired): return FALSE on OOM
7708
7709         * bus/dispatch.c (check_send_exit_to_service): fix to handle the
7710         NoReply error that's now created by the bus when the service exits
7711
7712 2003-10-28  Havoc Pennington  <hp@redhat.com>
7713
7714         * dbus/dbus-message.c (_dbus_message_test): enable and fix the
7715         tests for set_path, set_interface, set_member, etc.
7716
7717         * dbus/dbus-string.c (_dbus_string_insert_bytes): allow 0 bytes
7718
7719         * dbus/dbus-message.c (set_string_field): always just delete and
7720         re-append the field; accept NULL for deletion
7721         (re_align_fields_recurse): reimplement
7722         
7723 2003-10-26  Havoc Pennington  <hp@redhat.com>
7724
7725         * dbus/dbus-connection.c: fix docs to properly describe the
7726         disconnected message
7727         (_dbus_connection_notify_disconnected): remove this function; 
7728         we can't synchronously add the disconnected message, we have to 
7729         do it after we've queued any remaining real messages
7730         (_dbus_connection_get_dispatch_status_unlocked): queue the
7731         disconnect message only if the transport has finished queueing all
7732         its real messages and is disconnected.
7733         (dbus_connection_disconnect): update the dispatch status here
7734
7735 2003-10-22  Havoc Pennington  <hp@redhat.com>
7736
7737         * bus/bus.c (bus_context_check_security_policy): fix up assertion
7738
7739         * bus/connection.c (bus_transaction_send_from_driver): set the
7740         destination to the connection's base service
7741
7742 2003-10-20  Havoc Pennington  <hp@redhat.com>
7743
7744         hmm, make check is currently not passing.
7745         
7746         * doc/dbus-specification.xml: add requirement that custom type
7747         names follow the same rules as interface names.
7748
7749         * dbus/dbus-protocol.h: change some of the byte codes, to avoid
7750         duplication and allow 'c' to be 'custom'; dict is now 'm' for
7751         'map'
7752
7753         * doc/dbus-specification.xml: update type codes to match
7754         dbus-protocol.h, using the ASCII byte values. Rename type NAMED to
7755         CUSTOM. Add type OBJECT_PATH to the spec.
7756
7757 2003-10-17  Havoc Pennington  <hp@redhat.com>
7758
7759         * bus/driver.c (create_unique_client_name): use "." as separator
7760         in base service names instead of '-'
7761
7762         * dbus/dbus-string.c (_dbus_string_get_byte): allow getting nul
7763         byte at the end of the string
7764
7765         * dbus/dbus-internals.h (_DBUS_LIKELY, _DBUS_UNLIKELY): add
7766         optimization macros since string validation seems to be a slow
7767         point.
7768         
7769         * doc/dbus-specification.xml: restrict valid
7770         service/interface/member/error names. Add test suite code for the
7771         name validation.
7772
7773         * dbus/dbus-string.c: limit service/interface/member/error names 
7774         to [0-9][A-Z][a-z]_
7775
7776         * dbus/dbus-connection.c (dbus_connection_dispatch): add missing
7777         format arg to verbose spew
7778
7779         * glib/dbus-gproxy.c (dbus_gproxy_call_no_reply): if not out of
7780         memory, return instead of g_error
7781
7782         * test/test-service.c (path_message_func): support emitting a
7783         signal on request
7784
7785         * dbus/dbus-bus.c (init_connections_unlocked): only fill in
7786         activation bus type if DBUS_BUS_ACTIVATION was set; default to
7787         assuming the activation bus was the session bus so that services
7788         started manually will still register.
7789         (init_connections_unlocked): fix so that in OOM situation we get
7790         the same semantics when retrying the function
7791         
7792         * test/test-service.c (main): change to use path registration, to
7793         test those codepaths; register with DBUS_BUS_ACTIVATION rather
7794         than DBUS_BUS_SESSION
7795
7796 2003-10-16  Havoc Pennington  <hp@redhat.com>
7797
7798         * glib/dbus-gtest-main.c: bracket with #ifdef DBUS_BUILD_TESTS
7799
7800         * Makefile.am (GCOV_DIRS): remove "test", we don't care about test
7801         coverage of the tests
7802         (coverage-report.txt): don't move the .da and .bbg files around
7803
7804 2003-10-16  Havoc Pennington  <hp@redhat.com>
7805
7806         * bus/bus.c (struct BusContext): remove struct field I didn't mean
7807         to put there
7808
7809 2003-10-16  Havoc Pennington  <hp@redhat.com>
7810
7811         * bus/connection.c (bus_pending_reply_expired): either cancel or
7812         execute, not both
7813         (bus_connections_check_reply): use unlink, not remove_link, as we
7814         don't want to free the link; fixes double free mess
7815
7816         * dbus/dbus-pending-call.c (dbus_pending_call_block): fix in case
7817         where no reply was received
7818
7819         * dbus/dbus-connection.c (_dbus_pending_call_complete_and_unlock):
7820         fix a refcount leak
7821
7822         * bus/signals.c (match_rule_matches): add special cases for the
7823         bus driver, so you can match on sender/destination for it.
7824
7825         * dbus/dbus-sysdeps.c (_dbus_abort): print backtrace if
7826         DBUS_PRINT_BACKTRACE is set
7827
7828         * dbus/dbus-internals.c: add pid to assertion failure messages
7829
7830         * dbus/dbus-connection.c: add message type code to the debug spew
7831
7832         * glib/dbus-gproxy.c (gproxy_get_match_rule): match rules want
7833         sender=foo not service=foo
7834
7835         * dbus/dbus-bus.c (dbus_bus_get): if the activation bus is the
7836         session bus but DBUS_SESSION_BUS_ADDRESS isn't set, use 
7837         DBUS_ACTIVATION_ADDRESS instead
7838
7839         * bus/activation.c: set DBUS_SESSION_BUS_ADDRESS,
7840         DBUS_SYSTEM_BUS_ADDRESS if appropriate
7841
7842         * bus/bus.c (bus_context_new): handle OOM copying bus type into
7843         context struct
7844
7845         * dbus/dbus-message.c (dbus_message_iter_get_object_path): new function
7846         (dbus_message_iter_get_object_path_array): new function (half
7847         finished, disabled for the moment)
7848         
7849         * glib/dbus-gproxy.c (dbus_gproxy_end_call): properly handle
7850         DBUS_MESSAGE_TYPE_ERROR
7851
7852         * tools/dbus-launch.c (babysit): support DBUS_DEBUG_OUTPUT to
7853         avoid redirecting stderr to /dev/null
7854         (babysit): close stdin if not doing the "exit_with_session" thing
7855
7856         * dbus/dbus-sysdeps.c (_dbus_become_daemon): delete some leftover
7857         debug code; change DBUS_DEBUG_OUTPUT to only enable stderr, not
7858         stdout/stdin, so things don't get confused
7859         
7860         * bus/system.conf.in: fix to allow replies, I modified .conf
7861         instead of .conf.in again.
7862
7863 2003-10-14  David Zeuthen  <david@fubar.dk>
7864
7865         * python/dbus_bindings.pyx.in (MessageIter.get): fixed typo in
7866         argtype to arg_type when raising unknown arg type exception.
7867         Changed type list to reflect the changes in dbus-protocol.h so 
7868         the bindings actually work.
7869
7870 2003-10-14  Havoc Pennington  <hp@redhat.com>
7871
7872         * test/decode-gcov.c: support gcc 3.3 also, though gcc 3.3 seems
7873         to have a bug keeping it from outputting the .da files sometimes
7874         (string_get_string): don't append garbage nul bytes to the string.
7875
7876 2003-10-15  Seth Nickell  <seth@gnome.org>
7877
7878         * python/Makefile.am:
7879
7880         Include dbus_h_wrapper.h in the dist tarball.
7881
7882 2003-10-14  Havoc Pennington  <hp@redhat.com>
7883
7884         * bus/bus.c (bus_context_check_security_policy): revamp this to
7885         work more sanely with new policy-based requested reply setup
7886
7887         * bus/connection.c (bus_transaction_send_from_driver): set bus
7888         driver messages as no reply
7889
7890         * bus/policy.c (bus_client_policy_check_can_receive): handle a
7891         requested_reply attribute on allow/deny rules
7892
7893         * bus/system.conf: add <allow requested_reply="true"/>
7894
7895         * bus/driver.c (bus_driver_handle_message): fix check for replies
7896         sent to the bus driver, which was backward. How did this ever work
7897         at all though? I think I'm missing something.
7898
7899         * dbus/dbus-message.c (decode_header_data): require error and
7900         method return messages to have a reply serial field to be valid
7901         (_dbus_message_loader_queue_messages): break up this function;
7902         validate that reply serial and plain serial are nonzero; 
7903         clean up the OOM/error handling.
7904         (get_uint_field): don't return -1 from this
7905         (dbus_message_create_header): fix signed/unsigned bug
7906
7907         * bus/connection.c (bus_connections_expect_reply): save serial of
7908         the incoming message, not reply serial
7909
7910 2003-10-14  Havoc Pennington  <hp@redhat.com>
7911
7912         * bus/connection.c: implement pending reply tracking using
7913         BusExpireList
7914
7915         * bus/bus.c (bus_context_check_security_policy): verify that a
7916         reply is pending in order to allow a reply to be sent. Deny 
7917         messages of unknown type.
7918
7919         * bus/dbus-daemon-1.1.in: update to mention new resource limits
7920
7921         * bus/bus.c (bus_context_get_max_replies_per_connection): new
7922         (bus_context_get_reply_timeout): new
7923
7924 2003-10-13  Seth Nickell  <seth@gnome.org>
7925
7926         * python/Makefile.am:
7927
7928         Pass "make distcheck": remove a couple files from DIST_FILES
7929         that weren't included in the final version.
7930
7931 2003-10-12  Havoc Pennington  <hp@pobox.com>
7932
7933         Added test code that 1) starts an actual bus daemon and 2) uses
7934         DBusGProxy; fixed bugs that were revealed by the test. Lots 
7935         more testing possible, but this is the basic framework.
7936         
7937         * glib/dbus-gproxy.c (dbus_gproxy_manager_unregister): remove
7938         empty proxy lists from the proxy list hash
7939
7940         * dbus/dbus-message.c (dbus_message_iter_get_args_valist): add a
7941         couple of return_if_fail checks
7942
7943         * dbus/dbus-pending-call.c (_dbus_pending_call_new): use dbus_new0
7944         to allocate, so everything is cleared to NULL as it should be.
7945
7946         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): pass
7947         source as data to dbus_connection_set_timeout_functions() as the 
7948         timeout functions expected
7949
7950         * test/glib/run-test.sh: add a little script to start up a message
7951         bus and run tests using it
7952
7953         * tools/dbus-launch.1: updates
7954
7955         * tools/dbus-launch.c (main): add --config-file option
7956
7957         * tools/dbus-launch.c (main): remove confusing else if (runprog)
7958         that could never be reached.
7959
7960         * dbus/dbus-message.c (dbus_message_new_method_return) 
7961         (dbus_message_new_error, dbus_message_new_signal): set the
7962         no-reply-expected flag on all these. Redundant, but may
7963         as well be consistent.
7964
7965 2003-10-11  Havoc Pennington  <hp@pobox.com>
7966
7967         * test/decode-gcov.c (function_solve_graph): make broken block
7968         graph a nonfatal error since it seems to be broken. Need to debug
7969         this.
7970
7971         * dbus/dbus-marshal.c (_dbus_type_is_valid): new function since we
7972         can't just check type > INVALID < LAST anymore
7973
7974         * dbus/dbus-message.c (dbus_message_get_signature): new function
7975         (dbus_message_has_signature): new function
7976         (struct DBusMessage): add signature field (right now it isn't sent
7977         over the wire, just generated on the fly)
7978         (dbus_message_copy): copy the signature, and init strings to
7979         proper length to avoid some reallocs
7980         (dbus_message_iter_init_array_iterator): return void, since it
7981         can't fail
7982         (dbus_message_iter_init_dict_iterator): return void since it can't fail
7983         (_dbus_message_loader_queue_messages): add silly temporary hack to
7984         fill in message->signature on load
7985
7986         * dbus/dbus-protocol.h: change DBUS_TYPE_* values to be ASCII
7987         characters, so they are relatively human-readable.
7988
7989 2003-10-11  Havoc Pennington  <hp@pobox.com>
7990
7991         * dbus/dbus-message.c (_dbus_message_test): add more test
7992         coverage, but #if 0 for now since they uncover a bug 
7993         not fixed yet; I think in re_align_field_recurse()
7994         (re_align_field_recurse): add FIXME about broken assertion
7995
7996         * dbus/dbus-sysdeps.c (_dbus_sysdeps_test): add more test coverage
7997
7998         * bus/connection.c: share a couple code bits with expirelist.c
7999
8000         * bus/expirelist.h, bus/expirelist.c: implement a generic
8001         expire-items-after-N-seconds facility, was going to share between
8002         expiring connections and replies, decided not to use for expiring
8003         connections for now.
8004
8005         * COPYING: include AFL 2.0 (still need to change all the file headers)
8006
8007 2003-10-09  Havoc Pennington  <hp@redhat.com>
8008
8009         * configure.in: define DBUS_HAVE_GCC33_GCOV if we have
8010         gcc 3.3. Not that we do anything about it yet.
8011
8012         * bus/signals.c (bus_match_rule_parse): impose max length on the
8013         match rule text
8014
8015         * dbus/dbus-protocol.h: add DBUS_MAXIMUM_MATCH_RULE_LENGTH
8016
8017 2003-10-09  Havoc Pennington  <hp@redhat.com>
8018
8019         Make matching rules theoretically work (add parser).
8020         
8021         * bus/bus.c (bus_context_check_security_policy): fix up to handle
8022         the case where destination is explicitly specified as bus driver
8023         and someone else is eavesdropping.
8024         
8025         * bus/policy.c (bus_client_policy_check_can_receive): fix up
8026         definition of eavesdropping and assertion
8027
8028         * tools/dbus-send.c (main): use dbus_message_type_from_string
8029
8030         * bus/signals.c (bus_match_rule_parse): implement
8031
8032         * dbus/dbus-message.c (dbus_message_type_from_string): new
8033
8034         * dbus/dbus-errors.h (DBUS_ERROR_MATCH_RULE_INVALID): add
8035
8036 2003-10-02  Havoc Pennington  <hp@pobox.com>
8037
8038         * glib/dbus-gproxy.c (dbus_gproxy_call_no_reply): rename from
8039         dbus_gproxy_oneway_call
8040
8041         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main) 
8042         (dbus_server_setup_with_g_main): fix to allow calling them more
8043         than once on the same args
8044         (dbus_bus_get_with_g_main): new function
8045
8046 2003-10-02  Havoc Pennington  <hp@redhat.com>
8047
8048         * doc/dbus-tutorial.xml: write some stuff
8049
8050 2003-09-29  Havoc Pennington  <hp@pobox.com>
8051
8052         * configure.in: split checks for Doxygen from XML docs, check for
8053         xmlto
8054
8055         * doc/Makefile.am: XML-ify all the docs, and add a blank
8056         dbus-tutorial.xml
8057
8058 2003-09-29  Havoc Pennington  <hp@pobox.com>
8059
8060         * Merge dbus-object-names branch. To see the entire patch 
8061         do cvs diff -r DBUS_OBJECT_NAMES_BRANCHPOINT -r dbus-object-names,
8062         it's huuuuge though.
8063         To revert, I tagged DBUS_BEFORE_OBJECT_NAMES_MERGE.
8064         
8065 2003-09-28  Havoc Pennington  <hp@pobox.com>
8066
8067         * HACKING: update to reflect new server
8068
8069 2003-09-26  Seth Nickell  <seth@gnome.org>
8070
8071         * python/dbus.py:
8072         * python/examples/example-signals.py:
8073
8074         Start implementing some notions of signals. The API
8075         is really terrible, but they sort of work (with the
8076         exception of being able to filter by service, and to
8077         transmit signals *as* a particular service). Need to
8078         figure out how to make messages come from the service
8079         we registered :-(
8080         
8081         * python/dbus_bindings.pyx.in:
8082
8083         Removed duplicate message_handler callbacks.
8084         
8085 2003-09-25  Havoc Pennington  <hp@redhat.com>
8086
8087         * bus/session.conf.in: fix my mess
8088
8089 2003-09-25  Havoc Pennington  <hp@pobox.com>
8090
8091         * bus/session.conf.in: fix security policy, reported by Seth Nickell
8092
8093 2003-09-25  Seth Nickell  <seth@gnome.org>
8094
8095         * python/examples/example-service.py:
8096
8097         Johan notices complete wrong code in example-service, but
8098         completely wrong in a way that works exactly the same (!).
8099         Johan is confused, how could this possibly work? Example
8100         code fails to serve purpose of making things clear.
8101         Seth fixes.
8102
8103 2003-09-25  Mark McLoughlin  <mark@skynet.ie>
8104
8105         * doc/dbus-specification.sgml: don't require header fields
8106         to be 4-byte aligned and specify that fields should be
8107         distinguished from padding by the fact that zero is not
8108         a valid field name.
8109         
8110         * doc/TODO: remove re-alignment item and add item to doc
8111         the OBJECT_PATH type.
8112         
8113         * dbus/dbus-message.c:
8114         (HeaderField): rename the original member to value_offset
8115         and introduce a name_offset member to keep track of where
8116         the field actually begins.
8117         (adjust_field_offsets): remove.
8118         (append_int_field), (append_uint_field),
8119         (append_string_field): don't align the start of the header
8120         field to a 4-byte boundary.
8121         (get_next_field): impl finding the next marhsalled field
8122         after a given field.
8123         (re_align_field_recurse): impl re-aligning a number of
8124         already marshalled fields.
8125         (delete_field): impl deleting a field of any type and
8126         re-aligning any following fields.
8127         (delete_int_or_uint_field), (delete_string_field): remove.
8128         (set_int_field), (set_uint_field): no need to re-check
8129         that we have the correct type for the field.
8130         (set_string_field): ditto and impl re-aligning any
8131         following fields.
8132         (decode_header_data): update to take into account that
8133         the fields aren't 4-byte aligned any more and the new
8134         way to distinguish padding from header fields. Also,
8135         don't exit when there is too much header padding.
8136         (process_test_subdir): print the directory.
8137         (_dbus_message_test): add test to make sure a following
8138         field is re-aligned correctly after field deletion.
8139         
8140         * dbus/dbus-string.[ch]:
8141         (_dbus_string_insert_bytes): rename from insert_byte and
8142         allow the insert of multiple bytes.
8143         (_dbus_string_test): test inserting multiple bytes.
8144
8145         * dbus/dbus-marshal.c: (_dbus_marshal_set_string): add
8146         warning note to docs about having to re-align any
8147         marshalled values following the string.
8148         
8149         * dbus/dbus-message-builder.c:
8150         (append_string_field), (_dbus_message_data_load):
8151         don't align the header field.
8152         
8153         * dbus/dbus-auth.c: (process_test_subdir): print the
8154         directory.
8155         
8156         * test/break-loader.c: (randomly_add_one_byte): upd. for
8157         insert_byte change.
8158         
8159         * test/data/invalid-messages/bad-header-field-alignment.message:
8160         new test case.
8161         
8162         * test/data/valid-messages/unknown-header-field.message: shove
8163         a dict in the unknown field.
8164
8165 2003-09-25  Seth Nickell  <seth@gnome.org>
8166
8167         * python/dbus.py:
8168         * python/dbus_bindings.pyx.in:
8169
8170         Handle return values.
8171         
8172         * python/examples/example-client.py:
8173         * python/examples/example-service.py:
8174
8175         Pass back return values from the service to the client.
8176         
8177 2003-09-24  Seth Nickell  <seth@gnome.org>
8178
8179         * python/dbus.py:
8180
8181         Connect Object methods (when you are sharing an object) up... pass
8182         in a list of methods to be shared. Sharing all the methods just
8183         worked out too weird. You can now create nice Services over the
8184         DBus in Python. :-)
8185         
8186         * python/dbus_bindings.pyx.in:
8187
8188         Keep references to user_data tuples passed into C functions so 
8189         Python doesn't garbage collect on us.
8190
8191         Implement MethodReturn and Error subclasses of Message for creating
8192         DBusMessage's of those types.
8193         
8194         * python/examples/example-client.py:
8195         * python/examples/example-service.py:
8196
8197         Simple example code showing both how create DBus services and objects,
8198         and how to use them.
8199
8200 2003-09-23  Havoc Pennington  <hp@pobox.com>
8201
8202         * glib/dbus-gproxy.c (dbus_gproxy_manager_filter): implement
8203
8204 2003-09-23  Havoc Pennington  <hp@redhat.com>
8205
8206         * glib/dbus-gproxy.c (dbus_gproxy_connect_signal): implement
8207         (dbus_gproxy_disconnect_signal): implement
8208         (dbus_gproxy_manager_remove_signal_match): implement
8209         (dbus_gproxy_manager_add_signal_match): implement
8210         (dbus_gproxy_oneway_call): implement
8211
8212 2003-09-23  Havoc Pennington  <hp@pobox.com>
8213
8214         * glib/dbus-gproxy.c (struct DBusGProxy): convert to a GObject
8215         subclass. This means dropping the transparent thread safety of the
8216         proxy; you now need a separate proxy per-thread, or your own
8217         locking on the proxy. Probably right anyway.
8218         (dbus_gproxy_ref, dbus_gproxy_unref): nuke, just use g_object_ref
8219
8220 2003-09-22  Havoc Pennington  <hp@redhat.com>
8221
8222         * glib/dbus-gproxy.c (dbus_gproxy_manager_get): implement
8223
8224 2003-09-21  Seth Nickell  <seth@gnome.org>
8225
8226         First checkin of the Python bindings.
8227         
8228         * python/.cvsignore:
8229         * python/Makefile.am:
8230         * python/dbus_bindings.pyx.in:
8231         * python/dbus_h_wrapper.h:
8232
8233         Pieces for Pyrex to operate on, building a dbus_bindings.so
8234         python module for low-level access to the DBus APIs.
8235         
8236         * python/dbus.py:
8237
8238         High-level Python module for accessing DBus objects.
8239
8240         * configure.in:
8241         * Makefile.am:
8242
8243         Build stuff for the python bindings.
8244
8245         * acinclude.m4:
8246
8247         Extra macro needed for finding the Python C header files.
8248
8249 2003-09-21  Havoc Pennington  <hp@pobox.com>
8250
8251         * glib/dbus-gproxy.c (dbus_gproxy_manager_new): start
8252         implementing the proxy manager, didn't get very far.
8253
8254         * dbus/dbus-bus.c (dbus_bus_add_match): new
8255         (dbus_bus_remove_match): new
8256
8257         * glib/dbus-gproxy.c (dbus_gproxy_new_for_service): add a
8258         path_name argument; adjust the other not-yet-implemented 
8259         gproxy constructors to be what I think they should be.
8260
8261 2003-09-21  Havoc Pennington  <hp@pobox.com>
8262
8263         * dbus/dbus-bus.c (dbus_bus_get): set exit_on_disconnect to TRUE
8264         by default for message bus connections.
8265
8266         * dbus/dbus-connection.c (dbus_connection_dispatch): exit if
8267         exit_on_disconnect flag is set and we process the disconnected
8268         signal.
8269         (dbus_connection_set_exit_on_disconnect): new function
8270
8271 2003-09-21  Havoc Pennington  <hp@pobox.com>
8272
8273         Get matching rules mostly working in the bus; only actually
8274         parsing the rule text remains. However, the client side of
8275         "signal connections" hasn't been started, this patch is only the
8276         bus side.
8277         
8278         * dbus/dispatch.c: fix for the matching rules changes
8279         
8280         * bus/driver.c (bus_driver_handle_remove_match)
8281         (bus_driver_handle_add_match): send an ack reply from these
8282         method calls
8283
8284         * glib/dbus-gproxy.c (dbus_gproxy_begin_call): fix order of
8285         arguments, reported by Seth Nickell
8286
8287         * bus/config-parser.c (append_rule_from_element): support
8288         eavesdrop=true|false attribute on policies so match rules 
8289         can be prevented from snooping on the system bus.
8290
8291         * bus/dbus-daemon-1.1.in: consistently use terminology "sender"
8292         and "destination" in attribute names; fix some docs bugs; 
8293         add eavesdrop=true|false attribute
8294
8295         * bus/driver.c (bus_driver_handle_add_match)
8296         (bus_driver_handle_remove_match): handle AddMatch, RemoveMatch
8297         messages
8298
8299         * dbus/dbus-protocol.h (DBUS_SERVICE_ORG_FREEDESKTOP_BROADCAST): get
8300         rid of broadcast service concept, signals are just always broadcast
8301
8302         * bus/signals.c, bus/dispatch.c, bus/connection.c, bus/bus.c:
8303         mostly implement matching rules stuff (currently only exposed as signal
8304         connections)
8305
8306 2003-09-21  Mark McLoughlin  <mark@skynet.ie>
8307
8308         * doc/dbus-specification.sgml: Change the header field name
8309         to be an enum and update the rest of the spec to reference
8310         the fields using the conventinal name.
8311
8312         * dbus/dbus-protocol.h: update to reflect the spec.
8313
8314         * doc/TODO: add item to remove the 4 byte alignment requirement.
8315         
8316         * dbus/dbus-message.c: Remove the code to generalise the
8317         header/body length and serial number header fields as named
8318         header fields so we can reference field names using the 
8319         protocol values.
8320         (append_int_field), (append_uint_field), (append_string_field):
8321         Append the field name as a byte rather than four chars.
8322         (delete_int_or_uint_field), (delete_string_field): reflect the
8323         fact that the field name and typecode now occupy 4 bytes instead
8324         of 8.
8325         (decode_string_field), (decode_header_data): update to reflect
8326         protocol changes and move the field specific encoding from
8327         decode_string_field() back into decode_header_data().
8328         
8329         * dbus/dbus-internals.[ch]: (_dbus_header_field_to_string):
8330         Add utility to aid debugging.
8331         
8332         * dbus/dbus-message-builder.c:
8333         (append_string_field), (_dbus_message_data_load): Update to
8334         reflect protocol changes; Change the FIELD_NAME directive
8335         to HEADER_FIELD and allow it to take the field's conventional
8336         name rather than the actual value.
8337         
8338         * test/data/*/*.message: Update to use HEADER_FIELD instead
8339         of FIELD_NAME; Always align the header on an 8 byte boundary
8340         *before* updating the header length.
8341
8342 2003-09-15  Havoc Pennington  <hp@pobox.com>
8343
8344         * dbus/dbus-pending-call.c: add the get/set object data
8345         boilerplate as for DBusConnection, etc. Use generic object data
8346         for the notify callback.
8347
8348         * glib/dbus-gparser.c (parse_node): parse child nodes
8349
8350         * tools/dbus-viewer.c: more hacking on the dbus-viewer
8351         
8352         * glib/dbus-gutils.c (_dbus_gutils_split_path): add a file to
8353         contain functions shared between the convenience lib and the
8354         installed lib
8355
8356         * glib/Makefile.am (libdbus_glib_1_la_LDFLAGS): add
8357         -export-symbols-regex to the GLib library
8358
8359         * dbus/dbus-object-tree.c (_dbus_object_tree_dispatch_and_unlock):
8360         fix the locking in here, and add a default handler for
8361         Introspect() that just returns sub-nodes.
8362
8363 2003-09-14  Havoc Pennington  <hp@pobox.com>
8364
8365         * glib/dbus-gthread.c (dbus_g_thread_init): rename to make g_foo
8366         rather than gfoo consistent
8367
8368         * glib/dbus-gproxy.h: delete for now, move contents to
8369         dbus-glib.h, because the include files don't work right since we
8370         aren't in the dbus/ subdir.
8371         
8372         * glib/dbus-gproxy.c (dbus_gproxy_send): finish implementing
8373         (dbus_gproxy_end_call): finish
8374         (dbus_gproxy_begin_call): finish
8375
8376         * glib/dbus-gmain.c (dbus_set_g_error): new
8377
8378         * glib/dbus-gobject.c (handle_introspect): include information
8379         about child nodes in the introspection
8380
8381         * dbus/dbus-connection.c (dbus_connection_list_registered): new
8382         function to help in implementation of introspection
8383
8384         * dbus/dbus-object-tree.c
8385         (_dbus_object_tree_list_registered_and_unlock): new function
8386
8387 2003-09-12  Havoc Pennington  <hp@pobox.com>
8388
8389         * glib/dbus-gidl.h: add common base class for all the foo_info
8390         types
8391
8392         * tools/dbus-viewer.c: add GTK-based introspection UI thingy
8393         similar to kdcop
8394
8395         * test/Makefile.am: try test srcdir -ef . in addition to test
8396         srcdir = ., one of them should work (yeah lame)
8397         
8398         * glib/Makefile.am: build the "idl" parser stuff as a convenience
8399         library
8400         
8401         * glib/dbus-gparser.h: make description_load routines return
8402         NodeInfo* not Parser*
8403
8404         * Makefile.am (SUBDIRS): build test dir after all library dirs
8405
8406         * configure.in: add GTK+ detection
8407
8408 2003-09-07  Havoc Pennington  <hp@pobox.com>
8409
8410         * Make Doxygen contented.
8411
8412 2003-09-07  Havoc Pennington  <hp@pobox.com>
8413
8414         * doc/dbus-specification.sgml: more updates
8415
8416 2003-09-06  Havoc Pennington  <hp@pobox.com>
8417
8418         * doc/dbus-specification.sgml: partial updates
8419
8420         * bus/dbus-daemon-1.1.in: fix the config file docs for the
8421         zillionth time; hopefully I edited the right file this time.
8422
8423         * bus/config-parser.c (append_rule_from_element): support
8424         send_type, send_path, receive_type, receive_path
8425
8426         * bus/policy.c: add message type and path to the list of things
8427         that can be "firewalled"
8428
8429 2003-09-06  Havoc Pennington  <hp@pobox.com>
8430
8431         * dbus/dbus-connection.c (dbus_connection_register_fallback): add this
8432         (dbus_connection_register_object_path): make this not handle
8433         messages to paths below the given path
8434
8435 2003-09-03  Havoc Pennington  <hp@pobox.com>
8436
8437         * test/glib/Makefile.am: add this with random glib-linked test
8438         programs
8439
8440         * glib/Makefile.am: remove the random test programs from here,
8441         leave only the unit tests
8442
8443         * glib/dbus-gobject.c (_dbus_gobject_test): add test for 
8444         uscore/javacaps conversion, and fix     
8445         (get_object_property, set_object_property): change to .NET
8446         convention for mapping props to methods, set_FooBar/get_FooBar, 
8447         since one language has such a convention we may as well copy it. 
8448         Plus real methods in either getFooBar or get_foo_bar style won't 
8449         collide with this convention.
8450
8451 2003-09-01  Havoc Pennington  <hp@pobox.com>
8452
8453         * glib/dbus-gparser.c: implement
8454
8455         * glib/dbus-gobject.c: start implementing skeletons support
8456
8457         * configure.in: when disabling checks/assert, also define
8458         G_DISABLE_ASSERT and G_DISABLE_CHECKS
8459
8460 2003-09-01  Havoc Pennington  <hp@pobox.com>
8461
8462         * glib/Makefile.am: rearrange a bunch of files and get "make
8463         check" framework set up
8464
8465 2003-08-31  Havoc Pennington  <hp@pobox.com>
8466
8467         * fix build with --disable-tests
8468
8469 2003-08-30  Havoc Pennington  <hp@pobox.com>
8470
8471         * dbus/dbus-connection.c: purge DBusMessageHandler
8472
8473         * dbus/dbus-message-handler.c: remove DBusMessageHandler, just 
8474         use callbacks everywhere
8475
8476 2003-08-30  Havoc Pennington  <hp@pobox.com>
8477
8478         * test/data/valid-config-files/system.d/test.conf: change to 
8479         root for the user so warnings don't get printed
8480
8481         * dbus/dbus-message.c: add dbus_message_get_path,
8482         dbus_message_set_path
8483         
8484         * dbus/dbus-object-tree.c (do_test_dispatch): add test of
8485         dispatching to a path
8486
8487         * dbus/dbus-string.c (_dbus_string_validate_path): add
8488
8489         * dbus/dbus-marshal.c (_dbus_demarshal_object_path): implement
8490         (_dbus_marshal_object_path): implement
8491
8492         * dbus/dbus-protocol.h (DBUS_HEADER_FIELD_PATH): new header field 
8493         to contain the path to the target object
8494         (DBUS_HEADER_FIELD_SENDER_SERVICE): rename
8495         DBUS_HEADER_FIELD_SENDER to explicitly say it's the sender service
8496
8497 2003-08-30  Havoc Pennington  <hp@pobox.com>
8498
8499         * dbus/dbus-object-tree.c: write tests and fix the discovered bugs
8500
8501 2003-08-29  Havoc Pennington  <hp@pobox.com>
8502
8503         * dbus/dbus-object-tree.c: modify to allow overlapping paths to be
8504         registered
8505         (struct DBusObjectSubtree): shrink this
8506         a lot, since we may have a lot of them
8507         (_dbus_object_tree_free_all_unlocked): implement
8508         (_dbus_object_tree_dispatch_and_unlock): implement
8509
8510 2003-08-29  Havoc Pennington  <hp@pobox.com>
8511
8512         * dbus/dbus-internals.h: fix _DBUS_N_GLOBAL_LOCKS
8513
8514 2003-08-28  Havoc Pennington  <hp@pobox.com>
8515
8516         purge DBusObjectID
8517         
8518         * dbus/dbus-connection.c: port to no ObjectID, create a
8519         DBusObjectTree, rename ObjectTree to ObjectPath in public API
8520
8521         * dbus/dbus-connection.h (struct DBusObjectTreeVTable): delete 
8522         everything except UnregisterFunction and MessageFunction
8523         
8524         * dbus/dbus-marshal.c: port away from DBusObjectID, 
8525         add DBUS_TYPE_OBJECT_PATH
8526         
8527         * dbus/dbus-object-registry.[hc], dbus/dbus-object.[hc], 
8528         dbus/dbus-objectid.[hc]: remove these, we are moving to 
8529         path-based object IDs
8530
8531 2003-08-25  Havoc Pennington  <hp@pobox.com>
8532
8533         Just noticed that dbus_message_test is hosed, I wonder when I
8534         broke that. I thought make check was passing earlier...
8535         
8536         * dbus/dbus-object-tree.c: add new "object tree" to match DCOP 
8537         container tree, will replace most of dbus-object-registry
8538
8539         * dbus/dbus-string.c (_dbus_string_append_printf_valist): fix C99
8540         screwup
8541
8542 2003-08-19  Havoc Pennington  <hp@pobox.com>
8543
8544         * dbus/dbus-message.c (decode_string_field): support FIELD_SENDER
8545         (dbus_message_is_error): fix this function
8546
8547         * bus/dbus-daemon-1.1: clarify logic on when <deny>/<allow> rules
8548         match
8549
8550         * bus/policy.c (bus_client_policy_check_can_receive): fix code to
8551         reflect clarified man page
8552         (bus_client_policy_check_can_send): ditto
8553         
8554         * bus/session.conf.in: fixup
8555
8556         * bus/system.conf.in: fixup
8557
8558 2003-08-18  Havoc Pennington  <hp@redhat.com>
8559
8560         * dbus/dbus-hash.c (_dbus_hash_table_insert_two_strings): fix
8561
8562         * dbus/dbus-message.c (_dbus_message_loader_queue_messages): fix
8563         dumb bug created earlier (wrong order of args to
8564         decode_header_data())
8565         
8566         * tools/dbus-send.c: port
8567
8568         * tools/dbus-print-message.c (print_message): port
8569
8570         * test/data/*messages: port all messages over
8571         
8572         * dbus/dbus-message-builder.c: support including 
8573         message type
8574         
8575         * bus/driver.c: port over
8576         
8577         * bus/dispatch.c: port over to new stuff
8578
8579         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
8580         rename disconnect signal to "Disconnected"
8581
8582 2003-08-17  Havoc Pennington  <hp@pobox.com>
8583
8584         This doesn't compile yet, but syncing up so I can hack on it from
8585         work. What are branches for if not broken code? ;-)
8586         
8587         * dbus/dbus-protocol.h: remove DBUS_HEADER_FIELD_NAME, add
8588         DBUS_HEADER_FIELD_INTERFACE, DBUS_HEADER_FIELD_MEMBER,
8589         DBUS_HEADER_FIELD_ERROR_NAME
8590         
8591         * dbus/dbus-hash.c: Introduce DBUS_HASH_TWO_STRINGS as hack to use
8592         for the interface+member pairs
8593         (string_hash): change to use g_str_hash algorithm
8594         (find_direct_function, find_string_function): refactor these to
8595         share most code.
8596         
8597         * dbus/dbus-message.c: port all of this over to support 
8598         interface/member fields instead of name field
8599
8600         * dbus/dbus-object-registry.c: port over
8601         
8602         * dbus/dbus-string.c (_dbus_string_validate_interface): rename
8603         from _dbus_string_validate_name
8604
8605         * bus/dbus-daemon-1.1: change file format for the 
8606         <deny>/<allow> stuff to match new message naming scheme
8607
8608         * bus/policy.c: port over
8609
8610         * bus/config-parser.c: parse new format
8611         
8612 2003-08-16  Havoc Pennington  <hp@pobox.com>
8613
8614         * dbus/dbus-object-registry.c (add_and_remove_objects): remove
8615         broken assertion
8616
8617         * glib/dbus-gproxy.c: some hacking
8618
8619 2003-08-15  Havoc Pennington  <hp@redhat.com>
8620
8621         * dbus/dbus-pending-call.c (dbus_pending_call_block): implement
8622
8623         * dbus/dbus-connection.c
8624         (dbus_connection_send_with_reply_and_block): factor out internals;
8625         change to convert any error replies to DBusError instead of 
8626         returning them as a message
8627
8628 2003-08-15  Havoc Pennington  <hp@pobox.com>
8629
8630         * dbus/dbus-connection.c, 
8631         dbus/dbus-pending-call.c: Finish the pending call stuff
8632
8633 2003-08-14  Havoc Pennington  <hp@redhat.com>
8634
8635         * dbus/dbus-pending-call.c: start on new object that will replace
8636         DBusMessageHandler and ReplyHandlerData for tracking outstanding
8637         replies
8638
8639         * dbus/dbus-gproxy.c: start on proxy object used to communicate
8640         with remote interfaces
8641
8642         * dbus/dbus-gidl.c: do the boring boilerplate in here
8643         
8644 2003-08-12  Havoc Pennington  <hp@pobox.com>
8645
8646         * bus/dispatch.c (bus_dispatch): make this return proper 
8647         DBusHandlerResult to avoid DBUS_ERROR_UNKNOWN_METHOD
8648
8649         * dbus/dbus-errors.c (dbus_set_error): use
8650         _dbus_string_append_printf_valist
8651
8652         * dbus/dbus-string.c (_dbus_string_append_printf_valist)
8653         (_dbus_string_append_printf): new
8654
8655         * dbus/dbus-errors.h (DBUS_ERROR_UNKNOWN_MESSAGE): change to
8656         UNKNOWN_METHOD
8657
8658         * dbus/dbus-connection.c (dbus_connection_dispatch): handle
8659         DBUS_HANDLER_RESULT_NEED_MEMORY; send default error reply if a
8660         message is unhandled.
8661
8662 2003-08-11  Havoc Pennington  <hp@pobox.com>
8663
8664         * bus/test.c (client_disconnect_handler): change to return
8665         HANDLED (would have been REMOVE_MESSAGE)
8666
8667         * dbus/dbus-object.h (enum DBusHandlerResult): rename to
8668         HANDLED/NOT_YET_HANDLED instead of
8669         REMOVE_MESSAGE/ALLOW_MORE_HANDLERS to make it clearer how it 
8670         should be used.
8671
8672 2003-08-10  Havoc Pennington  <hp@pobox.com>
8673
8674         * tools/dbus-send.c (main): add --type argument, for now
8675         supporting only method_call and signal types.
8676
8677         * tools/dbus-print-message.c: print message type
8678
8679         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
8680         init connection->objects
8681
8682         * doc/dbus-specification.sgml: fix sgml
8683
8684         * bus/*.c: port over to object-instance API changes
8685
8686         * test/test-service.c: ditto
8687         
8688         * dbus/dbus-message.c (dbus_message_create_header): allow #NULL
8689         name, we will have to fix up the rest of the code to also handle
8690         this
8691         (dbus_message_new): generic message-creation call
8692         (set_string_field): allow appending name field
8693
8694 2003-08-06  Havoc Pennington  <hp@pobox.com>
8695
8696         * dbus/dbus-object-registry.c: implement signal connection 
8697         and dispatch
8698
8699         * dbus/dbus-connection.c (_dbus_connection_unref_unlocked): new
8700
8701         * dbus/dbus-internals.c (_dbus_memdup): new function
8702
8703 2003-08-02  Havoc Pennington  <hp@pobox.com>
8704
8705         * dbus/dbus-message.c (dbus_message_get_no_reply)
8706         (dbus_message_set_no_reply): add these and remove
8707         set_is_error/get_is_error
8708
8709         * dbus/dbus-protocol.h, doc/dbus-specification.sgml: 
8710         remove the ERROR flag, since there's now an ERROR type
8711
8712 2003-08-01  Havoc Pennington  <hp@pobox.com>
8713
8714         * dbus/dbus-object-registry.c (_dbus_object_registry_handle_and_unlock):
8715         implement
8716
8717         * dbus/dbus-message.c (dbus_message_get_type): new function
8718
8719         * doc/dbus-specification.sgml: add "type" byte to messages
8720
8721 2003-08-01  Havoc Pennington  <hp@pobox.com>
8722
8723         * dbus/dbus-protocol.h (DBUS_MESSAGE_TYPE_*): introduce
8724         a message type enum to distinguish kinds of message
8725         (DBUS_HEADER_FLAG_NO_REPLY_EXPECTED): flag for a message 
8726         that need not be replied to
8727
8728 2003-08-01  Havoc Pennington  <hp@pobox.com>
8729
8730         * dbus/dbus-marshal.c: adapt to DBusObjectID changes
8731         (unpack_8_octets): fix no-64-bit-int bug
8732
8733         * dbus/dbus-object-registry.c (validate_id): validate the 
8734         connection ID bits, not just the instance ID.
8735
8736         * dbus/dbus-connection.c (_dbus_connection_init_id): initialize
8737         the connection-global 33 bits of the object ID
8738
8739         * dbus/dbus-object-registry.c (info_from_entry): fill in 
8740         object ID in the new way
8741
8742         * dbus/dbus-objectid.h: rather than high/low bits, specifically 
8743         define server/client/instance bits.
8744
8745 2003-07-30  Havoc Pennington  <hp@pobox.com>
8746
8747         * dbus/dbus-connection.c (dbus_connection_register_object): fix
8748         build
8749
8750 2003-07-13  Havoc Pennington  <hp@pobox.com>
8751
8752         * dbus/dbus-object.h (struct DBusObjectVTable): add padding
8753         fields to DBusObjectVTable and DBusObjectInfo
8754
8755 2003-07-12  Havoc Pennington  <hp@pobox.com>
8756
8757         * dbus/dbus-object-registry.c: implement unit test,
8758         fix bugs discovered in process
8759
8760         * dbus/dbus-connection.c: remove handler_table and
8761         register_handler(), add DBusObjectRegistry usage
8762
8763         * dbus/dbus-objectid.c (dbus_object_id_is_null)
8764         (dbus_object_id_set_null): new functions
8765
8766 2003-07-08  Havoc Pennington  <hp@pobox.com>
8767
8768         * dbus/dbus-object.c: implement some of this
8769
8770         * dbus/dbus-object-registry.c
8771         (_dbus_object_registry_add_and_unlock): fill in the object_id out
8772         param
8773         (_dbus_object_registry_new): handle OOM
8774
8775 2003-07-08  Havoc Pennington  <hp@pobox.com>
8776
8777         * dbus/dbus-object.h: sketch out an API for registering objects
8778         with a connection, that allows us to use as little as 24 bytes
8779         per object and lets application code represent an object in 
8780         any conceivable way.
8781
8782         * dbus/dbus-object-registry.c: implement the hard bits of the
8783         DBusConnection aspect of object API. Not yet wired up.
8784         
8785 2003-07-06  Havoc Pennington  <hp@pobox.com>
8786
8787         * dbus/dbus-marshal.c (_dbus_marshal_set_object_id): new function
8788         (_dbus_marshal_object_id): new
8789         (_dbus_demarshal_object_id): new
8790         (_dbus_marshal_get_arg_end_pos): support object ID type, and
8791         consolidate identical switch cases. Don't conditionalize handling
8792         of DBUS_TYPE_UINT64, need to handle the type always.
8793         (_dbus_marshal_validate_arg): consolidate identical cases, and
8794         handle DBUS_TYPE_OBJECT_ID
8795
8796         * dbus/dbus-objectid.c: new file with DBusObjectID data type.
8797
8798         * dbus/dbus-protocol.h: add DBUS_TYPE_OBJECT_ID
8799
8800 2003-09-28  Havoc Pennington  <hp@pobox.com>
8801
8802         * real 0.13 release
8803
8804 2003-09-28  Havoc Pennington  <hp@pobox.com>
8805
8806         * doc/Makefile.am (dbus-specification.html): testing a funky hack
8807         to work with Debian db2html
8808
8809 2003-09-28  Havoc Pennington  <hp@pobox.com>
8810
8811         * configure.in: 0.13
8812
8813         * doc/Makefile.am (dbus-test-plan.html): accept nonexistence of
8814         stylesheet-images for benefit of Debian
8815         
8816         Change back to using filesystem-linked sockets for the system
8817         bus, so only root can create the default system bus address.
8818         
8819         * bus/system.conf.in: change to use
8820         DBUS_SYSTEM_BUS_DEFAULT_ADDRESS
8821
8822         * dbus/Makefile.am (INCLUDES): remove DBUS_SYSTEM_BUS_PATH define
8823         from here.
8824
8825         * configure.in: define DBUS_SYSTEM_BUS_DEFAULT_ADDRESS
8826         here, and AC_DEFINE DBUS_SYSTEM_PATH
8827
8828 2003-08-09  Anders Carlsson  <andersca@codefactory.se>
8829
8830         * doc/TODO:
8831         * doc/busconfig.dtd:
8832         Add busconfig DTD.
8833         
8834 2003-08-09  Anders Carlsson  <andersca@codefactory.se>
8835
8836         * doc/dbus-specification.sgml:
8837         Add activation reply values.
8838         
8839 2003-08-05  Havoc Pennington  <hp@redhat.com>
8840
8841         * configure.in: 0.12
8842
8843 2003-08-05  Anders Carlsson  <andersca@codefactory.se>
8844
8845         * glib/dbus-gmain.c: (watch_fd_new), (watch_fd_ref),
8846         (watch_fd_unref), (dbus_gsource_check), (dbus_gsource_dispatch),
8847         (add_watch), (remove_watch), (create_source):
8848         Refcount fds, fixes some reentrancy issues.
8849         
8850 2003-07-30  Havoc Pennington  <hp@redhat.com>
8851
8852         * dbus/dbus-bus.c (init_connections_unlocked): fix default system
8853         bus address to be abstract if we have abstract sockets
8854
8855         * NEWS: update
8856
8857 2003-07-28  Havoc Pennington  <hp@redhat.com>
8858
8859         * bus/messagebus.in: fix to avoid processname/servicename 
8860         confusion, from Michael Kearey
8861         https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=100965
8862         
8863 2003-07-23  Havoc Pennington  <hp@pobox.com>
8864
8865         * dbus/dbus-message.c (dbus_message_iter_get_named): 
8866         fix from Andy Hanton to remove broken "+1"
8867
8868 2003-07-16  Havoc Pennington  <hp@pobox.com>
8869
8870         * tools/dbus-launch.c (babysit): close stdout/stderr in the
8871         babysitter process, as suggested by Thomas Leonard, so 
8872         an "eval `dbus-launch --exit-with-session`" will actually 
8873         return
8874
8875 2003-07-16  Havoc Pennington  <hp@pobox.com>
8876
8877         * configure.in: print out EXPANDED_* variables in the summary at
8878         the end; clean up the code that computes EXPANDED_ variables and
8879         get the ones using exec_prefix right. Should make things work
8880         when you build without --prefix
8881
8882 2003-06-29  Havoc Pennington  <hp@pobox.com>
8883
8884         * mono/Test.cs (class Test): fire up a main loop and run it
8885
8886         * mono/DBus.cs (DBus): don't g_thread_init since it can only be
8887         done once, the app has to do it
8888
8889 2003-06-26  Havoc Pennington  <hp@pobox.com>
8890
8891         * mono/Connection.cs: set up connection with the glib main loop
8892
8893 2003-07-01  Havoc Pennington  <hp@redhat.com>
8894
8895         * doc/dbus-specification.sgml: clarify the format of a type code,
8896         change suggested by Jim Blandy
8897
8898 2003-06-29  Miloslav Trmac  <mitr@volny.cz>
8899
8900         * doc/Makefile.am:
8901         * tools/Makefile.am: Don't assume srcdir == builddir.
8902
8903         * dbus/dbus-memory.c (dbus_realloc): Don't check guards after shrinking
8904         the allocated block.
8905         (_dbus_memory_test): New function.
8906         * dbus/dbus-test.h: Add _dbus_memory_test ().
8907         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): Call it.
8908
8909         * dbus/dbus-message.c (decode_header_data): Use %.4s instead
8910         of %c%c%c%c.
8911         (dbus_message_new): Remove obsolete @todo.
8912
8913         * dbus/dbus-marshal.c (_dbus_marshal_set_int64)
8914         (_dbus_marshal_set_uint64): Fix comment.
8915
8916         * dbus/dbus-message.c (append_int_field, append_uint_field): Don't
8917         hardcode FIELD_REPLY_SERIAL.
8918
8919         * dbus/dbus-mainloop.c (_dbus_loop_remove_watch)
8920         (_dbus_loop_remove_timeout): Cast function pointers to (void *) for %p
8921
8922         * configure.in: Add -D_POSIX_C_SOURCE=199309L -DBSD_SOURCE to CFLAGS
8923         and disable DBUS_USE_ATOMIC_INT_486 when --enable-ansi is used
8924
8925 2003-06-24  Havoc Pennington  <hp@pobox.com>
8926
8927         * mono/*.cs: Use IntPtr.Zero instead of ((IntPtr) 0)
8928
8929 2003-06-23  Anders Carlsson  <andersca@codefactory.se>
8930
8931         * configure.in:
8932         * gcj/.cvsignore:
8933         * gcj/Hello.java:
8934         * gcj/Makefile.am:
8935         * gcj/TestMessage.java: (TestMessage), (TestMessage.main):
8936         * gcj/org/.cvsignore:
8937         * gcj/org/Makefile.am:
8938         * gcj/org/freedesktop/.cvsignore:
8939         * gcj/org/freedesktop/Makefile.am:
8940         * gcj/org/freedesktop/dbus/.cvsignore:
8941         * gcj/org/freedesktop/dbus/Makefile.am:
8942         * gcj/org/freedesktop/dbus/Message.java: (Message),
8943         (Message.Message):
8944         * gcj/org/freedesktop/dbus/natMessage.cc:
8945         Fix the build system.
8946
8947 2003-06-22  Havoc Pennington  <hp@pobox.com>
8948
8949         * mono/Connection.cs: add more bindings
8950
8951         * dbus/dbus-threads.c (dbus_threads_init): allow calling this
8952         more than once.
8953
8954 2003-06-22  Havoc Pennington  <hp@pobox.com>
8955
8956         * mono/Connection.cs, mono/DBus.cs, mono/Error.cs:
8957         Start wrapping more stuff.
8958
8959 2003-06-22  Havoc Pennington  <hp@pobox.com>
8960
8961         * mono/Message.cs: implement Message.Wrap() that ensures we only
8962         have a single C# wrapper per DBusMessage, assuming it works which
8963         it probably doesn't.
8964
8965         * dbus/dbus-message.c (dbus_message_allocate_data_slot): new
8966         (dbus_message_free_data_slot): new
8967         (dbus_message_set_data): new
8968         (dbus_message_get_data): new
8969
8970 2003-06-22  Havoc Pennington  <hp@pobox.com>
8971
8972         * dbus/dbus-dataslot.c (_dbus_data_slot_allocator_unref)
8973         (_dbus_data_slot_allocator_alloc): rework these to keep a
8974         reference count on each slot and automatically manage a global
8975         slot ID variable passed in by address
8976
8977         * bus/bus.c: convert to new dataslot API
8978
8979         * dbus/dbus-bus.c: convert to new dataslot API
8980
8981         * dbus/dbus-connection.c: convert to new dataslot API
8982
8983         * dbus/dbus-server.c: convert to new dataslot API
8984
8985         * glib/dbus-gmain.c: ditto
8986
8987         * bus/test.c: ditto
8988
8989         * bus/connection.c: ditto
8990
8991 2003-06-22  Anders Carlsson  <andersca@codefactory.se>
8992
8993         * configure.in: Add AM_PROG_GCJ and move AM_PROG_LIBTOOL
8994         after the gcj checks so that the correct configuration tags
8995         will be added to libtool.
8996
8997         * dbus-glib-1.pc.in: No need to specify any includes since
8998         dbus-1.pc.in has those.
8999
9000 2003-06-22  Havoc Pennington  <hp@pobox.com>
9001
9002         * mono/*, gcj/*, configure.in, Makefile.am:
9003         Check in makefiles and subdirs for mono and gcj bindings.
9004         Neither binding actually exists, just trying to get through
9005         all the build and other boring bits.
9006
9007 2003-06-21  Philip Blundell  <philb@gnu.org>
9008
9009         * tools/dbus-monitor.1: Updated.
9010
9011         * tools/dbus-send.1: Likewise.
9012
9013 2003-06-20  Anders Carlsson  <andersca@codefactory.se>
9014
9015         * dbus/dbus-transport-unix.c (unix_handle_watch): Check
9016         for hangup and error after checking read so we won't discard
9017         pending data if both hangup and read are set.
9018
9019 2003-06-19  Philip Blundell  <philb@gnu.org>
9020
9021         * tools/dbus-print-message.c (print_message): Handle BOOLEAN.
9022
9023         * tools/dbus-send.c: Accept both --system and --session.
9024
9025         * tools/dbus-monitor.c: Same here.
9026
9027 2003-06-19  Anders Carlsson  <andersca@codefactory.se>
9028
9029         * glib/dbus-glib.h: Fix so that dbus-glib.h can be used
9030         from C++ (Patch by Miloslav Trmac).
9031
9032 2003-06-15  Joe Shaw  <joe@assbarn.com>
9033
9034         * configure.in: Check for socklen_t.
9035
9036         * dbus/dbus-sysdeps.c: Define socklen_t if it's not defined.
9037
9038         * test/test-segfault.c: Add #include <sys/time.h>
9039
9040         * tools/Makefile.am: Add DBUS_X_CFLAGS to the INCLUDES since
9041         dbus-launch needs it.
9042
9043 2003-06-09  Havoc Pennington  <hp@redhat.com>
9044
9045         * dbus/dbus-sysdeps.c (_dbus_listen_unix_socket): don't use
9046         SUN_LEN, it breaks abstract socket usage
9047
9048         * dbus/dbus-internals.c (_dbus_verbose_real): only print PID at
9049         starts of lines.
9050
9051 2003-06-04  Havoc Pennington  <hp@pobox.com>
9052
9053         * dbus/dbus-server.c (dbus_server_listen): allow abstract sockets
9054         using unix:abstract=/foo, and when listening in a tmpdir
9055         i.e. unix:tmpdir=/tmp, always use abstract sockets if we can.
9056
9057         * dbus/dbus-transport.c (_dbus_transport_open): support
9058         unix:abstract=/foo
9059
9060         * dbus/dbus-server-unix.c (_dbus_server_new_for_domain_socket):
9061         support abstract sockets
9062
9063         * dbus/dbus-transport-unix.c
9064         (_dbus_transport_new_for_domain_socket): support abstract sockets
9065
9066         * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket): add "abstract"
9067         toggle as an argument, implement abstract namespace support
9068         (_dbus_listen_unix_socket): ditto
9069
9070         * configure.in: add --enable-abstract-sockets and implement
9071         a configure check for autodetection of the right value.
9072
9073 2003-06-01  Havoc Pennington  <hp@pobox.com>
9074
9075         * tools/dbus-cleanup-sockets.c: add utility to clean up sockets
9076         in /tmp (though on Linux this will end up being useless,
9077         when we add abstract namespace support)
9078
9079         * configure.in: define DBUS_SESSION_SOCKET_DIR in addition to
9080         subst'ing it
9081
9082 2003-05-28  Colin Walters  <walters@verbum.org>
9083
9084         * tools/dbus-monitor.c (main): Fix silly typo (s/--session/--system/).
9085
9086 2003-05-18  Anders Carlsson  <andersca@codefactory.se>
9087
9088         * dbus/dbus-message.c (dbus_message_new): Remove @todo.
9089
9090 2003-05-17  Colin Walters  <walters@gnu.org>
9091
9092         * tools/dbus-send.c: Don't exit with an error code if --help was
9093         passed.  Default to using the session bus instead of the system
9094         one.
9095
9096         * tools/dbus-launch.c: Ditto.
9097
9098         * tools/dbus-monitor.c: Ditto.
9099
9100         * tools/dbus-send.1: Update with new arguments.
9101
9102         * tools/dbus-launch.c: Emit code to export variables.  New
9103         arguments -s and -c to specify shell syntax, and a bit of code to
9104         autodetect syntax.  Also, allow specifying a program to run.
9105
9106         * tools/dbus-launch.1: Update with new arguments.
9107
9108         * tools/dbus-send.1: Ditto.
9109
9110         * tools/dbus-monitor.1: Ditto.
9111
9112 2003-05-17  Havoc Pennington  <hp@pobox.com>
9113
9114         * bus/config-parser.c (merge_included): merge in policies from
9115         child configuration file.
9116
9117         * bus/policy.c (bus_policy_merge): function to merge two policies
9118         together
9119
9120 2003-05-16  Havoc Pennington  <hp@redhat.com>
9121
9122         * dbus/dbus-connection.c: disable verbose lock spew
9123
9124         * tools/dbus-send.c: add --print-reply command line option
9125
9126         * tools/dbus-print-message.h (print_message): new util function
9127         shared by dbus-send and dbus-monitor
9128
9129         * tools/dbus-monitor.c (handler_func): exit on disconnect
9130
9131         * dbus/dbus-transport-unix.c (do_reading): if the transport is
9132         disconnected, don't try to use the read_watch
9133
9134         * dbus/dbus-watch.c (dbus_watch_get_enabled): assert watch != NULL
9135         so we can find this bug more easily
9136
9137 2003-05-16  Havoc Pennington  <hp@redhat.com>
9138
9139         * bus/policy.c (free_rule_list_func): avoid a crash when passed
9140         NULL as DBusHashTable is annoyingly likely to do.
9141
9142 2003-05-16  Colin Walters  <walters@verbum.org>
9143
9144         * tools/dbus-monitor.c: Add --session argument and usage()
9145         function.
9146
9147         * tools/dbus-monitor.1: Update with new --session arg.
9148
9149         * bus/Makefile.am (install-data-hook): Create
9150         $(libdir)/dbus-1.0/services so that the session bus is happy.
9151
9152 2003-05-15  Havoc Pennington  <hp@redhat.com>
9153
9154         * dbus/dbus-sysdeps.c (_dbus_atomic_dec, _dbus_atomic_inc): work
9155         on non-x86. ifdef's are evil.
9156
9157 2003-05-15  Havoc Pennington  <hp@redhat.com>
9158
9159         * configure.in: 0.11
9160
9161         * NEWS: update
9162
9163         * bus/Makefile.am (initddir): apparently we are supposed to put
9164         init scripts in /etc/rc.d/init.d not /etc/init.d
9165
9166         * bus/Makefile.am: remove the "you must --enable-tests to make
9167         check" as it broke distcheck
9168
9169         * bus/Makefile.am (install-data-hook): create /etc/dbus-1/system.d
9170
9171 2003-05-13  James Willcox  <jwillcox@gnome.org>
9172
9173         * configure.in:
9174         * bus/activation.c: (bus_activation_service_created),
9175         (bus_activation_activate_service):
9176         * bus/driver.c: (bus_driver_send_service_deleted),
9177         (bus_driver_send_service_created), (bus_driver_send_service_lost),
9178         (bus_driver_send_service_acquired),
9179         (bus_driver_send_welcome_message),
9180         (bus_driver_handle_list_services):
9181         * bus/session.conf.in:
9182         * dbus/dbus-bus.c: (dbus_bus_acquire_service),
9183         (dbus_bus_service_exists), (dbus_bus_activate_service):
9184         * dbus/dbus-bus.h:
9185
9186         Add some convenience API which lets you activate a service, and did a
9187         bunch of s/0/DBUS_TYPE_INVALID/ in calls to dbus_message_append_args()
9188         and dbus_message_get_args()
9189
9190 2003-05-11  Havoc Pennington  <hp@pobox.com>
9191
9192         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): fix to avoid
9193         calling _dbus_marshal_validate_arg() for every byte in a byte
9194         array, etc.
9195
9196         * dbus/dbus-message-handler.c: use atomic reference counting to
9197         reduce number of locks slightly; the global lock in here sucks
9198
9199         * dbus/dbus-connection.c
9200         (_dbus_connection_update_dispatch_status_and_unlock): variant of
9201         update_dispatch_status that can be called with lock held; then use
9202         in a couple places to reduce locking/unlocking
9203         (dbus_connection_send): hold the lock over the whole function
9204         instead of acquiring it twice.
9205
9206         * dbus/dbus-timeout.c (_dbus_timeout_new): handle OOM
9207
9208         * bus/connection.c (bus_connections_setup_connection): fix access
9209         to already-freed memory.
9210
9211         * dbus/dbus-connection.c: keep a little cache of linked list
9212         nodes, to avoid using the global linked list alloc lock in the
9213         normal send-message case. Instead we just use the connection lock
9214         that we already have to take.
9215
9216         * dbus/dbus-list.c (_dbus_list_find_last): new function
9217
9218         * dbus/dbus-sysdeps.c (_dbus_atomic_inc, _dbus_atomic_dec):
9219         change to use a struct for the atomic type; fix docs,
9220         they return value before increment, not after increment.
9221
9222         * dbus/dbus-string.c (_dbus_string_append_4_aligned)
9223         (_dbus_string_append_8_aligned): new functions to try to
9224         microoptimize this operation.
9225         (reallocate_for_length): break this out of set_length(), to
9226         improve profile info, and also so we can consider inlining the
9227         set_length() part.
9228
9229         * dbus/dbus-message.c (dbus_message_new_empty_header): init data
9230         strings with some preallocation, cuts down on our calls to realloc
9231         a fair bit. Though if we can get the "move entire string to empty
9232         string" optimization below to kick in here, it would be better.
9233
9234         * dbus/dbus-string.c (_dbus_string_move): just call
9235         _dbus_string_move_len
9236         (_dbus_string_move_len): add a special case for moving
9237         an entire string into an empty string; we can just
9238         swap the string data instead of doing any reallocs.
9239         (_dbus_string_init_preallocated): new function
9240
9241 2003-05-11  Havoc Pennington  <hp@pobox.com>
9242
9243         Write a "test-profile" that does echo client-server with threads;
9244         profile reveals lock contention, memcpy/realloc of buffers, and
9245         UTF-8 validation as hot spots. 20% of lock contention eliminated
9246         with dbus_atomic_inc/dec implementation on x86.  Much remaining
9247         contention is global mempool locks for GList and DBusList.
9248
9249         * dbus/dbus-sysdeps.c (_dbus_atomic_inc, _dbus_atomic_dec): add
9250         x86 implementation
9251
9252         * dbus/dbus-connection.c (struct DBusConnection): use
9253         dbus_atomic_t for the reference count
9254
9255         * dbus/dbus-message.c (struct DBusMessage): declare
9256         dbus_atomic_t values as volatile
9257
9258         * configure.in: code to detect ability to use atomic integer
9259         operations in assembly, from GLib patch
9260
9261         * dbus/dbus-internals.c (_dbus_verbose_real): call getpid every
9262         time, tired of it being wrong in threads and forked processes
9263
9264         * glib/test-profile.c: a little program to bounce messages back
9265         and forth between threads and eat CPU
9266
9267         * dbus/dbus-connection.c: add debug spew macros for debugging
9268         thread locks; include config.h at top; fix deadlock in
9269         dbus_connection_flush()
9270
9271 2003-05-08  Havoc Pennington  <hp@pobox.com>
9272
9273         * dbus/dbus-spawn.c: s/_exit/exit/ because it was keeping gcov
9274         data from getting written, and there wasn't a good reason to
9275         use _exit really.
9276
9277         * test/decode-gcov.c (mark_inside_dbus_build_tests): don't count
9278         dbus_verbose lines in test coverage
9279         (main): add list of functions sorted by # of untested blocks
9280         to the coverage report
9281
9282         * dbus/dbus-mempool.c: put some test-only code in DBUS_BUILD_TESTS
9283
9284         * dbus/dbus-marshal.c (_dbus_marshal_test): extend test coverage
9285
9286         * dbus/dbus-message-handler.c (_dbus_message_handler_test):
9287         extend test coverage
9288
9289         * test/data/auth/cancel.auth-script: test canceling an
9290         authentication
9291
9292         * dbus/Makefile.am: remove dbus-server-debug.[hc] for now, as they
9293         aren't used. in CVS history if we end up needing them.
9294
9295 2003-05-04  Havoc Pennington  <hp@pobox.com>
9296
9297         * dbus/dbus-message-handler.c (_dbus_message_handler_test): add
9298         unit test
9299
9300         * dbus/dbus-marshal.c (_dbus_demarshal_string_array): fix this
9301         function, which assumed length was in # of strings, not bytes
9302
9303         * dbus/dbus-message.c (_dbus_message_test): add tests for some
9304         missing coverage
9305
9306         * dbus/dbus-connection.c
9307         (_dbus_connection_queue_received_message): disable function for
9308         now, we are only using it in test mode
9309
9310         * dbus/dbus-message.c (_dbus_message_loader_queue_messages):
9311         remove a mistaken FIXME
9312
9313 2003-05-04  Havoc Pennington  <hp@pobox.com>
9314
9315         * dbus/dbus-connection.c (dbus_connection_preallocate_send):
9316         unlock mutex on successful return, patch from Anders Gustafsson
9317
9318 2003-05-04  Havoc Pennington  <hp@pobox.com>
9319
9320         * dbus-glib-1.pc.in (Requires): fix dependencies, from
9321         Anders Gustafsson
9322
9323 2003-05-04  Havoc Pennington  <hp@pobox.com>
9324
9325         * tools/dbus-launch.c: implement
9326
9327         * bus/main.c (main), bus/bus.c (bus_context_new):
9328         implement --print-pid and --fork
9329
9330 2003-05-03  Havoc Pennington  <hp@redhat.com>
9331
9332         * dbus/dbus-address.c (dbus_parse_address): fix bug when a key in
9333         the address had no value, and add to test suite. Fix and
9334         regression test from Miloslav Trmac
9335
9336 2003-05-03  Havoc Pennington  <hp@pobox.com>
9337
9338         * dbus/dbus-watch.c (dbus_watch_handle): warn and return if a
9339         watch is invalid when handled
9340
9341         * tools/Makefile.am, tools/dbus-launch.c, tools/dbus-launch.1: add
9342         dbus-launch utility to launch the bus from a shell script.  Didn't
9343         actually implement dbus-launch yet, it's just a placeholder still.
9344
9345 2003-05-03  Havoc Pennington  <hp@pobox.com>
9346
9347         * bus/Makefile.am, bus/dbus-daemon-1.1.in: man page for the
9348         daemon; also documents daemon config file, so replaces
9349         doc/config-file.txt. Corrected some stuff from config-file.txt in
9350         the process of moving it.
9351
9352 2003-05-03  Havoc Pennington  <hp@pobox.com>
9353
9354         * tools/Makefile.am, tools/dbus-send.1, tools/dbus-monitor.1:
9355         add some man pages
9356
9357 2003-05-03  Colin Walters  <walters@verbum.org>
9358
9359         * dbus/dbus-sysdeps.c (fill_user_info): Test against
9360         DBUS_UID_UNSET to determine whether to do a uid lookup or not.
9361
9362         * Makefile.am: Update to use new .pc versioning scheme.
9363
9364 2003-05-02  Havoc Pennington  <hp@redhat.com>
9365
9366         * bus/system.conf.in: allow send/receive to/from message bus
9367         service
9368
9369 2003-04-30  Havoc Pennington  <hp@redhat.com>
9370
9371         * configure.in: print a note when building with unit tests and
9372         without assertions
9373
9374 2003-04-30  Havoc Pennington  <hp@redhat.com>
9375
9376         * Makefile.am: add a check-local that complains if you didn't
9377         configure with --enable-tests
9378
9379 2003-04-29  Havoc Pennington  <hp@redhat.com>
9380
9381         * glib/dbus-gmain.c: docs cleanups
9382
9383         * dbus/dbus-types.h: add docs on int64 types
9384
9385         * dbus/dbus-memory.c: fix docs to avoid putting private API in
9386         public API docs section
9387
9388 2003-04-29  Havoc Pennington  <hp@redhat.com>
9389
9390         * dbus-1.pc.in, dbus-glib-1.pc.in: rename these from
9391         dbus-1.0.pc.in, dbus-glib-1.0.pc.in. As these change with the
9392         parallel install API version, not with the D-BUS package version.
9393
9394         * HACKING: move some of README over here
9395
9396         * README: updates, and document API/ABI policy
9397
9398         * configure.in: reindentation
9399
9400 2003-04-29  Havoc Pennington  <hp@redhat.com>
9401
9402         * dbus/dbus.h: add "you have to define DBUS_API_SUBJECT_TO_CHANGE
9403         to use this library" to be sure people have the right
9404         expectations.
9405
9406 2003-04-28  Havoc Pennington  <hp@redhat.com>
9407
9408         * configure.in: add --enable-docs which by default is auto yes if
9409         doxygen and db2html found, no otherwise; but can be forced on/off
9410
9411         * doc/Makefile.am: conditionalize whether to build docs on
9412         --enable-docs
9413
9414 2003-04-28  Havoc Pennington  <hp@redhat.com>
9415
9416         * configure.in: 0.10
9417
9418         * NEWS: update
9419
9420         * bus/system.conf.in: add <includedir>system.d</includedir>
9421
9422         * dbus/dbus-userdb.c (_dbus_user_database_lookup): fix bug when
9423         username was provided but not uid
9424
9425         * bus/config-parser.c (struct BusConfigParser): keep track of
9426         whether the parser is toplevel or was included; change some
9427         of the error handling if it's included.
9428
9429 2003-04-27  Havoc Pennington  <hp@pobox.com>
9430
9431         Unbreak my code...
9432
9433         * dbus/dbus-transport.c (_dbus_transport_get_dispatch_status):
9434         report correct status if we finish processing authentication
9435         inside this function.
9436
9437         * bus/activation.c (try_send_activation_failure): use
9438         bus_transaction_send_error_reply
9439
9440         * bus/connection.c (bus_connection_get_groups): return an error
9441         explaining the problem
9442
9443         * bus/bus.c (bus_context_check_security_policy): implement
9444         restriction here that inactive connections can only send the
9445         hello message. Also, allow bus driver to send anything to
9446         any recipient.
9447
9448         * bus/connection.c (bus_connection_complete): create the
9449         BusClientPolicy here instead of on-demand.
9450         (bus_connection_get_policy): don't return an error
9451
9452         * dbus/dbus-message.c (dbus_message_new_error_reply): allow NULL
9453         sender field in message being replied to
9454
9455         * bus/bus.c (bus_context_check_security_policy): fix silly typo
9456         causing it to return FALSE always
9457
9458         * bus/policy.c (bus_client_policy_check_can_send): fix bug where
9459         we checked sender rather than destination
9460
9461 2003-04-25  Havoc Pennington  <hp@redhat.com>
9462
9463         test suite is slightly hosed at the moment, will fix soon
9464
9465         * bus/connection.c (bus_connections_expire_incomplete): fix to
9466         properly disable the timeout when required
9467         (bus_connection_set_name): check whether we can remove incomplete
9468         connections timeout after we complete each connection.
9469
9470         * dbus/dbus-mainloop.c (check_timeout): fix this up a bit,
9471         probably still broken.
9472
9473         * bus/services.c (bus_registry_acquire_service): implement max
9474         number of services owned, and honor allow/deny rules on which
9475         services a connection can own.
9476
9477         * bus/connection.c (bus_connection_get_policy): report errors here
9478
9479         * bus/activation.c: implement limit on number of pending
9480         activations
9481
9482 2003-04-25  Havoc Pennington  <hp@redhat.com>
9483
9484         * dbus/dbus-transport.c (_dbus_transport_get_unix_user): fix bug
9485         where we used >= 0 instead of != DBUS_UID_UNSET.
9486
9487 2003-04-25  Havoc Pennington  <hp@redhat.com>
9488
9489         * glib/dbus-gmain.c (remove_watch): fix for a crash when watches
9490         were toggled without add/remove, fix from Anders Gustafsson
9491
9492 2003-04-24  Havoc Pennington  <hp@redhat.com>
9493
9494         * test/data/valid-config-files/basic.conf: add <limit> tags to
9495         this test
9496
9497         * bus/config-parser.h, bus/config-parser.c, bus/bus.c: Implement
9498         <limit> tag in configuration file.
9499
9500 2003-04-24  Havoc Pennington  <hp@redhat.com>
9501
9502         * bus/dispatch.c: somehow missed some name_is
9503
9504         * dbus/dbus-timeout.c (_dbus_timeout_set_enabled)
9505         (_dbus_timeout_set_interval): new
9506
9507         * bus/connection.c (bus_connections_setup_connection): record time
9508         when each connection is first set up, and expire them after the
9509         auth timeout passes.
9510
9511 2003-04-24  Havoc Pennington  <hp@redhat.com>
9512
9513         * dbus/dbus-message.c (dbus_message_name_is): rename
9514         (dbus_message_service_is): rename
9515         (dbus_message_sender_is): rename
9516         (dbus_message_get_service): rename
9517
9518 2003-04-24  Havoc Pennington  <hp@redhat.com>
9519
9520         * configure.in: add --enable-checks
9521
9522         * dbus/dbus-message.c (dbus_message_new): reverse name/service arguments
9523
9524         * dbus/dbus-connection.c (dbus_connection_preallocate_send): fix
9525         to use thread locks.
9526         (_dbus_connection_handler_destroyed_locked): move some private
9527         functions into proper docs group
9528
9529         * dbus/dbus-internals.h: add _dbus_return_if_fail,
9530         _dbus_return_val_if_fail
9531
9532         Throughout: use dbus_return_if_fail
9533
9534 2003-04-23  James Willcox  <jwillcox@gnome.org>
9535
9536         * glib/dbus-glib.h:
9537         * glib/dbus-gmain.c: (add_timeout), (wakeup_main), (create_source),
9538         (dbus_connection_setup_with_g_main),
9539         (dbus_server_setup_with_g_main):
9540         * glib/test-dbus-glib.c: (main):
9541         * glib/test-thread-client.c: (main):
9542         * glib/test-thread-server.c: (new_connection_callback), (main):
9543         * tools/dbus-monitor.c: (main):
9544
9545         Added a GMainContext argument to dbus_connection_setup_with_g_main()
9546         and dbus_server_setup_with_g_main().
9547
9548 2003-04-20  Havoc Pennington  <hp@pobox.com>
9549
9550         * doc/dbus-specification.sgml: document the restrictions on
9551         message and service names
9552
9553 2003-04-22  Havoc Pennington  <hp@redhat.com>
9554
9555         * dbus/dbus-message.c, dbus/dbus-marshal.c: add 64-bit integer
9556         support, and do some code cleanups to share more code and
9557         speed up array marshal/demarshal.
9558
9559         * dbus-1.0.pc.in (Cflags): put libdir include file in cflags
9560
9561         * configure.in: generate dbus-arch-deps.h
9562
9563         * dbus/dbus-protocol.h (DBUS_TYPE_INT64, DBUS_TYPE_UINT64): add
9564         64-bit typecodes
9565
9566 2003-04-22  Havoc Pennington  <hp@redhat.com>
9567
9568         * test/data/valid-messages/opposite-endian.message: fix test
9569         to use proper type for rply field
9570
9571         * test/data/invalid-messages: add tests for below validation
9572
9573         * dbus/dbus-message.c (decode_header_data): validate field types,
9574         and validate that named fields are valid names
9575         (decode_name_field): consider messages in the
9576         org.freedesktop.Local. namespace to be invalid.
9577
9578         * dbus/dbus-string.c (_dbus_string_validate_name): new
9579
9580 2003-04-19  Havoc Pennington  <hp@pobox.com>
9581
9582         * bus/driver.c (bus_driver_handle_hello): check limits and
9583         return an error if they are exceeded.
9584
9585         * bus/connection.c: maintain separate lists of active and inactive
9586         connections, and a count of each. Maintain count of completed
9587         connections per user. Implement code to check connection limits.
9588
9589         * dbus/dbus-list.c (_dbus_list_unlink): export
9590
9591         * bus/bus.c (bus_context_check_security_policy): enforce a maximum
9592         number of bytes in the message queue for a connection
9593
9594 2003-04-18  Havoc Pennington  <hp@pobox.com>
9595
9596         * dbus/dbus-auth.c (record_mechanisms): memleak fixes
9597
9598         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): fix some
9599         memleaks
9600
9601         * dbus/dbus-keyring.c (add_new_key): fix a memleak, and
9602         on realloc be sure to update the pointer in the keyring
9603
9604         * dbus/dbus-string.c (_dbus_string_zero): compensate for align
9605         offset to avoid writing to unallocated memory
9606
9607         * dbus/dbus-auth.c (process_rejected): return FALSE if we fail to
9608         try the next mechanism, so we properly handle OOM
9609
9610         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): fix double-free
9611         on OOM.
9612         (_dbus_keyring_new): fix OOM bug
9613         (_dbus_keyring_new_homedir): always set error; impose a maximum
9614         number of keys we'll load from the file, mostly to speed up the
9615         test suite and make its OOM checks more useful, but also for
9616         general sanity.
9617
9618         * dbus/dbus-auth.c (process_error_server): reject authentication
9619         if we get an error from the client
9620         (process_cancel): on cancel, send REJECTED, per the spec
9621         (process_error_client): send CANCEL if we get an error from the
9622         server.
9623
9624 2003-04-18  Havoc Pennington  <hp@pobox.com>
9625
9626         * dbus/dbus-mainloop.c (_dbus_loop_iterate): fix UMR in verbose
9627         debug spew
9628
9629         * dbus/dbus-auth.c (handle_client_data_cookie_sha1_mech): fix OOM
9630         handling problem
9631
9632         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): only whine
9633         about DBUS_TEST_HOMEDIR once
9634
9635         * bus/Makefile.am (TESTS_ENVIRONMENT): put DBUS_TEST_HOMEDIR in
9636         the environment
9637
9638         * bus/dispatch.c (bus_dispatch_sha1_test): actually load sha1
9639         config file so we test the right thing
9640
9641         Throughout: assorted docs improvements
9642
9643 2003-04-18  Havoc Pennington  <hp@pobox.com>
9644
9645         * glib/dbus-gmain.c: adapt to watch changes
9646
9647         * bus/bus.c, bus/activation.c, etc.: adjust to watch changes
9648
9649         * dbus/dbus-server.h: remove dbus_server_handle_watch
9650
9651         * dbus/dbus-connection.h: remove dbus_connection_handle_watch
9652
9653         * dbus/dbus-watch.c (dbus_watch_handle): change DBusWatch to work
9654         like DBusTimeout, so we don't need dbus_connection_handle_watch
9655         etc.
9656
9657 2003-04-17  Havoc Pennington  <hp@redhat.com>
9658
9659         * dbus/dbus-userdb.c, dbus/dbus-sysdeps.c: redo all the passwd
9660         database usage so it all goes via the DBusUserDatabase cache.
9661
9662 2003-04-17  Havoc Pennington  <hp@redhat.com>
9663
9664         * dbus/dbus-mainloop.c (_dbus_loop_iterate): fix logic so that if
9665         there was an OOM watch we skipped, we always return TRUE so we
9666         iterate again to have a look at it again. Fixes test suite hang.
9667         Code rearrangement also lets us lose some memset and only iterate
9668         over callbacks once.
9669
9670         * bus/driver.c (bus_driver_handle_message): sense of test for
9671         reply was backward
9672
9673 2003-04-16  Havoc Pennington  <hp@pobox.com>
9674
9675         * doc/dbus-specification.sgml: make spec say serials are unsigned
9676
9677         * dbus/dbus-message.h: change message serials to unsigned
9678
9679         * dbus/dbus-connection.c: adapt to message serials being unsigned
9680
9681 2003-04-15  Havoc Pennington  <hp@pobox.com>
9682
9683         * bus/bus.c: create and keep around a shared DBusUserDatabase
9684         object.
9685
9686         * bus/connection.c (bus_connection_get_groups): don't cache
9687         groups for user in the connection object, since user database
9688         object now does that.
9689
9690 2003-04-16  Havoc Pennington  <hp@redhat.com>
9691
9692         * dbus/dbus-message.c (_dbus_message_add_size_counter): keep a
9693         list of size counters
9694         (_dbus_message_loader_putback_message_link): put back a popped link
9695
9696         * dbus/dbus-connection.c
9697         (dbus_connection_set_max_live_messages_size): rename
9698         max_received_size
9699         (dbus_connection_get_outgoing_size): get size of outgoing
9700         queue
9701         (_dbus_connection_set_connection_counter): remove this cruft
9702
9703 2003-04-14  Havoc Pennington  <hp@redhat.com>
9704
9705         * dbus/dbus-userdb.c: user database abstraction, mostly to get
9706         caching, but at some point we might want to be able to use a
9707         different database.
9708
9709         * bus/dispatch.c (bus_dispatch_sha1_test): add a test that uses
9710         SHA1 conf file to test the sha1 auth mechanism, since the regular
9711         test always uses EXTERNAL when available.
9712
9713         * configure.in,
9714         test/data/valid-config-files/debug-allow-all-sha1.conf.in:
9715         add conf file that requires use of sha1 auth
9716
9717 2003-04-13  Havoc Pennington  <hp@pobox.com>
9718
9719         * tools/dbus-send.c, tools/dbus-monitor.c: two utility programs
9720         from Philip Blundell to send messages and monitor them.
9721
9722 2003-04-13  Havoc Pennington  <hp@pobox.com>
9723
9724         * dbus/dbus-mainloop.c: fix some reentrancy issues by refcounting
9725         callbacks
9726
9727         * test/data/valid-config-files/debug-allow-all.conf.in: allow all
9728         users
9729
9730         * dbus/dbus-transport.c (_dbus_transport_get_dispatch_status):
9731         fix to only recover unused bytes if we're already authenticated
9732         (_dbus_transport_get_is_authenticated): fix to still mark us
9733         authenticated if there are unused bytes.
9734
9735         * bus/dispatch.c: implement security policy checking
9736
9737         * bus/connection.c (bus_transaction_send_from_driver): new
9738
9739         * bus/bus.c (bus_context_check_security_policy): new
9740
9741         * bus/dispatch.c (send_service_nonexistent_error): delete this,
9742         now we just set the DBusError and it gets converted to an error
9743         reply.
9744
9745         * bus/connection.c (allow_user_function): enable code using actual
9746         data from the config file
9747
9748         * bus/policy.c (list_allows_user): handle wildcard rules for
9749         user/group connection perms
9750
9751 2003-04-13  Havoc Pennington  <hp@pobox.com>
9752
9753         * bus/config-parser.c: Load up the BusPolicy and BusPolicyRules
9754
9755         * dbus/dbus-sysdeps.c (_dbus_get_user_id): new function
9756
9757         * bus/policy.c (bus_policy_append_mandatory_rule)
9758         (bus_policy_append_default_rule, bus_policy_append_user_rule)
9759         (bus_policy_append_group_rule): new functions
9760
9761 2003-04-12  Havoc Pennington  <hp@pobox.com>
9762
9763         * bus/config-parser.c (bus_config_parser_new): fix a memleak
9764
9765         * dbus/dbus-sysdeps.c: change DBusCredentials to use longs for
9766         the pid/gid/uid, just for paranoia.
9767
9768         * test/break-loader.c (randomly_do_n_things): find a byte
9769         containing a type code, and randomly change it to a different
9770         type code.
9771
9772 2003-04-12  Havoc Pennington  <hp@pobox.com>
9773
9774         * bus/policy.h: change BusPolicy to be the thing from the config
9775         file, and rename old BusPolicy to BusClientPolicy
9776
9777         * bus/bus.c, bus/connection.c, bus/config-parser.c: change to
9778         match change in how policy works
9779
9780         * dbus/dbus-internals.h: mark assert_not_reached as
9781         __attribute((noreturn))__
9782
9783 2003-04-11  Havoc Pennington  <hp@redhat.com>
9784
9785         * doc/dbus-specification.sgml: fix a spot with the wrong name for
9786         the broadcast service. Use boolean return for ServiceExists.
9787
9788 2003-04-11  Havoc Pennington  <hp@redhat.com>
9789
9790         * configure.in: add another directory to look for qt in.
9791
9792 2003-04-11  Havoc Pennington  <hp@redhat.com>
9793
9794         * AUTHORS: add Colin Walters
9795
9796 2003-04-11  Havoc Pennington  <hp@redhat.com>
9797
9798         * NEWS: update
9799
9800         * configure.in: 0.9
9801
9802 2003-04-11  Havoc Pennington  <hp@redhat.com>
9803
9804         * bus/messagebus.in: remove pid file when stopping the
9805         message bus, since the bus won't have privileges to remove it
9806         itself.
9807
9808 2003-04-11  Havoc Pennington  <hp@redhat.com>
9809
9810         * bus/bus.c (bus_context_new): move credentials change after
9811         creating pidfile
9812
9813 2003-04-11  Havoc Pennington  <hp@pobox.com>
9814
9815         * test/decode-gcov.c: add "below average functions" to the
9816         coverage report, and change how some of the code works.
9817
9818         * bus/test-main.c: bracket some stuff in DBUS_BUILD_TESTS so it's
9819         not in the coverage stats.
9820
9821         * test/test-service.c (main): use _dbus_verbose not fprintf in a
9822         couple places so running the test suite doesn't result in megaspam.
9823
9824 2003-04-11  Havoc Pennington  <hp@pobox.com>
9825
9826         * bus/dispatch.c (check_existent_service_activation): accept a no
9827         memory error in a place we didn't before
9828
9829         * bus/test.c (bus_test_run_everything): remove hacky "do it twice
9830         in case the first one failed," since the test suite is less
9831         broken now.
9832
9833 2003-04-10  Havoc Pennington  <hp@pobox.com>
9834
9835         * bus/dispatch.c (check_segfault_service_activation): add test
9836         for launching an executable that just crashes.
9837
9838         * test/test-segfault.c (main): try setting coredumpsize to 0 so we
9839         don't leave a million cores. We'll see how portable this is.
9840
9841 2003-04-10  Havoc Pennington  <hp@pobox.com>
9842
9843         * dbus/dbus-spawn.c (_dbus_spawn_async_with_babysitter): move all
9844         the possible parent failures before we fork, so that we don't
9845         fail to create a babysitter after creating the child.
9846
9847         * bus/activation.c (bus_activation_activate_service): kill child
9848         if we don't successfully complete the activation.
9849
9850 2003-04-10  Havoc Pennington  <hp@redhat.com>
9851
9852         * dbus/dbus-connection.c (dbus_connection_flush): don't spin on
9853         the connection if it's disconnected
9854
9855         * bus/activation.c (bus_activation_service_created): use new
9856         transaction features to roll back removal of pending activation if
9857         we don't successfully create the service after all. Don't remove
9858         pending activation if the function fails.
9859
9860         * dbus/dbus-list.c (_dbus_list_insert_before_link)
9861         (_dbus_list_insert_after_link): new code to facilitate
9862         services.c fixes
9863
9864         * dbus/dbus-hash.c (_dbus_hash_table_insert_string_preallocated):
9865         new functionality, so we can preallocate the ability to insert
9866         into a hash table.
9867
9868         * bus/connection.c (bus_transaction_add_cancel_hook): new function
9869         allowing us to put custom hooks in a transaction to be used for
9870         cancelling said transaction
9871
9872         * doc/dbus-specification.sgml: add some discussion of secondary
9873         service owners, and disallow zero-length service names
9874
9875         * bus/services.c (bus_registry_acquire_service): new function,
9876         splits out part of bus_driver_handle_acquire_service() and fixes
9877         a bug where we didn't remove the service doing the acquiring
9878         from the secondary queue if we failed to remove the current owner
9879         from the front of the queue.
9880
9881 2003-04-10  Alexander Larsson  <alexl@redhat.com>
9882
9883         * doc/dbus-specification.sgml:
9884         s/org.freedesktop.Broadcast/org.freedesktop.DBus.Broadcast/
9885
9886 2003-04-10  Alexander Larsson  <alexl@redhat.com>
9887
9888         * bus/.cvsignore:
9889         * glib/.cvsignore:
9890         * test/.cvsignore:
9891         Added files to cvsignore
9892
9893         * dbus/dbus-message.h:
9894         * dbus/dbus-message.c: (dbus_message_iter_get_named):
9895         Make get_named() take two out argument and return a boolean.
9896         (dbus_message_iter_get_args_valist):
9897         Update usage of get_named().
9898         (dbus_message_iter_append_byte):
9899         Fix typo
9900         (dbus_message_iter_append_named)
9901         Fix typo
9902         (message_iter_test), (check_message_handling_type), (_dbus_message_test):
9903         More tests.
9904
9905 2003-04-10  Alexander Larsson  <alexl@redhat.com>
9906
9907         * dbus/dbus-marshal.[ch]:
9908         Add array_type_pos argument to _dbus_marshal_validate_arg.
9909         Let you pass a NULL end_pos to _dbus_marshal_validate_type.
9910
9911         * dbus/dbus-message.[ch]:
9912         Multi-dimensional arrays have full type specification in the
9913         outermost array. Iter code re-arranged to handle this.
9914         Added some more iter tests.
9915
9916         * doc/dbus-specification.sgml:
9917         Add me to authors.
9918         Remove old FIXME.
9919         Update new array encoding description.
9920         Correct DBUS_SERVICE_FLAGS_REPLACE_EXISTING description.
9921
9922         * test/data/invalid-messages/array-with-mixed-types.message:
9923         * test/data/valid-messages/array-of-array-of-uint32.message:
9924         Change to the new array format.
9925
9926         * test/data/invalid-messages/too-short-dict.message:
9927         Fix bug in test.
9928
9929         * test/data/valid-messages/recursive-types.message:
9930         Fix up and extend test.
9931
9932 2003-04-10  Havoc Pennington  <hp@pobox.com>
9933
9934         * bus/dispatch.c: lots of fixes
9935
9936         * dbus/dbus-mainloop.c (_dbus_loop_dispatch): export
9937         (_dbus_loop_iterate): remove old "quit if no callbacks" code,
9938         that was crack, broke the test service.
9939
9940         * dbus/dbus-transport.c (_dbus_transport_open): fix error
9941         handling to avoid piling up errors if we get a failure on the
9942         first address.
9943
9944         * dbus/dbus-internals.c (_dbus_real_assert_not_reached): include
9945         pid in assertion failures.
9946
9947         * dbus/dbus-mainloop.c (_dbus_loop_iterate): use static arrays up
9948         to some fixed size of file descriptor array. Don't return TRUE
9949         anytime a timeout exists, that led to lots of busy loop silliness
9950         in the tests.
9951
9952 2003-04-09  Havoc Pennington  <hp@redhat.com>
9953
9954         * dbus/dbus-mainloop.c (check_timeout): fix timeouts, I thought
9955         I'd checked this in earlier but hadn't.
9956
9957 2003-04-09  Havoc Pennington  <hp@redhat.com>
9958
9959         * bus/dispatch.c (bus_dispatch_test): get a bit further through
9960         the activation test (man this is getting old!)
9961
9962 2003-04-09  Havoc Pennington  <hp@redhat.com>
9963
9964         * test/test-utils.c: use dispatch status function to fix this up
9965
9966         * bus/connection.c (connection_watch_callback): don't dispatch
9967         from here
9968         (connection_timeout_callback): don't dispatch from here
9969         (bus_connections_setup_connection): set the dispatch status function
9970         (bus_connection_disconnected): unset it
9971
9972         * dbus/dbus-mainloop.c (_dbus_loop_queue_dispatch): new function
9973         used to add a connection to be dispatched
9974         (_dbus_loop_iterate): do the dispatching at the end of each
9975         iteration
9976
9977         * dbus/dbus-connection.c
9978         (dbus_connection_set_dispatch_status_function): new function
9979         allowing us to fix up main loop usage
9980         (_dbus_connection_last_unref): free all the various function
9981         user data
9982         (dbus_connection_dispatch): call the DispatchStatusFunction
9983         whenever this function returns
9984         (dbus_connection_handle_watch): call DispatchStatusFunction
9985         (dbus_connection_send_with_reply_and_block): call DispatchStatusFunction
9986         (reply_handler_timeout): call DispatchStatusFunction
9987         (dbus_connection_flush): call DispatchStatusFunction
9988
9989 2003-04-09  Havoc Pennington  <hp@redhat.com>
9990
9991         * dbus/dbus-bus.c (dbus_bus_register): fix up error handling and
9992         a memory leak
9993
9994         * bus/dispatch.c (check_service_activated): fix bug in test
9995
9996         * dbus/dbus-mainloop.c (check_timeout): fix this up
9997
9998         * dbus/dbus-internals.c (_dbus_verbose_real): include PID in
9999         verbose output so we can sort out output from different processes,
10000         e.g. in the activation case.
10001
10002 2003-04-08  Colin Walters  <walters@gnu.org>
10003
10004         * bus/bus.c (struct BusContext) [pidfile]: New member, to store
10005         the pid file.
10006         (bus_context_new): Set it.
10007         (bus_context_unref): Use it to delete the pid file.
10008
10009 2003-04-08  Havoc Pennington  <hp@redhat.com>
10010
10011         * test/data/invalid-messages/array-with-mixed-types.message:
10012         regression test that fails for the moment
10013
10014         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): reorder
10015         tests for convenience
10016
10017         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): don't allow
10018         array of nil, it broke things.
10019
10020         * test/data/invalid-messages/array-of-nil.message: regression test
10021
10022         * test/data/valid-messages/array-of-array-of-uint32.message:
10023         happened to write this so added it to suite
10024
10025 2003-04-08  Havoc Pennington  <hp@redhat.com>
10026
10027         * bus/driver.c (bus_driver_handle_acquire_service): init
10028         retval/reply before checking name
10029
10030         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): add a
10031         recursion depth argument
10032
10033         * dbus/dbus-message.h (struct DBusMessageIter): put some padding
10034         in the public struct for future extension
10035
10036         * dbus/dbus-message-builder.c (_dbus_message_data_load): fix
10037         typo
10038
10039         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): fix a verbose
10040         message
10041
10042         * doc/dbus-specification.sgml: fix typo
10043
10044 2003-04-08  Alexander Larsson  <alexl@redhat.com>
10045
10046         Implemented recursive types, named types and new-style iters
10047
10048         * bus/driver.c:
10049         * glib/test-thread-client.c: (thread_func):
10050         * glib/test-thread-server.c: (handle_test_message):
10051         * test/test-service.c: (handle_echo):
10052         Update to new api
10053
10054         * dbus/Makefile.am:
10055         * dbus/dbus-dict.c:
10056         * dbus/dbus-dict.h:
10057         * dbus/dbus.h
10058         Remove DBusDict
10059
10060         * dbus/dbus-internals.c: (_dbus_type_to_string):
10061         Update for new types.
10062
10063         * dbus/dbus-marshal.[ch]:
10064         Implement recursive types and the new marshalling format.
10065         Remove hardcoded dict marshalling.
10066         Marshal named types.
10067
10068         * dbus/dbus-message-builder.c:
10069         Add BYTE_ARRAY.
10070         Remove references to old types
10071
10072         * dbus/dbus-message.[ch]:
10073         New non-refcounted iter API that supports recursive iters.
10074         Use iters for appending, including support for recursive
10075         iters.
10076         Add byte and named type support.
10077         Update everything to new marshalling formats.
10078         Add tests for new API.
10079
10080         * dbus/dbus-protocol.h:
10081         Remove old array types.
10082         Add types: BYTE, ARRAY, DICT, NAMED
10083
10084         * dbus/dbus-string.c:
10085         * dbus/dbus-sysdeps.c:
10086         Make parse_double locale safe.
10087
10088         * dbus/dbus-test-main.c:
10089         Call setlocale.
10090
10091         * dbus/dbus-test.c:
10092         Kill dict test
10093
10094         * doc/dbus-specification.sgml:
10095         Update spec
10096
10097         * test/data/incomplete-messages/missing-body.message:
10098         * test/data/invalid-messages/bad-boolean.message:
10099         * test/data/invalid-messages/bad-boolean-array.message:
10100         * test/data/invalid-messages/boolean-array-length-too-long.message-raw:
10101         * test/data/invalid-messages/boolean-has-no-value.message-raw:
10102         * test/data/invalid-messages/too-short-dict.message:
10103         * test/data/valid-messages/dict-simple.message:
10104         * test/data/valid-messages/dict.message:
10105         * test/data/valid-messages/emptiness.message:
10106         * test/data/valid-messages/lots-of-arguments.message:
10107         * test/data/valid-messages/no-padding.message:
10108         * test/data/valid-messages/recursive-types.message:
10109         Add missing NAME fields
10110         Fix up dicts & arrays
10111
10112         * test/data/invalid-messages/dict-with-nil-value.message:
10113         Removed, this is not invalid anymore.
10114
10115         * test/data/valid-messages/recursive-types.message:
10116         Add new test for deeply recursive types.
10117
10118 2003-04-07  Havoc Pennington  <hp@pobox.com>
10119
10120         * bus/driver.c (bus_driver_handle_acquire_service): return an
10121         error if you try to acquire a service that starts with ':'
10122
10123 2003-04-07  Havoc Pennington  <hp@redhat.com>
10124
10125         * doc/dbus-specification.sgml: require that base service names
10126         start with ':' and that the base service is created/deleted
10127         as first and last things a connection does on the bus
10128
10129         * bus/dispatch.c (check_existent_service_activation): lots more
10130         work on the activation test; it doesn't fully pass yet...
10131
10132         * test/test-service.c (main): fix so we don't memleak the
10133         connection to the message bus
10134         (filter_func): accept a message asking us to exit
10135
10136 2003-04-06  Havoc Pennington  <hp@pobox.com>
10137
10138         * qt/Makefile.am (dbusinclude_HEADERS): install dbus-qt.h,
10139         from Colin Walters
10140
10141         * configure.in: fixes to Qt detection from Colin Walters
10142
10143         * doc/Makefile.am: Only remove generated docbook dirs if they
10144         exist, from Colin Walters
10145
10146         * dbus/dbus-bus.c: change how we set well-known connections to
10147         NULL, so that it works if a single connection is stored in
10148         two well-known array slots.
10149
10150         * test/Makefile.am: remove a lot of stuff that isn't immediately
10151         useful, it's in CVS history if we want it.
10152
10153         * test/test-service.c: use dbus-mainloop instead of that
10154         watch.[hc] crack
10155
10156 2003-04-06  Havoc Pennington  <hp@pobox.com>
10157
10158         * dbus/Makefile.am: split lists of sources into stuff that goes in
10159         the library, util functions that go in the lib and are also used
10160         elsewhere, and util functions that are used in tests/daemon but
10161         don't go in the lib.
10162
10163         * dbus/dbus-mainloop.h, dbus/dbus-mainloop.c: move bus/loop.[hc]
10164         here so it can be used in test binaries also
10165
10166 2003-04-06  Havoc Pennington  <hp@pobox.com>
10167
10168         * dbus/dbus-sysdeps.c (_dbus_become_daemon): write the pidfile
10169         here in the parent process, so we can return an error if it
10170         fails. Also, move some of the code into the child so the parent
10171         is less hosed if we fail midway through.
10172
10173         * bus/bus.c (bus_context_new): move pidfile detection further up
10174         in the function, before we start overwriting sockets and such.
10175
10176         * bus/messagebus.in: adjust this a bit, not sure if it will work.
10177
10178         * configure.in: add --with-system-pid-file and --with-system-socket
10179
10180 2003-04-06  Colin Walters  <walters@verbum.org>
10181
10182         * configure.in (DBUS_SYSTEM_PID_FILE): New variable.
10183
10184         * bus/system.conf.in: Declare a pidfile.
10185
10186         * bus/bus.c (bus_context_new): Test for an existing pid file, and
10187         create one (if appropriate).
10188
10189         * bus/config-parser.c (enum ElementType) [ELEMENT_PIDFILE]: New.
10190         (struct BusConfigParser) [pidfile]: New.
10191         (element_type_to_name, merge_included, start_busconfig_child)
10192         (bus_config_parser_end_element, bus_config_parser_content): Handle it.
10193         (bus_config_parser_unref): Free it.
10194         (bus_config_parser_get_pidfile): New function.
10195
10196         * bus/config-parser.h (_dbus_write_pid_file): Prototype.
10197
10198         * dbus/dbus-errors.h (DBUS_ERROR_PIDFILE_EXISTS): New error.
10199
10200         * dbus/dbus-sysdeps.c (_dbus_write_pid_file): New function.
10201
10202         * dbus/dbus-sysdeps.h: Prototype it.
10203
10204 2003-04-06  Havoc Pennington  <hp@pobox.com>
10205
10206         * bus/bus.c (bus_context_new): print the address in here, rather
10207         than in main(), because we need to do it before forking the daemon
10208
10209         * bus/dispatch.c (send_service_nonexistent_error): set the sender
10210         on the service nonexistent error
10211
10212         * bus/driver.c (bus_driver_handle_acquire_service): set the
10213         sender on the AcquireService reply
10214
10215         * test/data/valid-config-files/debug-allow-all.conf.in: Make test
10216         server also listen on a UNIX socket so services can connect to it.
10217
10218 2003-04-06  Havoc Pennington  <hp@pobox.com>
10219
10220         * dbus/dbus-threads.c: Redo how the fake debug mutexes are done
10221         so it detects deadlocks and also we actually init threads when
10222         debugging.
10223
10224 2003-04-06  Havoc Pennington  <hp@pobox.com>
10225
10226         * dbus/dbus-server-unix.c (_dbus_server_new_for_domain_socket):
10227         save the domain socket name, and unlink it when we disconnect the
10228         server. Means that at least when we exit normally, we won't leave
10229         a bunch of junk in /tmp
10230
10231         * dbus/dbus-transport-unix.c
10232         (_dbus_transport_new_for_domain_socket): code cleanup (nicer
10233         memory management). (I was making a real change here but then
10234         didn't)
10235
10236 2003-04-06  Havoc Pennington  <hp@pobox.com>
10237
10238         * bus/bus.c (bus_context_new): fix wrong handling of
10239         server_data_slot_unref() in the error case.
10240
10241         * dbus/dbus-internals.h (_dbus_assert): change so it passes
10242         "(condition) != 0" to _dbus_real_assert so that
10243         "_dbus_assert (pointer)" doesn't cause a warning
10244
10245         * bus/main.c (main): accept --print-address option to print out
10246         the message bus address
10247
10248         * dbus/dbus-sysdeps.c (_dbus_generate_random_ascii): export this
10249
10250         * dbus/dbus-transport.c (_dbus_transport_open): special error for
10251         "tmpdir" option to unix: address on client side
10252
10253         * dbus/dbus-server.c (dbus_server_listen): handle "tmpdir" option
10254         to unix: address
10255
10256         * configure.in (TEST_SOCKET_DIR): locate a temporary directory
10257         we can use to create sockets in the test suite.
10258
10259         * bus/main.c (signal_handler): on SIGTERM, exit the daemon
10260         cleanly. To be used for testing.
10261
10262         * dbus/dbus-spawn.c (babysit): use _dbus_set_signal_handler()
10263
10264         * dbus/dbus-sysdeps.c (_dbus_set_signal_handler): new
10265
10266         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
10267         handle trying to call this when there's no servers active
10268
10269 2003-04-05  Havoc Pennington  <hp@pobox.com>
10270
10271         * NEWS: update
10272
10273         * configure.in: 0.8
10274
10275 2003-04-05  Havoc Pennington  <hp@pobox.com>
10276
10277         * bus/bus.c (setup_server): fix this so dbus-daemon-1 doesn't
10278         crash on startup. Need to get "try starting the daemon"
10279         in the test suite I guess. ;-)
10280
10281         * dbus/dbus-server.h, dbus/dbus-server.c: remove the stuff that
10282         tracked the number of open connections; it's better done in
10283         application-specific code as you want it to span all servers etc.
10284
10285 2003-04-05  Havoc Pennington  <hp@pobox.com>
10286
10287         * bus/Makefile.am (install-data-hook): add missing DESTDIR,
10288         patch from Colin Walters
10289
10290 2003-04-05  Havoc Pennington  <hp@pobox.com>
10291
10292         * doc/config-file.txt (Elements): fix docs of <auth> to reflect
10293         reality; in fact multiple mechanisms are allowed.
10294
10295         * dbus/dbus-internals.c (_dbus_real_assert)
10296         (_dbus_real_assert_not_reached): move guts of _dbus_assert() and
10297         _dbus_assert_not_reached() into functions, so that they don't show
10298         up in basic block counts for test coverage, and don't use up as
10299         much disk space. Does mean slower execution speed though, so
10300         assumes --disable-asserts is the normal production case.
10301
10302 2003-04-05  Havoc Pennington  <hp@pobox.com>
10303
10304         * test/Makefile.am (dist-hook): also dist *.in files
10305
10306         * NEWS: update
10307
10308         * configure.in: 0.7
10309
10310 2003-04-05  Havoc Pennington  <hp@pobox.com>
10311
10312         * dbus/dbus-string.c: docs warning
10313
10314         * dbus/dbus-spawn.c: missing docs
10315
10316         * dbus/dbus-memory.c (struct ShutdownClosure): missing docs
10317
10318 2003-04-05  Havoc Pennington  <hp@pobox.com>
10319
10320         * bus/loop.c (bus_loop_iterate): fix the timeout code, using
10321         magic from GLib
10322
10323         * dbus/dbus-spawn.c (_dbus_babysitter_unref): set sitter_pid
10324         to -1 once we've reaped the babysitter
10325         (_dbus_babysitter_handle_watch): do as much work as we can, not
10326         just one go of it
10327
10328         * bus/activation.c: add code using DBusBabysitter so that we
10329         handle it when a service fails to start up properly.
10330         (bus_activation_service_created): don't remove the activation
10331         entries as we go, just let them get removed when we free the pending
10332         activation. Unref reply messages after sending them.
10333
10334 2003-04-05  Havoc Pennington  <hp@pobox.com>
10335
10336         * test/decode-gcov.c (main): print per-directory stats in the report
10337
10338         * Makefile.am (coverage-report.txt): don't include test/* in gcov stats
10339
10340 2003-04-05  Havoc Pennington  <hp@pobox.com>
10341
10342         * Makefile.am (coverage-report.txt): add target "coverage-report.txt"
10343
10344         * test/decode-gcov.c: hack up a little program to suck data
10345         out of gcov files. Yes this is sort of silly.
10346
10347         * configure.in: define something in config.h and do an
10348         AM_CONDITIONAL when gcov is enabled
10349
10350 2003-04-04  Havoc Pennington  <hp@redhat.com>
10351
10352         * dbus/dbus-spawn.c, dbus/dbus-spawn.h: Change dbus_spawn to
10353         return a "babysitter" object that is used to monitor the status of
10354         the spawned process and reap it when required.
10355
10356         * test/test-segfault.c, test/test-exit.c,
10357         test/test-sleep-forever.c: binaries that do various lame things,
10358         used in the test suite.
10359
10360         * dbus/dbus-sysdeps.c: kill _dbus_errno_to_string()
10361
10362 2003-04-03  Havoc Pennington  <hp@pobox.com>
10363
10364         * dbus/dbus-spawn.c: Move dbus-spawn into a separate file
10365         in preparation for modifying it, dbus-sysdeps is getting
10366         a bit unmanageable.
10367
10368 2003-04-03  Havoc Pennington  <hp@redhat.com>
10369
10370         * bus/loop.h, bus/loop.c: make the mainloop an object so we can
10371         have multiple ones
10372
10373         * bus/*.[hc]: adapt to mainloop change
10374
10375 2003-04-03  Havoc Pennington  <hp@redhat.com>
10376
10377         * bus/activation.c (load_directory): fix up memleaks
10378         (bus_activation_entry_free): free the entry
10379
10380         * dbus/dbus-bus.c (dbus_bus_acquire_service): return an error if
10381         we get one from the message bus; fix memleaks.
10382
10383         * dbus/dbus-message.c (dbus_set_error_from_message): new function
10384
10385 2003-04-03  Havoc Pennington  <hp@pobox.com>
10386
10387         * bus/config-parser.c (bus_config_parser_unref): free
10388         list of mechanisms, bug discovered by test suite enhancements
10389         (putting system.conf and session.conf into suite)
10390
10391         * test/Makefile.am, test/test-service.c: add placeholder for a
10392         test service that we'll activate as part of test suite. Doesn't
10393         do anything yet.
10394
10395         * dbus/dbus-sysdeps.c (_dbus_setenv): support unsetenv by
10396         setting NULL value, and use system malloc not dbus_malloc()
10397         when we have unavoidable memleakage.
10398
10399         * dbus/dbus-bus.c (dbus_bus_get): fix bug where bus type of 0
10400         didn't work, and support DBUS_BUS_ACTIVATION.
10401
10402         * bus/activation.c (child_setup): pass our well-known bus type to
10403         the child
10404
10405         * bus/config-parser.c: support <type> to specify well-known type
10406
10407         * doc/dbus-specification.sgml: document the env variables to
10408         locate well-known buses and find service activator
10409
10410 2003-04-02  Havoc Pennington  <hp@redhat.com>
10411
10412         * test/Makefile.am (all-local): add a rule to copy tests to
10413         builddir, so we can have generated tests. Use this to remove the
10414         silly hack for testing system.conf and session.conf. Will use this
10415         shortly to generate .service files pointing to test binaries.
10416
10417 2003-04-02  Havoc Pennington  <hp@redhat.com>
10418
10419         * dbus/dbus-string.c (set_length): fix a bug - we allocated max of
10420         current alloc and needed new length, not max of the doubled
10421         allocation and needed new length. Also, when building tests,
10422         don't do the double-allocation stuff, just realloc every time.
10423
10424 2003-04-02  Havoc Pennington  <hp@redhat.com>
10425
10426         * dbus/dbus-sysdeps.c (_dbus_file_get_contents): include filenames
10427         in error messages
10428         (_dbus_string_get_dirname): new
10429         (_dbus_sysdeps_test): new
10430         (_dbus_directory_open): include dirnames in error messages
10431
10432         * bus/config-parser.c: interpret <include> and <includedir> and
10433         <servicedir> relative to config file location if the given
10434         filename is not absolute.
10435
10436         * dbus/dbus-string.c (_dbus_string_find_byte_backward): new
10437
10438 2003-04-02  Havoc Pennington  <hp@redhat.com>
10439
10440         * bus/connection.c (bus_transaction_send_error_reply): set sender
10441         service for the error, and unref the reply on success
10442
10443         * bus/activation.c: convert to use BusTransaction so OOM can be
10444         handled correctly
10445         (bus_activation_service_created): set sender of the message
10446
10447 2003-04-01  Havoc Pennington  <hp@redhat.com>
10448
10449         * bus/config-parser.c, bus/bus.c: implement <servicedir> and
10450         <includedir> (at least mostly)
10451
10452         * dbus/dbus-sysdeps.c (_dbus_change_identity): set the group ID
10453         first, then the user ID
10454
10455 2003-04-01  Havoc Pennington  <hp@pobox.com>
10456
10457         * dbus/dbus-server.c (dbus_server_set_auth_mechanisms): new
10458         function
10459
10460         * dbus/dbus-auth.c (_dbus_auth_set_mechanisms): new
10461
10462         * dbus/dbus-internals.c (_dbus_dup_string_array): new function
10463
10464         * dbus/dbus-sysdeps.c (_dbus_listen_unix_socket): chmod the
10465         socket 0777, and unlink any existing socket.
10466
10467         * bus/bus.c (bus_context_new): change our UID/GID and fork if
10468         the configuration file so specifies; set up auth mechanism
10469         restrictions
10470
10471         * bus/config-parser.c (bus_config_parser_content): add support
10472         for <fork> option and fill in code for <auth>
10473
10474         * bus/system.conf.in: add <fork/> to default configuration,
10475         and limit auth mechanisms to EXTERNAL
10476
10477         * doc/config-file.txt (Elements): add <fork>
10478
10479         * dbus/dbus-sysdeps.c (_dbus_become_daemon): new function
10480         (_dbus_change_identity): new function
10481
10482 2003-03-31  Havoc Pennington  <hp@redhat.com>
10483
10484         * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket)
10485         (_dbus_listen_unix_socket): fix off-by-one error in null
10486         termination spotted by Nalin
10487
10488 2003-03-31  Havoc Pennington  <hp@redhat.com>
10489
10490         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): allow setting
10491         DBUS_TEST_HOMEDIR when tests are enabled, so we can test without
10492         having a real home directory available.
10493
10494 2003-03-31  Havoc Pennington  <hp@redhat.com>
10495
10496         * bus/Makefile.am (install-data-hook): create /var/run/dbus
10497
10498         * bus/messagebus.in: add init script for Red Hat /etc/init.d
10499
10500         * configure.in: add support for specifying a style of init script
10501         to install
10502
10503 2003-03-31  Havoc Pennington  <hp@redhat.com>
10504
10505         Fix some annoying DBusString API and fix all affected code.
10506
10507         * dbus/dbus-string.c (_dbus_string_init): get rid of annoying
10508         max_length argument
10509         (_dbus_string_get_data): change to return string instead of using
10510         an out param
10511         (_dbus_string_get_const_data): ditto
10512         (_dbus_string_get_data_len): ditto
10513         (_dbus_string_get_const_data_len): ditto
10514
10515 2003-03-31  Havoc Pennington  <hp@redhat.com>
10516
10517         * bus/main.c (main): fix up the command line arguments to be nicer
10518
10519 2003-03-31  Havoc Pennington  <hp@redhat.com>
10520
10521         * dbus/Makefile.am (INCLUDES): use EXPANDED_LOCALSTATEDIR to
10522         define DBUS_SYSTEM_BUS_PATH as we want to compile in the same
10523         final location that lands in the config file
10524
10525         * bus/config-loader-expat.c (bus_config_load): fix type of
10526         XML_Parser variable
10527
10528         * doc/TODO: remove TODO item for dbus_bus_get()
10529
10530         * dbus/dbus-bus.c (bus_data_free): add missing lock/unlock
10531
10532 2003-03-31  Havoc Pennington  <hp@pobox.com>
10533
10534         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_domain_socket)
10535         (_dbus_transport_new_for_tcp_socket): these didn't need the "server"
10536         argument since they are always client side
10537
10538         * dbus/dbus-server.c (dbus_server_get_address): new function
10539
10540         * bus/main.c (main): take the configuration file as an argument.
10541
10542         * test/data/valid-config-files/debug-allow-all.conf: new file to
10543         use with dispatch.c tests for example
10544
10545         * bus/test-main.c (main): require test data dir
10546
10547         * bus/bus.c (bus_context_new): change this to take a
10548         configuration file name as argument
10549
10550         * doc/config-file.txt (Elements): add <servicedir>
10551
10552         * bus/system.conf, bus/session.conf: new files
10553
10554         * dbus/dbus-bus.c (dbus_bus_get): look for system bus on
10555         well-known socket if none set
10556
10557         * configure.in: create system.conf and session.conf
10558
10559 2003-03-30  Havoc Pennington  <hp@pobox.com>
10560
10561         * bus/config-parser.c: hacking
10562
10563         * dbus/dbus-memory.c: don't use DBusList for the list of stuff
10564         to shut down, since it could cause weirdness with the DBusList
10565         lock
10566
10567         * dbus/dbus-list.c (_dbus_list_test): add tests for the
10568         link-oriented stack routines
10569         (alloc_link): free the mempool if the first alloc from it fails
10570
10571         * dbus/dbus-mempool.c (struct DBusMemBlock): fix alignment issue
10572
10573         * dbus/dbus-string.c (UNICODE_VALID): sync new version of this
10574         from GLib
10575         (_dbus_string_skip_white): new
10576
10577         * doc/config-file.txt (Elements): add <includedir>
10578
10579 2003-03-28  Havoc Pennington  <hp@pobox.com>
10580
10581         * dbus/dbus-string.c (_dbus_string_copy_data_len)
10582         (_dbus_string_copy_data): new functions
10583
10584 2003-03-28  Anders Carlsson  <andersca@codefactory.se>
10585
10586         * dbus/dbus-bus.c: (bus_data_free), (dbus_bus_get):
10587         * dbus/dbus-bus.h:
10588         Add dbus_bus_get.
10589
10590         * dbus/dbus-memory.c:
10591         Fix a doc comment.
10592
10593 2003-03-28  Havoc Pennington  <hp@pobox.com>
10594
10595         * bus/test.c (bus_test_flush_bus): remove the sleep from here,
10596         I think it may have just been superstition. Not sure.
10597
10598         * dbus/dbus-string.c (_dbus_string_base64_decode): catch some OOM
10599         failures that were not being handled.
10600
10601         * dbus/dbus-auth.c (process_auth): fix a memleak in OOM handling
10602
10603         * dbus/dbus-memory.c: add ability to set number of mallocs in a
10604         row that will fail on out-of-memory.
10605
10606         * dbus/dbus-internals.c (_dbus_test_oom_handling): convenience
10607         function for testing out-of-memory handling.
10608
10609         * bus/config-loader-expat.c (memsuite): don't wrap the dbus
10610         allocation functions, they do map exactly to the expat ones.
10611
10612 2003-03-27  Havoc Pennington  <hp@redhat.com>
10613
10614         * bus/config-loader-libxml.c (bus_config_load): add another error
10615         check
10616
10617 2003-03-26  Anders Carlsson  <andersca@codefactory.se>
10618
10619         * doc/TODO:
10620         Add note about automatic service activation.
10621
10622         * doc/dbus-specification.sgml:
10623         Rename the specification and clarify a few things.
10624
10625 2003-03-26  Anders Carlsson  <andersca@codefactory.se>
10626
10627         * Doxyfile.in:
10628         * dbus/dbus-address.c:
10629         * dbus/dbus-dict.c:
10630         * dbus/dbus-marshal.c:
10631         * dbus/dbus-server-debug-pipe.c:
10632         * dbus/dbus-transport-unix.c:
10633         Fix documentation warnings.
10634
10635 2003-03-26  Havoc Pennington  <hp@pobox.com>
10636
10637         * bus/test-main.c, dbus/dbus-test.c (main): check memleaks
10638         after every test so it's quick and easy to see which leaked, and
10639         so we test multiple dbus_shutdown() calls
10640
10641         * configure.in: change configure.in XML stuff to also support
10642         expat
10643
10644         * config-loader-libxml.c: some hacking
10645
10646         * config-loader-expat.c: some hacking
10647
10648         * config-parser.c: some hacking, plus tests
10649
10650 2003-03-25  Havoc Pennington  <hp@redhat.com>
10651
10652         * throughout - add more _DBUS_ASSERT_ERROR_IS_CLEAR
10653
10654         * configure.in: add --with-xml option to specify XML library,
10655         right now only libxml is supported.
10656
10657         * bus/config-loader-libxml.c, config-parser.c: sync some minor
10658         nonworking code between home and work, still just stubs
10659
10660 2003-03-24  Havoc Pennington  <hp@redhat.com>
10661
10662         * dbus/dbus-sysdeps.c (_dbus_set_fd_nonblocking): move to this
10663         file
10664
10665         * dbus/dbus-errors.c (dbus_set_error, dbus_set_error_const): allow
10666         NULL argument for "message" if the error is a well-known one,
10667         fill in a generic message in this case.
10668
10669         * dbus/dbus-errors.h (DBusResultCode): Kill DBusResultCode in
10670         favor of DBusError
10671
10672         * bus/test.c (bus_test_flush_bus): add
10673
10674         * bus/policy.c (bus_policy_test): test code stub
10675
10676 2003-03-24  Havoc Pennington  <hp@pobox.com>
10677
10678         * bus/connection.c (bus_connections_setup_connection): set up
10679         the "can this user connect" function, but it always returns
10680         TRUE until we have a config file parser so we can have a config
10681         file that allows connections.
10682
10683 2003-03-23  Havoc Pennington  <hp@pobox.com>
10684
10685         * dbus/dbus-threads.c (dbus_mutex_new, dbus_condvar_new): with
10686         DBUS_BUILD_TESTS, actually alloc/free a block of memory for
10687         the mutex, so we can check for proper memory management
10688         and OOM handling.
10689
10690         * dbus/dbus-dataslot.c: remove the mutex from
10691         DBusDataSlotAllocator and lock it manually when using it,
10692         to simplify fitting it into the global slots framework.
10693
10694         * dbus/dbus-threads.c (init_static_locks): rework how we're
10695         handling global locks so they are easily shut down.
10696
10697         * bus/policy.c (bus_policy_append_rule): fix
10698
10699         * bus/test-main.c (main): check for memleaks
10700
10701         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): make
10702         test suite check for memleaks
10703
10704         * dbus/dbus-memory.c: add support in test mode for tracking
10705         number of outstanding blocks
10706
10707 2003-03-23  Havoc Pennington  <hp@pobox.com>
10708
10709         * bus/policy.c, bus/bus.c, bus/connection.c: implement allow/deny
10710         policies code
10711
10712         * dbus/dbus-hash.h: add ULONG hash keys
10713
10714         * dbus/dbus-sysdeps.c (_dbus_get_groups): new
10715         (_dbus_get_group_id): new function
10716
10717 2003-03-20  Havoc Pennington  <hp@redhat.com>
10718
10719         * dbus/dbus-connection.c (dbus_connection_set_unix_user_function):
10720         new function
10721         (dbus_connection_get_unix_user): new function
10722
10723 2003-03-20  Havoc Pennington  <hp@pobox.com>
10724
10725         * bus/connection.c (bus_connection_send_oom_error): assert that
10726         message has a sender
10727         (connection_execute_transaction): ditto
10728         (bus_connection_preallocate_oom_error): fix to set the sender, and
10729         set recipient to the destination service, not the bus driver
10730
10731         * bus/policy.c: hacking
10732
10733         * dbus/dbus-message.c (dbus_message_service_is): new function
10734         (dbus_message_sender_is): new
10735
10736 2003-03-19  Havoc Pennington  <hp@redhat.com>
10737
10738         * bus/policy.c: start sketching code for policy restrictions on
10739         what connections can do.
10740
10741 2003-03-18  Havoc Pennington  <hp@redhat.com>
10742
10743         * doc/TODO: some notes on high-level todo items. Little nitpick
10744         stuff is all in @todo, so no need to add it here.
10745
10746         * doc/config-file.txt: some notes on how config file might look
10747
10748 2003-03-18  Anders Carlsson  <andersca@codefactory.se>
10749
10750         * configure.in: 0.6
10751
10752         * NEWS: Update.
10753
10754 2003-03-17  Havoc Pennington  <hp@redhat.com>
10755
10756         * dbus/dbus-internals.h: add gcc attributes so that
10757         our printf-style functions warn on bad arguments to
10758         format
10759
10760         * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): fix printf
10761         format bug
10762
10763         * dbus/dbus-message.c (_dbus_message_loader_queue_messages): fix
10764         printf format bug
10765
10766 2003-03-17  Havoc Pennington  <hp@redhat.com>
10767
10768         * bus/test-main.c (main): make it print something as it runs
10769         so make check doesn't look stuck
10770
10771         * doc/negotiation.txt, doc/dbus-sasl-profile.txt: remove
10772         from CVS, now obsolete
10773
10774 2003-03-17  Anders Carlsson  <andersca@codefactory.se>
10775
10776         * bus/dispatch.c: (bus_dispatch):
10777         Refetch the service name since it may have been reallocated
10778         when dbus_message_set_sender was called.
10779
10780         * dbus/dbus-sysdeps.c: (_dbus_accept):
10781         Add address and address length variables and use them to stop
10782         valgrind from complaining.
10783
10784 2003-03-17  Havoc Pennington  <hp@pobox.com>
10785
10786         All tests pass, no memleaks, no valgrind complaints.
10787
10788         * bus/test.c: refcount handler_slot
10789
10790         * bus/connection.c (bus_connections_new): refcount
10791         connection_data_slot
10792
10793         * dbus/dbus-auth-script.c (_dbus_auth_script_run): delete unused
10794         bytes so that auth scripts pass.
10795
10796         * bus/dispatch.c: init message_handler_slot so it gets allocated
10797         properly
10798
10799         * bus/dispatch.c (message_handler_slot_ref): fix memleak
10800
10801         * dbus/dbus-server-debug-pipe.c (_dbus_server_debug_pipe_new):
10802         dealloc server_pipe_hash when no longer used for benefit of
10803         leak checking
10804
10805         * dbus/dbus-auth.c (process_command): memleak fix
10806
10807         * bus/dispatch.c (check_hello_message): memleak fix
10808
10809 2003-03-16  Havoc Pennington  <hp@pobox.com>
10810
10811         * dbus/dbus-bus.c (ensure_bus_data): fix double-unref of the data slot
10812
10813 2003-03-17  Anders Carlsson  <andersca@codefactory.se>
10814
10815         * bus/activation.c (bus_activation_activate_service): Append
10816         the pending activation entry to the list of pending activations.
10817
10818 2003-03-16  Havoc Pennington  <hp@pobox.com>
10819
10820         * bus/dispatch.c (bus_dispatch_test): remove double-unrefs of
10821         connections
10822
10823         * dbus/dbus-address.c (create_entry): fix OOM handling when
10824         failing to alloc entry->method
10825
10826 2003-03-16  Havoc Pennington  <hp@pobox.com>
10827
10828         * dbus/dbus-watch.c (_dbus_watch_new): handle failure to malloc
10829         the watch
10830
10831         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
10832         add some missing dbus_set_result
10833
10834         * bus/dispatch.c (bus_dispatch_add_connection): handle failure to
10835         alloc the DBusMessageHandler
10836
10837         * dbus/dbus-transport.c (_dbus_transport_disconnect): don't ref
10838         the transport here, since we call this from the finalizer; it
10839         resulted in a double-finalize.
10840
10841         * dbus/dbus-transport.c (_dbus_transport_disconnect): fix a bug
10842         where we tried to use transport->connection that was NULL,
10843         happened when transport was disconnected early on due to OOM
10844
10845         * bus/*.c: adapt to handle OOM for watches/timeouts
10846
10847         * dbus/dbus-transport-unix.c: port to handle OOM during
10848         watch handling
10849
10850         * dbus/dbus-auth.c (_dbus_auth_get_unused_bytes): return a
10851         reference to unused bytes instead of a copy
10852
10853         * dbus/dbus-server.c (dbus_server_handle_watch): return FALSE for
10854         out of memory
10855
10856         * dbus/dbus-connection.c (dbus_connection_handle_watch): return
10857         FALSE on OOM
10858
10859         * dbus/dbus-timeout.c (dbus_timeout_handle): return FALSE for out
10860         of memory
10861
10862 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
10863
10864         * doc/dbus-specification.sgml:
10865         Document reply message for ActivateService.
10866
10867 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
10868
10869         * bus/activation.c: (bus_pending_activation_entry_free),
10870         (bus_pending_activation_free), (bus_activation_new),
10871         (bus_activation_unref), (bus_activation_service_created),
10872         (bus_activation_activate_service):
10873         * bus/activation.h:
10874         * bus/bus.c: (bus_context_new):
10875         * bus/desktop-file.c: (new_section):
10876         * bus/driver.c: (bus_driver_send_service_deleted),
10877         (bus_driver_handle_activate_service):
10878         * bus/services.c: (bus_registry_new), (bus_registry_ensure):
10879         * bus/services.h:
10880         * dbus/dbus-connection.c:
10881         (dbus_connection_send_with_reply_and_block):
10882         * dbus/dbus-message.c: (dbus_message_append_args_valist):
10883         * dbus/dbus-protocol.h:
10884         Make activation work better. Now pending activations will be queued
10885         and the daemon won't try to activate services that are already registered.
10886
10887 2003-03-16  Havoc Pennington  <hp@pobox.com>
10888
10889         * dbus/dbus-bus.c (ensure_bus_data): handle failure to set
10890         connection data
10891
10892         * dbus/dbus-memory.c (_dbus_initialize_malloc_debug): support
10893         DBUS_MALLOC_BACKTRACES to print trace when failing an alloc
10894
10895 2003-03-16  Havoc Pennington  <hp@pobox.com>
10896
10897         * dbus/dbus-string.c (_dbus_string_validate_utf8): oops, unbreak
10898         this. always run the test suite before commit...
10899
10900         * bus/*: adapt to DBusConnection API changes
10901
10902         * glib/dbus-gmain.c: adapt to DBusConnection API changes,
10903         requires renaming stuff to avoid dbus_connection_dispatch name
10904         conflict.
10905
10906         * dbus/dbus-transport.c (_dbus_transport_queue_messages): new
10907         function
10908
10909         * dbus/dbus-message.c (_dbus_message_loader_queue_messages):
10910         separate from _dbus_message_loader_return_buffer()
10911
10912         * dbus/dbus-connection.c (dbus_connection_get_n_messages): remove
10913         this, because it's now always broken to use; the number of
10914         messages in queue vs. the number still buffered by the message
10915         loader is undefined/meaningless. Should use
10916         dbus_connection_get_dispatch_state().
10917         (dbus_connection_dispatch): rename from
10918         dbus_connection_dispatch_message
10919
10920 2003-03-16  Havoc Pennington  <hp@pobox.com>
10921
10922         * dbus/dbus-string.c (_dbus_string_validate_utf8): copy in a real
10923         implementation
10924
10925 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
10926
10927         * dbus/dbus-connection.c:
10928         (dbus_connection_send_with_reply_and_block):
10929         Decrease connection->n_incoming when removing an entry
10930         from the list.
10931         * dbus/dbus-dict.c: (dbus_dict_entry_free),
10932         (dbus_dict_set_boolean_array), (dbus_dict_set_int32_array),
10933         (dbus_dict_set_uint32_array), (dbus_dict_set_double_array),
10934         (dbus_dict_set_byte_array), (dbus_dict_set_string_array),
10935         (dbus_dict_get_boolean_array), (dbus_dict_get_double_array),
10936         (dbus_dict_get_byte_array):
10937         Handle NULL arrays and strings. Also add support for byte arrays.
10938
10939         * dbus/dbus-marshal.c: (_dbus_marshal_byte_array),
10940         (_dbus_marshal_dict), (_dbus_demarshal_byte_array),
10941         (_dbus_demarshal_int32_array), (_dbus_demarshal_uint32_array),
10942         (_dbus_demarshal_double_array), (_dbus_demarshal_string_array),
10943         (_dbus_demarshal_dict), (demarshal_and_validate_len),
10944         (_dbus_marshal_validate_arg), (_dbus_marshal_test):
10945         * dbus/dbus-marshal.h:
10946         Add support for marshalling and demarshalling empty arrays and strings.
10947
10948         * dbus/dbus-message.c: (dbus_message_append_args_valist),
10949         (dbus_message_append_string_array),
10950         (dbus_message_iter_get_boolean),
10951         (dbus_message_iter_get_boolean_array),
10952         (dbus_message_iter_get_int32_array),
10953         (dbus_message_iter_get_uint32_array),
10954         (dbus_message_iter_get_double_array),
10955         (dbus_message_iter_get_byte_array),
10956         (dbus_message_iter_get_string_array), (dbus_message_iter_get_dict),
10957         (check_message_handling):
10958         Add support for getting empty arrays and dicts.
10959
10960         * dbus/dbus-string.c: (_dbus_string_validate_utf8):
10961         Don't do any validation at all for now, that's better than just checking
10962         for ASCII.
10963
10964         * test/data/valid-messages/emptiness.message:
10965         New test message with lots of empty arrays.
10966
10967 2003-03-16  Havoc Pennington  <hp@pobox.com>
10968
10969         * dbus/dbus-connection.c
10970         (_dbus_connection_queue_received_message_link): new function that
10971         can't fail due to OOM
10972
10973         * dbus/dbus-message.c (_dbus_message_loader_pop_message_link):
10974         new function pops a message together with a list link
10975         containing it.
10976
10977         * dbus/dbus-transport-unix.c (queue_messages): use new link-based
10978         message queuing functions to avoid needing to alloc memory
10979
10980 2003-03-16  Havoc Pennington  <hp@pobox.com>
10981
10982         Oops - test code was only testing failure of around 30 of the
10983         mallocs in the test path, but it turns out there are 500+
10984         mallocs. I believe this was due to misguided linking setup such
10985         that there was one copy of dbus_malloc etc. in the daemon and one
10986         in the shared lib, and only daemon mallocs were tested. In any
10987         case, the test case now tests all 500+ mallocs, and doesn't pass
10988         yet, though there are lots of fixes in this patch.
10989
10990         * dbus/dbus-connection.c (dbus_connection_dispatch_message): fix
10991         this so that it doesn't need to allocate memory, since it
10992         has no way of indicating failure due to OOM (and would be
10993         annoying if it did).
10994
10995         * dbus/dbus-list.c (_dbus_list_pop_first_link): new function
10996
10997         * bus/Makefile.am: rearrange to create two self-contained
10998         libraries, to avoid having libraries with overlapping symbols.
10999         that was resulting in weirdness, e.g. I'm pretty sure there
11000         were two copies of global static variables.
11001
11002         * dbus/dbus-internals.c: move the malloc debug stuff to
11003         dbus-memory.c
11004
11005         * dbus/dbus-list.c (free_link): free list mempool if it becomes
11006         empty.
11007
11008         * dbus/dbus-memory.c (_dbus_disable_mem_pools): new function
11009
11010         * dbus/dbus-address.c (dbus_parse_address): free list nodes
11011         on failure.
11012
11013         * bus/dispatch.c (bus_dispatch_add_connection): free
11014         message_handler_slot when no longer using it, so
11015         memory leak checkers are happy for the test suite.
11016
11017         * dbus/dbus-server-debug-pipe.c (debug_finalize): free server name
11018
11019         * bus/bus.c (new_connection_callback): disconnect in here if
11020         bus_connections_setup_connection fails.
11021
11022         * bus/connection.c (bus_connections_unref): fix to free the
11023         connections
11024         (bus_connections_setup_connection): if this fails, don't
11025         disconnect the connection, just be sure there are no side
11026         effects.
11027
11028         * dbus/dbus-string.c (undo_alignment): unbreak this
11029
11030         * dbus/dbus-auth.c (_dbus_auth_unref): free some stuff we were
11031         leaking
11032         (_dbus_auth_new): fix the order in which we free strings
11033         on OOM failure
11034
11035         * bus/connection.c (bus_connection_disconnected): fix to
11036         not send ServiceDeleted multiple times in case of memory
11037         allocation failure
11038
11039         * dbus/dbus-bus.c (dbus_bus_get_base_service): new function to
11040         get the base service name
11041         (dbus_bus_register_client): don't return base service name,
11042         instead store it on the DBusConnection and have an accessor
11043         function for it.
11044         (dbus_bus_register_client): rename dbus_bus_register()
11045
11046         * bus/dispatch.c (check_hello_message): verify that other
11047         connections on the bus also got the correct results, not
11048         just the one sending hello
11049
11050 2003-03-15  Havoc Pennington  <hp@pobox.com>
11051
11052         Make it pass the Hello handling test including all OOM codepaths.
11053         Now to do other messages...
11054
11055         * bus/services.c (bus_service_remove_owner): fix crash when
11056         removing owner from an empty list of owners
11057         (bus_registry_ensure): don't leave service in the list of
11058         a connection's owned services if we fail to put the service
11059         in the hash table.
11060
11061         * bus/connection.c (bus_connection_preallocate_oom_error): set
11062         error flag on the OOM error.
11063
11064         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
11065         handle _dbus_transport_set_connection failure
11066
11067         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd): modify
11068         to create watches up front and simply enable/disable them as
11069         needed.
11070         (unix_connection_set): this can now fail on OOM
11071
11072         * dbus/dbus-timeout.c, dbus/dbus-watch.c: add concept
11073         of enabling/disabling a watch or timeout.
11074
11075         * bus/loop.c (bus_loop_iterate): don't touch disabled
11076         watches/timeouts
11077
11078         * glib/dbus-gmain.c: adapt to enable/disable watches and timeouts
11079
11080 2003-03-15  Havoc Pennington  <hp@pobox.com>
11081
11082         * bus/dispatch.c (bus_dispatch_test): OK, now finally actually
11083         write useful test code, after all that futzing around ;-)
11084
11085         Test does not yet pass because we can't handle OOM in
11086         _dbus_transport_messages_pending (basically,
11087         dbus_connection_preallocate_send() does not prealloc the write
11088         watch). To fix this, I think we need to add new stuff to
11089         set_watch_functions, namely a SetEnabled function so we can alloc
11090         the watch earlier, then enable it later.
11091
11092         * dbus/Makefile.am (libdbus_convenience_la_SOURCES): move
11093         dbus-memory.c to the convenience lib
11094
11095         * bus/test.c: rename some static functions to keep them clearly
11096         distinct from stuff in connection.c. Handle client disconnection.
11097
11098 2003-03-14  Havoc Pennington  <hp@pobox.com>
11099
11100         * bus/dispatch.c (bus_dispatch_test): do test using debug-pipe
11101         transport, tests more of the real codepath. Set up clients
11102         with bus_setup_debug_client.
11103
11104         * bus/test.c (bus_setup_debug_client): function to set up debug
11105         "clients" on the main loop
11106
11107         * dbus/dbus-transport.c (_dbus_transport_open): add debug-pipe
11108         support
11109
11110         * dbus/dbus-server.c (dbus_server_listen): add debug-pipe
11111         server type
11112
11113         * dbus/dbus-server-debug.c: support a debug server based on pipes
11114
11115         * dbus/dbus-sysdeps.c (_dbus_full_duplex_pipe): new function
11116         (_dbus_close): new function
11117
11118         * configure.in: check for socketpair
11119
11120 2003-03-14  Havoc Pennington  <hp@redhat.com>
11121
11122         * dbus/dbus-memory.c: add a "detect buffer overwrites on free"
11123         cheesy hack
11124
11125         * dbus/dbus-transport-debug.c: rework this a good bit to be
11126         less complicated. hopefully still works.
11127
11128         * dbus/dbus-server-debug.c (handle_new_client): remove timeout
11129         manually
11130
11131         * glib/dbus-gmain.c (timeout_handler): don't remove timeout
11132         after running it
11133
11134         * dbus/dbus-message.c (dbus_message_copy): rename from
11135         dbus_message_new_from_message, fix it up to copy
11136         all the message fields, add test case
11137
11138         * bus/dispatch.c (bus_dispatch_test): add some more test code,
11139         not quite passing yet
11140
11141 2003-03-14  Havoc Pennington  <hp@pobox.com>
11142
11143         * bus/loop.c (bus_loop_iterate): add this so we can "run loop
11144         until no work remains" in test code. (the large diff here
11145         is just code movement, no actual changes)
11146
11147         * dbus/dbus-server-debug.c (DEFAULT_INTERVAL): change interval to
11148         1, no point waiting around for test code.
11149         (_dbus_server_debug_accept_transport): unref the timeout
11150         after adding it (right?)
11151
11152         * dbus/dbus-transport-debug.c (DEFAULT_INTERVAL): ditto
11153
11154 2003-03-13  Havoc Pennington  <hp@redhat.com>
11155
11156         * dbus/dbus-timeout.c (_dbus_timeout_list_set_functions): handle
11157         out of memory
11158
11159         * dbus/dbus-watch.c (_dbus_watch_list_set_functions): handle out
11160         of memory
11161
11162         * dbus/dbus-connection.h: Make AddWatchFunction and
11163         AddTimeoutFunction return a bool so they can fail on out-of-memory
11164
11165         * bus/bus.c (bus_context_new): set up timeout handlers
11166
11167         * bus/connection.c (bus_connections_setup_connection): set up
11168         timeout handlers
11169
11170         * glib/dbus-gmain.c: adapt to the fact that set_functions stuff
11171         can fail
11172
11173         * bus/bus.c (bus_context_new): adapt to changes
11174
11175         * bus/connection.c: adapt to changes
11176
11177         * test/watch.c: adapt to DBusWatch changes
11178
11179         * bus/dispatch.c (bus_dispatch_test): started adding this but
11180         didn't finish
11181
11182 2003-03-14  Anders Carlsson  <andersca@codefactory.se>
11183
11184         * bus/dispatch.c (send_service_nonexistent_error): Fix typo.
11185
11186 2003-03-13  Havoc Pennington  <hp@pobox.com>
11187
11188         * bus/test.c, bus/test.h, bus/Makefile.am, bus/test-main.c:
11189         set up a test framework as for the library
11190
11191 2003-03-12  Havoc Pennington  <hp@pobox.com>
11192
11193         Throughout: purge global variables, introduce BusActivation,
11194         BusConnections, BusRegistry, etc. objects instead.
11195
11196         * bus/bus.h, bus/bus.c: introduce BusContext as a global
11197         message bus object
11198
11199         * test/Makefile.am (TEST_BINARIES): disable bus-test for now,
11200         going to redo this a bit differently I think
11201
11202 2003-03-12  Havoc Pennington  <hp@redhat.com>
11203
11204         Mega-patch that gets the message bus daemon initially handling
11205         out-of-memory. Work still needed. Also lots of random
11206         moving stuff to DBusError instead of ResultCode.
11207
11208         * dbus/dbus-list.c (_dbus_list_length_is_one): new function
11209
11210         * dbus/dbus-connection.c
11211         (dbus_connection_send_with_reply_and_block): use DBusError
11212
11213         * dbus/dbus-bus.c: adapt to API changes, make it use DBusError not
11214         DBusResultCode
11215
11216         * dbus/dbus-connection.c (dbus_connection_send): drop the result
11217         code here, as the only failure possible is OOM.
11218
11219         * bus/connection.c (bus_connection_disconnect):
11220         rename bus_connection_disconnected as it's a notification only
11221
11222         * bus/driver.c (bus_driver_handle_acquire_service): don't free
11223         "name" on get_args failure, should be done by get_args;
11224         don't disconnect client for bad args, just return an error.
11225         (bus_driver_handle_service_exists): ditto
11226
11227         * bus/services.c (bus_services_list): NULL-terminate returned array
11228
11229         * bus/driver.c (bus_driver_send_service_lost)
11230         (bus_driver_send_service_acquired): send messages from driver to a
11231         specific client to the client's unique name, not to the broadcast
11232         service.
11233
11234         * dbus/dbus-message.c (decode_header_data): reject messages that
11235         contain no name field
11236         (_dbus_message_get_client_serial): rename to
11237         dbus_message_get_serial and make public
11238         (_dbus_message_set_serial): rename from set_client_serial
11239         (_dbus_message_set_reply_serial): make public
11240         (_dbus_message_get_reply_serial): make public
11241
11242         * bus/connection.c (bus_connection_foreach): allow stopping
11243         iteration by returning FALSE from foreach function.
11244
11245         * dbus/dbus-connection.c (dbus_connection_send_preallocated)
11246         (dbus_connection_free_preallocated_send)
11247         (dbus_connection_preallocate_send): new API for sending a message
11248         without possibility of malloc failure.
11249         (dbus_connection_send_message): rename to just
11250         dbus_connection_send (and same for whole function family)
11251
11252         * dbus/dbus-errors.c (dbus_error_free): make this reinit the error
11253
11254         * dbus/dbus-sysdeps.c (_dbus_exit): new function
11255
11256         * bus/activation.c: handle/return errors
11257
11258         * dbus/dbus-errors.h: add more DBUS_ERROR #define
11259
11260         * dbus/dbus-sysdeps.c (_dbus_directory_open) (_dbus_file_get_contents)
11261         (_dbus_directory_get_next_file): use DBusError instead of DBusResultCode
11262         (_dbus_result_from_errno): move to this file
11263
11264 2003-03-10  Anders Carlsson  <andersca@codefactory.se>
11265
11266         * dbus/dbus-marshal.c:
11267         (_dbus_marshal_set_string):
11268         Take a length argument so we can marshal the correct string
11269         length.
11270
11271         (_dbus_marshal_dict), (_dbus_demarshal_dict),
11272         (_dbus_marshal_get_arg_end_pos), (_dbus_marshal_validate_arg),
11273         (_dbus_marshal_test):
11274         * dbus/dbus-marshal.h:
11275         Add support for marshalling and demarshalling dicts.
11276
11277         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
11278         Add support for TYPE DICT.
11279
11280         * dbus/dbus-message.c: (set_string_field):
11281         Adjust header padding.
11282
11283         (dbus_message_append_args_valist), (dbus_message_append_dict),
11284         (dbus_message_get_args_valist), (dbus_message_iter_get_arg_type),
11285         (dbus_message_iter_get_dict), (_dbus_message_loader_return_buffer),
11286         (check_message_handling), (check_have_valid_message):
11287         * dbus/dbus-message.h:
11288         Add functions for setting and getting dicts.
11289
11290         * dbus/dbus-protocol.h:
11291         Add DBUS_TYPE_DICT.
11292
11293         * dbus/dbus.h:
11294         Add dbus-dict.h
11295
11296         * doc/dbus-specification.sgml:
11297         Add information about how dicts are marshalled.
11298
11299         * test/data/invalid-messages/dict-with-nil-value.message:
11300         * test/data/invalid-messages/too-short-dict.message:
11301         * test/data/valid-messages/dict-simple.message:
11302         * test/data/valid-messages/dict.message:
11303         Add sample messages containing dicts.
11304
11305 2003-03-08  Anders Carlsson  <andersca@codefactory.se>
11306
11307         * dbus/dbus-dict.h: Add DBUS_END_DECLS.
11308
11309 2003-03-07  Anders Carlsson  <andersca@codefactory.se>
11310
11311         * dbus/Makefile.am:
11312         * dbus/dbus-dict.c: (dbus_dict_entry_free), (dbus_dict_new),
11313         (dbus_dict_get_keys), (insert_entry), (dbus_dict_set_boolean),
11314         (dbus_dict_set_int32), (dbus_dict_set_uint32),
11315         (dbus_dict_set_double), (dbus_dict_set_string),
11316         (dbus_dict_set_boolean_array), (dbus_dict_set_int32_array),
11317         (dbus_dict_set_uint32_array), (dbus_dict_set_double_array),
11318         (dbus_dict_set_string_array), (_dbus_dict_test):
11319         * dbus/dbus-dict.h:
11320         Fix according to comments from Havoc.
11321
11322 2003-03-06  Michael Meeks  <michael@server.home>
11323
11324         * configure.in: if we don't have kde-config, disable have_qt.
11325
11326 2003-03-07  Anders Carlsson  <andersca@codefactory.se>
11327
11328         * dbus/Makefile.am:
11329         Add dbus-dict.[ch]
11330
11331         * dbus/dbus-dict.c: (dbus_dict_entry_free), (dbus_dict_new),
11332         (dbus_dict_ref), (dbus_dict_unref), (dbus_dict_contains),
11333         (dbus_dict_remove), (dbus_dict_get_value_type),
11334         (dbus_dict_get_keys), (dbus_dict_put_boolean),
11335         (dbus_dict_put_int32), (dbus_dict_put_uint32),
11336         (dbus_dict_put_double), (dbus_dict_put_string),
11337         (dbus_dict_put_boolean_array), (dbus_dict_put_int32_array),
11338         (dbus_dict_put_uint32_array), (dbus_dict_put_double_array),
11339         (dbus_dict_put_string_array), (dbus_dict_get_boolean),
11340         (dbus_dict_get_int32), (dbus_dict_get_uint32),
11341         (dbus_dict_get_double), (dbus_dict_get_string),
11342         (dbus_dict_get_boolean_array), (dbus_dict_get_int32_array),
11343         (dbus_dict_get_uint32_array), (dbus_dict_get_double_array),
11344         (dbus_dict_get_string_array), (_dbus_dict_test):
11345         * dbus/dbus-dict.h:
11346         Add DBusDict implementation
11347
11348         * dbus/dbus-test.c: (dbus_internal_do_not_use_run_tests):
11349         * dbus/dbus-test.h:
11350         Add _dbus_dict_test
11351
11352 2003-03-04  Havoc Pennington  <hp@pobox.com>
11353
11354         * test/data/auth/*: adapt to changes
11355
11356         * dbus/dbus-auth-script.c (_dbus_auth_script_run): add
11357         USERID_BASE64 and change USERNAME_BASE64 to put in username not
11358         userid
11359
11360         * dbus/dbus-keyring.c (_dbus_keyring_validate_context): prevent
11361         more stuff from being in a context name, to make the protocol
11362         simpler to deal with
11363
11364         * dbus/dbus-errors.c (dbus_error_has_name): new function
11365         (dbus_error_is_set): new function
11366
11367         * dbus/dbus-auth.c: replace DBUS_STUPID_TEST_MECH auth
11368         with DBUS_COOKIE_SHA1, implement DBUS_COOKIE_SHA1
11369
11370         * dbus/dbus-connection.c (dbus_connection_flush): also read
11371         messages during a flush operation
11372
11373         * dbus/Makefile.am: remove dbus-md5 since it isn't currently used.
11374
11375 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
11376
11377         * configure.in: Check for gethostbyname on Solaris.
11378
11379         * dbus/dbus-transport.c: (_dbus_transport_open):
11380         Remove duplicate "tcp" entry.
11381
11382         * doc/dbus-specification.sgml:
11383         Clarify some things.
11384
11385 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
11386
11387         * dbus/dbus-auth.c: (send_rejected), (process_test_subdir):
11388         * dbus/dbus-keyring.c: (_dbus_keyring_new_homedir),
11389         (_dbus_keyring_test):
11390         * dbus/dbus-md5.c: (_dbus_md5_compute):
11391         * dbus/dbus-sha.c: (_dbus_sha_compute):
11392         Plug memory leaks.
11393
11394 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
11395
11396         * README: Add some things.
11397
11398 2003-03-04  Anders Carlsson  <andersca@codefactory.se>
11399
11400         * dbus/dbus-message.c (dbus_message_append_args_valist): Add a break;
11401         after case DBUS_TYPE_BOOELAN.
11402
11403 2003-03-02  Havoc Pennington  <hp@pobox.com>
11404
11405         * test/break-loader.c (randomly_set_extreme_ints): add test that
11406         sets really huge and small integers
11407
11408         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): add check
11409         that length of boolean array fits in the string, and that
11410         string has room for boolean value in single-bool case.
11411
11412         * dbus/dbus-message-builder.c (_dbus_message_data_load): add
11413         optional value to "ALIGN" command which is what to fill the
11414         alignment with.
11415
11416         * test/data/valid-messages/no-padding.message: add regression
11417         test for the message padding problem
11418
11419 2003-03-02  Havoc Pennington  <hp@pobox.com>
11420
11421         * dbus/dbus-message.c (decode_header_data): fix to always init
11422         message_padding, from Benjamin Dauvergne
11423
11424 2003-03-02  Havoc Pennington  <hp@pobox.com>
11425
11426         * configure.in: 0.5
11427
11428         * NEWS: Update.
11429
11430 2003-03-01  Joe Shaw  <joe@assbarn.com>
11431
11432         * configure.in: Check for "struct cmsgcred" and try to access its
11433         members for BSD-like unices.
11434
11435         * dbus/dbus-sysdeps.c (read_credentials_byte): Fold this back into
11436         _dbus_read_credentials_unix_socket().
11437         (_dbus_read_credentials_unix_socket): Use recvmsg() instead of
11438         read() for reading the credential byte off the unix socket.  Use
11439         struct cmsgcred on systems that support it.
11440
11441 2003-02-27  Alexander Larsson  <alexl@redhat.com>
11442
11443         * glib/Makefile.am:
11444         * configure.in:
11445         Make gthreads-2.0 dependency optional. Don't build thread test if
11446         its not found.
11447
11448 2003-02-27  Havoc Pennington  <hp@pobox.com>
11449
11450         * dbus/dbus-connection.c
11451         (dbus_connection_send_message_with_reply_and_block): fix doh!
11452         doh! doh! bug that resulted in never removing a reply from the
11453         queue, no wonder we called get_reply_serial so much ;-)
11454
11455         * dbus/dbus-message.c (struct DBusMessage): cache reply serial
11456         and client serial instead of demarshaling them every time
11457
11458 2003-02-27  Havoc Pennington  <hp@pobox.com>
11459
11460         * dbus/dbus-marshal.c (_dbus_demarshal_int32): rewrite to be much
11461         more inlined, using dbus-string-private.h, speeds things up
11462         substantially
11463
11464         * dbus/dbus-string.c (_dbus_string_free): apply align offset
11465         when freeing the string
11466         (_dbus_string_steal_data): fix for align offset
11467         (undo_alignment): new function
11468
11469 2003-02-26  Havoc Pennington  <hp@redhat.com>
11470
11471         All kinds of audit fixes from Owen, plus initial attempt to
11472         handle unaligned memory returned from malloc.
11473
11474         * dbus/dbus-string.c (_dbus_string_init): clamp max length to
11475         leave room for align_offset and nul byte
11476         (fixup_alignment): function to track an align_offset and
11477         ensure real->str is aligned
11478         (DBUS_GENERIC_STRING_PREAMBLE): len must be less than allocated,
11479         to allow a nul byte plus align offset
11480         (_dbus_string_lock): fix overflow issue
11481         (_dbus_string_init_const_len): add assertions on sanity of len,
11482         assign allocated to be ALLOCATION_PADDING larger than len
11483         (set_length): fixup the overflow handling
11484         (_dbus_string_get_data_len): fix overflow in assertion
11485         (open_gap): detect overflow in size of gap to be opened
11486         (_dbus_string_lengthen): add overflow check
11487         (_dbus_string_align_length): fix overflow with _DBUS_ALIGN_VALUE
11488         (_dbus_string_append): add overflow check
11489         (_dbus_string_append_unichar): overflow
11490         (_dbus_string_delete): fix overflow in assertion
11491         (_dbus_string_copy_len): overflow in assertion
11492         (_dbus_string_replace_len): overflows in assertions
11493         (_dbus_string_find): change to implement in terms of
11494         _dbus_string_find_to
11495         (_dbus_string_find_to): assorted fixage
11496         (_dbus_string_equal_c_str): assert c_str != NULL,
11497         fix logic so the function works
11498         (_dbus_string_ends_with_c_str): fix overflow thingy
11499         (_dbus_string_base64_encode): overflow fix
11500         (_dbus_string_validate_ascii): overflow
11501         (_dbus_string_validate_nul): overflow
11502
11503 2003-02-26  Havoc Pennington  <hp@redhat.com>
11504
11505         * dbus/dbus-marshal.c (_dbus_marshal_test): fix to work with DISABLE_ASSERTS
11506
11507 2003-02-26  Alexander Larsson  <alexl@redhat.com>
11508
11509         * configure.in:
11510         Set DBUS_GLIB_THREADS_LIBS for apps using gthread-2.0
11511
11512         * dbus/dbus-connection.c:
11513         * dbus/dbus-connection.h:
11514         Fix _dbus_connection_acquire_io_path and _dbus_connection_acquire_dispatch.
11515         Add dbus_connection_set_wakeup_main_function and use it when queueing
11516         incoming and outgoing messages.
11517
11518
11519         * dbus/dbus-dataslot.c:
11520         Threadsafe usage of DBusDataSlotAllocator
11521
11522         * dbus/dbus-message.c: (dbus_message_get_args_iter):
11523         dbus_new can fail.
11524
11525         * dbus/dbus-server-unix.c:
11526         Add todo comment
11527
11528         * glib/dbus-gmain.c:
11529         Implement the new wakeup functions for glib.
11530
11531         * glib/Makefile.am:
11532         * glib/test-thread-client.c:
11533         * glib/test-thread-server.c:
11534         * glib/test-thread.h:
11535         Initial cut at some thread test code. Not really done yet.
11536
11537 2003-02-26  Havoc Pennington  <hp@pobox.com>
11538
11539         * dbus/dbus-connection.c
11540         (dbus_connection_send_message_with_reply_and_block): fix crash
11541         where we ref'd the outgoing message instead of the returned reply
11542
11543         * dbus/dbus-transport-unix.c (do_authentication): check read watch
11544         at the end of this function, so if we didn't need to read for
11545         authentication, we reinstall it for receiving messages
11546
11547         * dbus/dbus-message.c (dbus_message_new_reply): allow replies to
11548         a NULL sender for peer-to-peer case
11549
11550         * dbus/dbus-transport-unix.c (check_read_watch): handle
11551         !authenticated case correctly
11552
11553         * glib/dbus-gmain.c: add support for DBusServer
11554
11555         * dbus/dbus-server.c: add data slot support
11556
11557         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): check
11558         return values and handle errors
11559
11560         * dbus/dbus-dataslot.c: factor out the data slot stuff from
11561         DBusConnection
11562
11563         * Doxyfile.in (INPUT): add glib subdir
11564
11565         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): rename
11566         setup_with_g_main instead of hookup_with_g_main; write docs
11567
11568 2003-02-24  Anders Carlsson  <andersca@codefactory.se>
11569
11570         * dbus/dbus-marshal.c: (_dbus_marshal_validate_arg):
11571         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
11572         * dbus/dbus-message.c: (dbus_message_append_boolean),
11573         (dbus_message_append_boolean_array),
11574         (dbus_message_get_args_valist), (_dbus_message_test):
11575         * dbus/dbus-message.h:
11576         * doc/dbus-specification.sgml:
11577         Various fixes as pointed out by Havoc.
11578
11579         * test/data/invalid-messages/bad-boolean-array.message:
11580         * test/data/invalid-messages/bad-boolean.message:
11581         Add invalid boolean value test cases.
11582
11583 2003-02-24  Anders Carlsson  <andersca@codefactory.se>
11584
11585         * dbus/dbus-internals.c: (_dbus_type_to_string):
11586         * dbus/dbus-marshal.c: (_dbus_marshal_get_arg_end_pos),
11587         (_dbus_marshal_validate_arg):
11588         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
11589         * dbus/dbus-message.c: (dbus_message_append_args_valist),
11590         (dbus_message_append_boolean), (dbus_message_append_boolean_array),
11591         (dbus_message_get_args_valist), (dbus_message_iter_get_boolean),
11592         (dbus_message_iter_get_int32), (dbus_message_iter_get_uint32),
11593         (dbus_message_iter_get_double),
11594         (dbus_message_iter_get_boolean_array), (message_iter_test):
11595         * dbus/dbus-message.h:
11596         * dbus/dbus-protocol.h:
11597         * doc/dbus-specification.sgml:
11598         * test/data/valid-messages/lots-of-arguments.message:
11599         Add support for boolean and boolean array types.
11600
11601 2003-02-23  Havoc Pennington  <hp@pobox.com>
11602
11603         * dbus/dbus-keyring.c: finish most of this implementation and
11604         simple unit test
11605
11606         * dbus/dbus-errors.c (dbus_set_error_const, dbus_set_error): make
11607         these barf if the error isn't cleared to NULL
11608
11609         * dbus/dbus-sysdeps.c (_dbus_delete_file): set error on failure
11610         (_dbus_create_directory): new function
11611
11612         * dbus/dbus-errors.c (dbus_set_error): fix warning
11613
11614         * dbus/dbus-string.c (_dbus_string_hex_encode): new function
11615         (_dbus_string_hex_decode): new function
11616         (test_hex_roundtrip): test code
11617
11618         * dbus/dbus-sha.c (_dbus_sha_compute): use dbus_string_hex_encode
11619
11620         * dbus/dbus-md5.c (_dbus_md5_compute): use dbus_string_hex_encode
11621
11622         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): make this use
11623         the save-to-temp/rename trick to atomically write the new file
11624         (_dbus_string_parse_uint): new function
11625
11626 2003-02-22  Havoc Pennington  <hp@pobox.com>
11627
11628         * test/Makefile.am (dist-hook): fix dist for test/data/sha-1
11629
11630 2003-02-22  Havoc Pennington  <hp@pobox.com>
11631
11632         * dbus/dbus-message.c (dbus_message_iter_get_string_array):
11633         (dbus_message_iter_get_byte_array): Fix up doxygen warnings
11634
11635         * dbus/dbus-sha.c: add implementation of SHA-1 algorithm
11636
11637         * dbus/test/data/sha-1: add US government test suite for SHA-1
11638
11639 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
11640
11641         * dbus/dbus-marshal.c: (_dbus_demarshal_string_array):
11642         Make string arrays NULL-terminated.
11643
11644         * dbus/dbus-memory.c: (dbus_free_string_array):
11645         * dbus/dbus-memory.h:
11646         New function for freeing NULL-terminated string arrays.
11647
11648         * dbus/dbus-message-builder.c: (append_quoted_string),
11649         (_dbus_message_data_load):
11650         Add support for array types.
11651
11652         * dbus/dbus-message.c: (check_message_handling):
11653         Add more types as test cases.
11654
11655         * dbus/dbus-sysdeps.c: (_dbus_string_parse_int),
11656         (_dbus_string_parse_double):
11657         Add the start offset to the end offset.
11658
11659         * test/data/valid-messages/lots-of-arguments.message:
11660         New test message with lots of arguments.
11661
11662 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
11663
11664         * dbus/dbus-message.c: (dbus_message_append_nil),
11665         (dbus_message_append_int32), (dbus_message_append_uint32),
11666         (dbus_message_append_double), (dbus_message_append_string),
11667         (dbus_message_append_int32_array),
11668         (dbus_message_append_uint32_array),
11669         (dbus_message_append_double_array),
11670         (dbus_message_append_byte_array),
11671         (dbus_message_append_string_array):
11672         Fix all out-of-memory handling in these functions.
11673
11674 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
11675
11676         * dbus/dbus-message.c: (dbus_message_append_nil):
11677         Fix a silly.
11678
11679 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
11680
11681         * dbus/dbus-message.c: (dbus_message_append_args_valist),
11682         (dbus_message_append_nil), (dbus_message_append_int32_array),
11683         (dbus_message_append_uint32_array),
11684         (dbus_message_append_double_array),
11685         (dbus_message_append_byte_array),
11686         (dbus_message_append_string_array), (dbus_message_get_args_valist),
11687         (dbus_message_iter_get_int32_array),
11688         (dbus_message_iter_get_uint32_array),
11689         (dbus_message_iter_get_double_array),
11690         (dbus_message_iter_get_byte_array),
11691         (dbus_message_iter_get_string_array):
11692
11693         * dbus/dbus-message.h:
11694         Add functions for appending and getting arrays.
11695
11696 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
11697
11698         * dbus/dbus-mempool.c (_dbus_mem_pool_new): Make the
11699         element size at least 8 bytes, fixes mempool tests on
11700         64-bit machines.
11701
11702 2003-02-20  Alexander Larsson  <alexl@redhat.com>
11703
11704         * dbus/dbus-transport-unix.c (unix_do_iteration):
11705         Unlock the connection mutex during a blocking select call.
11706         Add todo about how we need a way to wake up the select.
11707
11708         * dbus/dbus-connection-internal.h:
11709         * dbus/dbus-connection.c:
11710         Add _dbus_connection_lock and _dbus_connection_unlock.
11711
11712 2003-02-19  Havoc Pennington  <hp@pobox.com>
11713
11714         * Doxyfile.in (PREDEFINED): put DOXYGEN_SHOULD_SKIP_THIS in
11715         Doxyfile.in, not Doxyfile
11716
11717         * dbus/dbus-keyring.c: do some hacking on this
11718
11719         * dbus/dbus-sysdeps.c (_dbus_delete_file): new
11720
11721         * dbus/dbus-errors.c (dbus_set_error_const): do not call
11722         dbus_error_init
11723         (dbus_set_error): remove dbus_error_init, check for message ==
11724         NULL *before* we sprintf into it, and add @todo about including
11725         system headers in this file
11726
11727         * dbus/dbus-sysdeps.c (_dbus_create_file_exclusively): new
11728
11729         * dbus/dbus-errors.h (DBUS_ERROR_FAILED): add
11730
11731         * dbus/dbus-sysdeps.c (get_user_info): break this function out to
11732         get various bits of user information based on either username
11733         or user ID
11734         (_dbus_homedir_from_username): new function
11735
11736 2003-02-19  Anders Carlsson  <andersca@codefactory.se>
11737
11738         * configure.in:
11739         Add check for nonposix getpwnam_r
11740
11741         * dbus/dbus-mempool.c: (_dbus_mem_pool_new):
11742         Align the pool element size to a sizeof (void *) boundary.
11743
11744         * dbus/dbus-sysdeps.c: (_dbus_setenv), (_dbus_connect_unix_socket),
11745         (_dbus_listen_unix_socket), (_dbus_credentials_from_username):
11746         General Solaris fixes.
11747
11748         * test/data/valid-messages/simplest-manual.message:
11749         Explicitly state that we want little-endian packing.
11750
11751 2003-02-19  Mikael Hallendal  <micke@codefactory.se>
11752
11753         * dbus/dbus-server.c (dbus_server_listen): Support tcp: addresses.
11754
11755         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_tcp_socket):
11756         Added to create a transport connecting using a tcp/ip socket.
11757
11758         * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): Added to connect
11759         to a tcp socket at given host and port.
11760         (_dbus_listen_tcp_socket): added to listen on tcp socket for given
11761         hostname and port.
11762
11763         * dbus/dbus-server.c (dbus_server_listen): Support tcp: addresses.
11764
11765         * dbus/dbus-server-unix.c (_dbus_server_new_for_tcp_socket):
11766         Added to create a server listening on a TCP/IP socket.
11767
11768 2003-02-19  Havoc Pennington  <hp@pobox.com>
11769
11770         Throughout: mop up all the Doxygen warnings and undocumented
11771         stuff.
11772
11773         * dbus/dbus-sysdeps.c (do_exec): do not use execvp, we don't want
11774         to search any paths.
11775
11776         * dbus/dbus-threads.c: move global mutex initializers to
11777         dbus-internals.h, multiple prototypes was confusing doxygen
11778         besides being kind of ugly
11779
11780         * Doxyfile (PREDEFINED): have Doxygen define
11781         DOXYGEN_SHOULD_SKIP_THIS so we can exclude things from
11782         docs with #ifndef DOXYGEN_SHOULD_SKIP_THIS
11783         (do not abuse the feature! it's for stuff like the autogenerated
11784         macros in dbus-md5.c, not just for things you don't feel like
11785         documenting...)
11786
11787 2003-02-18  Havoc Pennington  <hp@pobox.com>
11788
11789         * dbus/dbus-string.c (_dbus_string_zero): new function
11790
11791         * dbus/dbus-md5.c: include MD5 implementation by L. Peter Deutsch,
11792         wrap it in some dbus-friendly API
11793
11794         * dbus/dbus-types.h: add 16-bit types
11795
11796 2003-02-18  Joe Shaw  <joe@assbarn.com>
11797
11798         * dbus/dbus-auth.c (handle_server_data_stupid_test_mech): Just get
11799         credentials from our currently running process.
11800         (get_word): Fix a buglet where we were copying the entire length
11801         instead of relative to our position.
11802
11803         * dbus/dbus-hash.c (_dbus_hash_test): Don't try to allocate the
11804         keys on the stack... it's 640k of data.
11805
11806         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): Always
11807         read the credentials byte off the socket, even if we don't have
11808         SO_PEERCRED.
11809         (_dbus_poll): Implement poll() using select() for systems which
11810         don't have it.
11811
11812         * glib/test-dbus-glib.c (main): Print out an error if no
11813         parameters are given.
11814
11815         * test/data/auth/fallback.auth-script: Added.  Tests that a client
11816         can fallback to a secondary auth mechanism if the first fails.
11817
11818 2003-02-18  Havoc Pennington  <hp@pobox.com>
11819
11820         * AUTHORS: add Alex
11821
11822 2003-02-17  Havoc Pennington  <hp@pobox.com>
11823
11824         * doc/dbus-specification.sgml: lots of cosmetic
11825         cleanups/rearrangement, add assorted FIXME, change DBUS_ADDRESS
11826         env variable to DBUS_BUS_ADDRESS, s/client/application/,
11827         s/server/bus/ (except in authentication section). Add a section
11828         "Message Bus Message Routing"
11829
11830 2003-02-17  Anders Carlsson  <andersca@codefactory.se.>
11831
11832         Release 0.4
11833
11834         * NEWS: Update
11835
11836 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
11837
11838         * doc/dbus-specification.sgml:
11839         Specification updates.
11840
11841 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
11842
11843         * bus/activation.c: (bus_activation_init), (child_setup),
11844         (bus_activation_activate_service):
11845         * bus/activation.h:
11846         * bus/main.c: (main):
11847         Set DBUS_ADDRESS environment variable.
11848
11849         * dbus/dbus-errors.c: (dbus_set_error):
11850         Don't use va_copy since that's a C99 feature.
11851
11852         * dbus/dbus-sysdeps.c: (_dbus_setenv), (do_exec),
11853         (_dbus_spawn_async):
11854         * dbus/dbus-sysdeps.h:
11855         Add child_setup_func to _dbus_spawn_async.
11856
11857         * doc/dbus-specification.sgml:
11858         Update specification.
11859
11860         * test/spawn-test.c: (setup_func), (main):
11861         Fix test.
11862
11863 2003-02-17  Alexander Larsson  <alexl@redhat.com>
11864
11865         * dbus/dbus-connection.c (_dbus_connection_handler_destroyed_locked):
11866         Added todo.
11867
11868 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
11869
11870         * doc/.cvsignore:
11871         * doc/Makefile.am:
11872         * doc/dbus-test-plan.sgml:
11873         Add test plan document.
11874
11875         * test/Makefile.am:
11876         Fix distcheck.
11877
11878 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
11879
11880         * dbus/dbus-message.c: (decode_header_data),
11881         (_dbus_message_loader_return_buffer):
11882         Set the header padding amount when loading a message.
11883
11884 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
11885
11886         * bus/dispatch.c: (send_one_message):
11887         Only send broadcast messages to registered connections.
11888
11889         * dbus/dbus-message.c: (dbus_message_name_is):
11890         * dbus/dbus-message.h:
11891         New convenience function.
11892
11893         * dbus/dbus-transport-debug.c: (do_reading):
11894         Only dispatch one message per run.
11895
11896         * test/Makefile.am:
11897         * test/bus-test.c: (new_connection_callback), (die),
11898         (test_hello_client1_handler), (test_hello_client2_handler),
11899         (test_hello_replies), (main):
11900
11901         * test/bus-test-loop.[ch]:
11902         Add these.
11903
11904 2003-02-16  Havoc Pennington  <hp@pobox.com>
11905
11906         * dbus/dbus-connection.c (dbus_connection_dispatch_message): fix
11907         backward conditional
11908
11909 2003-02-16  Alexander Larsson  <alexl@redhat.com>
11910
11911         * dbus/dbus-connection.c:
11912         Implement sent_message_with_reply. (with_reply_and block is still
11913         busted).
11914         Made dispatch_message not lose message if OOM.
11915
11916         * dbus/dbus-errors.h:
11917         Add NoReply error (for reply timeouts).
11918
11919 2003-02-16  Alexander Larsson  <alexl@redhat.com>
11920
11921         * dbus/dbus-hash.c (_dbus_hash_table_unref):
11922         Actually free keys and values when destroying hashtable.
11923
11924 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
11925
11926         * dbus/dbus-auth.c: (client_try_next_mechanism):
11927         Plug a leak.
11928
11929         * dbus/dbus-threads.c: (dbus_condvar_wait_timeout):
11930         Return TRUE if there's no thread implementation around.
11931
11932         * glib/dbus-gmain.c: (free_source),
11933         (dbus_connection_hookup_with_g_main):
11934         Make sure to remove the GSource when the connection is finalized.
11935
11936 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
11937
11938         * bus/dispatch.c: (bus_dispatch_message_handler):
11939         * dbus/dbus-errors.h:
11940         Return an error if someone tries to send a message to a service
11941         that doesn't exist.
11942
11943 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
11944
11945         * bus/activation.c: (load_directory), (bus_activation_init),
11946         (bus_activation_activate_service):
11947         * bus/activation.h:
11948         * bus/driver.c:
11949         (bus_driver_handle_activate_service), (bus_driver_handle_message):
11950         More work on the activation handling.
11951
11952         * dbus/dbus-errors.h:
11953         Add some error messages
11954
11955         * dbus/dbus-message.c: (dbus_message_new_error_reply):
11956         * dbus/dbus-message.h:
11957         New function that creates an error message.
11958
11959         * dbus/dbus-protocol.h:
11960         Add ACTIVATE_SERVER message.
11961
11962         * dbus/dbus-server-unix.c: (unix_handle_watch),
11963         (_dbus_server_new_for_domain_socket):
11964         Call _dbus_fd_set_close_on_exec.
11965
11966         * dbus/dbus-sysdeps.c: (make_pipe), (do_exec),
11967         (_dbus_spawn_async), (_dbus_disable_sigpipe),
11968         (_dbus_fd_set_close_on_exec):
11969         * dbus/dbus-sysdeps.h:
11970         Add _dbus_fd_set_close_on exec function. Also add function that checks
11971         that all open fds are set to close-on-exec and warns otherwise.
11972
11973         * dbus/dbus-transport-unix.c:
11974         (_dbus_transport_new_for_domain_socket):
11975         Call _dbus_fd_set_close_on_exec.
11976
11977 2003-02-16  Havoc Pennington  <hp@pobox.com>
11978
11979         * dbus/dbus-connection.c (dbus_connection_set_change_sigpipe):
11980         allow people to avoid setting SIGPIPE to SIG_IGN
11981         (_dbus_connection_new_for_transport): disable SIGPIPE unless
11982         we've been asked not to
11983
11984 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
11985
11986         * dbus/dbus-list.c: (_dbus_list_append_link),
11987         (_dbus_list_prepend_link):
11988         * dbus/dbus-memory.c: (dbus_malloc), (dbus_malloc0),
11989         (dbus_realloc):
11990         Warning fixes.
11991
11992 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
11993
11994         * bus/Makefile.am:
11995         * bus/activation.c: (bus_activation_entry_free),
11996         (add_desktop_file_entry), (load_directory), (bus_activation_init):
11997         * bus/activation.h:
11998         * bus/main.c: (main):
11999         Add simple activation support, doesn't work yet though.
12000
12001 2003-02-15   Zack Rusin  <zack@kde.org>
12002
12003         * qt/dbus-qthread.cpp:  small casting fix
12004
12005 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
12006
12007         * dbus/dbus-errors.c: (dbus_set_error):
12008         * dbus/dbus-errors.h:
12009         Add a few errors and make dbus_set_error void.
12010
12011         * dbus/dbus-sysdeps.c:
12012         (_dbus_errno_to_string), (close_and_invalidate), (make_pipe),
12013         (write_err_and_exit), (read_ints), (do_exec), (_dbus_spawn_async):
12014         * dbus/dbus-sysdeps.h:
12015         Add _dbus_spawn_async.
12016
12017         * test/spawn-test.c: (main):
12018         Test for _dbus_spawn_async.
12019
12020 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
12021
12022         * dbus/dbus-internals.h:
12023         Fix build without tests.
12024
12025         * dbus/dbus-list.c: (alloc_link):
12026         Fix a segfault when a malloc fails.
12027
12028         * dbus/dbus-memory.c: (initialize_malloc_debug), (dbus_malloc),
12029         (dbus_malloc0), (dbus_realloc):
12030         Add support for malloc debugging.
12031
12032 2003-02-15  Alexander Larsson  <alexl@redhat.com>
12033
12034         * dbus/dbus-threads.c:
12035         * dbus/dbus-threads.h:
12036         Add condvars. Remove static mutext from API.
12037         Implement static mutexes by initializing them from threads_init.
12038
12039         * glib/dbus-gthread.c:
12040         * qt/dbus-qthread.cpp:
12041         Update with the thread api changes.
12042
12043
12044         * dbus/dbus-list.c:
12045         * dbus/dbus-list.h:
12046         Turn StaticMutex into normal mutex + init function.
12047         Export new functions _dbus_list_alloc_link, _dbus_list_free_link,
12048         _dbus_list_append_link, _dbus_list_prepend_link
12049
12050
12051         * dbus/dbus-sysdeps.c:
12052         * dbus/dbus-sysdeps.h:
12053         New type dbus_atomic_t, and new functions _dbus_atomic_inc,
12054         _dbus_atomic_dec. Only slow fallback implementation at the moment.
12055
12056         * dbus/dbus-protocol.h:
12057         Add DBUS_MESSAGE_LOCAL_DISCONNECT define
12058
12059         * dbus/dbus-message.c:
12060         Make ref/unref atomic.
12061         Fix some docs.
12062
12063         * dbus/dbus-connection-internal.h:
12064         * dbus/dbus-connection.c:
12065         * dbus/dbus-connection.h:
12066         Make threadsafe.
12067         Change _peek to _borrow,_return & _steal_borrowed.
12068         Change disconnect callback to event.
12069         Make dbus_connection_dispatch_messages reentrant.
12070
12071         * dbus/dbus-transport.c:
12072         Don't ref the connection on calls to the transport
12073         implementation.
12074
12075         * dbus/dbus-message-handler.c:
12076         Make threadsafe.
12077
12078         * glib/dbus-gmain.c:
12079         Don't use peek_message anymore
12080
12081         * test/Makefile.am:
12082         * test/debug-thread.c:
12083         * test/debug-thread.h:
12084         Simple thread implementation that asserts() on deadlocks in
12085         single-threaded code.
12086
12087         * test/bus-test.c:
12088         (main) Call debug_threads_init.
12089
12090         * test/watch.c:
12091         Use disconnect message instead of disconnect callback.
12092
12093         * bus/connection.c:
12094         * bus/connection.h:
12095         Don't call dbus_connection_set_disconnect_function. Instead export
12096         bus_connection_disconnect.
12097
12098         * bus/dispatch.c:
12099         Call bus_connection_disconnect when we get a disconnected message.
12100
12101 2003-02-15  Havoc Pennington  <hp@pobox.com>
12102
12103         * dbus/dbus-message.c (dbus_message_new): fool around with the
12104         docs
12105
12106 2003-02-14  Havoc Pennington  <hp@pobox.com>
12107
12108         * dbus/dbus-mempool.c: fail if the debug functions so indicate
12109
12110         * dbus/dbus-memory.c: fail if the debug functions indicate we
12111         should
12112
12113         * dbus/dbus-internals.c (_dbus_set_fail_alloc_counter)
12114         (_dbus_decrement_fail_alloc_counter): debug functions to
12115         simulate memory allocation failures
12116
12117 2003-02-14  Havoc Pennington  <hp@pobox.com>
12118
12119         * dbus/dbus-errors.h (struct DBusError): add a word of padding
12120         to DBusError
12121
12122 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12123
12124         * bus/driver.c: (bus_driver_handle_hello):
12125         * bus/driver.h:
12126         * bus/services.c: (bus_service_lookup):
12127         Reorder message sending so we get a more sane order.
12128
12129         * test/bus-test.c: (message_handler):
12130         Fix tyop.
12131
12132 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12133
12134         * bus/driver.c: (bus_driver_send_service_deleted),
12135         (bus_driver_send_service_created), (bus_driver_send_service_lost),
12136         (bus_driver_send_service_acquired), (bus_driver_handle_hello),
12137         (bus_driver_send_welcome_message),
12138         (bus_driver_handle_list_services),
12139         (bus_driver_handle_acquire_service),
12140         (bus_driver_handle_service_exists):
12141         * dbus/dbus-bus.c: (dbus_bus_register_client),
12142         (dbus_bus_acquire_service), (dbus_bus_service_exists):
12143         * dbus/dbus-errors.c: (dbus_result_to_string):
12144         * dbus/dbus-errors.h:
12145         * dbus/dbus-message.c: (dbus_message_append_args),
12146         (dbus_message_append_args_valist), (dbus_message_get_args),
12147         (dbus_message_get_args_valist), (dbus_message_get_args_iter),
12148         (dbus_message_iter_get_arg_type), (dbus_message_iter_get_string),
12149         (dbus_message_iter_get_byte_array),
12150         (dbus_message_iter_get_string_array), (message_iter_test),
12151         (check_message_handling), (_dbus_message_test):
12152         * dbus/dbus-message.h:
12153         * test/bus-test.c: (main):
12154         Change fields to arguments in messages, so that they won't be
12155         confused with header fields.
12156
12157         * glib/test-dbus-glib.c: (main):
12158         Remove append_fields from hello message.
12159
12160 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12161
12162         * dbus/dbus-errors.c:
12163         * dbus/dbus-message.c:
12164         * dbus/dbus-string.c:
12165         Documentation fixes.
12166
12167 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12168
12169         * glib/dbus-gmain.c: (timeout_handler), (add_timeout),
12170         (remove_timeout):
12171         Implement support for timeouts in dbus-glib.
12172
12173 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12174
12175         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
12176         * dbus/dbus-message.c: (process_test_subdir):
12177         * test/break-loader.c: (find_breaks_based_on):
12178         Plug some memory leaks.
12179
12180 2003-02-13  Richard Hult  <rhult@codefactory.se>
12181
12182         * bus/main.c: Fix build.
12183
12184         * dbus/dbus-errors.h:
12185         * dbus/dbus-errors.c: Fix copyright for Anders.
12186
12187 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12188
12189         * bus/Makefile.am:
12190         Add utils.[ch]
12191
12192         * bus/connection.c: (bus_connection_foreach):
12193         Fix a warning.
12194
12195         * bus/desktop-file.c: (grow_lines_in_section), (grow_sections),
12196         (unescape_string), (new_section), (parse_section_start),
12197         (parse_key_value), (report_error), (bus_desktop_file_load),
12198         (bus_desktop_file_get_string):
12199         * bus/desktop-file.h:
12200         Use DBusError for error reporting.
12201
12202         * bus/dispatch.c: (send_one_message),
12203         (bus_dispatch_message_handler):
12204         * bus/driver.c: (bus_driver_send_service_deleted),
12205         (bus_driver_send_service_created), (bus_driver_send_service_lost),
12206         (bus_driver_send_service_acquired), (bus_driver_handle_hello),
12207         (bus_driver_send_welcome_message),
12208         (bus_driver_handle_list_services),
12209         (bus_driver_handle_acquire_service),
12210         (bus_driver_handle_service_exists):
12211         * bus/loop.c: (bus_loop_run):
12212         * bus/main.c:
12213         Use BUS_HANDLE_OOM instead of _DBUS_HANDLE_OOM.
12214
12215         * bus/utils.c: (bus_wait_for_memory):
12216         * bus/utils.h:
12217         New files with general utility functions.
12218
12219         * dbus/dbus-internals.h:
12220         Remove _DBUS_HANDLE_OOM.
12221
12222 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12223
12224         * dbus/dbus-errors.c: (dbus_result_to_string), (dbus_error_init),
12225         (dbus_error_free), (dbus_set_error_const), (dbus_set_error):
12226         * dbus/dbus-errors.h:
12227         Add DBusError structure.
12228
12229 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12230
12231         * test/data/valid-messages/standard-acquire-service.message:
12232         * test/data/valid-messages/standard-hello.message:
12233         * test/data/valid-messages/standard-list-services.message:
12234         * test/data/valid-messages/standard-service-exists.message:
12235         Add some standard messages.
12236
12237 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12238
12239         * bus/driver.c: (bus_driver_send_welcome_message),
12240         (bus_driver_handle_list_services),
12241         (bus_driver_handle_acquire_service),
12242         (bus_driver_handle_service_exists), (bus_driver_handle_message):
12243         Update for API changes in libdbus.
12244
12245         * dbus/dbus-message.c: (dbus_message_new_reply):
12246         * dbus/dbus-message.h:
12247         Remove the name argument. The spec states that replies shouldn't
12248         have a name.
12249
12250 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12251
12252         * bus/desktop-file.c: (parse_section_start), (parse_key_value),
12253         (report_error), (bus_desktop_file_load), (lookup_section),
12254         (lookup_line), (bus_desktop_file_get_raw),
12255         (bus_desktop_file_get_string):
12256         * bus/desktop-file.h:
12257         Some fixes, and new functions for getting a key value from a section.
12258
12259 2003-02-13  Havoc Pennington  <hp@pobox.com>
12260
12261         * test/data/auth/fail-after-n-attempts.auth-script: new test
12262
12263         * dbus/dbus-auth.c (send_rejected): shutdown_mech() when we
12264         reject the client.
12265
12266 2003-02-13  Havoc Pennington  <hp@pobox.com>
12267
12268         * dbus/dbus-auth.c (handle_server_data_external_mech): args to
12269         dbus_credentials_match were backward
12270
12271         * dbus/dbus-auth-script.c (_dbus_auth_script_run): support
12272         NO_CREDENTIALS and ROOT_CREDENTIALS
12273
12274         * dbus/dbus-auth.c (_dbus_auth_do_work): move get_state() routine
12275         into here. Never process more commands after we've reached an
12276         end state; store further data as unused bytes.
12277
12278         * test/data/auth/*: add more auth tests
12279
12280         * dbus/dbus-auth-script.c (_dbus_auth_script_run): support EXPECT
12281         command to match exact string and EXPECT_UNUSED to match unused
12282         bytes
12283
12284         * test/Makefile.am (dist-hook): fix to dist all the test stuff
12285
12286 2003-02-12  Havoc Pennington  <hp@pobox.com>
12287
12288         * dbus/dbus-string.c (_dbus_string_pop_line): fix to also strip
12289         \r off of popped lines
12290
12291         * dbus/dbus-auth.c (_dbus_auth_test): write code to run auth
12292         scripts
12293
12294         * dbus/dbus-auth-script.c (_dbus_auth_script_run): when doing a
12295         SEND, append \r\n
12296
12297 2003-02-12  Havoc Pennington  <hp@pobox.com>
12298
12299         * dbus/Makefile.am: remove break-loader from the build, since it
12300         moved.
12301
12302         * configure.in: add --enable-gcov to turn on coverage profiling
12303         flags and disable optimization
12304
12305 2003-02-10  Havoc Pennington  <hp@pobox.com>
12306
12307         * dbus/dbus-auth-script.c, dbus/dbus-auth-script.h: sync
12308         initial cut at test framework for DBusAuth from laptop.
12309         Doesn't quite work yet but it compiles and I need to get
12310         it off the 266mhz laptop. ;-)
12311
12312         * dbus/dbus-server-debug.c (_dbus_server_debug_accept_transport):
12313         fix a memleak in error case
12314
12315 2003-02-12  Anders Carlsson  <andersca@codefactory.se>
12316
12317         * bus/Makefile.am:
12318         * bus/desktop-file.c:
12319         * bus/desktop-file.h:
12320         Add a desktop file parser.
12321
12322 2003-02-11  Zack Rusin  <zack@kde.org>
12323
12324         * qt/message.[h|cpp]: sample implementation
12325         of the KDE wrapper for DBusMessage
12326
12327 2003-02-09  Zack Rusin  <zack@kde.org>
12328
12329         * test/bus-test.c: make_it_compile
12330         * doc/dbus-specification.sgml: minimal semantic fix
12331
12332 2003-02-06  Anders Carlsson  <andersca@codefactory.se>
12333
12334         Release 0.3
12335
12336         * NEWS: Update
12337
12338 2003-02-06  Anders Carlsson  <andersca@codefactory.se>
12339
12340         * dbus/Makefile.am:
12341         * dbus/dbus-break-loader.c:
12342         * test/Makefile.am:
12343         * test/break-loader.c:
12344         Move dbus-break-loader to test/ and rename it to break-loader.
12345
12346 2003-02-02  Havoc Pennington  <hp@pobox.com>
12347
12348         * dbus/dbus-keyring.c, dbus/dbus-keyring.h: template files
12349         for code to manage cookies in your home directory
12350
12351         * dbus/dbus-sysdeps.c (_dbus_generate_random_bytes): new function
12352
12353         * dbus/dbus-auth.c (get_state): impose a maximum number of tries
12354         to authenticate, then disconnect the client.
12355
12356 2003-02-03  Alexander Larsson  <alexl@redhat.com>
12357
12358         * dbus/dbus-message.c (dbus_message_append_fields):
12359         Correct docs.
12360
12361 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
12362
12363         * doc/dbus-specification.sgml:
12364         Update address format section.
12365
12366 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
12367
12368         * test/Makefile.am:
12369         * test/bus-test.c: (get_time), (add_timeout), (remove_timeout),
12370         (message_handler), (new_connection_callback), (loop_quit),
12371         (loop_run), (main):
12372         Add bus test.
12373
12374 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
12375
12376         * bus/driver.c: (bus_driver_handle_service_exists):
12377         Simplify the code a bit.
12378
12379         * dbus/dbus-bus.c: (dbus_bus_service_exists):
12380         Fix a silly.
12381
12382 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
12383
12384         * bus/Makefile.am:
12385         Add libdbus-daemon.la and link to it.
12386
12387 2003-02-01  James Willcox  <jwillcox@gnome.org>
12388
12389         * bus/driver.c: (bus_driver_handle_own_service):
12390         Actually include the service reply code in the message.
12391
12392 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
12393
12394         * bus/driver.c: (bus_driver_handle_service_exists):
12395         Don't unref the incoming message.
12396
12397 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
12398
12399         * dbus/dbus.h: Add dbus-address.h and dbus-bus.h
12400
12401 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
12402
12403         * dbus/dbus-server.c: (dbus_server_listen):
12404         * dbus/dbus-transport.c: (_dbus_transport_open):
12405         ifdef out the calls to the debug transport and server.
12406
12407 2003-02-02  Alexander Larsson  <alexl@redhat.com>
12408
12409         * dbus/dbus-watch.c (dbus_watch_get_flags):
12410         Add note in the docs that ERROR or HANGUP won't be returned
12411         and are assumed always on.
12412
12413         * glib/dbus-gmain.c (add_watch):
12414         Always add IO_ERR | IO_HUP
12415
12416         * dbus/dbus-message.h:
12417         Add semicolon after dbus_message_iter_get_string_array().
12418         Makes qt code build again
12419
12420 2003-02-01  Anders Carlsson  <andersca@codefactory.se>
12421
12422         * bus/driver.c: (create_unique_client_name),
12423         (bus_driver_handle_hello):
12424         Don't take a name, just use a numeric id to identify
12425         each client.
12426
12427         * dbus/Makefile.am:
12428         * dbus/dbus-bus.c: (dbus_bus_register_client),
12429         (dbus_bus_acquire_service), (dbus_bus_service_exists):
12430         * dbus/dbus-bus.h:
12431         Add new convenience functions for communicating with the bus.
12432
12433         * dbus/dbus-message.h:
12434
12435         * dbus/dbus-protocol.h:
12436         Fix a typo.
12437
12438 2003-02-01  Alexander Larsson  <alexl@redhat.com>
12439
12440         * dbus/dbus-message.c (dbus_message_append_fields):
12441         Add some more doc comments.
12442
12443 2003-02-01  Havoc Pennington  <hp@pobox.com>
12444
12445         * dbus/dbus-break-loader.c (randomly_modify_length): change
12446         a 4-byte value in the message as if it were a length
12447
12448         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): don't set
12449         execute bit on saved files
12450
12451 2003-02-01  Havoc Pennington  <hp@pobox.com>
12452
12453         * dbus/dbus-break-loader.c (main): new program to find messages
12454         that break the loader.
12455
12456         * dbus/dbus-sysdeps.c (_dbus_string_append_uint): new function
12457         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): new function
12458
12459         * dbus/dbus-string.c (_dbus_string_set_byte): new
12460
12461 2003-01-31  Havoc Pennington  <hp@pobox.com>
12462
12463         * dbus/dbus-message.c: refactor the test code to be more general,
12464         in preparation for writing a "randomly permute test cases to
12465         try to break the loader" program.
12466
12467 2003-01-31  Havoc Pennington  <hp@pobox.com>
12468
12469         * doc/dbus-specification.sgml: work on the specification
12470
12471         * dbus/dbus-message.c (_dbus_message_loader_return_buffer): check
12472         the protocol version of the message.
12473
12474         * dbus/dbus-protocol.h: drop special _REPLY names, the spec
12475         no longer specifies that.
12476         (DBUS_SERVICE_REPLY_SERVICE_EXISTS): fix flags (1/2/4/8 not
12477         1/2/3/4)
12478
12479         * dbus/dbus-marshal.c (_dbus_marshal_get_arg_end_pos): add missing
12480         "break" for DBUS_TYPE_NIL, remove @todo
12481
12482 2003-01-31  Havoc Pennington  <hp@pobox.com>
12483
12484         * dbus/dbus-message.c (dbus_message_set_is_error_reply): rename
12485         just set_is_error/get_is_error as this is a commonly-used
12486         function, and write docs.
12487
12488 2003-01-31  Anders Carlsson  <andersca@codefactory.se>
12489
12490         * dbus/dbus-address.c: (dbus_address_entry_free):
12491         Free key and value lists.
12492
12493         * dbus/dbus-internals.c: (_dbus_type_to_string):
12494         Add the types we didn't have.
12495
12496         * dbus/dbus-marshal.c: (_dbus_marshal_get_arg_end_pos),
12497         (_dbus_marshal_validate_arg):
12498         Add NIL types.
12499
12500         * dbus/dbus-message.c: (dbus_message_set_sender):
12501         Remove todo about being able to set sender to NULL.
12502
12503         (dbus_message_set_is_error_reply),
12504         (dbus_message_get_is_error_reply):
12505         * dbus/dbus-message.h:
12506         New functions.
12507
12508         * dbus/dbus-protocol.h:
12509         Add error reply flag.
12510
12511         * test/data/valid-messages/opposite-endian.message:
12512         Add NIL type to test.
12513
12514 2003-01-31  Havoc Pennington  <hp@pobox.com>
12515
12516         * doc/dbus-specification.sgml: fully specify the header.  Add
12517         flags and major protocol version, and change header/body len to
12518         unsigned.
12519
12520         * dbus/dbus-message-builder.c (append_saved_length): append length
12521         as uint32
12522
12523         * dbus/dbus-message.c (dbus_message_create_header): change header
12524         length and body length to unsigned. Add the new fields from the
12525         spec
12526         (_dbus_message_loader_return_buffer): unsigned header/body len
12527
12528 2003-01-30  Havoc Pennington  <hp@pobox.com>
12529
12530         * dbus/dbus-auth.c: rework to use only REJECTED, no
12531         MECHANISMS
12532
12533         * doc/dbus-sasl-profile.txt: drop MECHANISMS and just
12534         use REJECTED, suggested by Mark McLoughlin
12535
12536 2003-01-30  Havoc Pennington  <hp@pobox.com>
12537
12538         * dbus/dbus-server.c (dbus_server_listen): @todo about how we need
12539         a better way to report errors here. e.g.  "unix address lacks
12540         path" or something. also "no such file" when the path doesn't
12541         exist, etc.
12542
12543         * dbus/dbus-address.c (dbus_address_entries_free): add @todo about
12544         leaking list nodes
12545         (dbus_parse_address): add @todo about documenting address format,
12546         and allowing , and ; to be escaped
12547
12548 2003-01-30  Anders Carlsson  <andersca@codefactory.se>
12549
12550         * dbus/Makefile.am:
12551         Add dbus-address.[ch]
12552
12553         * dbus/dbus-address.c: (dbus_address_entry_free),
12554         (dbus_address_entries_free), (create_entry),
12555         (dbus_address_entry_get_method), (dbus_address_entry_get_value),
12556         (dbus_parse_address), (_dbus_address_test):
12557         * dbus/dbus-address.h:
12558         New files for dealing with address parsing.
12559
12560         * dbus/dbus-connection.c:
12561         Document timeout functions.
12562
12563         * dbus/dbus-message.c:
12564         Document dbus_message_new_from_message.
12565
12566         * dbus/dbus-server-debug.c:
12567         Document.
12568
12569         * dbus/dbus-server.c: (dbus_server_listen):
12570         Parse address and use correct server implementation.
12571
12572         * dbus/dbus-string.c: (_dbus_string_find_to), (_dbus_string_test):
12573         * dbus/dbus-string.h:
12574         New function with test.
12575
12576         * dbus/dbus-test.c: (dbus_internal_symbol_do_not_use_run_tests):
12577         * dbus/dbus-test.h:
12578         Add address tests.
12579
12580         * dbus/dbus-transport-debug.c:
12581         Document.
12582
12583         * dbus/dbus-transport.c: (_dbus_transport_open):
12584         Parse address and use correct transport implementation.
12585
12586 2003-01-30  Havoc Pennington  <hp@pobox.com>
12587
12588         * dbus/dbus-message.c: use message->byte_order instead of
12589         DBUS_COMPILER_BYTE_ORDER throughout.
12590         (dbus_message_create_header): pad header to align the
12591         start of the body of the message to 8-byte boundary
12592
12593         * dbus/dbus-marshal.h: make all the demarshalers take const
12594         DBusString arguments.
12595
12596         * dbus/dbus-message.c (_dbus_message_loader_return_buffer):
12597         validate message args here, so we don't have to do slow validation
12598         later, and so we catch bad messages as they are incoming. Also add
12599         better checks on header_len and body_len. Also fill in
12600         message->byte_order
12601
12602         * dbus/dbus-string.c (_dbus_string_validate_utf8): new (not
12603         implemented properly)
12604         (_dbus_string_validate_nul): new function to check all-nul
12605
12606         * dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): rename
12607         get_arg_end_pos and remove all validation
12608         (_dbus_marshal_validate_arg): actually do validation here.
12609
12610 2003-01-29  Havoc Pennington  <hp@pobox.com>
12611
12612         * dbus/dbus-message.c (check_message_handling): fix assertion
12613         failure on set_client_serial
12614
12615 2003-01-28  Havoc Pennington  <hp@pobox.com>
12616
12617         * dbus/dbus-server-debug.c: Add doc section comments
12618
12619         * dbus/dbus-transport-debug.c: add doc section comments
12620
12621 2003-01-28  Havoc Pennington  <hp@redhat.com>
12622
12623         * dbus/dbus-string.c (_dbus_string_base64_decode): append bytes in
12624         the reverse order from how I had it
12625         (_dbus_string_base64_encode): reverse encoding order. I was
12626         basically byteswapping everything during encoding.
12627
12628 2003-01-28  Anders Carlsson  <andersca@codefactory.se>
12629
12630         * dbus/dbus-connection-internal.h:
12631         * dbus/dbus-connection.c: (_dbus_connection_add_timeout),
12632         (_dbus_connection_remove_timeout):
12633         Add functions for adding and removing timeouts.
12634
12635         * dbus/dbus-message.c: (dbus_message_new_from_message):
12636         Add new function that takes a message and creates an exact
12637         copy of it, but with the refcount set to 1.
12638         (check_message_handling):
12639         Fix build error.
12640
12641         * dbus/dbus-server-protected.h:
12642         * dbus/dbus-server.c: (_dbus_server_init_base),
12643         (_dbus_server_finalize_base), (_dbus_server_add_timeout),
12644         (dbus_server_set_timeout_functions):
12645         (_dbus_server_remove_timeout):
12646         New functions so that a server can add and remove timeouts.
12647
12648         (dbus_server_listen):
12649         Add commented out call to dbus_server_debug_new.
12650
12651         * dbus/dbus-timeout.c: (_dbus_timeout_new):
12652         Actually set the handler, doh.
12653
12654         * dbus/dbus-transport.c: (_dbus_transport_open):
12655         Add commented out call to dbus_transport_debug_client_new.
12656
12657         * dbus/Makefile.am:
12658         Add dbus-transport-debug.[ch] and dbus-server-debug.[ch]
12659
12660 2003-01-28  Havoc Pennington  <hp@pobox.com>
12661
12662         * dbus/dbus-message.c (check_message_handling): function to check
12663         on the loaded message, iterates over it etc.
12664
12665 2003-01-28  Havoc Pennington  <hp@pobox.com>
12666
12667         * test/Makefile.am (dist-hook): fix make distdir
12668
12669         * dbus/Makefile.am (TESTS_ENVIRONMENT): fix make check
12670
12671 2003-01-27  Havoc Pennington  <hp@pobox.com>
12672
12673         * dbus/dbus-mempool.c (time_for_size): replace printf with
12674         _dbus_verbose
12675
12676         * dbus/dbus-message-builder.c (_dbus_message_data_load): allow
12677         empty lines; fix the SAVE_LENGTH stuff to be
12678         START_LENGTH/END_LENGTH so it actually works; couple other
12679         bugfixes
12680
12681         * test/Makefile.am (dist-hook): add dist-hook for .message files
12682
12683         * dbus/dbus-string.c (DBUS_STRING_COPY_PREAMBLE): source of a copy
12684         can be constant or locked.
12685         (_dbus_string_free): allow freeing a const string as
12686         documented/intended
12687
12688         * dbus/dbus-sysdeps.c (_dbus_concat_dir_and_file): utility
12689
12690         * dbus/dbus-test-main.c (main): take an argument which is the
12691         directory containing test data
12692
12693         * dbus/dbus-message.c (_dbus_message_test): pass a test_data_dir
12694         argument to this and load all the messages in test/data/
12695         checking that they can be loaded or not loaded as appropriate.
12696
12697 2003-01-27  Anders Carlsson  <andersca@codefactory.se>
12698
12699         * bus/dispatch.c: (bus_dispatch_message_handler):
12700         Dispatch messages sent to services.
12701
12702         * bus/driver.c: (bus_driver_send_service_deleted),
12703         (bus_driver_send_service_created), (bus_driver_send_service_lost),
12704         (bus_driver_send_service_acquired):
12705         Add helper functions for sending service related messages.
12706
12707         (bus_driver_send_welcome_message):
12708         Send HELLO_REPLY instead of WELCOME.
12709
12710         (bus_driver_handle_list_services):
12711         Send LIST_SERVICES_REPLY instead of SERVICES.
12712
12713         (bus_driver_handle_own_service),
12714         (bus_driver_handle_service_exists):
12715         New message handlers.
12716
12717         (bus_driver_handle_message):
12718         Invoke new message handlers.
12719
12720         (bus_driver_remove_connection):
12721         Don't remove any services here since that's done automatically
12722         by bus_service_remove_owner now.
12723
12724         * bus/driver.h:
12725         New function signatures.
12726
12727         * bus/services.c: (bus_service_add_owner):
12728         Send ServiceAcquired message if we're the only primary owner.
12729
12730         (bus_service_remove_owner):
12731         Send ServiceAcquired/ServiceLost messages.
12732
12733         (bus_service_set_prohibit_replacement),
12734         (bus_service_get_prohibit_replacement):
12735         Functions for setting prohibit replacement.
12736
12737         (bus_service_has_owner):
12738         New function that checks if a connection is in the owner queue of
12739         a certain service.
12740
12741         * bus/services.h:
12742         Add new function signatures.
12743
12744         * dbus/dbus-list.c: (_dbus_list_test):
12745         Add tests for _dbus_list_remove_last and traversing the list backwards.
12746
12747         * dbus/dbus-list.h:
12748         Fix a typo in _dbus_list_get_prev_link, if we're at the first element we can't
12749         go any further, so return NULL then.
12750
12751         * dbus/dbus-protocol.h:
12752         Add new messages, service flags and service replies.
12753
12754 2003-01-26  Havoc Pennington  <hp@pobox.com>
12755
12756         * dbus/dbus-message-builder.c: implement, completely untested.
12757
12758         * test/data/*: add data to be used in testing.
12759         ".message" files are our simple loadable text format.
12760         ".message-raw" will be binary dumps of messages.
12761
12762         * dbus/dbus-string.c (_dbus_string_starts_with_c_str): new
12763
12764 2003-01-26  Havoc Pennington  <hp@pobox.com>
12765
12766         * dbus/dbus-sysdeps.c (_dbus_file_get_contents): new function
12767
12768         * dbus/dbus-errors.c (dbus_result_to_string): add
12769         file errors
12770
12771         * dbus/dbus-message-builder.c: new file, will contain code to load
12772         up messages from files. Not implemented yet.
12773
12774 2003-01-26  Havoc Pennington  <hp@pobox.com>
12775
12776         * dbus/dbus-message.c (dbus_message_set_sender): support deleting
12777         the sender by setting to NULL
12778
12779 2003-01-26  Havoc Pennington  <hp@pobox.com>
12780
12781         The unit tests pass, but otherwise untested.  If it breaks, the
12782         tests should have been better. ;-)
12783
12784         * bus/driver.c (bus_driver_handle_hello): return if we disconnect
12785         the connection.
12786
12787         * dbus/dbus-message.c: redo everything so we maintain
12788         message->header as the only copy of the various fields.
12789         This avoids the possibility of out-of-memory in some cases,
12790         for example dbus_message_lock() can't run out of memory anymore,
12791         and avoids extra copying. Figured I may as well go ahead and do
12792         this since it was busted for dbus_message_lock to not return
12793         failure on OOM, and dbus_message_write_header was totally
12794         unchecked for OOM. Also fixed some random other bugs.
12795
12796         * dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): verify
12797         that strings are nul-terminated. Also, end_pos can be equal
12798         to string length just not greater than, I think.
12799         (_dbus_marshal_set_int32): new function
12800         (_dbus_marshal_set_uint32): new function
12801         (_dbus_marshal_set_string): new function
12802
12803         * dbus/dbus-connection.c (_dbus_connection_new_for_transport): fix
12804         a warning, init timeout_list to NULL
12805         (dbus_connection_send_message): don't use uninitialized variable
12806         "serial"
12807
12808         * dbus/dbus-string.c (_dbus_string_replace_len): new function
12809
12810 2003-01-26  Anders Carlsson  <andersca@codefactory.se>
12811
12812         * bus/driver.c: (bus_driver_handle_hello),
12813         (bus_driver_send_welcome_message):
12814         Plug leaks
12815
12816 2003-01-26  Anders Carlsson  <andersca@codefactory.se>
12817
12818         * dbus/dbus-auth.c: (process_auth), (_dbus_auth_unref):
12819         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport),
12820         (dbus_connection_unref):
12821         * dbus/dbus-marshal.c: (_dbus_marshal_test):
12822         * dbus/dbus-message.c: (dbus_message_unref),
12823         Plug memory leaks.
12824
12825         (dbus_message_get_fields):
12826         Remove debugging printout.
12827
12828         (_dbus_message_loader_return_buffer):
12829         Don't store the header string.
12830
12831         (_dbus_message_test):
12832         Plug leaks.
12833
12834 2003-01-26  Richard Hult  <rhult@codefactory.se>
12835
12836         * glib/dbus-gmain.c (dbus_connection_dispatch): Traverse a copy of
12837         the file descriptor list, since it can change under us.
12838
12839 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
12840
12841         * glib/dbus-gmain.c: (dbus_connection_prepare),
12842         (dbus_connection_check), (dbus_connection_dispatch), (add_watch),
12843         (remove_watch), (dbus_connection_hookup_with_g_main):
12844         Rewrite the glib handling to use its own GSource instead of a
12845         GIOChannel so we can catch messages put in the queue while waiting
12846         for a reply.
12847
12848 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
12849
12850         * bus/Makefile.am:
12851         * bus/connection.c: (connection_disconnect_handler),
12852         (connection_watch_callback), (bus_connection_setup):
12853         * bus/dispatch.c: (send_one_message),
12854         (bus_dispatch_broadcast_message), (bus_dispatch_message_handler),
12855         (bus_dispatch_add_connection), (bus_dispatch_remove_connection):
12856         * bus/dispatch.h:
12857         * bus/driver.c: (bus_driver_send_service_deleted),
12858         (bus_driver_send_service_created), (bus_driver_handle_hello),
12859         (bus_driver_send_welcome_message),
12860         (bus_driver_handle_list_services), (bus_driver_remove_connection),
12861         (bus_driver_handle_message):
12862         * bus/driver.h:
12863         Refactor code, put the message dispatching in its own file. Use
12864         _DBUS_HANDLE_OOM. Also send ServiceDeleted messages when a client
12865         is disconnected.
12866
12867 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
12868
12869         * dbus/dbus-internals.h:
12870         Add _DBUS_HANDLE_OOM macro, it doesn't do anything currently.
12871
12872         * dbus/dbus-message.c: (dbus_message_get_sender):
12873         * dbus/dbus-message.h:
12874         Implement dbus_message_get_sender.
12875
12876         * dbus/dbus-protocol.h:
12877         Add message and service defines.
12878
12879 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
12880
12881         * dbus/dbus-connection.c: (dbus_connection_send_message):
12882         * dbus/dbus-message-internal.h:
12883         * dbus/dbus-message.c: (_dbus_message_get_client_serial),
12884         (dbus_message_write_header):
12885         Remove _dbus_messag_unlock and don't set the client serial on a
12886         message if one already exists.
12887
12888 2003-01-24  Havoc Pennington  <hp@pobox.com>
12889
12890         * dbus/dbus-list.c (alloc_link): put a thread lock on the global
12891         list_pool
12892
12893         * bus/driver.c (bus_driver_handle_list_services): fix a leak
12894         on OOM
12895
12896 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
12897
12898         * dbus/dbus-list.c: (alloc_link), (free_link):
12899         Use a memory pool for the links.
12900
12901 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
12902
12903         * bus/connection.c: (bus_connection_foreach):
12904         * bus/connection.h:
12905         Add new bus_connection_foreach function.
12906
12907         * bus/driver.c: (send_one_message), (bus_driver_broadcast_message):
12908         Add function that broadcasts a message to all clients.
12909
12910         (bus_driver_send_service_created), (bus_driver_handle_hello),
12911         (bus_driver_send_welcome_message),
12912         (bus_driver_handle_list_services), (bus_driver_message_handler):
12913         Implement functions that take care of listing services, and notifying
12914         clients when new services are created.
12915
12916         * bus/services.c: (bus_services_list):
12917         * bus/services.h:
12918         Add new function that returns an array of strings with the currently
12919         registered services.
12920
12921         * glib/dbus-glib.h:
12922         * glib/dbus-gmain.c:
12923         Update copyright year.
12924
12925 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
12926
12927         * dbus/dbus-connection.c: (dbus_connection_send_message):
12928         Unlock the message in case it was sent earlier.
12929
12930         (dbus_connection_send_message_with_reply_and_block):
12931         Remove the reply message from the list.
12932
12933         * dbus/dbus-marshal.c: (_dbus_demarshal_string_array):
12934         Set array_len and new_pos correctly.
12935
12936         (_dbus_marshal_test):
12937         Remove debug output.
12938
12939         * dbus/dbus-message-internal.h:
12940         * dbus/dbus-message.c: (_dbus_message_get_reply_serial):
12941         New function that returns the reply serial.
12942
12943         (_dbus_message_unlock):
12944         New function that unlocks a message and resets its header.
12945
12946         (dbus_message_append_string_array),
12947         (dbus_message_get_fields_valist),
12948         (dbus_message_iter_get_field_type),
12949         (dbus_message_iter_get_string_array),
12950         (dbus_message_get_fields),
12951         (dbus_message_append_fields_valist):
12952         Handle string arrays.
12953
12954         (dbus_message_set_sender):
12955         Make this function public since the bus daemon needs it.
12956
12957         (decode_header_data):
12958         Set the reply serial to -1 initially.
12959
12960         * dbus/dbus-message.h:
12961         Add dbus_message_set_sender.
12962
12963 2003-01-24  Havoc Pennington  <hp@pobox.com>
12964
12965         * doc/dbus-specification.sgml: add some stuff
12966
12967 2003-01-22  Havoc Pennington  <hp@pobox.com>
12968
12969         * doc/dbus-specification.sgml: Start to document the protocol.
12970
12971 2003-01-22  Havoc Pennington  <hp@pobox.com>
12972
12973         * dbus/dbus-connection.c
12974         (dbus_connection_send_message_with_reply_and_block): add some @todo
12975
12976         * bus/driver.c (bus_driver_add_connection): add a FIXME about memleak
12977
12978 2003-01-21  Havoc Pennington  <hp@pobox.com>
12979
12980         (patch untested because can't compile)
12981
12982         * bus/driver.c (create_unique_client_name): make this function
12983         never recycle client names. Also, caller should initialize
12984         the DBusString.
12985
12986         * dbus/dbus-sysdeps.c (_dbus_get_current_time): new function
12987
12988 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
12989
12990         * dbus/dbus-marshal.c: (_dbus_marshal_double),
12991         (_dbus_marshal_int32), (_dbus_marshal_uint32),
12992         (_dbus_marshal_int32_array), (_dbus_marshal_uint32_array),
12993         (_dbus_marshal_double_array), (_dbus_marshal_string_array),
12994         (_dbus_demarshal_int32_array), (_dbus_demarshal_uint32_array),
12995         (_dbus_demarshal_double_array), (_dbus_demarshal_string_array),
12996         (_dbus_marshal_get_field_end_pos), (_dbus_marshal_test):
12997         * dbus/dbus-marshal.h:
12998         * dbus/dbus-protocol.h:
12999         Add support for marshalling and demarshalling integer, double
13000         and string arrays.
13001
13002 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
13003
13004         * bus/Makefile.am:
13005         Add driver.[ch]
13006
13007         * bus/connection.c: (connection_disconnect_handler):
13008         Remove the connection from the bus driver's list.
13009
13010         (connection_watch_callback): Dispatch messages.
13011
13012         (free_connection_data): Free connection name.
13013
13014         (bus_connection_setup): Add connection to the bus driver's list.
13015         (bus_connection_remove_owned_service):
13016         (bus_connection_set_name), (bus_connection_get_name):
13017         Add functions for setting and getting the connection's name.
13018
13019         * bus/connection.h:
13020         Add function headers.
13021
13022         * bus/driver.c: (create_unique_client_name),
13023         (bus_driver_handle_hello_message),
13024         (bus_driver_send_welcome_message), (bus_driver_message_handler),
13025         (bus_driver_add_connection), (bus_driver_remove_connection):
13026         * bus/driver.h:
13027         * bus/main.c:
13028         * bus/services.c: (bus_service_free):
13029         * bus/services.h:
13030         New file that handles communication and registreation with the bus
13031         itself.
13032
13033 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
13034
13035         * dbus/dbus-connection.c: (dbus_connection_send_message):
13036         Add a new client_serial parameter.
13037
13038         (dbus_connection_send_message_with_reply):
13039         Remove a @todo since we've implemented the blocking function.
13040
13041         (dbus_connection_send_message_with_reply_and_block):
13042         New function that sends a message and waits for a reply and
13043         then returns the reply.
13044
13045         * dbus/dbus-connection.h:
13046         Add new functions.
13047
13048         * dbus/dbus-errors.c: (dbus_result_to_string):
13049         * dbus/dbus-errors.h:
13050         Add new DBUS_RESULT.
13051
13052         * dbus/dbus-message-internal.h:
13053         * dbus/dbus-message.c: (_dbus_message_get_reply_serial),
13054         (_dbus_message_set_sender), (dbus_message_write_header),
13055         (dbus_message_new_reply), (decode_header_data),
13056         (_dbus_message_loader_return_buffer), (_dbus_message_test):
13057         * dbus/dbus-message.h:
13058         Add new functions that set the reply serial and sender.
13059         Also marshal and demarshal them correctly and add test.
13060
13061         * dbus/dbus-protocol.h:
13062         Add new DBUS_MESSAGE_TYPE_SENDER.
13063
13064         * glib/dbus-glib.h:
13065         * glib/dbus-gmain.c: (watch_callback), (free_callback_data),
13066         (add_watch), (remove_watch), (add_timeout), (remove_timeout),
13067         (dbus_connection_hookup_with_g_main):
13068         * glib/test-dbus-glib.c: (main):
13069         Rewrite to use GIOChannel and remove the GSource crack.
13070
13071         * test/echo-client.c: (main):
13072         * test/watch.c: (check_messages):
13073         Update for changed APIs
13074
13075 2003-01-19  Anders Carlsson  <andersca@codefactory.se>
13076
13077         * dbus/Makefile.am: Add dbus-timeout.[cħ]
13078
13079         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport):
13080         Create a DBusTimeoutList.
13081         (dbus_connection_set_timeout_functions): Add new function to
13082         set timeout callbacks
13083
13084         * dbus/dbus-connection.h: Add public DBusTimeout API.
13085
13086         * dbus/dbus-message.c: (dbus_message_get_service):
13087         * dbus/dbus-message.h:  New function.
13088
13089         * dbus/dbus-server.c: Fix small doc typo.
13090
13091         * dbus/dbus-timeout.[ch]: New files for mainloop timeouts.
13092
13093 2003-01-19  Anders Carlsson  <andersca@codefactory.se>
13094
13095         * dbus/dbus-string.c (_dbus_string_move_len): Don't delete all
13096         of the string, just as long as specified.
13097
13098 2003-01-19  Havoc Pennington  <hp@pobox.com>
13099
13100         * dbus/dbus-connection.c (dbus_connection_get_is_authenticated):
13101         new function
13102
13103         * dbus/dbus-server.c (dbus_server_set_max_connections)
13104         (dbus_server_get_max_connections, dbus_server_get_n_connections):
13105         keep track of current number of connections, and add API for
13106         setting a max (but haven't implemented enforcing the max yet)
13107
13108 2003-01-18  Havoc Pennington  <hp@pobox.com>
13109
13110         * dbus/dbus-transport-unix.c (unix_do_iteration): only do the
13111         reading/writing if read_watch != NULL or write_watch != NULL.
13112
13113         * dbus/dbus-message.c (_dbus_message_loader_return_buffer): fix
13114         the message loader code to actually load message->header and
13115         message->body into the newly-created message.
13116
13117         * dbus/dbus-transport-unix.c (check_write_watch): fix a mem leak
13118         in OOM case
13119
13120         * dbus/dbus-connection.c (dbus_connection_set_max_message_size)
13121         (dbus_connection_get_max_message_size)
13122         (dbus_connection_set_max_live_messages_size)
13123         (dbus_connection_get_max_live_messages_size): implement some
13124         resource limitation functions
13125
13126         * dbus/dbus-resources.c: new file implementing some of the
13127         resource limits stuff
13128
13129         * dbus/dbus-message.c (dbus_message_iter_get_byte_array): add
13130         missing docs, add @todo to handle OOM etc.
13131
13132         * dbus/dbus-marshal.c (_dbus_demarshal_byte_array): add missing
13133         docs
13134
13135 2003-01-18  Havoc Pennington  <hp@pobox.com>
13136
13137         * dbus/dbus-connection.c (dbus_connection_unref): disconnect the
13138         connection if it hasn't been already.
13139
13140         * dbus/dbus-connection.h: kill off the idea of an ErrorFunction,
13141         replace with DisconnectFunction.
13142
13143 2003-01-18  Havoc Pennington  <hp@pobox.com>
13144
13145         Building --disable-verbose-mode --disable-asserts --disable-tests
13146         cuts the library from 112K to 45K or so
13147
13148         * configure.in: check for varargs macro support,
13149         add --enable-verbose-mode, --enable-asserts.
13150
13151         * dbus/dbus-internals.h (_dbus_assert): support
13152         DBUS_DISABLE_ASSERT
13153         (_dbus_verbose): support DBUS_ENABLE_VERBOSE_MODE
13154
13155 2003-01-18  Havoc Pennington  <hp@pobox.com>
13156
13157         * dbus/dbus-test.c: include config.h so that tests actually run
13158
13159         * dbus/dbus-string.c: add assertions that stuff is 8-byte aligned,
13160         so the failure mode when that assumption fails will be plenty
13161         obvious.
13162
13163 2003-01-18  Havoc Pennington  <hp@pobox.com>
13164
13165         * configure.in: default --enable-tests to $USE_MAINTAINER_MODE
13166
13167         * dbus/Makefile.am: fix it up so dubs-test-main.c is included in
13168         the distribution
13169
13170         * test/Makefile.am: don't use special variable "TESTS" for echo-*
13171         since we don't want to use those in make check
13172
13173 2003-01-15  Havoc Pennington  <hp@redhat.com>
13174
13175         Release 0.2
13176
13177         * NEWS: update
13178
13179 2003-01-15  Havoc Pennington  <hp@redhat.com>
13180
13181         * test/Makefile.am: fix so that test source code ends up in the
13182         distribution on make distcheck
13183
13184 2003-01-15  Havoc Pennington  <hp@redhat.com>
13185
13186         Release 0.1.
13187
13188         * NEWS: update
13189
13190 2003-01-15  Havoc Pennington  <hp@redhat.com>
13191
13192         * dbus/dbus-test.c (dbus_internal_symbol_do_not_use_run_tests):
13193         fix build when --disable-tests
13194
13195         * Makefile.am (EXTRA_DIST): put HACKING in here
13196
13197         * HACKING: document procedure for making a tarball release.
13198
13199 2003-01-14  Anders Carlsson  <andersca@codefactory.se>
13200
13201         * bus/connection.c: (connection_error_handler),
13202         (bus_connection_setup):
13203         * bus/main.c: (main):
13204         Make sure that the DBusConnectionData struct is NULLed
13205         out to prevent a segfault.
13206
13207         * dbus/dbus-errors.c: (dbus_result_to_string):
13208         * dbus/dbus-errors.h:
13209         * dbus/dbus-message.c: (dbus_message_get_fields),
13210         (dbus_message_get_fields_valist), (_dbus_message_test):
13211         * dbus/dbus-message.h:
13212         Make dbus_message_get_fields return a result code so we can
13213         track invalid fields as well as oom.
13214
13215 2003-01-11  Havoc Pennington  <hp@pobox.com>
13216
13217         * configure.in: change --enable-test/--enable-ansi action-if-given
13218         to enable_foo=$enableval instead of enable_foo=yes
13219
13220 2003-01-08  Havoc Pennington  <hp@pobox.com>
13221
13222         * dbus/dbus-string.c (_dbus_string_align_length): new function
13223
13224         * dbus/dbus-test-main.c: move main() for test app here
13225         * dbus/dbus-test.c
13226         (dbus_internal_symbol_do_not_use_run_tests): we have to export a
13227         symbol to run tests, because dbus-test isn't in the main
13228         library
13229
13230         Code review nitpicks.
13231
13232         * dbus/dbus-message.c (dbus_message_write_header): add newlines
13233         for people with narrow emacs ;-). Assert client_serial was filled
13234         in. Assert message->name != NULL.
13235         (dbus_message_append_fields): have "first_field_type" arg separate
13236         from va list, needed for C++ binding that also uses varargs IIRC
13237         and helps with type safety
13238         (dbus_message_new): add @todo about using DBusString to store
13239         service/name internally
13240         (dbus_message_new): don't leak ->service and ->name on OOM later
13241         in the function
13242         (dbus_message_unref): free the service name
13243         (dbus_message_get_fields): same change to varargs
13244         i.e. first_field_type
13245         (_dbus_message_loader_return_buffer): assert that the message data
13246         is aligned (if not it's a bug in our code). Put in verbose griping
13247         about why we set corrupted = TRUE.
13248         (decode_header_data): add FIXME that char* is evil.  Was going to
13249         add FIXME about evil locale-specific string.h strncmp, but just
13250         switched to wacky string-as-uint32 optimization. Move check for
13251         "no room for field name" above get_const_data_len() to avoid
13252         assertion failure in get_const_data_len if we have trailing 2
13253         bytes or the like. Check for service and name fields being
13254         provided twice. Don't leak service/name on error. Require field
13255         names to be aligned to 4 bytes.
13256
13257         * dbus/dbus-marshal.c: move byte swap stuff to header
13258         (_dbus_pack_int32): uscore-prefix
13259         (_dbus_unpack_int32): uscore-prefix
13260         (_dbus_unpack_uint32): export
13261         (_dbus_demarshal_string): add @todo complaining about use of
13262         memcpy()
13263         (_dbus_marshal_get_field_end_pos): add @todo about bad error
13264         handling allowing corrupt data to go unchecked
13265
13266 2003-01-08  Havoc Pennington  <hp@redhat.com>
13267
13268         * dbus/dbus-transport-unix.c (unix_do_iteration): add read/write
13269         to the select() as needed for authentication. (should be using
13270         _dbus_poll() not select, but for another day)
13271
13272         * dbus/dbus.h: include dbus/dbus-protocol.h
13273
13274 2003-01-08  Anders Carlsson  <andersca@codefactory.se>
13275
13276         * dbus/Makefile.am (dbusinclude_HEADERS): Install
13277         dbus-connection.h
13278
13279 2003-01-08  Anders Carlsson  <andersca@codefactory.se>
13280
13281         * dbus/dbus-internals.c: (_dbus_type_to_string):
13282         New function that returns a string describing a type.
13283
13284         * dbus/dbus-marshal.c: (_dbus_demarshal_byte_array):
13285         * dbus/dbus-marshal.h:
13286         * dbus/dbus-message.c: (dbus_message_get_fields_valist),
13287         (dbus_message_iter_get_field_type), (dbus_message_iter_get_double),
13288         (dbus_message_iter_get_byte_array):
13289         * dbus/dbus-message.h:
13290         Add new convenience functions for appending and getting message fields.
13291         Also add demarshalling routines for byte arrays.
13292
13293 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
13294
13295         * dbus/dbus-connection-internal.h:
13296         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport),
13297         (_dbus_connection_get_next_client_serial),
13298         (dbus_connection_send_message):
13299         * dbus/dbus-internals.h:
13300         * dbus/dbus-marshal.c: (unpack_uint32), (dbus_unpack_int32),
13301         (dbus_pack_int32), (_dbus_marshal_double), (_dbus_marshal_int32),
13302         (_dbus_marshal_uint32), (_dbus_demarshal_double),
13303         (_dbus_demarshal_int32), (_dbus_demarshal_uint32),
13304         (_dbus_demarshal_string), (_dbus_marshal_get_field_end_pos),
13305         (_dbus_verbose_bytes), (_dbus_marshal_test):
13306         * dbus/dbus-marshal.h:
13307         * dbus/dbus-message-internal.h:
13308         * dbus/dbus-message.c: (_dbus_message_set_client_serial),
13309         (dbus_message_write_header), (_dbus_message_lock),
13310         (dbus_message_new), (dbus_message_ref), (dbus_message_unref),
13311         (dbus_message_get_name), (dbus_message_append_int32),
13312         (dbus_message_append_uint32), (dbus_message_append_double),
13313         (dbus_message_append_string), (dbus_message_append_byte_array),
13314         (dbus_message_get_fields_iter), (dbus_message_iter_ref),
13315         (dbus_message_iter_unref), (dbus_message_iter_has_next),
13316         (dbus_message_iter_next), (dbus_message_iter_get_field_type),
13317         (dbus_message_iter_get_string), (dbus_message_iter_get_int32),
13318         (dbus_message_iter_get_uint32), (dbus_message_iter_get_double),
13319         (decode_header_data), (_dbus_message_loader_return_buffer),
13320         (message_iter_test), (_dbus_message_test):
13321         * dbus/dbus-message.h:
13322         * dbus/dbus-protocol.h:
13323         * dbus/dbus-test.c: (main):
13324         * dbus/dbus-test.h:
13325         * glib/test-dbus-glib.c: (message_handler), (main):
13326         * test/echo-client.c: (main):
13327         * test/watch.c: (check_messages):
13328         Make messages sendable and receivable for real.
13329
13330 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
13331
13332         * dbus/dbus-marshal.c: (_dbus_marshal_double),
13333         (_dbus_marshal_string), (_dbus_marshal_byte_array):
13334         * dbus/dbus-message.c: (dbus_message_append_int32),
13335         (dbus_message_append_uint32), (dbus_message_append_double),
13336         (dbus_message_append_string), (dbus_message_append_byte_array):
13337         Handle OOM restoration.
13338
13339 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
13340
13341         * dbus/dbus-marshal.c: (_dbus_marshal_string),
13342         (_dbus_demarshal_string), (_dbus_marshal_test):
13343         * dbus/dbus-marshal.h:
13344         * dbus/dbus-message.c: (dbus_message_get_name),
13345         Document these functions.
13346
13347         (dbus_message_append_int32), (dbus_message_append_uint32),
13348         (dbus_message_append_double), (dbus_message_append_string),
13349         (dbus_message_append_byte_array):
13350         * dbus/dbus-message.h:
13351         Add functions for adding message fields of different types.
13352
13353         * dbus/dbus-protocol.h:
13354         Add the different types.
13355
13356 2003-01-05  Havoc Pennington  <hp@pobox.com>
13357
13358         * bus/connection.c: implement routines for handling connections,
13359         first thing is keeping a list of owned services on each connection
13360         and setting up watches etc.
13361
13362         * bus/services.c: implement a mapping from service names to lists
13363         of connections
13364
13365         * dbus/dbus-hash.c: add DBUS_HASH_POINTER
13366
13367         * dbus/dbus-threads.c (dbus_static_mutex_lock): add functions
13368         to use static mutexes for global data
13369
13370         * dbus/dbus-connection.c (dbus_connection_set_data): add new
13371         collection of functions to set/get application-specific data
13372         on the DBusConnection.
13373
13374 2003-01-04  Havoc Pennington  <hp@pobox.com>
13375
13376         * dbus/dbus-sysdeps.c (_dbus_sleep_milliseconds): new function
13377         (_dbus_poll): new function
13378
13379         * dbus/dbus-internals.h (_DBUS_STRUCT_OFFSET): new macro
13380         copied from GLib
13381
13382         * bus/loop.c: initial code for the daemon main loop
13383
13384 2003-01-04  Havoc Pennington  <hp@pobox.com>
13385
13386         * test/watch.c (error_handler): make it safe if the error handler
13387         is called multiple times (if we s/error handler/disconnect
13388         handler/ we should just guarantee it's called only once)
13389
13390         * dbus/dbus-transport.c (_dbus_transport_disconnect): call the
13391         error handler on disconnect (it's quite possible we should
13392         just change the error handler to a "disconnect handler," I'm
13393         not sure we have any other meaningful errors)
13394
13395         * configure.in: check for getpwnam_r
13396
13397         * dbus/dbus-transport.c, dbus/dbus-transport-unix.c,
13398         dbus/dbus-auth.c: add credentials support, add EXTERNAL auth
13399         mechanism as in SASL spec, using socket credentials
13400
13401         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): new function
13402         (_dbus_send_credentials_unix_socket): new function
13403
13404         * dbus/dbus-sysdeps.c (_dbus_accept_unix_socket): rename just
13405         dbus_accept()
13406         (_dbus_write): only check errno if <0 returned
13407         (_dbus_write_two): ditto
13408
13409 2003-01-02  Anders Carlsson  <andersca@codefactory.se>
13410
13411         * dbus/dbus-marshal.c: (_dbus_marshal_utf8_string),
13412         (_dbus_marshal_byte_array), (_dbus_demarshal_utf8_string),
13413         (_dbus_marshal_test):
13414         * dbus/dbus-marshal.h:
13415         Add _dbus_marshal_byte_array and rename _dbus_marshal_string
13416         to _dbus_marshal_utf8_string. Also fix some tests.
13417
13418 2002-12-28  Harri Porten  <porten@kde.org>
13419
13420         * configure.in: added check for C++ compiler and a very cheesy
13421         check for the Qt integration
13422
13423         * Makefile.am (SUBDIRS): compile qt subdir if support is enabled
13424
13425         * qt/Makefile.am: added
13426
13427         * qt/.cvsignore: added
13428
13429         * qt/dbus-qthread.cc, qt/dbus-qthread.cpp: renamed former to
13430         latter, added #ifdef QT_THREAD_SUPPORT guard.
13431
13432         * dbus/Makefile.am: added missing headers for make dist
13433
13434 2002-12-28  Kristian Rietveld  <kris@gtk.org>
13435
13436         * dbus/Makefile.am: fixup export-symbols-regex.
13437
13438 2002-12-27  Anders Carlsson  <andersca@codefactory.se>
13439
13440         * acinclude.m4: Add this file and put the
13441         PKG_CHECK_MODULE macro in it.
13442
13443 2002-12-27  Anders Carlsson  <andersca@codefactory.se>
13444
13445         * dbus/dbus-marshal.c: (_dbus_marshal_string),
13446         (_dbus_demarshal_double), (_dbus_demarshal_int32),
13447         (_dbus_demarshal_uint32), (_dbus_demarshal_string),
13448         (_dbus_marshal_test):
13449         Make the demarshalling routines align the pos argument.
13450         Add string marshalling tests and fix the obvious bugs
13451         discovered.
13452
13453 2002-12-26  Havoc Pennington  <hp@pobox.com>
13454
13455         * dbus/dbus-auth.c: fixes fixes fixes
13456
13457         * dbus/dbus-transport-unix.c: wire up support for
13458         encoding/decoding data on the wire
13459
13460         * dbus/dbus-auth.c (_dbus_auth_encode_data)
13461         (_dbus_auth_decode_data): append to target string
13462         instead of nuking it.
13463
13464 2002-12-26  Havoc Pennington  <hp@pobox.com>
13465
13466         * dbus/dbus-marshal.h (DBUS_COMPILER_BYTE_ORDER): #ifdef
13467         WORDS_BIGENDIAN then compiler byte order is DBUS_BIG_ENDIAN,
13468         doh
13469
13470         * dbus/dbus-marshal.c: Add macros to do int swapping in-place and
13471         avoid swap_bytes() overhead (ignoring possible assembly stuff for
13472         now). Main point is because I wanted unpack_uint32 to implement
13473         _dbus_verbose_bytes
13474         (_dbus_verbose_bytes): new function
13475
13476         * dbus/dbus-string.c (_dbus_string_validate_ascii): new function
13477
13478         * dbus/dbus-message.c (_dbus_message_loader_get_is_corrupted): add
13479         mechanism to handle a corrupt message stream
13480         (_dbus_message_loader_new): fix preallocation to only prealloc,
13481         not prelengthen
13482
13483         * dbus/dbus-string.c (_dbus_string_skip_blank): fix this function
13484         (_dbus_string_test): enhance tests for copy/move and fix the
13485         functions
13486
13487         * dbus/dbus-transport-unix.c: Hold references in more places to
13488         avoid reentrancy problems
13489
13490         * dbus/dbus-transport.c: ditto
13491
13492         * dbus/dbus-connection.c (dbus_connection_dispatch_message): don't
13493         leak reference count in no-message case
13494
13495         * test/watch.c (do_mainloop): handle adding/removing watches
13496         during iteration over the watches. Also, ref the connection/server
13497         stored on a watch, so we don't try to mangle a destroyed one.
13498
13499         * dbus/dbus-transport-unix.c (do_authentication): perform
13500         authentication
13501
13502         * dbus/dbus-auth.c (get_state): add a state
13503         AUTHENTICATED_WITH_UNUSED_BYTES and return it if required
13504         (_dbus_auth_get_unused_bytes): append the unused bytes
13505         to the passed in string, rather than prepend
13506
13507         * dbus/dbus-transport.c (_dbus_transport_init_base): create
13508         the auth conversation DBusAuth
13509
13510         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd)
13511         (_dbus_transport_new_for_domain_socket): when creating a
13512         transport, pass in whether it's a client-side or server-side
13513         transport so we know which DBusAuth to create
13514
13515 2002-12-03  Havoc Pennington  <hp@pobox.com>
13516
13517         * dbus/dbus-transport-unix.c (unix_finalize): finalize base
13518         _after_ finalizing the derived members
13519         (unix_connection_set): unref watch if we fail to add it
13520
13521         * dbus/dbus-connection.c (dbus_connection_unref): delete the
13522         transport first, so that the connection owned by the
13523         transport will be valid as the transport finalizes.
13524
13525         * dbus/dbus-transport-unix.c (unix_finalize): free the write_watch
13526         if necessary, and remove watches from the connection.
13527
13528         * dbus/dbus-watch.c (_dbus_watch_list_free): improve a comment
13529
13530 2002-12-26  Anders Carlsson  <andersca@codefactory.se>
13531
13532         * dbus/dbus-marshal.c: (_dbus_marshal_string),
13533         (_dbus_demarshal_double), (_dbus_demarshal_int32),
13534         (_dbus_demarshal_uint32), (_dbus_demarshal_string),
13535         (_dbus_marshal_test):
13536         * dbus/dbus-marshal.h:
13537         Add string marshal functions and have the demarshal functions
13538         return the new position.
13539
13540 2002-12-25  Havoc Pennington  <hp@pobox.com>
13541
13542         * doc/dbus-sasl-profile.txt: docs on the authentication protocol,
13543         it is a simple protocol that just maps directly to SASL.
13544
13545         * dbus/dbus-auth.h, dbus/dbus-auth.c: authentication protocol
13546         initial implementation, not actually used yet.
13547
13548         * dbus/dbus-string.c (_dbus_string_find): new function
13549         (_dbus_string_equal): new function
13550         (_dbus_string_base64_encode): new function
13551         (_dbus_string_base64_decode): new function
13552
13553 2002-12-25  Anders Carlsson  <andersca@codefactory.se>
13554
13555         * dbus/Makefile.am:
13556         * dbus/dbus-marshal.c: (swap_bytes), (_dbus_marshal_double),
13557         (_dbus_marshal_int32), (_dbus_marshal_uint32),
13558         (_dbus_demarshal_double), (_dbus_demarshal_int32),
13559         (_dbus_demarshal_uint32), (_dbus_marshal_test):
13560         * dbus/dbus-marshal.h:
13561         * dbus/dbus-protocol.h:
13562         * dbus/dbus-test.c: (main):
13563         * dbus/dbus-test.h:
13564         Add un-optimized marshalling/demarshalling routines.
13565
13566 2002-12-25  Harri Porten  <porten@kde.org>
13567
13568         * qt/dbus-qt.h: adjusted ctor and getter to KDE/Qt conventions
13569
13570 2002-12-24  Zack Rusin  <zack@kde.org>
13571
13572         * qt/dbus-qthread.cc: adding - integrates QMutex into Dbus
13573         * qt/dbus-qt.h: skeleton with two sample implemenatation of the
13574         main loop stuff
13575
13576 2002-12-24  Havoc Pennington  <hp@pobox.com>
13577
13578         * glib/dbus-gthread.c: fix include
13579
13580         * glib/dbus-glib.h: rename DBusMessageHandler for now.
13581         I think glib API needs to change, though, as you don't
13582         want to use DBusMessageFunction, you want to use the
13583         DBusMessageHandler object. Probably
13584         dbus_connection_open_with_g_main_loop()
13585         and dbus_connection_setup_g_main_loop() or something like that
13586         (but think of better names...) that just create a connection
13587         that has watch/timeout functions etc. already set up.
13588
13589         * dbus/dbus-connection.c
13590         (dbus_connection_send_message_with_reply): new function just to
13591         show how the message handler helps us deal with replies.
13592
13593         * dbus/dbus-list.c (_dbus_list_remove_last): new function
13594
13595         * dbus/dbus-string.c (_dbus_string_test): free a string that
13596         wasn't
13597
13598         * dbus/dbus-hash.c: use memory pools for the hash entries
13599         (rebuild_table): be more paranoid about overflow, and
13600         shrink table when we can
13601         (_dbus_hash_test): reduce number of sprintfs and write
13602         valid C89. Add tests for case where we grow and then
13603         shrink the hash table.
13604
13605         * dbus/dbus-mempool.h, dbus/dbus-mempool.c: memory pools
13606
13607         * dbus/dbus-connection.c (dbus_connection_register_handler)
13608         (dbus_connection_unregister_handler): new functions
13609
13610         * dbus/dbus-message.c (dbus_message_get_name): new
13611
13612         * dbus/dbus-list.c: fix docs typo
13613
13614         * dbus/dbus-message-handler.h, dbus/dbus-message-handler.c:
13615         an object representing a handler for messages.
13616
13617 2002-12-16  Anders Carlsson  <andersca@codefactory.se>
13618
13619         * glib/dbus-glib.h:
13620         * glib/dbus-gthread.c: (dbus_gthread_init):
13621         Don't use the gdbus prefix for public functions.
13622
13623 2002-12-16  Anders Carlsson  <andersca@codefactory.se>
13624
13625         * Makefile.am:
13626         * configure.in:
13627         Add GLib checks and fixup .pc files
13628
13629         * glib/Makefile.am:
13630         * glib/dbus-glib.h:
13631         * glib/dbus-gmain.c: (gdbus_connection_prepare),
13632         (gdbus_connection_check), (gdbus_connection_dispatch),
13633         (gdbus_add_connection_watch), (gdbus_remove_connection_watch),
13634         (dbus_connection_gsource_new):
13635         * glib/dbus-gthread.c: (dbus_gmutex_new), (dbus_gmutex_free),
13636         (dbus_gmutex_lock), (dbus_gmutex_unlock), (dbus_gthread_init):
13637         * glib/test-dbus-glib.c: (message_handler), (main):
13638         Add GLib support.
13639
13640 2002-12-15  Harri Porten  <porten@kde.org>
13641
13642         * autogen.sh: check for libtoolize before attempting to use it
13643
13644         * dbus/dbus-transport-unix.c: include <sys/time.h> for timeval
13645         struct.
13646
13647         * .cvsignore: ignore more stamp files
13648
13649         * dbus/dbus-watch.c (_dbus_watch_list_new): fixed doc error
13650
13651         * test/Makefile.am: added -I$(top_srcdir) to be able to compile
13652         without make install.
13653
13654 2002-12-15  Havoc Pennington  <hp@pobox.com>
13655
13656         * dbus/dbus-threads.c: add thread stubs that a higher library
13657         layer can fill in. e.g. the GLib wrapper might fill them in with
13658         GThread stuff. We still need to use this thread API to
13659         thread-safe-ize the library.
13660
13661 2002-12-12  Havoc Pennington  <hp@pobox.com>
13662
13663         * dbus/dbus-transport-unix.c, dbus/dbus-server-unix.c: use the
13664         below new interfaces and include fewer system headers.
13665
13666         * dbus/dbus-sysdeps.c (_dbus_read): new function
13667         (_dbus_write): new function
13668         (_dbus_write_two): new function
13669         (_dbus_connect_unix_socket): new function
13670         (_dbus_listen_unix_socket): new function
13671
13672         * dbus/dbus-message-internal.h: change interfaces to use
13673         DBusString
13674
13675 2002-12-11  Havoc Pennington  <hp@pobox.com>
13676
13677         * dbus/dbus-types.h: add dbus_unichar
13678
13679         * dbus/dbus-internals.c (_dbus_verbose): use _dbus_getenv
13680
13681         * dbus/dbus-connection.c (dbus_connection_send_message): return
13682         TRUE on success
13683
13684         * dbus/dbus-transport.c: include dbus-watch.h
13685
13686         * dbus/dbus-connection.c: include dbus-message-internal.h
13687
13688         * HACKING: add file with coding guidelines stuff.
13689
13690         * dbus/dbus-string.h, dbus/dbus-string.c: Encapsulate all string
13691         handling here, for security purposes (as in vsftpd). Not actually
13692         using this class yet.
13693
13694         * dbus/dbus-sysdeps.h, dbus/dbus-sysdeps.c: Encapsulate all
13695         system/libc usage here, as in vsftpd, for ease of auditing (and
13696         should also simplify portability). Haven't actually moved all the
13697         system/libc usage into here yet.
13698
13699 2002-11-25  Havoc Pennington  <hp@pobox.com>
13700
13701         * dbus/dbus-internals.c (_dbus_verbose): fix to not
13702         always print the first verbose message.
13703
13704 2002-11-24  Havoc Pennington  <hp@pobox.com>
13705
13706         * test/echo-client.c, test/echo-server.c: cheesy test
13707         clients.
13708
13709         * configure.in (AC_CHECK_FUNCS): check for writev
13710
13711         * dbus/dbus-message.c (_dbus_message_get_network_data): new
13712         function
13713
13714         * dbus/dbus-list.c (_dbus_list_foreach): new function
13715
13716         * dbus/dbus-internals.c (_dbus_verbose): new function
13717
13718         * dbus/dbus-server.c, dbus/dbus-server.h: public object
13719         representing a server that listens for connections.
13720
13721         * dbus/.cvsignore: create
13722
13723         * dbus/dbus-errors.h, dbus/dbus-errors.c:
13724         public API for reporting errors
13725
13726         * dbus/dbus-connection.h, dbus/dbus-connection.c:
13727         public object representing a connection that
13728         sends/receives messages. (Same object used for
13729         both client and server.)
13730
13731         * dbus/dbus-transport.h, dbus/dbus-transport.c:
13732         Basic abstraction for different kinds of stream
13733         that we might read/write messages from.
13734
13735 2002-11-23  Havoc Pennington  <hp@pobox.com>
13736
13737         * dbus/dbus-internals.h (_DBUS_INT_MAX): add _DBUS_INT_MIN
13738         _DBUS_INT_MAX
13739
13740         * dbus/dbus-test.c (main): add list test, and include
13741         dbus-test.h as intended
13742
13743         * dbus/dbus-hash.c (_dbus_hash_table_remove_string)
13744         (_dbus_hash_table_remove_int): return value indicates
13745         whether the entry existed to remove
13746
13747         * dbus/dbus-list.c: add linked list utility class,
13748         with docs and tests
13749
13750         * dbus/dbus-hash.c: add TODO item about shrinking the hash bucket
13751         array sometimes.
13752
13753 2002-11-23  Havoc Pennington  <hp@pobox.com>
13754
13755         * Doxyfile.in (INCLUDE_FILE_PATTERNS): expand DBUS_BEGIN_DECLS/
13756         DBUS_END_DECLS to nothing, that should fix this once and for all
13757
13758         * Doxyfile.in (JAVADOC_AUTOBRIEF): set to YES
13759
13760         * dbus/dbus-message.c, dbus/dbus-hash.c:
13761         add some missing @brief
13762
13763 2002-11-23  Havoc Pennington  <hp@pobox.com>
13764
13765         * dbus/dbus-message.h: put semicolons after DEBUG_BEGIN_DECLS
13766         to avoid confusing Doxygen
13767
13768         * dbus/dbus-hash.c: @} not }@
13769
13770         * dbus/dbus-message.c (struct DBusMessage): split out
13771         internals docs
13772
13773 2002-11-23  Havoc Pennington  <hp@pobox.com>
13774
13775         * configure.in: pile on more warning flags if using gcc
13776
13777         * Doxyfile.in (EXTRACT_STATIC): set to NO, so we don't have
13778         to document static functions
13779
13780         * configure.in: add summary to end of configure so it
13781         looks nice and attractive
13782
13783         * dbus/dbus-hash.c: finish implementation and write unit
13784         tests and docs
13785
13786         * configure.in: add --enable-tests to enable unit tests
13787
13788         * dbus/dbus-test.c: test program to run unit tests
13789         for all files in dbus/*, initially runs a test for
13790         dbus-hash.c
13791
13792         * dbus/dbus-internals.h: file to hold some internal utility stuff
13793
13794 2002-11-22  Havoc Pennington  <hp@redhat.com>
13795
13796         * dbus/dbus-hash.c: copy in Tcl hash table, not yet
13797         "ported" away from Tcl
13798
13799         * dbus/dbus-types.h: header for types such as dbus_bool_t
13800
13801 2002-11-22  Havoc Pennington  <hp@redhat.com>
13802
13803         * dbus/dbus.h: fixups for doc warnings
13804
13805         * Doxyfile.in (FILE_PATTERNS): we need to scan .h to pick up
13806         macros
13807         (QUIET): make it quiet so we can see warnings
13808
13809         * dbus/dbus-memory.c: teach D-BUS to allocate and free memory
13810
13811 2002-11-22  Havoc Pennington  <hp@redhat.com>
13812
13813         * Makefile.am: include "Doxyfile" target in all-local
13814
13815         * configure.in: generate the Doxyfile
13816
13817         * Doxyfile.in: move Doxyfile here, so we can use
13818         configure to generate a Doxyfile with the right
13819         version number etc.
13820
13821 2002-11-22  Havoc Pennington  <hp@redhat.com>
13822
13823         * dbus/dbus-message.c: move inline docs into .c file
13824
13825         * Doxyfile (OUTPUT_DIRECTORY): move output to doc/api
13826         so all docs are under doc/
13827         (MAN_EXTENSION): generate man pages. Use extension
13828         ".3dbus" which matches ".3qt" on my system,
13829         I guess this is OK, I don't know really.
13830         (FILE_PATTERNS): look for .c files not .h, makes sense
13831         for plain C I think
13832
13833 2002-11-22  Havoc Pennington  <hp@pobox.com>
13834
13835         * Makefile.am (SUBDIRS): rename subdir "server" to "bus"
13836         because any app can be a server, and any app can be a client,
13837         the bus is a special kind of server.
13838
13839 Thu Nov 21 23:35:31 2002  Zack Rusin  <zack@kde.org>
13840
13841         * Doxyfile : adding. Still needs Makefile rules to be generated
13842         automatically (just run "doxygen" in the toplevel dir for now to
13843         generate docs)
13844
13845         * dbus/dbus-message.h : Adding sample docs (javadoc since
13846         resembles gtk-doc a little more)
13847
13848         * dbus/dbus.h : Adding sample docs
13849
13850 2002-11-21  Havoc Pennington  <hp@redhat.com>
13851
13852         * dbus/Makefile.am (INCLUDES): define DBUS_COMPILATION
13853         so we can allow ourselves to include files directly,
13854         instead of having to use dbus.h
13855
13856         * dbus/dbus.h: fill in
13857
13858         * dbus/dbus-message.h: sketch out a sample header file.
13859         Include griping if you include it directly instead of
13860         via dbus.h
13861
13862         * dbus/dbus-macros.h: new file with macros for extern "C",
13863         TRUE/FALSE, NULL, etc.
13864
13865         * doc/file-boilerplate.c: put include guards in here
13866
13867 2002-11-21  Havoc Pennington  <hp@redhat.com>
13868
13869         * doc/file-boilerplate.c: include both AFL and GPL boilerplate.
13870
13871         * COPYING: include the GPL as well, and license code
13872         under both AFL and GPL.
13873
13874 2002-11-21  Havoc Pennington  <hp@redhat.com>
13875
13876         * acconfig.h: get rid of this
13877
13878         * autogen.sh (run_configure): add --no-configure option
13879
13880         * configure.in: remove AC_ARG_PROGRAM to make
13881         autoconf complain less. add AC_PREREQ.
13882         add AC_DEFINE third arg.
13883
13884 2002-11-21  Anders Carlsson  <andersca@codefactory.se>
13885
13886         * doc/Makefile.am:
13887         Fix references so we can distcheck.
13888
13889 2002-11-21  Havoc Pennington  <hp@redhat.com>
13890
13891         * Initial module creation
13892