* dbus/dbus-bus.c:
[platform/upstream/dbus.git] / ChangeLog
1 2006-08-14  John (J5) Palmieri  <johnp@redhat.com>
2
3         * dbus/dbus-bus.c:
4         * test/name-test/test-names.c:
5         Remove test method dbus_bus_connection_get_unique_name because 
6         we already have public method dbus_bus_get_unique_name that 
7         does the exact same thing
8
9 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
10
11         * dbus/dbus-signature.c:
12         fix typos in Julio's previous patch which cause make check to fail
13
14 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
15
16         * dbus/dbus-address.c (_dbus_address_test): Revert leaking strcmp.  
17         In any case it was wrong since this is a test checking to see if
18         address parsing is correct.  There was no need to get the true
19         tmp directory.  
20
21 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
22
23         * dbus/dbus-macros.h: Revert the addition of stddef.h
24         as we should not be adding it to library headers 
25
26 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
27
28         * dbus/dbus-signature.c:
29         Fix the unit tests so that they work if assertions are not enabled.
30         (patch from Julio M. Merino Vidal  <jmmv at NetBSD dot org>)
31
32 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
33
34         * tools/run-with-tmp-session-bus.sh:
35         * test/name-test/run-test.sh:
36         Remove bashisms (patch from Julio M. Merino Vidal
37         <jmmv at NetBSD dot org>)
38
39 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
40
41         * configure.in: add a version (>= 2.6.0) check for libxml2
42
43 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
44
45         * configure.in: make sure the compiler supports -Wfloat-equal
46         
47         * bus/dir-watch-dnotify.c: move functional code after 
48         variable declerations (C99 fix)  (patches from Jens Granseuer
49         <jensgr at gmx dot net>
50
51 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
52
53         * dbus/dbus-macros.h:
54         add #include <stddef.h> so that Sun compilers don't complain about
55         the defining NULL
56
57 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
58
59         * dbus/dbus-sysdeps.c:
60         * dbus/dbus-address.c:
61         * bus/activation.c:
62         * test/shell-test.c:
63         don't hardcode tmp directory (patch from Dave Meikle 
64         <dmk at davemeikle dot co dot uk>)
65
66 2006-08-09  John (J5) Palmieri  <johnp@redhat.com>
67
68         * dbus/dbus-dataslot.c (_dbus_data_slot_allocator_alloc):
69         Change an assert to a detailed warning and abort.  
70         When allocator->lock != mutex it indicates that the user has failed
71         to initalize threads before using the D-Bus library.  This warning
72         helps the user identify the issue and fix their app.
73
74 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
75
76         These are all patches from Kjartan Maraas <kmaraas at gnome dot org>
77         with cleanups of bugs found from Coverity reports:
78
79         * dbus/dbus-sysdeps-util.c (_dbus_write_pid_file):
80         close the file on error to avoid a leak
81
82         * bus/expirelist.c (bus_expire_list_test):
83         Check for NULL on dbus_new0
84
85         * bus/activation.c (update_directory):
86         remove dead code
87
88         * bus/config-parser.c (merge_service_context_hash, start_selinux_child):
89         Fix some leaks
90
91         * bus/bus.c (process_config_every_time):
92         Fixed a leak
93
94         * bus/desktop-file.c (parse_key_value):
95         Fixed leak
96
97         * bus/selinux.c (bus_selinux_id_table_insert):
98         Fixed leak
99
100 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
101
102         * dbus/dbus-object-tree.c (_dbus_object_subtree_new):
103         remove dead code
104
105 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
106
107         * tools/run-with-tmp-session-bus.sh: use #!/bin/sh instead of
108         #!/bin/bash
109
110 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
111
112         * Doxyfile.in: fix the INPUT line so we can generate docs 
113         when sourcedir != builddir (patch from Cygwin Ports maintainer
114         <yselkowitz at users dot sourceforge dot net>
115
116 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
117
118         * dbus/dbus-sysdeps.h:
119         * dbus/dbus-sysdeps.c: 
120         * dbus/dbus-string.c: 
121         s/_dbus_printf_length/_dbus_printf_string_upper_bound to comform with
122         GLib's function which does the same thing
123
124         * configure.in:
125         * bus/Makefile.am:
126         * bus/dir-watch-default.c:
127         * bus/dir-watch-dnotify.c:
128         * bus/dir-watch-kqueue.c:
129         Add kqueue directory watching for freebsd and split the directory
130         watching code into seperate files per method/arch
131         (patches from Timothy Redaelli <drizzt at gufi dotorg>)
132
133 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
134
135         * configure.in:
136         * tools/Makefile.am:
137         * tools/dbus-launch.c:
138         * bus/Makefile.am:
139         allow --with-dbus-daemondir switch to be used to make the
140         daemon install to a seperate bindir like /usr/libexec
141         (patch from Brian Cameron <brian dot cameron at sun dot com)
142
143 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
144
145         * bus/Makefile.am (install-data-hook): removed the slash after 
146         $(DESTDIR) so we don't get the double slash which does not work
147         in windows (patch from Andras Porjesz 
148         <andras dot porjesz at siemens dot com>)
149
150 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
151
152         * dbus/dbus-sysdeps.h:
153         * dbus/dbus-sysdeps.c: 
154           add _dbus_printf_length (patch from Peter Kümmel 
155           <syntheticpp at gmx dot net>)
156
157 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
158
159         * dbus/dbus-internals.c: unistd.h is not used 
160         (_dbus_verbose_real): only enable verbose printing 
161         if DBUS_VERBOSE environment var is set to '1'
162         (patch from Peter Kümmel <syntheticpp at gmx dot net>)
163
164 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
165
166         * configure.in: add a GCC flag check for -Wdeclaration-after-statement
167         so we still compile on older gcc (patch from Frederic Peters 
168         <fpeters at 0d dot be>
169
170 2006-08-04  Havoc Pennington  <hp@redhat.com>
171
172         * configure.in: add -Wdeclaration-after-statement
173
174         * dbus/dbus-connection.c: change all the pending call stuff to
175         reflect the fact that pending call operations use the connection
176         lock
177
178         * dbus/dbus-pending-call.c: add locking here
179
180         * dbus/dbus-errors.c (struct DBusRealError): don't make the name
181         field const consistent with how message field is done
182
183 2006-08-03  John (J5) Palmieri  <johnp@redhat.com>
184
185         * s/D-BUS/D-Bus/g
186
187 2006-08-03  John (J5) Palmieri  <johnp@redhat.com>
188
189         * dbus/dbus-object-tree.c: Patch by Benjamin Otte 
190         <in7y118 at public.uni-hamburg dot de> - fix invalid
191         read/write reported by valgrind
192
193 2006-07-24  John (J5) Palmieri  <johnp@redhat.com>
194
195         * Released 0.91
196
197 2006-07-22  John (J5) Palmieri  <johnp@redhat.com>
198
199         * dbus/dbus-connection.c:
200         (_dbus_connection_attach_pending_call_unlocked):
201         (connection_timeout_and_complete_all_pending_calls_unlocked):
202         Make sure we set timeout_added on pending calls to FALSE when
203         we remove the timeout from the connection
204
205 2006-07-21  John (J5) Palmieri  <johnp@redhat.com>
206
207         * Removed some extra bindings stuff lingering around (thanks timo)
208         * dbus-pendingcall.c (_dbus_pending_call_new): 
209         s/dbus_connection_ref/_dbus_connection_ref_unlocked fixes assertion
210         when we tried to take a lock on an already locked connection
211
212 2006-07-17  John (J5) Palmieri  <johnp@redhat.com>
213
214         * Released 0.90
215
216 2006-07-17  Havoc Pennington  <hp@redhat.com>
217
218         * dbus/dbus-marshal-basic.c (_dbus_type_to_string): support 64-bit
219         ints, reported by Owen Taylor
220
221 2006-07-17  John (J5) Palmieri  <johnp@redhat.com>
222
223         * doc/TODO:
224         * dbus/dbus-bus.c:
225         * dbus-errors.c:
226         * dbus/dbus-marshal-validate.c:
227           Removed TODO items which were fixed or are no longer relevent
228
229 2006-07-17  John (J5) Palmieri  <johnp@redhat.com>
230
231         * dbus-qt4-1.pc.in, dbus-sharp.pc.in:
232         Remove stray files from the stripped bindings
233
234 2006-07-16  Havoc Pennington  <hp@redhat.com>
235
236         * dbus/dbus-pending-call.c (_dbus_pending_call_set_timeout_error):
237         Improve the error message on reply timeout
238
239 2006-07-14  John (J5) Palmieri  <johnp@redhat.com>
240
241         * Remove all bindings
242
243 2006-07-13  John (J5) Palmieri  <johnp@redhat.com>
244
245         * dbus-connection.c (dbus_connection_send_with_reply): return TRUE
246         and set pending_reply out arg to NULL is connection is disconnected
247         (connection_timeout_and_complete_all_pending_calls_unlocked): New
248         static method for cleaning up pending calls on disconnect
249         (_dbus_connection_get_dispatch_status_unlocked): If we have pending 
250         calls queued timeouts on disconnect 
251
252          * dbus/dbus-pending-call.c (_dbus_pending_call_set_connection):
253         Remove 
254
255 2006-07-13  Carlos Garcia Campos  <carlosgc@gnome.org>
256
257         * bus/activation.[ch] (bus_activation_list_services): new function to 
258         get the list of services that can be activated
259
260         * bus/dispatch.c: test coverage for the new bus method
261         ListActivatableNames
262
263         * bus/driver.c: new bus method ListActivatableNames to get the list of
264         services that can be activated
265
266         * doc/dbus-specification.xml: ListActivatableNames method documentation
267
268 2006-07-12  John (J5) Palmieri  <johnp@redhat.com>
269         * dbus/Makefile.am: add dbus-pending-call-internal.h to the list of
270         source files
271
272 2006-07-12  John (J5) Palmieri  <johnp@redhat.com>
273         * dbus/dbus-message-factory.c:
274         Fix index into an array (patch by Peter Kümmel <syntheticpp at gmx.net>)
275
276 2006-07-12  John (J5) Palmieri  <johnp@redhat.com>
277         * dbus/dbus-connection-internal.h:
278         * dbus/dbus-connection.c:
279         * file dbus/dbus-pending-call.c:
280         * dbus/dbus-pending-call.h:
281         Make DBusPendingCall an opaque type even to D-Bus internals
282
283 2006-07-07  John (J5) Palmieri  <johnp@redhat.com>
284
285         * dbus/dbus-connection.h: remove connection_disconnect and replace with
286         connection_close
287
288         * dbus/dbus-connection.c: include dbus-bus.h
289         (_dbus_connection_read_write_dispatch): make static
290
291 2006-07-07  John (J5) Palmieri  <johnp@redhat.com>
292
293         * dbus/dbus-connection.c (dbus_connection_close): removed deprecated
294         function
295         (dbus_connection_dispatch): On disconnect unref any shared connections
296
297         * dbus/dbus-bus.c (_dbus_bus_check_connection_and_unref): new function
298         for cleaning up shared connections on disconnect
299         (internal_bus_get): get a hard refrence to shared connections when
300         they are created
301         
302         * doc/TODO: Remove items which are no longer relevent or have been fixed
303         Split 1.0 todo items with a 0.90 freeze todo list
304  
305 2006-06-14  Ross Burton  <ross@openedhand.com>
306
307         * glib/dbus-gobject.c:
308         Free a leaking GArray (surely not!) in dbus_g_method_return.
309
310 2006-06-14  Ross Burton  <ross@openedhand.com>
311
312         * tools/Makefile.am:
313         * tools/dbus-monitor.c:
314         Don't use the GLib bindings in dbus-monitor (patch from Ralf
315         Habacker).
316         
317 2006-06-14  Ross Burton  <ross@openedhand.com>
318
319         * tools/dbus-print-message.c:
320         Also print the object path when outputting signals or method calls.
321
322 2006-06-13  Thiago Macieira <thiago.macieira@trolltech.com>
323
324         * qt/src/Makefile.am: install the qdbus.h header.
325         This allows people to actually use the installed code.
326
327 2006-06-12  Ross Burton  <ross@openedhand.com>
328
329         * glib/dbus-gproxy.c:
330         Don't leak a GArray when firing signals (thank Rob Taylor for review).
331
332 2006-06-12  Thiago Macieira <thiago.macieira@trolltech.com>
333
334         * Released 0.62
335
336 2006-06-12  Thiago Macieira <thiago.macieira@trolltech.com>
337
338         * dbus/dbus-arch-deps.h.in: Remove spurious semi-colons that
339         break pedantic builds. Closes bug 6043 (patch approved by
340         Havoc back in February).
341
342 2006-06-12  Thiago Macieira <thiago.macieira@trolltech.com>
343
344         * qt/src/qdbusintegrator.cpp: Fix bug in parsing async methods
345         that took a QDBusMessage parameter.
346         * qt/src/qdbusbus.h: Add a default flag for RequestName.
347         * qt/tools/dbus.cpp: Don't use automatic call because we might
348         be calling an async method: request a reply.
349
350 2006-06-11  Thiago Macieira <thiago.macieira@trolltech.com>
351
352         * test/qt/*: Update the testcases, including testing the new
353         functionality of sending null QByteArray and QString over the
354         bus. Add new headertest test and restore the old
355         qdbusxmlparser test.
356
357 2006-06-11  Thiago Macieira <thiago.macieira@trolltech.com>
358
359         * qt/tools/dbuscpp2xml.cpp: Compile on Windows.
360         * qt/tools/dbusidl2cpp.cpp: Add missing newline.
361
362         * qt/examples/Makefile.am:
363         * qt/examples/chat.h: Use UI-generated files with the ui_*.h
364         form.
365
366         * qt/src/qdbusmarshall.cpp: Allow sending of QString() and
367         QByteArray() (nulls) over the bus.
368         * qt/src/qdbusabstractinterface.cpp: Use the correct variable,
369         the one that has the signature suffix stripped.
370         * qt/src/qdbusreply.h: Make some methods const.
371
372 2006-06-09  Thiago Macieira <thiago.macieira@trolltech.com>
373
374         Patch from Timo Hoenig <thoenig@suse.de>.
375
376         * qt/dbus/Makefile.am: New file.  Fix "make dist", add all headers
377         required during build to EXTRA_DIST.
378         * qt/src/Makefile.am: Fix "make dist", add 'qdbus.h' to EXTRA_DIST.
379         * qt/Makefile.am: Fix "make dist", add 'dbus' to DIST_SUBDIRS.
380         * configure.in: Fix "make dist", take care that the Makefile for
381         qt/dbus is being generated.
382
383 2006-06-07  John (J5) Palmieri  <johnp@redhat.com>
384
385         * bus/bus.c: Fix eavesdropping on method calls
386
387 2006-06-07  John (J5) Palmieri  <johnp@redhat.com>
388
389         * configure.in:
390         * dbus/dbus-userdb-util.c:
391         Add Solaris console owner patch from Artem Kachitchkine
392
393 2006-06-07  Thiago Macieira <thiago.macieira@trolltech.com>
394
395         * qt/Makfile.am:
396         * qt/src/Makefile.am: Fix the EXTRA_DIST after the
397         reorganisation. Thanks to Timo Hoenig for pointing this out.
398
399 2006-06-06  Robert McQueen  <robot101@debian.org>
400
401         * glib/dbus-gtype-specialized.c: Fix obvious leak of GArray in every
402           call to dbus_g_type_get_struct.
403
404 2006-06-06  Robert McQueen  <robot101@debian.org>
405
406         * glib/dbus-gvalue-utils.c: Fix the failing test where static string
407           pointers were put into a GPtrArray-based specialised collection, and
408           then freed along with the array. GValues which you add into
409           collections or maps which have the NOCOPY flag set are assumed to not
410           belong to the caller, so rather than the existing pointer-stealing
411           semantics, they are copied instead. Given that the main consumers of
412           this abstraction are the bindings themselves, I don't think this is
413           too bad, but others should watch their choice of take vs set_static.
414
415 2006-06-06  Robert McQueen  <robot101@debian.org>
416
417         * glib/dbus-gvalue-utils.c: Spotted a warning about the return value
418           of g_slist_prepend not being used. Fixed copying of slist-based
419           specialised collections, then wrote a test case and found that it was
420           all broken. Went on to fix iterating and appending too. Good thing
421           nobody uses this code yet.
422
423 2006-06-06  Robert McQueen  <robot101@debian.org>
424
425         * glib/dbus-gvalue-utils.c: Remove duplicated code by having all of
426           the iterators use gvalue_take_ptrarray_value (the GValues themselves
427           are discarded without unsetting, so it makes no difference whether
428           we take or set_static). Remove cases for G_TYPE_POINTER because
429           there really is nothing useful we can do with them in our
430           specialised types - we *need* boxed copy/free functions at the very
431           least.
432
433 2006-06-05  Thiago Macieira <thiago.macieira@trolltech.com>
434
435         * qt/dbus: Add directory. I had forgotten to add this
436         yesterday after the move...
437
438         * qt/examples/Makefile.am:
439         * qt/examples/dbus.cpp: Moved to qt/tools/dbus.cpp.
440
441         * qt/tools/Makefile.am:
442         * qt/tools/dbus.cpp: Moved from qt/examples/dbus.cpp.
443         Added feature to get and set properties.
444         Added validation of service, object path and interface names.
445
446         * qt/tools/dbusidl2cpp.cpp: Two new features:
447         1) Allow specifying both the header and the source file names,
448         by separating them with a colon.
449         2) Don't write an interface output if the -p switch wasn't
450         given, but the -a was.
451
452         * qt/src/*: Fix usage of Iterators and ConstIterators.
453         Fix shadowing of variables by other variables (-Wshadow).
454         Fix keyword-cleanliness in headers.
455         Fix ASCII-cast (QLatin1String, QLatin1Char).
456         Fix validation of member names.
457         Add extra checking of introspection data during XML parsing.
458         Various bug fixes.
459
460 2006-06-04  Thiago Macieira <thiago.macieira@trolltech.com>
461
462         * dbus/Makefile.am:
463         * dbus/qdbus.h: Remove unnecessary file. This is mirrored into
464         qt/dbus/qdbus.h now.
465
466 2006-06-04  Thiago Macieira <thiago.macieira@trolltech.com>
467
468         * configure.in: Make --disable-qt actually do
469           something. Patch inspired by Zack Rusin.
470
471 2006-06-04  Thiago Macieira <thiago.macieira@trolltech.com>
472
473         * qt/: Update to Subversion r548032.
474         This includes a big reorganisation of the files inside the
475         subdir.
476
477 2006-05-30  Sjoerd Simons  <sjoerd@luon.net>
478
479         * dbus/dbus-sysdeps.c: Make tcp socket connection error somewhat more
480         clear:  
481         "Failed to connect to socket <host>:<port> <error>" instead of
482         "Failed to connect to socket <host>: <error>:<port>"
483
484         * dbus/dbus-transport-unix.c: Fix crash when no host option is given
485         for a tcp transport. 
486
487 2006-05-29  Thiago Macieira  <thiago.macieira@trolltech.com>
488
489         * qt/*: Update the QtDBus bindings up to revision 546310 in
490         Subversion.
491         This adds the dbuscpp2xml tool, that parses a C++ header and
492         outputs a D-BUS Introspection XML.
493
494 2006-05-21  Havoc Pennington  <hp@redhat.com>
495
496         * glib/dbus-gproxy.c: Put in a pile of assertions that the proxy name
497         is not NULL when it shouldn't be. Also a couple of possible fixes
498         for #4637 though I don't understand why the bug happens, to be
499         honest... also the object constructor has an assert name != NULL
500         and the name is only currently NULL for peer-to-peer proxies that 
501         I don't think anyone uses? So it should be asserting.
502         Anyway, for now at least see if we get an earlier assertion failure.
503
504         * glib/dbus-gvalue-utils.c: Put in a couple of assertions for
505         apparently broken code to be sure the tests fail and someone 
506         will fix them...
507
508 2006-05-07  Thiago Macieira  <thiago.macieira@trolltech.com>
509
510         * qt/qdbusmarshall.cpp: Fix a problem of demarshalling lists
511         and arrays when they had a single element: has_next returns
512         false, even before you read the element. So, instead, check
513         the array length.
514
515 2006-05-06  Thiago Macieira  <thiago.macieira@trolltech.com>
516
517         * qt/qdbusmessage.cpp:
518         * qt/qdbustypehelper_p.h:
519         * qt/qdbusintegrator.cpp: gcc 3.4 doesn't like Q_FOREACH when
520         the list is a const-reference
521
522 2006-05-03  John (J5) Palmieri  <johnp@redhat.com>
523
524         * Adding old doc patch that never got applied
525         
526         * dbus/bus.c (dbus_bus_add_match): Add documentation
527
528         * doc/dbus-specification.xml: Add documentation for the match rules
529           and the AddMatch and RemoveMatch methods
530
531 2006-05-02  Thiago Macieira  <thiago.macieira@trolltech.com>
532
533         * qt/dbusidl2cpp.cpp: There's no callAsync. Use the correct
534         call (r535506)
535
536         * qt/dbusidl2cpp.cpp:
537         * qt/qdbusabstractadaptor.cpp:
538         * qt/qdbusabstractadaptor.h: Make QDBusAdaptorConnector be a
539         sibling of the QDBusAbstractAdaptor objects instead of the
540         parent. (r535848)
541
542         * qt/dbusidl2cpp.cpp:
543         * qt/qdbusabstractinterface.cpp:
544         * qt/qdbusabstractinterface.h:
545         * qt/qdbusabstractinterface_p.h:
546         * qt/qdbusinterface.cpp: Make properties in interfaces
547         actually work. The code that was generated would not compile,
548         due to moc calls to functions that did not exist. They now
549         shall. (r536571)
550
551 2006-04-30  Thiago Macieira  <thiago.macieira@trolltech.com>
552
553         * Makefile.am:
554         * configure.in:
555         * dbus-qt4-1.pc.in: Add a pkg-config file for libdbus-qt4-1.
556         Thanks to Brad Hards for providing the patch
557
558 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
559
560         * qt/dbusidl2cpp.cpp: There's no callAsync. Use the correct
561         call. (r535506)
562
563 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
564
565         * qt/examples/dbus.cpp: Enhance error messages and use
566         QDBusInterfacePtr.
567
568 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
569
570         * qt/qdbusinterface.h: Rename QDBusRef to QDBusInterfacePtr
571         and disable the copy operators. (r533772, r534746)
572
573         * qt/qdbuserror.h: Remove the automatic cast to bool. (r533929)
574
575         * qt/qdbusabstractinterface.cpp:
576         * qt/qdbusabstractinterface.h: Change the default call mode to
577         not use the event loop. Add convenience call() methods that
578         take a CallMode parameter. (r534042)
579
580         * qt/qdbusconnection.h: Change the default call mode to not
581         use the event loop. (r534042)
582
583         * qt/qdbusinterface.cpp:
584         * qt/qdbusinterface.h: Add a method to tell us if the
585         interface is valid (since we don't return a null pointer
586         anymore) (r534099)
587
588         * qt/qdbusinterface_p.h: Don't crash if metaObject is 0
589         (r534101)
590
591         * qt/qdbusinternalfilters.cpp: Decouple the introspection
592         function in two so taht we get the chance to introspect
593         without having a QDBusMessage (r534102)
594
595         * qt/qdbusbus.h:
596         * qt/qdbusconnection.cpp:
597         * qt/qdbusconnection_p.h:
598         * qt/qdbusintegrator.cpp: Keep a list of our own names to
599         avoid a round-trip to the server when attempting to introspect
600         one of our own objects. Also make sure the filter functions
601         match the empty interface as well. (r534108)
602         Don't keep the connection names. Instead, trust the unique
603         connection name (r534111)
604         Remove event loop usage (r534112)
605
606 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
607
608         * qt/qdbusintegrator.cpp: Fix assertion failure spotted by
609         Brad Hards.
610
611 2006-04-28  Robert McQueen  <robot101@debian.org>
612
613         * glib/dbus-gproxy.c: Fix properties so that they can be given in
614         any order, making it easier for people who inherit from this
615         object.
616
617 2006-04-28  Robert McQueen  <robot101@debian.org>
618
619         * glib/dbus-gvalue-utils.c: Patch from Jakub Stachowski to fix leaking
620         of memory from within pointer arrays and lists. Fixes bug #6300.
621
622 2006-04-28  Robert McQueen  <robot101@debian.org>
623
624         * glib/dbus-gvalue.c: Patch from Jakub Stachowski to fix a leak in
625         generating struct signatures. Fixes bug #6083.
626
627 2006-04-28  Robert McQueen  <robot101@debian.org>
628
629         * qt/Makefile.am: Tweak CLEANFILES from qdbusconnection.moc
630         to qdbusconnection_p.moc.
631
632 2006-04-24 John (J5) Palmieri <johnp@redhat.com>
633
634         * README, INSTALL: Doc fixes
635         Patch from Brad Hards <bradh at frogmouth.net>
636
637 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
638
639         * qt/examples/dbus.cpp: Use the new merged-interface mode for
640         the dynamic meta object. No need to guess which interface to
641         call.
642
643 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
644
645         * qt/qdbusconnection_p.h:
646         * qt/qdbusmetaobject.cpp:
647         * qt/qdbusmetaobject_p.h:
648         * qt/qdbusintegrator.cpp: Use the new merged-interface mode
649         for the dynamic meta object. No need to guess which
650         interface to call.
651         * qt/qdbusabstractinterface_p.h:
652         * qt/qdbusconnection.cpp:
653         * qt/qdbusintegrator.cpp:
654         * qt/qdbusinterface.cpp:
655         * qt/qdbusinterface.h: Make findInterface always return a non-null pointer.
656         Add a QDBusRef that looks and behaves like DCOPRef.
657
658 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
659
660         * dbus/dbus-connection.c: Interfaces are optional in method
661         calls, so don't give up if the interface parameter is NULL.
662         Patch reviewed by Havoc Pennington.
663
664 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
665
666         * qt/qdbusreply.h: Add default constructor and operator=
667           (r532625)
668         * qt/qdbustypehelper_p.h: Use a clean namespace: no foreach()
669           in public headers (r532952)
670         * qt/qdbusabstractinterface.cpp:
671         * qt/qdbusabstractinterface_p.h: Add the AutoDetect mode and
672           make it the default (r532951)
673
674 2006-04-19  John (J5) Palmieri  <johnp@redhat.com>
675
676         * dbus/dbus-connection.c: Fix asserts
677         Patch from Tim Moloney <t.moloney at verizon.net>
678
679 2006-04-19  John (J5) Palmieri  <johnp@redhat.com>
680
681         * mono/Connection.cs, mono/Message.cs: Check Target type
682         Patch from Aaron Bockover (abockover at novell.com)
683
684 2006-04-13  Thiago Macieira  <thiago.macieira@trolltech.com>
685
686         * INSTALL: fine-tune the requirements for the Qt4 binding.
687
688 2006-04-16  Daniel P. Berrange  <dan@berrange.com>
689
690         * tools/dbus-print-message.c: Added support for printing of all 
691           remaining data types. Fixed logic for indentation of compound
692           data types.
693         
694 2006-04-15  Daniel P. Berrange  <dan@berrange.com>
695
696         * INSTALL: fill out content of file providing DBus specific
697           build installations, followed by generic Auto* INSTALL file
698           content
699         
700 2006-04-13  Thiago Macieira  <thiago.macieira@trolltech.com>
701
702         * qt/qdbusintegrator.cpp: Work around g++ 3.3 bug.
703           Patch by Stefan Eilers. (r529537)
704
705 2006-04-13  Thiago Macieira  <thiago.macieira@trolltech.com>
706
707         * qt/qdbusinternalfilters.cpp: Don't show the parent's
708           contents (r528208)
709
710 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
711
712         * qt/Makefile.am: fix the dependency for
713           qdbusconnection_p.moc. It's included in qdbusintegrator.cpp,
714           not in qdbusconnection.cpp.
715           Thanks to Jakub Stachowski <stachowski@hypair.net> for
716           spotting this.
717
718 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
719
720         * qt/examples/listnames.cpp:
721         * qt/examples/Makefile.am: Three ways to list the names on the
722           bus.
723
724 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
725
726         * test/qt/tst_hal.cpp: Remove the waiting, since it's not
727           needed anymore. Requires Qt 4.1.3 to work properly. (r528148)
728
729 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
730
731         Merge from Subversion:
732         * qt/qt-dbus.qdocconf: Update Trolltech's webpage link to
733           something that exists (r526315)
734         * qt/qdbusinternalfilters.cpp: Correctly detect non-scriptable
735           slots/signals (r526316)
736         * qt/qdbusinternalfilters.cpp: Fix the setProperty call and
737           also return an unknown-method error if the parameters don't
738           match for org.freedesktop.DBus.Properties. (r526842)
739         * qt/examples/dbus.cpp: Allow passing of QVariants (r526843)
740         * qt/qdbusintegrator.cpp: Restore the proper order of
741           delivery: don't make method returns be delivered on priority
742           (r528150)
743
744 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
745
746         * configure.in qt/Makefile.am: add qt/examples
747         * qt/examples: Add QtDBus example programs:
748           - hello: Hello, World
749           - ping: Simple method-calling program
750           - pong: Simple object-exporting program (not using adaptors)
751           - complexping: Interactive method-calling program 
752                 (also gets and sets properties).
753           - complexpong: Sample program exporting methods, signals and
754                 properties, using adaptors.
755           - dbus: Simple implementation of a generic method-calling
756                 program, similar to 'dbus-send', but with semantics
757                 similar to 'dcop'.
758           - chat: Simplistic chat program, implemented using signals
759                 and the system bus. Looks like IRC.
760
761 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
762
763         * configure.in: Detect QtGui (necessary for one of the
764           example programs). Note: this increases the minimum required
765           version of Qt to 4.1.3.
766
767 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
768
769         * test/qt/*: Sync with KDE Subversion revision 523647.
770         Update the testcases to the new API. Remove testcases for
771         classes that are no longer public or have been removed.
772
773 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
774
775         * qt/*: 
776         * dbus/qdbus.h: Sync with KDE Subversion revision
777         523647. Hopefully, this will be the last of the
778         source-incompatible changes. Documentation has been improved;
779         support for QList<basic-types> has been added; QDBusObject is
780         gone; QDBus(Abstract)Interface is now a QObject with
781         auto-generated meta-object; QDBusIntrospection is marked
782         private, since QMetaObject can be used now; lots of bugfixes.
783
784 2006-03-16  John (J5) Palmieri  <johnp@redhat.com>
785
786         Patch from Milosz Derezynski <internalerror at gmail.com>
787         
788         * configure.in:
789         Output the service directory in the configure summary
790
791         * dbus-1.pc.in:
792         Add session_bus_services_dir
793
794 2006-03-10  Ross Burton  <ross@openedhand.com>
795
796         * tools/dbus-print-message.c:
797         Add support for object paths and signatures.
798
799 2006-03-06  Sjoerd Simons <sjoerd@luon.net>
800
801         * bus/bus.c: (bus_context_reload_config): Flush the user database cache on
802         config reload.
803         * bus/dbus-daemon.1.in: Also note that SIGHUP flushes the user/group
804         information caches
805         * dbus/dbus-hash.c: (_dbus_hash_table_remove_all): 
806         * dbus/dbus-hash.h: Add function to remove all entries from a hash table
807         * dbus/dbus-userdb.c: (_dbus_user_database_flush):
808         * dbus/dbus-userdb.h: Add function to flush all user/group information
809         caches.
810
811 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
812
813         * qt/dbusidl2cpp.cpp:
814         * qt/Makefile.am: add the dbusidl2cpp tool, the replacement
815         for dcopidl2cpp, found in the KDE installations (or the more
816         modern kalyptus): generate Qt4 C++ code for the input XML
817         introspection. Currently no IDL parsing.
818
819 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
820
821         * test/qt/*: Update the self-tests.
822
823 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
824
825         * qt/*: 
826         * dbus/qdbus.h: Sync with KDE Subversion revision 516237. This
827         represents the first feature-complete version of the Qt4
828         bindings since I took ove maintainership.
829
830 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
831
832         * qt/Doxyfile: Adding a Doxyfile for the Qt4 bindings
833         dir. This is C++, so we can't use the DBus ones.
834
835 2006-03-02  John (J5) Palmieri  <johnp@redhat.com>
836
837         * python/dbus_bindings.pyx: Remove refrence to sys/cdefs.h
838         (Patch from Artem Kachitchkine <Artem.Kachitchkin at Sun.COM>)
839
840 2006-03-02  John (J5) Palmieri  <johnp@redhat.com>
841
842         * dbus/dbus-connection.c: 
843         (_dbus_connection_block_pending_call):
844         Check to see if our data has already been read off the connection
845         by another blocking pending call before we block in poll.
846         (check_for_reply_and_update_dispatch_unlocked):
847         Code taken from _dbus_connection_block_pending_call - checks for
848         an already read reply and updates the dispatch if there is one.
849
850         * test/name-test/test-pending-call-dispatch.c:
851         New test for making sure we don't get stuck polling a 
852         dbus connection which has no data on the socket when
853         blocking out of order on two or more pending calls.
854
855 2006-02-28  Thiago Macieira <thiago.macieira@trolltech.com>
856
857         * qt/Makefile.am: Patch by Sjoerd Simons. More .moc issues:
858         make/automake don't detect that we're talking about the same
859         .lo file if I specify the full path to the source files.
860
861 2006-02-26  Havoc Pennington  <hp@redhat.com>
862
863         * bus/dbus-daemon.1.in: improve the language in a couple spots I noticed
864
865         * dbus/dbus-bus.c (internal_bus_get): in the error message if the
866         session bus variable is unset, suggest "man dbus-launch" and "man
867         dbus-daemon" to figure out how to fix the problem
868
869 2006-02-25  Havoc Pennington  <hp@redhat.com>
870
871         * glib/dbus-glib-tool.c (usage): fix up the usage message, someone
872         should make this thing use the new glib options parser
873
874 2006-02-25  Thiago Macieira <thiago.macieira@trolltech.com>
875
876         * qt/Makefile.am: Patch by Sjoerd Simons. Fix the path to the
877         .lo files taking moc sources.
878
879 2006-02-25  Havoc Pennington  <hp@redhat.com>
880
881         * dbus/dbus.h, dbus/Makefile.am: add dbus-signature.h to dbus.h
882         and install it as a public header
883
884 2006-02-24  John (J5) Palmieri  <johnp@redhat.com>
885
886         * Released 0.61
887
888 2006-02-24  John (J5) Palmieri  <johnp@redhat.com>
889         
890         * proxies.py: Fix the callchain
891
892 2006-02-24  John (J5) Palmieri <johnp@redhat.com>
893         
894         * patch from Sjoerd Simons <sjoerd at debian.org>:      
895
896         * dbus/dbus-sysdeps-util.c (_dbus_group_info_free): Moved to 
897         dbus/dbus-sysdeps.c
898
899         * dbus/dbus-userdb.c (_dbus_group_info_free_allocated): Don't
900         call _dbus_group_info_free_allocated which causes infinite loop,
901         correctly call _dbus_group_info_free
902
903 2006-02-20  Thiago Macieira <thiago.macieira@trolltech.com>
904
905         * qt/qdbusinterface_p.h:
906         * qt/qdbusinterface.cpp: Use the standard
907         org.freedesktop.DBus.Method.NoReply annotation for the "async"
908         calls instead of creating one for us.
909
910         * qt/qdbusconnection_p.h:
911         * qt/qdbusintegrator.cpp: Remove debugging code.
912
913         * qt/qdbusintegrator.cpp:
914         * qt/qdbusmessage.cpp:
915         * qt/qdbusmessage_p.h:
916         * qt/qdbusmessage.h: Change the behaviour of automatic
917         reply-sending: now a reply is always sent, unless the caller
918         didn't request one or if the user slot has already sent one.
919
920 2006-02-16  Robert McQueen  <robot101@debian.org>
921
922         * configure.in: Patch from Debian packages by Sjoerd Simons
923         <sjoerd@debian.org> to add --with-qt-moc and --with-qt3-moc
924         arguments so it's possible to build both bindings in the
925         same tree.
926
927         * qt/Makefile.am: Fix truncated value so that make dist works.
928
929 2006-02-16  Robert McQueen  <robot101@debian.org>
930
931         * acinclude.m4, configure.in: Patch from Brad Hards
932         <bradh@frogmouth.net> to avoid warnings from autoconf 1.9 by
933         improving quoting, re-ordering a few checks, and a few other
934         aesthetic tidy-ups.
935
936 2006-02-16  Robert McQueen  <robot101@debian.org>
937
938         * dbus/dbus-message.c (dbus_message_iter_get_fixed_array):
939         Patch from Rob Taylor <rob.taylor@collabora.co.uk> to correct a bogus
940         assertion that the next element to read from the iter is fixed in
941         size. This is not the case when you are at the end of the iter,
942         because the next element type is INVALID.
943
944         * dbus/dbus-string.c (_dbus_string_init_const_len): Correct a
945         a bogus assert which means that you may not initialise a 0-length
946         string unless you provide a non-NULL pointer. This prevented
947         you from marshalling messages containing zero-length arrays in
948         some cases.
949
950         * glib/dbus-gvalue.c (demarshal_collection_array): Another patch
951         from Rob to correct bogus asserts when trying to demarshal an
952         array and get_fixed_array got you 0 elements. Append nothing to
953         the GArray in this case.
954
955         * test/glib/test-dbus-glib.c: Add a test case for round-tripping
956         an empty array via the glib bindings. Without all of the above
957         patches, this new test fails.
958
959 2006-02-16  Robert McQueen  <robot101@debian.org>
960
961         * glib/dbus-gmain.c: Make the previous commit compile.
962
963         * python/_dbus.py, python/matchrules.py: Patch from Ole Andre
964         Ravnaas <ole.andre.ravnaas@collabora.co.uk> to allow you to
965         specify sender_keyword="foo", path_keyword="bar" when adding
966         a signal listener, so that you can bind to signals generically
967         but still do something useful in your callback.
968
969         * python/dbus_bindings.pyx: Demarshal the byte type as unsigned
970         chars so that they're not cast to chars and made negative. Thanks
971         to Jakub Stachowski for reporting this and testing the fix.
972
973 2006-02-15  John (J5) Palmieri  <johnp@redhat.com>
974
975         * dbus/dbus-glib.h:
976         * glib/dbus-gmain.h:
977         (dbus_g_connection_open): new method for openning
978         a connection to an arbitrary address in the glib bindings
979
980         * ChangeLog: checkin last entry which doesn't seem to be commited
981
982 2006-02-13  John (J5) Palmieri  <johnp@redhat.com>
983
984         * tools/dbus-launch.c: Fixed sh syntax output
985
986 2006-02-13  Robert McQueen  <robot101@debian.org>
987
988         * glib/dbus-binding-tool-glib.c, glib/dbus-gmain.c,
989         glib/dbus-gsignature.c, glib/dbus-gtype-specialized.c,
990         glib/dbus-gtype-specialized.h, glib/dbus-gvalue-utils.c,
991         glib/dbus-gvalue-utils.h, glib/dbus-gvalue.c:
992         Patch from Rob Taylor <rob.taylor@collabora.co.uk> to add a big
993         missing piece of the glib bindings jigsaw puzzle. This modifies
994         the existing specialised types to have N type parameters (rather
995         than the current 1 or 2 for arrays and dictionaries respectively).
996         You can then use this to get a glib type to represent any arbitrary
997         D-Bus struct type using dbus_g_type_get_struct. The only
998         implementation of these types is with GValueArrays as before,
999         but it's now possible to store these in arrays, emit them in
1000         signals, etc.
1001
1002 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
1003
1004         * dbus/dbus-signature.c (dbus_signature_iter_recurse): Correctly
1005         deal with nested arrays (Bug #5823) Patch by Thiago Macieira 
1006         <thiago.macieira at trolltech.com>
1007
1008 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
1009
1010         * mono/doc/Makefile.am: Fix parallel make problem with mono-doc
1011         (Bug #4213) Patch from Doug Goldstein <cardoe at gentoo.org>
1012
1013 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
1014
1015         * bus/connection.c (bus_connections_expect_reply): Make
1016         pending reply limit not common to all connections (Bug #5416)
1017         Patch from Kimmo Hämäläinen <kimmo.hamalainen at nokia.com>
1018
1019 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
1020
1021         * tools/dbus-launch.c: Fixed csh syntax output (Bug #5720)
1022
1023 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
1024
1025         * gcj/Makefile.am: point to correct jar command (Bug #4529)
1026         patch from Doug Goldstein <cardoe at gentoo.org>
1027
1028 2006-02-09  Joe Shaw  <joeshaw@novell.com>
1029
1030         * mono/Arguments.cs: Fix a magic number in the mono bindings
1031         that doesn't work on 64 bit arches.  Patch from Peter Johanson.
1032
1033 2006-01-27  Robert McQueen  <robot101@debian.org>
1034
1035         * glib/dbus-binding-tool-glib.[ch]: Patch based on Ricardo Kekki's
1036         patch to use an annotation org.freedesktop.DBus.GLib.ClientCSymbol
1037         when generating the client-side methods, instead of overloading
1038         CSymbol which broke everything horribly. My apologies.
1039
1040 2006-01-27  Robert McQueen  <robot101@debian.org>
1041
1042         * glib/dbus-gtype-specialized.[ch], glib/dbus-gvalue-utils.c: Patch
1043         by me and Rob Taylor to add a simple_free function to D-Bus map
1044         and collection types, which allows those types which can be freed
1045         with a GDestroyNotify (such as GHashTables and GArrays, but not
1046         GPtrArrays) to be stored as the values in hashtables.
1047
1048         * test/glib/test-dbus-glib.c, test/glib/test-service-glib.{c,xml}:
1049         Patch by Rob Taylor to add nested dicts to the glib tests to check
1050         the above code works, and appears not to leak when called repeatedly.
1051
1052 2006-01-27  Robert McQueen  <robot101@debian.org>
1053
1054         * glib/dbus-gvalue.c (demarshal_valuearray): Patch from Rob Taylor
1055         to free a D-Bus allocated string with dbus_free () instead of
1056         g_free ().
1057
1058 2006-01-27  Iain Holmes  <iain@openedhand.com>
1059
1060         * glib/dbus-gproxy.c (dbus_g_proxy_dispose): Protect the dispose
1061         method from being called multiple times.
1062
1063 2006-01-19  Robert McQueen  <robot101@debian.org>
1064
1065         * glib/dbus-binding-tool-glib.c: Patch from Rob Taylor
1066         <rob.taylor@collabora.co.uk> to add support for generating bindings
1067         to arrays that are represented as GPtrArrays rather than GArrays (ie
1068         size-variable things, such as strings, objects, structs, etc).
1069
1070 2006-01-05  Robert McQueen  <robot101@debian.org>
1071
1072         * dbus/dbus-glib.h, glib/dbus-gproxy.c: Patch from Ricardo Kekki
1073         <ricardo.kekki@movial.fi> to make it possible to inherit from
1074         DBusGProxy, by splitting the DBusGProxy struct into a public part and
1075         a private part, and moving the setting of the DBusGProxyManager into a
1076         connection property, allowing proper GObject construction.
1077
1078 2006-01-05  Robert McQueen  <robot101@debian.org>
1079
1080         * glib/dbus-binding-tool-glib.c: Patch from Ricardo Kekki
1081         <ricardo.kekki@movial.fi> to make dbus-binding-tool heed C symbol name
1082         annotations when generating glib client bindings.
1083
1084 2005-12-19 John (J5) Palmieri  <johnp@redhat.com>
1085
1086         * dbus/dbus-shared.h: Call it shared constants instead of shared macros
1087
1088         * dbus/dbus-protocol.h: add DOxygen markup to quiet warnings
1089
1090 2005-12-19 John (J5) Palmieri  <johnp@redhat.com>
1091
1092         * dbus/dbus-shared.h: add DOxygen markup to quiet warnings
1093
1094 2005-12-19 John (J5) Palmieri  <johnp@redhat.com> 
1095
1096         * dbus/dbus-macros.h: correct DOxygen end of section (s/}@/@})
1097
1098 2005-12-19  Ross Burton  <ross@openedhand.com>
1099
1100         * doc/dbus-tutorial.xml:
1101         Document the Glib client-side bindings, and list all possible annotations.
1102
1103 2005-12-19  John (J5) Palmieri  <johnp@redhat.com>
1104
1105         * dbus/bus.c (dbus_bus_release_name): Add documentation
1106
1107 2005-12-06  Robert McQueen  <robot101@debian.org>
1108
1109         * python/service.py: s/sucessful/successful/ so we're allocating to
1110         and reading from the same variable. Oops.
1111
1112 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
1113
1114         * Released 0.60
1115
1116 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
1117
1118         * test/qt/Makefile.am: build from srcdir
1119
1120         * qt/qtconnection.cpp (requestName): Changed PROHIBIT_REPLACE to ALLOW_REPLACE
1121         Note - this code is wrong and needs to be fixed by the Qt binding
1122         developers.  The flags should be treated as bitfields and not enums.
1123
1124         * qt/qtconnection.h: Change ProhibitReplace to AllowReplace
1125
1126 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
1127
1128         * dbus/dbus-list.c (_dbus_list_insert_after_link, _dbus_list_insert_after, 
1129           link_after): remove #ifdef DBUS_BUILD_TESTS since we use these methods 
1130           in production code
1131
1132 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
1133
1134         * dbus/dbus-connection.c (dbus_connection_read_write): Add new
1135         method for getting messages off the bus in the absence of a
1136         mainloop.  This method is much like 
1137         dbus_connection_read_write_dispatch except it does not dispatch
1138         the messages to a registered filter function.  Instead it
1139         allows a developer to process messages by directly popping
1140         them off the bus.
1141
1142 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
1143
1144         * bus/desktop-file.c (parse_key_value): Ignore locales allowing 
1145         the parser to continue instead of returning error
1146         (bus_desktop_file_load): Do not free parser data when
1147         parse_section_start or parse_key_value fails because it was 
1148         already freed by parser_free (patch from Carlos Garcia Campos  
1149         <carlosgc at gnome.org>)
1150
1151 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
1152
1153         * dbus/dbus-auth.c, dbus/dbus-connection.c, dbus/dbus-keyring.c,
1154         dbus/dbus-server-debug-pipe.c, glib/dbus-binding-tool-glib.c
1155         glib/dbus-glib-tool.c, glib/dbus-gparser.c, glib/dbus-gproxy.c
1156         test/test-segfault.c, test/test-utils.c,
1157         test/glib/test-dbus-glib.c, tools/dbus-cleanup-sockets.c
1158         tools/dbus-launch.c, tools/dbus-tree-view.c, tools/dbus-viewer.c:
1159         Various cleanup of dead code and compiler warnings (patch from
1160         Kjartan Maraas <kmaraas at gnome.org>) 
1161
1162 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
1163
1164         * glib/dbus-gmain.c (connection_setup_add_watch): plugged a leak
1165         (patch from Carlos Garnacho Parro <carlosg at gnome.org>
1166
1167 2005-11-27  Robert McQueen  <robot101@debian.org>
1168
1169         * python/dbus_bindings.pyx: Repair my previous commit which reverted
1170         part of the preceding one. Oops. Merge patch by Johan Hedberg
1171         <johan.hedberg@nokia.com> to fix marshalling of 16-bit integer values
1172         on big-endian platforms.
1173
1174         * test/python/test-client.py: Add some 16-bit integers to the test
1175         values.
1176
1177 2005-11-27  Carlos Garcia Campos  <carlosgc@gnome.org>
1178
1179         * glib/dbus-gobject.c: Append a GValue instead of a basic type in
1180         method return message for property getters
1181
1182 2005-11-27  Robert McQueen  <robot101@debian.org>
1183
1184         * python/dbus_bindings.pyx: Fix a bug where doing a strict append
1185         with type v of an instance of dbus.Variant(foo, type='x') caused
1186         it to be boxed twice before sending over the bus.
1187
1188         * python/dbus_bindings.pyx, python/service.py,
1189         test/python/test-client.py: Update the constants for the new
1190         request_name flags, and update comments/test cases now that queueing
1191         is the default action.
1192
1193 2005-11-22  John (J5) Palmieri  <johnp@redhat.com>
1194
1195         * configure.in:
1196         - Change version to 0.60 for impending release
1197         - upped the sonames because of ABI and API breakage
1198
1199 2005-11-22  John (J5) Palmieri  <johnp@redhat.com>
1200
1201         * configure.in: Add test/name-test/Makefile to the generated
1202         Makefile list
1203
1204         * dbus/dbus-shared.h (#define DBUS_NAME_FLAG_ALLOW_REPLACEMENT):
1205         New flag which replaces DBUS_NAME_FLAG_PROHIBIT_REPLACEMENT
1206         (#define DBUS_NAME_FLAG_DO_NOT_QUEUE): New flag for specifying
1207         not to queue an ower if it can't be the primary owner
1208
1209         * bus/bus.h: Add new internal BusOwner struct
1210
1211         * bus/driver.c (bus_driver_handle_hello): Send flags (0 for default)
1212         to bus_registry_ensure and don't set the prohibit_replacement flag
1213         since they are now set per BusOwner and not per name.
1214         (bus_driver_handle_list_queued_owners): bus method (ListQueuedOwners) 
1215         that returns the list of connections in a name's connection queue
1216         
1217         * bus/services.c (struct BusService): remove prohibit_replacement field
1218         (struct BusOwner): new struct for keeping track of queued connections
1219         and their associated flags for the queue
1220         (struct BusRegistry): add a BusOwner memory pool
1221         (bus_registry_new): initialize the BusOwner memory pool
1222         (bus_registry_unref): free the BusOwner memory pool
1223         (_bus_service_find_owner_link): new internal method for
1224         searching the queue for a specific connection
1225         (bus_owner_set_flags): new method for adding setting the flags on a
1226         bus owner
1227         (bus_owner_new): new method that creates a BusOwner object from the
1228         pool and sets its flags
1229         (bus_owner_ref, bus_owner_unref): ref counting for BusOwner objects
1230         (bus_registry_ensure): Add the flags parameter
1231         (bus_registry_acquire_service): Switch from using raw connections to
1232         using the BusOwner struct
1233         Add new state machine for dealing with the new set of flags
1234         (bus_registry_set_service_context_table, struct OwnershipCancelData, 
1235         cancel_ownership, free_ownership_cancel_data, 
1236         add_cancel_ownership_to_transaction, struct OwnershipRestoreData, 
1237         restore_ownership, free_ownership_restore_data, 
1238         add_restore_ownership_to_transaction): Switch to using BusOwner 
1239         instead of raw connections
1240         (bus_service_add_owner): Add flags parameter
1241         Switch to using BusOwner instead of raw connections
1242         Add state machine for dealing with the new set of flags
1243         (bus_service_swap_owner): Swaps the first and second owners in the
1244         queue.  Used to make sure proper signals are sent when a service looses 
1245         or gains primary ownership.  We never insert an owner at the top of the
1246         queue.  Instead we insert it in the second position and then swap.
1247         (bus_service_remove_owner): Remove the owner from the queue sending
1248         out the NameLost and NameOwnerChanged signals if the we were the 
1249         primary owner
1250         (bus_service_get_primary_owners_connection): New method that extracts
1251         the connection from the primary owner
1252         (bus_service_get_primary_owner): Returns the BusOwner instead of the 
1253         connection
1254         (bus_service_get_allow_replacement): Changed from the old 
1255         bus_service_get_prohibit_replacement method.  Checks the flags of the 
1256         primary owner and returns if it can be replaced or not
1257         (bus_service_set_prohibit_replacement): removed
1258         (bus_service_has_owner): returns TRUE if and owner with
1259         the specified connection exists in the queue
1260         
1261         * dbus/dbus-bus.c (dbus_bus_connection_get_unique_name): New helper
1262         method that only compiles if tests are enabled.  Allows us to get the 
1263         unique name of a connection so we can check it against the queue when
1264         doing regression tests
1265
1266         * bus/activation.c (bus_activation_send_pending_auto_activate),
1267         bus/dispatch.c (bus_dispatch),  
1268         bus/driver.c (bus_driver_handle_get_service_owner, 
1269         bus_driver_handle_get_connection_unix_user, 
1270         bus_driver_handle_get_connection_unix_process_id,
1271         bus_driver_handle_get_connection_selinux_security_context),
1272         bus/signals.c (connection_is_primary_owner): 
1273         use bus_service_get_primary_owners_connection instead of
1274         bus_service_get_primary_owner
1275
1276         * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket, 
1277         _dbus_listen_unix_socket): Calculate the length of the socket
1278         path and use that instead of using a fixed length which was
1279         causing socket names to contain many trailing Nul bytes.
1280
1281         * dbus/dbus-glib-lowlevel.h, glib/dbus-gobject.c
1282         (dbus_g_method_get_sender): New method for extracting the sender 
1283         from a DBusGMethodInvocation
1284         (dbus_g_method_return_get_reply): changed name to 
1285         dbus_g_method_get_reply
1286         (dbus_g_method_return_send_reply): changed name to
1287         dbus_g_method_send reply
1288
1289         * doc/dbus-specification.xml: New docs that describe how the new
1290         queueing system works and talks about the changes to the how
1291         we specify socket names
1292
1293         * glib/examples/example-service.c, 
1294         glib/examples/example-signal-emitter.c,
1295         glib/examples/statemachine/statemachine-server.c:
1296         Changed the RequestName flags to the new system
1297
1298         * test/name-test/ (test-names.c, run-test.sh, Makefile.am): New
1299         regression test suite for testing various states of the new
1300         queueing system
1301         
1302 2005-11-15  Robert McQueen  <robot101@debian.org>
1303
1304         * dbus/dbus-glib-lowlevel.h, glib/dbus-gobject.c: Patch from Rob
1305         Taylor to add two methods, dbus_g_method_return_get_reply and
1306         dbus_g_method_return_send_reply, to allow you to get the reply
1307         message from a DBusGMethodInvocation, append arbitrary stuff to it,
1308         and send it. The GLib bindings can't marshal a return value of
1309         something like a(s) if the array is empty - ultimately they should be
1310         made to heed the signature of the out arguments as the Python bindings
1311         now can, but this is a workable interim solution which might have
1312         other applications.
1313
1314 2005-11-15  Robert McQueen  <robot101@debian.org>
1315
1316         * bus/driver.c, bus/services.c, bus/services.h: Add a ReleaseName
1317         method to org.freedesktop.DBus to release a bus name or give up
1318         waiting in the queue for it.
1319
1320         * dbus/dbus-bus.c, dbus/dbus-bus.h, dbus/dbus-shared.h: Add a
1321         dbus_bus_release_name method to send the ReleaseName method calls.
1322         Add constants for the return values to dbus/dbus-shared.h.
1323
1324         * doc/dbus-specification.xml: Document the new ReleaseName method
1325         in the specification.
1326
1327         * python/dbus_bindings.pyx: Add a low-level python binding for the
1328         release name method.
1329
1330         * python/exceptions.py, python/service.py: Make freeing BusName
1331         objects release the name. Add a NameExistsException, and fix a
1332         bug with creating UnknownMethodException.
1333
1334         * test/python/test-client.py: Add tests for freeing BusName
1335         objects causing names to be released.
1336
1337 2005-11-14  Robert McQueen  <robot101@debian.org>
1338
1339         * python/service.py: Include the traceback in the error reply when we
1340         send an exception over the bus. _BEST_ _PATCH_ _EVER_
1341
1342 2005-11-14  David Zeuthen  <davidz@redhat.com>
1343
1344         Patch from Timo Hoenig <thoenig@suse.de>.
1345
1346         * bus/bus.c: I've recently investigated why the automatic reload
1347         of configuration files does not work as expected.
1348
1349         Currently, reloading configuration files does only work when
1350         running dbus-daemon with --nodaemon.  If we are running as daemon
1351         we're hitting a dnotify bug once we fork the process.
1352
1353         We're initializing the dnotify fds before calling fork().  Once
1354         the child process forked it does still have the fds (and they
1355         still show up in /proc/`pidof dbus-daemon`/fd/) but we're not
1356         getting SIGIO as changes are made to the configuration files.
1357
1358         The attached patch moves the initialization of the dnotify fds to
1359         process_config_postinit().  This is safe for all current code
1360         paths and solves the dnotify disfunction.  If we're running
1361         dbus-daemon as daemon the fds for dnotify are now being
1362         initialized after fork() for the child process.
1363
1364         * configure.in: The current configure.in check for dnotify probes
1365         'x$target_os' for being 'xlinux-gnu'.  I've changed the check to
1366         match for 'xlinux', too. Additionally I have adapted the configure
1367         option's style to match with the others.
1368
1369 2005-11-14  Robert McQueen  <robot101@debian.org>
1370
1371         * python/decorators.py, python/service.py: Add a new argument to the
1372         dbus.service.method decorator called sender_keyword, which if set,
1373         specifies the name of an argument which will be provided the bus
1374         name of the method caller.
1375
1376         * test/python/test-client.py, test/python/test-service.py: Add a
1377         method and test to check the sender_keyword functionality.
1378
1379 2005-11-07  John (J5) Palmieri  <johnp@redhat.com>
1380
1381         * bus/driver.c (bus_driver_handle_reload_config): Make sure we send an 
1382         empty reply so blocking calls don't block forever (Patch from Sjoerd 
1383         Simons <sjoerd at luon.net>)
1384
1385         * AUTHORS: Add Robert McQueen for his work on the Python
1386         Bindings and other parts of D-Bus
1387
1388 2005-11-07  Robert McQueen  <robot101@debian.org>
1389
1390         * python/decorators.py: Change emit_signal function to use the
1391         signature annotation of the signal when marhsalling the arguments from
1392         the service. Fix a bug where the code checking signature length
1393         against argument length referenced the wrong variable.
1394
1395         * python/introspect_parser.py: Avoid adding the type signature of
1396         signal arguments to any methods which occur after them in the
1397         introspection data (!) by making the parser a little more careful
1398         about its current state.
1399
1400         * python/service.py: Remove debug prints from last commit (again :D).
1401
1402         * test/python/test-client.py, test/python/test-service.py: Add test
1403         signals with signature decorators to test the strict marshalling code
1404         gives errors at the right time. Could do with checking the signals
1405         actually get emitted too, given that the test does nothing with
1406         signals at the moment...
1407
1408 2005-11-07  Robert McQueen  <robot101@debian.org>
1409
1410         * python/_dbus.py: Add WeakReferenceDictionary cache of dbus.Bus
1411         instances to stop madness of creating new instances representing
1412         the same bus connection all the time, rendering any tracking of
1413         match rules and bus names quite meaningless. Caught a bug where
1414         the private argument to SessionBus() and friends was being passed
1415         in as use_default_mainloop by mistake. Still some problems with
1416         multiple dbus_binding.Connection instances representing the same
1417         low-level connection (eg when you use both SessionBus() and
1418         StarterBus() in same process), but it's a lot better now than it
1419         was.
1420
1421         * python/dbus_bindings.pyx: Add constants with the return values
1422         for bus_request_name().
1423
1424         * python/service.py: Store bus name instances in a per-dbus.Bus cache
1425         and retrieve the same instances for the same name, so deletion can be
1426         done with refcounting. Also now throws some kind of error if you
1427         don't actually get the name you requested, unlike previously...
1428
1429         * test/python/test-client.py: Add tests for instance caching of buses
1430         and bus name objects.
1431
1432 2005-11-04  Robert McQueen  <robot101@debian.org>
1433
1434         * python/dbus_bindings.pyx, test/python/test-client.py: Fix
1435         marshalling of boolean values. Add some booleans to the values in
1436         the test client.
1437
1438         * python/decorators.py, python/service.py: Add an 'async_callbacks'
1439         argument to the dbus.service.method decorator, which allows you to
1440         name arguments to take two callback functions for replying with
1441         return values or an exception.
1442
1443         * test/python/test-client.py, test/python/test-service.py: Add test
1444         case using asynchronous method reply functions, both return values and
1445         errors, and from within both the function itself and from a mainloop
1446         callback.
1447
1448         * python/decorators.py, python/service.py: Perform checking that the
1449         number of method/signal arguments matches the number of types in the
1450         signature at class loading time, not when you first introspect the
1451         class.
1452
1453         * python/service.py: Remove debug print left by the last commit.
1454
1455 2005-11-03  Robert McQueen  <robot101@debian.org>
1456
1457         * python/service.py: Heavy refactoring of method invocation, with
1458         hopefully no effect on functionality. Nuked _dispatch_dbus_method_call
1459         in favour of a new _message_cb that uses seperate functions for
1460         looking up the method to call, marshalling the return values, and
1461         sending exceptions as errors, and is easier to follow as a
1462         consequence.  Fixes some corner cases about returning things that
1463         don't match your declared out_signature, allows exceptions to define
1464         _dbus_error_name and have it be sent over the bus as the error name,
1465         and paves the way for cool stuff like heeding the message no reply
1466         flag, asynchronous method implementations, informing the method of the
1467         sender, and including backtraces in the error messages.
1468
1469         * test/python/test-client.py: Catch and print exceptions thrown in the
1470         async callback tests, rather than passing them to the low-level
1471         bindings to be ignored in a noisy and frustrating manner.
1472
1473 2005-11-03  Robert McQueen  <robot101@debian.org>
1474
1475         * python/_dbus.py, python/proxies.py, python/service.py: Add __repr__
1476         functions to dbus.Bus, dbus.service.BusName and dbus.service.Object,
1477         tweak others to be consistent.
1478
1479         * test/python/test-client.py: Tweak output of testInheritance.
1480
1481 2005-10-29  Robert McQueen  <robot101@debian.org>
1482
1483         * python/service.py: Major changes to allow multiple inheritance
1484         from classes that define D-Bus interfaces:
1485         
1486          1. Create a new Interface class which is the parent class of
1487             Object, and make the ObjectType metaclass into InterfaceType.
1488         
1489          2. Patch written with Rob Taylor to replace use of method_vtable
1490             with code that walks the class's __MRO__ (method resolution order)
1491             to behave like Python does when invoking methods and allow
1492             overriding as you'd expect. Code is quite tricky because
1493             we have to find two methods, the one to invoke which has the
1494             right name and isn't decorated with the /wrong/ interface,
1495             and the one to pick up the signatures from which is decorated
1496             with the right interface.
1497         
1498             The same caveats apply as to normal multiple inheritance -
1499             this has undefined behaviour if you try and inherit from two
1500             classes that define a method with the same name but are
1501             decorated with different interfaces. You should decorate
1502             your overriding method with the interface you want.
1503         
1504          3. Replace grungy introspection XML generation code in the metaclass
1505             with dictionaries that cope correctly with multiple inheritance
1506             and the overriding of methods. This also uses the signature
1507             decorations to provide correct introspection data, including
1508             the debut appearance of the types of your return values. :D
1509
1510         * test/python/test-client.py, test/python/test-service.py: Add a test
1511         case to try invoking an method that overrides one inherited from a
1512         D-Bus interface class.
1513
1514 2005-10-29  Robert McQueen  <robot101@debian.org>
1515
1516         * python/dbus_bindings.pyx: Tweak 'raise AssertionError' to assert().
1517         Add checking for the end of struct character when marshalling a
1518         struct in MessageIter.append_strict.
1519
1520         * python/examples/example-service.py,
1521         python/examples/gconf-proxy-service.py,
1522         python/examples/gconf-proxy-service2.py: Update to use gobject
1523         mainloop directly rather than appearing to depend on gtk.
1524
1525         * python/test/test-client.py, python/test/test-server.py: Remove
1526         obsolete and broken test scripts for old bindings. We have up to date
1527         and working tests in test/python/.
1528
1529 2005-10-29  Robert McQueen  <robot101@debian.org>
1530
1531         * python/decorators.py: Add optional arguments to the method and
1532         signal decorators to allow you to specify the signature of arguments
1533         and return values. Preserve the doc strings of signal functions in the
1534         decorated version, for pydoc and friends.
1535
1536         * python/dbus_bindings.pyx, python/proxies.py: Replace the
1537         parse_signature_block function with an iterable dbus.Signature()
1538         type. Fix a bug in MessageIter.append_strict where you could append
1539         anything by claiming it was a string.
1540
1541         * python/service.py: Use the out_signature decoration on methods to
1542         marshal return values, meaning you no longer require dbus.Array()
1543         or dbus.Dictionary() to indicate the type when returning empty
1544         arrays or dictionaries. Fix a bug where exceptions which are defined
1545         in __main__ are not turned into error replies.
1546
1547         * test/python/test-client.py, test/python/test-service.py: Add test
1548         for correct marshalling of return values according to out_signature.
1549         Fix a bug in the async call test where the error_handler is missing a
1550         self argument.
1551
1552 2005-10-29  Robert McQueen  <robot101@debian.org>
1553
1554         * glib/Makefile.am, glib/examples/Makefile.am,
1555         glib/examples/statemachine/Makefile.am: Merge patch from Ubuntu by
1556         Daniel Stone to replace explicit calls to libtool with $(LIBTOOL).
1557
1558         * test/python/.cvsignore: Add run-with-tmp-session-bus.conf.
1559
1560         * tools/dbus-monitor.1, tools/dbus-monitor.c: Merge dbus-monitor patch
1561         from Ubuntu by Daniel Silverstone to allow specifying match rules on
1562         the command line.
1563
1564 2005-10-27  Ross Burton  <ross@openedhand.com>
1565
1566         * dbus/dbus-marshal-header.c:
1567         Remove dead code.
1568
1569         * glib/dbus-gobject.c:
1570         Stop compiler warning.
1571
1572 2005-10-25  Ross Burton  <ross@openedhand.com>
1573
1574         * dbus/dbus-auth.c:
1575         * dbus/dbus-server-unix.c:
1576         * dbus/dbus-transport-unix.c:
1577         * glib/dbus-gmain.c:
1578         * glib/dbus-gobject.c:
1579         Add some const keywords.
1580
1581 2005-10-25  Ross Burton  <ross@openedhand.com>
1582
1583         * doc/dbus-specification.xml:
1584         Document the NoReply annotation.
1585
1586         * glib/dbus-binding-tool-glib.h:
1587         * glib/dbus-binding-tool-glib.c:
1588         Respect the NoReply annotation.
1589
1590 2005-10-24  Robert McQueen <robot101@debian.org>
1591
1592         * python/dbus_bindings.pyx (String, MessageIter): make D-Bus strings
1593         derive from unicode instead of str, and encode/decode UTF-8 when
1594         marshalling/unmarshalling bus messages
1595
1596         * python/introspect_parser.py: encode introspection data as UTF-8
1597         before passing the buffer into libxml2
1598
1599         * test/python/test-client.py: add unicode test strings
1600
1601         * test/data/valid-service-files/.cvsignore, test/python/.cvsignore:
1602         ignore generated python test files
1603
1604 2005-10-17  John (J5) Palmieri  <johnp@redhat.com>
1605
1606         * glib/dbus-gvalue-utils.c (hash_free_from_gtype): handle gdouble
1607         and G_TYPE_VALUE_ARRAY (DBUS_TYPE_STRUCT)
1608         (gvalue_from_hash_value, hash_value_from_gvalue): handle gdouble
1609
1610         * glib/dbus-gvalue.c (dbus_gvalue_to_signature): add missing
1611         DBUS_STRUCT_BEGIN_CHAR and DBUS_STRUCT_END_CHAR charaters
1612         when constructing struct signatures
1613
1614         * python/_dbus.py (Bus): handle private connections using the
1615         private keyword in the constructor. defaults to private=False
1616         (Bus::close): new method to close a connection to the bus
1617
1618         * python/dbus_bindings.pyx (Connection::close): renamed method
1619         was previously called disconnect
1620         (bus_get): now supports getting a private connection
1621
1622         * python/proxies.py (ProxyMethod::__call__): check if ignore_reply
1623         keyword is set to True.  if it is, execute the method without waiting
1624         for a reply
1625         (ProxyObject::_introspect_execute_queue): new method for executing
1626         all the pending methods that were waiting for the introspect to
1627         finish.  this is called when introspect either succeeds or fails
1628         (ProxyObject::_introspect_error_handler): call queued methods
1629
1630 2005-10-14  John (J5) Palmieri  <johnp@redhat.com>
1631
1632         * python/dbus_bindings.pyx (MessageIter::append_strict): check for
1633         STRUCT_BEGIN not TYPE_STRUCT in indicate we are marshalling a struct
1634
1635         * python/service.py (Object::_message_cb): handle exceptions correctly
1636         by sending them over the wire to the calling app.  This makes sure
1637         the client returns immediately instead of waiting the 15 seconds to
1638         timeout.
1639
1640         * test/python/test-client.py (TestDBusBindings::testBenchmarkIntrospect): 
1641         Add a test to benchmark how long it takes to introspect a service and 
1642         call a method which returns a large element (pretty fast)
1643
1644         * test/python/test-service.py (TestObject::GetComplexArray): new test 
1645         method which pushes a lot of data
1646
1647 2005-10-13  John (J5) Palmieri  <johnp@redhat.com>
1648
1649         * python/service.py(ObjectType::_reflect_on_signal, _reflect_on_method):        
1650         reclaim memory outside of the loop and use del istead of just setting
1651         the key to None
1652
1653 2005-10-13  John (J5) Palmieri  <johnp@redhat.com>
1654
1655         * python/service.py (ObjectType::_reflect_on_signal): Always close
1656         signal tag even when there are no arguments
1657
1658 2005-10-13  John (J5) Palmieri  <johnp@redhat.com>
1659
1660         * configure.in: Set mono, mono-docs and Qt3 to default
1661         to no instead of auto when building.  These bindings do not
1662         have full time maintainers and will not be supported for the
1663         1.0 release.
1664
1665 2005-10-12  John (J5) Palmieri  <johnp@redhat.com>
1666
1667         patches from Michael Krivoruchko <misha at sun.com>: 
1668         
1669         * dbus/dbus-connection.c (_dbus_connection_queue_received_message_link,
1670         _dbus_connection_message_sent, 
1671         _dbus_connection_send_preallocated_unlocked_no_update, 
1672         _dbus_connection_pop_message_link_unlocked): handle the case when path 
1673         is NULL when calling _dbus_verbose
1674
1675         * configure.in: check for functions getpeerucred and getpeereid
1676
1677         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): provides 
1678         support of auth EXTERNAL on Solaris 10+ (getpeerucred), FreeBSD 4.6+, 
1679         OpenBSD 3.0+ and FreeBSD 5.0+ as well as MacOSX 10.2+ (getpeereid). 
1680         Patch was only tested on Solaris 10 x86 so it might be issues
1681         with other platforms (i.e. BSDs and MacOSX)
1682         
1683
1684 2005-10-05  John (J5) Palmieri  <johnp@redhat.com>
1685
1686         * glib/dbus-gvalue.c (marshal_variant): call _dbus_gvalue_marshal 
1687         instead of marshal basic so we can handle recursive types in a variant
1688
1689         * test/glib/test-dbus-glib.c: Add test for marshaling recurive types
1690         in variants
1691
1692         * test/glib/test-service-glib.c, test-service-glib.xml
1693         (my_object_echo_variant [EchoVariant], 
1694         my_object_process_variant_of_array_of_ints123
1695         [ProcessVariantOfArrayOfInts123]): 
1696         Add two test methods
1697
1698         * python/introspect_parser.py: New module for parsing introspect
1699         data.
1700
1701         * python/dbus_bindings.pyx:
1702         (various places): when throwing errors fix to use errormsg instead 
1703         of message local variable because Pyrex can get confused with other 
1704         message variables (initial patch by Robert McQueen 
1705         <robert.mcqueen at collabora.co.uk>)
1706         (MessageIter::parse_signature_block): new method for getting the next
1707         block in a signiture.
1708         (MessageIter::append_strict): new method for appending values strictly
1709         using the passed in signature instead of guessing at the type
1710         (MessageItter:: append_dict, append_struct, append_array): use 
1711         signatures to marshal children if the signature is available
1712         
1713         * python/exceptions.py (IntrospectionParserException): new exception
1714
1715         * python/proxies.py (ProxyMethod::__call__): Marshal args with 
1716         introspected signatures if available, else we fall back to the
1717         old way of doing things.
1718         (ProxyObject::_introspect_reply_handler ): parse introspection data
1719         
1720         * python/service.py (ObjectType::_reflect_on_method): Properly
1721         terminate <method> if there are no args in the reflection data
1722
1723         * test/python/test-client.py: add tests for talking with the GLib
1724         test server.  This gives us better coverage for introspection since
1725         python to python will always generate arguments as variants.  It also
1726         allows us to test the robustness of the GLib bindings and interlanguage
1727         communications.
1728
1729         
1730 2005-10-03  John (J5) Palmieri  <johnp@redhat.com>
1731
1732         * bus/driver.c (bus_driver_handle_introspect): Add signals
1733         to the introspect data. (patch from Daniel P. Berrange 
1734         <dan at berrange.com>)
1735
1736         * bus/dispatch.c (check_existent_ping): Add testcase for Ping
1737         
1738         * dbus/dbus-connection.c (_dbus_connection_peer_filter,
1739         _dbus_connection_run_builtin_filters): Changed these to
1740         be unlock_no_update functions and call 
1741         _dbus_connection_send_unlocked_no_update instead of
1742         dbus_connection_send to avoid locking errors.
1743         
1744         * doc/TODO: Removed the make Ping test TODO
1745         
1746 2005-09-26  John (J5) Palmieri  <johnp@redhat.com>
1747
1748         * dbus/Python.pyx: Fixed memory leaks when throwing errors.
1749         We now copy the message from a DBusError and then free 
1750         the error object befor throwing the error
1751
1752         * glib/dbus-glib-tool.c: removed extra comma at the end of the
1753         DBusBindingOutputMode enum which was causing a warning.
1754         #include <time.h> so using time_t is explicitly defined
1755
1756 2005-09-26  John (J5) Palmieri  <johnp@redhat.com>
1757
1758         * Integrate patches from Lennart Poettering <mzsqb at 0pointer.de>:
1759         - dbus/dbus-bus.c
1760         (internal_bus_get): new method that take over the heavy lifting
1761         of dbus_bus_get and adds the ability to get a private connection
1762         to the bus
1763         (dbus_bus_get): wrapper to internal_bus_get that provides the same
1764         interface as in previous versions
1765         (dbus_bus_get_private): new method that is a wrapper to 
1766         internal_bus_get to get a private connection to the bus
1767
1768         - dbus/dbus-bus.h
1769         (dbus_bus_get_private): add as a public libdbus interface
1770
1771         - dbus-1.pc.in: output system_bus_default_address and 
1772         sysconfdir variables so apps can use them when compiling
1773
1774 2005-09-23  Harald Fernengel  <harry@kdevelop.org>
1775         * dbus/qt: New Qt bindings
1776
1777 2005-09-12  Waldo Bastian  <bastian@kde.org>
1778
1779         * dbus/dbus-marshal-validate.c,
1780         doc/dbus-specification.xml, test/Makefile.am,
1781         test/test-names.c: allow hyphens in bus names.
1782
1783 2005-09-11  Mark McLoughlin  <mark@skynet.ie>
1784
1785         * test/data/auth/fallback.auth-script: we don't
1786         retry the EXTERNAL method when we know its going
1787         to fail anymore.
1788
1789 2005-09-11  Mark McLoughlin  <mark@skynet.ie>
1790
1791         * dbus/dbus-connection-internal.h: rename
1792         (add|remove|toggle)_(watch|timeout) to unlocked()
1793         
1794         * dbus/dbus-connection.c: ditto.
1795         
1796         * dbus/dbus-timeout.c, dbus/dbus-transport-unix.c:
1797         Update some callers for the renaming.
1798
1799 2005-09-10  Mark McLoughlin  <mark@skynet.ie>
1800
1801         * dbus/dbus-auth.c: (record_mechanisms): don't
1802         retry the first auth mechanism because we know
1803         we're just going to get rejected again.
1804         
1805         * dbus/dbus-keyring.c: (_dbus_keyring_reload):
1806         Fix thinko ... and what a nasty little bugger to
1807         track down you were ...
1808
1809         * dbus/dbus-connection.c:
1810         (_dbus_connection_add_watch),
1811         (_dbus_connection_remove_watch): add note about
1812         these needing the connection to be locked.
1813         (_dbus_connection_get_dispatch_status_unlocked):
1814         set status to DATA_REMAINS when we queue the
1815         disconnected message.
1816         
1817         * bus/dispatch.c:
1818         (bus_dispatch): fix warning.
1819         (check_existent_service_no_auto_start):
1820         Expect ChildSignaled error too.
1821         (check_existent_hello_from_self): fix another
1822         couple of warnings.
1823         
1824 2005-09-08  Joe Shaw  <joeshaw@novell.com>
1825
1826         Patches from James Willcox <snorp@snorp.net>
1827
1828         * mono/Makefile.am: Add Int16.cs and UInt16.cs
1829
1830         * mono/DBusType/Array.cs: Handle multidimensional arrays, and
1831         support array "out" parameters.
1832
1833         * mono/DBusType/Int16.cs, mono/DBusType/UInt16.cs: New files,
1834         for 16-bit int support.
1835
1836 2005-09-06  John (J5) Palmieri  <johnp@redhat.com>
1837
1838         * Released 0.50
1839
1840         * Patch from Steve Grubb:
1841         - bus/activation.c (bus_activation_service_reload_test): clean up
1842         some indentation
1843         - dbus/dbus-keyring.c (_dbus_keyring_reload): fix conditional 
1844         - dbus/dbus-message-factory.c (generate_special): fix a couple of
1845         buffer overflows in the test suite.  This is non critical because
1846         it can not be exploited and this code is only run when doing a 
1847         make check.
1848
1849         * Patch from Yaakov Selkowitz: Build fixes for Cygwin
1850         - configure.in: Don't check and link against kdecore, only qt headers
1851         - dbus/Makefile.am: Add -no-undefined to libdbus_1_la_LDFLAGS
1852         - gcj/org/freedesktop/dbus/Makefile.am:
1853         add libdbus_gcj_1_la_LDFLAGS = -no-undefined
1854         - glib/Makefile.am: Add -no-undefined to libdbus_glib_1_la_LDFLAGS
1855         and $(DBUS_GLIB_LIBS) to dbus_binding_tool_LDADD
1856         - qt/Makefile.am: Add -no-undefined to libdbus_qt_1_la_LDFLAGS
1857         - tools/Makefile.am: Add platform extentions to binaries 
1858         (i.e. .exe on windows)
1859
1860         * configure.in: 
1861         - Make it so if no suitable version of python is found we only 
1862         disable building python instead of exiting the configure script
1863         - Require version 2.4 of glib for glib bindings
1864         - Up version to 0.50
1865
1866         * python/__init__.py: Sync version with libdbus to (0,50,0)
1867         
1868 2005-09-05  Olivier Andrieu  <oliv__a@users.sourceforge.net>
1869
1870         * dbus/dbus-object-tree.c (find_subtree_recurse):
1871         a couple of optimizations (bug #710):
1872         - do a binary search in the tree
1873         - insert a new child at the right place directly, no need for
1874           qsort anymore
1875         - do the "double alloc" thing when allocating children
1876
1877 2005-08-31  John (J5) Palmieri  <johnp@redhat.com>
1878
1879         * python/Makefile.am: Break on pyrexc errors instead of ignoring them
1880
1881         * python/dbus_bindings.pyx: Memory management foo
1882         (global): remove hacky _user_data_references global list
1883         (GIL_safe_cunregister_function_handler): userdata now stuffed into
1884         tuples. Unref user_data
1885         (GIL_safe_cmessage_function_handler): userdata now stuffed into tuples
1886         (Connection::__del__): Remove and replace with __dealloc__ method
1887         (Connection::add_filter): Stuff user_data into a tuple.  Use Py_INCREF
1888         to keep tuple from being deallocated instead of the global var hack
1889         (Connection::register_object_path): Stuff user_data into a tuple.
1890         Use Py_INCREF to keep tuple from being deallocated instead of the 
1891         global var hack
1892         (Connection::register_fallback): Stuff user_data into a tuple.
1893         Use Py_INCREF to keep tuple from being deallocated instead of the 
1894         global var hack
1895         (GIL_safe_pending_call_notification): Don't unref the message
1896         because it gets unreffed when going out of scope.  Py_XDECREF
1897         the user_data
1898         (PendingCall::__del__): Remove and replace with __dealloc__ method
1899         (PendingCall::set_notify): ref the pending call because we will
1900         need it to stick around for when the notify callback gets called
1901         (Message::__del__): Remove and replace with __dealloc__ method
1902
1903         * python/dbus_glib_bindings.pyx (init_gthreads): Changed to 
1904         gthreads_init to match up with the dbus call
1905
1906         * python/glib.py (init_threads): Changed to threads_init to match
1907         up with gobject.threads_init().  init_threads is kept for backwards
1908         compat but will most likely be deprecated in the future
1909
1910         * test/python/test-client.py: 
1911         - revamp to use Python's unittest functionality
1912         - add async call tests
1913         - setup threads in glib and dbus so we make sure locks are working
1914         
1915 2005-08-30  John (J5) Palmieri  <johnp@redhat.com>
1916
1917         * python/dbus_bindings.pyx 
1918         (_pending_call_notification, cunregister_function_handler, 
1919         cmessage_function_handler): All callback functions have been rearranged 
1920         to workaround a bug in Pyrex when working with the GIL which is Python's 
1921         global lock when dealing with threads.  They have been split into
1922         a wrapper function (which assumes the name of the old function) and
1923         a _GIL_safe_<function name> function which contains the functionality
1924         of the old function.  This ensures that Pyrex does not write code
1925         the lock is released.
1926         
1927
1928 2005-08-30  John (J5) Palmieri  <johnp@redhat.com>
1929
1930         * python/dbus_bindings.pyx (_pending_call_notification): Obtain the
1931         GIL global lock when calling back into Python
1932
1933 2005-08-29  John (J5) Palmieri  <johnp@redhat.com>
1934
1935         * Release 0.36.2
1936
1937         * Add Havoc's patch that never got applied to HEAD (Bug #2436):
1938
1939         * bus/policy.c (bus_policy_allow_user): change default "user is
1940         allowed" to be "user has same uid as the bus itself"; any
1941         allow/deny rules will override.
1942
1943         * bus/session.conf.in: don't allow all users, since now by default
1944         the user that ran the bus can connect.
1945
1946 2005-08-26  Colin Walters  <walters@verbum.org>
1947
1948         * tools/dbus-print-message.c (print_message): Flush stdout
1949         after printing a message, so that redirecting to a file, then
1950         hitting Ctrl-C works.
1951
1952 2005-08-25  John (J5) Palmieri  <johnp@redhat.com>
1953
1954         * python/dbus_bindings.pyx: Tracked down a major memleak and fixed it
1955         (EmptyMessage): new class that subclasses Message.  This is a workaround
1956         to a Pyrex bug that fails to call __del__ when the Message object goes out
1957         of scope.  For some reason subclassing Message fixes this bug
1958         (Bus::send_with_reply_and_block): use EmptyMessage instead of Message
1959         - s/Message(_create=0)/EmptyMessage everywhere else
1960         
1961         * test/python/test-{server|client}.py: add the python/.libs directory
1962         to the lookup path so dbus_bindings and dbus_glib_bindings don't
1963         get picked up from the system
1964
1965 2005-08-25  Colin Walters  <walters@verbum.org>
1966
1967         * glib/dbus-gproxy.c (dbus_g_proxy_call): Doc update, thanks
1968         to Ryan Lortie for the suggestion.
1969
1970 2005-08-24  John (J5) Palmieri  <johnp@redhat.com>
1971
1972         * test/python: Add python regression test
1973
1974         * configure.in: Add test/python/Makefile
1975
1976         * test/Makefile.am: Add the python directory to SUBDIRS
1977
1978 2005-08-24  John (J5) Palmieri  <johnp@redhat.com>
1979
1980         * Release 0.36.1
1981
1982         * python/_dbus.py: 
1983         (Interface::connect_to_signal): propigate keywords for match on args
1984         (Bus::add_signal_receiver): Fix typo s/dbus_inteface/dbus_interface
1985
1986         * python/proxies.py (ProxyObject::connect_to_signal):
1987         propigate keywords for match on args
1988
1989         * Makefile.am: point everything to pyexecdir since python borks
1990         on multilib
1991
1992 2005-08-23  John (J5) Palmieri  <johnp@redhat.com>
1993
1994         * Release 0.36
1995
1996 2005-08-23  Colin Walters  <walters@verbum.org>
1997
1998         * test/glib/Makefile.am: Don't multiply-define EXTRA_DIST.
1999
2000 2005-08-23  John (J5) Palmieri  <johnp@redhat.com>
2001
2002         * python/dbus_glib_bindings.pyx: reorder imports and c definitions
2003         to fix some wranings. We now use dbus_bindings.DBusConnection instead
2004         of defining DBusConnection ourselves.
2005
2006 2005-08-18  John (J5) Palmieri  <johnp@redhat.com>
2007
2008         * python/dbus.pth: New path file to fix up problems when installing
2009         c libraries to lib64 and python files to lib.
2010
2011         * python/Makefile.am: install dbus.pth in the correct spot
2012
2013 2005-08-17  John (J5) Palmieri  <johnp@redhat.com>
2014         * ChangeLog: clean up my last entry a bit
2015
2016         * doc/introspect.xsl: New stylesheet for converting introspection data
2017         into browser renderable xhtml. Contributed by Lennart Poettering.
2018
2019         * doc/introspect.dtd: Fixups in the introspect format from Lennart
2020         Poettering.
2021
2022         * doc/dbus-tutorial.xml: 
2023         - Add Colin Walter to the Authors section for authoring the GLib
2024         section
2025         - Add descriptions of the new signature and type functionality
2026         in the Python complex type mapping section
2027         - Add a sidenote on the new args matching functionality in 
2028         the Python bindings
2029         - Fixed up some of the examples to use the gobject.MainLoop
2030         instead of gtk.main
2031         
2032         * python/_dbus.py:
2033         (Bus::_create_args_dict): New. Converts a hash of arg matches
2034         to a more useable format
2035         (Bus::add_signal_receiver): add a **keywords parameter for catching
2036         arg match parameters
2037         (Bus::remove_signal_receiver): add a **keywords parameter for catching
2038         arg match parameters
2039         
2040         * python/matchrules.py:
2041         (MatchTree::exec_matches): Check for arg matches
2042         (SignalMatchRule::add_args_match): New method
2043         (SignalMatchRule::execute): Added args_list parameter as an optimization
2044         so we don't have to marshal the args more than once
2045         (SignalMatchRule::match_args_from_list): New method that checks to see
2046         if the rule's arg matches match an argument list.  Only arguments
2047         set in the rule are checked.
2048         (SignalMatchRule::match_args_from_rule): New method that checks to see
2049         if the rule's arg matches match another rule's.  All args have to match
2050         in order for this method to return true.  If either rule has more args
2051         then it is not a match.
2052         (SignalMatchRule::is_match): Add args match
2053         (SignalMatchRule::repr): Add args to the final output if they exist
2054
2055 2005-08-17  Ross Burton  <ross@burtonini.com>
2056
2057         * glib/dbus-gproxy.c:
2058         (dbus_g_proxy_call_no_reply): unref the message once sent.
2059         (dbus_g_proxy_call): protect against NULL proxy.
2060
2061 2005-08-16  John (J5) Palmieri  <johnp@redhat.com>
2062
2063         * python/__init__.py: Version updated (0, 43, 0)
2064         
2065         * python/dbus_bindings.pyx: 
2066         - Fixed type objects to have self passed into __init__
2067         - Added the Variant type
2068         - Add the ability to specify types or signatures for Array, Variant 
2069         and Dictionary
2070         (Connection::send_with_reply_handlers): return a PendingCall object
2071         (_pending_call_notification): handle the case when an error is returned 
2072         without an error message in the body
2073         (MessageIter::get_boolean): return True or False instead of an integer
2074         (MessageIter::python_value_to_dbus_sig): add direct checking of types 
2075         and add checks for objects with embeded signatures or types (Array, 
2076         Variant and Dictionary)
2077         (MessageIter::append_byte): handle case when the value is a dbus.Byte
2078         (MessageIter::append_dict): handle embeded types or signatures
2079         (MessageIter::append_array): handle embeded types or signatures
2080         (MessageIter::append_variant): new method
2081         
2082         * python/proxies.py:
2083         (DeferedMethod): New. Dummy executable object used when queuing calls 
2084         blocking on introspection data
2085         (ProxyMethod::__call__): add the timeout keyword for specifying longer 
2086         or shorter timeouts for method calls
2087         (ProxyObject): Add first pass at an introspection state machine
2088         (ProxyObject::__init__): Add introspect keyword for turing off an on 
2089         introspection. 
2090         (ProxyObject::_Introspect): Internal Introspect call that bypasses 
2091         the usual mechanisms for sending messages.  This is to avoid a deadlock
2092         where the Intospect call would be queued waiting for the Introspect 
2093         call to finish ;-)
2094         (ProxyObject::_introspect_reply_handler): New.  This method is called 
2095         when introspection returns with no error
2096         (ProxyObject::_introspect_error_handler): New.  This method is called 
2097         when introspection encounters an error
2098         (ProxyObject::__getattr__): Code to handle different introspection 
2099         states.  Queue async calls or block blocking calls if we are 
2100         introspecting.  Pass through as normal if we are not or are done with 
2101         introspecting.
2102         
2103         * python/service.py: Import signal and method from decorators.py
2104
2105         * python/types.py: Add Variant type
2106
2107 2005-08-16  Colin Walters  <walters@verbum.org>
2108
2109         * glib/dbus-gobject.c (dbus_set_g_error): Don't lose if the
2110         DBusError message is NULL.
2111
2112 2005-08-09  Havoc Pennington  <hp@redhat.com>
2113
2114         * dbus/dbus-errors.c: apply patch from Timo Teras to make a
2115         malloc'd copy of the name parameter
2116
2117 2005-08-09  Havoc Pennington  <hp@redhat.com>
2118
2119         * dbus/dbus-message.c (dbus_message_set_reply_serial): print
2120         warning if the reply serial is set to 0
2121
2122 2005-08-04  Colin Walters  <walters@verbum.org>
2123
2124         * glib/dbus-gvalue-utils.h (_dbus_g_type_specialized_builtins_init)
2125         (dbus_g_type_is_fixed, dbus_g_type_fixed_get_size)
2126         (dbus_gvalue_set_from_pointer, dbus_g_hash_table_value_foreach)
2127         (dbus_g_hash_table_insert_values, dbus_g_hash_table_insert_steal_values)
2128         (dbus_gtype_is_valid_hash_key, dbus_gtype_is_valid_hash_value)
2129         (dbus_g_hash_func_from_gtype, dbus_g_hash_free_from_gtype)
2130         (dbus_g_hash_equal_from_gtype, dbus_gvalue_stor, dbus_gvalue_take):
2131         * glib/dbus-gvalue.h (dbus_g_value_types_init)
2132         (dbus_gvalue_demarshal, dbus_gvalue_demarshal_variant)
2133         (dbus_gvalue_demarshal_message, dbus_gvalue_marshal):
2134         
2135         Prefix name with _ to ensure they're not exported.  All callers
2136         updated.
2137
2138         * glib/dbus-gvalue.c (typecode_to_gtype)
2139         (dbus_typecode_maps_to_basic, basic_typecode_to_gtype)
2140         (signature_iter_to_g_type_dict)
2141         (signature_iter_to_g_type_array)
2142         (dbus_gtype_from_signature_iter, dbus_gtype_from_signature)
2143         (dbus_gtypes_from_arg_signature):
2144         Move to dbus-gsignature.c.
2145
2146         * glib/dbus-binding-tool-glib.c (dbus_binding_tool_output_glib_server): Call
2147         dbus_g_type_specialized_builtins_init instead of dbus_g_value_types_init.
2148         (dbus_binding_tool_output_glib_client): Ditto.
2149
2150         * glib/Makefile.am (DBUS_GLIB_INTERNALS): Add dbus-gsignature.c
2151         and dbus-gsignature.h
2152
2153         * test/glib/test-service-glib.c (my_object_rec_arrays): Delete
2154         unused variable.
2155
2156 2005-08-03  Colin Walters  <walters@verbum.org>
2157
2158         * glib/dbus-gobject.c: Add tests on hardcoded object info; this should
2159         catch any incompatible changes accidentally made.
2160
2161 2005-08-03  Havoc Pennington  <hp@redhat.com>
2162
2163         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): fix
2164         typo, from Julien Puydt
2165
2166         * bus/connection.c (bus_connection_disconnected): we were always
2167         doing a wait_for_memory due to a buggy loop, found by Timo Hoenig
2168
2169 2005-08-01  Colin Walters  <walters@verbum.org>
2170
2171         Patch from Joe Markus Clarke:   
2172         
2173         * glib/dbus-gidl.c (property_info_unref, arg_info_unref): Fix
2174         use-after-free.
2175
2176 2005-08-01  Colin Walters  <walters@verbum.org>
2177         
2178         Patch from Joe Markus Clarke:   
2179         
2180         * tools/dbus-send.c (main): 
2181         
2182         Don't use C99 style initializers (bug #3933).
2183         
2184 2005-08-01  Colin Walters  <walters@verbum.org>
2185
2186         Patch from Joe Markus Clarke:   
2187
2188         * glib/dbus-gvalue.c (dbus_g_value_types_init): 
2189         * glib/dbus-gvalue-utils.c (dbus_g_type_specialized_builtins_init) 
2190         * glib/dbus-gobject.c (write_interface):
2191
2192         Don't use C99 style initializers (bug #3933).
2193
2194 2005-07-31  Havoc Pennington  <hp@redhat.com>
2195
2196         * tools/dbus-viewer.c (load_child_nodes): fix invocation of
2197         dbus_g_proxy_call, fix from Piotr Zielinski bug #3920
2198
2199 2005-07-30  Havoc Pennington  <hp@redhat.com>
2200
2201         * fix a bunch of Doxygen warnings and mistakes
2202
2203 2005-07-30  Havoc Pennington  <hp@redhat.com>
2204
2205         * dbus/dbus-sysdeps.c (_dbus_string_parse_uint): remove #ifdef
2206         DBUS_BUILD_TESTS since it's now used in production code
2207
2208 2005-07-29  Havoc Pennington  <hp@redhat.com>
2209
2210         * test/glib/test-profile.c (write_junk): initialize the junk
2211         buffer so valgrind doesn't have a breakdown
2212
2213 2005-07-29  Havoc Pennington  <hp@redhat.com>
2214
2215         * bus/signals.c (bus_signals_test): add match_rule_equal() tests
2216         (match_rule_matches): remove unused arg
2217         (test_matching): add tests for match_rule_matches()
2218
2219         * bus/signals.c (bus_match_rule_parse_arg_match): add ability to
2220         do arg0='foo' arg5='bar' in the match rules
2221         (match_rule_matches): don't match if the arg0='foo' doesn't match.
2222
2223         * dbus/dbus-protocol.h (DBUS_MAXIMUM_MATCH_RULE_ARG_NUMBER): add this
2224
2225 2005-07-29  Ross Burton  <ross@openedhand.com>
2226
2227         * dbus/dbus-connection.c:
2228         Don't create a DBusCondVar which is never used.
2229
2230 2005-07-27  Ross Burton  <ross@openedhand.com>
2231
2232         * dbus/dbus-message.c:
2233         Reduce the size of the maximum cached message to 10K.
2234
2235 2005-07-25  Ross Burton  <ross@openedhand.com>
2236
2237         * glib/dbus-gproxy.c:
2238         Remove matches when all proxies are unregistered.
2239
2240 2005-07-24  Colin Walters  <walters@verbum.org>
2241
2242         * glib/dbus-gvalue.c (signature_iter_to_g_type_array): Don't require
2243         typedata; recursive arrays won't have it.
2244
2245         * test/glib/test-dbus-glib.c:
2246         * test/glib/test-service-glib.c:
2247         * test/glib/test-service-glib.xml: Add recursive arrays tests.
2248         
2249 2005-07-20  John (J5) Palmieir  <johnp@redhat.com>
2250
2251         * python/_dbus.py, _util.py, decorators.py, extract.py, matchrules.py.
2252         proxies.py, service.py: Cleanup of code after running it through the
2253         pyflakes code checker mostly dealing with undefined names.  
2254         (Bug #3828, Patch from Anthony Baxter <anthony@interlink.com.au>)
2255
2256 2005-07-17  John (J5) Palmieri  <johnp@redhat.com>
2257
2258         * NEWS: Update to 0.35.2
2259
2260 2005-07-17  John (J5) Palmieri  <johnp@redhat.com>
2261
2262         * python/_dbus.py: Remove import of the dbus.services
2263         module as it no longer exists (patch from Dimitur Kirov)
2264
2265         * python/service.py (Object::__init__): Fixed typo
2266         s/name/bus_name (patch from Dimitur Kirov)
2267
2268         * python/examples/example-signal-emitter.py: import dbus.glib
2269         to get the main loop and use glib mainloop instead of gtk so
2270         X doesn't have to be running.
2271
2272         * python/examples/example-signal-recipient.py: import dbus.glib
2273         to get the main loop and use glib mainloop instead of gtk so
2274         X doesn't have to be running. Import the decorators module
2275         directly.
2276
2277         * test/glib/Makefile.am:  Added DIST_EXTRA files that distcheck
2278         didn't pick up on but are needed to build
2279
2280         * configure.in: upped version to 0.35.2
2281
2282         * bus/driver.c, bus/selinux.c, bus/selinux.h, dbus/dbus-protocol.h:
2283         added Colin Walters' SELinux API rename patch from head 
2284         s/unix sercurity context/selinux security context/
2285
2286 2005-07-16  John (J5) Palmieri  <johnp@redhat.com>
2287
2288         * python/Makefile.am: dbus_binding.pxd.in should be included 
2289         in EXTRA_DIST not dbus_binding.pxd
2290         fix up $(srcdir) hopefully for the last time
2291
2292         * NEWS: Update to 0.35.1
2293
2294 2005-07-16  Colin Walters  <walters@verbum.org>
2295
2296         * bus/driver.c (bus_driver_handle_get_connection_selinux_security_context): Renamed
2297         from bus_driver_handle_get_connection_unix_security_context.  Update for
2298         error usage.
2299         (message_handlers): Update for renames.
2300
2301         * bus/selinux.c (bus_selinux_allows_send): Handle OOM on
2302         _dbus_string_init failure correctly.
2303         (bus_selinux_append_context): Convert SID to context.  Append it
2304         as a byte array.
2305         (bus_selinux_shutdown): Handle the case where bus_selinux_full_init
2306         hasn't been called.
2307
2308         * bus/selinux.h: Update prototype.
2309
2310         * dbus/dbus-protocol.h (DBUS_ERROR_SELINUX_SECURITY_CONTEXT_UNKNOWN): Renamed
2311         from DBUS_ERROR_UNIX_SECURITY_CONTEXT_UNKNOWN.
2312
2313 2005-07-15  Colin Walters  <walters@verbum.org>
2314
2315         * doc/TODO: Add note about convenience wrappers.
2316
2317 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
2318
2319         * NEWS: Update to 0.35
2320
2321 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
2322
2323         * glib/Makefile.am: Add make-dbus-glib-error-switch.sh to EXTRA_DIST
2324         so distcheck doesn't fail
2325
2326         * glib/examples/Makefile.am: Add example-service.xml and 
2327         example-signal-emitter.xml to EXTRA_DIST so distcheck doesn't fail
2328
2329         * glib/examples/statemachine/Makefile.am: Add statemachine.xml and
2330         statemachine-server.xml to EXTRA_DIST so distcheck doesn't fail
2331
2332         * python/Makefile.am: Preprend $(srcdir)/ to source files so the
2333         compiler looks in the right places during distcheck
2334
2335 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
2336
2337         * glib/example/Makefile.am: Fix a typo which cause make distcheck
2338         to fail
2339
2340 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
2341
2342         * python/examples/example-service.py,
2343         python/examples/example-signal-emitter.py: Fixed up examples
2344         for API changes
2345
2346 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
2347
2348         * python/__init__.py: Upped to version (0,42,0) because of
2349         the API change
2350
2351 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
2352
2353         * ChangeLog: fix date in last entry
2354
2355         * configure.in, bus/system.conf.in: add the ability to configure 
2356         the system bus user at compiletime with the --with-dbus-user flag
2357         (patch from Kristof Vansant)
2358
2359 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
2360
2361         * bus/dispatch.c, test/test-service.c: Add testcase
2362         for sending messages to oneself (TODO item).
2363
2364         * python/service.py (class Object): Swap ordering of bus_name 
2365         and object_path parameters to better support inheritance.
2366
2367         * doc/dbus-tutorial.xml: change Python docs to reflect change
2368         in parameter ordering and fix the inheritance section.
2369
2370         * doc/TODO: remove sending message to oneself TODO item
2371
2372 2005-07-15  Ross Burton  <ross@openedhand.com>
2373
2374         * glib/dbus-gproxy.c:
2375         Fix a leak when calling methods via the proxy.
2376
2377 2005-07-15  Colin Walters  <walters@verbum.org>
2378
2379         * bus/selinux.c (bus_selinux_append_context): Wrap in
2380         HAVE_SELINUX.
2381
2382 2005-07-14  John (J5) Palmieri  <johnp@redhat.com>
2383
2384         * python/_dbus.py (Bus::remove_signal_receiver):
2385         don't add a callback to the match if none has been passed in
2386         
2387         * python/matchrules.py (SignalMatchTree::remove): if the rule
2388         being matched does not have a callback treat it as a wildcard
2389         fix matching logic
2390
2391         * doc/dbus-tutorial.xml: Add Python tutorial
2392
2393 2005-07-14  Colin Walters  <walters@verbum.org>
2394
2395         * bus/driver.c
2396         (bus_driver_handle_get_connection_unix_security_context): New function.
2397         (message_handlers): Add.
2398
2399         * bus/selinux.c (bus_selinux_append_context): New function; appends
2400         security context to message.
2401
2402         * bus/selinux.h: Prototype.
2403
2404         * dbus/dbus-protocol.h (DBUS_ERROR_UNIX_SECURITY_CONTEXT_UNKNOWN): New.
2405
2406 2005-07-14  John (J5) Palmieri  <johnp@redhat.com>
2407
2408         * bus/activation.c: clean up all tabs to be 8 spaces 
2409         (bus_activation_activate_service): make sure we clean up
2410         if activation fails
2411
2412         * bus/dispatch.c: clean up all tabs to be 8 spaces 
2413         (check_shell_fail_service_auto_start): New function
2414         tests to make sure we get fail properly when trying to auto start a service
2415         with a faulty command line
2416         (check_shell_service_success_auto_start): New function tests to make sure
2417         auto started services get the arguments on the command line
2418
2419         * test/test-shell-service.c: Added service for testing auto-starting with 
2420         command line arguments
2421
2422         * test/data/valid-service-files/debug-shell-echo-fail.service.in, 
2423         test/data/valid-service-files/debug-shell-echo-success.service.in:
2424         Added service files for testing auto-starting with command line arguments
2425
2426         * */.cvsignore: added a bunch of generated files to various .cvsignore files
2427
2428 2005-07-14  Rodrigo Moya  <rodrigo@novell.com>
2429
2430         * dbus/dbus-shell.[ch]: copy/pasted code from GLib.
2431         
2432         * dbus/Makefile.am: added new files to build.
2433
2434         * bus/activation.c (bus_activation_activate_service): support
2435         activation commands with parameters.
2436
2437         * test/shell-test.c: added test program for the shell parsing
2438         code.
2439
2440 2005-07-13  David Zeuthen  <davidz@redhat.com>
2441
2442         * tools/dbus-send.c (append_arg, type_from_name): Also support 16 and
2443         64 bit signed and unsigned parameters
2444
2445 2005-07-13  John (J5) Palmieri  <johnp@redhat.com>
2446
2447         * python/.cvsignore: remove dbus_bindings.pyx, add dbus_bindings.pxd
2448
2449         * python/service.py (class Name): renamed BusName to make it clearer
2450         what the object is for (a name on the bus)
2451
2452         * python/examples/example-service.py,
2453         python/examples/example-signal-emitter.py: change the Name object to
2454         BusName
2455
2456 2005-07-12  Colin Walters  <walters@verbum.org>
2457
2458         Patch from Jim Gettys <Jim.Gettys@hp.com>.
2459
2460         * tools/dbus-launch.c: Include sys/select.h.
2461
2462 2005-07-12  John (J5) Palmieri  <johnp@redhat.com>
2463         * python/dbus_bindings.pyx.in: removed
2464
2465         * python/dbus_bindings.pyx: Added.
2466         - Fixed some memleaks (patch from 
2467         Sean Meiners <sean.meiners@linspireinc.com>)
2468         - Broke out the #include "dbus_h_wrapper.h" and put it in its
2469         own pxd file (Pyrex definition)
2470         - Broke out glib dependancies into its own pyx module
2471         
2472         * python/dbus_bindings.pdx: Added.
2473         - Defines C class Connection for exporting to other modules
2474
2475         * python/dbus_glib_bindings.pyx: Added.
2476         - New module to handle lowlevel dbus-glib mainloop integration
2477
2478         * python/glib.py: Added.
2479         - Registers the glib mainloop when you import this module
2480
2481         * python/services.py: Removed (renamed to service.py)
2482         
2483         * python/service.py: Added.
2484         - (class Server): renamed Name
2485
2486         * python/__init__.py: Bump ro version (0,41,0)
2487         -don't import the decorators or service module
2488         by default.  These now reside in the dbus.service namespace
2489
2490         * python/_dbus.py (Bus::__init__): Add code run the main loop 
2491         setup function on creation 
2492
2493         * python/examples/example-service.py,
2494         python/examples/example-signal-emitter.py: update examples
2495
2496         * python/examples/gconf-proxy-service.py,
2497         python/examples/gconf-proxy-service2.py: TODO fix these up
2498
2499         * doc/TODO: Addition
2500         - Added a Python Bindings 1.0 section
2501         - added "Add match on args or match on details to match rules"
2502
2503
2504 2005-07-12  Colin Walters  <walters@verbum.org>
2505
2506         * glib/examples/statemachine/Makefile.am (statemachine-server-glue.h) 
2507         (statemachine-glue.h): 
2508         * glib/examples/Makefile.am (example-service-glue.h) 
2509         (example-signal-emitter-glue.h): 
2510         * glib/Makefile.am (dbus-glib-error-switch.h): 
2511         Add libtool --mode=execute so we use the built library instead
2512         of any installed one.
2513
2514 2005-07-11  Colin Walters  <walters@verbum.org>
2515
2516         * glib/dbus-gvalue.c (struct _DBusGValue): Delete.
2517         (dbus_g_value_types_init): Remove assertion.
2518         (dbus_g_value_get_g_type, dbus_g_value_open)
2519         (dbus_g_value_iterator_get_values, dbus_g_value_get_signature)
2520         (dbus_g_value_copy, dbus_g_value_free): Delete unimplemented
2521         functions related to DBusGValue.  Now we marshal/demarshal
2522         structures as GValueArray.
2523         (dbus_gtype_from_signature_iter): Return G_TYPE_VALUE_ARRAY for
2524         structures.
2525         (signature_iter_to_g_type_array): Don't call
2526         signature_iter_to_g_type_struct.
2527         (signature_iter_to_g_type_struct): Delete.
2528         (dbus_gvalue_to_signature): Delete.
2529         (dbus_gvalue_to_signature): New function with same name as other
2530         one; we can convert structures to signatures.
2531         (demarshal_valuearray): New function.
2532         (get_type_demarshaller): Use it.
2533         (demarshal_recurse): Delete.
2534         (marshal_proxy): New function.
2535         (marshal_map): Warn if we can't determine signature from type.
2536         (marshal_collection_ptrarray): Ditto.
2537         (marshal_collection_array): Ditto.
2538         (get_type_marshaller): Use marshal_valuearray.
2539         (marshal_recurse): Delete.
2540         (_dbus_gvalue_test): Add some tests.
2541
2542         * dbus/dbus-glib.h (struct _DBusGValueIterator): 
2543         (dbus_g_value_get_g_type, DBUS_TYPE_G_VALUE)
2544         (dbus_g_value_open, dbus_g_value_iterator_get_value)
2545         (dbus_g_value_iterator_get_values, dbus_g_value_iterator_recurse)
2546         (dbus_g_value_free): Remove prototypes.
2547
2548         * glib/dbus-binding-tool-glib.c (dbus_g_type_get_lookup_function): Handle
2549         G_TYPE_VALUE_ARRAY.
2550
2551         * glib/examples/example-service.c:
2552         * glib/examples/example-client.c: Implement GetTuple.
2553
2554         * test/glib/test-dbus-glib.c:
2555         * test/glib/test-service-glib.c:
2556         * test/glib/test-service-glib.xml: Add structure tests.
2557
2558 2005-07-10  Colin Walters  <walters@verbum.org>
2559
2560         * doc/TODO: Knock off some GLib items with this patch.
2561
2562         * glib/dbus-gvalue-utils.c (_dbus_gtype_can_signal_error) 
2563         (_dbus_gvalue_signals_error): New functions.
2564
2565         * glib/dbus-gvalue-utils.h: Prototype them.
2566
2567         * glib/dbus-gobject.c (arg_iterate): Update to handle return vals
2568         and change to not output const/retval flags for input args.  All
2569         callers updated.
2570         (invoke_object_method): Refactor to handle return values.  Add
2571         some more comments in various places.  Remove debug g_print.
2572
2573         * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_RETURNVAL): New.
2574
2575         * glib/dbus-binding-tool-glib.c (dbus_g_type_get_marshal_name):
2576         Handle G_TYPE_NONE.
2577         (compute_gsignature): New function; refactored from code from
2578         compute_marshaller and compute_marshaller_name.  Enhance to
2579         handle return values and async ops more cleanly.  Update for
2580         async ops returning NONE instead of BOOLEAN.
2581         (compute_marshaller, compute_marshaller_name): Call compute_gsignature
2582         and output appropriate string.
2583         (generate_glue): Handle return value annotation.  Also don't dump
2584         constness flag for input arguments.
2585
2586         * glib/Makefile.am (DBUS_GLIB_INTERNALS): New variable; contains
2587         files shared between installed library and utilities.
2588         (libdbus_glib_1_la_SOURCES): Move some stuf into DBUS_GLIB_INTERNALS.
2589         (libdbus_gtool_la_SOURCES): Suck in DBUS_GLIB_INTERNALS so the
2590         binding tool can access gtype utility functions.
2591
2592         * test/glib/test-service-glib.c: 
2593         * test/glib/test-service-glib.xml: 
2594         * test/glib/test-dbus-glib.c: Add some tests for return values.
2595
2596 2005-07-09  Colin Walters  <walters@verbum.org>
2597
2598         * glib/dbus-gparser.c (parse_annotation): Add annotations to
2599         argument if available, not method.
2600
2601         * glib/dbus-gobject.c (arg_iterate): More verbose warnings.
2602         (invoke_object_method): First, remove some redundant
2603         GValues (object_value, error_value) in favor of working on
2604         array directly.  Second, rework constness to be less buggy.
2605         Now we iterate directly over the argument metadata instead
2606         of parallel iterating over output signature and metadata.
2607
2608         * glib/dbus-glib-tool.h: Add INVALID_ANNOTATION error.
2609
2610         * glib/dbus-binding-tool-glib.c (generate_glue): Barf on const
2611         annotation on input args.
2612         
2613 2005-07-09  Colin Walters  <walters@verbum.org>
2614
2615         * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_CONST):
2616         Define.
2617
2618         * glib/dbus-binding-tool-glib.c (generate_glue): Handle Const
2619         annotation.
2620
2621         * glib/dbus-gobject.c (arg_iterate): Update to parse constval too.
2622         (method_dir_signature_from_object_info): Handle arg_iterate change.
2623         (write_interface): Ditto.
2624         (lookup_object_info): Don't barf if format_version is > 0.
2625         (invoke_object_method): Handle arg constness.
2626
2627         * glib/dbus-gidl.c (struct ArgInfo): Add annotations.
2628         (arg_info_new): Create.
2629         (arg_info_unref): Destroy.
2630         (arg_info_get_annotations, arg_info_get_annotation) 
2631         (arg_info_add_annotation): New functions.
2632
2633         * glib/dbus-gidl.h: Prototype them.
2634
2635         * glib/dbus-gparser.c (parse_annotation): Allow annotations in
2636         args, disallow them in properties.
2637         (parse_annotation): Handle arg annotations.
2638
2639         * test/glib/test-service-glib.xml: 
2640         * test/glib/test-service-glib.c: Update to make some methods
2641         const.
2642
2643 2005-07-08  Colin Walters  <walters@verbum.org>
2644
2645         * test/glib/test-service-glib.xml: 
2646         * test/glib/test-service-glib.c:
2647         * test/glib/test-dbus-glib.c: Test a{sv}.
2648
2649         * glib/examples/statemachine/statemachine.c:
2650         * glib/examples/statemachine/statemachine-server.c:
2651         * glib/examples/statemachine/statemachine-client.c: Fix some bugs,
2652         add progress bar, etc.
2653
2654         * glib/dbus-gvalue.c (register_array, register_dict): Delete; not
2655         needed anymore due to generic array/map marshalling.
2656         (dbus_g_value_types_init): Don't register basic arrays or the
2657         string/string hash.
2658         (dbus_gtype_from_signature_iter): Don't try to recurse into
2659         variants.
2660         (dbus_gtype_to_signature): Check collection/map before type
2661         metadata.
2662         (demarshal_garray_basic): Renamed to demarshal_collection_array.
2663         (demarshal_ghashtable): Renamed to demarshal_map; fix to use new
2664         generic map creation/append functions instead of hash table
2665         specifically.
2666         (get_type_demarshaller): Handle maps.
2667         (demarshal_collection): Dispatch on collection type to either
2668         demarshal_collection_ptrarray or demarshal_collection_array.
2669         (get_type_marshaller): Handle maps.
2670         (marshal_collection): Dispatch collection type to either
2671         marshal_collection_ptrarray or marshal_collection_array.
2672         (_dbus_gvalue_test): New test.
2673
2674         * glib/dbus-gvalue-utils.c (unset_and_free_g_value): New function.
2675         (hash_free_from_gtype): Use it to free GValues.
2676         (hashtable_append): New function.
2677         (ptrarray_append): Fix prototype.
2678         (slist_append): Ditto.
2679         (_dbus_gvalue_utils_test): Extend tests.
2680
2681         * glib/dbus-gtype-specialized.c
2682         (dbus_g_type_specialized_init_append): Renamed from
2683         dbus_g_type_specialized_collection_init_append.  Remove const from
2684         value, since we steal it.
2685         (dbus_g_type_specialized_map_append): New function.
2686
2687         * glib/dbus-gtype-specialized.h: Update prototypes.
2688         Add DBusGTypeSpecializedMapAppendFunc.
2689
2690         * glib/dbus-gtest.c (dbus_glib_internal_do_not_use_run_tests): Run
2691         _dbus_gvalue_test.
2692         
2693         * glib/dbus-gtest.h: Prototype it.
2694
2695 2005-07-08  Ross Burton  <ross@openedhand.com>
2696
2697         * dbus/dbus-glib.h:
2698         Add DBysGAsyncData for the async bindings.
2699
2700         * glib/dbus-binding-tool-glib.c:
2701         Re-enable the async bindings.
2702
2703         * test/glib/test-dbus-glib.c:
2704         Add a test for the generated async bindings.
2705
2706 2005-07-08  Colin Walters  <walters@verbum.org>
2707
2708         * doc/TODO: Update GLib todo bits, also add a post-1.0 TODO for a
2709         connection concept.
2710         
2711 2005-07-08  Colin Walters  <walters@verbum.org>
2712         
2713         * tools/Makefile.am: Kill of print-introspect in favor of using
2714         dbus-send --print-reply=literal.
2715
2716         * test/glib/test-service-glib.xml: 
2717         * test/glib/test-service-glib.c (my_object_get_objs): New test
2718         for "ao".
2719
2720         * test/glib/test-dbus-glib.c (echo_received_cb): Free echo data.
2721         (main): Test GetObjs.
2722
2723         * glib/examples/statemachine/Makefile.am:
2724         * glib/examples/statemachine/sm-marshal.list:
2725         * glib/examples/statemachine/statemachine-client.c:
2726         * glib/examples/statemachine/statemachine-server.c:
2727         * glib/examples/statemachine/statemachine-server.xml:
2728         * glib/examples/statemachine/statemachine.c:
2729         * glib/examples/statemachine/statemachine.h:
2730         * glib/examples/statemachine/statemachine.xml:
2731
2732         New example.
2733
2734         * glib/examples/example-service.c (main): Move invocation
2735         of dbus_g_object_type_install_info earlier, to emphasize it
2736         should only be done once.
2737
2738         * glib/examples/example-signal-emitter.c (main): Ditto.
2739
2740         * glib/examples/Makefile.am (SUBDIRS): Include statemachine.
2741
2742         * glib/dbus-gvalue.h (dbus_gtype_to_signature)
2743         (dbus_gvalue_marshal): Update prototypes.
2744
2745         * glib/dbus-gvalue.c: Update all marshalling functions to take
2746         const GValue instead of GValue.
2747         (signature_iter_to_g_type_array): Return a GPtrArray for nonfixed
2748         types.
2749         (dbus_gvalue_to_signature): Update for dbus_gtype_to_signature
2750         change.
2751         (dbus_gtype_to_signature): Handle generic collecitons and maps.
2752         Return a newly-allocated string.
2753         (demarshal_proxy, demarshal_object_path, demarshal_object)
2754         (demarshal_strv, demarshal_ghashtable): Set error, don't assert if
2755         we get the wrong types from message.
2756         (get_type_demarshaller): New function, extracted from
2757         dbus_gvalue_demarshal.
2758         (demarshal_collection): New function, demarshals generic
2759         collection.
2760         (dbus_gvalue_demarshal): Just invoke result of
2761         get_type_demarshaller.  Throw error if we don't have one.
2762         (marshal_garray_basic): Abort on OOM.
2763         (get_type_marshaller): New function, extracted from
2764         dbus_gvalue_marshal.
2765         (collection_marshal_iterator, marshal_collection): New functions;
2766         implements generic marshalling for an iteratable specialized
2767         collection.
2768         (dbus_gvalue_marshal): Just invoke result of get_type_marshaller.
2769
2770         * glib/dbus-gvalue-utils.c (gvalue_from_ptrarray_value): Handle
2771         G_TYPE_STRING.
2772         (ptrarray_value_from_gvalue): Ditto.
2773         (ptrarray_append, ptrarray_free): New functions.
2774         (slist_constructor, slist_iterator, slist_copy_elt, slist_copy) 
2775         (slist_append, slist_end_append, slist_free): New functions.
2776         (dbus_g_type_specialized_builtins_init): Add append fuctions
2777         for GPtrArray and GSList.  Register GSList.
2778         (test_specialized_hash, _dbus_gvalue_utils_test): New functions.
2779
2780         * glib/dbus-gtype-specialized.h (DBusGTypeSpecializedAppendContext):
2781         New.
2782         (dbus_g_type_specialized_collection_init_append)
2783         (dbus_g_type_specialized_collection_append)
2784         (dbus_g_type_specialized_collection_end_append): Prototype.
2785         (DBusGTypeSpecializedCollectionVtable): Add append_func and
2786         end_append_func.
2787
2788         * glib/dbus-gtype-specialized.c (dbus_g_type_specialized_collection_init_append) 
2789         (dbus_g_type_specialized_collection_append) 
2790         (dbus_g_type_specialized_collection_end_append): New functions.
2791         (dbus_g_type_map_value_iterate): Take const GValue.
2792         (dbus_g_type_collection_value_iterate): Ditto.
2793
2794         * glib/dbus-gtest.c (dbus_glib_internal_do_not_use_run_tests): Run
2795         _dbus_gvalue_utils_test.
2796         
2797         * glib/dbus-gtest.h: Prototype it.
2798
2799         * glib/dbus-gproxy.c (dbus_g_proxy_manager_filter): Avoid
2800         using uninitialized owner_list.
2801         (dbus_g_proxy_begin_call_internal): Move return_if_fail to
2802         public API.
2803         (dbus_g_proxy_end_call_internal): Update to use error set
2804         from dbus_gvalue_demarshal instead of setting it here.
2805         (dbus_g_proxy_begin_call): Move return_if_fail here.
2806
2807         * glib/dbus-gobject.c (write_interface): Update for
2808         dbus_gtype_to_signature returning new string.
2809
2810         * configure.in: Add glib/examples/statemachine.
2811
2812 2005-07-08  Joe Shaw  <joeshaw@novell.com>
2813
2814         * configure.in: Add a configure option, --with-console-auth-dir
2815         
2816         * dbus/dbus-sysdeps-util.c (_dbus_user_at_console): Use the
2817         new setting.  Patch from Kay Sievers.
2818
2819 2005-07-06  Colin Walters  <walters@verbum.org>
2820
2821         * dbus/dbus-glib.h (DBusGPendingCall, DBusGPendingCallNotify)
2822         (DBUS_TYPE_G_PENDING_CALL, dbus_g_pending_call_get_g_type)
2823         (dbus_g_pending_call_ref, dbus_g_pending_call_unref): Delete.
2824         (dbus_g_pending_call_set_notify, dbus_g_pending_call_cancel):
2825         Delete in favor of dbus_g_proxy_begin_call and
2826         dbus_g_proxy_cancel_call.
2827         (DBusGProxyCall, DBusGProxyCallNotify): New.
2828         (dbus_g_proxy_begin_call): Change prototype to take callback, user
2829         data, and destroy function.  This replaces
2830         dbus_g_pending_call_set_notify.
2831         (dbus_g_proxy_cancel_call): Prototype.
2832         (DBusGAsyncData): Delete, shouldn't be needed anymore.
2833
2834         * glib/dbus-gproxy.c (struct _DBusGProxy): Add call_id_counter and
2835         pending_calls map.
2836         (struct _DBusGProxyManager): Add bus_proxy member, which is an
2837         internal proxy for calls to the bus. Remove
2838         pending_nameowner_calls, now the internal proxy keeps track.
2839         (dbus_g_proxy_manager_unref): Unref bus proxy, remove reference to
2840         pending_nameowner_calls.
2841         (got_name_owner_cb): Update prototype, and use
2842         dbus_g_proxy_end_call.
2843         (got_name_owner_cb): Remove reference to pending_nameowner_calls.
2844         (dbus_g_proxy_manager_register): Delete directly libdbus code in
2845         favor of using internal proxy.
2846         (dbus_g_proxy_manager_unregister): Update to use
2847         dbus_g_proxy_cancel_call for any pending GetNameOwner call.
2848         (dbus_g_proxy_init): Initialize pending calls map.
2849         (dbus_g_proxy_constructor): New.
2850         (dbus_g_proxy_class_init): Add get/set property functions,
2851         constructor, and add NAME, PATH, and INTERFACE properties.
2852         (cancel_pending_call): New function.
2853         (dbus_g_proxy_dispose): Iterate over any outstanding calls and
2854         cancel them.
2855         (dbus_g_proxy_set_property, dbus_g_proxy_get_property): New.
2856         (GPendingNotifyClosure): New structure.
2857         (d_pending_call_notify, d_pending_call_free): Moved here from
2858         dbus-glib.c.
2859         (DBUS_G_VALUE_ARRAY_COLLECT_ALL): Moved around to satisfy function
2860         ordering.
2861         (manager_begin_bus_call): New internal function for talking to
2862         internal bus proxy.
2863         (dbus_g_proxy_new): Construct object using GObjet properties.
2864         (dbus_g_proxy_begin_call_internal): Update to take user data, etc.
2865         Create closure of same, and insert call into map of pending calls.
2866         (dbus_g_proxy_end_call_internal): Take call id instead of pending
2867         call.  Look up pending call in current set.  Remove it when we've
2868         completed.
2869         (dbus_g_pending_call_end, dbus_g_proxy_end_call_internal): Delete.
2870         (dbus_g_proxy_begin_call): Change API to take callback, user data,
2871         and destroy function directly.
2872         (dbus_g_proxy_end_call): Update to take DBusGProxyCall.
2873         (dbus_g_proxy_call): Invoke with NULL callback.
2874         (dbus_g_proxy_cancel_call): New function, replaces
2875         dbus_g_pending_call_cancel.
2876
2877         * glib/dbus-gparser.c (validate_signature): Fix call to
2878         dbus_set_g_error.
2879
2880         * glib/dbus-gobject.c (dbus_g_object_type_dbus_metadata_quark):
2881         New quark for attaching metadata to GType.
2882         (info_hash): Delete.
2883         (lookup_object_info): Look up using quark.
2884         (dbus_g_object_type_install_info): Check that a type is classed,
2885         not that it's an object.  Also just install type data using quark
2886         instead of using global hash.
2887
2888         * glib/dbus-glib.c (dbus_g_pending_call_ref) 
2889         (dbus_g_pending_call_unref, dbus_pending_call_get_g_type)
2890         (GPendingNotifyClosure): Delete.
2891         (d_pending_call_notify, d_pending_call_free): Move to dbus-gproxy.c.
2892         (dbus_g_pending_call_set_notify, dbus_g_pending_call_cancel): Delete.
2893
2894         * glib/dbus-binding-tool-glib.c (generate_client_glue): Disable async
2895         client method generation until we can fix it...
2896         
2897         * tools/dbus-viewer.c (load_child_nodes): Use dbus_g_proxy_call.
2898         (load_from_service_thread_func): Ditto.
2899
2900         * tools/dbus-names-model.c (struct NamesModel): Hold
2901         DBusGProxyCall.
2902         (have_names_notify): Update prototype, use
2903         dbus_g_proxy_cancel_call.
2904         (names_model_reload): Update for new dbus_g_proxy_begin_call API.
2905
2906         * tools/dbus-monitor.c (filter_func): Update for print_message
2907         API change.
2908
2909         * test/glib/test-dbus-glib.c: Add more tests for async
2910         invocations.  Update many begin_call/end_call pairs to just use
2911         dbus_g_proxy_call.
2912
2913         * tools/dbus-send.c (main): Add --print-reply=literal mode.  This
2914         allows us to dump print-introspect.c.
2915
2916         * tools/dbus-print-message.h (print_message): Add literal argument
2917         to print_message which is intended to allow printing arguments without
2918         metadata like "string=".
2919
2920         * tools/dbus-print-message.c (print_iter): Add literal argument.
2921         (print_message): Allow printing string messages literally.
2922
2923 2005-07-05  Colin Walters  <walters@verbum.org>
2924
2925         * glib/dbus-gproxy.c (marshal_dbus_message_to_g_marshaller):
2926         Remove value refcount leak, original patch from Jorn Baayen
2927         <jorn@openedhand.com>.  Also remove useless extra value in favor
2928         of prepending to value array directly.
2929
2930 2005-07-02  Colin Walters  <walters@verbum.org>
2931
2932         * glib/dbus-gmain.c (_dbus_gmain_test): Fix test.
2933
2934 2005-07-01  Colin Walters  <walters@verbum.org>
2935
2936         Patch from Jonathan Matthew <jonathan@kaolin.hn.org>
2937         
2938         * glib/dbus-gvalue.c (basic_typecode_to_gtype): Fix return type.
2939         (dbus_g_value_types_init): Marshal G_TYPE_CHAR as DBUS_TYPE_BYTE,
2940         G_TYPE_LONG as DBUS_TYPE_INT32, G_TYPE_ULONG as DBUS_TYPE_UINT32,
2941         and G_TYPE_FLOAT as DBUS_TYPE_DOUBLE.
2942
2943 2005-06-30  Colin Walters  <walters@verbum.org>
2944
2945         * test/glib/test-dbus-glib.c:
2946         * test/glib/test-service-glib.c:
2947         * test/glib/test-service-glib.xml: Update tests for new error
2948         setting bits, also add async tests (patch from Ross Burton).
2949
2950         * test/glib/Makefile.am (test_service_glib_LDADD): Add
2951         DBUS_GLIB_THREADS_LIBS.
2952
2953         * glib/dbus-gproxy.c (get_name_owner)
2954         (dbus_g_pending_call_end_valist): Ditto.
2955
2956         * glib/dbus-gobject.c (error_metadata): New mapping from GError
2957         domain (GQuark) to DBusGErrorInfo.  
2958         (gerror_domaincode_to_dbus_error_name): Attempt to look up error
2959         quark in error_metadata.  Take message interface as default
2960         error message interface.
2961         (gerror_to_dbus_error_message): Pass message interface.
2962         (dbus_set_g_error): Resurrected.
2963         (dbus_g_error_info_free): New function.
2964         (dbus_g_object_type_install_info): Use g_type_class_ref instead
2965         of _peek to actually create the object class if it hasn't been
2966         created yet.
2967         (dbus_g_error_domain_register): New function.
2968
2969         * glib/dbus-gmain.c (dbus_g_bus_get): Switch to dbus_set_g_error.
2970
2971         * glib/dbus-gparser.c (validate_signature): Ditto.
2972
2973         * dbus/dbus-glib.h (dbus_g_error_set): Delete.
2974         (dbus_g_error_domain_register): Prototype.
2975
2976         * glib/dbus-glib.c (dbus_g_error_set): Delete.
2977         Update tests.
2978
2979 2005-06-29  Colin Walters  <walters@verbum.org>
2980
2981         * dbus/dbus-glib.h: Delete DBUS_TYPE_G_PROXY_ARRAY.  Add
2982         DBUS_TYPE_G_OBJECT_PATH.
2983
2984         * glib/dbus-gvalue.c (dbus_g_value_types_init): Remove marshallers
2985         for G_TYPE_OBJECT and DBUS_TYPE_G_PROXY_ARRAY (the latter should
2986         be handled more generically).  Add DBUS_TYPE_G_OBJECT_PATH.
2987         (dbus_g_object_path_get_g_type): New function.
2988         (dbus_gtype_from_signature_iter): Map DBUS_TYPE_OBJECT_PATH
2989         to DBUS_TYPE_G_OBJECT_PATH by default.
2990         (demarshal_proxy): Remove unused name variable.
2991         (demarshal_object_path, marshal_object_path): New functions.
2992         (demarshal_proxy_array, marshal_proxy_array): Delete.
2993         
2994         * glib/dbus-binding-tool-glib.c (dbus_g_type_get_c_name): Map
2995         DBUS_TYPE_G_OBJECT_PATH to char *.
2996         (dbus_g_type_get_lookup_function): Map builtin
2997         DBUS_TYPE_G_OBJECT_PATH.
2998
2999         * test/glib/test-dbus-glib.c
3000         * test/glib/test-service-glib.c (my_object_objpath): 
3001         Adapt tests to new object path marshalling.
3002
3003 2005-06-29  John (J5) Palmieri  <johnp@redhat.com>
3004
3005         * configure.in: force check for Python >= 2.4
3006
3007 2005-06-29  Colin Walters  <walters@verbum.org>
3008         
3009         Patch from Ross Burton <ross@openedhand.com>
3010         
3011         * glib/dbus-gobject.c (invoke_object_method): Unset object
3012         value in all cases, not only in async case.
3013
3014 2005-06-29  Colin Walters  <walters@verbum.org>
3015
3016         * glib/dbus-gproxy.c (struct _DBusGProxy): Add new member
3017         name_call for keeping track of any outgoing GetNameOwner call.
3018         Also add for_owner and associated.
3019         (struct _DBusGProxyManager): Add owner_names, which is hash table
3020         that maps a base name to a list of names it owns (that we're
3021         interested in).  Add pending_nameowner_calls which is a list of
3022         all outstanding GetNameOwner; avoids us having to iterate over
3023         every proxy.  Add unassociated_proxies which keeps track of name
3024         proxies with no associated name owner.
3025         (dbus_g_proxy_manager_unref): Destroy owner_names.
3026         (struct DBusGProxyNameOwnerInfo): New struct for keeping track of
3027         name refcounts.
3028         (find_name_in_info, name_owner_foreach)
3029         (dbus_g_proxy_manager_lookup_name_owner, insert_nameinfo)
3030         (dbus_g_proxy_manager_monitor_name_owner)
3031         (dbus_g_proxy_manager_unmonitor_name_owner)
3032         (unassociate_proxies, dbus_g_proxy_manager_replace_name_owner):
3033         New functions; they manipulate the owner_names mapping.
3034         (got_name_owner_cb): New function.
3035         (get_name_owner): New function, extracted from
3036         dbus_g_proxy_new_for_name_owner.
3037         (dbus_g_proxy_manager_register): For now we need to keep track of
3038         all NameOwnerChanged.  Also if the proxy is for a name, if we
3039         don't already know the name owner, queue a new GetNameOwner
3040         request and add it to our list of unassociated proxies.  Otherwise
3041         inc the refcount.
3042         (dbus_g_proxy_manager_unregister): If this proxy is for a name,
3043         cancel any pending GetNameOwner call, etc.
3044         (dbus_g_proxy_manager_filter): Handle NameOwnerChanged.  Also use
3045         the owner_names mapping to look up the current names for the
3046         signal source, and dispatch to any proxies for that name.
3047         (dbus_g_proxy_new): Initialize new members.
3048         (dbus_g_proxy_new_for_name): Delete unused proxy variable.
3049         (dbus_g_proxy_new_for_name_owner): Use get_name_owner.
3050         (dbus_g_pending_call_end_valist): New function, extracted from
3051         dbus_g_proxy_end_call_internal.  Useful when we don't have a proxy
3052         but want to use the GLib infrastructure.  Also note how many
3053         arguments in reply were over.
3054         (dbus_g_pending_call_end): New function, just call
3055         dbus_g_pending_call_end_valist.
3056         (dbus_g_proxy_end_call_internal): Just call
3057         dbus_g_pending_call_end_valist.
3058
3059         * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller): Fix lookup
3060         of builtin marshaller for STRING_STRING_STRING.
3061
3062         * test/glib/test-dbus-glib.c: 
3063         * test/glib/test-service-glib.c:
3064         * test/glib/test-service-glib.xml:
3065         Extend tests to cover name proxies, destruction of owner proxies,
3066         etc.
3067         
3068         * glib/examples/example-signal-recipient.c
3069         (dbus_g_proxy_new_for_name_owner): Create a name proxy.
3070         
3071         * tools/dbus-send.c (main): Print D-BUS error name in addition
3072         to message.
3073
3074 2005-06-28  John (J5) Palmieri  <johnp@redhat.com>
3075
3076         * python/dbus_bindings.pyx.in (cunregister_function_handler,
3077         cmessage_function_handler): Patch from 
3078         Anthony Baxter <anthony@interlink.com.au> fixes threading problems
3079         by using the Py_GILState_Ensure/Release to synchronize with the
3080         python runtime.
3081         
3082 2005-06-28  Ray Strode  <rstrode@redhat.com>
3083
3084         *  dbus/dbus-spawn.c (_dbus_babysitter_unref): kill
3085         babysitter helper process on last unref, bug #2813.
3086
3087 2005-06-27  Colin Walters  <walters@verbum.org>
3088
3089         * test/glib/test-dbus-glib.c: 
3090         * test/glib/test-service-glib.c:
3091         * test/glib/test-service-glib.xml:
3092         Test hash table signal emitting.
3093
3094         * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller): Convert
3095         types to their fundamental basis types, since this is what
3096         marshallers operate on.  Also add an entry for VOID__BOXED.
3097         (dbus_g_object_register_marshaller_array): Convert to fundamental.
3098
3099 2005-06-26  Havoc Pennington  <hp@redhat.com>
3100
3101         * doc/dbus-tutorial.xml: fix names of interface/service/path, fix
3102         from Don Park
3103
3104 2005-06-26  Colin Walters  <walters@verbum.org>
3105
3106         * glib/dbus-glib.c (dbus_set_g_error): Delete.
3107         (dbus_g_error_set): New public function from its ashes; used by
3108         both service-side method implementation and GLib bindings
3109         internals.
3110         (dbus_g_error_has_name, dbus_g_error_get_name): New function.
3111         (_dbus_glib_test): Add some tests.
3112
3113         * test/glib/test-dbus-glib.c (main): Test dbus_g_error_has_name.
3114
3115         * test/glib/test-service-glib.c (my_object_throw_error): Use
3116         dbus_g_error_set.
3117
3118         * glib/dbus-gobject.c (gerror_to_dbus_error_message): Handle
3119         errors thrown by dbus_g_error_set.
3120
3121         * glib/dbus-gmain.c (dbus_g_bus_get): Change to dbus_g_error_set.
3122
3123         * glib/dbus-gparser.c (validate_signature): Ditto.
3124
3125         * glib/dbus-gproxy.c (dbus_g_proxy_new_for_name_owner) 
3126         (dbus_g_proxy_end_call_internal): Ditto.
3127
3128         * glib/Makefile.am: Generate dbus-glib-error-switch.h, which
3129         converts DBUS_ERROR_x to DBUS_GERROR_x.
3130         (libdbus_glib_1_la_SOURCES, BUILT_SOURCES, CLEANFILES): Add it.
3131
3132         * doc/TODO: Remove error TODO.
3133
3134         * doc/dbus-tutorial.xml: Update with documentation about error
3135         handling.
3136
3137         * dbus/make-dbus-glib-error-enum.sh: Tighten up regexp to make
3138         sure we only change DBUS_ERROR to DBUS_GERROR, not all ERROR to
3139         GERROR.  Also add DBUS_GERROR_REMOTE_EXCEPTION.
3140
3141 2005-06-22  Colin Walters  <walters@verbum.org>
3142         
3143         Patch from Ross Burton <ross@openedhand.com>
3144
3145         * glib/dbus-gobject.c (dbus_g_method_return): Free out_sig.
3146
3147 2005-06-20  Colin Walters  <walters@verbum.org>
3148
3149         * configure.in: Add glib/examples.
3150
3151         * glib/Makefile.am: Add examples/
3152
3153         * glib/examples/.cvsignore
3154         * glib/examples/Makefile.am
3155         * glib/examples/example-client.c
3156         * glib/examples/example-service.c
3157         * glib/examples/example-service.xml
3158         * glib/examples/example-signal-emitter.c
3159         * glib/examples/example-signal-emitter.xml
3160         * glib/examples/example-signal-recipient.c:
3161         New files; GLib binding examples, ported from
3162         python/examples.
3163
3164 2005-06-20  Colin Walters  <walters@verbum.org>
3165
3166         * dbus/dbus-glib.h: 
3167         * glib/dbus-gproxy.c: Rename dbus_g_proxy_invoke to
3168         dbus_g_proxy_call.
3169
3170         * glib/dbus-binding-tool-glib.c: 
3171         * doc/dbus-tutorial.xml: 
3172         * test/glib/test-dbus-glib.c: Update for rename.
3173         
3174 2005-06-20  Colin Walters  <walters@verbum.org>
3175
3176         Patch suggested by Ross Burton <ross@openedhand.com>
3177
3178         * glib/dbus-gobject.c (export_signals): Free signal name.
3179         (g_value_init): Use G_VALUE_NOCOPY_CONTENTS to plug
3180         memory leak.  Add a bit of documentation.
3181         (dbus_g_method_return_error): Free context, and note we do
3182         so.
3183
3184 2005-06-18  Murray Cumming  <murrayc@murrayc.com>
3185
3186         * dbus/dbus-glib.h:
3187         * glib/dbus-gobject.c:
3188         * glib/dbus-gproxy.c:
3189         * glib/dbus-gvalue.c: Predeclare structs as 
3190         typedef struct _Something Something instead of 
3191         typedef struct Something Something, so we can 
3192         redeclare the prototypes. Other GNOME libraries 
3193         do this already.
3194
3195 2005-06-17  Colin Walters  <walters@verbum.org>
3196
3197         * tools/dbus-names-model.c (have_names_notify): Fix call
3198         to dbus_g_proxy_end_call.
3199         
3200 2005-06-17  Colin Walters  <walters@verbum.org>
3201
3202         * glib/dbus-gproxy.c (dbus_g_proxy_emit_remote_signal): Don't
3203         spew warnings if we get malformed remote signals.
3204
3205         * glib/dbus-gobject.c (propsig_iterate): New function.
3206         (lookup_object_info): New function, extracted from
3207         lookup_object_and_method.
3208         (introspect_properties, introspect_signals): Delete; these
3209         are merged into write_interface.
3210         (write_interface): Write out signals and properties here;
3211         dump the org.gtk.object stuff and use the interface given
3212         in the introspection data blob.  Also fix up property XML.
3213         (lookup_values): New function.
3214         (introspect_interfaces): Gather a mapping from interface to a
3215         list of its methods, signals, and properties, then write out
3216         each interface.
3217         (lookup_object_and_method): Use lookup_object_info.
3218         (struct DBusGSignalClosure): Add interface.
3219         (dbus_g_signal_closure_new): Add interface. Don't dup signame;
3220         we can just use the constant data.
3221         (dbus_g_signal_closure_finalize): Don't free signal name.
3222         (signal_emitter_marshaller): Use interface from signal closure.
3223         (export_signals): Only export signals mentioned in introspection
3224         blob.
3225         (dbus_g_connection_register_g_object): Warn if we have no
3226         introspection data for an object.
3227         (funcsig_equal): Remove unused variable.
3228         (dbus_g_object_register_marshaller): Take varargs instead of
3229         list.
3230         (dbus_g_object_register_marshaller_array): New function,
3231         extracted from old dbus_g_object_register_marshaller.
3232
3233         * glib/dbus-binding-tool-glib.c (struct DBusBindingToolCData): Add
3234         signals and property data.
3235         (write_quoted_string): New function, extracted from generate_glue.
3236         (generate_glue): Write signals and properties to introspection
3237         blob.
3238
3239         * dbus/dbus-glib.h (struct DBusGObjectInfo): Include
3240         exported_signals and exported_properties.
3241         (dbus_g_object_register_marshaller): Update prototype.
3242         (dbus_g_object_register_marshaller_array): Prototype.
3243         
3244         * test/glib/test-dbus-glib.c: Extend testing to cover new signals.
3245
3246         * test/glib/test-service-glib.c: Add new test signals and method
3247         to emit them.
3248
3249         * test/glib/test-service-glib.xml: Add some test signals.
3250
3251         * test/glib/Makefile.am (BUILT_SOURCES): Add my-object-marshal.c
3252         and my-object-marshal.h
3253         (test_service_glib_SOURCES, test_dbus_glib_SOURCES): Add
3254         my-object-marshal.c.
3255         (my-object-marshal.c, my-object-marshal.h): Implement.
3256
3257         * test/glib/.cvsignore: Update.
3258
3259         * doc/TODO: Remove two GLib TODO items fixed by this
3260         patch.
3261
3262 2005-06-16  Colin Walters  <walters@verbum.org>
3263
3264         * doc/TODO: Update for GLib bindings.
3265         
3266 2005-06-16  Colin Walters  <walters@verbum.org>
3267
3268         * glib/dbus-binding-tool-glib.c:
3269         * glib/dbus-gobject.c:
3270         * glib/dbus-gproxy.c:  Add Nokia copyright; Patch
3271         from Ross Burton, for his GLib bindings work.
3272
3273 2005-06-16  Colin Walters  <walters@verbum.org>
3274
3275         * glib/dbus-gobject.c (funcsig_hash, funcsig_equal): Use n_params
3276         to iterate instead of walking to G_TYPE_INVALID.
3277
3278         Patch based on a patch from Ryan Gammon.
3279
3280 2005-06-16  Colin Walters  <walters@verbum.org>
3281
3282         * bus/bus.c (bus_context_new): Set parser to NULL
3283         after we unref it (Patch from Chris Boscolo, #2174).
3284         
3285 2005-06-16  Colin Walters  <walters@verbum.org>
3286
3287         * python/dbus_bindings.pyx.in: Import size_t,
3288         __int64_t, __uint64_t, and __signed.
3289
3290         * dbus/dbus-sysdeps.c <HAVE_CMSGCRED> (write_credentials_byte):
3291         Define cmsg struct, output it.
3292         (_dbus_read_credentials_unix_socket):
3293         Use cmsg struct.
3294         
3295         Patch from Joe Markus Clarke for FreeBSD support.
3296         
3297 2005-06-16  Colin Walters  <walters@verbum.org>
3298
3299         * tools/dbus-send.c (append_array): Use strtok.
3300         (append_dict): New function.
3301         (type_from_name): New function, extracted from main.
3302         (main): Handle sending dicts.
3303
3304         * tools/dbus-print-message.c (print_iter): Print dict
3305         entries.
3306         
3307 2005-06-16  Colin Walters  <walters@verbum.org>
3308
3309         * glib/dbus-gvalue.c (marshal_basic): Marshal NULL string
3310         values as the empty string (#2948).
3311         
3312 2005-06-16  Colin Walters  <walters@verbum.org>
3313
3314         * dbus/Makefile.am:
3315         * mono/doc/Makefile.am:
3316         * test/glib/Makefile.am:
3317
3318         Fix srcdir != builddir issues (Patch from Chris Wilson, #3477)
3319
3320 2005-06-16  Colin Walters  <walters@verbum.org>
3321
3322         * dbus/dbus-marshal-header.c (_dbus_header_load): Set
3323         header byte order from expected byte order (Patch from Chris Wilson, #3475).
3324
3325         * dbus/dbus-marshal-byteswap.c (byteswap_body_helper): 
3326         Increment pointer after swapping fixed array.  Add assertion
3327         for array length.
3328                 
3329 2005-06-15  Colin Walters  <walters@verbum.org>
3330
3331         * dbus/dbus-sysdeps.c <HAVE_CMSGCRED> (_dbus_read_credentials_unix_socket):
3332         Fix call to dbus_set_error.  (Patch from Michael Banck, #3461)
3333         
3334 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
3335
3336         * NEWS: Update to 0.34
3337
3338 2005-06-15  David Zeuthen  <davidz@redhat.com>
3339
3340         * configure.in (LT_CURRENT): Revert back to 1 as the library
3341         hasn't changed and we've certainly not committed to protocol
3342         stability yet.  All this does is to break ABI. See commit note
3343         from hp@redhat.com 2005-05-05 for details.
3344         
3345 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
3346
3347         * dbus/dbus-connection.c (_dbus_connection_peer_filter): New method 
3348         (_dbus_connection_run_builtin_filters): New method
3349         (dbus_connection_dispatch): Run the builtin filters which in turn
3350         runs the peer filter which handles Ping messages.
3351
3352         * doc/TODO: 
3353          - Ping isn't handled: This patch fixes it
3354          
3355          - Add a test case for the Ping message: added TODO item
3356
3357 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
3358
3359         * dbus/dbus-message.c:
3360         (dbus_message_has_path): New method
3361         (dbus_message_has_interface): New method
3362         (dbus_message_has_member): New method
3363
3364         * dbus/dbus/dbus-sysdeps.c (_dbus_check_dir_is_private_to_user):
3365         New method
3366
3367         * dbus/dbus-keyring.c (_dbus_keyring_reload): Check to see that 
3368         the keyring directory is private to the user
3369
3370         * doc/TODO:
3371          - The convenience functions in dbus-bus.h should perhaps have
3372          the signatures that they would have if they were autogenerated
3373          stubs. e.g. the acquire service function. We should also evaluate
3374          which of these functions to include, in light of the fact that
3375          GLib/Qt native stubs will probably also exist.: Punted
3376
3377          - add dbus_message_has_path(), maybe has_member/interface:
3378          fixed in this patch
3379
3380          - in dbus-keyring.c, enforce that the keyring dir is not
3381          world readable/writable: Fixed in this patch
3382
3383 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
3384
3385         * dbus/dbus-marshal-validate.h: Added a new validation
3386         error code DBUS_VALIDITY_UNKNOWN_OOM_ERROR = -4 for 
3387         out of memory errors when validating signitures
3388
3389         * dbus/dbus-marshal-header.c: use DBUS_VALIDITY_UNKNOWN_OOM_ERROR
3390         in places where we previously used DBUS_VALID and a FALSE return 
3391         value to indicate OOM
3392         
3393         * dbus/dbus-marshal-validate.c (_dbus_validate_signature_with_reason):
3394         Use a stack to track the number of elements inside containers.  The 
3395         stack values are then used to validate that dict entries have only two
3396         elements within them.
3397         (validate_body_helper): check the reason for failure when validating
3398         varients
3399         
3400         * dbus/dbus-message.c (load_message): use 
3401         DBUS_VALIDITY_UNKNOWN_OOM_ERROR in places where we previously used 
3402         DBUS_VALID and a FALSE return value to indicate OOM
3403
3404         * doc/TODO: remove "- validate dict entry number of fields" as this
3405         patch fixes it
3406
3407 2005-06-14  David Zeuthen  <davidz@redhat.com>
3408
3409         * bus/bus.c (process_config_every_time): Drop existing conf-dir
3410         watches (if applicable) and add new watches
3411
3412         * bus/main.c (signal_handler): Handle SIGIO if using D_NOTIFY
3413         (main): Setup SIGIO signal handler if using D_NOTIFY
3414
3415         * bus/config-parser.h: Add prototype bus_config_parser_get_conf_dirs
3416
3417         * bus/config-parser.c (struct BusConfigParser): Add conf_dirs list
3418         (merge_included): Also merge conf_dirs list
3419         (bus_config_parser_unref): Clear conf_dirs list
3420         (include_dir): Add directory to conf_dirs list
3421         (bus_config_parser_get_conf_dirs): New function
3422
3423         * bus/dir-watch.[ch]: New files
3424
3425         * bus/Makefile.am (BUS_SOURCES): Add dir-watch.[ch]
3426
3427         * configure.in: Add checks for D_NOTIFY on Linux
3428
3429 2005-06-14  Colin Walters  <walters@verbum.org>
3430
3431         * glib/dbus-binding-tool-glib.c:
3432         * glib/dbus-gobject.c:
3433         * glib/dbus-gvalue.c: Fix indentation and brace style.
3434         
3435 2005-06-14  Ross Burton <ross@openedhand.com>.
3436
3437         * glib/dbus-glib.h: Make DBusGMethodInvocation
3438         a private structure.  Rearrange prototypes a bit.
3439         
3440         * glib/dbus-gproxy.c (dbus_g_proxy_invoke): Add
3441         documentation for first_arg_type.
3442         
3443         * glib/dbus-gobject.c: Move DBusGMethodInvocation
3444         here, add documentation.  Move dbus_g_method_return
3445         and dbus_g_method_return_error into public API
3446         section.
3447
3448 2005-06-14  Colin Walters  <walters@verbum.org>
3449
3450         * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller):
3451         Add missing return statements, noticed by Ross Burton.
3452         
3453 2005-06-13  Ross Burton <ross@openedhand.com>.
3454
3455         * glib/dbus-gobject.c: Handle errors on message
3456         demarshalling by sending error message back.
3457         * glib/dbus-gvalue.c: Initialize return variables.
3458
3459 2005-06-13  Colin Walters  <walters@verbum.org>
3460
3461         * glib/Makefile.am: Fix thinko in last patch.
3462
3463 2005-06-13  Colin Walters  <walters@verbum.org>
3464
3465         * glib/Makefile.am: Move dbus-gtype-specialized.c
3466         and dbus-gtype-specialized.h into a _HEADERS variable,
3467         install them.
3468
3469 2005-06-12  Colin Walters  <walters@verbum.org>
3470
3471         Async signals and various bugfixes and testing by
3472         Ross Burton <ross@openedhand.com>.
3473
3474         * glib/dbus-gvalue.h: (struct DBusBasicGValue): Delete.
3475         (dbus_gvalue_genmarshal_name_from_type)
3476         (dbus_gvalue_ctype_from_type): Moved to dbus-binding-tool-glib.c.
3477         (dbus_gtype_to_dbus_type): Renamed to dbus_gtype_from_signature.
3478         (dbus_g_value_types_init, dbus_gtype_from_signature)
3479         (dbus_gtype_from_signature_iter, dbus_gtype_to_signature)
3480         (dbus_gtypes_from_arg_signature): New function prototypes.
3481         (dbus_gvalue_demarshal): Take context and error arguments.
3482         (dbus_gvalue_demarshal_variant): New function.
3483         (dbus_gvalue_demarshal_message): New function.
3484         (dbus_gvalue_store): Delete.
3485
3486         * glib/dbus-gvalue.c:
3487
3488         File has been almost entirely rewritten; now we special-case
3489         more types such as DBUS_TYPE_SIGNATURE, handle arrays and
3490         hash tables correctly, etc.  Full support for recursive values
3491         is not yet complete.
3492
3493         * glib/dbus-gproxy.c (dbus_g_proxy_class_init): Change last
3494         argument of signal to G_TYPE_POINTER since we now pass a
3495         structure.
3496         (lookup_g_marshaller): Delete in favor of
3497         _dbus_gobject_lookup_marshaller.
3498         (marshal_dbus_message_to_g_marshaller): Use
3499         _dbus_gobject_lookup_marshaller and dbus_gvalue_demarshal_message
3500         to handle remote signal callbacks.
3501         (dbus_g_proxy_new_from_proxy): New function; creates a new
3502         DBusGProxy by copying an existing one.
3503         (dbus_g_proxy_get_interface, dbus_g_proxy_set_interface)
3504         (dbus_g_proxy_get_path): New functions.
3505         (dbus_g_proxy_marshal_args_to_message): New function;
3506         factored out of existing code.
3507         (DBUS_G_VALUE_ARRAY_COLLECT_ALL): Collect all arguments
3508         from a varargs array.
3509         (dbus_g_proxy_begin_call_internal): New function.
3510         (dbus_g_proxy_end_call_internal): New function.
3511         (dbus_g_proxy_begin_call): Take GTypes instead of DBus types
3512         as arguments; simply invoke dbus_g_proxy_begin_call_internal
3513         after collecting args into value array.
3514         (dbus_g_proxy_end_call): Take GTypes instead of DBus types;
3515         invoke dbus_g_proxy_end_call_internal.
3516         (dbus_g_proxy_invoke): Simply invoke begin_call_interanl and
3517         end_call_internal.
3518         (dbus_g_proxy_call_no_reply): Take GTypes instead of DBus
3519         types.
3520         (array_free_all): New function.
3521         (dbus_g_proxy_add_signal): Take GTypes.
3522
3523         * glib/dbus-gobject.h:
3524         (_dbus_glib_marshal_dbus_message_to_gvalue_array): Delete.
3525         (_dbus_gobject_get_path, _dbus_gobject_lookup_marshaller):
3526         Prototype.
3527
3528         * glib/dbus-gobject.c: Add a global marshal_table hash which
3529         stores mappings from type signatures to marshallers.  Change lots
3530         of invocations of dbus_gtype_to_dbus_type to
3531         dbus_gtype_to_signature.
3532         (_dbus_glib_marshal_dbus_message_to_gvalue_array): Delete.
3533         (introspect_signals): Fix test for query.return_type.
3534         (set_object_property): Update invocation of dbus_gvalue_demarshal.
3535         (invoke_object_method): Many changes.  Handle asynchronous
3536         invocations.  Convert arguments with
3537         dbus_gvalue_demarshal_message.  Handle errors.  Use
3538         DBusSignatureIter instead of strlen on args. Handle all arguments
3539         generically.  Special-case variants.
3540         (dbus_g_method_return, dbus_g_method_return_error): New function.
3541         (DBusGSignalClosure): New structure, closes over signal
3542         information.
3543         (dbus_g_signal_closure_new): New function.
3544         (dbus_g_signal_closure_finalize): New function.
3545         (signal_emitter_marshaller): New function; is special marshaller
3546         which emits signals on bus.
3547         (export_signals): New function; introspects object signals and
3548         connects to them.
3549         (dbus_g_object_type_install_info): Take GType instead of
3550         GObjectClass.
3551         (dbus_g_connection_register_g_object): Invoke export_signals.
3552         (dbus_g_connection_lookup_g_object): New function.
3553         (DBusGFuncSignature) New structure; used for mapping type
3554         signatures to marshallers.
3555         (funcsig_hash): New function; hashes DBusGFuncSignature.
3556         (funcsig_equal): New function; compares DBusGFuncSignature.
3557         (_dbus_gobject_lookup_marshaller): New function.
3558         (dbus_g_object_register_marshaller): New function; used to
3559         register a marshaller at runtime for a particular signature.
3560
3561         * glib/dbus-gmain.c (_dbus_gmain_test): Add various tests.
3562
3563         * glib/dbus-binding-tool-glib.h: Add DBUS_GLIB_ANNOTATION_ASYNC
3564         which notes a server method implementation should be
3565         asynchronous.
3566
3567         * glib/dbus-binding-tool-glib.c
3568         (dbus_binding_tool_output_glib_server): Call
3569         dbus_g_value_types_init.
3570         (write_formal_parameters): Use dbus_gtype_from_signature.  Handle
3571         variants specially.
3572         (dbus_g_type_get_lookup_function): Turn GType into an invocation
3573         of a lookup function.
3574         (write_args_for_direction): Use dbus_g_type_get_lookup_function.
3575         (write_untyped_out_args): New method; write output arguments.
3576         (write_formal_declarations_for_direction): Function for
3577         writing prototypes.
3578         (write_formal_parameters_for_direction): Function for
3579         writing implementations.
3580         (write_typed_args_for_direction): Function for writing
3581         arguments prefixed with GTypes.
3582         (write_async_method_client): Write out async version
3583         of method.
3584
3585         * glib/dbus-binding-tool-glib.c: Include dbus-gvalue-utils.h.
3586         (dbus_g_type_get_marshal_name): Move mapping from GType
3587         to marshal name into here.
3588         (dbus_g_type_get_c_name): Move into here.
3589         (compute_marshaller): Convert signature to type with
3590         dbus_gtype_from_signature, use dbus_g_type_get_marshal_name.
3591         (compute_marshaller_name): Ditto.
3592         (compute_marshaller): Handle async signal annotations.
3593         (gather_marshallers): Return if we don't have a known
3594         prefix.
3595         (generate_glue): Collect introspection blob here, and
3596         write all of the blob at the end.  This allows an object
3597         with multiple interfaces to work.
3598         Mark async methods in introspection blob.
3599
3600         * glib/Makefile.am (libdbus_glib_1_la_SOURCES): Add
3601         dbus-gtype-specialized.c, dbus-gtype-specialized.h,
3602         dbus-gvalue-utils.h, dbus-gvalue-utils.c.
3603
3604         * dbus/dbus-glib.h: Don't include dbus-protocol.h; this
3605         avoids people accidentally using DBUS_TYPE_* which should
3606         not be necessary anymore.
3607         Do include dbus-gtype-specialized.h, which are utilities
3608         for GLib container types.
3609         Add various #defines for types such as
3610         DBUS_TYPE_G_BOOLEAN_ARRAY.
3611         (DBusGValueIterator, DBusGValue): Define, not fully used
3612         yet.
3613         (dbus_g_value_get_g_type): Type for recursive value.
3614         (dbus_g_value_open, dbus_g_value_iterator_get_value)
3615         (dbus_g_value_iterator_get_values, dbus_g_value_iterator_recurse)
3616         (dbus_g_value_free): Prototypes.
3617         (dbus_g_object_register_marshaller, dbus_g_proxy_new_from_proxy): Prototype.
3618         (dbus_g_proxy_set_interface): Prototype.
3619         (dbus_g_proxy_begin_call, dbus_g_proxy_end_call)
3620         (dbus_g_proxy_call_no_reply): Take GLib types instead of DBus
3621         types.
3622         (dbus_g_proxy_get_path, dbus_g_proxy_get_interface):
3623         Accessors.
3624         (DBusGAsyncData, DBusGMethodInvocation): Structures for
3625         doing async invocations.
3626         (dbus_g_method_return, dbus_g_method_return_error):
3627         Prototypes.
3628         * doc/dbus-tutorial.xml: Update GLib section.
3629         
3630         * tools/dbus-viewer.c (load_child_nodes): Update
3631         for new invocation type of dbus_g_proxy_end_call.
3632         (load_from_service_thread_func): Ditto.
3633
3634         * tools/print-introspect.c (main): Ditto.
3635
3636         * tools/dbus-names-model.c (have_names_notify)
3637         (names_model_reload, names_model_set_connection)
3638         Use GTypes.
3639
3640         * python/Makefile.am (INCLUDES): Define DBUS_COMPILATION,
3641         needed since Python bindings use GLib bindings.
3642
3643         * test/glib/Makefile.am (INCLUDES): Define DBUS_COMPILATION.
3644         Add --prefix argument.
3645
3646         * tools/Makefile.am: Define DBUS_COMPILATION.  Remove
3647         unneeded --ignore-unsupported arg.
3648         
3649         * test/glib/test-service-glib.c: 
3650         * test/glib/test-service-glib.xml:
3651         * test/glib/test-dbus-glib.c: Add many more tests.
3652
3653 2005-06-06  David Zeuthen  <davidz@redhat.com>
3654
3655         * doc/TODO: Add item about need to remove deprecated functions.
3656
3657         * dbus/dbus-connection.h: Add prototype for dbus_connection_disconnect
3658
3659         * dbus/dbus-connection.c (dbus_connection_disconnect): New function
3660         to repair the ABI which was broken with the last commit.
3661
3662 2005-06-02  John (J5) Palmieri <johnp@redhat.com>
3663
3664         *  dbus/dbus-connection.c, dbus/dbus-connection.h 
3665         (dbus_connection_disconnect): renamed to dbus_connection_close 
3666         for API symmetry with dbus_connection_open
3667         (_dbus_connection_open_internal): 
3668         s/dbus_connection_disconnect/dbus_connection_close
3669
3670         * dbus/dbus-bus.c (dbus_bus_get):
3671         s/dbus_connection_disconnect/dbus_connection_close
3672
3673         * bus/connection.c (bus_connections_unref, 
3674         bus_connections_setup_connection, bus_connections_expire_incomplete):
3675         s/dbus_connection_disconnect/dbus_connection_close
3676
3677         * bus/dispatch.c (bus_dispatch, kill_client_connection, 
3678         kill_client_connection_unchecked, check_hello_connection):
3679         s/dbus_connection_disconnect/dbus_connection_close
3680
3681         * bus/bus.c (new_connection_callback):
3682         s/dbus_connection_disconnect/dbus_connection_close
3683
3684         * tools/dbus-send.c (main):
3685         s/dbus_connection_disconnect/dbus_connection_close
3686
3687         * test/glib/test-profile.c (no_bus_thread_func, with_bus_thread_func):
3688         s/dbus_connection_disconnect/dbus_connection_close
3689         
3690         * test/test-service.c (path_message_func, filter_func):
3691         s/dbus_connection_disconnect/dbus_connection_close
3692         
3693         * doc/TODO: remove connection_open/connection_disconnect lacks symmetry         item that was just fixed
3694         
3695 2005-05-25  Colin Walters  <walters@verbum.org>
3696
3697         * dbus/dbus-protocol.h: Move various bus service #defines such
3698           as DBUS_SERVICE_DBUS and DBUS_NAME_FLAG_PROHIBIT_REPLACEMENT to
3699           dbus/dbus-shared.h.
3700         * dbus/dbus-shared.h: Various defines moved here.
3701         * dbus/dbus-marshal-header.c: Include dbus-shared.h.
3702
3703 2005-05-25  John (J5) Palmieri  <johnp@redhat.com>
3704
3705         * python/__init__.py: Python bindings deserve a minor version
3706         update.  Upped to (0, 40, 2)
3707
3708 2005-05-24  John (J5) Palmieri  <johnp@redhat.com>
3709
3710         * python/decorators.py: add explicitly_pass_message decorator
3711         for passing in the dbus message as keyword for edge case signal
3712         handling
3713
3714         * python/matchrules.py (SignalMatchRule.__repr__): fix output
3715         to conform with what dbus expects for match rules
3716         (SignalMatchRule.execute): add the dbus message as a keyword
3717         if the signal handler has requested it
3718
3719         * python/examples/example/signal-recipient.py: added some more
3720         examples on how to hook up to signals
3721
3722 2005-05-23  John (J5) Palmieri  <johnp@redhat.com>
3723
3724         * python/decorators.py: import dbus_bindings
3725
3726         * python/matchrules.py (SignalMatchRule, SignalMatchTree, 
3727         SignalMatchNode): new classes that implement wildcard signal
3728         callback matching using a tree lookup. Heavily modified from a
3729         patch sent by Celso Pinto (fd.o bug #3241)
3730
3731         * _dbus.py (add_signal_receiver, remove_signal_receiver, _signal_func):
3732         use new match classes to handle signals.
3733
3734 2005-05-19  John (J5) Palmieri  <johnp@redhat.com>
3735         
3736         * python/dbus_bindings.pyx.in: s/TYPE_PATH/TYPE_OBJECT_PATH
3737
3738 2005-05-18  Havoc Pennington  <hp@redhat.com>
3739
3740         * configure.in: use GLIB_GNU_GETTEXT to get INTLLIBS and require
3741         gettext. Not really worth requiring yet perhaps, but any
3742         production quality 1.0 would require it so we should go ahead and
3743         get things set up. We do have a couple token calls to
3744         bindtextdomain in the code already.
3745
3746 2005-05-16  John (J5) Palmieri  <johnp@redhat.com>
3747
3748         * glib/dbus-gmain.c (io_handler_dispatch): fix deadlock
3749         when using recursive g_main_loops
3750
3751         * python/_dbus.py (class Bus): add the ProxyObjectClass
3752         alias for ProxyObject to make it easier for the Twisted 
3753         networking framework to integrate dbus.
3754
3755         * python/proxies.py (class ProxyObject): add the ProxyMethodClass
3756         alias for ProxyMethod to make it easier for the Twisted 
3757         networking framework to integrate dbus. 
3758
3759 2005-05-11  Ross Burton  <ross@openedhand.com>
3760
3761         * glib/dbus-glib-tool.c: Add --prefix argument.
3762         * glib/dbus-binding-tool-glib.h: Add prefix argument.
3763         * glib/dbus-binding-tool-glib.c (compute_marshaller_name):
3764         Add prefix argument.
3765         (generate_glue): Pass prefix argument down.
3766         (dbus_binding_tool_output_glib_server): Pass prefix to
3767         glib-genmarshal.
3768         
3769 2005-05-11  Colin Walters  <walters@verbum.org>
3770
3771         * tools/dbus-send.c (append_array): New function.
3772         (append_arg): Broken out from main.
3773         (main): Add cheesy hack to send arrays and variants.
3774         (usage): Update.
3775         * tools/dbus-print-message.c (print_iter): Broken out
3776         from main.
3777
3778 2005-05-11  Colin Walters  <walters@verbum.org>
3779
3780         * dbus/dbus-signature.c (dbus_signature_iter_get_signature):
3781         New function, returns signature string for signature iter.
3782         * dbus/dbus-signature.h: Prototype it.
3783         * dbus/dbus-message.c (dbus_message_iter_get_signature):
3784         New function, returns signature string for message iter.
3785         (dbus_message_iter_get_array_len): New function, returns
3786         length of array.
3787         (dbus_message_iter_get_fixed_array): Fix assertion; this
3788         function should be used when the iter is pointing to the
3789         contents of an array
3790         * dbus/dbus-message.h: Prototypes.
3791         * dbus/dbus-marshal-recursive.c (_dbus_type_reader_get_array_length):
3792         New function; returns length of an array.
3793         * dbus/dbus-marshal-recursive.h: Prototype it.
3794         
3795 2005-05-11  Colin Walters  <walters@verbum.org>
3796
3797         * dbus/dbus-sysdeps-util.c <!HAVE_POSIX_GETPWNAM_R>: Fix
3798         compilation error.
3799         
3800 2005-05-08  Havoc Pennington  <hp@redhat.com>
3801
3802         * dbus/dbus-sysdeps-util.c (_dbus_become_daemon): write the
3803         daemon's pid, not the parent's pid, to the file descriptor.
3804         Reported by Taj Morton.
3805
3806 2005-05-05  Havoc Pennington  <hp@redhat.com>
3807
3808         * configure.in (LT_*): add notes on how the libtool versioning
3809         works to save thinking. Increment soname to indicate protocol
3810         breakage (though really the library interface hasn't changed I
3811         guess)
3812
3813         * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated):
3814         verify the GUID received from server matches what we were
3815         expecting, if we had an expectation
3816
3817         * dbus/dbus-auth.c (send_ok): send GUID along with the OK command
3818         (_dbus_auth_get_guid_from_server): new function
3819         (send_begin): parse the OK args
3820
3821         * doc/dbus-specification.xml: add GUID to the auth protocol
3822
3823 2005-05-05  John (J5) Palmieri  <johnp@redhat.com>
3824
3825         * Fix my name in previous changelog ;)
3826
3827         * python/proxies.py (ProxyObject.__getattr__): add further patch
3828         from Anthony Baxter to throw an AttributeError when python 
3829         __special__ functions are called instead of marshling them over 
3830         the bus (Bug#1685 comment 3).
3831
3832 2005-05-04  John (J5) Palmieri  <johnp@redhat.com>
3833
3834         * python/Makefile.am: changed to use pyexecdir for the binding
3835         shared libraries (Bug#2494)
3836
3837         * python/exceptions.py: bring exceptions over from the bindings
3838         so they can be used in applications (Bug#2036)
3839         Make all exceptions derive from DBusException
3840
3841         * python/_dbus.py, python/proxies.py: implement __repr__ in a couple
3842         of classes so that print obj doesn't throw an exception (Bug #1685)
3843
3844 2005-05-03  Ross Burton  <ross@openedhand.com>
3845
3846         * glib/dbus-gobject.c (dbus_g_connection_register_g_object):
3847         Return if we get an error during registration.  Set up a
3848         weak reference on object to unregister if object is destroyed.
3849         (unregister_gobject): New function.
3850         
3851 2005-05-01  John (J5) Palmieri  <johnp@redhat.com>
3852
3853         * python/dbus_bindings.pyx.in: 
3854         - added new type classes for hinting to the marashaler what type 
3855         to send over the wire
3856         - added int16 and uint16 marshalers
3857         - Fixed a bug in the type constants that caused int32 to go out
3858         as uint16 over the wire
3859         * python/dbus.py: split up into different files and renamed _dbus.py
3860         * python/__init__.py, python/_util.py, python/decorators.py, 
3861         python/exceptions.py, python/proxies.py, python/services.py,
3862         python/types.py: new files split off from dbus.py
3863         * python/Makefile.am: Add new files, remove dbus.py and 
3864         install all python files to <python module dir>/dbus
3865         * python/examples/*: Added #!/usr/bin/env python to the top of
3866         every example.  Patch provided by Tatavarty Kalyan
3867
3868 2005-04-25  John (J5) Palmieri  <johnp@redhat.com>
3869
3870         * NEWS: Update to 0.33
3871
3872 2005-04-25  John (J5) Palmieri  <johnp@redhat.com>
3873
3874         * python/dbus_bindings.pyx.in (send_with_reply_handlers): New send
3875         method for doing async calls
3876         (_pending_call_notification): New C function for handling pendning call
3877         callbacks
3878         (set_notify): New method for setting pending call notification
3879         
3880         * python/dbus.py: new version tuple "version" is set at (0, 40, 0)
3881         Async capabilities added to remote method calls
3882         (Sender): class removed
3883         (RemoteService): class removed
3884         (ObjectTree): class removed for now
3885         (RemoteObject): Renamed to ProxyObject
3886         (RemoteMethod): Renamed to ProxyMethod
3887         (method): Decorator added for decorating python methods as dbus methods
3888         (signal): Decorator added for decorating python methods as signal emitters
3889         (ObjectType): Metaclass added for generating introspection data and the
3890         method callback vtable
3891         (Interface): Wrapper class added to wrap objects in a dbus interface
3892         (Object): Uses ObjectType as its metaclass and exports Introspect
3893         of the org.freedesktop.DBus.Introspectable interface
3894         (ValidationException, UnknownMethodException): new exceptions
3895
3896         * python/examples/*: Modified to fit with the new bindings
3897
3898 2005-04-23  Havoc Pennington  <hp@redhat.com>
3899
3900         * dbus/dbus-message.c (dbus_message_append_args): fix doc comment,
3901         reported by Tony Houghton
3902
3903         * test/test-service.c (main): test
3904         dbus_connection_get_object_path_data()
3905
3906         * dbus/dbus-object-tree.c (find_handler): be sure we always init
3907         the exact_match
3908         (_dbus_object_tree_get_user_data_unlocked): new function used by
3909         dbus_connection_get_object_path_data()
3910         (do_register): add assertion test for get_user_data_unlocked
3911         (object_tree_test_iteration): more tests
3912
3913         * dbus/dbus-connection.c (dbus_connection_get_object_path_data):
3914         new function from Dan Reed to let you get the user data from 
3915         dbus_connection_register_object_path()
3916
3917 2005-04-23  John (J5) Palmieri  <johnp@redhat.com>
3918
3919         * dbus/dbus-marshal-recursive-util.c: Fixed buffer overflow
3920         in numerous places that did not account for the NULL terminator
3921         (signature_from_seed): changed the manual string copy loop to 
3922         just use strcpy instead
3923         make check should now pass
3924
3925 2005-04-19  John (J5) Palmieri  <johnp@redhat.com>
3926
3927         * dbus/dbus-marshal-header.c (_dbus_header_create): Fix assert
3928         so that it allows messages that are not signals to pass in 
3929         NULL as the interface.
3930
3931 2005-04-18  David Zeuthen  <davidz@redhat.com>
3932
3933         * glib/dbus-gmain.c (io_handler_destroy_source): 
3934         (timeout_handler_destroy_source, connection_setup_free): 
3935         Also unref the source to avoid memory leaks.
3936
3937 2005-04-13  David Zeuthen  <davidz@redhat.com>
3938
3939         * bus/config-parser.c (bus_config_parser_new): Bump this to a
3940         more reasonable, yet still totally arbitrary, value :-). 
3941
3942 2005-04-13  David Zeuthen  <davidz@redhat.com>
3943
3944         * doc/TODO: Added an "important for 1.0" item about selinux
3945         allow/deny messages
3946
3947 2005-04-13  David Zeuthen  <davidz@redhat.com>
3948
3949         * bus/selinux.c: Add c-file-style to top of file
3950         (log_audit_callback): Don't free the data here anymore
3951         (bus_selinux_check): Don't take spid and tpid since appending
3952         that to auxdata may OOM.
3953         (bus_selinux_allows_acquire_service): Handle OOM and signal back
3954         to the caller if we are OOM by taking an error object.
3955         (bus_selinux_allows_send): -do-
3956
3957         * bus/selinux.h: Fix prototypes for bus_selinux_allows_acquire_service
3958         and bus_selinux_allows_send
3959
3960         * bus/bus.c (bus_context_check_security_policy): Pass error and
3961         pass on OOM thrown by bus_selinux_allows_send()
3962
3963         * bus/services.c (bus_registry_acquire_service): Pass error and
3964         pass on OOM thrown by bus_selinux_allows_acquire_service()
3965
3966 2005-04-13  Havoc Pennington  <hp@redhat.com>
3967
3968         * glib/dbus-gmain.c (message_queue_dispatch): only dispatch one
3969         message at a time to avoid monopolizing the main loop, bug 
3970         #2953 from Benjamin Otte
3971
3972 2005-04-09  Havoc Pennington  <hp@redhat.com>
3973
3974         * dbus/dbus-string.c (copy): change a memcpy to memmove due to
3975         possible overlap, fix from Daniel Reed
3976         (fixup_alignment): fix signedness warnings
3977         (_dbus_string_append_unichar): ditto
3978
3979 2005-04-09  Havoc Pennington  <hp@redhat.com>
3980
3981         * dbus/dbus-message-util.c (_dbus_message_test): fix signedness warning
3982
3983         * glib/dbus-glib-tool.c (main): fix warning
3984
3985         * glib/dbus-binding-tool-glib.c (generate_glue): fix warning
3986
3987         * dbus/dbus-connection.c (dbus_connection_read_write_dispatch):
3988         add a new function that can be used in simple applications that
3989         don't have a main loop and are willing to block
3990
3991 2005-04-05  David Zeuthen  <davidz@redhat.com>
3992
3993         Fix https://bugs.freedesktop.org/show_bug.cgi?id=2889
3994
3995         * glib/dbus-gmain.c:
3996         (io_handler_destroy_source): Remove from list of IO handlers
3997         of the ConnectionSetup object
3998         (timeout_handler_destroy_source): -do- for timeout handlers
3999         (io_handler_source_finalized): Don't remove from list since
4000         we now do that in io_handler_destroy_source(). Renamed from
4001         io_handler_source_destroyed
4002         (timeout_handler_source_destroyed): -do- for timeout handlers
4003         (connection_setup_free): It is now safe to iterate over all
4004         IO and timeout handlers as the _destroy_source removes them
4005         from the list synchronously
4006
4007 2005-03-30  Havoc Pennington  <hp@redhat.com>
4008
4009         * configure.in: change check to gtk 2.4
4010
4011         * tools/dbus-viewer.c (name_combo_changed_callback): remove
4012         gtk_combo_box_get_active_text() usage to decrement GTK requirement
4013         to 2.4
4014
4015 2005-03-29  John (J5) Palmieri  <johnp@redhat.com>
4016
4017         * News: Update 0.32
4018
4019         * HACKING: Fixed realease instructions.  configure.in should be updated to
4020           the next release by the person who made the last release.
4021
4022 2005-03-29  John (J5) Palmieri  <johnp@redhat.com>
4023
4024         * python/lvalue_cast_post_process.py - removed.  Patch has been
4025           submitted to Pyrex maintainers that fixes gcc4.0 errors
4026
4027         * python/Makefile.am: removed refrences to lvalue_cast_post_process.py
4028
4029 2005-03-24  Daniel Reed  <n@ml.org>
4030
4031         * tools/Makefile.am: Make print-introspect and
4032         dbus-bus-introspect.xml building conditional on HAVE_GLIB.
4033
4034 2005-03-22  John (J5) Palmieri  <johnp@redhat.com>
4035
4036         * tools/Makefile.am: Patch by Colin Walters that fixes distcheck
4037
4038         * dbus/dbus-userdb.c, dbus/dbus-userdb-util.c: Add patch we have 
4039           had in Red Hat packages for a while but for some reason never 
4040           got merged upstream
4041           (_dbus_is_a_number): New checks if a string
4042           can be converted to a number and does the conversion if it can
4043           (_dbus_user_database_lookup): Add check to see if the given username
4044           is a udi.  This allows udi's to be used instead of usernames in the
4045           config file.
4046           (_dbus_user_database_lookup_group): Add check to see if the given groupname
4047           is a gdi.  This allows gdi's to be used instead of groupnames in the
4048           config file.
4049
4050 2005-03-21  John (J5) Palmieri  <johnp@redhat.com>
4051
4052         * python/lvalue_cast_post_process.py - added post processor to fix Pyrex
4053           code so that it compiles with gcc4.0
4054
4055         * python/Makefile.am: Added lvalue_cast_post_process.py to EXTRA_DIST
4056           run dbus_bindings.c through lvalue_cast_post_process.py and copy the
4057           results back to dbus_binding.c
4058
4059 2005-03-20  Colin Walters  <walters@verbum.org>
4060
4061         Patch suggested by Inguva Rajasekhar <ringuva@novell.com>.
4062
4063         * configure.in: Require GTK+ 2.6.
4064         
4065 2005-03-20  Colin Walters  <walters@verbum.org>
4066
4067         * Makefile.am (SUBDIRS, DIST_SUBDIRS): Build tools before test.
4068
4069 2005-03-17  Tom Parker  <palfrey@tevp.net>
4070
4071         * dbus/dbus-userdb.c (_dbus_user_database_lookup): Don't
4072         print DBUS_UID_UNSET; instead print passed username.  Also
4073         be sure to actually use gid looked up in cache.
4074         
4075         * dbus/dbus-userdb-util.c (_dbus_user_database_lookup_group): Ditto
4076         for DBUS_GID_UNSET and groupname.
4077
4078 2005-03-17  Colin Walters  <walters@verbum.org>
4079
4080         * bus/print-introspect.c: Move to tools/.
4081         * bus/run-with-tmp-session-bus.sh: Ditto.
4082         
4083         * glib/Makefile.am (dbus-glib-bindings.h): Move
4084         generation to tools/Makefile.am.
4085
4086         * test/glib/run-test.sh: Update to handle move
4087         of run-with-tmp-session-bus.sh.
4088
4089         * test/glib/test-service-glib.c: Update to handle
4090         move of dbus-glib-bindings.h.
4091
4092         * tools/print-introspect.c: Moved here
4093         from bus/, and ported to GLib bindings.
4094
4095         * tools/run-with-tmp-session-bus.sh: Moved here
4096         from bus/.
4097
4098         * tools/Makefile.am: Generate dbus-glib-bindings.h
4099         and dbus-bus-introspect.xml here.
4100
4101         * tools/.cvsignore, glib/.cvsignore, bus/.cvsignore:
4102         Update.
4103
4104 2005-03-17  Colin Walters  <walters@verbum.org>
4105
4106         * bus/driver.c (write_args_for_direction): Use
4107         _dbus_string_get_const_data to retrieve string;
4108         _dbus_string_get_const_data_len doesn't actually return
4109         a NULL-terminated substring.
4110
4111         * test/glib/test-service-glib.c: Include dbus-glib-bindings.h.
4112         (main): Change to use org_freedesktop_DBus_request_name
4113         instead of using g_proxy_begin_call/end_call.
4114
4115 2005-03-15  Joe Shaw  <joeshaw@novell.com>
4116
4117         * mono/ProxyBuilder.cs (BuildFinalizer): Fix some invalid IL when
4118         generating the finalizer.  Fixes from Ben Maurer.
4119
4120 2005-03-12  Joe Shaw  <joeshaw@novell.com>
4121
4122         * mono/BusDriver.cs: Update method names: ListServices
4123         becomes ListNames; GetOwner becomes GetNameOwner.
4124
4125         * mono/ProxyBuilder.cs (BuildFinalizer): Need to load arg 0
4126         onto the eval stack when removing the delegate.
4127
4128 2005-03-12  Joe Shaw  <joeshaw@novell.com>
4129
4130         * mono/dbus-sharp.dll.config.in: Don't hardcode 0 for
4131         LT_CURRENT.  Set it to the autoconf variable.
4132                                                                                 
4133         * mono/ProxyBuilder.cs: Add a finalizer to the generated proxy
4134         classes that disconnects the signal handler delegate from the
4135         service object.  Fixes a big leak of proxy objects on the
4136         client side of things.  Patch from Ben Maurer
4137         <bmaurer@ximian.com>
4138
4139 2005-03-12  Colin Walters  <walters@verbum.org>
4140
4141         * bus/driver.c (write_args_for_direction): New function,
4142         parses a type signature into arguments and outputs to
4143         XML.
4144         (bus_driver_handle_introspect): Use it instead of
4145         hardcoding XML for certain signatures.
4146         
4147         * bus/Makefile.am (dbus-bus-introspect.xml): Add
4148         dependency on dbus-daemon.
4149
4150         * glib/dbus-glib-tool.c (main): Parse ignore_unsupported
4151         argument, pass it to dbus_binding_tool_output_glib_client.
4152
4153         * glib/dbus-binding-tool-glib.c
4154         (generate_client_glue): Protect against multiple inclusion.
4155         (dbus_binding_tool_output_glib_client): Add
4156         G_BEGIN_DECLS/G_END_DECLS.
4157
4158         * glib/dbus-binding-tool-glib.c (compute_client_method_name):
4159         Change to just take iface prefix directly.
4160         (write_formal_parameters): Clarify error message.
4161         (check_supported_parameters): New function; checks to see type
4162         signatures of method parameters are supported.
4163         (generate_client_glue): Handle ignore_unsupported flag.
4164         (dbus_binding_tool_output_glib_client): Handle ignore_unsupported
4165         parameter.
4166
4167         * glib/Makefile.am (dbus-glib-bindings.h): Pass
4168         --ignore-unsupported by default until glib bindings
4169         support arrays.
4170
4171 2005-03-11  Colin Walters  <walters@verbum.org>
4172
4173         * glib/Makefile.am: Generate dbus-glib-bindings.h and
4174         install it.
4175
4176         * bus/print-introspect.c: New file; prints introspection
4177         data for a given name and object path.
4178
4179         * bus/run-with-tmp-session-bus.sh: New file, refactored
4180         from test/glib/run-test.sh.  Creates a temporary session
4181         bus and runs another program.
4182
4183         * test/glib/run-test.sh: Refactor to invoke
4184         run-with-tmp-session-bus.sh.
4185
4186         * bus/driver.c (bus_driver_handle_introspect): Fix to print new
4187         introspection format.  Also change to use DBUS_TYPE_x_AS_STRING
4188         macros instead of hardcoding.
4189
4190         * glib/.cvsignore, bus/.cvsignore, test/glib/.cvsignore: Update.
4191
4192 2005-03-11  Joe Shaw  <joeshaw@novell.com>
4193
4194         * dbus/dbus-connection.c (dbus_connection_send_with_reply): Remove
4195         this unref; it doesn't match up evenly in some codepaths.
4196         (_dbus_connection_block_pending_call): Unref at every exitpoint;
4197         this evenly matches with the ref near the top of this function.
4198
4199 2005-03-09  Joe Shaw  <joeshaw@novell.com>
4200
4201         * dbus/dbus-object-tree.c
4202         (_dbus_object_tree_unregister_and_unlock): If checks are enabled
4203         and we try to unregister a path that's not registered, still go
4204         through the process of unlocking and don't just return.
4205
4206 2005-03-09  Colin Walters  <walters@verbum.org>
4207
4208         * glib/dbus-gproxy.c (dbus_g_proxy_invoke): New method; calls
4209         to this are generated for client-side wrappers.  Invokes a
4210         D-BUS method and returns reply values.  
4211
4212         * glib/dbus-binding-tool-glib.c (write_args_sig_for_direction): New
4213         function; writes signature string for argument direction.
4214         (write_args_for_direction): Change to pass input values directly
4215         instead of via address, and fix indentation.
4216         (generate_client_glue): Change to invoke dbus_g_proxy_invoke.  Also
4217         make generated wrappers inlineable.
4218
4219         * dbus/dbus-message.c (dbus_message_iter_get_fixed_array): Add
4220         note about using dbus_type_is_fixed.
4221
4222         * dbus/dbus-marshal-basic.c (_dbus_type_is_fixed): Moved to
4223         dbus/dbus-signature.c as dbus_type_is_fixed.
4224
4225         All callers updated.
4226
4227         * dbus/dbus-signature.c (dbus_type_is_fixed): Moved here
4228         from dbus/dbus-marshal-basic.c:_dbus_type_is_fixed.
4229
4230         * dbus/dbus-signature.h: Prototype.
4231
4232         * glib/dbus-binding-tool-glib.c (compute_marshaller_name): Fix
4233         error printf code.
4234
4235         * test/glib/test-dbus-glib.c (main): Be sure to clear error as
4236         appropriate instead of just freeing it.
4237         (main): Free returned strings using g_free.
4238
4239         * test/glib/Makefile.am (test-service-glib-glue.h)
4240         (test-service-glib-bindings.h): Add dependency on dbus-binding-tool.
4241
4242         * glib/dbus-gvalue.c (MAP_BASIC): Refactored from MAP_BASIC_INIT;
4243         simply maps a simple D-BUS type to GType.
4244         (dbus_dbus_type_to_gtype): Function which maps D-BUS type to
4245         GType.
4246         (dbus_gvalue_init): Just invoke dbus_dbus_type_to_gtype and
4247         initialize the value with it.
4248         (dbus_gvalue_binding_type_from_type): Unused, delete.
4249         (dbus_gvalue_demarshal): Switch to hardcoding demarshalling for
4250         various types instead of unmarshalling to value data directly.
4251         Remove can_convert boolean.
4252         (dbus_gvalue_marshal): Remove duplicate initialization; switch to
4253         returning directly instead of using can_convert boolean.
4254         (dbus_gvalue_store): New function; not related to D-BUS per-se.
4255         Stores a GValue in a pointer to a value of its corresponding C
4256         type.
4257
4258         * glib/dbus-gvalue.h: Remove dbus_gvalue_binding_type_from_type,
4259         add dbus_gvalue_store.
4260
4261 2005-03-08  Joe Shaw  <joeshaw@novell.com>
4262
4263         Fix a bunch of lifecycle and memory management problems
4264         in the mono bindings.
4265
4266         * mono/Arguments.cs (Arguments): Implement IDisposable
4267
4268         * mono/Bus.cs (Bus): Don't allow public instantiation.  This is
4269         strictly a static class.
4270
4271         * mono/Connection.cs: Move the DBusObjectPathVTable and associated
4272         delegates into this file.
4273         (Connection): Implement IDisposable.
4274         (Dispose): Disconnect the connection and set the raw connection
4275         pointer to IntPtr.Zero.
4276         (~Connection): Call Dispose().
4277         (RegisterObjectPath): Added.  Manages the registration of object
4278         paths so we can cleanly disconnect them at dispose/finalize time.
4279         (UnregisterObjectPath): Ditto.
4280         (set_RawConnection): Unregister all of the object paths when
4281         changing the underlying DBusConnection.  Add them back onto the
4282         new connection, if any.
4283
4284         * mono/Handler.cs: Don't implement IDisposable; it doesn't use any
4285         more unmanaged resources anymore, so it's not necessary.  Move all
4286         the DBusObjectPathVTable stuff out of here.
4287         (Handler): Save references to our delegates so that they don't get
4288         finalized.  Call Connection.RegisterObjectPath() instead of
4289         dbus_connection_register_object_path() directly.
4290         (Message_Called): Dispose the message after we're finished with
4291         it.
4292
4293         * mono/Message.cs (Message): Implement IDisposable.
4294         (Dispose): Dispose the Arguments, and set the RawMessage to
4295         IntPtr.Zero.
4296         (SendWithReplyAndBlock): We own the ref to the reply that comes
4297         back from dbus_connection_send_with_reply_and_block() so add a
4298         comment about that and unref it after we've constructed a managed
4299         MethodReturn class around it.  Fixes a big, big leak.
4300
4301         * mono/ProxyBuilder.cs: Reflect into Message to get the Dispose
4302         method.
4303         (BuildSignalHandler): After we've sent the Signal message, dispose
4304         of it.
4305         (BuildMethod): Dispose of the method call and reply messages after
4306         we've sent the message and extracted the data we want from the
4307         reply.
4308
4309         * mono/Service.cs (UnregisterObject): Don't call handler.Dispose()
4310         anymore.
4311         (Service_FilterCalled): Dispose of the message after we're
4312         finished with it.
4313
4314 2005-03-08  Joe Shaw  <joeshaw@novell.com>
4315
4316         * dbus/dbus-connection.c (dbus_connection_send_with_reply):
4317         After we attach our pending call to the connection, unref
4318         it.  Fixes a leak.
4319  
4320         * mono/Connection.cs (set_RawConnection): Disconnect our
4321         filter and match callbacks from the old connection and
4322         reconnect them to the new connection, if any.
4323
4324         * mono/DBusType/Array.cs: "Code" is a static member, so
4325         don't use "this" to refer to it.  Fix for stricter checking
4326         in Mono 1.1.4.
4327  
4328         * mono/DBusType/ObjectPath.cs (Append): Don't leak the
4329         object path that we pass into unmanaged code.
4330  
4331         * mono/DBusType/String.cs (Append): Don't leak the string
4332         that we pass into unmanged code.
4333
4334 2005-03-07  John (J5) Palmieri  <johnp@redhat.com>
4335         * NEWS: Update for 0.31
4336
4337         * configure.in: Release 0.31
4338         add LT_CURRENT, LT_REVISION, LT_AGE for easy soname bumping
4339
4340         * qt/Makefile.am: fixed build
4341
4342         * dbus/Makefile.am: soname bump for libdbus
4343
4344         * glib/Makefile.am: soname bump for libdbus-glib
4345
4346 2005-03-05  Havoc Pennington  <hp@redhat.com>
4347
4348         * dbus/dbus-sysdeps.c:
4349         (pseudorandom_generate_random_bytes_buffer): fix to have no return
4350         value
4351         (_dbus_generate_random_bytes_buffer): fix return value
4352
4353         * dbus/dbus-sysdeps-util.c: s/GETPWNAME/GETPWNAM/ so configure
4354         checks actually work, from Tom Parker <fdo@tevp.net>
4355
4356 2005-03-01  Colin Walters  <walters@verbum.org>
4357
4358         * test/glib/test-dbus-glib.c (lose, lose_gerror): Utility
4359         functions copied from dbus-glib-tool.c.
4360         (main): Convert lots of error code to use them.
4361         Also add some testing for introspection bits.
4362
4363 2005-03-01  Colin Walters  <walters@verbum.org>
4364         
4365         * doc/TODO: Remove introspection signature TODO.
4366
4367 2005-02-27  Colin Walters  <walters@verbum.org>
4368
4369         * glib/dbus-gidl.c (property_info_get_type, arg_info_get_type):
4370         Change return value to const char * instead of int so we can do
4371         full signatures.
4372         (struct PropertyInfo, struct ArgInfo): Store char *.
4373         (property_info_new, arg_info_new): Update parameters, strdup.
4374         (property_info_unref, arg_info_unref): Free.
4375
4376         * glib/dbus-gidl.h: Update prototypes.
4377
4378         * glib/dbus-gparser.c (basic_type_from_string): Delete.
4379         (validate_signature): New function, just validates signature and
4380         sets GError.
4381         (parse_property, parse_arg): Invoke validate_signature.  Store
4382         signature instead of just type code.
4383
4384         * glib/dbus-gvalue.c (base_type_from_signature): New utility
4385         function to return a primary type for a signature, dropping
4386         information about types in container types.
4387         (dbus_gvalue_genmarshal_name_from_type)
4388         (dbus_gvalue_binding_type_from_type)
4389         (dbus_gvalue_ctype_from_type): Update to take full signature
4390          instead of type code.
4391         (dbus_gtype_to_dbus_type): Moved here from glib/dbus-gobject.c.
4392
4393         * glib/dbus-gvalue.h: Update prototypes for above.
4394
4395         * glib/dbus-gobject.c (gtype_to_dbus_type): Moved to
4396         glib/dbus-gvalue.c as dbus_gtype_to_dbus_type.
4397         (introspect_properties, introspect_signals, write_interface):
4398         Update to handle signatures, and remove usage of
4399         _dbus_gutils_type_to_string.
4400         (handle_introspect): Print out type codes instead of e.g. "string"
4401         in hardcoded introspection XML; also use x_AS_STRING constants
4402         instead of hardcoding in string.
4403
4404         * glib/dbus-glib-tool.c (pretty_print): Handle signature change
4405         to string.  Remove usage of _dbus_gutils_type_to_string.
4406
4407         * glib/dbus-gutils.c (_dbus_gutils_type_to_string): Delete.
4408
4409         * glib/dbus-gutils.h (_dbus_gutils_type_to_string): Update for
4410         deletion.
4411         
4412         * glib/dbus-binding-tool-glib.c (compute_marshaller)
4413         (compute_marshaller_name, generate_glue): Handle signature change
4414         to string.
4415         (write_formal_parameters, write_args_for_direction): Ditto, and
4416         remove FIXME.
4417
4418         * tools/dbus-tree-view.c (type_to_string): Delete.
4419         (info_set_func_text): Update to print full signatures.
4420
4421         * test/glib/test-service-glib.xml: Change types to new
4422         introspection format.
4423
4424 2005-02-26  Havoc Pennington  <hp@redhat.com>
4425
4426         * doc/TODO: remove the "guid" item
4427
4428         * test/glib/test-profile.c (no_bus_thread_func): use open_private
4429         (with_bus_thread_func): use open_private
4430
4431         * dbus/dbus-connection.c (dbus_connection_open_private): new
4432         function that works like the old dbus_connection_open()
4433         (dbus_connection_open): now returns an existing connection if
4434         possible
4435
4436         * dbus/dbus-server-unix.c (handle_new_client_fd_and_unlock): pass
4437         through the GUID to the transport
4438
4439         * dbus/dbus-server.c (_dbus_server_init_base): keep around the
4440         GUID in hex-encoded form.
4441
4442         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
4443         pass GUID argument in to the transport
4444
4445         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd): add
4446         guid argument
4447
4448         * dbus/dbus-transport.c (_dbus_transport_init_base): add guid argument
4449
4450         * dbus/dbus-auth.c (_dbus_auth_server_new): add guid argument
4451
4452 2005-02-25  Havoc Pennington  <hp@redhat.com>
4453
4454         * doc/dbus-specification.xml: document the GUID thing
4455
4456         * dbus/dbus-server.c (_dbus_server_init_base): initialize a
4457         globally unique ID for the server, and put a "guid=hexencoded"
4458         field in the address
4459
4460         * dbus/dbus-bus.c: fix missing #include of dbus-threads-internal.h
4461
4462         * dbus/dbus-message.c: ditto
4463
4464         * dbus/dbus-dataslot.c: ditto
4465
4466         * dbus/dbus-list.c: ditto
4467
4468         * dbus/dbus-internals.h: wait, just include
4469         dbus-threads-internal.h here
4470         
4471         * dbus/dbus-string.c (_dbus_string_copy_to_buffer): move back for
4472         use in main library
4473
4474         * dbus/dbus-sysdeps.c (_dbus_generate_random_bytes_buffer): new function
4475
4476 2005-02-24  Colin Walters  <walters@verbum.org>
4477
4478         * test/glib/Makefile.am (EXTRA_DIST): Add test-service-glib.xml
4479
4480 2005-02-24  John (J5) Palmieir  <johnp@redhat.com>
4481
4482         * glib/Makefile.am: added dbus-gobject.h to sources list
4483         so distcheck doesn't fail
4484         
4485 2005-02-24  Havoc Pennington  <hp@redhat.com>
4486
4487         * dbus/dbus-server.c, dbus/dbus-server-unix.c: change semantics so
4488         you must disconnect before unref, since locking and other things
4489         are screwed up otherwise. Fix assorted other locking stuff.
4490
4491         * dbus/dbus-signature.c (dbus_signature_iter_get_element_type):
4492         fix compilation
4493
4494         * dbus/dbus-threads-internal.h: move the mutex/condvar wrappers
4495         into a private header and don't export from the library
4496
4497         * throughout - call _dbus_thread_stuff vs. dbus_thread_stuff
4498
4499 2005-02-24  Colin Walters  <walters@verbum.org>
4500         
4501         * dbus/dbus-signature.c: New file; implements various functions
4502         related to type signatures.  Includes an interator for parsing,
4503         validation functions.
4504         (dbus_type_is_basic): Moved here from
4505         dbus-marshal-basic.c:_dbus_type_is_basic.
4506         (dbus_type_is_container): Moved here from
4507         dbus-marshal-basic.c:_dbus_type_is_container.
4508
4509         All callers of _dbus_type_is_container and _dbus_type_is_basic
4510         updated, and include dbus-signature.h.
4511
4512         * dbus/dbus-signature.h: New file; prototypes for the above.
4513
4514         * dbus/Makefile.am (DBUS_LIB_SOURCES): Add dbus-signature.c,
4515         dbus-signature.h.
4516
4517         * dbus/dbus-marshal-basic.c (map_type_char_to_type): New utility
4518         function factored out of _dbus_first_type_in_signature.
4519         (_dbus_first_type_in_signature_c_str): New function; returns first
4520         type code for a type signature character.
4521
4522         * dbus/dbus-marshal-basic.h: Prototype _dbus_first_type_in_signature_c_str,
4523         handle function moves.
4524
4525         * dbus/dbus-marshal-recursive.h: Export _dbus_type_signature_next.
4526
4527         * dbus/dbus-marshal-recursive.c (_dbus_type_signature_next): New
4528         function; skips to next complete type in type signature.
4529         Implemented using previous skip_one_complete_type.  Now
4530         skip_one_complete_type just delegates to
4531         _dbus_type_signature_next.
4532
4533         * dbus/dbus-marshal-basic.c (_dbus_type_is_basic): Moved
4534         to dbus-signature.c
4535         (_dbus_type_is_container): Ditto.
4536
4537         * doc/dbus-specification.xml: Update introspection sample to
4538         use real type signatures.
4539
4540         * dbus/dbus-test.h: Prototype signature test.
4541
4542         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): Run
4543         signature tests.
4544
4545         * dbus/dbus-protocol.h (DBUS_ERROR_INVALID_SIGNATURE): New error.
4546
4547 2005-02-23  John (J5) Palmieri  <johnp@redhat.com>
4548
4549         * python/dbus_bindings.pyx.in (PendingCall::get_reply):
4550         s/dbus_pending_call_get_reply/dbus_pending_call_steal_reply
4551
4552 2005-02-21  Colin Walters  <walters@verbum.org>
4553
4554         * dbus/dbus-test-main.c (main): Take optional specific test
4555         argument.
4556
4557         * dbus/dbus-test.c (run_test): New function, runs a test function
4558         with no data directory.
4559         (run_data_test): Like above, but takes data directory.
4560         (dbus_internal_do_not_use_run_tests): Take
4561         specific test argument.  Replace lots of cut n' paste code
4562         with run_test and run_data_test.
4563
4564         * dbus/dbus-test.h: Update prototype for
4565         dbus_internal_do_not_use_run_tests.
4566
4567 2005-02-20  Havoc Pennington  <hp@redhat.com>
4568
4569         Fix bugs reported by Daniel P. Berrange
4570         
4571         * dbus/dbus-server.c (_dbus_server_unref_unlocked): new function
4572         (protected_change_watch): new function
4573         (_dbus_server_toggle_watch, _dbus_server_remove_watch)
4574         (_dbus_server_add_watch): change to work like the
4575         dbus-connection.c equivalents; like those, probably kind of
4576         busted, but should at least mostly work for now
4577         (dbus_server_disconnect): drop the lock if we were already
4578         disconnected, patch from Daniel P. Berrange
4579
4580         * dbus/dbus-server.c (_dbus_server_toggle_timeout) 
4581         (_dbus_server_remove_timeout, _dbus_server_add_timeout): all the
4582         same stuff
4583
4584         * doc/TODO: todo about unscrewing this mess
4585
4586 2005-02-19  Colin Walters  <walters@verbum.org>
4587
4588         * glib/dbus-binding-tool-glib.c
4589         (dbus_binding_tool_output_glib_server): Fix iochannel refcounting.
4590
4591         * glib/dbus-glib-tool.c: Include dbus-glib-tool.h, as well
4592         as errno.h and sys/stat.h.
4593         (lose): New function, prints error with
4594         newline and exits.
4595         (lose_gerror): Similar, but takes GError for message.
4596         (main): Add --output argument to specify output file to write to,
4597         instead of always printing to stdout.  In this mode, determine
4598         timestamps on source files to see whether any are newer than the
4599         target file.  If not, exit.  Also convert a number of error
4600         messages to use lose (since it's shorter), and switch to using
4601         g_io_channel_shutdown.
4602
4603 2005-02-19  Havoc Pennington  <hp@redhat.com>
4604
4605         * glib/dbus-gobject.c
4606         (_dbus_glib_marshal_dbus_message_to_gvalue_array): add docs
4607
4608         * glib/dbus-glib.c: fix doxygen warnings
4609
4610         * glib/dbus-gparser.c (parse_annotation): error if an annotation
4611         is found on an <arg>
4612
4613 2005-02-17  Colin Walters  <walters@verbum.org>
4614
4615         * glib/dbus-gobject.h: Don't export
4616         _dbus_glib_marshal_dbus_message_to_gvalue_array.
4617         
4618         * glib/dbus-gobject.c (_dbus_glib_marshal_dbus_message_to_gvalue_array): Do rename.
4619         (invoke_object_method): Handle it.
4620
4621         * glib/dbus-gproxy.c (marshal_dbus_message_to_g_marshaller):
4622         Handle rename.
4623         
4624 2005-02-17  Colin Walters  <walters@verbum.org>
4625
4626         * bus/.cvsignore, doc/.cvsignore
4627         * test/data/valid-service-files/.cvsignore, test/glib/.cvsignore:
4628         Update.
4629
4630 2005-02-17  Colin Walters  <walters@verbum.org>
4631         
4632         * dbus/dbus-protocol.h (DBUS_SERVICE_ORG_FREEDESKTOP_DBUS):
4633         Rename to DBUS_SERVICE_DBUS.
4634         (DBUS_PATH_ORG_FREEDESKTOP_DBUS): Rename to DBUS_PATH_DBUS.
4635         (DBUS_PATH_ORG_FREEDESKTOP_LOCAL): Rename to DBUS_PATH_LOCAL.
4636         Change the value from "org.freedesktop.Local"
4637         to "org.freedesktop.DBus.Local".
4638         (DBUS_INTERFACE_ORG_FREEDESKTOP_DBUS): Rename to DBUS_INTERFACE_DBUS.
4639         (DBUS_INTERFACE_ORG_FREEDESKTOP_INTROSPECTABLE): Rename to
4640         DBUS_INTERFACE_INTROSPECTABLE.
4641         Change the value from "org.freedesktop.Introspectable"
4642         to "org.freedesktop.DBus.Introspectable".
4643         (DBUS_INTERFACE_ORG_FREEDESKTOP_PROPERTIES): Rename to
4644         DBUS_INTERFACE_PROPERTIES.
4645         Change the value from "org.freedesktop.Properties"
4646         to "org.freedesktop.DBus.Properties".
4647         (DBUS_INTERFACE_ORG_FREEDESKTOP_PEER): Rename to
4648         DBUS_INTERFACE_PEER.
4649         Change the value from "org.freedesktop.Peer"
4650         to "org.freedesktop.DBus.Peer".
4651         (DBUS_INTERFACE_ORG_FREEDESKTOP_LOCAL): 
4652         DBUS_INTERFACE_LOCAL.
4653         Change the value from "org.freedesktop.Local"
4654         to "org.freedesktop.DBus.Local".
4655
4656         All other users of those constants have been changed.
4657
4658         * bus/driver.c (bus_driver_handle_introspect): Use constants.
4659
4660         * glib/dbus-gobject.c (handle_introspect): Use constants.
4661
4662         * doc/dbus-faq.xml, doc/dbus-specification.xml: Update for rename.
4663
4664 2005-02-17  Colin Walters  <walters@verbum.org>
4665
4666         * glib/dbus-gparser.c (struct Parser): Add in_annotation boolean.
4667         (parse_node, parse_interface, parse_method, parse_signal)
4668         (parse_property, parse_annotation): Lose if we're currently in an
4669         annotation.
4670         (parse_annotation): New function.
4671         (parser_start_element, parser_end_element): Handle annotation.
4672         (parse_method, parse_interface): Remove support for c_name attribute,
4673         switch to annotations.
4674
4675         * glib/dbus-gidl.h (interface_info_get_binding_names)
4676         (method_info_get_binding_names)
4677         (interface_info_get_binding_name, method_info_get_binding_name)
4678         (interface_info_set_binding_name, method_info_set_binding_name):
4679         Remove.
4680         (interface_info_get_annotations, method_info_get_annotations)
4681         (interface_info_get_annotation, method_info_get_annotation)
4682         (interface_info_add_annotation, method_info_add_annotation):
4683         Prototype.
4684
4685         * glib/dbus-gidl.c (struct InterfaceInfo): Substitute "annotations"
4686         for "bindings".
4687         (struct MethodInfo): Ditto.
4688         Straightfoward conversion of binding methods into annotation methods
4689         as prototyped.
4690
4691         * glib/dbus-glib-tool.c (pretty_print): Print annotations.
4692
4693         * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_C_SYMBOL): Define.
4694
4695         * glib/dbus-binding-tool-glib.c (gather_marshallers, generate_glue):
4696         Use new annotation API.
4697
4698         * doc/introspect.dtd: Fix a number of DTD syntax errors.  Add
4699         annotation element.
4700         
4701         * doc/dbus-specification.xml: Discuss introspection annotations,
4702         include list of well-known annotations.
4703
4704         * test/glib/test-service-glib.xml: Make validate against new DTD.
4705
4706 2005-02-17  Colin Walters  <walters@verbum.org>
4707
4708         This patch is based on initial work from
4709         Paul Kuliniewicz <kuliniew@purdue.edu>.
4710
4711         * glib/dbus-gvalue.c (dbus_gvalue_init): New function; move
4712         initialization of GValue from dbus type to here.
4713         (dbus_gvalue_genmarshal_name_from_type): New function; generates a string
4714         for the "glib-genmarshal" program from a DBus type.
4715         (dbus_gvalue_binding_type_from_type): New function; turns a DBus type
4716         into the C name for it we use in the glib bindings.
4717         (dbus_gvalue_ctype_from_type): New function; maps a DBus type into a
4718         glib C type (not GValue).
4719         (dbus_gvalue_demarshal): invoke dbus_gvalue_init.
4720
4721         * glib/dbus-gutils.c (_dbus_gutils_wincaps_to_uscore): Moved here
4722         from dbus-gobject.c.
4723
4724         * glib/dbus-gutils.h: Prototype it.
4725
4726         * glib/dbus-gproxy.c: Include new dbus-gobject.h.
4727         (marshal_dbus_message_to_g_marshaller): Use new shared function
4728         dbus_glib_marshal_dbus_message_to_gvalue_array.
4729
4730         * glib/dbus-gparser.c (parse_interface, parse_method): Handle c_name attribute.
4731         Will be changed once we have annotations.
4732
4733         * glib/dbus-gobject.c: Change info_hash_mutex from GStaticMutex to
4734         GStaticRWLock.  Callers updated.
4735         (wincaps_to_uscore): Move to dbus-gutils.c.  Callers updated.
4736         (string_table_next): New function for iterating over zero-terminated
4737         string value array.
4738         (string_table_lookup): New function; retrieves specific entry in
4739         array.
4740         (get_method_data): New function; look up method data in object data chunk.
4741         (object_error_domain_prefix_from_object_info)
4742         (object_error_code_from_object_info): New functions, but not implemented yet.
4743         (method_interface_from_object_info): New function; retrieve interface name.
4744         (method_name_from_object_info): New function; retrieve method name.
4745         (method_arg_info_from_object_info): New function; retrieve argument data.
4746         (arg_iterate): New function; iterates over serialized argument data.
4747         (method_dir_signature_from_object_info): New function; returns a
4748         GString holding type signature for arguments for just one
4749         direction (input or output).
4750         (method_input_signature_from_object_info)
4751         (method_output_signature_from_object_info): New functions.
4752         (dbus_glib_marshal_dbus_message_to_gvalue_array): New shared function;
4753         converts dbus message arguments into a GValue array.  Used for both
4754         signal handling and method invocation.
4755         (struct DBusGlibWriteIterfaceData): New utility structure.
4756         (write_interface): New function; generate introspection XML for
4757         an interface.
4758         (introspect_interfaces): New function; gathers all interface->methods,
4759         generates introspection XML for them.
4760         (handle_introspect): Invoke introspect_interfaces.
4761         (get_object_property): Be sure to zero-initalize stack-allocated GValue.
4762         (lookup_object_and_method): New function; examines an incoming message
4763         and attempts to match it up (via interface, method name, and argument
4764         signature) with a known object and method.
4765         (gerror_domaincode_to_dbus_error_name): New function; converts a
4766         GError domain and code into a DBus error name.  Needs GError data
4767         added to object introspection to work well.
4768         (gerror_to_dbus_error_message): Creates a DBusMessage error return from
4769         GError.
4770         (invoke_object_method): New function to invoke an object method
4771         looked up via lookup_object_and_method.  Parses the incoming
4772         message, turns it into a GValue array, then invokes the marshaller
4773         specified in the DBusGMethodInfo.  Creates a new message with
4774         either return values or error message as appropriate.
4775         (gobject_message_function): Invoke lookup_object_and_method and
4776         invoke_object_method.
4777
4778         * glib/dbus-glib-tool.c: Include dbus-binding-tool-glib.h.
4779         (enum DBusBindingOutputMode): New enum for binding output modes.
4780         (pretty_print): Print binding names.
4781         (dbus_binding_tool_error_quark): GError bits.
4782         (version): Fix typo.
4783         (main): Create GIOChannel for output.  Parse new --mode argument,
4784         possible values are "pretty-print", "glib-server", "glib-client".
4785         Use mode to invoke appropriate function.
4786         
4787         * glib/dbus-gobject.h: Prototype dbus_glib_marshal_dbus_message_to_gvalue_array.
4788
4789         * glib/dbus-glib-tool.h: New header, just includes GError bits
4790         for now.
4791
4792         * glib/dbus-gidl.c (struct InterfaceInfo): Add bindings hashtable;
4793         maps binding style to name.
4794         (struct MethodInfo): Ditto.
4795         (get_hash_keys, get_hash_key): Utility function, returns keys for
4796         a GHashTable.
4797         (interface_info_new, method_info_new): Initialize bindings.
4798         (interface_info_unref, method_info_unref): Destroy bindings.
4799         (method_info_get_binding_names, method_info_get_binding_name)
4800         (interface_info_get_binding_names, interface_info_get_binding_name):
4801         Functions for retrieving binding names.
4802         (method_info_set_binding_name, interface_info_set_binding_name):
4803         Functions for setting binding names.
4804
4805         * glib/dbus-binding-tool-glib.h: New file, has prototypes
4806         for glib binding generation.
4807
4808         * glib/dbus-binding-tool-glib.c: New file, implements server-side
4809         and client-side glib glue generation.
4810
4811         * glib/Makefile.am (dbus_binding_tool_SOURCES): Add
4812         dbus-binding-tool-glib.c, dbus-binding-tool-glib.h,
4813         dbus-glib-tool.h.
4814
4815         * dbus/dbus-glib.h (struct DBusGMethodMarshaller): Remove in favor
4816         of using GClosureMarshal directly.
4817         (struct DBusGObjectInfo): Add n_infos member.
4818
4819         * test/glib/test-service-glib.xml: New file; contains introspection data
4820         for MyTestObject used in test-service-glib.c.
4821
4822         * test/glib/test-service-glib.c (enum MyObjectError): New GError enum.
4823         (my_object_do_nothing, my_object_increment, my_object_throw_error)
4824         (my_object_uppercase, my_object_many_args): New test methods.
4825         (main): Use dbus_g_object_class_install_info to include generated object
4826         info.
4827
4828         * test/glib/Makefile.am: Generate server-side glue for test-service-glib.c,
4829         as well as client-side bindings.
4830
4831         * test/glib/test-dbus-glib.c: Include test-service-glib-bindings.h.
4832         (main): Activate TestSuiteGLibService; test invoke a bunch of its methods
4833         using both the dbus_gproxy stuff directly as well as the generated bindings.
4834
4835 2005-02-15  Havoc Pennington  <hp@redhat.com>
4836
4837         * dbus/dbus-connection.c (dbus_connection_dispatch): always
4838         complete a pending call, don't run filters first.
4839
4840         * glib/dbus-gproxy.c (dbus_g_proxy_end_call): change to use
4841         dbus_pending_call_steal_reply
4842
4843         * dbus/dbus-pending-call.c (dbus_pending_call_block): just call
4844         _dbus_connection_block_pending_call
4845         (dbus_pending_call_get_reply): change to steal_reply and return a
4846         ref
4847
4848         * dbus/dbus-connection.c
4849         (dbus_connection_send_with_reply_and_block): port to work in terms
4850         of DBusPendingCall
4851         (_dbus_connection_block_pending_call): replace block_for_reply
4852         with this
4853
4854 2005-02-14  Havoc Pennington  <hp@redhat.com>
4855
4856         * dbus/dbus-userdb-util.c (_dbus_user_database_lookup_group):
4857         properly handle looking up group information by name; fix 
4858         from j@bootlab.org
4859
4860 2005-02-13  Havoc Pennington  <hp@redhat.com>
4861
4862         * dbus/dbus-connection.c (dbus_connection_return_message) 
4863         (dbus_connection_borrow_message): hold dispatch lock while message
4864         is outstanding
4865         (_dbus_connection_block_for_reply): hold dispatch lock while we
4866         block for the reply, so nobody steals our reply
4867         (dbus_connection_pop_message): hold the dispatch lock while we
4868         pluck the message
4869
4870 2005-02-13  Havoc Pennington  <hp@redhat.com>
4871
4872         * dbus/dbus-connection.c (_dbus_connection_acquire_dispatch)
4873         (_dbus_connection_release_dispatch)
4874         (_dbus_connection_acquire_io_path)
4875         (_dbus_connection_release_io_path): make the mutex and condvar
4876         control access to the "acquired" flag. Drop the connection lock
4877         while waiting on the condvar. Hopefully these are baby steps in
4878         roughly the right direction.
4879
4880 2005-02-13  Havoc Pennington  <hp@redhat.com>
4881
4882         * dbus/dbus-connection.c: use separate mutexes for the condition
4883         variables; this is some kind of baseline for sanity, but the
4884         condition variables still aren't used correctly afaict
4885
4886 2005-02-13  Havoc Pennington  <hp@redhat.com>
4887
4888         * dbus/dbus-object-tree.c (handle_default_introspect_and_unlock):
4889         fix a double-unlock
4890
4891         * dbus/dbus-connection.c
4892         (_dbus_connection_detach_pending_call_unlocked): add this
4893
4894         Initial semi-correct pass through to fix thread locking; there are
4895         still some issues with the condition variable paths I'm pretty
4896         sure
4897         
4898         * dbus/dbus-server.c: add a mutex on DBusServer and appropriate
4899         lock/unlock calls
4900
4901         * dbus/dbus-connection.c (_dbus_connection_do_iteration_unlocked):
4902         rename to add _unlocked
4903         (struct DBusConnection): move "dispatch_acquired" and
4904         "io_path_acquired" to use only one bit each.
4905         (CONNECTION_LOCK, CONNECTION_UNLOCK): add checks with !DBUS_DISABLE_CHECKS
4906         (dbus_connection_set_watch_functions): hacky fix to reentrancy
4907         (_dbus_connection_add_watch, _dbus_connection_remove_watch) 
4908         (_dbus_connection_toggle_watch, _dbus_connection_add_timeout) 
4909         (_dbus_connection_remove_timeout) 
4910         (_dbus_connection_toggle_timeout): drop lock when calling out to
4911         user functions; done in a hacky/bad way.
4912         (_dbus_connection_send_and_unlock): add a missing unlock
4913         (_dbus_connection_block_for_reply): add a missing unlock
4914
4915         * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated):
4916         drop lock in a hacky probably unsafe way to call out to user
4917         function
4918
4919 2005-02-12  Havoc Pennington  <hp@redhat.com>
4920
4921         * tools/dbus-tree-view.c (info_set_func_text): display more
4922         details on args
4923
4924         * bus/driver.c (bus_driver_handle_list_services): list the bus
4925         driver
4926
4927         * glib/dbus-gparser.c (parse_arg): generate an arg name if none is supplied
4928
4929         * glib/dbus-gidl.c (signal_info_get_n_args): new function
4930         (method_info_get_n_args): new function
4931
4932 2005-02-12  Havoc Pennington  <hp@redhat.com>
4933
4934         * bus/driver.c (bus_driver_handle_introspect): add introspection
4935         for bus driver
4936
4937 2005-02-12  Havoc Pennington  <hp@redhat.com>
4938
4939         * bus/driver.c: put the signature of each bus driver method in the
4940         table of handlers and check it on incoming calls; this isn't
4941         really useful, but going to add introspect support in a minute.
4942
4943 2005-02-11  Joe Shaw  <joeshaw@novell.com>
4944
4945         * mono/Connection.cs: The unpredictability of finalizers in mono
4946         prevents us from deterministically disconnecting the filters from
4947         the Service class's finalizer, so move tracking of filters and
4948         matches here.  Add API for that.
4949
4950         * mono/Service.cs: Remove the code, add code which calls the
4951         methods now on the Connection class.
4952
4953 2005-02-11  John (J5) Palmieri  <johnp@redhat.com>
4954
4955         * python/dbus.py (class Sender): added to support dbus signals better
4956         (Bus::add_signal_receiver): added expand_args parameter which defaults
4957         to True.  When expand args is True the signal handler will pass the 
4958         message arguments as parameters to the signal handler.  If False
4959         revert to previous behavior where the signal handler must get the
4960         argument list from the message.  This is to help port applications
4961         like HAL that have a tendancy to send variable length argument lists.
4962         self._match_rule_to_receivers is now a dict of dicts.
4963         (Bus::remove_signal_receiver): pop handler off the dict intead of 
4964         removing it from a list
4965         (Bus::_signal_func): change signal handlers so that interface,
4966         signal_name, service, path and message are packed into a Sender
4967         object and that is passed to the handler.  If expand_args is True
4968         extract the args list from the message and append it to the parameter
4969         list
4970         
4971         * python/dbus_bindings.pyx.in (class Signature): added to support 
4972         signiature types
4973         (MessageIter::__init__): changed iteration limit to match D-BUS
4974         (MessageIter::get*): added INT16, UINT16, SIGNATURE, DICT_ENTRY, 
4975         STRUCT and VARIENT type support
4976         (MessageIter::python_value_to_dbus_sig): made recursive to support
4977         recursive types
4978         (MessageIter::append*): added Signature, dict, tuple 
4979         support
4980
4981         * python/examples/example-client.py: added examples of getting tuples
4982         and dicts
4983
4984         * python/examples/example-service.py: added examples of sending tuples
4985         and dicts
4986
4987         * python/examples/example-signal-recipient.py: Fixed to handle new
4988         signal callback format
4989
4990 2005-02-10  Havoc Pennington  <hp@redhat.com>
4991
4992         * test/glib/test-dbus-glib.c (main): fix so this test doesn't fail
4993         (call dbus_g_proxy_add_signal)
4994
4995         * dbus/dbus-server-unix.c (_dbus_server_new_for_tcp_socket):
4996         escape the hostname
4997         (_dbus_server_new_for_domain_socket): escape the path
4998
4999         * dbus/dbus-address.c (dbus_address_escape_value): new
5000         (dbus_address_unescape_value): new
5001         (dbus_parse_address): unescape values
5002
5003         * dbus/dbus-string.c (_dbus_string_append_byte_as_hex): new function
5004
5005         * doc/dbus-specification.xml: explain how to escape values in
5006         addresses
5007
5008 2005-02-10  Havoc Pennington  <hp@redhat.com>
5009
5010         * dbus/dbus-message-factory.c (generate_special): modify test to
5011         avoid using a non-basic dict key
5012
5013         * dbus/dbus-marshal-validate-util.c: add test for the below
5014
5015         * doc/dbus-specification.xml: require that dict keys are a basic
5016         type
5017
5018         * dbus/dbus-marshal-validate.c
5019         (_dbus_validate_signature_with_reason): require that dict key is a
5020         basic type
5021
5022 2005-02-10  Havoc Pennington  <hp@redhat.com>
5023
5024         * dbus/dbus-object-tree.c (handle_default_introspect_and_unlock):
5025         change to be _and_unlock instead of _unlocked
5026
5027         * dbus/dbus-connection.c
5028         (_dbus_connection_send_preallocated_unlocked_no_update): rename to
5029         have no_update so we can find this bug quickly in future
5030
5031 2005-02-10  Havoc Pennington  <hp@redhat.com>
5032
5033         * dbus/dbus-message-util.c (verify_test_message): tests for string
5034         array
5035
5036         * dbus/dbus-message.c (dbus_message_append_args_valist): add
5037         support for arrays of string/signature/path
5038
5039 2005-02-10  Joe Shaw  <joeshaw@novell.com>
5040
5041         * dbus/dbus-connection.c
5042         (_dbus_connection_queue_received_message_link,
5043         _dbus_connection_message_sent): Add the path to
5044         the verbose output.
5045         (_dbus_connection_send_preallocated_and_unlock): Added.  Calls
5046         _dbus_connection_send_preallocated_unlocked(), updated the
5047         dispatch status, and unlocks.  Fixes a bug where certain
5048         situations (like a broken pipe) could cause a Disconnect message
5049         to not be sent, tricking the bus into thinking a service was still
5050         there when the process had quit.
5051         (_dbus_connection_send_preallocated): Call
5052         _dbus_connection_send_preallocated_and_unlock().
5053         (_dbus_connection_send_and_unlock): Added.  Calls
5054         _dbus_connection_send_preallocated_and_unlock().
5055         (dbus_connection_send): Call _dbus_connection_send_and_unlock().
5056         (dbus_connection_send_with_reply): Update the dispatch status and
5057         unlock.
5058
5059         * mono/Service.cs (~Service): Added.  Removes the filter so that
5060         we don't get unmanaged code calling back into a GCed delegate.
5061         (RemoveFilter); Added.
5062
5063 2005-02-09  John (J5) Palmieri  <johnp@redhat.com>
5064
5065         * dbus/dbus-message.c (dbus_message_iter_open_container):
5066         - Removed check for iterator type being an array because
5067         get_arg_type does not work with writer iterators
5068         - Pass NULL to _dbus_type_writer_recurse if signiture is NULL
5069
5070 2005-02-07  Havoc Pennington  <hp@redhat.com>
5071
5072         * doc/dbus-specification.xml: some more language cleanups; add
5073         stuff about how to deal with invalid protocol and extension
5074         points; add _ to allowed chars in auth commands; add EXTENSION_
5075         auth command prefix
5076
5077 2005-02-06  Havoc Pennington  <hp@redhat.com>
5078
5079         * s/expected/required/ in a couple places for clarity
5080
5081 2005-02-07  Colin Walters  <walters@verbum.org>
5082
5083         * bus/selinux.c (bus_selinux_allows_send): Handle NULL for
5084         sender or proposed_recipient.
5085
5086 2005-02-06  Havoc Pennington  <hp@redhat.com>
5087
5088         * dbus/dbus-message-factory.c (generate_special): more tests
5089
5090         * dbus/dbus-marshal-validate.c (validate_body_helper): detect
5091         array length that exceeds the maximum
5092
5093 2005-02-05  Havoc Pennington  <hp@redhat.com>
5094
5095         * dbus/dbus-message-factory.c (generate_special): more test cases,
5096         increasing coverage
5097
5098         * dbus/dbus-marshal-validate.c (validate_body_helper): return the
5099         reason why a signature was invalid
5100
5101         * dbus/dbus-marshal-header.c (load_and_validate_field): fix to
5102         skip the length of the string before we look at it in validation
5103
5104         * dbus/dbus-string-util.c (_dbus_string_test): add tests for
5105         equal_substring
5106
5107         * dbus/dbus-message.c (_dbus_message_loader_new): default
5108         max_message_length to DBUS_MAXIMUM_MESSAGE_LENGTH
5109
5110 2005-02-05  Havoc Pennington  <hp@redhat.com>
5111
5112         * dbus/dbus-marshal-validate.c (validate_body_helper): fix crash
5113         if the signature of a variant was empty
5114         (_dbus_validate_signature_with_reason): catch "(a)" (array inside
5115         struct with no element type)
5116
5117         * dbus/dbus-message-factory.c (generate_uint32_changed): add more
5118         mangled messages to break things
5119
5120 2005-02-04  Havoc Pennington  <hp@redhat.com>
5121
5122         * glib/dbus-gproxy.c (dbus_g_proxy_disconnect_signal): use
5123         g_quark_try_string() so it actually can return 0
5124         (dbus_g_proxy_connect_signal): ditto
5125
5126 2005-02-04  Havoc Pennington  <hp@redhat.com>
5127
5128         * glib/dbus-gproxy.c (dbus_g_proxy_emit_remote_signal): fix a
5129         bogus warning
5130         (tristring_from_message): assert cleanly on null path/interface
5131         (should not be possible though I decided later)
5132         (dbus_g_proxy_dispose): move proxy manager unregistration here
5133         (DBUS_G_PROXY_DESTROYED): add this macro, and use it in a bunch of
5134         g_return_if_fail() checks
5135
5136 2005-02-04  Havoc Pennington  <hp@redhat.com>
5137
5138         * doc/Makefile.am (EXTRA_DIST): add DTDs to makefile
5139
5140         * doc/introspect.dtd: add introspect.dtd from David A. Wheeler
5141         (with some minor changes)
5142
5143         * doc/dbus-specification.xml: add deprecated attribute to
5144         introspection format
5145
5146 2005-01-31  Havoc Pennington  <hp@redhat.com>
5147
5148         * glib/dbus-gproxy.c: rewrite how signals work again, this time I
5149         think it's sort of right
5150
5151 2005-01-30  Havoc Pennington  <hp@redhat.com>
5152
5153         * tools/dbus-viewer.c: kind of half-ass hook up the option menu.
5154
5155 2005-01-30  Havoc Pennington  <hp@redhat.com>
5156
5157         * tools/dbus-names-model.c: dynamically watch NameOwnerChanged
5158
5159         * autogen.sh: change to autotools 1.9
5160
5161         * glib/dbus-gproxy.c: completely change how signals work
5162         (dbus_g_proxy_add_signal): new function to specify signature of a
5163         signal
5164         (dbus_g_proxy_emit_received): marshal the dbus message to GValues,
5165         and g_warning if the incoming message has the wrong signature.
5166
5167 2005-01-30  Havoc Pennington  <hp@redhat.com>
5168
5169         * tools/dbus-names-model.c (have_names_notify): fix this
5170
5171         * dbus/dbus-message.c (_dbus_message_iter_get_args_valist): clean
5172         up the string array handling a bit 
5173
5174 2005-01-30  Havoc Pennington  <hp@redhat.com>
5175
5176         * glib/dbus-glib.c (dbus_g_pending_call_set_notify): new function
5177         (dbus_g_pending_call_cancel): new function
5178
5179         * dbus/dbus-glib.h: move GType decls for connection/message here;
5180         * dbus/dbus-glib.c: move all the g_type and ref/unref stuff in
5181         here, just kind of rationalizing how we handle all that
5182
5183         * tools/dbus-names-model.c: new file for a tree model listing the
5184         services on a bus
5185
5186         * tools/dbus-tree-view.c (model_new): use proper typing on the
5187         model rows
5188
5189 2005-01-30  Havoc Pennington  <hp@redhat.com>
5190
5191         * glib/dbus-gmain.c: add a custom GSource back that just checks
5192         whether the message queue has anything in it; otherwise, there are 
5193         cases where we won't see messages in the queue since there was no 
5194         IO visible to the glib main loop
5195
5196         * dbus/dbus-connection-internal.h (_DBUS_DEFAULT_TIMEOUT_VALUE):
5197         increase default message timeout to 25 seconds
5198
5199 2005-01-30  Havoc Pennington  <hp@redhat.com>
5200
5201         * test/glib/test-profile.c (no_bus_stop_server): remove the
5202         warning about the g_warning that I just fixed
5203
5204         * glib/dbus-gmain.c: rewrite the main loop stuff to avoid the
5205         custom source, seems to be a lot easier to understand and work
5206         better.
5207
5208 2005-01-30  Havoc Pennington  <hp@redhat.com>
5209
5210         I think this main loop thing is conceptually broken, but here are 
5211         some band aids. I'll maybe rewrite it in a minute.
5212         
5213         * glib/dbus-gmain.c (add_timeout): timeout stuff doesn't use the
5214         custom GSource, so don't pass it in; confusing
5215         (gsource_server_finalize, gsource_connection_finalize): add
5216         finalize handlers that remove all the watches.  
5217
5218 2005-01-30  Havoc Pennington  <hp@redhat.com>
5219
5220         * glib/dbus-gobject.c (introspect_properties): fix the XML
5221         generated
5222
5223         * dbus/dbus-message.c (dbus_message_unref): add an in_cache flag
5224         which effectively detects the use of freed messages
5225
5226         * glib/dbus-gobject.c (handle_introspect): modify and return the
5227         reply message instead of the incoming message
5228
5229         * dbus/dbus-object-tree.c (handle_default_introspect_unlocked):
5230         gee, maybe it should SEND THE XML instead of just making a string
5231         and freeing it again ;-)
5232
5233         * tools/dbus-print-message.c (print_message): improve printing of
5234         messages
5235
5236         * configure.in: add debug-glib.service to the output
5237
5238 2005-01-30  Havoc Pennington  <hp@redhat.com>
5239
5240         dbus-viewer introspected and displayed the bus driver
5241         
5242         * dbus/dbus-object-tree.c 
5243         (object_tree_test_iteration): add tests for a handler registered on "/"
5244
5245         * dbus/dbus-object-tree.c
5246         (_dbus_decompose_path): fix to handle path "/" properly
5247         (run_decompose_tests): add tests for path decomposition
5248         
5249         * glib/dbus-gutils.c (_dbus_gutils_split_path): fix to handle "/"
5250         properly
5251
5252         * glib/dbus-gobject.c (handle_introspect): fix quotes
5253
5254         * test/glib/run-test.sh: support launching the bus, then running
5255         dbus-viewer
5256
5257         * test/glib/test-service-glib.c (main): put in a trivial gobject
5258         subclass and register it on the connection
5259
5260         * bus/driver.c (bus_driver_handle_introspect): implement
5261         introspection of the bus driver service
5262
5263         * dbus/dbus-protocol.h: add #defines for the XML namespace,
5264         identifiers, doctype decl
5265
5266         * bus/driver.c (bus_driver_handle_get_service_owner): handle
5267         attempts to get owner of DBUS_SERVICE_ORG_FREEDESKTOP_DBUS by 
5268         returning the service unchanged.
5269         (bus_driver_handle_message): remove old check for reply_serial in
5270         method calls, now the message type deals with that
5271         (bus_driver_handle_message): handle NULL interface
5272
5273         * glib/dbus-gproxy.c (dbus_g_proxy_get_bus_name): new function
5274
5275         * glib/dbus-gloader-expat.c (description_load_from_string): allow
5276         -1 for len
5277
5278         * tools/dbus-viewer.c: add support for introspecting a service on
5279         a bus
5280
5281         * glib/dbus-gproxy.c (dbus_g_pending_call_ref): add
5282         (dbus_g_pending_call_unref): add
5283
5284 2005-01-29  Havoc Pennington  <hp@redhat.com>
5285
5286         * tools/dbus-tree-view.c: add support for displaying properties.
5287         (run dbus-viewer with an introspect xml file as arg, then resize
5288         the window so the tree elements show up, not sure what that is)
5289
5290         * glib/dbus-gobject.c (handle_introspect): return
5291         org.freedesktop.Properties and org.freedesktop.Introspectable
5292         interfaces when we are introspected.
5293
5294         * doc/dbus-specification.xml: allow empty interface name when 
5295         Get/Set a property
5296
5297 2005-01-29  Havoc Pennington  <hp@redhat.com>
5298
5299         * glib/Makefile.am: rename dbus-glib-tool to dbus-binding-tool;
5300         though it uses glib, it could be extended for any binding in
5301         principle
5302
5303         * glib/dbus-gobject.c (gobject_message_function): change to the
5304         new way properties work
5305
5306         * dbus/dbus-protocol.h: add the new interfaces
5307
5308         * doc/dbus-specification.xml: document the introspection format,
5309         Introspectable interface, and add an org.freedesktop.Properties
5310         interface.
5311
5312         * glib/dbus-gparser.c: add support for a <property> element
5313
5314         * glib/dbus-gidl.c: add PropertyInfo
5315
5316         * glib/dbus-gobject.c (handle_introspect): put the outermost
5317         <node> outside the signal and property descriptions.
5318         (introspect_properties): export properties as <property> rather
5319         than as method calls
5320
5321 2005-01-28  Havoc Pennington  <hp@redhat.com>
5322
5323         * doc/TODO, doc/dbus-specification.xml: spec and TODO tweaks
5324         related to authentication protocol
5325
5326 2005-01-28  John (J5) Palmieri  <johnp@redhat.com>
5327
5328         * python/dbus_bindings.pyx.in: Updated to handle new D-BUS type system
5329                 - BUS_ACTIVATION -> BUS_STARTER
5330                 - DBUS_BUS_ACTIVATION -> DBUS_BUS_STARTER
5331                 - class MessageIter (__init__): Added recursion checking 
5332                 so we throw a nice error instead of just disconnecting from the
5333                 bus.
5334                 (get): Added arg_type parameter for recursion.
5335                 Removed the nil type
5336                 Added signiture type placeholder (not implemented)
5337                 Added struct type placeholder (not implemented)
5338                 Added varient type placeholder (not implemented)
5339                 Commented out dict type for now     
5340                 (get_element_type): renamed from get_array_type
5341                 (get_*): changed to use the dbus_message_iter_get_basic API
5342                 (get_*_array): removed in favor of recursive get_array method
5343                 (get_array): new recursive method which calls get to marshal
5344                 the elements of the array
5345                 (value_to_dbus_sig): New method returns the corrasponding
5346                 dbus signiture to a python value
5347                 (append): Comment out dict handling for now
5348                 Handle lists with the new recursive API
5349                 Comment out None handling for now
5350                 (append_nil): removed
5351                 (append_*): changed to use dbus_message_iter_append_basic API
5352                 (append_*_array): removed in favor of recursive append_array 
5353                 method
5354                 (__str__): Make it easier to print out recursive iterators
5355                 for debugging
5356                 - class Message (__str__): moved type inspection to the
5357                 MessageIter class' __str__ method
5358                 (get_iter): Added an append parameter wich defaults to False
5359                 If True use the new API's to create an append iterator
5360
5361         * python/dbus.py: Update to use new bindings API
5362                 - TYPE_ACTIVATION -> TYPE_STARTER
5363                 - class Bus (_get_match_rule): GetServiceOwner -> GetNameOwner
5364                 - class ActivationBus -> class StarterBus
5365                 - class RemoteObject (__call__): get an append iterator
5366                 - (_dispatch_dbus_method_call): get an append iterator
5367                 - class Object (emit_signal): get an append iterator
5368
5369         * python/examples/: Fixed up the examples to work with the new API
5370                 
5371 2005-01-28  Joe Shaw  <joeshaw@novell.com>
5372
5373         * configure.in: Bump version up to 0.30.
5374
5375         * HACKING: Add a release item to bump the version number up after 
5376         a release.
5377
5378 2005-01-28  Havoc Pennington  <hp@redhat.com>
5379
5380         * doc/dbus-specification.xml: update to describe 16-bit types and
5381         dict entries
5382
5383         * dbus/dbus-marshal-basic.c (_dbus_unpack_uint16): fix broken
5384         assertion
5385
5386         * dbus/dbus-protocol.h (DBUS_TYPE_DICT_ENTRY): add DICT_ENTRY as a
5387         type
5388
5389         * dbus/dbus-marshal-recursive.c: implement
5390
5391 2005-01-27  Havoc Pennington  <hp@redhat.com>
5392
5393         * dbus/dbus-arch-deps.h.in: add 16/32-bit types
5394
5395         * configure.in: find the right type for 16 and 32 bit ints as well
5396         as 64
5397
5398         * dbus/dbus-protocol.h (DBUS_TYPE_INT16, DBUS_TYPE_UINT16): add
5399         the 16-bit types so people don't have to stuff them in 32-bit or
5400         byte arrays.
5401
5402 2005-01-27  Havoc Pennington  <hp@redhat.com>
5403
5404         * dbus/dbus-message.c: byteswap the message if you init an
5405         iterator to read/write from it
5406         
5407         * dbus/dbus-marshal-byteswap.c: new file implementing 
5408         _dbus_marshal_byteswap()
5409
5410         * dbus/dbus-marshal-basic.c: add _dbus_swap_array()
5411
5412 2005-01-26  Havoc Pennington  <hp@redhat.com>
5413         
5414         * dbus/dbus-marshal-validate-util.c: break this out (and fix
5415         build, apparently - nobody noticed?)
5416         
5417 2005-01-26  Havoc Pennington  <hp@redhat.com>
5418
5419         * dbus/dbus-marshal-recursive.h: remove todo comment
5420
5421 2005-01-25  Joe Shaw  <joeshaw@novell.com>
5422
5423         * Land the mono binding changes to conform to the new APIs.
5424
5425         * mono/Makefile.am: Remove Custom.cs, DBusType/Custom.cs,
5426         DBusType/Dict.cs, and DBusType/Nil.cs from the build.
5427
5428         * mono/Arguments.cs (GetCodeAsString): Added.  Returns the dbus
5429         type code as a string.
5430         (InitAppending): Rename dbus_message_append_iter_init() to
5431         dbus_message_iter_init_append().
5432
5433         * mono/BusDriver.cs: Rename ServiceEventHandler to
5434         NameOwnerChangedHandler.  Rename GetServiceOwner to GetOwner.
5435         Rename ServiceOwnerChanged to NameOwnerChanged.
5436
5437         * mono/Connection.cs: Rename BaseService to UniqueName, and the
5438         underlying C call.
5439
5440         * mono/Custom.cs: Removed.  The CUSTOM type has been removed.
5441
5442         * mono/Service.cs: Rename Exists to HasOwner, internally rename
5443         dbus_bus_acquire_service() to dbus_bus_request_name().
5444
5445         * mono/DBusType/Array.cs (ctor): Use Type.GetElementType() instead
5446         of Type.UnderlyingSystemType to get the correct element type for
5447         the array.
5448         (ctor): Update code for new APIs: use dbus_message_iter_recurse(),
5449         dbus_message_get_{element|arg}_type() instead of
5450         dbus_message_iter_init_array_iterator().
5451         (Append): Replace dbus_message_iter_append_array() with
5452         dbus_message_iter_open_container() and
5453         dbus_message_iter_close_container().
5454
5455         * mono/DBusType/Custom.cs, mono/DBusType/Nil.cs: Removed.  These
5456         types have been removed.
5457         
5458         * mono/DBusType/*.cs: Replace calls of
5459         dbus_message_iter_get_[type]() to dbus_message_iter_get_basic(),
5460         but specify the type in the DllImport extern declaration.  Ditto
5461         for dbus_message_iter_append_[type]() ->
5462         dbus_message_iter_append_basic().
5463
5464         * mono/example/BusListener.cs: Update for ServiceEventHandler ->
5465         NameOwnerChangedHandler.
5466
5467 2005-01-25  John (J5) Palmieri  <johnp@redhat.com>
5468
5469         * python/dbus_bindings.pyx.in: Rename of methods and bindings
5470                 - get_base_service -> get_unique_name
5471                 - bus_get_base_service -> bus_get_unique_name
5472                 - dbus_bus_get_base_service -> dbus_bus_get_unique_name
5473                 - ACTIVATION_REPLY_ACTIVATED -> DBUS_START_REPLY_SUCCESS 
5474                 - ACTIVATION_REPLY_ALREADY_ACTIVE -> DBUS_START_REPLY_ALREADY_RUNNING
5475                 - bus_activate_service -> bus_start_service_by_name
5476                 - dbus_bus_activate_service -> dbus_bus_start_service_by_name
5477                 - bus_acquire_service -> bus_request_name
5478                 - dbus_bus_acquire_service -> dbus_bus_request_name
5479                 - bus_service_exists -> bus_name_has_owner
5480                 - dbus_bus_service_exists -> dbus_bus_name_has_owner
5481
5482         * python/dbus.py: Rename of methods
5483                 - activate_service -> start_service_by_name
5484                 - bus_acquire_service -> bus_request_name
5485                 - ACTIVATION_REPLY_ACTIVATED -> START_REPLY_SUCCESS 
5486                 - ACTIVATION_REPLY_ALREADY_ACTIVE -> START_REPLY_ALREADY_RUNNING
5487
5488         
5489 2005-01-24  Joe Shaw  <joeshaw@novell.com>
5490
5491         * dbus/dbus-connection.c (dbus_connection_dispatch): Print out the
5492         signature for the method that can't be found.
5493
5494         * dbus/dbus-message.c (dbus_message_iter_init): To check to see if
5495         the message has any arguments, we need to call
5496         _dbus_type_reader_get_current_type(), not
5497         _dbus_type_reader_has_next().
5498
5499 2005-01-24  Havoc Pennington  <hp@redhat.com>
5500
5501         * dbus/dbus-message-factory.c: more testing of message validation
5502
5503         * dbus/dbus-protocol.h (DBUS_MINIMUM_HEADER_SIZE): move to this
5504         header
5505
5506 2005-01-23  Havoc Pennington  <hp@redhat.com>
5507
5508         * dbus/dbus-message-factory.c, dbus/dbus-message-util.c: 
5509         get this all working, not many tests in the framework yet though
5510
5511 2005-01-22  Havoc Pennington  <hp@redhat.com>
5512
5513         * doc/dbus-faq.xml, doc/dbus-tutorial: add a FAQ and update
5514         tutorial, based on work from David Wheeler.
5515
5516 2005-01-21  Havoc Pennington  <hp@redhat.com>
5517
5518         * dbus/dbus-bus.c: add more return_if_fail checks
5519
5520         * dbus/dbus-message.c (load_message): have the "no validation"
5521         mode (have to edit the code to toggle the mode for now though)
5522
5523         * dbus/dbus-marshal-header.c (_dbus_header_load): have a mode that
5524         skips all validation; I want to use this at least for benchmark
5525         baseline, I'm not sure if it should be a publicly-available switch.
5526
5527 2005-01-21  Havoc Pennington  <hp@redhat.com>
5528
5529         * glib/dbus-gmain.c: don't put the GLib bindings in the same
5530         toplevel doxygen group as the low-level API stuff
5531
5532         * dbus/dbus.h: note that libdbus is the low-level API
5533
5534 2005-01-20  Havoc Pennington  <hp@redhat.com>
5535
5536         * update-dbus-docs.sh: script to update docs on the web site, only
5537         works for me though. neener.
5538
5539 2005-01-20  Havoc Pennington  <hp@redhat.com>
5540
5541         * dbus/dbus-sysdeps.c (_dbus_poll): amazingly, trying to compile
5542         code can reveal bugs in it
5543
5544 2005-01-20  Havoc Pennington  <hp@redhat.com>
5545
5546         * dbus/dbus-sysdeps.c (_dbus_poll): fix several bugs in the
5547         select() version, patches from Tor Lillqvist
5548
5549 2005-01-20  Havoc Pennington  <hp@redhat.com>
5550
5551         * doc/dbus-tutorial.xml: replace > with &gt;
5552
5553         * bus/services.c (bus_registry_acquire_service): validate the name
5554         and return a better error if it's no good.
5555
5556         * doc/dbus-specification.xml: note NO_AUTO_START change
5557
5558         * dbus/dbus-protocol.h (DBUS_HEADER_FLAG_NO_AUTO_START): change
5559         from AUTO_START, we're toggling the default
5560
5561         * bus/dispatch.c: adapt the tests to change of auto-start default
5562
5563 2005-01-18  Havoc Pennington  <hp@redhat.com>
5564
5565         * rename dbus-daemon-1 to dbus-daemon throughout
5566
5567 2005-01-18  Havoc Pennington  <hp@redhat.com>
5568
5569         * Throughout, grand renaming to strip out the use of "service",
5570         just say "name" instead (or "bus name" when ambiguous).  Did not
5571         change the internal code of the message bus itself, only the
5572         programmer-facing API and messages.
5573         
5574         * doc/dbus-specification.xml: further update the message bus section
5575         
5576         * bus/config-parser.c (all_are_equiv): fix bug using freed string
5577         in error case
5578
5579 2005-01-17  Havoc Pennington  <hp@redhat.com>
5580
5581         * dbus/dbus-types.h: remove 16-bit types since we don't use them
5582         ever
5583
5584         * dbus/dbus-marshal-validate.c (_dbus_validate_path): disallow any
5585         "invalid name character" not only non-ASCII
5586
5587         * doc/dbus-specification.xml: further update spec, message bus 
5588         parts are still out-of-date but the marshaling etc. stuff is now
5589         accurate-ish
5590
5591 2005-01-17  Havoc Pennington  <hp@redhat.com>
5592
5593         * doc/dbus-specification.xml: partially update spec
5594
5595 2005-01-17  Havoc Pennington  <hp@redhat.com>
5596
5597         * Throughout, align variant bodies according to the contained
5598         type, rather than always to 8. Should save a fair bit of space in
5599         message headers.
5600         
5601         * dbus/dbus-marshal-validate.c (_dbus_validate_body_with_reason):
5602         fix handling of case where p == end
5603
5604         * doc/TODO: remove the dbus_bool_t item and variant alignment items
5605
5606 2005-01-17  Havoc Pennington  <hp@redhat.com>
5607
5608         * dbus/dbus-types.h: hardcode dbus_bool_t to 32 bits
5609
5610         * Throughout: modify DBUS_TYPE_BOOLEAN to be a 32-bit type instead
5611         of an 8-bit type. Now dbus_bool_t is the type to use whenever you 
5612         are marshaling/unmarshaling a boolean.
5613
5614 2005-01-16  Havoc Pennington  <hp@redhat.com>
5615
5616         This is about it on what can be disabled/deleted from libdbus
5617         easily, back below 150K anyhow. Deeper cuts are more work than 
5618         just turning the code off as I've done here.
5619         
5620         * dbus/dbus-marshal-basic.c (_dbus_pack_int32): we don't need the
5621         signed int convenience funcs
5622
5623         * dbus/dbus-internals.c (_dbus_verbose_real): omit when not in
5624         verbose mode
5625
5626         * dbus/dbus-string-util.c, dbus/dbus-string.c: more breaking
5627         things out of libdbus
5628
5629         * dbus/dbus-sysdeps.c, dbus/dbus-sysdeps-util.c: same
5630         
5631         * dbus/dbus-hash.c: purge the TWO_STRINGS crap (well, make it
5632         tests-enabled-only, though it should probably be deleted)
5633
5634         * dbus/dbus-message-util.c: same stuff
5635
5636         * dbus/dbus-auth-util.c: same stuff
5637
5638 2005-01-16  Havoc Pennington  <hp@redhat.com>
5639
5640         * dbus/dbus-userdb-util.c: split out part of dbus-userdb.c
5641
5642         * dbus/dbus-sysdeps.c (_dbus_uid_from_string): move here to pave
5643         way for stripping down dbus-userdb.c stuff included in libdbus.
5644         Rename _dbus_parse_uid for consistency.
5645
5646 2005-01-16  Havoc Pennington  <hp@redhat.com>
5647
5648         * dbus/dbus-internals.c (_dbus_real_assert): print the function
5649         name the assertion failed in
5650
5651         * dbus/dbus-internals.h (_dbus_return_if_fail) 
5652         (_dbus_return_val_if_fail): assert that the name of the function
5653         containing the check doesn't start with '_', since we only want to 
5654         use checks on public functions
5655         
5656         * dbus/dbus-connection.c (_dbus_connection_ref_unlocked): change
5657         checks to assertions
5658
5659         * dbus/dbus-marshal-header.c (_dbus_header_set_field_basic):
5660         change checks to asserts for private function
5661
5662         * dbus/dbus-message.c (_dbus_message_set_serial): checks
5663         to asserts for private function
5664
5665         * dbus/dbus-marshal-recursive.c (skip_one_complete_type): remove
5666         broken assertion that was breaking make check
5667         (_dbus_type_reader_array_is_empty): remove this rather than fix
5668         it, was only used in assertions
5669
5670 2005-01-16  Havoc Pennington  <hp@redhat.com>
5671
5672         * test/unused-code-gc.py: hacky script to find code that's used
5673         only by the bus (not libdbus) or used only by tests or not used at
5674         all. It has some false alarms, but looks like we can clean up a
5675         lot of size from libdbus.
5676
5677         * dbus/dbus-sysdeps.c, dbus/dbus-sysdeps-utils.c,
5678         dbus/Makefile.am: initially move 10K of binary size out of libdbus
5679         
5680 2005-01-16  Havoc Pennington  <hp@redhat.com>
5681
5682         * Add and fix docs according to Doxygen warnings throughout
5683         source.
5684         
5685         * dbus/dbus-marshal-recursive.c
5686         (_dbus_type_reader_array_is_empty): change this to just call
5687         array_reader_get_array_len() and make it static
5688
5689         * dbus/dbus-message.c (dbus_message_iter_get_element_type): rename
5690         from get_array_type
5691         (dbus_message_iter_init_append): rename from append_iter_init
5692
5693         * dbus/dbus-marshal-recursive.c
5694         (_dbus_type_reader_get_element_type): rename from
5695         _dbus_type_reader_get_array_type
5696
5697 2005-01-15  Havoc Pennington  <hp@redhat.com>
5698
5699         * test/glib/test-profile.c (with_bus_server_filter): fix crash
5700
5701         * dbus/dbus-marshal-basic.c (_dbus_unpack_uint32): inline as macro
5702         when DBUS_DISABLE_ASSERT
5703         (_dbus_marshal_set_basic): be sure we align for the string length
5704
5705         * dbus/dbus-marshal-recursive.c (skip_one_complete_type): make
5706         this look faster
5707
5708         * dbus/dbus-string.c (_dbus_string_get_const_data_len): add an
5709         inline macro version
5710         (_dbus_string_set_byte): provide inline macro version
5711
5712 2005-01-15  Havoc Pennington  <hp@redhat.com>
5713
5714         * Land the new message args API and type system.
5715
5716         This patch is huge, but the public API change is not 
5717         really large. The set of D-BUS types has changed somewhat, 
5718         and the arg "getters" are more geared toward language bindings;
5719         they don't make a copy, etc.
5720
5721         There are also some known issues. See these emails for details
5722         on this huge patch:
5723         http://lists.freedesktop.org/archives/dbus/2004-December/001836.html
5724         http://lists.freedesktop.org/archives/dbus/2005-January/001922.html
5725         
5726         * dbus/dbus-marshal-*: all the new stuff
5727
5728         * dbus/dbus-message.c: basically rewritten
5729
5730         * dbus/dbus-memory.c (check_guards): with "guards" enabled, init
5731         freed blocks to be all non-nul bytes so using freed memory is less
5732         likely to work right
5733
5734         * dbus/dbus-internals.c (_dbus_test_oom_handling): add
5735         DBUS_FAIL_MALLOC=N environment variable, so you can do
5736         DBUS_FAIL_MALLOC=0 to skip the out-of-memory checking, or
5737         DBUS_FAIL_MALLOC=10 to make it really, really, really slow and
5738         thorough.
5739
5740         * qt/message.cpp: port to the new message args API
5741         (operator<<): use str.utf8() rather than str.unicode()
5742         (pretty sure this is right from the Qt docs?)
5743
5744         * glib/dbus-gvalue.c: port to the new message args API
5745
5746         * bus/dispatch.c, bus/driver.c: port to the new message args API
5747
5748         * dbus/dbus-string.c (_dbus_string_init_const_len): initialize the
5749         "locked" flag to TRUE and align_offset to 0; I guess we never
5750         looked at these anyhow, but seems cleaner.
5751
5752         * dbus/dbus-string.h (_DBUS_STRING_ALLOCATION_PADDING):
5753         move allocation padding macro to this header; use it to implement
5754         (_DBUS_STRING_STATIC): ability to declare a static string.
5755
5756         * dbus/dbus-message.c (_dbus_message_has_type_interface_member):
5757         change to return TRUE if the interface is not set.
5758
5759         * dbus/dbus-string.[hc]: move the D-BUS specific validation stuff
5760         to dbus-marshal-validate.[hc]
5761
5762         * dbus/dbus-marshal-basic.c (_dbus_type_to_string): move here from
5763         dbus-internals.c
5764
5765         * dbus/Makefile.am: cut over from dbus-marshal.[hc]
5766         to dbus-marshal-*.[hc]
5767
5768         * dbus/dbus-object-tree.c (_dbus_decompose_path): move this
5769         function here from dbus-marshal.c
5770
5771 2005-01-12  Joe Shaw  <joeshaw@novell.com>
5772
5773         * NEWS: Update for 0.23.
5774
5775         * configure.in: Release 0.23.
5776
5777 2005-01-12  Joe Shaw  <joeshaw@novell.com>
5778
5779         * mono/Makefile.am, mono/example/Makefile.am: Always build the 
5780         dbus DLL with --debug.  Clean up after the .mdb files this leaves
5781         behind.
5782
5783         * mono/doc/Makefile.am: Need to uninstall the docs on "make
5784         uninstall"
5785
5786         * mono/Arguments.cs (GetDBusTypeConstructor): If the type
5787         is an enum, get the enum's underlying type.  Another mono
5788         1.1.3 fix.
5789
5790 2005-01-11  Joe Shaw  <joeshaw@novell.com>
5791
5792         Patch from Sjoerd Simons <sjoerd@luon.net>
5793
5794         * mono/Makefile.am, mono/example/Makefile.am: Don't redefine
5795         DESTDIR.  It breaks stuff.
5796
5797 2005-01-11  Joe Shaw  <joeshaw@novell.com>
5798
5799         Patch from Tambet Ingo <tambet@ximian.com>
5800
5801         * mono/DBusType/Array.cs (Get): Get the underlying element type by
5802         calling type.GetElementType().  The code previously depended on
5803         broken Mono behavior, which was fixed in Mono 1.1.3.
5804
5805         * mono/DBusType/Dict.cs (constructor): Fix the parameters for
5806         Activator.CreateInstance() so that the class's constructor is
5807         called with the right parameters.
5808
5809 2005-01-11  Joe Shaw  <joeshaw@novell.com>
5810
5811         Patch from Timo Teräs <ext-timo.teras@nokia.com>
5812
5813         * dbus/dbus-connection.c
5814         (_dbus_connection_queue_received_message_link): Call
5815         _dbus_connection_remove_timeout() instead of the _locked()
5816         variant, since it's always called from
5817         _dbus_connection_handle_watch(), which handles the locking.
5818         Removed the _locked() variant since it's no longer used.
5819
5820 2005-01-03  Havoc Pennington  <hp@redhat.com>
5821
5822         * dbus/dbus-internals.h: I'm an idiot, _dbus_assert certainly can
5823         return
5824         
5825 2004-12-26  Havoc Pennington  <hp@redhat.com>
5826
5827         * dbus/dbus-internals.h: add _DBUS_GNUC_NORETURN to _dbus_assert
5828
5829 2005-01-03  Havoc Pennington  <hp@redhat.com>
5830
5831         * dbus/dbus-sysdeps.c (_dbus_sysdeps_test): fix using == on
5832         floating point
5833
5834         * dbus/dbus-string.c (_dbus_string_insert_alignment): new function
5835
5836 2005-01-02  Havoc Pennington  <hp@redhat.com>
5837
5838         * dbus/dbus-internals.h (_DBUS_ALIGN_OFFSET): new macro
5839
5840 2005-01-01  Havoc Pennington  <hp@redhat.com>
5841
5842         * configure.in: add -Wfloat-equal
5843
5844 2005-01-01  Havoc Pennington  <hp@redhat.com>
5845
5846         * dbus/dbus-sysdeps.h: add _DBUS_DOUBLES_BITWISE_EQUAL macro, 
5847         for a variety of reasons '==' doesn't do this.
5848
5849 2004-12-31  Havoc Pennington  <hp@redhat.com>
5850
5851         * dbus/dbus-string.c (_dbus_string_equal_substrings): new function
5852         I keep wishing I had
5853
5854 2004-12-30  John (J5) Palmieri  <johnp@redhat.com>
5855
5856         * python/dbus.py: s/ACTIVATION_REPLY_ACTIVE/ACTIVATION_REPLY_ACTIVATED
5857
5858 2004-12-30  John (J5) Palmieri  <johnp@redhat.com>
5859
5860         * python/dbus_bindings.pyx.in: Change DBUS_ACTIVATION_REPLY_ACTIVATED
5861         and DBUS_ACTIVATION_REPLY_ALREADY_ACTIVE to match the values in
5862         dbus-protocol.h.  Because they are defines and not enums they are not
5863         autogenerated.
5864
5865 2004-12-26  John (J5) Palmieri  <johnp@redhat.com>
5866
5867         * python/dbus_bindings.pyx.in (bus_activate_service): Bind
5868         dbus_bus_activate_service
5869
5870         * python/dbus.py (Bus.activate_service): activate a service on the
5871         bus.
5872
5873 2004-12-24  Havoc Pennington  <hp@redhat.com>
5874
5875         * test/decode-gcov.c: change to use .gcno and .gcda files, but the
5876         file format has also changed and I haven't adapted to that yet
5877         
5878         * Makefile.am: load .gcno files from latest gcc
5879
5880 2004-12-23  John (J5) Palmieri  <johnp@redhat.com>
5881         * Patch from Rob Taylor <robtaylor@fastmail.fm>
5882
5883         * python/dbus_bindings.pyx.in (bus_get_unix_user): New
5884         lowlevel binding
5885
5886         * python/dbus.py (get_unix_user): Added binding to 
5887         call dbus_bindings.bus_get_unix_user
5888
5889         * python/extract.py: Modified the proto_pat regex to
5890         handle unsigned long
5891
5892 2004-12-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
5893
5894         * dbus/make-dbus-glib-error-enum.sh: omit the function keyword for
5895         better POSIX compliance.
5896
5897 2004-12-19  Havoc Pennington  <hp@redhat.com>
5898
5899         * dbus/dbus-string.c (_dbus_string_insert_4_aligned) 
5900         (_dbus_string_insert_8_aligned): new functions
5901
5902         * dbus/dbus-string.c (_dbus_string_alloc_space): new function
5903
5904 2004-12-18  Havoc Pennington  <hp@redhat.com>
5905
5906         * dbus/dbus-string.c (_dbus_string_validate_ascii): use ISASCII
5907         macro
5908
5909         * dbus/dbus-message.c: fix a comment, and add a still-unused
5910         not-implemented function
5911
5912         * dbus/dbus-marshal.h: fix comment
5913
5914         * dbus/dbus-internals.h (_DBUS_ISASCII): new macro
5915
5916 2004-12-17  Joe Shaw  <joeshaw@novell.com>
5917
5918         * mono/DBusType/Byte.cs, mono/DBusType/Int32.cs,
5919         mono/DBusType/Int64.cs, mono/DBusType/UInt32.cs,
5920         mono/DBusType/UInt64.cs: Use Enum.GetUnderlyingType() instead of
5921         Type.UnderlyingSystemType to get the actual system type
5922         underneath.  This code previously depended on the broken Mono
5923         behavior, which was fixed in 1.1.3.
5924
5925 2004-11-27  Havoc Pennington  <hp@redhat.com>
5926
5927         * dbus/dbus-string.h (_dbus_string_get_byte): inline when asserts
5928         are disabled
5929         (_dbus_string_get_const_data): inline when asserts are disabled
5930
5931         * dbus/dbus-message.c: record the _dbus_current_generation of
5932         creation so we can complain if dbus_shutdown() is used improperly.
5933         Do this only if checks are enabled.
5934
5935         * dbus/dbus-connection.c: ditto
5936         
5937 2004-11-26  Havoc Pennington  <hp@redhat.com>
5938
5939         * test/glib/test-profile.c: add with_bus mode to profile echoes
5940         that go through the bus.
5941
5942         * test/glib/run-test.sh: add ability to run test-profile
5943
5944         * bus/dbus-daemon-1.1.in: fix to say that SIGHUP causes partial
5945         config file reload.
5946
5947 2004-11-26  Havoc Pennington  <hp@redhat.com>
5948
5949         * test/glib/test-profile.c: clean up how the fake_malloc_overhead
5950         thing was implemented
5951
5952 2004-11-26  Havoc Pennington  <hp@redhat.com>
5953
5954         * test/glib/test-profile.c: tweak a bit, add support for some
5955         made-up minimal malloc overhead with plain sockets, since in 
5956         real life some sort of buffers are unavoidable thus we could 
5957         count them in the theoretical best case
5958
5959 2004-11-26  Havoc Pennington  <hp@redhat.com>
5960
5961         * dbus/dbus-message.c (dbus_message_cache_or_finalize): fix bug
5962         where I was trying to cache one too many messages
5963
5964 2004-11-26  Havoc Pennington  <hp@redhat.com>
5965
5966         * dbus/dbus-message.c: reimplement message cache as an array which 
5967         makes the cache about twice as fast and saves maybe 1.5% overall
5968
5969 2004-11-26  Havoc Pennington  <hp@redhat.com>
5970
5971         * dbus/dbus-threads.c (init_global_locks): forgot to put the
5972         message cache lock here
5973
5974 2004-11-26  Havoc Pennington  <hp@redhat.com>
5975
5976         * dbus/dbus-message.c (struct DBusMessage): put the locked bit and
5977         the "char byte_order" next to each other to save 4 bytes
5978         (dbus_message_new_empty_header): reduce preallocation, since the
5979         message cache should achieve a similar effect
5980         (dbus_message_cache_or_finalize, dbus_message_get_cached): add a
5981         message cache that keeps a few DBusMessage around in a pool,
5982         another 8% speedup or so.
5983
5984         * dbus/dbus-dataslot.c (_dbus_data_slot_list_clear): new function
5985
5986 2004-11-25  Havoc Pennington  <hp@redhat.com>
5987
5988         * dbus/dbus-transport-unix.c (unix_do_iteration): if we're going
5989         to write, without reading or blocking, try it before the poll()
5990         and skip the poll() if nothing remains to write. This is about a
5991         3% speedup in the echo client/server
5992
5993 2004-11-25  Havoc Pennington  <hp@redhat.com>
5994
5995         The primary change here is to always write() once before adding
5996         the write watch, which gives us about a 10% performance increase.
5997         
5998         * dbus/dbus-transport-unix.c: a number of modifications to cope
5999         with removing messages_pending
6000         (check_write_watch): properly handle
6001         DBUS_AUTH_STATE_WAITING_FOR_MEMORY; adapt to removal of
6002         messages_pending stuff
6003         (check_read_watch): properly handle WAITING_FOR_MEMORY and
6004         AUTHENTICATED cases
6005         (unix_handle_watch): after writing, see if the write watch can be
6006         removed
6007         (unix_do_iteration): assert that write_watch/read_watch are
6008         non-NULL rather than testing that they aren't, since they 
6009         aren't allowed to be NULL. check_write_watch() at the end so 
6010         we add the watch if we did not finish writing (e.g. got EAGAIN)
6011
6012         * dbus/dbus-transport-protected.h: remove messages_pending call,
6013         since it resulted in too much inefficient watch adding/removing; 
6014         instead we now require that the transport user does an iteration 
6015         after queueing outgoing messages, and after trying the first
6016         write() we add a write watch if we got EAGAIN or exceeded our 
6017         max bytes to write per iteration setting
6018
6019         * dbus/dbus-string.c (_dbus_string_validate_signature): add this
6020         function
6021
6022         * dbus/dbus-server-unix.c (unix_finalize): the socket name was
6023         freed and then accessed, valgrind flagged this bug, fix it
6024
6025         * dbus/dbus-message.c: fix several bugs where HEADER_FIELD_LAST was taken
6026         as the last valid field plus 1, where really it is equal to the
6027         last valid field. Corrects some message corruption issues.
6028
6029         * dbus/dbus-mainloop.c: verbosity changes
6030
6031         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): handle OOM
6032         instead of aborting in one of the test codepaths
6033
6034         * dbus/dbus-internals.c (_dbus_verbose_real): fix a bug that
6035         caused not printing the pid ever again if a verbose was missing
6036         the newline at the end
6037         (_dbus_header_field_to_string): add HEADER_FIELD_SIGNATURE
6038
6039         * dbus/dbus-connection.c: verbosity changes; 
6040         (dbus_connection_has_messages_to_send): new function
6041         (_dbus_connection_message_sent): no longer call transport->messages_pending
6042         (_dbus_connection_send_preallocated_unlocked): do one iteration to
6043         try to write() immediately, so we can avoid the write watch. This
6044         is the core purpose of this patchset
6045         (_dbus_connection_get_dispatch_status_unlocked): if disconnected,
6046         dump the outgoing message queue, so nobody will get confused
6047         trying to send them or thinking stuff is pending to be sent
6048
6049         * bus/test.c: verbosity changes
6050
6051         * bus/driver.c: verbosity/assertion changes
6052
6053         * bus/dispatch.c: a bunch of little tweaks to get it working again
6054         because this patchset changes when/where you need to block.
6055
6056 2004-11-23  Havoc Pennington  <hp@redhat.com>
6057
6058         * test/glib/test-profile.c: modify to accept a plain_sockets
6059         argument in which case it will bench plain sockets instead of
6060         libdbus, for comparison purposes.
6061
6062 2004-11-22  Havoc Pennington  <hp@redhat.com>
6063
6064         * test/glib/test-profile.c (N_CLIENT_THREADS): run multiple
6065         threads for more time, so sysprof can get a grip on it.
6066
6067         * dbus/dbus-string.c (_dbus_string_validate_utf8): remove
6068         pointless variable
6069
6070 2004-11-13  Havoc Pennington  <hp@redhat.com>
6071
6072         * test/glib/test-profile.c: fix this thing up a bit
6073
6074         * dbus/dbus-message.c (dbus_message_new_empty_header): increase
6075         preallocation sizes by a fair bit; not sure if this will be an
6076         overall performance win or not, but it does reduce reallocs.
6077
6078         * dbus/dbus-string.c (set_length, reallocate_for_length): ignore
6079         the test hack that forced constant realloc if asserts are
6080         disabled, so we can profile sanely. Sprinkle in some
6081         _DBUS_UNLIKELY() which are probably pointless, but before I
6082         noticed the real performance problem I put them in.
6083         (_dbus_string_validate_utf8): micro-optimize this thing a little
6084         bit, though callgrind says it didn't help; then special-case
6085         ascii, which did help a lot; then be sure we detect nul bytes as
6086         invalid, which is a bugfix.
6087         (align_length_then_lengthen): add some more _DBUS_UNLIKELY
6088         superstition; use memset to nul the padding instead of a manual
6089         loop.
6090         (_dbus_string_get_length): inline this as a
6091         macro; it showed up in the profile because it's used for loop
6092         tests and so forth
6093
6094 2004-11-10  Colin Walters  <walters@verbum.org>
6095
6096         * dbus/dbus-spawn.c (check_babysit_events): Handle EINTR,
6097         for extra paranoia.
6098
6099 2004-11-09  Colin Walters  <walters@verbum.org>
6100
6101         * dbus/dbus-string.c (_dbus_string_get_length): New
6102         function, writes DBusString to C buffer.
6103
6104         * dbus/dbus-string.h: Prototype it.
6105
6106         * dbus/dbus-message.c (dbus_message_type_to_string): New
6107         function, converts message type into C string.
6108
6109         * dbus/dbus-message.h: Prototype it.
6110
6111         * bus/selinux.c (bus_selinux_check): Take source pid,
6112         target pid, and audit data.  Pass audit data to
6113         avc_has_perm.
6114         (log_audit_callback): New function, appends extra
6115         audit information.
6116         (bus_selinux_allows_acquire_service): Also take
6117         service name, add it to audit data.
6118         (bus_selinux_allows_send): Also take message
6119         type, interface, method member, error name,
6120         and destination, and add them to audit data.
6121         (log_cb): Initialize func_audit.
6122         
6123         * bus/selinux.h (bus_selinux_allows_acquire_service)
6124         (bus_selinux_allows_send): Update prototypes 
6125
6126         * bus/services.c (bus_registry_acquire_service): Pass
6127         service name to bus_selinux_allows_acquire_service.
6128
6129         * bus/bus.c (bus_context_check_security_policy): Pass
6130         additional audit data.  Move assignment of dest
6131         to its own line.
6132
6133 2004-11-07  Colin Walters  <walters@verbum.org>
6134
6135         * dbus/dbus-transport-unix.c (do_authentication): Always
6136         initialize auth_completed.
6137         
6138 2004-11-07  Colin Walters  <walters@verbum.org>
6139
6140         * bus/bus.c (load_config): Break into three
6141         separate functions: process_config_first_time_only,
6142         process_config_every_time, and process_config_postinit.
6143         (process_config_every_time): Move call of
6144         bus_registry_set_service_context_table into
6145         process_config_postinit.
6146         (process_config_postinit): New function, does
6147         any processing that needs to happen late
6148         in initialization (and also on reload).
6149         (bus_context_new): Instead of calling load_config,
6150         open config parser here and call process_config_first_time_only
6151         and process_config_every_time directly.  Later, after
6152         we have forked but before changing UID,
6153         invoke bus_selinux_full_init, and then call
6154         process_config_postinit.
6155         (bus_context_reload_config): As in bus_context_new,
6156         load parse file inside here, and call process_config_every_time
6157         and process_config_postinit.
6158
6159         * bus/services.h, bus/services.c
6160         (bus_registry_set_service_context_table): Rename
6161         from bus_registry_set_sid_table.  Take string hash from config
6162         parser, and convert them here into SIDs.
6163
6164         * bus/config-parser.c (struct BusConfigParser): Have
6165         config parser only store a mapping of service->context
6166         string.
6167         (merge_service_context_hash): New function.
6168         (merge_included): Merge context string hashes instead
6169         of using bus_selinux_id_table_union.
6170         (bus_config_parser_new): Don't use bus_selinux_id_table_new;
6171         simply create a new string hash.
6172         (bus_config_parser_unref): Unref it.
6173         (start_selinux_child): Simply insert strings into hash,
6174         don't call bus_selinux_id_table_copy_over.
6175
6176         * bus/selinux.h, bus/selinux.c (bus_selinux_id_table_union)
6177         (bus_selinux_id_table_copy_over): Delete.
6178
6179 2004-11-03  Colin Walters  <walters@verbum.org>
6180
6181         * bus/selinux.c (bus_selinux_pre_init): Kill some unused
6182         variables.
6183         
6184 2004-11-03  Colin Walters  <walters@verbum.org>
6185
6186         * bus/test-main.c (test_pre_hook): Fix test logic,
6187         thanks Joerg Barfurth <Joerg.Barfurth@Sun.COM>.
6188
6189 2004-11-02  Colin Walters  <walters@redhat.com>
6190
6191         * bus/selinux.c (bus_selinux_init): Split into two functions,
6192         bus_selinux_pre_init and bus_selinux_post_init.
6193         (bus_selinux_pre_init): Just determine whether SELinux is
6194         enabled.
6195         (bus_selinux_post_init): Do everything else.
6196
6197         * bus/main.c (main): Call bus_selinux_pre_init before parsing
6198         config file, and bus_selinux_post_init after.  This ensures that
6199         we don't lose the policyreload notification thread that
6200         bus_selinux_init created before forking previously.
6201         
6202         * bus/test-main.c (test_pre_hook): Update for split.
6203
6204 2004-10-31  Owen Fraser-Green  <owen@discobabe.net>
6205
6206         Patch from Johan Fischer <linux@fischaz.com>
6207         
6208         * mono/doc/Makefile.am (install-data-local): Added directory
6209         install for DESTDIR
6210
6211 2004-10-29  Colin Walters  <walters@redhat.com>
6212
6213         * dbus/dbus-sysdeps.h (_dbus_become_daemon): Also take
6214         parameter for fd to write pid to.       
6215
6216         * dbus/dbus-sysdeps.c (_dbus_become_daemon): Implement it.
6217         
6218         * bus/bus.c (bus_context_new): Pass print_pid_fd
6219         to _dbus_become_daemon (bug #1720)
6220
6221 2004-10-29  Colin Walters  <walters@redhat.com>
6222
6223         Patch from Ed Catmur <ed@catmur.co.uk>
6224
6225         * mono/doc/Makefile.am (install-data-local): Handle
6226         DESTDIR.
6227
6228 2004-10-29  Colin Walters  <walters@redhat.com>
6229
6230         * bus/.cvsignore, qt/.cvsignore: Update.
6231
6232 2004-10-29  Colin Walters  <walters@redhat.com>
6233
6234         Patch from Kristof Vansant <de_lupus@pandora.be>
6235
6236         * configure.in: Detect Slackware.
6237         * bus/Makefile.am (SCRIPT_IN_FILES): Add rc.messagebus.in.
6238         * bus/rc.messagebus.in: New file.
6239
6240 2004-10-29  Colin Walters  <walters@redhat.com>
6241
6242         * tools/dbus-monitor.c (filter_func): Return
6243         DBUS_HANDLER_RESULT_HANDLED in filter function
6244         for now.  See:
6245         http://freedesktop.org/pipermail/dbus/2004-August/001433.html
6246
6247 2004-10-29  Colin Walters  <walters@redhat.com>
6248
6249         Patch from Matthew Rickard <mjricka@epoch.ncsc.mil>
6250
6251         * bus/services.c (bus_registry_acquire_service): 
6252         Correctly retrieve service name from DBusString
6253         for printing.
6254
6255 2004-10-29  Colin Walters  <walters@redhat.com>
6256
6257         * dbus/dbus-glib.h: Update documentation to not
6258         refer to internal APIs.
6259
6260 2004-10-27  Joe Shaw  <joeshaw@novell.com>
6261
6262         * mono/Arguments.cs (GetDBusTypeConstructor):
6263         type.UnderlyingSystemType will return "System.Byte" if you do it
6264         on "byte[]", which is not what we want.  So check the type.IsArray
6265         property and use System.Array instead.
6266
6267 2004-10-25  John (J5) Palmieri  <johnp@redhat.com>
6268
6269         * dbus/dbus-sysdeps.c (fill_user_info): On errors do not free
6270         the DBusUserInfo structure since this is passed into the function.
6271         This would cause a double free when the function that allocated
6272         the structure would try to free it when an error occured.
6273
6274         * (bus/session.conf.in, bus/Makefile.am, dbus/configure.in):
6275         use /usr/share/dbus-1/services instead of /usr/lib/dbus-1.0/services
6276         for service activation to avoid 32bit/64bit parallel install issues
6277
6278 2004-10-21  Colin Walters  <walters@verbum.org>
6279
6280         * AUTHORS: Fix my email address, the @gnu.org one
6281         has been bouncing for some time.  Also add J5.
6282         
6283 2004-10-21  Colin Walters  <walters@verbum.org>
6284
6285         * dbus/dbus-transport-unix.c (do_authentication): Return
6286         authentication status to callers.
6287         (unix_handle_watch): If we completed authentication this round,
6288         don't do another read.  Instead wait until the next iteration,
6289         after we've read any pending data in the auth buffer.
6290         (unix_do_iteration): Ditto.
6291         (unix_handle_watch): Updated for new do_authentication prototype.
6292
6293 2004-10-18  Colin Walters  <walters@verbum.org>
6294
6295         * bus/selinux.c (bus_selinux_enabled): Handle
6296         --disable-selinux case.
6297         
6298 2004-10-18  Colin Walters  <walters@verbum.org>
6299
6300         * bus/selinux.h: Add bus_selinux_enabled.
6301         
6302         * bus/selinux.c (bus_selinux_enabled): Implement it.
6303         
6304         * bus/config-parser.c (struct include): Add
6305         if_selinux_enabled member.
6306         (start_busconfig_child): Parse if_selinux_enabled
6307         attribute for include.
6308         (bus_config_parser_content): Handle it.
6309
6310         * bus/session.conf.in, bus/system.conf.in: Add
6311         inclusion of context mapping to default config files;
6312         conditional on SELinux being enabled.
6313         
6314         * doc/busconfig.dtd: Add to if_selinux_enabled to default DTD.
6315         
6316         * test/data/invalid-config-files/badselinux-1.conf, 
6317         test/data/invalid-config-files/badselinux-2.conf:
6318         Test files for bad syntax.
6319         
6320 2004-10-17  Colin Walters  <walters@verbum.org>
6321
6322         * dbus/dbus-memory.c (_dbus_initialize_malloc_debug, check_guards)
6323         (dbus_malloc, dbus_malloc0, dbus_realloc): Fix up printf
6324         format specifier mismatches.
6325
6326 2004-10-07  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6327
6328         * dbus/dbus-sysdeps.c (_dbus_file_get_contents): fix an incorrect
6329         format string.
6330
6331         * glib/dbus-dbus-gmain.c (dbus_g_bus_get): do not mangle NULL
6332         pointer (bug #1540, Leonardo Boiko).
6333
6334 2004-09-28  Jon Trowbridge  <trow@ximian.com>
6335
6336         * mono/BusDriver.cs: Changed BusDriver struct to remove
6337         the ServiceCreated and ServiceDeleted events and replace them
6338         with the new ServiceOwnerChanged event.
6339
6340         * mono/example/BusListener.cs: Added a new example program,
6341         which listens for and reports any ServiceOwnerChanged events
6342         on the bus driver.
6343
6344         * mono/example/Makefile.am (DESTDIR): Build changes for the
6345         new BusListener.cs example.
6346
6347 2004-09-27  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6348
6349         * bus/signals.c (bus_match_rule_parse): validate the components of
6350         match rules (bug #1439).
6351
6352         * dbus/dbus-bus.c (dbus_bus_add_match): add a missing OOM test.
6353
6354 2004-09-24  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6355
6356         * doc/dbus-specification.xml: document ServiceOwnerChanged
6357         signal.
6358         
6359         * bus/driver.c, bus/driver.h, bus/services.c: Use
6360         ServiceOwnerChanged signal instead of ServiceCreated and
6361         ServiceDeleted.
6362         
6363         * bus/dispatch.c: update testcase for the new signal.
6364
6365 2004-09-20  Jon Trowbridge  <trow@ximian.com>
6366
6367         Patch from Nat Friedman <nat@novell.com>
6368
6369         * mono/Makefile.am: A number of small build fixes to allow "make
6370         distcheck" to succeed.
6371
6372         * mono/example/Makefile.am: "make distcheck" fixes.
6373
6374         * mono/AssemblyInfo.cs.in: When signing the assembly, look for the
6375         key in @srcdir@.
6376
6377         * test/Makefile.am: "make distcheck" fixes.
6378
6379 2004-09-17  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6380
6381         * dbus/dbus-sysdeps.c (_dbus_user_at_console): fix memleak in OOM.
6382
6383         * doc/busconfig.dtd: update the DTD for the at_console attribute.
6384
6385         * bus/driver.c (bus_driver_handle_hello): correctly handle Hello
6386         messages after the first one (bug #1389).
6387         
6388         * bus/dispatch.c (check_double_hello_message): add a test case for
6389         the double hello message bug.
6390         (check_existent_service_activation): fix check of spawning error.
6391         
6392 2004-09-16  David Zeuthen  <david@fubar.dk>
6393
6394         * python/dbus_bindings.pyx.in: Add support for int64 and uint64
6395
6396 2004-09-12  David Zeuthen  <david@fubar.dk>
6397
6398         Patch from Kay Sievers <kay.sievers@vrfy.org>
6399
6400         * bus/bus.c (bus_context_new):
6401         * bus/bus.h:
6402         * bus/main.c (usage)
6403         (main):
6404         Add commandline option --nofork to override configuration file
6405         setting.
6406
6407 2004-09-09  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6408
6409         * dbus/dbus-*.h: remove the ; after DBUS_(BEGIN|END)_DECLS. Some C
6410         compilers don't like it (bug #974).
6411
6412 2004-09-04  Harald Fernengel  <harry@kdevelop.org>
6413
6414         * qt/connection.*: Applied patch by Jérôme Lodewyck
6415         <lodewyck@clipper.ens.fr> to integrate an existing
6416         connection into the Qt eventloop
6417
6418 2004-08-30  Jon Trowbridge  <trow@ximian.com>
6419
6420         * mono/BusDriver.cs: Added.  This is a class for interacting with
6421         the org.freedesktop.DBus service.
6422
6423         * mono/Message.cs: Added a mechanism to expose the message that is
6424         currently being dispatched via the static Message.Current
6425         property.  Added Message.Sender and Message.Destination
6426         properties.
6427
6428         * mono/Handler.cs: Expose the dispatched message via
6429         Message.Current when handling method calls.
6430
6431         * mono/Service.cs: Expose the dispatched message via
6432         Message.Current when handling signal emissions.
6433         
6434         * mono/Connection.cs: Bind dbus_bus_get_base_service via the
6435         Connection.BaseService property.
6436
6437 2004-08-28  Havoc Pennington  <hp@redhat.com>
6438
6439         * dbus/dbus-userdb.c (_dbus_is_console_user): remove unused variable
6440
6441         More fixes from Steve Grubb
6442         
6443         * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): fix fd leak
6444         (_dbus_listen_tcp_socket): fix fd leak
6445
6446         * dbus/dbus-spawn.c (read_pid, read_ints): move the "again:" for
6447         EINTR to a bit lower in the code
6448
6449 2004-08-26  Jon Trowbridge  <trow@ximian.com>
6450
6451         * bus/driver.c (bus_driver_handle_service_exists): Respond with
6452         TRUE if we are inquiring about the existence of the built-in
6453         org.freedesktop.DBus service.
6454
6455 2004-08-25  John Palmieri  <johnp@redhat.com>
6456         * bus/config-parser.c:
6457         (struct PolicyType): Add POLICY_CONSOLE
6458         (struct Element.d.policy): s/gid_or_uid/gid_uid_or_at_console
6459         (start_busconfig_child): Sets up console element when
6460         <policy at_console=""> is encountered in a policy file
6461         (append_rule_from_element): Convert console elements to console
6462         rules.
6463
6464         * bus/policy.c: 
6465         (bus_policy_create_client_policy): Add console rules to the client
6466         policy based on if the client is at the console
6467         (bus_policy_append_console_rule): New function for adding a
6468         console rule to a policy
6469         (bus_policy_merge): Handle console rule merging
6470
6471         * dbus/dbus-sysdeps.h: Added the DBUS_CONSOLE_DIR constant
6472         where we check for console user files
6473         
6474         * dbus/dbus-sysdeps.c:
6475         (_dbus_file_exists): New function which checks if the given
6476         file exists
6477         (_dbus_user_at_console): New function which does the system
6478         specific process of checking if the user is at the console
6479
6480         * dbus/dbus-userdb.c:
6481         (_dbus_is_console_user): New function converts a UID to user name
6482         and then calls the system specific _dbus_user_at_console to 
6483         see if the user is at the console and therefor a console user
6484
6485 2004-08-25  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6486
6487         * bus/config-parser.c (set_limit):
6488         * bus/dbus-daemon-1.1.in:
6489         * test/data/valid-config-files/many-rules.conf: set the
6490         max_match_rules_per_connection limt from the config file. 
6491
6492         * doc/busconfig.dtd: update the DTD.
6493
6494         * bus/driver.c: remove some unused variables.
6495
6496 2004-08-24  Mikael Hallendal  <micke@imendio.com>
6497
6498         * dbus/dbus-glib-lowlevel.h: Removed dbus_bus_get_with_g_main since 
6499         it's been replaced by dbus_g_bus_get
6500
6501 2004-08-23  Colin Walters  <walters@redhat.com>
6502
6503         Updated SELinux support from Matthew Rickard <mjricka@epoch.ncsc.mil>
6504
6505         * bus/selinux.h: Prototype bus_selinux_get_policy_root.
6506
6507         * bus/selinux.c: Create a thread for policy reload notification.
6508         (bus_selinux_get_policy_root): Implement.
6509
6510         * bus/config-parser.c (start_busconfig_child)
6511         (bus_config_parser_content): Support SELinux-root relative
6512         inclusion.
6513
6514         * configure.in <HAVE_SELINUX>: Add -lpthread.
6515         
6516         * bus/test-main.c (test_pre_hook, test_post_hook): New.
6517         (test_post_hook): Move memory checking into here.
6518         (test_pre_hook, test_post_hook): Move SELinux checks in
6519         here, but conditional on a DBUS_TEST_SELINUX environment
6520         variable.  Unfortunately we can't run the SELinux checks
6521         as a normal user, since they won't have any permissions
6522         for /selinux.  So this will have to be tested manually
6523         for now, until we have virtualization for most of
6524         libselinux.
6525         
6526 2004-08-23  Havoc Pennington  <hp@redhat.com>
6527
6528         * dbus/dbus-sysdeps.c (_dbus_change_identity): add setgroups() to
6529         drop supplementary groups, suggested by Steve Grubb
6530
6531 2004-08-20  Colin Walters  <walters@redhat.com>
6532
6533         * bus/config-parser.c (start_busconfig_child): Remove some unused
6534         variables.
6535         
6536         * bus/selinux.c (bus_selinux_id_table_insert): Avoid compiler
6537         warning.
6538
6539 2004-08-17  Joe Shaw  <joeshaw@novell.com>
6540
6541         * configure.in: If --enable-mono is passed in, if we can't find
6542         mono error out.
6543
6544         * mono/Makefile.am: Use /gacutil to install assemblies into the
6545         GAC and not /root.
6546
6547 2004-08-12  Havoc Pennington  <hp@redhat.com>
6548
6549         * NEWS: update for 0.22
6550
6551         * configure.in: release 0.22
6552
6553 2004-08-11  Colin Walters  <walters@redhat.com>
6554
6555         * tools/dbus-send.c (main, usage): Add --reply-timeout
6556         argument.
6557
6558 2004-08-10  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6559
6560         * bus/bus.c (process_config_first_time_only): get rid of an unused
6561         DBusError that was causing a memoy leak (bug #989).
6562
6563         * dbus/dbus-keyring.c, dbus/dbus-message.c:
6564         fix compilation on Solaris/Forte C (bug #974)
6565
6566         * bus/main.c (main): plug two minuscule memleaks.
6567
6568 2004-08-10  Havoc Pennington  <hp@redhat.com>
6569
6570         * doc/dbus-tutorial.xml: add some more info on GLib bindings
6571
6572 2004-08-09  Havoc Pennington  <hp@redhat.com>
6573
6574         * COPYING: switch to Academic Free License version 2.1 instead of
6575         2.0, to resolve complaints about patent termination clause.
6576
6577 2004-07-31  John (J5) Palmieri  <johnp@redhat.com>
6578
6579         * README: added documentation for the --enable-python 
6580         configure switch.
6581
6582 2004-07-31  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6583
6584         * bus/config-parser.c (bus_config_parser_new): fix an invalid
6585         _unref in the SELinux support.
6586
6587         * doc/busconfig.dtd: update DTD for SELinux support.
6588
6589         * bus/config-loader-libxml.c: fix error handler and parser
6590         initialisation/cleanup. OOM test now works with libxml2 HEAD.
6591
6592         * configure.in: remove the warning about libxml2.
6593
6594         * dbus/dbus-bus.c: silence doxygen warning.
6595
6596 2004-07-31  Colin Walters  <walters@redhat.com>
6597
6598         * configure.in: Move #error in SELinux check to its own line.
6599
6600 2004-07-31  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6601
6602         * dbus/dbus-internals.h (_DBUS_SET_OOM):
6603         * bus/utils.h (BUS_SET_OOM): use dbus_error_set_const instead of
6604         dbus_error_set.
6605
6606         * bus/dispatch.c (check_send_exit_to_service): fix the test case,
6607         broken by the change in the _SET_OOM macros.
6608
6609 2004-07-31  Colin Walters  <walters@redhat.com>
6610
6611         * bus/selinux.c <HAVE_SELINUX>: Include utils.h to get
6612         BUS_SET_OOM.
6613
6614 2004-07-31  Colin Walters  <walters@redhat.com>
6615
6616         * configure.in: Use AC_TRY_COMPILE instead of AC_EGREP_HEADER
6617         to correctly detect DBUS__ACQUIRE_SVC.  Also add an
6618         AC_MSG_CHECKING.
6619
6620 2004-07-24  Havoc Pennington  <hp@redhat.com>
6621
6622         SELinux support from Matthew Rickard <mjricka@epoch.ncsc.mil>
6623
6624         * bus/selinux.c, bus/selinux.h: new file encapsulating selinux
6625         functionality
6626
6627         * configure.in: add --enable-selinux
6628         
6629         * bus/policy.c (bus_policy_merge): add FIXME to a comment
6630
6631         * bus/main.c (main): initialize and shut down selinux
6632
6633         * bus/connection.c: store SELinux ID on each connection, to avoid 
6634         repeated getting of the string context and converting it into 
6635         an ID
6636
6637         * bus/bus.c (bus_context_get_policy): new accessor, though it
6638         isn't used
6639         (bus_context_check_security_policy): check whether the security
6640         context of sender connection can send to the security context of
6641         recipient connection
6642
6643         * bus/config-parser.c: add parsing for <selinux> and <associate>
6644         
6645         * dbus/dbus-transport.c (_dbus_transport_get_unix_fd): to
6646         implement dbus_connection_get_unix_fd()
6647
6648         * dbus/dbus-connection.c (dbus_connection_get_unix_fd): new
6649         function, used by the selinux stuff
6650         
6651 2004-07-29  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6652
6653         * bus/config-loader-libxml.c: complete the implementation of
6654         libxml backend for config file loader. Doesn't work with full OOM
6655         test yet. 
6656         
6657         * configure.in: change error when selecting libxml into a warning.
6658         
6659         * test/data/invalid-config-files: add two non-well-formed XML
6660         files. 
6661         
6662         * glib/Makefile.am: libdbus_gtool always uses expat, not libxml.
6663         
6664         * dbus/dbus-transport-unix.c (unix_handle_watch): do not
6665         disconnect in case of DBUS_WATCH_HANGUP, several do_reading() may
6666         be necessary to read all the buffer. (bug #894)
6667
6668         * bus/activation.c (bus_activation_activate_service): fix a
6669         potential assertion failure (bug #896). Small optimization in the
6670         case of auto-activation messages.
6671
6672         * dbus/dbus-message.c (verify_test_message, _dbus_message_test):
6673         add test case for byte-through-vararg bug (#901). patch by Kimmo
6674         Hämäläinen. 
6675
6676 2004-07-28  Anders Carlsson  <andersca@gnome.org>
6677
6678         * python/dbus.py:
6679         * python/dbus_bindings.pyx.in:
6680         Add dbus.init_gthreads (), allow emit_signal to pass
6681         arguments to the signal.
6682         
6683 2004-07-24  Havoc Pennington  <hp@redhat.com>
6684
6685         * AUTHORS: add some people, not really comprehensively, let me
6686         know if I missed you
6687
6688 2004-07-24  Havoc Pennington  <hp@redhat.com>
6689
6690         * Makefile.am (DIST_SUBDIRS): add DIST_SUBDIRS, problem solved by
6691         Owen
6692
6693         * test/Makefile.am (DIST_SUBDIRS): here also
6694
6695 2004-07-22  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6696
6697         * dbus/dbus-sysdeps.c (fill_user_info): fix inexistent label name,
6698         breaking build on Solaris, reported by Farhad Saberi on the ML.
6699
6700         * dbus/dbus-message.c (dbus_message_append_args_valist): fix the
6701         va_arg invocation to account for integer promotion in the case of
6702         DBUS_TYPE_BYTE (unsigned char is promoted to int). (bug #901)
6703
6704         * bus/services.c (bus_service_remove_owner): fix bug #902, use
6705         _dbus_list_get_first_link, not _dbus_list_get_first.
6706
6707         * dbus/dbus-bus.c (dbus_bus_service_exists): plug a memory leak.
6708
6709         * dbus/dbus-object-tree.c (free_subtree_recurse): always null
6710         handler functions so that the asserts in _dbus_object_subtree_unref
6711         do not fail.
6712
6713         * dbus/dbus-transport-unix.c (do_reading):
6714         _dbus_transport_queue_messages return value is of type
6715         dbus_bool_t, not DBusDispatchStatus.
6716         
6717 2004-07-19  David Zeuthen  <david@fubar.dk>
6718
6719         * dbus/dbus-protocol.h: Add DBUS_ERROR_UNIX_PROCESS_ID_UNKNOWN
6720
6721         * bus/dispatch.c:
6722         (check_get_connection_unix_user): Debug says GetProperty; but the
6723         method is called GetConnectionUnixUser
6724         (check_get_connection_unix_process_id): New function
6725         (bus_dispatch_test): Actually call check_get_connection_unix_user();
6726         also call check_get_connection_unix_process_id()
6727         
6728         * bus/driver.c:
6729         (bus_driver_handle_get_connection_unix_process_id): New function,
6730         handles GetConnectionUnixProcessID on the org.freedesktop.DBus
6731         interface
6732         
6733         * dbus/dbus-auth.c:
6734         (handle_server_data_external_mech): Set pid from the credentials
6735         obtained from the socket
6736         
6737         * dbus/dbus-connection.c:
6738         (dbus_connection_get_unix_process_id): New function
6739         
6740         * dbus/dbus-connection.h: 
6741         Add prototype for dbus_connection_get_unix_process_id
6742         
6743         * dbus/dbus-transport.c:
6744         (_dbus_transport_get_unix_process_id): New function
6745         
6746         * dbus/dbus-transport.h:
6747         Add prototype for _dbus_transport_get_unix_process_id
6748         
6749 2004-07-19  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6750
6751         * dbus/dbus-message.c: Message counter fix, patch by Christian
6752         Hammond <chipx86@gnupdate.org>
6753
6754 2004-07-18  Seth Nickell  <seth@gnome.org>
6755
6756         * python/dbus.py:
6757         * python/dbus_bindings.pyx.in:
6758         * python/tests/test-client.py:
6759
6760         Add dbus.ByteArray and dbus_bindings.ByteArray
6761         types so that byte streams can be passed back.
6762
6763         Give jdahlin the heaps of credit that are so
6764         rightfully his.
6765         
6766 2004-07-12  Seth Nickell  <seth@gnome.org>
6767
6768         * python/dbus.py:
6769
6770         Add message argument to the default object_method_handler
6771         function.
6772         
6773         * python/dbus_bindings.pyx.in:
6774
6775         Automatically return NIL when passed an empty list
6776         (we can't pass back a list since lists are typed
6777         and we don't have any idea what type the the client
6778         intended the list to be... :-( )
6779         
6780 2004-07-10  Seth Nickell  <seth@gnome.org>
6781
6782         * python/examples/Makefile.am:
6783
6784         Fix distcheck breakage caused by new examples.
6785
6786 2004-07-10  Seth Nickell  <seth@gnome.org>
6787
6788         * python/dbus.py:
6789
6790         Add "message" argument to service-side dbus.Object
6791         methods. This will break existing services written
6792         using the python bindings, but will allow extraction
6793         of all the message information (e.g. who its from).
6794
6795         Add improved "object oriented" signal handling/emission.
6796         
6797         * python/examples/example-service.py:
6798
6799         Nix this example.
6800         
6801         * python/examples/example-signal-emitter.py:
6802         * python/examples/example-signal-recipient.py:
6803
6804         Two new examples that show how to emit and receive
6805         signals using the new APIs.
6806         
6807         * python/examples/example-signals.py:
6808         * python/examples/gconf-proxy-service.py:
6809         * python/examples/gconf-proxy-service2.py:
6810
6811         Add "message" argument to service methods.
6812
6813 2004-06-28  Kay Sievers <kay.sievers@vrfy.org>
6814
6815         * bus/driver.c (bus_driver_handle_get_connection_unix_user)
6816         * dbus/bus.c (dbus_bus_get_unix_user)
6817         * doc/dbus-specification.xml: implement GetConnectionUnixUser
6818         method of org.freedesktop.DBus interface.
6819
6820         * bus/dispatch.c: test case
6821
6822 2004-06-23  John (J5) Palmieri  <johnp@redhat.com>
6823
6824         * python/Makefile.am: switched include directory from glib/ to dbus/
6825         since dbus-glib.h moved
6826  
6827 2004-06-22  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6828
6829         * configure.in: prevent building the gcj stuff and libxml loader
6830         since they are broken.
6831
6832 2004-06-20  Havoc Pennington  <hp@redhat.com>
6833
6834         * dbus/dbus-glib-error-enum.h: autogenerate the GError enum 
6835         codes from the dbus error names
6836         
6837         * glib/dbus-glib.h: move to subdir dbus/ since it's included 
6838         as dbus/dbus-glib.h and that breakage is now visible due to 
6839         including dbus/dbus-glib.h in dbus-glib-lowlevel.h
6840         
6841         * glib/dbus-glib.h: s/gproxy/g_proxy/
6842
6843         * dbus/dbus-shared.h: new header to hold stuff shared with
6844         binding APIs
6845         
6846         * dbus/dbus-protocol.h (DBUS_ERROR_*): move errors here rather
6847         than dbus-errors.h
6848
6849         * glib/dbus-glib.h (dbus_set_g_error): move to
6850         dbus-glib-lowlevel.h
6851
6852         * glib/dbus-glib.h: remove dbus/dbus.h from here; change a bunch
6853         of stuff to enable this
6854
6855         * dbus/dbus-glib-lowlevel.h: put dbus/dbus.h here
6856
6857         * a bunch of other changes with the same basic "separate glib 
6858         bindings from dbus.h" theme
6859         
6860 2004-06-10  Owen Fraser-Green  <owen@discobabe.net>
6861
6862         * dbus-sharp.pc.in: Removed glib-sharp inclusion in Libs.
6863
6864         * python/examples/Makefile.am: Fixed typo in EXTRA_DIST.
6865
6866 2004-06-09  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6867
6868         * bus/driver.c, dbus/dbus-bus.c: use BOOLEAN instead of UINT32 for
6869         the reply value of the ServiceExists message.
6870
6871 2004-06-07  John (J5) Palmieri  <johnp@redhat.com>
6872
6873         * python/dbus_bindings.pyx.in: No longer need to parse path
6874         elements and pass them as arrays of strings.  The C API now
6875         accepts plain path strings.
6876         (_build_parsed_path): removed 
6877
6878 2004-06-07  Havoc Pennington  <hp@redhat.com>
6879
6880         * doc/TODO: remove auto-activation item since it's done; sort
6881         items by importance/milestone
6882
6883 2004-06-07  Havoc Pennington  <hp@redhat.com>
6884
6885         * dbus/dbus-message-builder.c (_dbus_message_data_load): append
6886         random signature when using REQUIRED_FIELDS (this hack won't work
6887         in the long term)
6888
6889         * dbus/dbus-message.c: change the signature to be a header field,
6890         instead of message->signature special-case string. Incremental
6891         step forward. Then we can fix up code to send the signature in the
6892         message, then fix up code to validate said signature, then fix up
6893         code to not put the typecodes inline, etc.
6894         (load_one_message): don't make up the signature after the fact
6895         (decode_header_data): require signature field for the known
6896         message types
6897
6898         * dbus/dbus-marshal.c (_dbus_marshal_string_len): new
6899
6900         * dbus/dbus-protocol.h: add DBUS_HEADER_FIELD_SIGNATURE
6901
6902 2004-06-07  Owen Fraser-Green  <owen@discobabe.net>
6903
6904         * mono/DBusType/ObjectPath.cs: Renamed PathName argument to Path
6905
6906         * mono/Handler.cs: Updated to follow new path argument for
6907         (un-)registering objects.
6908
6909         * mono/example/Makefile.am:
6910         * mono/Makefile.am:
6911         * configure.in: Bumped required version for mono and use new -pkg
6912         syntax for deps
6913
6914 2004-06-05  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6915
6916         * dbus/dbus-connection.h, dbus/dbus-connection.c: have object path
6917         registration functions take the path argument as char* instead of
6918         char**.
6919
6920         * dbus/dbus-marshal.h, dbus/dbus-marshal.c (_dbus_decompose_path):
6921         split off the path decompostion part of
6922         _dbus_demarshal_object_path. Some misc. fixes to silence compiler
6923         warnings. 
6924
6925         * glib/dbus-gobject.c, test/test-service.c: update accordingly.
6926         
6927 2004-06-02  Kristian Høgsberg  <krh@redhat.com>
6928  
6929         * dbus/dbus-auth.c: Rewrite auth protocol handling to use a state
6930         machine approach.  A state is implemented as a function that
6931         handles incoming events as specified for that state.
6932         
6933         * doc/dbus-specification.xml: Update auth protocol state machine
6934         specification to match implementation.  Remove some leftover
6935         base64 examples.
6936
6937 2004-06-02  Kristian Høgsberg  <krh@redhat.com>
6938
6939         * glib/dbus-gproxy.c, glib/dbus-gmain.c, dbus/dbus-string.c,
6940         dbus/dbus-object-tree.c, dbus/dbus-message.c: add comments to
6941         quiet doxygen.
6942
6943         * Doxyfile.in: remove deprecated options.
6944
6945         * dbus/dbus-message-handler.c, dbus/dbus-message-handler.h,
6946         glib/test-thread.h, glib/test-thread-client.c,
6947         glib/test-thread-server.c, glib/test-profile.c,
6948         glib/test-dbus-glib.c: remove these unused files.
6949
6950 2004-06-01  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6951
6952         * dbus/dbus-object-tree.c
6953         (_dbus_object_tree_dispatch_and_unlock): fix dispatch for
6954         non-fallback handlers (bug #684).
6955         (_dbus_object_subtree_new): initialize invoke_as_fallback field.
6956         (find_subtree_recurse): report wether the returned subtree is an
6957         exact match or a "fallback" match higher up in the tree.
6958         (object_tree_test_iteration): update test case.
6959
6960 2004-06-01  Seth Nickell  <seth@gnome.org>
6961
6962         * python/dbus_bindings.pyx.in:
6963         * python/tests/test-client.py:
6964
6965         Round off basic type support. Add dicts (yay!), and 
6966         remaining array types.
6967
6968         Make MessageIter more general so it works for dicts too.
6969
6970         Mark all loop variables as C integers.
6971         
6972 2004-05-31  Havoc Pennington  <hp@redhat.com>
6973
6974         * glib/dbus-gidl.c (method_info_add_arg): keep args sorted with
6975         "in" before "out"
6976
6977         * glib/dbus-gobject.c (dbus_type_to_string): move to dbus-gutils.c
6978
6979         * glib/dbus-glib-tool.c (main): set up to have a --self-test
6980         option that runs the tests, and start filling in some code
6981         including for starters just dumping the interfaces to stdout
6982
6983         * glib/Makefile.am (INCLUDES): define DBUS_LOCALEDIR
6984
6985         * test/data/valid-introspection-files/lots-of-types.xml: test of
6986         an example introspection file
6987
6988         * glib/dbus-gparser.c (parser_check_doctype): doctype should be
6989         "node" (I think...)
6990
6991 2004-05-31  Seth Nickell  <seth@gnome.org>
6992
6993         * python/dbus_bindings.pyx.in:
6994         * python/tests/test-client.py:
6995
6996         Test Suite: 1
6997         Python Bindings: 0
6998
6999         Fix string array memory trashing bug... oops...
7000
7001 2004-05-30  Seth Nickell  <seth@gnome.org>
7002
7003         * python/dbus.py:
7004
7005         Add a nicer-but-less-flexible alternate API for handling 
7006         calls to virtual objects in dbus.ObjectTree.
7007
7008         Screw up the argument order to the dbus.Object constructor
7009         for consistency with dbus.ObjectTree (and to make dbus_methods
7010         optional for future extension)
7011         
7012         * python/examples/Makefile.am:
7013         * python/examples/gconf-proxy-service.py:
7014         * python/examples/gconf-proxy-service2.py:
7015
7016         Alternate implementation of gconf-proxy-service using the
7017         nicer dbus.ObjectTree API.
7018         
7019         * python/examples/example-service.py:
7020         * python/tests/test-server.py
7021
7022         Reverse the argument order to deal with dbus.Object constructor
7023         changes.
7024         
7025 2004-05-30  Seth Nickell  <seth@gnome.org>
7026
7027         * python/examples/example-client.py:
7028         * python/examples/example-service.py:
7029
7030         Take it back. Lists seem to work but they're broken
7031         in the test suite. Make the base examples use
7032         lists (works fine).
7033
7034 2004-05-30  Seth Nickell  <seth@gnome.org>
7035
7036         * python/dbus_bindings.pyx.in:
7037         * python/tests/test-client.py:
7038
7039         Add some more tests and fix errors that crop up.
7040         Unfortunately, currently it seems like marshalling
7041         and unmarshalling of lists is completely broken :-(
7042
7043 2004-05-30  Seth Nickell  <seth@gnome.org>
7044
7045         * python/dbus_bindings.pyx.in:
7046
7047         Add support for ObjectPath type.
7048
7049         * python/dbus.py:
7050
7051         Refactor message handling code to a common function.
7052         
7053         * python/tests/test-client.py:
7054         * python/tests/test-server.py:
7055
7056         Add tests that check to make sure values of all types
7057         can be echoed from a service w/o mangling.
7058         
7059 2004-05-29  Seth Nickell  <seth@gnome.org>
7060
7061         * python/dbus.py:
7062
7063         Add ObjectTree class which allows implementation
7064         of trees of "virtual" objects. Basically the python
7065         wrapper for "register_fallback".
7066         
7067         * python/examples/Makefile.am
7068         * python/examples/gconf-proxy-client.py:
7069         * python/examples/gconf-proxy-service.py:
7070
7071         Implement a simple GConf proxy service that supports
7072         get/set on string and int GConf keys using the ObjectTree.
7073         
7074 2004-05-29  Seth Nickell  <seth@gnome.org>
7075
7076         * python/dbus.py:
7077         * python/examples/example-client.py:
7078         * python/examples/example-service.py:
7079         * python/examples/list-system-services.py:
7080
7081         Add SessionBus, SystemBus and ActivationBus classes
7082         so you don't need to know the special little BUS_TYPE
7083         flag.
7084         
7085 2004-05-29  Havoc Pennington  <hp@redhat.com>
7086
7087         * bus/config-parser.c (process_test_valid_subdir): temporarily
7088         stop testing config parser OOM handling, since expat has issues
7089         http://freedesktop.org/pipermail/dbus/2004-May/001153.html
7090
7091         * bus/dbus-daemon-1.1.in: change requested_reply to
7092         send_requested_reply/receive_requested_reply so we can send the
7093         replies, not just receive them.
7094
7095         * bus/config-parser.c: parse the new
7096         send_requested_reply/receive_requested_reply
7097
7098         * bus/policy.c (bus_client_policy_check_can_send): add
7099         requested_reply argument and use it
7100
7101         * bus/bus.c (bus_context_check_security_policy): pass through
7102         requested_reply status to message send check
7103
7104         * bus/system.conf.in: adapt to requested_reply change
7105         
7106 2004-05-28  Havoc Pennington  <hp@redhat.com>
7107
7108         * test/glib/test-service-glib.c (main): remove unused variable
7109
7110         * glib/dbus-gidl.c (base_info_ref): fix a silly compiler warning
7111
7112         * dbus/dbus-auth.h (enum): remove AUTHENTICATED_WITH_UNUSED_BYTES
7113         from the enum, no longer in use.
7114
7115         * dbus/dbus-sysdeps.h: include config.h so DBUS_VA_COPY actually
7116         works right.
7117
7118         * dbus/dbus-message.c: add various _dbus_return_val_if_fail for
7119         whether error_name passed in is a valid error name.
7120
7121 2004-05-28  John (J5) Palmieri  <johnp@redhat.com>
7122
7123         * dbus/dbus-message.c (dbus_message_get_args): Added support for
7124         OBJECT_PATH and OBJECT_PATH_ARRAY
7125
7126 2004-05-28  Seth Nickell  <seth@gnome.org>
7127
7128         * python/examples/Makefile.am:
7129
7130         Forget to add Makefile.am. Do not pass go.
7131
7132 2004-05-28  Michael Meeks  <michael@ximian.com>
7133
7134         * glib/dbus-gvalue.c (dbus_gvalue_marshal, dbus_gvalue_demarshal): 
7135         fix no int64 case.
7136
7137         * dbus/dbus-string.c (_dbus_string_parse_basic_type): impl.
7138
7139         * dbus/dbus-message.c (_dbus_message_iter_get_basic_type),
7140         (_dbus_message_iter_get_basic_type_array): impl.
7141         drastically simplify ~all relevant _get methods to use these.
7142         (_dbus_message_iter_append_basic_array),
7143         (dbus_message_iter_append_basic): impl
7144         drastically simplify ~all relevant _append methods to use these.
7145
7146         * dbus/dbus-message-builder.c (parse_basic_type) 
7147         (parse_basic_array, lookup_basic_type): impl.
7148         (_dbus_message_data_load): prune scads of duplicate /
7149         cut & paste coding.
7150
7151         * dbus/dbus-marshal.c (_dbus_demarshal_basic_type_array) 
7152         (_dbus_demarshal_basic_type): implement,
7153         (demarshal_and_validate_len/arg): beef up debug.
7154         (_dbus_marshal_basic_type, _dbus_marshal_basic_type_array): impl.
7155
7156 2004-05-27  Seth Nickell  <seth@gnome.org>
7157
7158         * configure.in:
7159         * python/Makefile.am:
7160
7161         Include the example python apps in the tarball.
7162         
7163         * python/examples/list-system-services.py
7164
7165         Add a python new example that fetches the list of services
7166         from the system bus.
7167         
7168 2004-05-27  Seth Nickell  <seth@gnome.org>
7169
7170         * python/dbus.py:
7171         * python/dbus_bindings.pyx.in:
7172
7173         Fix failure to notify that a signal was not handled,
7174         resulted in hung functions.
7175         
7176 2004-05-25  Colin Walters  <walters@redhat.com>
7177
7178         * tools/dbus-monitor.c (main): Monitor all types of messages.
7179
7180 2004-05-23  Owen Fraser-Green  <owen@discobabe.net>
7181
7182         * mono/Handler.cs, mono/Service.cs: Added UnregisterObject method
7183         which unregisters the object path and disposes the handler.
7184
7185 2004-05-23  Kristian Høgsberg  <krh@redhat.com>
7186  
7187         Patch from Timo Teräs <ext-timo.teras@nokia.com> (#614):
7188          
7189         * dbus/dbus-message.c (dbus_message_iter_get_args_valist): Swap
7190         operands to && so we call dbus_message_iter_next () for the last
7191         argument also.
7192
7193 2004-05-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7194
7195         * dbus/dbus-object-tree.c
7196         (_dbus_object_tree_list_registered_unlock, lookup_subtree): return
7197         children even if the requested path isn't registered.
7198         (object_tree_test_iteration): test object_tree_list_registered.
7199
7200         * configure.in: undefine HAVE_ABSTRACT_SOCKETS instead of defining
7201         it to 0.
7202         
7203 2004-05-20  Kristian Høgsberg  <krh@redhat.com>
7204
7205         * doc/TODO: Remove resolved items.
7206
7207         * bus/expirelist.h (struct BusExpireList): remove unused n_items
7208         field.
7209         
7210         * bus/connection.c (bus_connections_expect_reply): Enforce the
7211         per-connection limit on pending replies.
7212         
7213         Patch from Jon Trowbridge <trow@ximian.com>:
7214  
7215         * bus/main.c (setup_reload_pipe): Added.  Creates a pipe and sets
7216         up a watch that triggers a config reload when one end of the pipe
7217         becomes readable.
7218         (signal_handler): Instead of doing the config reload in our SIGHUP
7219         handler, just write to the reload pipe and let the associated
7220         watch handle the reload when control returns to the main loop.
7221  
7222         * bus/driver.c (bus_driver_handle_reload_config): Added.
7223         Implements a ReloadConfig method for requesting a configuration
7224         file reload via the bus driver.
7225  
7226 2004-05-19  Owen Fraser-Green  <owen@discobabe.net>
7227
7228         * HACKING: Updated release instructions concerning the wiki page.
7229
7230 2004-05-18  Kristian Høgsberg  <krh@redhat.com>
7231
7232         * dbus/dbus-auth.c (client_try_next_mechanism): Remove logic to
7233         filter against auth->allowed_mechs; we only add allowed mechs in
7234         record_mechanisms().
7235  
7236         * dbus/dbus-auth-script.c (_dbus_auth_script_run): Add an
7237         ALLOWED_MECHS to auth-script format so we can set the list of
7238         allowed mechanisms.
7239  
7240         * data/auth/client-out-of-mechanisms.auth-script: New test to
7241         check client disconnects when it is out of mechanisms to try.
7242  
7243         * dbus/dbus-auth.c (process_command): Remove check for lines
7244         longer that 1 MB; we only buffer up maximum 16 kB.
7245  
7246         * dbus/dbus-transport.c, dbus/dbus-transport-unix.c,
7247         dbus/dbus-auth-script.c, dbus/dbus-auth.c, dbus/dbus-auth.h:
7248         Remove auth state AUTHENTICATED_WITH_UNUSED_BYTES, instead always
7249         assume there might be unused bytes.
7250  
7251         * dbus/dbus-auth.c (_dbus_auth_do_work): Remove check for
7252         client-out-of-mechs, it is handled in process_reject(). Move check
7253         for max failures to send_rejected(), as it's a server-only thing.
7254
7255         * dbus/dbus-auth.c: Factor out protocol reply code into functions
7256         send_auth(), send_data(), send_rejected(), send_error(),
7257         send_ok(), send_begin() and send_cancel().
7258
7259 2004-05-17  Kristian Høgsberg  <krh@redhat.com>
7260
7261         Remove base64 encoding, replace with hex encoding. Original patch
7262         from trow@ximian.com, added error handling.
7263
7264         * dbus/dbus-string.c (_dbus_string_base64_encode)
7265         (_dbus_string_base64_decode): Remove.
7266         (_dbus_string_hex_decode): Add end_return argument so we can
7267         distinguish between OOM and invalid hex encoding.
7268         (_dbus_string_test): Remove base64 tests and add test case for
7269         invalid hex.
7270
7271         * dbus/dbus-keyring.c, dbus/dbus-auth-script.c, dbus/dbus-auth.c:
7272         Replace base64 with hex.
7273
7274         * test/data/auth/invalid-hex-encoding.auth-script: New test case
7275         for invalid hex encoded data in auth protocol.
7276
7277 2004-05-17  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7278
7279         * dbus/dbus-connection.c (check_for_reply_unlocked): plug a memory
7280         leak.
7281
7282 2004-05-15  Owen Fraser-Green  <owen@discobabe.net>
7283
7284         * mono/dbus-sharp.dll.config.in: Added for GAC
7285         * mono/dbus-sharp.snk: Added for GAC
7286         * mono/Assembly.cs.in: Added for GAC
7287         * mono/Makefile.am: Changes for GAC installation        
7288         * configure.in: Added refs for dbus-sharp.dll.config.in and
7289         Assembly.cs.in. More fixes for mono testing
7290         * mono/example/Makefile.am: Changed var to CSC
7291         * Makefile.am: Changed flag name to DBUS_USE_CSC
7292
7293 2004-05-15  Owen Fraser-Green  <owen@discobabe.net>
7294
7295         * mono/Makefile.am: Added SUBDIRS for docs. Changed SUBDIRS order
7296         * mono/doc/*: Added documentation framework
7297         * configure.in: Added monodoc check
7298         * README: Added description of mono configure flags
7299
7300 2004-05-11  John (J5) Palmieri  <johnp@redhat.com>:
7301
7302         * doc/dbus-specification.xml: Added a "Required" column to the 
7303         header fields table and changed the "zero or more" verbage in
7304         the above paragraph to read "The header must contain the required 
7305         named header fields and zero or more of the optional named header 
7306         fields".
7307         * test/data/invalid-messages/*.message: Added the required PATH 
7308         named header field to the tests so that they don't fail on 
7309         'Missing path field'
7310
7311 2004-05-07  John (J5) Palmieri  <johnp@redhat.com>
7312
7313         * python/dbus-bindings.pyx.in: Stopped the bindings from trashing
7314         the stack by implicitly defining variable and parameter types and
7315         removing the hack of defining C pointers as python objects and later
7316         casting them.
7317
7318 2004-05-02  Owen Fraser-Green  <owen@discobabe.net>
7319
7320         * mono/Makefile.am: Removed test-dbus-sharp.exe from all target
7321
7322 2004-05-01  Owen Fraser-Green  <owen@discobabe.net>
7323
7324         * mono/DBusType/Dict.cs: Handle empty dicts
7325         * mono/DBusType/Array.cs: Handle empty arrays
7326         * mono/Arguments.cs: Handle empty arguments
7327
7328 2004-04-30  Owen Fraser-Green  <owen@discobabe.net>
7329
7330         * dbus-sharp.pc.in: Modified to include include Libs and Requires
7331         field
7332
7333 2004-04-25  Kristian Høgsberg  <krh@redhat.com>
7334
7335         * test/data/valid-messages/standard-*.message: Update message
7336         test scripts to new header field names.
7337
7338 2004-04-22  John (J5) Palmieri  <johnp@redhat.com>
7339
7340         * test/break-loader.c (randomly_do_n_things): tracked down buffer
7341         overflow to times_we_did_each_thing array which would chop off the
7342         first character of the failure_dir string. Increased the size of
7343         the array to 7 to reflect the number of random mutation functions
7344         we have.
7345
7346 2004-04-21  Kristian Høgsberg  <krh@redhat.com>
7347
7348         * dbus/dbus-server-unix.c (unix_finalize): Don't unref
7349         unix_server->watch here, it is unreffed in disconnect.
7350         (_dbus_server_new_for_tcp_socket): convert NULL host to
7351         "localhost" here so we don't append NULL to address.
7352         
7353         * dbus/dbus-server.c (_dbus_server_test): Add test case for
7354         various addresses, including tcp with no explicit host.
7355
7356 2004-04-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7357
7358         * dbus/dbus-message.c (decode_header_data, decode_string_field):
7359         fix incorrect setting of .name_offset in the HeaderField (it was
7360         off by two bytes, positioned right after the name and typecode)
7361
7362         * bus/bus.c (bus_context_new, bus_context_unref): test before
7363         calling dbus_server_free_data_slot and _dbus_user_database_unref
7364         in case of an error.
7365
7366         * tools/Makefile.am: add $(DBUS_GLIB_TOOL_LIBS), xml libs needed
7367         by libdbus-gtool.
7368
7369 2004-04-19  Kristian Høgsberg  <krh@redhat.com>
7370
7371         * dbus/dbus-transport-unix.c (unix_do_iteration): Rewrite to use
7372         _dbus_poll() instead of select().
7373
7374 2004-04-15  Jon Trowbridge  <trow@ximian.com>
7375
7376         * bus/main.c (signal_handler): Reload the configuration files
7377         on SIGHUP.
7378         (main): Set up our SIGHUP handler.
7379
7380         * bus/bus.c (struct BusContext): Store the config file, user and
7381         fork flag in the BusContext.
7382         (process_config_first_time_only): Added.  Contains the code
7383         (previously in bus_context_new) for setting up the BusContext from
7384         the BusConfigParser that should only be run the first time the
7385         config files are read.
7386         (process_config_every_time): Added.  Contains the code (previously
7387         in bus_context_new) for setting up the BusContext from the
7388         BusConfigParser that should be run every time the config files are
7389         read.
7390         (load_config): Added.  Builds a BusConfigParser from the config
7391         files and passes the resulting structure off to
7392         process_config_first_time_only (assuming this is the first time)
7393         and process_config_every_time.
7394         (bus_context_new): All of the config-related code has been moved
7395         to process_config_first_time_only and process_config_every_time.
7396         Now this function just does the non-config-related initializations
7397         and calls load_config.
7398         (bus_context_reload_config): Added.
7399
7400 2004-04-15  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7401
7402         * bus/driver.c (bus_driver_handle_get_service_owner):
7403         implement a GetServiceOwner method.
7404         * doc/dbus-specification.xml: document it.
7405         * dbus/dbus-errors.h: add a 'ServiceHasNoOwner' error.
7406         
7407         * glib/dbus-gproxy.c (dbus_gproxy_new_for_service_owner):
7408         implement, using the bus GetServiceOwner method.
7409
7410         * test/glib/test-dbus-glib.c:
7411         use dbus_gproxy_new_for_service_owner so that we can receive the
7412         signal. 
7413
7414 2004-04-15  John (J5) Palmieri  <johnp@redhat.com>
7415
7416         * dbus/dbus-internals.c, dbus/dbus-message-builder.c,
7417         dbus/dbus-message.c, dbus/dbus-protocol.h
7418         (DBUS_HEADER_FIELD_SERVICE): renamed DBUS_HEADER_FIELD_DESTINATION
7419
7420         * dbus/dbus-internals.c, dbus/dbus-message-builder.c,
7421         dbus/dbus-message.c, dbus/dbus-protocol.h
7422         (DBUS_HEADER_FIELD_SENDER_SERVICE): renamed DBUS_HEADER_FIELD_SENDER
7423
7424         * dbus/dbus-internals.c (_dbus_header_field_to_string):
7425         DBUS_HEADER_FIELD_DESTINATION resolves to "destination"
7426         DBUS_HEADER_FIELD_SENDER resolves to "sender"
7427
7428         * doc/dbus-specification.xml (Header Fields Table):
7429         s/SERVICE/DESTINATION
7430         s/SENDER_SERVICE/SENDER
7431
7432
7433 2004-04-14  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7434
7435         * test/glib/test-dbus-glib.c (timed_exit): fail the test after
7436         a few seconds.
7437
7438 2004-04-13  Michael Meeks  <michael@ximian.com>
7439
7440         * glib/dbus-gobject.c (handle_introspect): split out
7441         (introspect_properties): this.
7442         (handle_introspect): implement this.
7443
7444         * test/glib/Makefile.am: use the absolute path so the bus
7445         daemon's chdir ("/") doesn't kill us dead.
7446
7447         * configure.in: subst ABSOLUTE_TOP_BUILDDIR
7448
7449 2004-04-12  Jon Trowbridge  <trow@ximian.com>
7450
7451         * bus/config-parser.c (struct BusConfigParser): Added
7452         included_files field.
7453         (seen_include): Added.  Checks whether or not a file has already
7454         been included by any parent BusConfigParser.
7455         (bus_config_parser_new): Copy the parent's included_files.
7456         (include_file): Track which files have been included, and fail on
7457         circular inclusions.
7458         (process_test_valid_subdir): Changed printf to report if we are
7459         testing valid or invalid conf files.
7460         (all_are_equiv): Changed printf to be a bit clearer about
7461         what we are actually doing.
7462         (bus_config_parser_test): Test invalid configuration files.
7463
7464 2004-04-09  Jon Trowbridge  <trow@ximian.com>
7465
7466         * bus/config-parser.c (bus_config_parser_new): Added a 'parent'
7467         argument.  If non-null, the newly-constructed BusConfigParser will
7468         be initialized with the parent's BusLimits instead of the default
7469         values.
7470         (include_file): When including a config file, pass in
7471         the current parser as the parent and then copy the BusLimits
7472         from the included BusConfigParser pack to the current parser.
7473         (process_test_valid_subdir): Renamed from process_test_subdir.
7474         (process_test_equiv_subdir): Added.  Walks through a directory,
7475         descending into each subdirectory and loading the config files
7476         it finds there.  If any subdirectory contains two config files
7477         that don't produce identical BusConfigParser structs, fail.
7478         For now, the BusConfigParser's BusPolicies are not compared.
7479         (bus_config_parser_test): Call both process_test_valid_subdir and
7480         process_test_equiv_subdir.
7481
7482         * bus/config-loader-libxml.c (bus_config_load): Take a parent
7483         argument and pass it along to the call to bus_config_parser_new.
7484         Also made a few small changes to allow this code to compile.
7485
7486         * bus/config-loader-expat.c (bus_config_load): Take a parent
7487         argument and pass it along to the call to bus_config_parser_new.
7488
7489         * bus/bus.c (bus_context_new): Load the config file
7490         with a NULL parent argument.
7491
7492 2004-03-29  Michael Meeks  <michael@ximian.com>
7493
7494         * glib/dbus-gobject.c (introspect_properties): split
7495         out, fix mangled 'while' flow control.
7496         (introspect_signals): implement.
7497         (handle_introspect): update.
7498
7499 2004-03-29  Michael Meeks  <michael@ximian.com>
7500
7501         * glib/dbus-gobject.c (set_object_property): split out / 
7502         re-work, use the property type, and not the message type(!)
7503         (get_object_property): ditto.
7504
7505         * glib/dbus-gvalue.c (dbus_gvalue_demarshal),
7506         (dbus_gvalue_marshal): make this code re-usable, needed
7507         for signals too, also on both proxy and server side.
7508         Re-write for more efficiency / readability.
7509
7510 2004-03-29  Michael Meeks  <michael@ximian.com>
7511
7512         * dbus/dbus-message.c
7513         (dbus_message_new_error_printf): impl.
7514
7515         * dbus/dbus-connection.c
7516         (dbus_connection_unregister_object_path): fix warning.
7517
7518         * configure.in: fix no-mono-installed situation.
7519
7520 2004-03-27  Havoc Pennington  <hp@redhat.com>
7521
7522         Patch from Timo Teräs:
7523         
7524         * tools/dbus-send.c (main): if --print-reply, assume type is
7525         method call; support boolean type args
7526         
7527         * dbus/dbus-connection.c (dbus_connection_send_with_reply): fix a
7528         bunch of memleak and logic bugs
7529         
7530 2004-03-23  Owen Fraser-Green  <owen@discobabe.net>
7531
7532         * mono/Arguments.cs:
7533         * mono/Introspector.cs:
7534         * mono/Handler.cs:
7535         * mono/InterfaceProxy.cs:
7536         * mono/Message.cs
7537         * mono/ProxyBuilder.cs:
7538         * mono/Service.cs:
7539         Added InterfaceProxy class to avoid building proxies for every
7540         object.
7541
7542         * dbus-message.h:
7543         * dbus-message.c (dbus_message_append_args_valist)
7544         (dbus_message_iter_get_object_path)
7545         (dbus_message_iter_get_object_path_array)
7546         (dbus_message_iter_append_object_path)
7547         (dbus_message_iter_append_object_path_array):
7548         Added object_path iter functions to handle OBJECT_PATH arguments
7549         
7550 2004-03-23  Owen Fraser-Green  <owen@discobabe.net>
7551
7552         First checkin of mono bindings.
7553         * configure.in:
7554         * Makefile.am:
7555         Build stuff for the bindings
7556         * dbus-sharp.pc.in: Added for pkgconfig
7557         
7558 2004-03-21  Havoc Pennington  <hp@redhat.com>
7559
7560         * test/test-service.c (main): remove debug spew
7561
7562 2004-03-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7563
7564         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): accept empty
7565         arrays
7566
7567         * dbus/dbus-message.h, bus/dbus-message.c (dbus_message_iter_init)
7568         (dbus_message_iter_init_array_iterator)
7569         (dbus_message_iter_init_dict_iterator): return a dbus_bool_t to
7570         indicate whether the iterator is empty
7571
7572         * dbus/dbus-pending-call.c, dbus/dbus-server.c: silence compiler
7573         warnings
7574
7575 2004-03-19  Havoc Pennington  <hp@redhat.com>
7576
7577         * NEWS: 0.21 updates
7578
7579         * configure.in: 0.21
7580
7581         * doc/Makefile.am: add all XMLTO usage to DBUS_XML_DOCS_ENABLED
7582         
7583         * python/Makefile.am: change to avoid dist of dbus_bindings.c so
7584         you don't need pyrex to make dist
7585
7586         * qt/Makefile.am (libdbus_qt_1_la_SOURCES): add integrator.h to
7587         sources; run moc
7588         
7589 2004-03-18  Richard Hult  <richard@imendio.com>
7590
7591         * dbus/dbus-message.c (dbus_message_get_auto_activation) 
7592         (dbus_message_set_auto_activation): Add doxygen docs.
7593
7594 2004-03-16  Richard Hult  <richard@imendio.com>
7595
7596         * bus/activation.c: (bus_activation_service_created),
7597         (bus_activation_send_pending_auto_activation_messages),
7598         (bus_activation_activate_service):
7599         * bus/activation.h:
7600         * bus/dispatch.c: (bus_dispatch),
7601         (check_nonexistent_service_auto_activation),
7602         (check_service_auto_activated),
7603         (check_segfault_service_auto_activation),
7604         (check_existent_service_auto_activation), (bus_dispatch_test):
7605         * bus/driver.c: (bus_driver_handle_activate_service):
7606         * bus/services.c: (bus_registry_acquire_service):
7607         * dbus/dbus-message.c: (dbus_message_set_auto_activation),
7608         (dbus_message_get_auto_activation):
7609         * dbus/dbus-message.h:
7610         * dbus/dbus-protocol.h: Implement auto-activation.
7611         
7612         * doc/dbus-specification.xml: Add auto-activation to the spec.
7613
7614 2004-03-12  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7615
7616         * dbus/dbus-marshal.c (_dbus_marshal_get_arg_end_pos):
7617         fix a bug with CUSTOM types.
7618
7619         * dbus/dbus-message.c (message_iter_test, _dbus_message_test): add
7620         a unit test for this bug (used to fail).
7621
7622 2004-03-12  Mikael Hallendal  <micke@imendio.com>
7623
7624         * bus/activation.c:
7625         (babysitter_watch_callback): notify all pending activations waiting for
7626           the same exec that the activation failed.
7627         (bus_activation_activate_service): shortcut the activation if we 
7628           already waiting for the same executable to start up.
7629
7630 2004-03-12  Mikael Hallendal  <micke@imendio.com>
7631
7632         * bus/activation.c: 
7633         - Added service file reloading. 
7634           Each service files directory is kept in an hash table in 
7635           BusActivation and each BusActivationEntry knows what .service-file it
7636           was read from. So when you try to activate a service the bus will 
7637           check if it's been updated, removed or if new .service-files has 
7638           been installed.
7639         - Test code at the bottom for the service file reloading.
7640         * bus/test-main.c: (main):
7641         * bus/test.h:
7642         - added service reloading test.
7643         * dbus/dbus-sysdeps.c: 
7644         * dbus/dbus-sysdeps.h: (_dbus_delete_directory): Added.
7645
7646 2004-03-08  Michael Meeks  <michael@ximian.com>
7647
7648         * dbus/dbus-connection.c (_dbus_connection_block_for_reply): 
7649         bail immediately if disconnected, to avoid busy loop.
7650
7651         * dbus/dbus-message.c (dbus_message_iter_get_args_valist):
7652         cleanup cut/paste/inefficiency.
7653
7654 2004-03-01  David Zeuthen  <david@fubar.dk>
7655
7656         * dbus/dbus-string.c (_dbus_string_append_printf_valist): Fix a
7657         bug where args were used twice. This bug resulted in a segfault
7658         on a Debian/PPC system when starting the messagebus daemon. Include
7659         dbus-sysdeps.h for DBUS_VA_COPY
7660
7661         * dbus/dbus-sysdeps.h: Define DBUS_VA_COPY if neccessary. From GLib
7662
7663         * configure.in: Check for va_copy; define DBUS_VA_COPY to the
7664         appropriate va_copy implementation. From GLib
7665         
7666 2004-02-24  Joe Shaw  <joe@ximian.com>
7667
7668         * bus/services.c (bus_registry_acquire_service): We need to pass
7669         in the service name to dbus_set_error() to prevent a crash.
7670
7671 2003-12-26  Anders Carlsson  <andersca@gnome.org>
7672
7673         * AUTHORS: Reveal my True identity.
7674
7675 2003-12-17  Mikael Hallendal  <micke@imendio.com>
7676
7677         * dbus/dbus-message.c: (dbus_message_append_args_valist): 
7678         - Added case for DBUS_TYPE_BYTE, patch from Johan Hedberg.
7679
7680 2003-12-13  Mikael Hallendal  <micke@imendio.com>
7681
7682         * doc/TODO: Added not about better error check of configuration files.
7683
7684 2003-12-02  Richard Hult  <richard@imendio.com>
7685
7686         * Update AFL version to 2.0 throughout the source files to reflect
7687         the update that was done a while ago.
7688
7689 2003-12-02  Richard Hult  <richard@imendio.com>
7690
7691         * dbus/dbus-message.c (dbus_message_iter_append_dict): Set
7692         wrote_dict_key to FALSE on the iter that the dict is appended to,
7693         just like when appending other types. Fixes a bug where a dict
7694         couldn't be put inside a dict.
7695         (dbus_message_iter_append_dict_key): Fix typo in warning message.
7696         (message_iter_test, _dbus_message_test): Add test case for dict
7697         inside dict.
7698
7699 2003-12-01  David Zeuthen  <david@fubar.dk>
7700
7701         * python/dbus.py: Add the actual message when calling the reciever
7702         of a signal such that parameters can be inspected. Add the method
7703         remove_signal_receiver
7704         
7705 2003-11-26  Mikael Hallendal  <micke@imendio.com>
7706
7707         * bus/*.[ch]:
7708         * dbus/*.[ch]:
7709         * glib/*.[ch]: Made ref functions return the pointer
7710
7711 2003-11-25  Zack Rusin  <zack@kde.org>
7712
7713         * qt/integrator.h, qt/integrator.cpp: Adding handling of DBusServer,
7714
7715         * qt/server.h, qt/server.cpp, qt/Makefile.am: Adding DBusServer 
7716         wrappers,
7717
7718         * qt/connection.h, qt/connection.cpp: Adjusting to changes in 
7719         the Integrator and to better fit with the server,
7720
7721 2003-11-24  Zack Rusin  <zack@kde.org>
7722
7723         * qt/connection.h, qt/connection.cpp: removing initDbus method since
7724         the integrator handles it now
7725
7726         * qt/integrator.h, qt/integrator.cpp: reworking handling of timeouts,
7727         since QTimer wasn't really meant to be used the way DBusTimeout is
7728
7729 2003-11-24  Zack Rusin  <zack@kde.org>
7730
7731         * qt/integrator.h, qt/integrator.cpp, Makefile.am: Adding 
7732         Integrator class which integrates D-BUS with the Qt event loop,
7733
7734         * qt/connection.h, qt/connection.cpp: Move all the code which
7735         was dealing with D-BUS integration to the Integrator class,
7736         and start using Integrator,
7737
7738 2003-11-23  Zack Rusin  <zack@kde.org>
7739
7740         * qt/connection.h, qt/connection.cpp: Adding the DBusConnection 
7741         wrapper
7742
7743         * qt/message.h, qt/message.cpp: updating to the current D-BUS api,
7744         switching namespaces to DBusQt, reworking the class,
7745
7746         * Makefile.cvs: switching dependencies so that it matches KDE 
7747         schematics,
7748         
7749         * qt/Makefile.am: adding connection.{h,cpp} and message.{h,cpp} to 
7750         the library
7751
7752 2003-11-19  Havoc Pennington  <hp@redhat.com>
7753
7754         * NEWS: update
7755
7756         * configure.in: bump version to 0.20
7757
7758         * configure.in (have_qt): add yet another place to look for qt
7759         (someone hand trolltech a .pc file...)
7760
7761 2003-11-01  Havoc Pennington  <hp@redhat.com>
7762
7763         * doc/dbus-specification.xml: add state machine docs on the auth
7764         protocol; just a first draft, I'm sure it's wrong.      
7765
7766 2003-10-28  David Zeuthen  <david@fubar.dk>
7767
7768         * python/dbus_bindings.pyx.in: add get_dict to handle dictionaries
7769         return types. Fixup TYPE_* to reflect changes in dbus/dbus-protocol.h
7770         
7771 2003-10-28  Havoc Pennington  <hp@redhat.com>
7772
7773         * dbus/dbus-message.c (get_next_field): delete unused function
7774
7775 2003-10-28  Havoc Pennington  <hp@redhat.com>
7776
7777         * bus/expirelist.c (do_expiration_with_current_time): detect
7778         failure of the expire_func due to OOM
7779
7780         * bus/connection.c (bus_pending_reply_expired): return FALSE on OOM
7781
7782         * bus/dispatch.c (check_send_exit_to_service): fix to handle the
7783         NoReply error that's now created by the bus when the service exits
7784
7785 2003-10-28  Havoc Pennington  <hp@redhat.com>
7786
7787         * dbus/dbus-message.c (_dbus_message_test): enable and fix the
7788         tests for set_path, set_interface, set_member, etc.
7789
7790         * dbus/dbus-string.c (_dbus_string_insert_bytes): allow 0 bytes
7791
7792         * dbus/dbus-message.c (set_string_field): always just delete and
7793         re-append the field; accept NULL for deletion
7794         (re_align_fields_recurse): reimplement
7795         
7796 2003-10-26  Havoc Pennington  <hp@redhat.com>
7797
7798         * dbus/dbus-connection.c: fix docs to properly describe the
7799         disconnected message
7800         (_dbus_connection_notify_disconnected): remove this function; 
7801         we can't synchronously add the disconnected message, we have to 
7802         do it after we've queued any remaining real messages
7803         (_dbus_connection_get_dispatch_status_unlocked): queue the
7804         disconnect message only if the transport has finished queueing all
7805         its real messages and is disconnected.
7806         (dbus_connection_disconnect): update the dispatch status here
7807
7808 2003-10-22  Havoc Pennington  <hp@redhat.com>
7809
7810         * bus/bus.c (bus_context_check_security_policy): fix up assertion
7811
7812         * bus/connection.c (bus_transaction_send_from_driver): set the
7813         destination to the connection's base service
7814
7815 2003-10-20  Havoc Pennington  <hp@redhat.com>
7816
7817         hmm, make check is currently not passing.
7818         
7819         * doc/dbus-specification.xml: add requirement that custom type
7820         names follow the same rules as interface names.
7821
7822         * dbus/dbus-protocol.h: change some of the byte codes, to avoid
7823         duplication and allow 'c' to be 'custom'; dict is now 'm' for
7824         'map'
7825
7826         * doc/dbus-specification.xml: update type codes to match
7827         dbus-protocol.h, using the ASCII byte values. Rename type NAMED to
7828         CUSTOM. Add type OBJECT_PATH to the spec.
7829
7830 2003-10-17  Havoc Pennington  <hp@redhat.com>
7831
7832         * bus/driver.c (create_unique_client_name): use "." as separator
7833         in base service names instead of '-'
7834
7835         * dbus/dbus-string.c (_dbus_string_get_byte): allow getting nul
7836         byte at the end of the string
7837
7838         * dbus/dbus-internals.h (_DBUS_LIKELY, _DBUS_UNLIKELY): add
7839         optimization macros since string validation seems to be a slow
7840         point.
7841         
7842         * doc/dbus-specification.xml: restrict valid
7843         service/interface/member/error names. Add test suite code for the
7844         name validation.
7845
7846         * dbus/dbus-string.c: limit service/interface/member/error names 
7847         to [0-9][A-Z][a-z]_
7848
7849         * dbus/dbus-connection.c (dbus_connection_dispatch): add missing
7850         format arg to verbose spew
7851
7852         * glib/dbus-gproxy.c (dbus_gproxy_call_no_reply): if not out of
7853         memory, return instead of g_error
7854
7855         * test/test-service.c (path_message_func): support emitting a
7856         signal on request
7857
7858         * dbus/dbus-bus.c (init_connections_unlocked): only fill in
7859         activation bus type if DBUS_BUS_ACTIVATION was set; default to
7860         assuming the activation bus was the session bus so that services
7861         started manually will still register.
7862         (init_connections_unlocked): fix so that in OOM situation we get
7863         the same semantics when retrying the function
7864         
7865         * test/test-service.c (main): change to use path registration, to
7866         test those codepaths; register with DBUS_BUS_ACTIVATION rather
7867         than DBUS_BUS_SESSION
7868
7869 2003-10-16  Havoc Pennington  <hp@redhat.com>
7870
7871         * glib/dbus-gtest-main.c: bracket with #ifdef DBUS_BUILD_TESTS
7872
7873         * Makefile.am (GCOV_DIRS): remove "test", we don't care about test
7874         coverage of the tests
7875         (coverage-report.txt): don't move the .da and .bbg files around
7876
7877 2003-10-16  Havoc Pennington  <hp@redhat.com>
7878
7879         * bus/bus.c (struct BusContext): remove struct field I didn't mean
7880         to put there
7881
7882 2003-10-16  Havoc Pennington  <hp@redhat.com>
7883
7884         * bus/connection.c (bus_pending_reply_expired): either cancel or
7885         execute, not both
7886         (bus_connections_check_reply): use unlink, not remove_link, as we
7887         don't want to free the link; fixes double free mess
7888
7889         * dbus/dbus-pending-call.c (dbus_pending_call_block): fix in case
7890         where no reply was received
7891
7892         * dbus/dbus-connection.c (_dbus_pending_call_complete_and_unlock):
7893         fix a refcount leak
7894
7895         * bus/signals.c (match_rule_matches): add special cases for the
7896         bus driver, so you can match on sender/destination for it.
7897
7898         * dbus/dbus-sysdeps.c (_dbus_abort): print backtrace if
7899         DBUS_PRINT_BACKTRACE is set
7900
7901         * dbus/dbus-internals.c: add pid to assertion failure messages
7902
7903         * dbus/dbus-connection.c: add message type code to the debug spew
7904
7905         * glib/dbus-gproxy.c (gproxy_get_match_rule): match rules want
7906         sender=foo not service=foo
7907
7908         * dbus/dbus-bus.c (dbus_bus_get): if the activation bus is the
7909         session bus but DBUS_SESSION_BUS_ADDRESS isn't set, use 
7910         DBUS_ACTIVATION_ADDRESS instead
7911
7912         * bus/activation.c: set DBUS_SESSION_BUS_ADDRESS,
7913         DBUS_SYSTEM_BUS_ADDRESS if appropriate
7914
7915         * bus/bus.c (bus_context_new): handle OOM copying bus type into
7916         context struct
7917
7918         * dbus/dbus-message.c (dbus_message_iter_get_object_path): new function
7919         (dbus_message_iter_get_object_path_array): new function (half
7920         finished, disabled for the moment)
7921         
7922         * glib/dbus-gproxy.c (dbus_gproxy_end_call): properly handle
7923         DBUS_MESSAGE_TYPE_ERROR
7924
7925         * tools/dbus-launch.c (babysit): support DBUS_DEBUG_OUTPUT to
7926         avoid redirecting stderr to /dev/null
7927         (babysit): close stdin if not doing the "exit_with_session" thing
7928
7929         * dbus/dbus-sysdeps.c (_dbus_become_daemon): delete some leftover
7930         debug code; change DBUS_DEBUG_OUTPUT to only enable stderr, not
7931         stdout/stdin, so things don't get confused
7932         
7933         * bus/system.conf.in: fix to allow replies, I modified .conf
7934         instead of .conf.in again.
7935
7936 2003-10-14  David Zeuthen  <david@fubar.dk>
7937
7938         * python/dbus_bindings.pyx.in (MessageIter.get): fixed typo in
7939         argtype to arg_type when raising unknown arg type exception.
7940         Changed type list to reflect the changes in dbus-protocol.h so 
7941         the bindings actually work.
7942
7943 2003-10-14  Havoc Pennington  <hp@redhat.com>
7944
7945         * test/decode-gcov.c: support gcc 3.3 also, though gcc 3.3 seems
7946         to have a bug keeping it from outputting the .da files sometimes
7947         (string_get_string): don't append garbage nul bytes to the string.
7948
7949 2003-10-15  Seth Nickell  <seth@gnome.org>
7950
7951         * python/Makefile.am:
7952
7953         Include dbus_h_wrapper.h in the dist tarball.
7954
7955 2003-10-14  Havoc Pennington  <hp@redhat.com>
7956
7957         * bus/bus.c (bus_context_check_security_policy): revamp this to
7958         work more sanely with new policy-based requested reply setup
7959
7960         * bus/connection.c (bus_transaction_send_from_driver): set bus
7961         driver messages as no reply
7962
7963         * bus/policy.c (bus_client_policy_check_can_receive): handle a
7964         requested_reply attribute on allow/deny rules
7965
7966         * bus/system.conf: add <allow requested_reply="true"/>
7967
7968         * bus/driver.c (bus_driver_handle_message): fix check for replies
7969         sent to the bus driver, which was backward. How did this ever work
7970         at all though? I think I'm missing something.
7971
7972         * dbus/dbus-message.c (decode_header_data): require error and
7973         method return messages to have a reply serial field to be valid
7974         (_dbus_message_loader_queue_messages): break up this function;
7975         validate that reply serial and plain serial are nonzero; 
7976         clean up the OOM/error handling.
7977         (get_uint_field): don't return -1 from this
7978         (dbus_message_create_header): fix signed/unsigned bug
7979
7980         * bus/connection.c (bus_connections_expect_reply): save serial of
7981         the incoming message, not reply serial
7982
7983 2003-10-14  Havoc Pennington  <hp@redhat.com>
7984
7985         * bus/connection.c: implement pending reply tracking using
7986         BusExpireList
7987
7988         * bus/bus.c (bus_context_check_security_policy): verify that a
7989         reply is pending in order to allow a reply to be sent. Deny 
7990         messages of unknown type.
7991
7992         * bus/dbus-daemon-1.1.in: update to mention new resource limits
7993
7994         * bus/bus.c (bus_context_get_max_replies_per_connection): new
7995         (bus_context_get_reply_timeout): new
7996
7997 2003-10-13  Seth Nickell  <seth@gnome.org>
7998
7999         * python/Makefile.am:
8000
8001         Pass "make distcheck": remove a couple files from DIST_FILES
8002         that weren't included in the final version.
8003
8004 2003-10-12  Havoc Pennington  <hp@pobox.com>
8005
8006         Added test code that 1) starts an actual bus daemon and 2) uses
8007         DBusGProxy; fixed bugs that were revealed by the test. Lots 
8008         more testing possible, but this is the basic framework.
8009         
8010         * glib/dbus-gproxy.c (dbus_gproxy_manager_unregister): remove
8011         empty proxy lists from the proxy list hash
8012
8013         * dbus/dbus-message.c (dbus_message_iter_get_args_valist): add a
8014         couple of return_if_fail checks
8015
8016         * dbus/dbus-pending-call.c (_dbus_pending_call_new): use dbus_new0
8017         to allocate, so everything is cleared to NULL as it should be.
8018
8019         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): pass
8020         source as data to dbus_connection_set_timeout_functions() as the 
8021         timeout functions expected
8022
8023         * test/glib/run-test.sh: add a little script to start up a message
8024         bus and run tests using it
8025
8026         * tools/dbus-launch.1: updates
8027
8028         * tools/dbus-launch.c (main): add --config-file option
8029
8030         * tools/dbus-launch.c (main): remove confusing else if (runprog)
8031         that could never be reached.
8032
8033         * dbus/dbus-message.c (dbus_message_new_method_return) 
8034         (dbus_message_new_error, dbus_message_new_signal): set the
8035         no-reply-expected flag on all these. Redundant, but may
8036         as well be consistent.
8037
8038 2003-10-11  Havoc Pennington  <hp@pobox.com>
8039
8040         * test/decode-gcov.c (function_solve_graph): make broken block
8041         graph a nonfatal error since it seems to be broken. Need to debug
8042         this.
8043
8044         * dbus/dbus-marshal.c (_dbus_type_is_valid): new function since we
8045         can't just check type > INVALID < LAST anymore
8046
8047         * dbus/dbus-message.c (dbus_message_get_signature): new function
8048         (dbus_message_has_signature): new function
8049         (struct DBusMessage): add signature field (right now it isn't sent
8050         over the wire, just generated on the fly)
8051         (dbus_message_copy): copy the signature, and init strings to
8052         proper length to avoid some reallocs
8053         (dbus_message_iter_init_array_iterator): return void, since it
8054         can't fail
8055         (dbus_message_iter_init_dict_iterator): return void since it can't fail
8056         (_dbus_message_loader_queue_messages): add silly temporary hack to
8057         fill in message->signature on load
8058
8059         * dbus/dbus-protocol.h: change DBUS_TYPE_* values to be ASCII
8060         characters, so they are relatively human-readable.
8061
8062 2003-10-11  Havoc Pennington  <hp@pobox.com>
8063
8064         * dbus/dbus-message.c (_dbus_message_test): add more test
8065         coverage, but #if 0 for now since they uncover a bug 
8066         not fixed yet; I think in re_align_field_recurse()
8067         (re_align_field_recurse): add FIXME about broken assertion
8068
8069         * dbus/dbus-sysdeps.c (_dbus_sysdeps_test): add more test coverage
8070
8071         * bus/connection.c: share a couple code bits with expirelist.c
8072
8073         * bus/expirelist.h, bus/expirelist.c: implement a generic
8074         expire-items-after-N-seconds facility, was going to share between
8075         expiring connections and replies, decided not to use for expiring
8076         connections for now.
8077
8078         * COPYING: include AFL 2.0 (still need to change all the file headers)
8079
8080 2003-10-09  Havoc Pennington  <hp@redhat.com>
8081
8082         * configure.in: define DBUS_HAVE_GCC33_GCOV if we have
8083         gcc 3.3. Not that we do anything about it yet.
8084
8085         * bus/signals.c (bus_match_rule_parse): impose max length on the
8086         match rule text
8087
8088         * dbus/dbus-protocol.h: add DBUS_MAXIMUM_MATCH_RULE_LENGTH
8089
8090 2003-10-09  Havoc Pennington  <hp@redhat.com>
8091
8092         Make matching rules theoretically work (add parser).
8093         
8094         * bus/bus.c (bus_context_check_security_policy): fix up to handle
8095         the case where destination is explicitly specified as bus driver
8096         and someone else is eavesdropping.
8097         
8098         * bus/policy.c (bus_client_policy_check_can_receive): fix up
8099         definition of eavesdropping and assertion
8100
8101         * tools/dbus-send.c (main): use dbus_message_type_from_string
8102
8103         * bus/signals.c (bus_match_rule_parse): implement
8104
8105         * dbus/dbus-message.c (dbus_message_type_from_string): new
8106
8107         * dbus/dbus-errors.h (DBUS_ERROR_MATCH_RULE_INVALID): add
8108
8109 2003-10-02  Havoc Pennington  <hp@pobox.com>
8110
8111         * glib/dbus-gproxy.c (dbus_gproxy_call_no_reply): rename from
8112         dbus_gproxy_oneway_call
8113
8114         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main) 
8115         (dbus_server_setup_with_g_main): fix to allow calling them more
8116         than once on the same args
8117         (dbus_bus_get_with_g_main): new function
8118
8119 2003-10-02  Havoc Pennington  <hp@redhat.com>
8120
8121         * doc/dbus-tutorial.xml: write some stuff
8122
8123 2003-09-29  Havoc Pennington  <hp@pobox.com>
8124
8125         * configure.in: split checks for Doxygen from XML docs, check for
8126         xmlto
8127
8128         * doc/Makefile.am: XML-ify all the docs, and add a blank
8129         dbus-tutorial.xml
8130
8131 2003-09-29  Havoc Pennington  <hp@pobox.com>
8132
8133         * Merge dbus-object-names branch. To see the entire patch 
8134         do cvs diff -r DBUS_OBJECT_NAMES_BRANCHPOINT -r dbus-object-names,
8135         it's huuuuge though.
8136         To revert, I tagged DBUS_BEFORE_OBJECT_NAMES_MERGE.
8137         
8138 2003-09-28  Havoc Pennington  <hp@pobox.com>
8139
8140         * HACKING: update to reflect new server
8141
8142 2003-09-26  Seth Nickell  <seth@gnome.org>
8143
8144         * python/dbus.py:
8145         * python/examples/example-signals.py:
8146
8147         Start implementing some notions of signals. The API
8148         is really terrible, but they sort of work (with the
8149         exception of being able to filter by service, and to
8150         transmit signals *as* a particular service). Need to
8151         figure out how to make messages come from the service
8152         we registered :-(
8153         
8154         * python/dbus_bindings.pyx.in:
8155
8156         Removed duplicate message_handler callbacks.
8157         
8158 2003-09-25  Havoc Pennington  <hp@redhat.com>
8159
8160         * bus/session.conf.in: fix my mess
8161
8162 2003-09-25  Havoc Pennington  <hp@pobox.com>
8163
8164         * bus/session.conf.in: fix security policy, reported by Seth Nickell
8165
8166 2003-09-25  Seth Nickell  <seth@gnome.org>
8167
8168         * python/examples/example-service.py:
8169
8170         Johan notices complete wrong code in example-service, but
8171         completely wrong in a way that works exactly the same (!).
8172         Johan is confused, how could this possibly work? Example
8173         code fails to serve purpose of making things clear.
8174         Seth fixes.
8175
8176 2003-09-25  Mark McLoughlin  <mark@skynet.ie>
8177
8178         * doc/dbus-specification.sgml: don't require header fields
8179         to be 4-byte aligned and specify that fields should be
8180         distinguished from padding by the fact that zero is not
8181         a valid field name.
8182         
8183         * doc/TODO: remove re-alignment item and add item to doc
8184         the OBJECT_PATH type.
8185         
8186         * dbus/dbus-message.c:
8187         (HeaderField): rename the original member to value_offset
8188         and introduce a name_offset member to keep track of where
8189         the field actually begins.
8190         (adjust_field_offsets): remove.
8191         (append_int_field), (append_uint_field),
8192         (append_string_field): don't align the start of the header
8193         field to a 4-byte boundary.
8194         (get_next_field): impl finding the next marhsalled field
8195         after a given field.
8196         (re_align_field_recurse): impl re-aligning a number of
8197         already marshalled fields.
8198         (delete_field): impl deleting a field of any type and
8199         re-aligning any following fields.
8200         (delete_int_or_uint_field), (delete_string_field): remove.
8201         (set_int_field), (set_uint_field): no need to re-check
8202         that we have the correct type for the field.
8203         (set_string_field): ditto and impl re-aligning any
8204         following fields.
8205         (decode_header_data): update to take into account that
8206         the fields aren't 4-byte aligned any more and the new
8207         way to distinguish padding from header fields. Also,
8208         don't exit when there is too much header padding.
8209         (process_test_subdir): print the directory.
8210         (_dbus_message_test): add test to make sure a following
8211         field is re-aligned correctly after field deletion.
8212         
8213         * dbus/dbus-string.[ch]:
8214         (_dbus_string_insert_bytes): rename from insert_byte and
8215         allow the insert of multiple bytes.
8216         (_dbus_string_test): test inserting multiple bytes.
8217
8218         * dbus/dbus-marshal.c: (_dbus_marshal_set_string): add
8219         warning note to docs about having to re-align any
8220         marshalled values following the string.
8221         
8222         * dbus/dbus-message-builder.c:
8223         (append_string_field), (_dbus_message_data_load):
8224         don't align the header field.
8225         
8226         * dbus/dbus-auth.c: (process_test_subdir): print the
8227         directory.
8228         
8229         * test/break-loader.c: (randomly_add_one_byte): upd. for
8230         insert_byte change.
8231         
8232         * test/data/invalid-messages/bad-header-field-alignment.message:
8233         new test case.
8234         
8235         * test/data/valid-messages/unknown-header-field.message: shove
8236         a dict in the unknown field.
8237
8238 2003-09-25  Seth Nickell  <seth@gnome.org>
8239
8240         * python/dbus.py:
8241         * python/dbus_bindings.pyx.in:
8242
8243         Handle return values.
8244         
8245         * python/examples/example-client.py:
8246         * python/examples/example-service.py:
8247
8248         Pass back return values from the service to the client.
8249         
8250 2003-09-24  Seth Nickell  <seth@gnome.org>
8251
8252         * python/dbus.py:
8253
8254         Connect Object methods (when you are sharing an object) up... pass
8255         in a list of methods to be shared. Sharing all the methods just
8256         worked out too weird. You can now create nice Services over the
8257         DBus in Python. :-)
8258         
8259         * python/dbus_bindings.pyx.in:
8260
8261         Keep references to user_data tuples passed into C functions so 
8262         Python doesn't garbage collect on us.
8263
8264         Implement MethodReturn and Error subclasses of Message for creating
8265         DBusMessage's of those types.
8266         
8267         * python/examples/example-client.py:
8268         * python/examples/example-service.py:
8269
8270         Simple example code showing both how create DBus services and objects,
8271         and how to use them.
8272
8273 2003-09-23  Havoc Pennington  <hp@pobox.com>
8274
8275         * glib/dbus-gproxy.c (dbus_gproxy_manager_filter): implement
8276
8277 2003-09-23  Havoc Pennington  <hp@redhat.com>
8278
8279         * glib/dbus-gproxy.c (dbus_gproxy_connect_signal): implement
8280         (dbus_gproxy_disconnect_signal): implement
8281         (dbus_gproxy_manager_remove_signal_match): implement
8282         (dbus_gproxy_manager_add_signal_match): implement
8283         (dbus_gproxy_oneway_call): implement
8284
8285 2003-09-23  Havoc Pennington  <hp@pobox.com>
8286
8287         * glib/dbus-gproxy.c (struct DBusGProxy): convert to a GObject
8288         subclass. This means dropping the transparent thread safety of the
8289         proxy; you now need a separate proxy per-thread, or your own
8290         locking on the proxy. Probably right anyway.
8291         (dbus_gproxy_ref, dbus_gproxy_unref): nuke, just use g_object_ref
8292
8293 2003-09-22  Havoc Pennington  <hp@redhat.com>
8294
8295         * glib/dbus-gproxy.c (dbus_gproxy_manager_get): implement
8296
8297 2003-09-21  Seth Nickell  <seth@gnome.org>
8298
8299         First checkin of the Python bindings.
8300         
8301         * python/.cvsignore:
8302         * python/Makefile.am:
8303         * python/dbus_bindings.pyx.in:
8304         * python/dbus_h_wrapper.h:
8305
8306         Pieces for Pyrex to operate on, building a dbus_bindings.so
8307         python module for low-level access to the DBus APIs.
8308         
8309         * python/dbus.py:
8310
8311         High-level Python module for accessing DBus objects.
8312
8313         * configure.in:
8314         * Makefile.am:
8315
8316         Build stuff for the python bindings.
8317
8318         * acinclude.m4:
8319
8320         Extra macro needed for finding the Python C header files.
8321
8322 2003-09-21  Havoc Pennington  <hp@pobox.com>
8323
8324         * glib/dbus-gproxy.c (dbus_gproxy_manager_new): start
8325         implementing the proxy manager, didn't get very far.
8326
8327         * dbus/dbus-bus.c (dbus_bus_add_match): new
8328         (dbus_bus_remove_match): new
8329
8330         * glib/dbus-gproxy.c (dbus_gproxy_new_for_service): add a
8331         path_name argument; adjust the other not-yet-implemented 
8332         gproxy constructors to be what I think they should be.
8333
8334 2003-09-21  Havoc Pennington  <hp@pobox.com>
8335
8336         * dbus/dbus-bus.c (dbus_bus_get): set exit_on_disconnect to TRUE
8337         by default for message bus connections.
8338
8339         * dbus/dbus-connection.c (dbus_connection_dispatch): exit if
8340         exit_on_disconnect flag is set and we process the disconnected
8341         signal.
8342         (dbus_connection_set_exit_on_disconnect): new function
8343
8344 2003-09-21  Havoc Pennington  <hp@pobox.com>
8345
8346         Get matching rules mostly working in the bus; only actually
8347         parsing the rule text remains. However, the client side of
8348         "signal connections" hasn't been started, this patch is only the
8349         bus side.
8350         
8351         * dbus/dispatch.c: fix for the matching rules changes
8352         
8353         * bus/driver.c (bus_driver_handle_remove_match)
8354         (bus_driver_handle_add_match): send an ack reply from these
8355         method calls
8356
8357         * glib/dbus-gproxy.c (dbus_gproxy_begin_call): fix order of
8358         arguments, reported by Seth Nickell
8359
8360         * bus/config-parser.c (append_rule_from_element): support
8361         eavesdrop=true|false attribute on policies so match rules 
8362         can be prevented from snooping on the system bus.
8363
8364         * bus/dbus-daemon-1.1.in: consistently use terminology "sender"
8365         and "destination" in attribute names; fix some docs bugs; 
8366         add eavesdrop=true|false attribute
8367
8368         * bus/driver.c (bus_driver_handle_add_match)
8369         (bus_driver_handle_remove_match): handle AddMatch, RemoveMatch
8370         messages
8371
8372         * dbus/dbus-protocol.h (DBUS_SERVICE_ORG_FREEDESKTOP_BROADCAST): get
8373         rid of broadcast service concept, signals are just always broadcast
8374
8375         * bus/signals.c, bus/dispatch.c, bus/connection.c, bus/bus.c:
8376         mostly implement matching rules stuff (currently only exposed as signal
8377         connections)
8378
8379 2003-09-21  Mark McLoughlin  <mark@skynet.ie>
8380
8381         * doc/dbus-specification.sgml: Change the header field name
8382         to be an enum and update the rest of the spec to reference
8383         the fields using the conventinal name.
8384
8385         * dbus/dbus-protocol.h: update to reflect the spec.
8386
8387         * doc/TODO: add item to remove the 4 byte alignment requirement.
8388         
8389         * dbus/dbus-message.c: Remove the code to generalise the
8390         header/body length and serial number header fields as named
8391         header fields so we can reference field names using the 
8392         protocol values.
8393         (append_int_field), (append_uint_field), (append_string_field):
8394         Append the field name as a byte rather than four chars.
8395         (delete_int_or_uint_field), (delete_string_field): reflect the
8396         fact that the field name and typecode now occupy 4 bytes instead
8397         of 8.
8398         (decode_string_field), (decode_header_data): update to reflect
8399         protocol changes and move the field specific encoding from
8400         decode_string_field() back into decode_header_data().
8401         
8402         * dbus/dbus-internals.[ch]: (_dbus_header_field_to_string):
8403         Add utility to aid debugging.
8404         
8405         * dbus/dbus-message-builder.c:
8406         (append_string_field), (_dbus_message_data_load): Update to
8407         reflect protocol changes; Change the FIELD_NAME directive
8408         to HEADER_FIELD and allow it to take the field's conventional
8409         name rather than the actual value.
8410         
8411         * test/data/*/*.message: Update to use HEADER_FIELD instead
8412         of FIELD_NAME; Always align the header on an 8 byte boundary
8413         *before* updating the header length.
8414
8415 2003-09-15  Havoc Pennington  <hp@pobox.com>
8416
8417         * dbus/dbus-pending-call.c: add the get/set object data
8418         boilerplate as for DBusConnection, etc. Use generic object data
8419         for the notify callback.
8420
8421         * glib/dbus-gparser.c (parse_node): parse child nodes
8422
8423         * tools/dbus-viewer.c: more hacking on the dbus-viewer
8424         
8425         * glib/dbus-gutils.c (_dbus_gutils_split_path): add a file to
8426         contain functions shared between the convenience lib and the
8427         installed lib
8428
8429         * glib/Makefile.am (libdbus_glib_1_la_LDFLAGS): add
8430         -export-symbols-regex to the GLib library
8431
8432         * dbus/dbus-object-tree.c (_dbus_object_tree_dispatch_and_unlock):
8433         fix the locking in here, and add a default handler for
8434         Introspect() that just returns sub-nodes.
8435
8436 2003-09-14  Havoc Pennington  <hp@pobox.com>
8437
8438         * glib/dbus-gthread.c (dbus_g_thread_init): rename to make g_foo
8439         rather than gfoo consistent
8440
8441         * glib/dbus-gproxy.h: delete for now, move contents to
8442         dbus-glib.h, because the include files don't work right since we
8443         aren't in the dbus/ subdir.
8444         
8445         * glib/dbus-gproxy.c (dbus_gproxy_send): finish implementing
8446         (dbus_gproxy_end_call): finish
8447         (dbus_gproxy_begin_call): finish
8448
8449         * glib/dbus-gmain.c (dbus_set_g_error): new
8450
8451         * glib/dbus-gobject.c (handle_introspect): include information
8452         about child nodes in the introspection
8453
8454         * dbus/dbus-connection.c (dbus_connection_list_registered): new
8455         function to help in implementation of introspection
8456
8457         * dbus/dbus-object-tree.c
8458         (_dbus_object_tree_list_registered_and_unlock): new function
8459
8460 2003-09-12  Havoc Pennington  <hp@pobox.com>
8461
8462         * glib/dbus-gidl.h: add common base class for all the foo_info
8463         types
8464
8465         * tools/dbus-viewer.c: add GTK-based introspection UI thingy
8466         similar to kdcop
8467
8468         * test/Makefile.am: try test srcdir -ef . in addition to test
8469         srcdir = ., one of them should work (yeah lame)
8470         
8471         * glib/Makefile.am: build the "idl" parser stuff as a convenience
8472         library
8473         
8474         * glib/dbus-gparser.h: make description_load routines return
8475         NodeInfo* not Parser*
8476
8477         * Makefile.am (SUBDIRS): build test dir after all library dirs
8478
8479         * configure.in: add GTK+ detection
8480
8481 2003-09-07  Havoc Pennington  <hp@pobox.com>
8482
8483         * Make Doxygen contented.
8484
8485 2003-09-07  Havoc Pennington  <hp@pobox.com>
8486
8487         * doc/dbus-specification.sgml: more updates
8488
8489 2003-09-06  Havoc Pennington  <hp@pobox.com>
8490
8491         * doc/dbus-specification.sgml: partial updates
8492
8493         * bus/dbus-daemon-1.1.in: fix the config file docs for the
8494         zillionth time; hopefully I edited the right file this time.
8495
8496         * bus/config-parser.c (append_rule_from_element): support
8497         send_type, send_path, receive_type, receive_path
8498
8499         * bus/policy.c: add message type and path to the list of things
8500         that can be "firewalled"
8501
8502 2003-09-06  Havoc Pennington  <hp@pobox.com>
8503
8504         * dbus/dbus-connection.c (dbus_connection_register_fallback): add this
8505         (dbus_connection_register_object_path): make this not handle
8506         messages to paths below the given path
8507
8508 2003-09-03  Havoc Pennington  <hp@pobox.com>
8509
8510         * test/glib/Makefile.am: add this with random glib-linked test
8511         programs
8512
8513         * glib/Makefile.am: remove the random test programs from here,
8514         leave only the unit tests
8515
8516         * glib/dbus-gobject.c (_dbus_gobject_test): add test for 
8517         uscore/javacaps conversion, and fix     
8518         (get_object_property, set_object_property): change to .NET
8519         convention for mapping props to methods, set_FooBar/get_FooBar, 
8520         since one language has such a convention we may as well copy it. 
8521         Plus real methods in either getFooBar or get_foo_bar style won't 
8522         collide with this convention.
8523
8524 2003-09-01  Havoc Pennington  <hp@pobox.com>
8525
8526         * glib/dbus-gparser.c: implement
8527
8528         * glib/dbus-gobject.c: start implementing skeletons support
8529
8530         * configure.in: when disabling checks/assert, also define
8531         G_DISABLE_ASSERT and G_DISABLE_CHECKS
8532
8533 2003-09-01  Havoc Pennington  <hp@pobox.com>
8534
8535         * glib/Makefile.am: rearrange a bunch of files and get "make
8536         check" framework set up
8537
8538 2003-08-31  Havoc Pennington  <hp@pobox.com>
8539
8540         * fix build with --disable-tests
8541
8542 2003-08-30  Havoc Pennington  <hp@pobox.com>
8543
8544         * dbus/dbus-connection.c: purge DBusMessageHandler
8545
8546         * dbus/dbus-message-handler.c: remove DBusMessageHandler, just 
8547         use callbacks everywhere
8548
8549 2003-08-30  Havoc Pennington  <hp@pobox.com>
8550
8551         * test/data/valid-config-files/system.d/test.conf: change to 
8552         root for the user so warnings don't get printed
8553
8554         * dbus/dbus-message.c: add dbus_message_get_path,
8555         dbus_message_set_path
8556         
8557         * dbus/dbus-object-tree.c (do_test_dispatch): add test of
8558         dispatching to a path
8559
8560         * dbus/dbus-string.c (_dbus_string_validate_path): add
8561
8562         * dbus/dbus-marshal.c (_dbus_demarshal_object_path): implement
8563         (_dbus_marshal_object_path): implement
8564
8565         * dbus/dbus-protocol.h (DBUS_HEADER_FIELD_PATH): new header field 
8566         to contain the path to the target object
8567         (DBUS_HEADER_FIELD_SENDER_SERVICE): rename
8568         DBUS_HEADER_FIELD_SENDER to explicitly say it's the sender service
8569
8570 2003-08-30  Havoc Pennington  <hp@pobox.com>
8571
8572         * dbus/dbus-object-tree.c: write tests and fix the discovered bugs
8573
8574 2003-08-29  Havoc Pennington  <hp@pobox.com>
8575
8576         * dbus/dbus-object-tree.c: modify to allow overlapping paths to be
8577         registered
8578         (struct DBusObjectSubtree): shrink this
8579         a lot, since we may have a lot of them
8580         (_dbus_object_tree_free_all_unlocked): implement
8581         (_dbus_object_tree_dispatch_and_unlock): implement
8582
8583 2003-08-29  Havoc Pennington  <hp@pobox.com>
8584
8585         * dbus/dbus-internals.h: fix _DBUS_N_GLOBAL_LOCKS
8586
8587 2003-08-28  Havoc Pennington  <hp@pobox.com>
8588
8589         purge DBusObjectID
8590         
8591         * dbus/dbus-connection.c: port to no ObjectID, create a
8592         DBusObjectTree, rename ObjectTree to ObjectPath in public API
8593
8594         * dbus/dbus-connection.h (struct DBusObjectTreeVTable): delete 
8595         everything except UnregisterFunction and MessageFunction
8596         
8597         * dbus/dbus-marshal.c: port away from DBusObjectID, 
8598         add DBUS_TYPE_OBJECT_PATH
8599         
8600         * dbus/dbus-object-registry.[hc], dbus/dbus-object.[hc], 
8601         dbus/dbus-objectid.[hc]: remove these, we are moving to 
8602         path-based object IDs
8603
8604 2003-08-25  Havoc Pennington  <hp@pobox.com>
8605
8606         Just noticed that dbus_message_test is hosed, I wonder when I
8607         broke that. I thought make check was passing earlier...
8608         
8609         * dbus/dbus-object-tree.c: add new "object tree" to match DCOP 
8610         container tree, will replace most of dbus-object-registry
8611
8612         * dbus/dbus-string.c (_dbus_string_append_printf_valist): fix C99
8613         screwup
8614
8615 2003-08-19  Havoc Pennington  <hp@pobox.com>
8616
8617         * dbus/dbus-message.c (decode_string_field): support FIELD_SENDER
8618         (dbus_message_is_error): fix this function
8619
8620         * bus/dbus-daemon-1.1: clarify logic on when <deny>/<allow> rules
8621         match
8622
8623         * bus/policy.c (bus_client_policy_check_can_receive): fix code to
8624         reflect clarified man page
8625         (bus_client_policy_check_can_send): ditto
8626         
8627         * bus/session.conf.in: fixup
8628
8629         * bus/system.conf.in: fixup
8630
8631 2003-08-18  Havoc Pennington  <hp@redhat.com>
8632
8633         * dbus/dbus-hash.c (_dbus_hash_table_insert_two_strings): fix
8634
8635         * dbus/dbus-message.c (_dbus_message_loader_queue_messages): fix
8636         dumb bug created earlier (wrong order of args to
8637         decode_header_data())
8638         
8639         * tools/dbus-send.c: port
8640
8641         * tools/dbus-print-message.c (print_message): port
8642
8643         * test/data/*messages: port all messages over
8644         
8645         * dbus/dbus-message-builder.c: support including 
8646         message type
8647         
8648         * bus/driver.c: port over
8649         
8650         * bus/dispatch.c: port over to new stuff
8651
8652         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
8653         rename disconnect signal to "Disconnected"
8654
8655 2003-08-17  Havoc Pennington  <hp@pobox.com>
8656
8657         This doesn't compile yet, but syncing up so I can hack on it from
8658         work. What are branches for if not broken code? ;-)
8659         
8660         * dbus/dbus-protocol.h: remove DBUS_HEADER_FIELD_NAME, add
8661         DBUS_HEADER_FIELD_INTERFACE, DBUS_HEADER_FIELD_MEMBER,
8662         DBUS_HEADER_FIELD_ERROR_NAME
8663         
8664         * dbus/dbus-hash.c: Introduce DBUS_HASH_TWO_STRINGS as hack to use
8665         for the interface+member pairs
8666         (string_hash): change to use g_str_hash algorithm
8667         (find_direct_function, find_string_function): refactor these to
8668         share most code.
8669         
8670         * dbus/dbus-message.c: port all of this over to support 
8671         interface/member fields instead of name field
8672
8673         * dbus/dbus-object-registry.c: port over
8674         
8675         * dbus/dbus-string.c (_dbus_string_validate_interface): rename
8676         from _dbus_string_validate_name
8677
8678         * bus/dbus-daemon-1.1: change file format for the 
8679         <deny>/<allow> stuff to match new message naming scheme
8680
8681         * bus/policy.c: port over
8682
8683         * bus/config-parser.c: parse new format
8684         
8685 2003-08-16  Havoc Pennington  <hp@pobox.com>
8686
8687         * dbus/dbus-object-registry.c (add_and_remove_objects): remove
8688         broken assertion
8689
8690         * glib/dbus-gproxy.c: some hacking
8691
8692 2003-08-15  Havoc Pennington  <hp@redhat.com>
8693
8694         * dbus/dbus-pending-call.c (dbus_pending_call_block): implement
8695
8696         * dbus/dbus-connection.c
8697         (dbus_connection_send_with_reply_and_block): factor out internals;
8698         change to convert any error replies to DBusError instead of 
8699         returning them as a message
8700
8701 2003-08-15  Havoc Pennington  <hp@pobox.com>
8702
8703         * dbus/dbus-connection.c, 
8704         dbus/dbus-pending-call.c: Finish the pending call stuff
8705
8706 2003-08-14  Havoc Pennington  <hp@redhat.com>
8707
8708         * dbus/dbus-pending-call.c: start on new object that will replace
8709         DBusMessageHandler and ReplyHandlerData for tracking outstanding
8710         replies
8711
8712         * dbus/dbus-gproxy.c: start on proxy object used to communicate
8713         with remote interfaces
8714
8715         * dbus/dbus-gidl.c: do the boring boilerplate in here
8716         
8717 2003-08-12  Havoc Pennington  <hp@pobox.com>
8718
8719         * bus/dispatch.c (bus_dispatch): make this return proper 
8720         DBusHandlerResult to avoid DBUS_ERROR_UNKNOWN_METHOD
8721
8722         * dbus/dbus-errors.c (dbus_set_error): use
8723         _dbus_string_append_printf_valist
8724
8725         * dbus/dbus-string.c (_dbus_string_append_printf_valist)
8726         (_dbus_string_append_printf): new
8727
8728         * dbus/dbus-errors.h (DBUS_ERROR_UNKNOWN_MESSAGE): change to
8729         UNKNOWN_METHOD
8730
8731         * dbus/dbus-connection.c (dbus_connection_dispatch): handle
8732         DBUS_HANDLER_RESULT_NEED_MEMORY; send default error reply if a
8733         message is unhandled.
8734
8735 2003-08-11  Havoc Pennington  <hp@pobox.com>
8736
8737         * bus/test.c (client_disconnect_handler): change to return
8738         HANDLED (would have been REMOVE_MESSAGE)
8739
8740         * dbus/dbus-object.h (enum DBusHandlerResult): rename to
8741         HANDLED/NOT_YET_HANDLED instead of
8742         REMOVE_MESSAGE/ALLOW_MORE_HANDLERS to make it clearer how it 
8743         should be used.
8744
8745 2003-08-10  Havoc Pennington  <hp@pobox.com>
8746
8747         * tools/dbus-send.c (main): add --type argument, for now
8748         supporting only method_call and signal types.
8749
8750         * tools/dbus-print-message.c: print message type
8751
8752         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
8753         init connection->objects
8754
8755         * doc/dbus-specification.sgml: fix sgml
8756
8757         * bus/*.c: port over to object-instance API changes
8758
8759         * test/test-service.c: ditto
8760         
8761         * dbus/dbus-message.c (dbus_message_create_header): allow #NULL
8762         name, we will have to fix up the rest of the code to also handle
8763         this
8764         (dbus_message_new): generic message-creation call
8765         (set_string_field): allow appending name field
8766
8767 2003-08-06  Havoc Pennington  <hp@pobox.com>
8768
8769         * dbus/dbus-object-registry.c: implement signal connection 
8770         and dispatch
8771
8772         * dbus/dbus-connection.c (_dbus_connection_unref_unlocked): new
8773
8774         * dbus/dbus-internals.c (_dbus_memdup): new function
8775
8776 2003-08-02  Havoc Pennington  <hp@pobox.com>
8777
8778         * dbus/dbus-message.c (dbus_message_get_no_reply)
8779         (dbus_message_set_no_reply): add these and remove
8780         set_is_error/get_is_error
8781
8782         * dbus/dbus-protocol.h, doc/dbus-specification.sgml: 
8783         remove the ERROR flag, since there's now an ERROR type
8784
8785 2003-08-01  Havoc Pennington  <hp@pobox.com>
8786
8787         * dbus/dbus-object-registry.c (_dbus_object_registry_handle_and_unlock):
8788         implement
8789
8790         * dbus/dbus-message.c (dbus_message_get_type): new function
8791
8792         * doc/dbus-specification.sgml: add "type" byte to messages
8793
8794 2003-08-01  Havoc Pennington  <hp@pobox.com>
8795
8796         * dbus/dbus-protocol.h (DBUS_MESSAGE_TYPE_*): introduce
8797         a message type enum to distinguish kinds of message
8798         (DBUS_HEADER_FLAG_NO_REPLY_EXPECTED): flag for a message 
8799         that need not be replied to
8800
8801 2003-08-01  Havoc Pennington  <hp@pobox.com>
8802
8803         * dbus/dbus-marshal.c: adapt to DBusObjectID changes
8804         (unpack_8_octets): fix no-64-bit-int bug
8805
8806         * dbus/dbus-object-registry.c (validate_id): validate the 
8807         connection ID bits, not just the instance ID.
8808
8809         * dbus/dbus-connection.c (_dbus_connection_init_id): initialize
8810         the connection-global 33 bits of the object ID
8811
8812         * dbus/dbus-object-registry.c (info_from_entry): fill in 
8813         object ID in the new way
8814
8815         * dbus/dbus-objectid.h: rather than high/low bits, specifically 
8816         define server/client/instance bits.
8817
8818 2003-07-30  Havoc Pennington  <hp@pobox.com>
8819
8820         * dbus/dbus-connection.c (dbus_connection_register_object): fix
8821         build
8822
8823 2003-07-13  Havoc Pennington  <hp@pobox.com>
8824
8825         * dbus/dbus-object.h (struct DBusObjectVTable): add padding
8826         fields to DBusObjectVTable and DBusObjectInfo
8827
8828 2003-07-12  Havoc Pennington  <hp@pobox.com>
8829
8830         * dbus/dbus-object-registry.c: implement unit test,
8831         fix bugs discovered in process
8832
8833         * dbus/dbus-connection.c: remove handler_table and
8834         register_handler(), add DBusObjectRegistry usage
8835
8836         * dbus/dbus-objectid.c (dbus_object_id_is_null)
8837         (dbus_object_id_set_null): new functions
8838
8839 2003-07-08  Havoc Pennington  <hp@pobox.com>
8840
8841         * dbus/dbus-object.c: implement some of this
8842
8843         * dbus/dbus-object-registry.c
8844         (_dbus_object_registry_add_and_unlock): fill in the object_id out
8845         param
8846         (_dbus_object_registry_new): handle OOM
8847
8848 2003-07-08  Havoc Pennington  <hp@pobox.com>
8849
8850         * dbus/dbus-object.h: sketch out an API for registering objects
8851         with a connection, that allows us to use as little as 24 bytes
8852         per object and lets application code represent an object in 
8853         any conceivable way.
8854
8855         * dbus/dbus-object-registry.c: implement the hard bits of the
8856         DBusConnection aspect of object API. Not yet wired up.
8857         
8858 2003-07-06  Havoc Pennington  <hp@pobox.com>
8859
8860         * dbus/dbus-marshal.c (_dbus_marshal_set_object_id): new function
8861         (_dbus_marshal_object_id): new
8862         (_dbus_demarshal_object_id): new
8863         (_dbus_marshal_get_arg_end_pos): support object ID type, and
8864         consolidate identical switch cases. Don't conditionalize handling
8865         of DBUS_TYPE_UINT64, need to handle the type always.
8866         (_dbus_marshal_validate_arg): consolidate identical cases, and
8867         handle DBUS_TYPE_OBJECT_ID
8868
8869         * dbus/dbus-objectid.c: new file with DBusObjectID data type.
8870
8871         * dbus/dbus-protocol.h: add DBUS_TYPE_OBJECT_ID
8872
8873 2003-09-28  Havoc Pennington  <hp@pobox.com>
8874
8875         * real 0.13 release
8876
8877 2003-09-28  Havoc Pennington  <hp@pobox.com>
8878
8879         * doc/Makefile.am (dbus-specification.html): testing a funky hack
8880         to work with Debian db2html
8881
8882 2003-09-28  Havoc Pennington  <hp@pobox.com>
8883
8884         * configure.in: 0.13
8885
8886         * doc/Makefile.am (dbus-test-plan.html): accept nonexistence of
8887         stylesheet-images for benefit of Debian
8888         
8889         Change back to using filesystem-linked sockets for the system
8890         bus, so only root can create the default system bus address.
8891         
8892         * bus/system.conf.in: change to use
8893         DBUS_SYSTEM_BUS_DEFAULT_ADDRESS
8894
8895         * dbus/Makefile.am (INCLUDES): remove DBUS_SYSTEM_BUS_PATH define
8896         from here.
8897
8898         * configure.in: define DBUS_SYSTEM_BUS_DEFAULT_ADDRESS
8899         here, and AC_DEFINE DBUS_SYSTEM_PATH
8900
8901 2003-08-09  Anders Carlsson  <andersca@codefactory.se>
8902
8903         * doc/TODO:
8904         * doc/busconfig.dtd:
8905         Add busconfig DTD.
8906         
8907 2003-08-09  Anders Carlsson  <andersca@codefactory.se>
8908
8909         * doc/dbus-specification.sgml:
8910         Add activation reply values.
8911         
8912 2003-08-05  Havoc Pennington  <hp@redhat.com>
8913
8914         * configure.in: 0.12
8915
8916 2003-08-05  Anders Carlsson  <andersca@codefactory.se>
8917
8918         * glib/dbus-gmain.c: (watch_fd_new), (watch_fd_ref),
8919         (watch_fd_unref), (dbus_gsource_check), (dbus_gsource_dispatch),
8920         (add_watch), (remove_watch), (create_source):
8921         Refcount fds, fixes some reentrancy issues.
8922         
8923 2003-07-30  Havoc Pennington  <hp@redhat.com>
8924
8925         * dbus/dbus-bus.c (init_connections_unlocked): fix default system
8926         bus address to be abstract if we have abstract sockets
8927
8928         * NEWS: update
8929
8930 2003-07-28  Havoc Pennington  <hp@redhat.com>
8931
8932         * bus/messagebus.in: fix to avoid processname/servicename 
8933         confusion, from Michael Kearey
8934         https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=100965
8935         
8936 2003-07-23  Havoc Pennington  <hp@pobox.com>
8937
8938         * dbus/dbus-message.c (dbus_message_iter_get_named): 
8939         fix from Andy Hanton to remove broken "+1"
8940
8941 2003-07-16  Havoc Pennington  <hp@pobox.com>
8942
8943         * tools/dbus-launch.c (babysit): close stdout/stderr in the
8944         babysitter process, as suggested by Thomas Leonard, so 
8945         an "eval `dbus-launch --exit-with-session`" will actually 
8946         return
8947
8948 2003-07-16  Havoc Pennington  <hp@pobox.com>
8949
8950         * configure.in: print out EXPANDED_* variables in the summary at
8951         the end; clean up the code that computes EXPANDED_ variables and
8952         get the ones using exec_prefix right. Should make things work
8953         when you build without --prefix
8954
8955 2003-06-29  Havoc Pennington  <hp@pobox.com>
8956
8957         * mono/Test.cs (class Test): fire up a main loop and run it
8958
8959         * mono/DBus.cs (DBus): don't g_thread_init since it can only be
8960         done once, the app has to do it
8961
8962 2003-06-26  Havoc Pennington  <hp@pobox.com>
8963
8964         * mono/Connection.cs: set up connection with the glib main loop
8965
8966 2003-07-01  Havoc Pennington  <hp@redhat.com>
8967
8968         * doc/dbus-specification.sgml: clarify the format of a type code,
8969         change suggested by Jim Blandy
8970
8971 2003-06-29  Miloslav Trmac  <mitr@volny.cz>
8972
8973         * doc/Makefile.am:
8974         * tools/Makefile.am: Don't assume srcdir == builddir.
8975
8976         * dbus/dbus-memory.c (dbus_realloc): Don't check guards after shrinking
8977         the allocated block.
8978         (_dbus_memory_test): New function.
8979         * dbus/dbus-test.h: Add _dbus_memory_test ().
8980         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): Call it.
8981
8982         * dbus/dbus-message.c (decode_header_data): Use %.4s instead
8983         of %c%c%c%c.
8984         (dbus_message_new): Remove obsolete @todo.
8985
8986         * dbus/dbus-marshal.c (_dbus_marshal_set_int64)
8987         (_dbus_marshal_set_uint64): Fix comment.
8988
8989         * dbus/dbus-message.c (append_int_field, append_uint_field): Don't
8990         hardcode FIELD_REPLY_SERIAL.
8991
8992         * dbus/dbus-mainloop.c (_dbus_loop_remove_watch)
8993         (_dbus_loop_remove_timeout): Cast function pointers to (void *) for %p
8994
8995         * configure.in: Add -D_POSIX_C_SOURCE=199309L -DBSD_SOURCE to CFLAGS
8996         and disable DBUS_USE_ATOMIC_INT_486 when --enable-ansi is used
8997
8998 2003-06-24  Havoc Pennington  <hp@pobox.com>
8999
9000         * mono/*.cs: Use IntPtr.Zero instead of ((IntPtr) 0)
9001
9002 2003-06-23  Anders Carlsson  <andersca@codefactory.se>
9003
9004         * configure.in:
9005         * gcj/.cvsignore:
9006         * gcj/Hello.java:
9007         * gcj/Makefile.am:
9008         * gcj/TestMessage.java: (TestMessage), (TestMessage.main):
9009         * gcj/org/.cvsignore:
9010         * gcj/org/Makefile.am:
9011         * gcj/org/freedesktop/.cvsignore:
9012         * gcj/org/freedesktop/Makefile.am:
9013         * gcj/org/freedesktop/dbus/.cvsignore:
9014         * gcj/org/freedesktop/dbus/Makefile.am:
9015         * gcj/org/freedesktop/dbus/Message.java: (Message),
9016         (Message.Message):
9017         * gcj/org/freedesktop/dbus/natMessage.cc:
9018         Fix the build system.
9019
9020 2003-06-22  Havoc Pennington  <hp@pobox.com>
9021
9022         * mono/Connection.cs: add more bindings
9023
9024         * dbus/dbus-threads.c (dbus_threads_init): allow calling this
9025         more than once.
9026
9027 2003-06-22  Havoc Pennington  <hp@pobox.com>
9028
9029         * mono/Connection.cs, mono/DBus.cs, mono/Error.cs:
9030         Start wrapping more stuff.
9031
9032 2003-06-22  Havoc Pennington  <hp@pobox.com>
9033
9034         * mono/Message.cs: implement Message.Wrap() that ensures we only
9035         have a single C# wrapper per DBusMessage, assuming it works which
9036         it probably doesn't.
9037
9038         * dbus/dbus-message.c (dbus_message_allocate_data_slot): new
9039         (dbus_message_free_data_slot): new
9040         (dbus_message_set_data): new
9041         (dbus_message_get_data): new
9042
9043 2003-06-22  Havoc Pennington  <hp@pobox.com>
9044
9045         * dbus/dbus-dataslot.c (_dbus_data_slot_allocator_unref)
9046         (_dbus_data_slot_allocator_alloc): rework these to keep a
9047         reference count on each slot and automatically manage a global
9048         slot ID variable passed in by address
9049
9050         * bus/bus.c: convert to new dataslot API
9051
9052         * dbus/dbus-bus.c: convert to new dataslot API
9053
9054         * dbus/dbus-connection.c: convert to new dataslot API
9055
9056         * dbus/dbus-server.c: convert to new dataslot API
9057
9058         * glib/dbus-gmain.c: ditto
9059
9060         * bus/test.c: ditto
9061
9062         * bus/connection.c: ditto
9063
9064 2003-06-22  Anders Carlsson  <andersca@codefactory.se>
9065
9066         * configure.in: Add AM_PROG_GCJ and move AM_PROG_LIBTOOL
9067         after the gcj checks so that the correct configuration tags
9068         will be added to libtool.
9069
9070         * dbus-glib-1.pc.in: No need to specify any includes since
9071         dbus-1.pc.in has those.
9072
9073 2003-06-22  Havoc Pennington  <hp@pobox.com>
9074
9075         * mono/*, gcj/*, configure.in, Makefile.am:
9076         Check in makefiles and subdirs for mono and gcj bindings.
9077         Neither binding actually exists, just trying to get through
9078         all the build and other boring bits.
9079
9080 2003-06-21  Philip Blundell  <philb@gnu.org>
9081
9082         * tools/dbus-monitor.1: Updated.
9083
9084         * tools/dbus-send.1: Likewise.
9085
9086 2003-06-20  Anders Carlsson  <andersca@codefactory.se>
9087
9088         * dbus/dbus-transport-unix.c (unix_handle_watch): Check
9089         for hangup and error after checking read so we won't discard
9090         pending data if both hangup and read are set.
9091
9092 2003-06-19  Philip Blundell  <philb@gnu.org>
9093
9094         * tools/dbus-print-message.c (print_message): Handle BOOLEAN.
9095
9096         * tools/dbus-send.c: Accept both --system and --session.
9097
9098         * tools/dbus-monitor.c: Same here.
9099
9100 2003-06-19  Anders Carlsson  <andersca@codefactory.se>
9101
9102         * glib/dbus-glib.h: Fix so that dbus-glib.h can be used
9103         from C++ (Patch by Miloslav Trmac).
9104
9105 2003-06-15  Joe Shaw  <joe@assbarn.com>
9106
9107         * configure.in: Check for socklen_t.
9108
9109         * dbus/dbus-sysdeps.c: Define socklen_t if it's not defined.
9110
9111         * test/test-segfault.c: Add #include <sys/time.h>
9112
9113         * tools/Makefile.am: Add DBUS_X_CFLAGS to the INCLUDES since
9114         dbus-launch needs it.
9115
9116 2003-06-09  Havoc Pennington  <hp@redhat.com>
9117
9118         * dbus/dbus-sysdeps.c (_dbus_listen_unix_socket): don't use
9119         SUN_LEN, it breaks abstract socket usage
9120
9121         * dbus/dbus-internals.c (_dbus_verbose_real): only print PID at
9122         starts of lines.
9123
9124 2003-06-04  Havoc Pennington  <hp@pobox.com>
9125
9126         * dbus/dbus-server.c (dbus_server_listen): allow abstract sockets
9127         using unix:abstract=/foo, and when listening in a tmpdir
9128         i.e. unix:tmpdir=/tmp, always use abstract sockets if we can.
9129
9130         * dbus/dbus-transport.c (_dbus_transport_open): support
9131         unix:abstract=/foo
9132
9133         * dbus/dbus-server-unix.c (_dbus_server_new_for_domain_socket):
9134         support abstract sockets
9135
9136         * dbus/dbus-transport-unix.c
9137         (_dbus_transport_new_for_domain_socket): support abstract sockets
9138
9139         * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket): add "abstract"
9140         toggle as an argument, implement abstract namespace support
9141         (_dbus_listen_unix_socket): ditto
9142
9143         * configure.in: add --enable-abstract-sockets and implement
9144         a configure check for autodetection of the right value.
9145
9146 2003-06-01  Havoc Pennington  <hp@pobox.com>
9147
9148         * tools/dbus-cleanup-sockets.c: add utility to clean up sockets
9149         in /tmp (though on Linux this will end up being useless,
9150         when we add abstract namespace support)
9151
9152         * configure.in: define DBUS_SESSION_SOCKET_DIR in addition to
9153         subst'ing it
9154
9155 2003-05-28  Colin Walters  <walters@verbum.org>
9156
9157         * tools/dbus-monitor.c (main): Fix silly typo (s/--session/--system/).
9158
9159 2003-05-18  Anders Carlsson  <andersca@codefactory.se>
9160
9161         * dbus/dbus-message.c (dbus_message_new): Remove @todo.
9162
9163 2003-05-17  Colin Walters  <walters@gnu.org>
9164
9165         * tools/dbus-send.c: Don't exit with an error code if --help was
9166         passed.  Default to using the session bus instead of the system
9167         one.
9168
9169         * tools/dbus-launch.c: Ditto.
9170
9171         * tools/dbus-monitor.c: Ditto.
9172
9173         * tools/dbus-send.1: Update with new arguments.
9174
9175         * tools/dbus-launch.c: Emit code to export variables.  New
9176         arguments -s and -c to specify shell syntax, and a bit of code to
9177         autodetect syntax.  Also, allow specifying a program to run.
9178
9179         * tools/dbus-launch.1: Update with new arguments.
9180
9181         * tools/dbus-send.1: Ditto.
9182
9183         * tools/dbus-monitor.1: Ditto.
9184
9185 2003-05-17  Havoc Pennington  <hp@pobox.com>
9186
9187         * bus/config-parser.c (merge_included): merge in policies from
9188         child configuration file.
9189
9190         * bus/policy.c (bus_policy_merge): function to merge two policies
9191         together
9192
9193 2003-05-16  Havoc Pennington  <hp@redhat.com>
9194
9195         * dbus/dbus-connection.c: disable verbose lock spew
9196
9197         * tools/dbus-send.c: add --print-reply command line option
9198
9199         * tools/dbus-print-message.h (print_message): new util function
9200         shared by dbus-send and dbus-monitor
9201
9202         * tools/dbus-monitor.c (handler_func): exit on disconnect
9203
9204         * dbus/dbus-transport-unix.c (do_reading): if the transport is
9205         disconnected, don't try to use the read_watch
9206
9207         * dbus/dbus-watch.c (dbus_watch_get_enabled): assert watch != NULL
9208         so we can find this bug more easily
9209
9210 2003-05-16  Havoc Pennington  <hp@redhat.com>
9211
9212         * bus/policy.c (free_rule_list_func): avoid a crash when passed
9213         NULL as DBusHashTable is annoyingly likely to do.
9214
9215 2003-05-16  Colin Walters  <walters@verbum.org>
9216
9217         * tools/dbus-monitor.c: Add --session argument and usage()
9218         function.
9219
9220         * tools/dbus-monitor.1: Update with new --session arg.
9221
9222         * bus/Makefile.am (install-data-hook): Create
9223         $(libdir)/dbus-1.0/services so that the session bus is happy.
9224
9225 2003-05-15  Havoc Pennington  <hp@redhat.com>
9226
9227         * dbus/dbus-sysdeps.c (_dbus_atomic_dec, _dbus_atomic_inc): work
9228         on non-x86. ifdef's are evil.
9229
9230 2003-05-15  Havoc Pennington  <hp@redhat.com>
9231
9232         * configure.in: 0.11
9233
9234         * NEWS: update
9235
9236         * bus/Makefile.am (initddir): apparently we are supposed to put
9237         init scripts in /etc/rc.d/init.d not /etc/init.d
9238
9239         * bus/Makefile.am: remove the "you must --enable-tests to make
9240         check" as it broke distcheck
9241
9242         * bus/Makefile.am (install-data-hook): create /etc/dbus-1/system.d
9243
9244 2003-05-13  James Willcox  <jwillcox@gnome.org>
9245
9246         * configure.in:
9247         * bus/activation.c: (bus_activation_service_created),
9248         (bus_activation_activate_service):
9249         * bus/driver.c: (bus_driver_send_service_deleted),
9250         (bus_driver_send_service_created), (bus_driver_send_service_lost),
9251         (bus_driver_send_service_acquired),
9252         (bus_driver_send_welcome_message),
9253         (bus_driver_handle_list_services):
9254         * bus/session.conf.in:
9255         * dbus/dbus-bus.c: (dbus_bus_acquire_service),
9256         (dbus_bus_service_exists), (dbus_bus_activate_service):
9257         * dbus/dbus-bus.h:
9258
9259         Add some convenience API which lets you activate a service, and did a
9260         bunch of s/0/DBUS_TYPE_INVALID/ in calls to dbus_message_append_args()
9261         and dbus_message_get_args()
9262
9263 2003-05-11  Havoc Pennington  <hp@pobox.com>
9264
9265         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): fix to avoid
9266         calling _dbus_marshal_validate_arg() for every byte in a byte
9267         array, etc.
9268
9269         * dbus/dbus-message-handler.c: use atomic reference counting to
9270         reduce number of locks slightly; the global lock in here sucks
9271
9272         * dbus/dbus-connection.c
9273         (_dbus_connection_update_dispatch_status_and_unlock): variant of
9274         update_dispatch_status that can be called with lock held; then use
9275         in a couple places to reduce locking/unlocking
9276         (dbus_connection_send): hold the lock over the whole function
9277         instead of acquiring it twice.
9278
9279         * dbus/dbus-timeout.c (_dbus_timeout_new): handle OOM
9280
9281         * bus/connection.c (bus_connections_setup_connection): fix access
9282         to already-freed memory.
9283
9284         * dbus/dbus-connection.c: keep a little cache of linked list
9285         nodes, to avoid using the global linked list alloc lock in the
9286         normal send-message case. Instead we just use the connection lock
9287         that we already have to take.
9288
9289         * dbus/dbus-list.c (_dbus_list_find_last): new function
9290
9291         * dbus/dbus-sysdeps.c (_dbus_atomic_inc, _dbus_atomic_dec):
9292         change to use a struct for the atomic type; fix docs,
9293         they return value before increment, not after increment.
9294
9295         * dbus/dbus-string.c (_dbus_string_append_4_aligned)
9296         (_dbus_string_append_8_aligned): new functions to try to
9297         microoptimize this operation.
9298         (reallocate_for_length): break this out of set_length(), to
9299         improve profile info, and also so we can consider inlining the
9300         set_length() part.
9301
9302         * dbus/dbus-message.c (dbus_message_new_empty_header): init data
9303         strings with some preallocation, cuts down on our calls to realloc
9304         a fair bit. Though if we can get the "move entire string to empty
9305         string" optimization below to kick in here, it would be better.
9306
9307         * dbus/dbus-string.c (_dbus_string_move): just call
9308         _dbus_string_move_len
9309         (_dbus_string_move_len): add a special case for moving
9310         an entire string into an empty string; we can just
9311         swap the string data instead of doing any reallocs.
9312         (_dbus_string_init_preallocated): new function
9313
9314 2003-05-11  Havoc Pennington  <hp@pobox.com>
9315
9316         Write a "test-profile" that does echo client-server with threads;
9317         profile reveals lock contention, memcpy/realloc of buffers, and
9318         UTF-8 validation as hot spots. 20% of lock contention eliminated
9319         with dbus_atomic_inc/dec implementation on x86.  Much remaining
9320         contention is global mempool locks for GList and DBusList.
9321
9322         * dbus/dbus-sysdeps.c (_dbus_atomic_inc, _dbus_atomic_dec): add
9323         x86 implementation
9324
9325         * dbus/dbus-connection.c (struct DBusConnection): use
9326         dbus_atomic_t for the reference count
9327
9328         * dbus/dbus-message.c (struct DBusMessage): declare
9329         dbus_atomic_t values as volatile
9330
9331         * configure.in: code to detect ability to use atomic integer
9332         operations in assembly, from GLib patch
9333
9334         * dbus/dbus-internals.c (_dbus_verbose_real): call getpid every
9335         time, tired of it being wrong in threads and forked processes
9336
9337         * glib/test-profile.c: a little program to bounce messages back
9338         and forth between threads and eat CPU
9339
9340         * dbus/dbus-connection.c: add debug spew macros for debugging
9341         thread locks; include config.h at top; fix deadlock in
9342         dbus_connection_flush()
9343
9344 2003-05-08  Havoc Pennington  <hp@pobox.com>
9345
9346         * dbus/dbus-spawn.c: s/_exit/exit/ because it was keeping gcov
9347         data from getting written, and there wasn't a good reason to
9348         use _exit really.
9349
9350         * test/decode-gcov.c (mark_inside_dbus_build_tests): don't count
9351         dbus_verbose lines in test coverage
9352         (main): add list of functions sorted by # of untested blocks
9353         to the coverage report
9354
9355         * dbus/dbus-mempool.c: put some test-only code in DBUS_BUILD_TESTS
9356
9357         * dbus/dbus-marshal.c (_dbus_marshal_test): extend test coverage
9358
9359         * dbus/dbus-message-handler.c (_dbus_message_handler_test):
9360         extend test coverage
9361
9362         * test/data/auth/cancel.auth-script: test canceling an
9363         authentication
9364
9365         * dbus/Makefile.am: remove dbus-server-debug.[hc] for now, as they
9366         aren't used. in CVS history if we end up needing them.
9367
9368 2003-05-04  Havoc Pennington  <hp@pobox.com>
9369
9370         * dbus/dbus-message-handler.c (_dbus_message_handler_test): add
9371         unit test
9372
9373         * dbus/dbus-marshal.c (_dbus_demarshal_string_array): fix this
9374         function, which assumed length was in # of strings, not bytes
9375
9376         * dbus/dbus-message.c (_dbus_message_test): add tests for some
9377         missing coverage
9378
9379         * dbus/dbus-connection.c
9380         (_dbus_connection_queue_received_message): disable function for
9381         now, we are only using it in test mode
9382
9383         * dbus/dbus-message.c (_dbus_message_loader_queue_messages):
9384         remove a mistaken FIXME
9385
9386 2003-05-04  Havoc Pennington  <hp@pobox.com>
9387
9388         * dbus/dbus-connection.c (dbus_connection_preallocate_send):
9389         unlock mutex on successful return, patch from Anders Gustafsson
9390
9391 2003-05-04  Havoc Pennington  <hp@pobox.com>
9392
9393         * dbus-glib-1.pc.in (Requires): fix dependencies, from
9394         Anders Gustafsson
9395
9396 2003-05-04  Havoc Pennington  <hp@pobox.com>
9397
9398         * tools/dbus-launch.c: implement
9399
9400         * bus/main.c (main), bus/bus.c (bus_context_new):
9401         implement --print-pid and --fork
9402
9403 2003-05-03  Havoc Pennington  <hp@redhat.com>
9404
9405         * dbus/dbus-address.c (dbus_parse_address): fix bug when a key in
9406         the address had no value, and add to test suite. Fix and
9407         regression test from Miloslav Trmac
9408
9409 2003-05-03  Havoc Pennington  <hp@pobox.com>
9410
9411         * dbus/dbus-watch.c (dbus_watch_handle): warn and return if a
9412         watch is invalid when handled
9413
9414         * tools/Makefile.am, tools/dbus-launch.c, tools/dbus-launch.1: add
9415         dbus-launch utility to launch the bus from a shell script.  Didn't
9416         actually implement dbus-launch yet, it's just a placeholder still.
9417
9418 2003-05-03  Havoc Pennington  <hp@pobox.com>
9419
9420         * bus/Makefile.am, bus/dbus-daemon-1.1.in: man page for the
9421         daemon; also documents daemon config file, so replaces
9422         doc/config-file.txt. Corrected some stuff from config-file.txt in
9423         the process of moving it.
9424
9425 2003-05-03  Havoc Pennington  <hp@pobox.com>
9426
9427         * tools/Makefile.am, tools/dbus-send.1, tools/dbus-monitor.1:
9428         add some man pages
9429
9430 2003-05-03  Colin Walters  <walters@verbum.org>
9431
9432         * dbus/dbus-sysdeps.c (fill_user_info): Test against
9433         DBUS_UID_UNSET to determine whether to do a uid lookup or not.
9434
9435         * Makefile.am: Update to use new .pc versioning scheme.
9436
9437 2003-05-02  Havoc Pennington  <hp@redhat.com>
9438
9439         * bus/system.conf.in: allow send/receive to/from message bus
9440         service
9441
9442 2003-04-30  Havoc Pennington  <hp@redhat.com>
9443
9444         * configure.in: print a note when building with unit tests and
9445         without assertions
9446
9447 2003-04-30  Havoc Pennington  <hp@redhat.com>
9448
9449         * Makefile.am: add a check-local that complains if you didn't
9450         configure with --enable-tests
9451
9452 2003-04-29  Havoc Pennington  <hp@redhat.com>
9453
9454         * glib/dbus-gmain.c: docs cleanups
9455
9456         * dbus/dbus-types.h: add docs on int64 types
9457
9458         * dbus/dbus-memory.c: fix docs to avoid putting private API in
9459         public API docs section
9460
9461 2003-04-29  Havoc Pennington  <hp@redhat.com>
9462
9463         * dbus-1.pc.in, dbus-glib-1.pc.in: rename these from
9464         dbus-1.0.pc.in, dbus-glib-1.0.pc.in. As these change with the
9465         parallel install API version, not with the D-BUS package version.
9466
9467         * HACKING: move some of README over here
9468
9469         * README: updates, and document API/ABI policy
9470
9471         * configure.in: reindentation
9472
9473 2003-04-29  Havoc Pennington  <hp@redhat.com>
9474
9475         * dbus/dbus.h: add "you have to define DBUS_API_SUBJECT_TO_CHANGE
9476         to use this library" to be sure people have the right
9477         expectations.
9478
9479 2003-04-28  Havoc Pennington  <hp@redhat.com>
9480
9481         * configure.in: add --enable-docs which by default is auto yes if
9482         doxygen and db2html found, no otherwise; but can be forced on/off
9483
9484         * doc/Makefile.am: conditionalize whether to build docs on
9485         --enable-docs
9486
9487 2003-04-28  Havoc Pennington  <hp@redhat.com>
9488
9489         * configure.in: 0.10
9490
9491         * NEWS: update
9492
9493         * bus/system.conf.in: add <includedir>system.d</includedir>
9494
9495         * dbus/dbus-userdb.c (_dbus_user_database_lookup): fix bug when
9496         username was provided but not uid
9497
9498         * bus/config-parser.c (struct BusConfigParser): keep track of
9499         whether the parser is toplevel or was included; change some
9500         of the error handling if it's included.
9501
9502 2003-04-27  Havoc Pennington  <hp@pobox.com>
9503
9504         Unbreak my code...
9505
9506         * dbus/dbus-transport.c (_dbus_transport_get_dispatch_status):
9507         report correct status if we finish processing authentication
9508         inside this function.
9509
9510         * bus/activation.c (try_send_activation_failure): use
9511         bus_transaction_send_error_reply
9512
9513         * bus/connection.c (bus_connection_get_groups): return an error
9514         explaining the problem
9515
9516         * bus/bus.c (bus_context_check_security_policy): implement
9517         restriction here that inactive connections can only send the
9518         hello message. Also, allow bus driver to send anything to
9519         any recipient.
9520
9521         * bus/connection.c (bus_connection_complete): create the
9522         BusClientPolicy here instead of on-demand.
9523         (bus_connection_get_policy): don't return an error
9524
9525         * dbus/dbus-message.c (dbus_message_new_error_reply): allow NULL
9526         sender field in message being replied to
9527
9528         * bus/bus.c (bus_context_check_security_policy): fix silly typo
9529         causing it to return FALSE always
9530
9531         * bus/policy.c (bus_client_policy_check_can_send): fix bug where
9532         we checked sender rather than destination
9533
9534 2003-04-25  Havoc Pennington  <hp@redhat.com>
9535
9536         test suite is slightly hosed at the moment, will fix soon
9537
9538         * bus/connection.c (bus_connections_expire_incomplete): fix to
9539         properly disable the timeout when required
9540         (bus_connection_set_name): check whether we can remove incomplete
9541         connections timeout after we complete each connection.
9542
9543         * dbus/dbus-mainloop.c (check_timeout): fix this up a bit,
9544         probably still broken.
9545
9546         * bus/services.c (bus_registry_acquire_service): implement max
9547         number of services owned, and honor allow/deny rules on which
9548         services a connection can own.
9549
9550         * bus/connection.c (bus_connection_get_policy): report errors here
9551
9552         * bus/activation.c: implement limit on number of pending
9553         activations
9554
9555 2003-04-25  Havoc Pennington  <hp@redhat.com>
9556
9557         * dbus/dbus-transport.c (_dbus_transport_get_unix_user): fix bug
9558         where we used >= 0 instead of != DBUS_UID_UNSET.
9559
9560 2003-04-25  Havoc Pennington  <hp@redhat.com>
9561
9562         * glib/dbus-gmain.c (remove_watch): fix for a crash when watches
9563         were toggled without add/remove, fix from Anders Gustafsson
9564
9565 2003-04-24  Havoc Pennington  <hp@redhat.com>
9566
9567         * test/data/valid-config-files/basic.conf: add <limit> tags to
9568         this test
9569
9570         * bus/config-parser.h, bus/config-parser.c, bus/bus.c: Implement
9571         <limit> tag in configuration file.
9572
9573 2003-04-24  Havoc Pennington  <hp@redhat.com>
9574
9575         * bus/dispatch.c: somehow missed some name_is
9576
9577         * dbus/dbus-timeout.c (_dbus_timeout_set_enabled)
9578         (_dbus_timeout_set_interval): new
9579
9580         * bus/connection.c (bus_connections_setup_connection): record time
9581         when each connection is first set up, and expire them after the
9582         auth timeout passes.
9583
9584 2003-04-24  Havoc Pennington  <hp@redhat.com>
9585
9586         * dbus/dbus-message.c (dbus_message_name_is): rename
9587         (dbus_message_service_is): rename
9588         (dbus_message_sender_is): rename
9589         (dbus_message_get_service): rename
9590
9591 2003-04-24  Havoc Pennington  <hp@redhat.com>
9592
9593         * configure.in: add --enable-checks
9594
9595         * dbus/dbus-message.c (dbus_message_new): reverse name/service arguments
9596
9597         * dbus/dbus-connection.c (dbus_connection_preallocate_send): fix
9598         to use thread locks.
9599         (_dbus_connection_handler_destroyed_locked): move some private
9600         functions into proper docs group
9601
9602         * dbus/dbus-internals.h: add _dbus_return_if_fail,
9603         _dbus_return_val_if_fail
9604
9605         Throughout: use dbus_return_if_fail
9606
9607 2003-04-23  James Willcox  <jwillcox@gnome.org>
9608
9609         * glib/dbus-glib.h:
9610         * glib/dbus-gmain.c: (add_timeout), (wakeup_main), (create_source),
9611         (dbus_connection_setup_with_g_main),
9612         (dbus_server_setup_with_g_main):
9613         * glib/test-dbus-glib.c: (main):
9614         * glib/test-thread-client.c: (main):
9615         * glib/test-thread-server.c: (new_connection_callback), (main):
9616         * tools/dbus-monitor.c: (main):
9617
9618         Added a GMainContext argument to dbus_connection_setup_with_g_main()
9619         and dbus_server_setup_with_g_main().
9620
9621 2003-04-20  Havoc Pennington  <hp@pobox.com>
9622
9623         * doc/dbus-specification.sgml: document the restrictions on
9624         message and service names
9625
9626 2003-04-22  Havoc Pennington  <hp@redhat.com>
9627
9628         * dbus/dbus-message.c, dbus/dbus-marshal.c: add 64-bit integer
9629         support, and do some code cleanups to share more code and
9630         speed up array marshal/demarshal.
9631
9632         * dbus-1.0.pc.in (Cflags): put libdir include file in cflags
9633
9634         * configure.in: generate dbus-arch-deps.h
9635
9636         * dbus/dbus-protocol.h (DBUS_TYPE_INT64, DBUS_TYPE_UINT64): add
9637         64-bit typecodes
9638
9639 2003-04-22  Havoc Pennington  <hp@redhat.com>
9640
9641         * test/data/valid-messages/opposite-endian.message: fix test
9642         to use proper type for rply field
9643
9644         * test/data/invalid-messages: add tests for below validation
9645
9646         * dbus/dbus-message.c (decode_header_data): validate field types,
9647         and validate that named fields are valid names
9648         (decode_name_field): consider messages in the
9649         org.freedesktop.Local. namespace to be invalid.
9650
9651         * dbus/dbus-string.c (_dbus_string_validate_name): new
9652
9653 2003-04-19  Havoc Pennington  <hp@pobox.com>
9654
9655         * bus/driver.c (bus_driver_handle_hello): check limits and
9656         return an error if they are exceeded.
9657
9658         * bus/connection.c: maintain separate lists of active and inactive
9659         connections, and a count of each. Maintain count of completed
9660         connections per user. Implement code to check connection limits.
9661
9662         * dbus/dbus-list.c (_dbus_list_unlink): export
9663
9664         * bus/bus.c (bus_context_check_security_policy): enforce a maximum
9665         number of bytes in the message queue for a connection
9666
9667 2003-04-18  Havoc Pennington  <hp@pobox.com>
9668
9669         * dbus/dbus-auth.c (record_mechanisms): memleak fixes
9670
9671         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): fix some
9672         memleaks
9673
9674         * dbus/dbus-keyring.c (add_new_key): fix a memleak, and
9675         on realloc be sure to update the pointer in the keyring
9676
9677         * dbus/dbus-string.c (_dbus_string_zero): compensate for align
9678         offset to avoid writing to unallocated memory
9679
9680         * dbus/dbus-auth.c (process_rejected): return FALSE if we fail to
9681         try the next mechanism, so we properly handle OOM
9682
9683         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): fix double-free
9684         on OOM.
9685         (_dbus_keyring_new): fix OOM bug
9686         (_dbus_keyring_new_homedir): always set error; impose a maximum
9687         number of keys we'll load from the file, mostly to speed up the
9688         test suite and make its OOM checks more useful, but also for
9689         general sanity.
9690
9691         * dbus/dbus-auth.c (process_error_server): reject authentication
9692         if we get an error from the client
9693         (process_cancel): on cancel, send REJECTED, per the spec
9694         (process_error_client): send CANCEL if we get an error from the
9695         server.
9696
9697 2003-04-18  Havoc Pennington  <hp@pobox.com>
9698
9699         * dbus/dbus-mainloop.c (_dbus_loop_iterate): fix UMR in verbose
9700         debug spew
9701
9702         * dbus/dbus-auth.c (handle_client_data_cookie_sha1_mech): fix OOM
9703         handling problem
9704
9705         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): only whine
9706         about DBUS_TEST_HOMEDIR once
9707
9708         * bus/Makefile.am (TESTS_ENVIRONMENT): put DBUS_TEST_HOMEDIR in
9709         the environment
9710
9711         * bus/dispatch.c (bus_dispatch_sha1_test): actually load sha1
9712         config file so we test the right thing
9713
9714         Throughout: assorted docs improvements
9715
9716 2003-04-18  Havoc Pennington  <hp@pobox.com>
9717
9718         * glib/dbus-gmain.c: adapt to watch changes
9719
9720         * bus/bus.c, bus/activation.c, etc.: adjust to watch changes
9721
9722         * dbus/dbus-server.h: remove dbus_server_handle_watch
9723
9724         * dbus/dbus-connection.h: remove dbus_connection_handle_watch
9725
9726         * dbus/dbus-watch.c (dbus_watch_handle): change DBusWatch to work
9727         like DBusTimeout, so we don't need dbus_connection_handle_watch
9728         etc.
9729
9730 2003-04-17  Havoc Pennington  <hp@redhat.com>
9731
9732         * dbus/dbus-userdb.c, dbus/dbus-sysdeps.c: redo all the passwd
9733         database usage so it all goes via the DBusUserDatabase cache.
9734
9735 2003-04-17  Havoc Pennington  <hp@redhat.com>
9736
9737         * dbus/dbus-mainloop.c (_dbus_loop_iterate): fix logic so that if
9738         there was an OOM watch we skipped, we always return TRUE so we
9739         iterate again to have a look at it again. Fixes test suite hang.
9740         Code rearrangement also lets us lose some memset and only iterate
9741         over callbacks once.
9742
9743         * bus/driver.c (bus_driver_handle_message): sense of test for
9744         reply was backward
9745
9746 2003-04-16  Havoc Pennington  <hp@pobox.com>
9747
9748         * doc/dbus-specification.sgml: make spec say serials are unsigned
9749
9750         * dbus/dbus-message.h: change message serials to unsigned
9751
9752         * dbus/dbus-connection.c: adapt to message serials being unsigned
9753
9754 2003-04-15  Havoc Pennington  <hp@pobox.com>
9755
9756         * bus/bus.c: create and keep around a shared DBusUserDatabase
9757         object.
9758
9759         * bus/connection.c (bus_connection_get_groups): don't cache
9760         groups for user in the connection object, since user database
9761         object now does that.
9762
9763 2003-04-16  Havoc Pennington  <hp@redhat.com>
9764
9765         * dbus/dbus-message.c (_dbus_message_add_size_counter): keep a
9766         list of size counters
9767         (_dbus_message_loader_putback_message_link): put back a popped link
9768
9769         * dbus/dbus-connection.c
9770         (dbus_connection_set_max_live_messages_size): rename
9771         max_received_size
9772         (dbus_connection_get_outgoing_size): get size of outgoing
9773         queue
9774         (_dbus_connection_set_connection_counter): remove this cruft
9775
9776 2003-04-14  Havoc Pennington  <hp@redhat.com>
9777
9778         * dbus/dbus-userdb.c: user database abstraction, mostly to get
9779         caching, but at some point we might want to be able to use a
9780         different database.
9781
9782         * bus/dispatch.c (bus_dispatch_sha1_test): add a test that uses
9783         SHA1 conf file to test the sha1 auth mechanism, since the regular
9784         test always uses EXTERNAL when available.
9785
9786         * configure.in,
9787         test/data/valid-config-files/debug-allow-all-sha1.conf.in:
9788         add conf file that requires use of sha1 auth
9789
9790 2003-04-13  Havoc Pennington  <hp@pobox.com>
9791
9792         * tools/dbus-send.c, tools/dbus-monitor.c: two utility programs
9793         from Philip Blundell to send messages and monitor them.
9794
9795 2003-04-13  Havoc Pennington  <hp@pobox.com>
9796
9797         * dbus/dbus-mainloop.c: fix some reentrancy issues by refcounting
9798         callbacks
9799
9800         * test/data/valid-config-files/debug-allow-all.conf.in: allow all
9801         users
9802
9803         * dbus/dbus-transport.c (_dbus_transport_get_dispatch_status):
9804         fix to only recover unused bytes if we're already authenticated
9805         (_dbus_transport_get_is_authenticated): fix to still mark us
9806         authenticated if there are unused bytes.
9807
9808         * bus/dispatch.c: implement security policy checking
9809
9810         * bus/connection.c (bus_transaction_send_from_driver): new
9811
9812         * bus/bus.c (bus_context_check_security_policy): new
9813
9814         * bus/dispatch.c (send_service_nonexistent_error): delete this,
9815         now we just set the DBusError and it gets converted to an error
9816         reply.
9817
9818         * bus/connection.c (allow_user_function): enable code using actual
9819         data from the config file
9820
9821         * bus/policy.c (list_allows_user): handle wildcard rules for
9822         user/group connection perms
9823
9824 2003-04-13  Havoc Pennington  <hp@pobox.com>
9825
9826         * bus/config-parser.c: Load up the BusPolicy and BusPolicyRules
9827
9828         * dbus/dbus-sysdeps.c (_dbus_get_user_id): new function
9829
9830         * bus/policy.c (bus_policy_append_mandatory_rule)
9831         (bus_policy_append_default_rule, bus_policy_append_user_rule)
9832         (bus_policy_append_group_rule): new functions
9833
9834 2003-04-12  Havoc Pennington  <hp@pobox.com>
9835
9836         * bus/config-parser.c (bus_config_parser_new): fix a memleak
9837
9838         * dbus/dbus-sysdeps.c: change DBusCredentials to use longs for
9839         the pid/gid/uid, just for paranoia.
9840
9841         * test/break-loader.c (randomly_do_n_things): find a byte
9842         containing a type code, and randomly change it to a different
9843         type code.
9844
9845 2003-04-12  Havoc Pennington  <hp@pobox.com>
9846
9847         * bus/policy.h: change BusPolicy to be the thing from the config
9848         file, and rename old BusPolicy to BusClientPolicy
9849
9850         * bus/bus.c, bus/connection.c, bus/config-parser.c: change to
9851         match change in how policy works
9852
9853         * dbus/dbus-internals.h: mark assert_not_reached as
9854         __attribute((noreturn))__
9855
9856 2003-04-11  Havoc Pennington  <hp@redhat.com>
9857
9858         * doc/dbus-specification.sgml: fix a spot with the wrong name for
9859         the broadcast service. Use boolean return for ServiceExists.
9860
9861 2003-04-11  Havoc Pennington  <hp@redhat.com>
9862
9863         * configure.in: add another directory to look for qt in.
9864
9865 2003-04-11  Havoc Pennington  <hp@redhat.com>
9866
9867         * AUTHORS: add Colin Walters
9868
9869 2003-04-11  Havoc Pennington  <hp@redhat.com>
9870
9871         * NEWS: update
9872
9873         * configure.in: 0.9
9874
9875 2003-04-11  Havoc Pennington  <hp@redhat.com>
9876
9877         * bus/messagebus.in: remove pid file when stopping the
9878         message bus, since the bus won't have privileges to remove it
9879         itself.
9880
9881 2003-04-11  Havoc Pennington  <hp@redhat.com>
9882
9883         * bus/bus.c (bus_context_new): move credentials change after
9884         creating pidfile
9885
9886 2003-04-11  Havoc Pennington  <hp@pobox.com>
9887
9888         * test/decode-gcov.c: add "below average functions" to the
9889         coverage report, and change how some of the code works.
9890
9891         * bus/test-main.c: bracket some stuff in DBUS_BUILD_TESTS so it's
9892         not in the coverage stats.
9893
9894         * test/test-service.c (main): use _dbus_verbose not fprintf in a
9895         couple places so running the test suite doesn't result in megaspam.
9896
9897 2003-04-11  Havoc Pennington  <hp@pobox.com>
9898
9899         * bus/dispatch.c (check_existent_service_activation): accept a no
9900         memory error in a place we didn't before
9901
9902         * bus/test.c (bus_test_run_everything): remove hacky "do it twice
9903         in case the first one failed," since the test suite is less
9904         broken now.
9905
9906 2003-04-10  Havoc Pennington  <hp@pobox.com>
9907
9908         * bus/dispatch.c (check_segfault_service_activation): add test
9909         for launching an executable that just crashes.
9910
9911         * test/test-segfault.c (main): try setting coredumpsize to 0 so we
9912         don't leave a million cores. We'll see how portable this is.
9913
9914 2003-04-10  Havoc Pennington  <hp@pobox.com>
9915
9916         * dbus/dbus-spawn.c (_dbus_spawn_async_with_babysitter): move all
9917         the possible parent failures before we fork, so that we don't
9918         fail to create a babysitter after creating the child.
9919
9920         * bus/activation.c (bus_activation_activate_service): kill child
9921         if we don't successfully complete the activation.
9922
9923 2003-04-10  Havoc Pennington  <hp@redhat.com>
9924
9925         * dbus/dbus-connection.c (dbus_connection_flush): don't spin on
9926         the connection if it's disconnected
9927
9928         * bus/activation.c (bus_activation_service_created): use new
9929         transaction features to roll back removal of pending activation if
9930         we don't successfully create the service after all. Don't remove
9931         pending activation if the function fails.
9932
9933         * dbus/dbus-list.c (_dbus_list_insert_before_link)
9934         (_dbus_list_insert_after_link): new code to facilitate
9935         services.c fixes
9936
9937         * dbus/dbus-hash.c (_dbus_hash_table_insert_string_preallocated):
9938         new functionality, so we can preallocate the ability to insert
9939         into a hash table.
9940
9941         * bus/connection.c (bus_transaction_add_cancel_hook): new function
9942         allowing us to put custom hooks in a transaction to be used for
9943         cancelling said transaction
9944
9945         * doc/dbus-specification.sgml: add some discussion of secondary
9946         service owners, and disallow zero-length service names
9947
9948         * bus/services.c (bus_registry_acquire_service): new function,
9949         splits out part of bus_driver_handle_acquire_service() and fixes
9950         a bug where we didn't remove the service doing the acquiring
9951         from the secondary queue if we failed to remove the current owner
9952         from the front of the queue.
9953
9954 2003-04-10  Alexander Larsson  <alexl@redhat.com>
9955
9956         * doc/dbus-specification.sgml:
9957         s/org.freedesktop.Broadcast/org.freedesktop.DBus.Broadcast/
9958
9959 2003-04-10  Alexander Larsson  <alexl@redhat.com>
9960
9961         * bus/.cvsignore:
9962         * glib/.cvsignore:
9963         * test/.cvsignore:
9964         Added files to cvsignore
9965
9966         * dbus/dbus-message.h:
9967         * dbus/dbus-message.c: (dbus_message_iter_get_named):
9968         Make get_named() take two out argument and return a boolean.
9969         (dbus_message_iter_get_args_valist):
9970         Update usage of get_named().
9971         (dbus_message_iter_append_byte):
9972         Fix typo
9973         (dbus_message_iter_append_named)
9974         Fix typo
9975         (message_iter_test), (check_message_handling_type), (_dbus_message_test):
9976         More tests.
9977
9978 2003-04-10  Alexander Larsson  <alexl@redhat.com>
9979
9980         * dbus/dbus-marshal.[ch]:
9981         Add array_type_pos argument to _dbus_marshal_validate_arg.
9982         Let you pass a NULL end_pos to _dbus_marshal_validate_type.
9983
9984         * dbus/dbus-message.[ch]:
9985         Multi-dimensional arrays have full type specification in the
9986         outermost array. Iter code re-arranged to handle this.
9987         Added some more iter tests.
9988
9989         * doc/dbus-specification.sgml:
9990         Add me to authors.
9991         Remove old FIXME.
9992         Update new array encoding description.
9993         Correct DBUS_SERVICE_FLAGS_REPLACE_EXISTING description.
9994
9995         * test/data/invalid-messages/array-with-mixed-types.message:
9996         * test/data/valid-messages/array-of-array-of-uint32.message:
9997         Change to the new array format.
9998
9999         * test/data/invalid-messages/too-short-dict.message:
10000         Fix bug in test.
10001
10002         * test/data/valid-messages/recursive-types.message:
10003         Fix up and extend test.
10004
10005 2003-04-10  Havoc Pennington  <hp@pobox.com>
10006
10007         * bus/dispatch.c: lots of fixes
10008
10009         * dbus/dbus-mainloop.c (_dbus_loop_dispatch): export
10010         (_dbus_loop_iterate): remove old "quit if no callbacks" code,
10011         that was crack, broke the test service.
10012
10013         * dbus/dbus-transport.c (_dbus_transport_open): fix error
10014         handling to avoid piling up errors if we get a failure on the
10015         first address.
10016
10017         * dbus/dbus-internals.c (_dbus_real_assert_not_reached): include
10018         pid in assertion failures.
10019
10020         * dbus/dbus-mainloop.c (_dbus_loop_iterate): use static arrays up
10021         to some fixed size of file descriptor array. Don't return TRUE
10022         anytime a timeout exists, that led to lots of busy loop silliness
10023         in the tests.
10024
10025 2003-04-09  Havoc Pennington  <hp@redhat.com>
10026
10027         * dbus/dbus-mainloop.c (check_timeout): fix timeouts, I thought
10028         I'd checked this in earlier but hadn't.
10029
10030 2003-04-09  Havoc Pennington  <hp@redhat.com>
10031
10032         * bus/dispatch.c (bus_dispatch_test): get a bit further through
10033         the activation test (man this is getting old!)
10034
10035 2003-04-09  Havoc Pennington  <hp@redhat.com>
10036
10037         * test/test-utils.c: use dispatch status function to fix this up
10038
10039         * bus/connection.c (connection_watch_callback): don't dispatch
10040         from here
10041         (connection_timeout_callback): don't dispatch from here
10042         (bus_connections_setup_connection): set the dispatch status function
10043         (bus_connection_disconnected): unset it
10044
10045         * dbus/dbus-mainloop.c (_dbus_loop_queue_dispatch): new function
10046         used to add a connection to be dispatched
10047         (_dbus_loop_iterate): do the dispatching at the end of each
10048         iteration
10049
10050         * dbus/dbus-connection.c
10051         (dbus_connection_set_dispatch_status_function): new function
10052         allowing us to fix up main loop usage
10053         (_dbus_connection_last_unref): free all the various function
10054         user data
10055         (dbus_connection_dispatch): call the DispatchStatusFunction
10056         whenever this function returns
10057         (dbus_connection_handle_watch): call DispatchStatusFunction
10058         (dbus_connection_send_with_reply_and_block): call DispatchStatusFunction
10059         (reply_handler_timeout): call DispatchStatusFunction
10060         (dbus_connection_flush): call DispatchStatusFunction
10061
10062 2003-04-09  Havoc Pennington  <hp@redhat.com>
10063
10064         * dbus/dbus-bus.c (dbus_bus_register): fix up error handling and
10065         a memory leak
10066
10067         * bus/dispatch.c (check_service_activated): fix bug in test
10068
10069         * dbus/dbus-mainloop.c (check_timeout): fix this up
10070
10071         * dbus/dbus-internals.c (_dbus_verbose_real): include PID in
10072         verbose output so we can sort out output from different processes,
10073         e.g. in the activation case.
10074
10075 2003-04-08  Colin Walters  <walters@gnu.org>
10076
10077         * bus/bus.c (struct BusContext) [pidfile]: New member, to store
10078         the pid file.
10079         (bus_context_new): Set it.
10080         (bus_context_unref): Use it to delete the pid file.
10081
10082 2003-04-08  Havoc Pennington  <hp@redhat.com>
10083
10084         * test/data/invalid-messages/array-with-mixed-types.message:
10085         regression test that fails for the moment
10086
10087         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): reorder
10088         tests for convenience
10089
10090         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): don't allow
10091         array of nil, it broke things.
10092
10093         * test/data/invalid-messages/array-of-nil.message: regression test
10094
10095         * test/data/valid-messages/array-of-array-of-uint32.message:
10096         happened to write this so added it to suite
10097
10098 2003-04-08  Havoc Pennington  <hp@redhat.com>
10099
10100         * bus/driver.c (bus_driver_handle_acquire_service): init
10101         retval/reply before checking name
10102
10103         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): add a
10104         recursion depth argument
10105
10106         * dbus/dbus-message.h (struct DBusMessageIter): put some padding
10107         in the public struct for future extension
10108
10109         * dbus/dbus-message-builder.c (_dbus_message_data_load): fix
10110         typo
10111
10112         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): fix a verbose
10113         message
10114
10115         * doc/dbus-specification.sgml: fix typo
10116
10117 2003-04-08  Alexander Larsson  <alexl@redhat.com>
10118
10119         Implemented recursive types, named types and new-style iters
10120
10121         * bus/driver.c:
10122         * glib/test-thread-client.c: (thread_func):
10123         * glib/test-thread-server.c: (handle_test_message):
10124         * test/test-service.c: (handle_echo):
10125         Update to new api
10126
10127         * dbus/Makefile.am:
10128         * dbus/dbus-dict.c:
10129         * dbus/dbus-dict.h:
10130         * dbus/dbus.h
10131         Remove DBusDict
10132
10133         * dbus/dbus-internals.c: (_dbus_type_to_string):
10134         Update for new types.
10135
10136         * dbus/dbus-marshal.[ch]:
10137         Implement recursive types and the new marshalling format.
10138         Remove hardcoded dict marshalling.
10139         Marshal named types.
10140
10141         * dbus/dbus-message-builder.c:
10142         Add BYTE_ARRAY.
10143         Remove references to old types
10144
10145         * dbus/dbus-message.[ch]:
10146         New non-refcounted iter API that supports recursive iters.
10147         Use iters for appending, including support for recursive
10148         iters.
10149         Add byte and named type support.
10150         Update everything to new marshalling formats.
10151         Add tests for new API.
10152
10153         * dbus/dbus-protocol.h:
10154         Remove old array types.
10155         Add types: BYTE, ARRAY, DICT, NAMED
10156
10157         * dbus/dbus-string.c:
10158         * dbus/dbus-sysdeps.c:
10159         Make parse_double locale safe.
10160
10161         * dbus/dbus-test-main.c:
10162         Call setlocale.
10163
10164         * dbus/dbus-test.c:
10165         Kill dict test
10166
10167         * doc/dbus-specification.sgml:
10168         Update spec
10169
10170         * test/data/incomplete-messages/missing-body.message:
10171         * test/data/invalid-messages/bad-boolean.message:
10172         * test/data/invalid-messages/bad-boolean-array.message:
10173         * test/data/invalid-messages/boolean-array-length-too-long.message-raw:
10174         * test/data/invalid-messages/boolean-has-no-value.message-raw:
10175         * test/data/invalid-messages/too-short-dict.message:
10176         * test/data/valid-messages/dict-simple.message:
10177         * test/data/valid-messages/dict.message:
10178         * test/data/valid-messages/emptiness.message:
10179         * test/data/valid-messages/lots-of-arguments.message:
10180         * test/data/valid-messages/no-padding.message:
10181         * test/data/valid-messages/recursive-types.message:
10182         Add missing NAME fields
10183         Fix up dicts & arrays
10184
10185         * test/data/invalid-messages/dict-with-nil-value.message:
10186         Removed, this is not invalid anymore.
10187
10188         * test/data/valid-messages/recursive-types.message:
10189         Add new test for deeply recursive types.
10190
10191 2003-04-07  Havoc Pennington  <hp@pobox.com>
10192
10193         * bus/driver.c (bus_driver_handle_acquire_service): return an
10194         error if you try to acquire a service that starts with ':'
10195
10196 2003-04-07  Havoc Pennington  <hp@redhat.com>
10197
10198         * doc/dbus-specification.sgml: require that base service names
10199         start with ':' and that the base service is created/deleted
10200         as first and last things a connection does on the bus
10201
10202         * bus/dispatch.c (check_existent_service_activation): lots more
10203         work on the activation test; it doesn't fully pass yet...
10204
10205         * test/test-service.c (main): fix so we don't memleak the
10206         connection to the message bus
10207         (filter_func): accept a message asking us to exit
10208
10209 2003-04-06  Havoc Pennington  <hp@pobox.com>
10210
10211         * qt/Makefile.am (dbusinclude_HEADERS): install dbus-qt.h,
10212         from Colin Walters
10213
10214         * configure.in: fixes to Qt detection from Colin Walters
10215
10216         * doc/Makefile.am: Only remove generated docbook dirs if they
10217         exist, from Colin Walters
10218
10219         * dbus/dbus-bus.c: change how we set well-known connections to
10220         NULL, so that it works if a single connection is stored in
10221         two well-known array slots.
10222
10223         * test/Makefile.am: remove a lot of stuff that isn't immediately
10224         useful, it's in CVS history if we want it.
10225
10226         * test/test-service.c: use dbus-mainloop instead of that
10227         watch.[hc] crack
10228
10229 2003-04-06  Havoc Pennington  <hp@pobox.com>
10230
10231         * dbus/Makefile.am: split lists of sources into stuff that goes in
10232         the library, util functions that go in the lib and are also used
10233         elsewhere, and util functions that are used in tests/daemon but
10234         don't go in the lib.
10235
10236         * dbus/dbus-mainloop.h, dbus/dbus-mainloop.c: move bus/loop.[hc]
10237         here so it can be used in test binaries also
10238
10239 2003-04-06  Havoc Pennington  <hp@pobox.com>
10240
10241         * dbus/dbus-sysdeps.c (_dbus_become_daemon): write the pidfile
10242         here in the parent process, so we can return an error if it
10243         fails. Also, move some of the code into the child so the parent
10244         is less hosed if we fail midway through.
10245
10246         * bus/bus.c (bus_context_new): move pidfile detection further up
10247         in the function, before we start overwriting sockets and such.
10248
10249         * bus/messagebus.in: adjust this a bit, not sure if it will work.
10250
10251         * configure.in: add --with-system-pid-file and --with-system-socket
10252
10253 2003-04-06  Colin Walters  <walters@verbum.org>
10254
10255         * configure.in (DBUS_SYSTEM_PID_FILE): New variable.
10256
10257         * bus/system.conf.in: Declare a pidfile.
10258
10259         * bus/bus.c (bus_context_new): Test for an existing pid file, and
10260         create one (if appropriate).
10261
10262         * bus/config-parser.c (enum ElementType) [ELEMENT_PIDFILE]: New.
10263         (struct BusConfigParser) [pidfile]: New.
10264         (element_type_to_name, merge_included, start_busconfig_child)
10265         (bus_config_parser_end_element, bus_config_parser_content): Handle it.
10266         (bus_config_parser_unref): Free it.
10267         (bus_config_parser_get_pidfile): New function.
10268
10269         * bus/config-parser.h (_dbus_write_pid_file): Prototype.
10270
10271         * dbus/dbus-errors.h (DBUS_ERROR_PIDFILE_EXISTS): New error.
10272
10273         * dbus/dbus-sysdeps.c (_dbus_write_pid_file): New function.
10274
10275         * dbus/dbus-sysdeps.h: Prototype it.
10276
10277 2003-04-06  Havoc Pennington  <hp@pobox.com>
10278
10279         * bus/bus.c (bus_context_new): print the address in here, rather
10280         than in main(), because we need to do it before forking the daemon
10281
10282         * bus/dispatch.c (send_service_nonexistent_error): set the sender
10283         on the service nonexistent error
10284
10285         * bus/driver.c (bus_driver_handle_acquire_service): set the
10286         sender on the AcquireService reply
10287
10288         * test/data/valid-config-files/debug-allow-all.conf.in: Make test
10289         server also listen on a UNIX socket so services can connect to it.
10290
10291 2003-04-06  Havoc Pennington  <hp@pobox.com>
10292
10293         * dbus/dbus-threads.c: Redo how the fake debug mutexes are done
10294         so it detects deadlocks and also we actually init threads when
10295         debugging.
10296
10297 2003-04-06  Havoc Pennington  <hp@pobox.com>
10298
10299         * dbus/dbus-server-unix.c (_dbus_server_new_for_domain_socket):
10300         save the domain socket name, and unlink it when we disconnect the
10301         server. Means that at least when we exit normally, we won't leave
10302         a bunch of junk in /tmp
10303
10304         * dbus/dbus-transport-unix.c
10305         (_dbus_transport_new_for_domain_socket): code cleanup (nicer
10306         memory management). (I was making a real change here but then
10307         didn't)
10308
10309 2003-04-06  Havoc Pennington  <hp@pobox.com>
10310
10311         * bus/bus.c (bus_context_new): fix wrong handling of
10312         server_data_slot_unref() in the error case.
10313
10314         * dbus/dbus-internals.h (_dbus_assert): change so it passes
10315         "(condition) != 0" to _dbus_real_assert so that
10316         "_dbus_assert (pointer)" doesn't cause a warning
10317
10318         * bus/main.c (main): accept --print-address option to print out
10319         the message bus address
10320
10321         * dbus/dbus-sysdeps.c (_dbus_generate_random_ascii): export this
10322
10323         * dbus/dbus-transport.c (_dbus_transport_open): special error for
10324         "tmpdir" option to unix: address on client side
10325
10326         * dbus/dbus-server.c (dbus_server_listen): handle "tmpdir" option
10327         to unix: address
10328
10329         * configure.in (TEST_SOCKET_DIR): locate a temporary directory
10330         we can use to create sockets in the test suite.
10331
10332         * bus/main.c (signal_handler): on SIGTERM, exit the daemon
10333         cleanly. To be used for testing.
10334
10335         * dbus/dbus-spawn.c (babysit): use _dbus_set_signal_handler()
10336
10337         * dbus/dbus-sysdeps.c (_dbus_set_signal_handler): new
10338
10339         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
10340         handle trying to call this when there's no servers active
10341
10342 2003-04-05  Havoc Pennington  <hp@pobox.com>
10343
10344         * NEWS: update
10345
10346         * configure.in: 0.8
10347
10348 2003-04-05  Havoc Pennington  <hp@pobox.com>
10349
10350         * bus/bus.c (setup_server): fix this so dbus-daemon-1 doesn't
10351         crash on startup. Need to get "try starting the daemon"
10352         in the test suite I guess. ;-)
10353
10354         * dbus/dbus-server.h, dbus/dbus-server.c: remove the stuff that
10355         tracked the number of open connections; it's better done in
10356         application-specific code as you want it to span all servers etc.
10357
10358 2003-04-05  Havoc Pennington  <hp@pobox.com>
10359
10360         * bus/Makefile.am (install-data-hook): add missing DESTDIR,
10361         patch from Colin Walters
10362
10363 2003-04-05  Havoc Pennington  <hp@pobox.com>
10364
10365         * doc/config-file.txt (Elements): fix docs of <auth> to reflect
10366         reality; in fact multiple mechanisms are allowed.
10367
10368         * dbus/dbus-internals.c (_dbus_real_assert)
10369         (_dbus_real_assert_not_reached): move guts of _dbus_assert() and
10370         _dbus_assert_not_reached() into functions, so that they don't show
10371         up in basic block counts for test coverage, and don't use up as
10372         much disk space. Does mean slower execution speed though, so
10373         assumes --disable-asserts is the normal production case.
10374
10375 2003-04-05  Havoc Pennington  <hp@pobox.com>
10376
10377         * test/Makefile.am (dist-hook): also dist *.in files
10378
10379         * NEWS: update
10380
10381         * configure.in: 0.7
10382
10383 2003-04-05  Havoc Pennington  <hp@pobox.com>
10384
10385         * dbus/dbus-string.c: docs warning
10386
10387         * dbus/dbus-spawn.c: missing docs
10388
10389         * dbus/dbus-memory.c (struct ShutdownClosure): missing docs
10390
10391 2003-04-05  Havoc Pennington  <hp@pobox.com>
10392
10393         * bus/loop.c (bus_loop_iterate): fix the timeout code, using
10394         magic from GLib
10395
10396         * dbus/dbus-spawn.c (_dbus_babysitter_unref): set sitter_pid
10397         to -1 once we've reaped the babysitter
10398         (_dbus_babysitter_handle_watch): do as much work as we can, not
10399         just one go of it
10400
10401         * bus/activation.c: add code using DBusBabysitter so that we
10402         handle it when a service fails to start up properly.
10403         (bus_activation_service_created): don't remove the activation
10404         entries as we go, just let them get removed when we free the pending
10405         activation. Unref reply messages after sending them.
10406
10407 2003-04-05  Havoc Pennington  <hp@pobox.com>
10408
10409         * test/decode-gcov.c (main): print per-directory stats in the report
10410
10411         * Makefile.am (coverage-report.txt): don't include test/* in gcov stats
10412
10413 2003-04-05  Havoc Pennington  <hp@pobox.com>
10414
10415         * Makefile.am (coverage-report.txt): add target "coverage-report.txt"
10416
10417         * test/decode-gcov.c: hack up a little program to suck data
10418         out of gcov files. Yes this is sort of silly.
10419
10420         * configure.in: define something in config.h and do an
10421         AM_CONDITIONAL when gcov is enabled
10422
10423 2003-04-04  Havoc Pennington  <hp@redhat.com>
10424
10425         * dbus/dbus-spawn.c, dbus/dbus-spawn.h: Change dbus_spawn to
10426         return a "babysitter" object that is used to monitor the status of
10427         the spawned process and reap it when required.
10428
10429         * test/test-segfault.c, test/test-exit.c,
10430         test/test-sleep-forever.c: binaries that do various lame things,
10431         used in the test suite.
10432
10433         * dbus/dbus-sysdeps.c: kill _dbus_errno_to_string()
10434
10435 2003-04-03  Havoc Pennington  <hp@pobox.com>
10436
10437         * dbus/dbus-spawn.c: Move dbus-spawn into a separate file
10438         in preparation for modifying it, dbus-sysdeps is getting
10439         a bit unmanageable.
10440
10441 2003-04-03  Havoc Pennington  <hp@redhat.com>
10442
10443         * bus/loop.h, bus/loop.c: make the mainloop an object so we can
10444         have multiple ones
10445
10446         * bus/*.[hc]: adapt to mainloop change
10447
10448 2003-04-03  Havoc Pennington  <hp@redhat.com>
10449
10450         * bus/activation.c (load_directory): fix up memleaks
10451         (bus_activation_entry_free): free the entry
10452
10453         * dbus/dbus-bus.c (dbus_bus_acquire_service): return an error if
10454         we get one from the message bus; fix memleaks.
10455
10456         * dbus/dbus-message.c (dbus_set_error_from_message): new function
10457
10458 2003-04-03  Havoc Pennington  <hp@pobox.com>
10459
10460         * bus/config-parser.c (bus_config_parser_unref): free
10461         list of mechanisms, bug discovered by test suite enhancements
10462         (putting system.conf and session.conf into suite)
10463
10464         * test/Makefile.am, test/test-service.c: add placeholder for a
10465         test service that we'll activate as part of test suite. Doesn't
10466         do anything yet.
10467
10468         * dbus/dbus-sysdeps.c (_dbus_setenv): support unsetenv by
10469         setting NULL value, and use system malloc not dbus_malloc()
10470         when we have unavoidable memleakage.
10471
10472         * dbus/dbus-bus.c (dbus_bus_get): fix bug where bus type of 0
10473         didn't work, and support DBUS_BUS_ACTIVATION.
10474
10475         * bus/activation.c (child_setup): pass our well-known bus type to
10476         the child
10477
10478         * bus/config-parser.c: support <type> to specify well-known type
10479
10480         * doc/dbus-specification.sgml: document the env variables to
10481         locate well-known buses and find service activator
10482
10483 2003-04-02  Havoc Pennington  <hp@redhat.com>
10484
10485         * test/Makefile.am (all-local): add a rule to copy tests to
10486         builddir, so we can have generated tests. Use this to remove the
10487         silly hack for testing system.conf and session.conf. Will use this
10488         shortly to generate .service files pointing to test binaries.
10489
10490 2003-04-02  Havoc Pennington  <hp@redhat.com>
10491
10492         * dbus/dbus-string.c (set_length): fix a bug - we allocated max of
10493         current alloc and needed new length, not max of the doubled
10494         allocation and needed new length. Also, when building tests,
10495         don't do the double-allocation stuff, just realloc every time.
10496
10497 2003-04-02  Havoc Pennington  <hp@redhat.com>
10498
10499         * dbus/dbus-sysdeps.c (_dbus_file_get_contents): include filenames
10500         in error messages
10501         (_dbus_string_get_dirname): new
10502         (_dbus_sysdeps_test): new
10503         (_dbus_directory_open): include dirnames in error messages
10504
10505         * bus/config-parser.c: interpret <include> and <includedir> and
10506         <servicedir> relative to config file location if the given
10507         filename is not absolute.
10508
10509         * dbus/dbus-string.c (_dbus_string_find_byte_backward): new
10510
10511 2003-04-02  Havoc Pennington  <hp@redhat.com>
10512
10513         * bus/connection.c (bus_transaction_send_error_reply): set sender
10514         service for the error, and unref the reply on success
10515
10516         * bus/activation.c: convert to use BusTransaction so OOM can be
10517         handled correctly
10518         (bus_activation_service_created): set sender of the message
10519
10520 2003-04-01  Havoc Pennington  <hp@redhat.com>
10521
10522         * bus/config-parser.c, bus/bus.c: implement <servicedir> and
10523         <includedir> (at least mostly)
10524
10525         * dbus/dbus-sysdeps.c (_dbus_change_identity): set the group ID
10526         first, then the user ID
10527
10528 2003-04-01  Havoc Pennington  <hp@pobox.com>
10529
10530         * dbus/dbus-server.c (dbus_server_set_auth_mechanisms): new
10531         function
10532
10533         * dbus/dbus-auth.c (_dbus_auth_set_mechanisms): new
10534
10535         * dbus/dbus-internals.c (_dbus_dup_string_array): new function
10536
10537         * dbus/dbus-sysdeps.c (_dbus_listen_unix_socket): chmod the
10538         socket 0777, and unlink any existing socket.
10539
10540         * bus/bus.c (bus_context_new): change our UID/GID and fork if
10541         the configuration file so specifies; set up auth mechanism
10542         restrictions
10543
10544         * bus/config-parser.c (bus_config_parser_content): add support
10545         for <fork> option and fill in code for <auth>
10546
10547         * bus/system.conf.in: add <fork/> to default configuration,
10548         and limit auth mechanisms to EXTERNAL
10549
10550         * doc/config-file.txt (Elements): add <fork>
10551
10552         * dbus/dbus-sysdeps.c (_dbus_become_daemon): new function
10553         (_dbus_change_identity): new function
10554
10555 2003-03-31  Havoc Pennington  <hp@redhat.com>
10556
10557         * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket)
10558         (_dbus_listen_unix_socket): fix off-by-one error in null
10559         termination spotted by Nalin
10560
10561 2003-03-31  Havoc Pennington  <hp@redhat.com>
10562
10563         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): allow setting
10564         DBUS_TEST_HOMEDIR when tests are enabled, so we can test without
10565         having a real home directory available.
10566
10567 2003-03-31  Havoc Pennington  <hp@redhat.com>
10568
10569         * bus/Makefile.am (install-data-hook): create /var/run/dbus
10570
10571         * bus/messagebus.in: add init script for Red Hat /etc/init.d
10572
10573         * configure.in: add support for specifying a style of init script
10574         to install
10575
10576 2003-03-31  Havoc Pennington  <hp@redhat.com>
10577
10578         Fix some annoying DBusString API and fix all affected code.
10579
10580         * dbus/dbus-string.c (_dbus_string_init): get rid of annoying
10581         max_length argument
10582         (_dbus_string_get_data): change to return string instead of using
10583         an out param
10584         (_dbus_string_get_const_data): ditto
10585         (_dbus_string_get_data_len): ditto
10586         (_dbus_string_get_const_data_len): ditto
10587
10588 2003-03-31  Havoc Pennington  <hp@redhat.com>
10589
10590         * bus/main.c (main): fix up the command line arguments to be nicer
10591
10592 2003-03-31  Havoc Pennington  <hp@redhat.com>
10593
10594         * dbus/Makefile.am (INCLUDES): use EXPANDED_LOCALSTATEDIR to
10595         define DBUS_SYSTEM_BUS_PATH as we want to compile in the same
10596         final location that lands in the config file
10597
10598         * bus/config-loader-expat.c (bus_config_load): fix type of
10599         XML_Parser variable
10600
10601         * doc/TODO: remove TODO item for dbus_bus_get()
10602
10603         * dbus/dbus-bus.c (bus_data_free): add missing lock/unlock
10604
10605 2003-03-31  Havoc Pennington  <hp@pobox.com>
10606
10607         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_domain_socket)
10608         (_dbus_transport_new_for_tcp_socket): these didn't need the "server"
10609         argument since they are always client side
10610
10611         * dbus/dbus-server.c (dbus_server_get_address): new function
10612
10613         * bus/main.c (main): take the configuration file as an argument.
10614
10615         * test/data/valid-config-files/debug-allow-all.conf: new file to
10616         use with dispatch.c tests for example
10617
10618         * bus/test-main.c (main): require test data dir
10619
10620         * bus/bus.c (bus_context_new): change this to take a
10621         configuration file name as argument
10622
10623         * doc/config-file.txt (Elements): add <servicedir>
10624
10625         * bus/system.conf, bus/session.conf: new files
10626
10627         * dbus/dbus-bus.c (dbus_bus_get): look for system bus on
10628         well-known socket if none set
10629
10630         * configure.in: create system.conf and session.conf
10631
10632 2003-03-30  Havoc Pennington  <hp@pobox.com>
10633
10634         * bus/config-parser.c: hacking
10635
10636         * dbus/dbus-memory.c: don't use DBusList for the list of stuff
10637         to shut down, since it could cause weirdness with the DBusList
10638         lock
10639
10640         * dbus/dbus-list.c (_dbus_list_test): add tests for the
10641         link-oriented stack routines
10642         (alloc_link): free the mempool if the first alloc from it fails
10643
10644         * dbus/dbus-mempool.c (struct DBusMemBlock): fix alignment issue
10645
10646         * dbus/dbus-string.c (UNICODE_VALID): sync new version of this
10647         from GLib
10648         (_dbus_string_skip_white): new
10649
10650         * doc/config-file.txt (Elements): add <includedir>
10651
10652 2003-03-28  Havoc Pennington  <hp@pobox.com>
10653
10654         * dbus/dbus-string.c (_dbus_string_copy_data_len)
10655         (_dbus_string_copy_data): new functions
10656
10657 2003-03-28  Anders Carlsson  <andersca@codefactory.se>
10658
10659         * dbus/dbus-bus.c: (bus_data_free), (dbus_bus_get):
10660         * dbus/dbus-bus.h:
10661         Add dbus_bus_get.
10662
10663         * dbus/dbus-memory.c:
10664         Fix a doc comment.
10665
10666 2003-03-28  Havoc Pennington  <hp@pobox.com>
10667
10668         * bus/test.c (bus_test_flush_bus): remove the sleep from here,
10669         I think it may have just been superstition. Not sure.
10670
10671         * dbus/dbus-string.c (_dbus_string_base64_decode): catch some OOM
10672         failures that were not being handled.
10673
10674         * dbus/dbus-auth.c (process_auth): fix a memleak in OOM handling
10675
10676         * dbus/dbus-memory.c: add ability to set number of mallocs in a
10677         row that will fail on out-of-memory.
10678
10679         * dbus/dbus-internals.c (_dbus_test_oom_handling): convenience
10680         function for testing out-of-memory handling.
10681
10682         * bus/config-loader-expat.c (memsuite): don't wrap the dbus
10683         allocation functions, they do map exactly to the expat ones.
10684
10685 2003-03-27  Havoc Pennington  <hp@redhat.com>
10686
10687         * bus/config-loader-libxml.c (bus_config_load): add another error
10688         check
10689
10690 2003-03-26  Anders Carlsson  <andersca@codefactory.se>
10691
10692         * doc/TODO:
10693         Add note about automatic service activation.
10694
10695         * doc/dbus-specification.sgml:
10696         Rename the specification and clarify a few things.
10697
10698 2003-03-26  Anders Carlsson  <andersca@codefactory.se>
10699
10700         * Doxyfile.in:
10701         * dbus/dbus-address.c:
10702         * dbus/dbus-dict.c:
10703         * dbus/dbus-marshal.c:
10704         * dbus/dbus-server-debug-pipe.c:
10705         * dbus/dbus-transport-unix.c:
10706         Fix documentation warnings.
10707
10708 2003-03-26  Havoc Pennington  <hp@pobox.com>
10709
10710         * bus/test-main.c, dbus/dbus-test.c (main): check memleaks
10711         after every test so it's quick and easy to see which leaked, and
10712         so we test multiple dbus_shutdown() calls
10713
10714         * configure.in: change configure.in XML stuff to also support
10715         expat
10716
10717         * config-loader-libxml.c: some hacking
10718
10719         * config-loader-expat.c: some hacking
10720
10721         * config-parser.c: some hacking, plus tests
10722
10723 2003-03-25  Havoc Pennington  <hp@redhat.com>
10724
10725         * throughout - add more _DBUS_ASSERT_ERROR_IS_CLEAR
10726
10727         * configure.in: add --with-xml option to specify XML library,
10728         right now only libxml is supported.
10729
10730         * bus/config-loader-libxml.c, config-parser.c: sync some minor
10731         nonworking code between home and work, still just stubs
10732
10733 2003-03-24  Havoc Pennington  <hp@redhat.com>
10734
10735         * dbus/dbus-sysdeps.c (_dbus_set_fd_nonblocking): move to this
10736         file
10737
10738         * dbus/dbus-errors.c (dbus_set_error, dbus_set_error_const): allow
10739         NULL argument for "message" if the error is a well-known one,
10740         fill in a generic message in this case.
10741
10742         * dbus/dbus-errors.h (DBusResultCode): Kill DBusResultCode in
10743         favor of DBusError
10744
10745         * bus/test.c (bus_test_flush_bus): add
10746
10747         * bus/policy.c (bus_policy_test): test code stub
10748
10749 2003-03-24  Havoc Pennington  <hp@pobox.com>
10750
10751         * bus/connection.c (bus_connections_setup_connection): set up
10752         the "can this user connect" function, but it always returns
10753         TRUE until we have a config file parser so we can have a config
10754         file that allows connections.
10755
10756 2003-03-23  Havoc Pennington  <hp@pobox.com>
10757
10758         * dbus/dbus-threads.c (dbus_mutex_new, dbus_condvar_new): with
10759         DBUS_BUILD_TESTS, actually alloc/free a block of memory for
10760         the mutex, so we can check for proper memory management
10761         and OOM handling.
10762
10763         * dbus/dbus-dataslot.c: remove the mutex from
10764         DBusDataSlotAllocator and lock it manually when using it,
10765         to simplify fitting it into the global slots framework.
10766
10767         * dbus/dbus-threads.c (init_static_locks): rework how we're
10768         handling global locks so they are easily shut down.
10769
10770         * bus/policy.c (bus_policy_append_rule): fix
10771
10772         * bus/test-main.c (main): check for memleaks
10773
10774         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): make
10775         test suite check for memleaks
10776
10777         * dbus/dbus-memory.c: add support in test mode for tracking
10778         number of outstanding blocks
10779
10780 2003-03-23  Havoc Pennington  <hp@pobox.com>
10781
10782         * bus/policy.c, bus/bus.c, bus/connection.c: implement allow/deny
10783         policies code
10784
10785         * dbus/dbus-hash.h: add ULONG hash keys
10786
10787         * dbus/dbus-sysdeps.c (_dbus_get_groups): new
10788         (_dbus_get_group_id): new function
10789
10790 2003-03-20  Havoc Pennington  <hp@redhat.com>
10791
10792         * dbus/dbus-connection.c (dbus_connection_set_unix_user_function):
10793         new function
10794         (dbus_connection_get_unix_user): new function
10795
10796 2003-03-20  Havoc Pennington  <hp@pobox.com>
10797
10798         * bus/connection.c (bus_connection_send_oom_error): assert that
10799         message has a sender
10800         (connection_execute_transaction): ditto
10801         (bus_connection_preallocate_oom_error): fix to set the sender, and
10802         set recipient to the destination service, not the bus driver
10803
10804         * bus/policy.c: hacking
10805
10806         * dbus/dbus-message.c (dbus_message_service_is): new function
10807         (dbus_message_sender_is): new
10808
10809 2003-03-19  Havoc Pennington  <hp@redhat.com>
10810
10811         * bus/policy.c: start sketching code for policy restrictions on
10812         what connections can do.
10813
10814 2003-03-18  Havoc Pennington  <hp@redhat.com>
10815
10816         * doc/TODO: some notes on high-level todo items. Little nitpick
10817         stuff is all in @todo, so no need to add it here.
10818
10819         * doc/config-file.txt: some notes on how config file might look
10820
10821 2003-03-18  Anders Carlsson  <andersca@codefactory.se>
10822
10823         * configure.in: 0.6
10824
10825         * NEWS: Update.
10826
10827 2003-03-17  Havoc Pennington  <hp@redhat.com>
10828
10829         * dbus/dbus-internals.h: add gcc attributes so that
10830         our printf-style functions warn on bad arguments to
10831         format
10832
10833         * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): fix printf
10834         format bug
10835
10836         * dbus/dbus-message.c (_dbus_message_loader_queue_messages): fix
10837         printf format bug
10838
10839 2003-03-17  Havoc Pennington  <hp@redhat.com>
10840
10841         * bus/test-main.c (main): make it print something as it runs
10842         so make check doesn't look stuck
10843
10844         * doc/negotiation.txt, doc/dbus-sasl-profile.txt: remove
10845         from CVS, now obsolete
10846
10847 2003-03-17  Anders Carlsson  <andersca@codefactory.se>
10848
10849         * bus/dispatch.c: (bus_dispatch):
10850         Refetch the service name since it may have been reallocated
10851         when dbus_message_set_sender was called.
10852
10853         * dbus/dbus-sysdeps.c: (_dbus_accept):
10854         Add address and address length variables and use them to stop
10855         valgrind from complaining.
10856
10857 2003-03-17  Havoc Pennington  <hp@pobox.com>
10858
10859         All tests pass, no memleaks, no valgrind complaints.
10860
10861         * bus/test.c: refcount handler_slot
10862
10863         * bus/connection.c (bus_connections_new): refcount
10864         connection_data_slot
10865
10866         * dbus/dbus-auth-script.c (_dbus_auth_script_run): delete unused
10867         bytes so that auth scripts pass.
10868
10869         * bus/dispatch.c: init message_handler_slot so it gets allocated
10870         properly
10871
10872         * bus/dispatch.c (message_handler_slot_ref): fix memleak
10873
10874         * dbus/dbus-server-debug-pipe.c (_dbus_server_debug_pipe_new):
10875         dealloc server_pipe_hash when no longer used for benefit of
10876         leak checking
10877
10878         * dbus/dbus-auth.c (process_command): memleak fix
10879
10880         * bus/dispatch.c (check_hello_message): memleak fix
10881
10882 2003-03-16  Havoc Pennington  <hp@pobox.com>
10883
10884         * dbus/dbus-bus.c (ensure_bus_data): fix double-unref of the data slot
10885
10886 2003-03-17  Anders Carlsson  <andersca@codefactory.se>
10887
10888         * bus/activation.c (bus_activation_activate_service): Append
10889         the pending activation entry to the list of pending activations.
10890
10891 2003-03-16  Havoc Pennington  <hp@pobox.com>
10892
10893         * bus/dispatch.c (bus_dispatch_test): remove double-unrefs of
10894         connections
10895
10896         * dbus/dbus-address.c (create_entry): fix OOM handling when
10897         failing to alloc entry->method
10898
10899 2003-03-16  Havoc Pennington  <hp@pobox.com>
10900
10901         * dbus/dbus-watch.c (_dbus_watch_new): handle failure to malloc
10902         the watch
10903
10904         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
10905         add some missing dbus_set_result
10906
10907         * bus/dispatch.c (bus_dispatch_add_connection): handle failure to
10908         alloc the DBusMessageHandler
10909
10910         * dbus/dbus-transport.c (_dbus_transport_disconnect): don't ref
10911         the transport here, since we call this from the finalizer; it
10912         resulted in a double-finalize.
10913
10914         * dbus/dbus-transport.c (_dbus_transport_disconnect): fix a bug
10915         where we tried to use transport->connection that was NULL,
10916         happened when transport was disconnected early on due to OOM
10917
10918         * bus/*.c: adapt to handle OOM for watches/timeouts
10919
10920         * dbus/dbus-transport-unix.c: port to handle OOM during
10921         watch handling
10922
10923         * dbus/dbus-auth.c (_dbus_auth_get_unused_bytes): return a
10924         reference to unused bytes instead of a copy
10925
10926         * dbus/dbus-server.c (dbus_server_handle_watch): return FALSE for
10927         out of memory
10928
10929         * dbus/dbus-connection.c (dbus_connection_handle_watch): return
10930         FALSE on OOM
10931
10932         * dbus/dbus-timeout.c (dbus_timeout_handle): return FALSE for out
10933         of memory
10934
10935 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
10936
10937         * doc/dbus-specification.sgml:
10938         Document reply message for ActivateService.
10939
10940 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
10941
10942         * bus/activation.c: (bus_pending_activation_entry_free),
10943         (bus_pending_activation_free), (bus_activation_new),
10944         (bus_activation_unref), (bus_activation_service_created),
10945         (bus_activation_activate_service):
10946         * bus/activation.h:
10947         * bus/bus.c: (bus_context_new):
10948         * bus/desktop-file.c: (new_section):
10949         * bus/driver.c: (bus_driver_send_service_deleted),
10950         (bus_driver_handle_activate_service):
10951         * bus/services.c: (bus_registry_new), (bus_registry_ensure):
10952         * bus/services.h:
10953         * dbus/dbus-connection.c:
10954         (dbus_connection_send_with_reply_and_block):
10955         * dbus/dbus-message.c: (dbus_message_append_args_valist):
10956         * dbus/dbus-protocol.h:
10957         Make activation work better. Now pending activations will be queued
10958         and the daemon won't try to activate services that are already registered.
10959
10960 2003-03-16  Havoc Pennington  <hp@pobox.com>
10961
10962         * dbus/dbus-bus.c (ensure_bus_data): handle failure to set
10963         connection data
10964
10965         * dbus/dbus-memory.c (_dbus_initialize_malloc_debug): support
10966         DBUS_MALLOC_BACKTRACES to print trace when failing an alloc
10967
10968 2003-03-16  Havoc Pennington  <hp@pobox.com>
10969
10970         * dbus/dbus-string.c (_dbus_string_validate_utf8): oops, unbreak
10971         this. always run the test suite before commit...
10972
10973         * bus/*: adapt to DBusConnection API changes
10974
10975         * glib/dbus-gmain.c: adapt to DBusConnection API changes,
10976         requires renaming stuff to avoid dbus_connection_dispatch name
10977         conflict.
10978
10979         * dbus/dbus-transport.c (_dbus_transport_queue_messages): new
10980         function
10981
10982         * dbus/dbus-message.c (_dbus_message_loader_queue_messages):
10983         separate from _dbus_message_loader_return_buffer()
10984
10985         * dbus/dbus-connection.c (dbus_connection_get_n_messages): remove
10986         this, because it's now always broken to use; the number of
10987         messages in queue vs. the number still buffered by the message
10988         loader is undefined/meaningless. Should use
10989         dbus_connection_get_dispatch_state().
10990         (dbus_connection_dispatch): rename from
10991         dbus_connection_dispatch_message
10992
10993 2003-03-16  Havoc Pennington  <hp@pobox.com>
10994
10995         * dbus/dbus-string.c (_dbus_string_validate_utf8): copy in a real
10996         implementation
10997
10998 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
10999
11000         * dbus/dbus-connection.c:
11001         (dbus_connection_send_with_reply_and_block):
11002         Decrease connection->n_incoming when removing an entry
11003         from the list.
11004         * dbus/dbus-dict.c: (dbus_dict_entry_free),
11005         (dbus_dict_set_boolean_array), (dbus_dict_set_int32_array),
11006         (dbus_dict_set_uint32_array), (dbus_dict_set_double_array),
11007         (dbus_dict_set_byte_array), (dbus_dict_set_string_array),
11008         (dbus_dict_get_boolean_array), (dbus_dict_get_double_array),
11009         (dbus_dict_get_byte_array):
11010         Handle NULL arrays and strings. Also add support for byte arrays.
11011
11012         * dbus/dbus-marshal.c: (_dbus_marshal_byte_array),
11013         (_dbus_marshal_dict), (_dbus_demarshal_byte_array),
11014         (_dbus_demarshal_int32_array), (_dbus_demarshal_uint32_array),
11015         (_dbus_demarshal_double_array), (_dbus_demarshal_string_array),
11016         (_dbus_demarshal_dict), (demarshal_and_validate_len),
11017         (_dbus_marshal_validate_arg), (_dbus_marshal_test):
11018         * dbus/dbus-marshal.h:
11019         Add support for marshalling and demarshalling empty arrays and strings.
11020
11021         * dbus/dbus-message.c: (dbus_message_append_args_valist),
11022         (dbus_message_append_string_array),
11023         (dbus_message_iter_get_boolean),
11024         (dbus_message_iter_get_boolean_array),
11025         (dbus_message_iter_get_int32_array),
11026         (dbus_message_iter_get_uint32_array),
11027         (dbus_message_iter_get_double_array),
11028         (dbus_message_iter_get_byte_array),
11029         (dbus_message_iter_get_string_array), (dbus_message_iter_get_dict),
11030         (check_message_handling):
11031         Add support for getting empty arrays and dicts.
11032
11033         * dbus/dbus-string.c: (_dbus_string_validate_utf8):
11034         Don't do any validation at all for now, that's better than just checking
11035         for ASCII.
11036
11037         * test/data/valid-messages/emptiness.message:
11038         New test message with lots of empty arrays.
11039
11040 2003-03-16  Havoc Pennington  <hp@pobox.com>
11041
11042         * dbus/dbus-connection.c
11043         (_dbus_connection_queue_received_message_link): new function that
11044         can't fail due to OOM
11045
11046         * dbus/dbus-message.c (_dbus_message_loader_pop_message_link):
11047         new function pops a message together with a list link
11048         containing it.
11049
11050         * dbus/dbus-transport-unix.c (queue_messages): use new link-based
11051         message queuing functions to avoid needing to alloc memory
11052
11053 2003-03-16  Havoc Pennington  <hp@pobox.com>
11054
11055         Oops - test code was only testing failure of around 30 of the
11056         mallocs in the test path, but it turns out there are 500+
11057         mallocs. I believe this was due to misguided linking setup such
11058         that there was one copy of dbus_malloc etc. in the daemon and one
11059         in the shared lib, and only daemon mallocs were tested. In any
11060         case, the test case now tests all 500+ mallocs, and doesn't pass
11061         yet, though there are lots of fixes in this patch.
11062
11063         * dbus/dbus-connection.c (dbus_connection_dispatch_message): fix
11064         this so that it doesn't need to allocate memory, since it
11065         has no way of indicating failure due to OOM (and would be
11066         annoying if it did).
11067
11068         * dbus/dbus-list.c (_dbus_list_pop_first_link): new function
11069
11070         * bus/Makefile.am: rearrange to create two self-contained
11071         libraries, to avoid having libraries with overlapping symbols.
11072         that was resulting in weirdness, e.g. I'm pretty sure there
11073         were two copies of global static variables.
11074
11075         * dbus/dbus-internals.c: move the malloc debug stuff to
11076         dbus-memory.c
11077
11078         * dbus/dbus-list.c (free_link): free list mempool if it becomes
11079         empty.
11080
11081         * dbus/dbus-memory.c (_dbus_disable_mem_pools): new function
11082
11083         * dbus/dbus-address.c (dbus_parse_address): free list nodes
11084         on failure.
11085
11086         * bus/dispatch.c (bus_dispatch_add_connection): free
11087         message_handler_slot when no longer using it, so
11088         memory leak checkers are happy for the test suite.
11089
11090         * dbus/dbus-server-debug-pipe.c (debug_finalize): free server name
11091
11092         * bus/bus.c (new_connection_callback): disconnect in here if
11093         bus_connections_setup_connection fails.
11094
11095         * bus/connection.c (bus_connections_unref): fix to free the
11096         connections
11097         (bus_connections_setup_connection): if this fails, don't
11098         disconnect the connection, just be sure there are no side
11099         effects.
11100
11101         * dbus/dbus-string.c (undo_alignment): unbreak this
11102
11103         * dbus/dbus-auth.c (_dbus_auth_unref): free some stuff we were
11104         leaking
11105         (_dbus_auth_new): fix the order in which we free strings
11106         on OOM failure
11107
11108         * bus/connection.c (bus_connection_disconnected): fix to
11109         not send ServiceDeleted multiple times in case of memory
11110         allocation failure
11111
11112         * dbus/dbus-bus.c (dbus_bus_get_base_service): new function to
11113         get the base service name
11114         (dbus_bus_register_client): don't return base service name,
11115         instead store it on the DBusConnection and have an accessor
11116         function for it.
11117         (dbus_bus_register_client): rename dbus_bus_register()
11118
11119         * bus/dispatch.c (check_hello_message): verify that other
11120         connections on the bus also got the correct results, not
11121         just the one sending hello
11122
11123 2003-03-15  Havoc Pennington  <hp@pobox.com>
11124
11125         Make it pass the Hello handling test including all OOM codepaths.
11126         Now to do other messages...
11127
11128         * bus/services.c (bus_service_remove_owner): fix crash when
11129         removing owner from an empty list of owners
11130         (bus_registry_ensure): don't leave service in the list of
11131         a connection's owned services if we fail to put the service
11132         in the hash table.
11133
11134         * bus/connection.c (bus_connection_preallocate_oom_error): set
11135         error flag on the OOM error.
11136
11137         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
11138         handle _dbus_transport_set_connection failure
11139
11140         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd): modify
11141         to create watches up front and simply enable/disable them as
11142         needed.
11143         (unix_connection_set): this can now fail on OOM
11144
11145         * dbus/dbus-timeout.c, dbus/dbus-watch.c: add concept
11146         of enabling/disabling a watch or timeout.
11147
11148         * bus/loop.c (bus_loop_iterate): don't touch disabled
11149         watches/timeouts
11150
11151         * glib/dbus-gmain.c: adapt to enable/disable watches and timeouts
11152
11153 2003-03-15  Havoc Pennington  <hp@pobox.com>
11154
11155         * bus/dispatch.c (bus_dispatch_test): OK, now finally actually
11156         write useful test code, after all that futzing around ;-)
11157
11158         Test does not yet pass because we can't handle OOM in
11159         _dbus_transport_messages_pending (basically,
11160         dbus_connection_preallocate_send() does not prealloc the write
11161         watch). To fix this, I think we need to add new stuff to
11162         set_watch_functions, namely a SetEnabled function so we can alloc
11163         the watch earlier, then enable it later.
11164
11165         * dbus/Makefile.am (libdbus_convenience_la_SOURCES): move
11166         dbus-memory.c to the convenience lib
11167
11168         * bus/test.c: rename some static functions to keep them clearly
11169         distinct from stuff in connection.c. Handle client disconnection.
11170
11171 2003-03-14  Havoc Pennington  <hp@pobox.com>
11172
11173         * bus/dispatch.c (bus_dispatch_test): do test using debug-pipe
11174         transport, tests more of the real codepath. Set up clients
11175         with bus_setup_debug_client.
11176
11177         * bus/test.c (bus_setup_debug_client): function to set up debug
11178         "clients" on the main loop
11179
11180         * dbus/dbus-transport.c (_dbus_transport_open): add debug-pipe
11181         support
11182
11183         * dbus/dbus-server.c (dbus_server_listen): add debug-pipe
11184         server type
11185
11186         * dbus/dbus-server-debug.c: support a debug server based on pipes
11187
11188         * dbus/dbus-sysdeps.c (_dbus_full_duplex_pipe): new function
11189         (_dbus_close): new function
11190
11191         * configure.in: check for socketpair
11192
11193 2003-03-14  Havoc Pennington  <hp@redhat.com>
11194
11195         * dbus/dbus-memory.c: add a "detect buffer overwrites on free"
11196         cheesy hack
11197
11198         * dbus/dbus-transport-debug.c: rework this a good bit to be
11199         less complicated. hopefully still works.
11200
11201         * dbus/dbus-server-debug.c (handle_new_client): remove timeout
11202         manually
11203
11204         * glib/dbus-gmain.c (timeout_handler): don't remove timeout
11205         after running it
11206
11207         * dbus/dbus-message.c (dbus_message_copy): rename from
11208         dbus_message_new_from_message, fix it up to copy
11209         all the message fields, add test case
11210
11211         * bus/dispatch.c (bus_dispatch_test): add some more test code,
11212         not quite passing yet
11213
11214 2003-03-14  Havoc Pennington  <hp@pobox.com>
11215
11216         * bus/loop.c (bus_loop_iterate): add this so we can "run loop
11217         until no work remains" in test code. (the large diff here
11218         is just code movement, no actual changes)
11219
11220         * dbus/dbus-server-debug.c (DEFAULT_INTERVAL): change interval to
11221         1, no point waiting around for test code.
11222         (_dbus_server_debug_accept_transport): unref the timeout
11223         after adding it (right?)
11224
11225         * dbus/dbus-transport-debug.c (DEFAULT_INTERVAL): ditto
11226
11227 2003-03-13  Havoc Pennington  <hp@redhat.com>
11228
11229         * dbus/dbus-timeout.c (_dbus_timeout_list_set_functions): handle
11230         out of memory
11231
11232         * dbus/dbus-watch.c (_dbus_watch_list_set_functions): handle out
11233         of memory
11234
11235         * dbus/dbus-connection.h: Make AddWatchFunction and
11236         AddTimeoutFunction return a bool so they can fail on out-of-memory
11237
11238         * bus/bus.c (bus_context_new): set up timeout handlers
11239
11240         * bus/connection.c (bus_connections_setup_connection): set up
11241         timeout handlers
11242
11243         * glib/dbus-gmain.c: adapt to the fact that set_functions stuff
11244         can fail
11245
11246         * bus/bus.c (bus_context_new): adapt to changes
11247
11248         * bus/connection.c: adapt to changes
11249
11250         * test/watch.c: adapt to DBusWatch changes
11251
11252         * bus/dispatch.c (bus_dispatch_test): started adding this but
11253         didn't finish
11254
11255 2003-03-14  Anders Carlsson  <andersca@codefactory.se>
11256
11257         * bus/dispatch.c (send_service_nonexistent_error): Fix typo.
11258
11259 2003-03-13  Havoc Pennington  <hp@pobox.com>
11260
11261         * bus/test.c, bus/test.h, bus/Makefile.am, bus/test-main.c:
11262         set up a test framework as for the library
11263
11264 2003-03-12  Havoc Pennington  <hp@pobox.com>
11265
11266         Throughout: purge global variables, introduce BusActivation,
11267         BusConnections, BusRegistry, etc. objects instead.
11268
11269         * bus/bus.h, bus/bus.c: introduce BusContext as a global
11270         message bus object
11271
11272         * test/Makefile.am (TEST_BINARIES): disable bus-test for now,
11273         going to redo this a bit differently I think
11274
11275 2003-03-12  Havoc Pennington  <hp@redhat.com>
11276
11277         Mega-patch that gets the message bus daemon initially handling
11278         out-of-memory. Work still needed. Also lots of random
11279         moving stuff to DBusError instead of ResultCode.
11280
11281         * dbus/dbus-list.c (_dbus_list_length_is_one): new function
11282
11283         * dbus/dbus-connection.c
11284         (dbus_connection_send_with_reply_and_block): use DBusError
11285
11286         * dbus/dbus-bus.c: adapt to API changes, make it use DBusError not
11287         DBusResultCode
11288
11289         * dbus/dbus-connection.c (dbus_connection_send): drop the result
11290         code here, as the only failure possible is OOM.
11291
11292         * bus/connection.c (bus_connection_disconnect):
11293         rename bus_connection_disconnected as it's a notification only
11294
11295         * bus/driver.c (bus_driver_handle_acquire_service): don't free
11296         "name" on get_args failure, should be done by get_args;
11297         don't disconnect client for bad args, just return an error.
11298         (bus_driver_handle_service_exists): ditto
11299
11300         * bus/services.c (bus_services_list): NULL-terminate returned array
11301
11302         * bus/driver.c (bus_driver_send_service_lost)
11303         (bus_driver_send_service_acquired): send messages from driver to a
11304         specific client to the client's unique name, not to the broadcast
11305         service.
11306
11307         * dbus/dbus-message.c (decode_header_data): reject messages that
11308         contain no name field
11309         (_dbus_message_get_client_serial): rename to
11310         dbus_message_get_serial and make public
11311         (_dbus_message_set_serial): rename from set_client_serial
11312         (_dbus_message_set_reply_serial): make public
11313         (_dbus_message_get_reply_serial): make public
11314
11315         * bus/connection.c (bus_connection_foreach): allow stopping
11316         iteration by returning FALSE from foreach function.
11317
11318         * dbus/dbus-connection.c (dbus_connection_send_preallocated)
11319         (dbus_connection_free_preallocated_send)
11320         (dbus_connection_preallocate_send): new API for sending a message
11321         without possibility of malloc failure.
11322         (dbus_connection_send_message): rename to just
11323         dbus_connection_send (and same for whole function family)
11324
11325         * dbus/dbus-errors.c (dbus_error_free): make this reinit the error
11326
11327         * dbus/dbus-sysdeps.c (_dbus_exit): new function
11328
11329         * bus/activation.c: handle/return errors
11330
11331         * dbus/dbus-errors.h: add more DBUS_ERROR #define
11332
11333         * dbus/dbus-sysdeps.c (_dbus_directory_open) (_dbus_file_get_contents)
11334         (_dbus_directory_get_next_file): use DBusError instead of DBusResultCode
11335         (_dbus_result_from_errno): move to this file
11336
11337 2003-03-10  Anders Carlsson  <andersca@codefactory.se>
11338
11339         * dbus/dbus-marshal.c:
11340         (_dbus_marshal_set_string):
11341         Take a length argument so we can marshal the correct string
11342         length.
11343
11344         (_dbus_marshal_dict), (_dbus_demarshal_dict),
11345         (_dbus_marshal_get_arg_end_pos), (_dbus_marshal_validate_arg),
11346         (_dbus_marshal_test):
11347         * dbus/dbus-marshal.h:
11348         Add support for marshalling and demarshalling dicts.
11349
11350         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
11351         Add support for TYPE DICT.
11352
11353         * dbus/dbus-message.c: (set_string_field):
11354         Adjust header padding.
11355
11356         (dbus_message_append_args_valist), (dbus_message_append_dict),
11357         (dbus_message_get_args_valist), (dbus_message_iter_get_arg_type),
11358         (dbus_message_iter_get_dict), (_dbus_message_loader_return_buffer),
11359         (check_message_handling), (check_have_valid_message):
11360         * dbus/dbus-message.h:
11361         Add functions for setting and getting dicts.
11362
11363         * dbus/dbus-protocol.h:
11364         Add DBUS_TYPE_DICT.
11365
11366         * dbus/dbus.h:
11367         Add dbus-dict.h
11368
11369         * doc/dbus-specification.sgml:
11370         Add information about how dicts are marshalled.
11371
11372         * test/data/invalid-messages/dict-with-nil-value.message:
11373         * test/data/invalid-messages/too-short-dict.message:
11374         * test/data/valid-messages/dict-simple.message:
11375         * test/data/valid-messages/dict.message:
11376         Add sample messages containing dicts.
11377
11378 2003-03-08  Anders Carlsson  <andersca@codefactory.se>
11379
11380         * dbus/dbus-dict.h: Add DBUS_END_DECLS.
11381
11382 2003-03-07  Anders Carlsson  <andersca@codefactory.se>
11383
11384         * dbus/Makefile.am:
11385         * dbus/dbus-dict.c: (dbus_dict_entry_free), (dbus_dict_new),
11386         (dbus_dict_get_keys), (insert_entry), (dbus_dict_set_boolean),
11387         (dbus_dict_set_int32), (dbus_dict_set_uint32),
11388         (dbus_dict_set_double), (dbus_dict_set_string),
11389         (dbus_dict_set_boolean_array), (dbus_dict_set_int32_array),
11390         (dbus_dict_set_uint32_array), (dbus_dict_set_double_array),
11391         (dbus_dict_set_string_array), (_dbus_dict_test):
11392         * dbus/dbus-dict.h:
11393         Fix according to comments from Havoc.
11394
11395 2003-03-06  Michael Meeks  <michael@server.home>
11396
11397         * configure.in: if we don't have kde-config, disable have_qt.
11398
11399 2003-03-07  Anders Carlsson  <andersca@codefactory.se>
11400
11401         * dbus/Makefile.am:
11402         Add dbus-dict.[ch]
11403
11404         * dbus/dbus-dict.c: (dbus_dict_entry_free), (dbus_dict_new),
11405         (dbus_dict_ref), (dbus_dict_unref), (dbus_dict_contains),
11406         (dbus_dict_remove), (dbus_dict_get_value_type),
11407         (dbus_dict_get_keys), (dbus_dict_put_boolean),
11408         (dbus_dict_put_int32), (dbus_dict_put_uint32),
11409         (dbus_dict_put_double), (dbus_dict_put_string),
11410         (dbus_dict_put_boolean_array), (dbus_dict_put_int32_array),
11411         (dbus_dict_put_uint32_array), (dbus_dict_put_double_array),
11412         (dbus_dict_put_string_array), (dbus_dict_get_boolean),
11413         (dbus_dict_get_int32), (dbus_dict_get_uint32),
11414         (dbus_dict_get_double), (dbus_dict_get_string),
11415         (dbus_dict_get_boolean_array), (dbus_dict_get_int32_array),
11416         (dbus_dict_get_uint32_array), (dbus_dict_get_double_array),
11417         (dbus_dict_get_string_array), (_dbus_dict_test):
11418         * dbus/dbus-dict.h:
11419         Add DBusDict implementation
11420
11421         * dbus/dbus-test.c: (dbus_internal_do_not_use_run_tests):
11422         * dbus/dbus-test.h:
11423         Add _dbus_dict_test
11424
11425 2003-03-04  Havoc Pennington  <hp@pobox.com>
11426
11427         * test/data/auth/*: adapt to changes
11428
11429         * dbus/dbus-auth-script.c (_dbus_auth_script_run): add
11430         USERID_BASE64 and change USERNAME_BASE64 to put in username not
11431         userid
11432
11433         * dbus/dbus-keyring.c (_dbus_keyring_validate_context): prevent
11434         more stuff from being in a context name, to make the protocol
11435         simpler to deal with
11436
11437         * dbus/dbus-errors.c (dbus_error_has_name): new function
11438         (dbus_error_is_set): new function
11439
11440         * dbus/dbus-auth.c: replace DBUS_STUPID_TEST_MECH auth
11441         with DBUS_COOKIE_SHA1, implement DBUS_COOKIE_SHA1
11442
11443         * dbus/dbus-connection.c (dbus_connection_flush): also read
11444         messages during a flush operation
11445
11446         * dbus/Makefile.am: remove dbus-md5 since it isn't currently used.
11447
11448 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
11449
11450         * configure.in: Check for gethostbyname on Solaris.
11451
11452         * dbus/dbus-transport.c: (_dbus_transport_open):
11453         Remove duplicate "tcp" entry.
11454
11455         * doc/dbus-specification.sgml:
11456         Clarify some things.
11457
11458 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
11459
11460         * dbus/dbus-auth.c: (send_rejected), (process_test_subdir):
11461         * dbus/dbus-keyring.c: (_dbus_keyring_new_homedir),
11462         (_dbus_keyring_test):
11463         * dbus/dbus-md5.c: (_dbus_md5_compute):
11464         * dbus/dbus-sha.c: (_dbus_sha_compute):
11465         Plug memory leaks.
11466
11467 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
11468
11469         * README: Add some things.
11470
11471 2003-03-04  Anders Carlsson  <andersca@codefactory.se>
11472
11473         * dbus/dbus-message.c (dbus_message_append_args_valist): Add a break;
11474         after case DBUS_TYPE_BOOELAN.
11475
11476 2003-03-02  Havoc Pennington  <hp@pobox.com>
11477
11478         * test/break-loader.c (randomly_set_extreme_ints): add test that
11479         sets really huge and small integers
11480
11481         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): add check
11482         that length of boolean array fits in the string, and that
11483         string has room for boolean value in single-bool case.
11484
11485         * dbus/dbus-message-builder.c (_dbus_message_data_load): add
11486         optional value to "ALIGN" command which is what to fill the
11487         alignment with.
11488
11489         * test/data/valid-messages/no-padding.message: add regression
11490         test for the message padding problem
11491
11492 2003-03-02  Havoc Pennington  <hp@pobox.com>
11493
11494         * dbus/dbus-message.c (decode_header_data): fix to always init
11495         message_padding, from Benjamin Dauvergne
11496
11497 2003-03-02  Havoc Pennington  <hp@pobox.com>
11498
11499         * configure.in: 0.5
11500
11501         * NEWS: Update.
11502
11503 2003-03-01  Joe Shaw  <joe@assbarn.com>
11504
11505         * configure.in: Check for "struct cmsgcred" and try to access its
11506         members for BSD-like unices.
11507
11508         * dbus/dbus-sysdeps.c (read_credentials_byte): Fold this back into
11509         _dbus_read_credentials_unix_socket().
11510         (_dbus_read_credentials_unix_socket): Use recvmsg() instead of
11511         read() for reading the credential byte off the unix socket.  Use
11512         struct cmsgcred on systems that support it.
11513
11514 2003-02-27  Alexander Larsson  <alexl@redhat.com>
11515
11516         * glib/Makefile.am:
11517         * configure.in:
11518         Make gthreads-2.0 dependency optional. Don't build thread test if
11519         its not found.
11520
11521 2003-02-27  Havoc Pennington  <hp@pobox.com>
11522
11523         * dbus/dbus-connection.c
11524         (dbus_connection_send_message_with_reply_and_block): fix doh!
11525         doh! doh! bug that resulted in never removing a reply from the
11526         queue, no wonder we called get_reply_serial so much ;-)
11527
11528         * dbus/dbus-message.c (struct DBusMessage): cache reply serial
11529         and client serial instead of demarshaling them every time
11530
11531 2003-02-27  Havoc Pennington  <hp@pobox.com>
11532
11533         * dbus/dbus-marshal.c (_dbus_demarshal_int32): rewrite to be much
11534         more inlined, using dbus-string-private.h, speeds things up
11535         substantially
11536
11537         * dbus/dbus-string.c (_dbus_string_free): apply align offset
11538         when freeing the string
11539         (_dbus_string_steal_data): fix for align offset
11540         (undo_alignment): new function
11541
11542 2003-02-26  Havoc Pennington  <hp@redhat.com>
11543
11544         All kinds of audit fixes from Owen, plus initial attempt to
11545         handle unaligned memory returned from malloc.
11546
11547         * dbus/dbus-string.c (_dbus_string_init): clamp max length to
11548         leave room for align_offset and nul byte
11549         (fixup_alignment): function to track an align_offset and
11550         ensure real->str is aligned
11551         (DBUS_GENERIC_STRING_PREAMBLE): len must be less than allocated,
11552         to allow a nul byte plus align offset
11553         (_dbus_string_lock): fix overflow issue
11554         (_dbus_string_init_const_len): add assertions on sanity of len,
11555         assign allocated to be ALLOCATION_PADDING larger than len
11556         (set_length): fixup the overflow handling
11557         (_dbus_string_get_data_len): fix overflow in assertion
11558         (open_gap): detect overflow in size of gap to be opened
11559         (_dbus_string_lengthen): add overflow check
11560         (_dbus_string_align_length): fix overflow with _DBUS_ALIGN_VALUE
11561         (_dbus_string_append): add overflow check
11562         (_dbus_string_append_unichar): overflow
11563         (_dbus_string_delete): fix overflow in assertion
11564         (_dbus_string_copy_len): overflow in assertion
11565         (_dbus_string_replace_len): overflows in assertions
11566         (_dbus_string_find): change to implement in terms of
11567         _dbus_string_find_to
11568         (_dbus_string_find_to): assorted fixage
11569         (_dbus_string_equal_c_str): assert c_str != NULL,
11570         fix logic so the function works
11571         (_dbus_string_ends_with_c_str): fix overflow thingy
11572         (_dbus_string_base64_encode): overflow fix
11573         (_dbus_string_validate_ascii): overflow
11574         (_dbus_string_validate_nul): overflow
11575
11576 2003-02-26  Havoc Pennington  <hp@redhat.com>
11577
11578         * dbus/dbus-marshal.c (_dbus_marshal_test): fix to work with DISABLE_ASSERTS
11579
11580 2003-02-26  Alexander Larsson  <alexl@redhat.com>
11581
11582         * configure.in:
11583         Set DBUS_GLIB_THREADS_LIBS for apps using gthread-2.0
11584
11585         * dbus/dbus-connection.c:
11586         * dbus/dbus-connection.h:
11587         Fix _dbus_connection_acquire_io_path and _dbus_connection_acquire_dispatch.
11588         Add dbus_connection_set_wakeup_main_function and use it when queueing
11589         incoming and outgoing messages.
11590
11591
11592         * dbus/dbus-dataslot.c:
11593         Threadsafe usage of DBusDataSlotAllocator
11594
11595         * dbus/dbus-message.c: (dbus_message_get_args_iter):
11596         dbus_new can fail.
11597
11598         * dbus/dbus-server-unix.c:
11599         Add todo comment
11600
11601         * glib/dbus-gmain.c:
11602         Implement the new wakeup functions for glib.
11603
11604         * glib/Makefile.am:
11605         * glib/test-thread-client.c:
11606         * glib/test-thread-server.c:
11607         * glib/test-thread.h:
11608         Initial cut at some thread test code. Not really done yet.
11609
11610 2003-02-26  Havoc Pennington  <hp@pobox.com>
11611
11612         * dbus/dbus-connection.c
11613         (dbus_connection_send_message_with_reply_and_block): fix crash
11614         where we ref'd the outgoing message instead of the returned reply
11615
11616         * dbus/dbus-transport-unix.c (do_authentication): check read watch
11617         at the end of this function, so if we didn't need to read for
11618         authentication, we reinstall it for receiving messages
11619
11620         * dbus/dbus-message.c (dbus_message_new_reply): allow replies to
11621         a NULL sender for peer-to-peer case
11622
11623         * dbus/dbus-transport-unix.c (check_read_watch): handle
11624         !authenticated case correctly
11625
11626         * glib/dbus-gmain.c: add support for DBusServer
11627
11628         * dbus/dbus-server.c: add data slot support
11629
11630         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): check
11631         return values and handle errors
11632
11633         * dbus/dbus-dataslot.c: factor out the data slot stuff from
11634         DBusConnection
11635
11636         * Doxyfile.in (INPUT): add glib subdir
11637
11638         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): rename
11639         setup_with_g_main instead of hookup_with_g_main; write docs
11640
11641 2003-02-24  Anders Carlsson  <andersca@codefactory.se>
11642
11643         * dbus/dbus-marshal.c: (_dbus_marshal_validate_arg):
11644         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
11645         * dbus/dbus-message.c: (dbus_message_append_boolean),
11646         (dbus_message_append_boolean_array),
11647         (dbus_message_get_args_valist), (_dbus_message_test):
11648         * dbus/dbus-message.h:
11649         * doc/dbus-specification.sgml:
11650         Various fixes as pointed out by Havoc.
11651
11652         * test/data/invalid-messages/bad-boolean-array.message:
11653         * test/data/invalid-messages/bad-boolean.message:
11654         Add invalid boolean value test cases.
11655
11656 2003-02-24  Anders Carlsson  <andersca@codefactory.se>
11657
11658         * dbus/dbus-internals.c: (_dbus_type_to_string):
11659         * dbus/dbus-marshal.c: (_dbus_marshal_get_arg_end_pos),
11660         (_dbus_marshal_validate_arg):
11661         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
11662         * dbus/dbus-message.c: (dbus_message_append_args_valist),
11663         (dbus_message_append_boolean), (dbus_message_append_boolean_array),
11664         (dbus_message_get_args_valist), (dbus_message_iter_get_boolean),
11665         (dbus_message_iter_get_int32), (dbus_message_iter_get_uint32),
11666         (dbus_message_iter_get_double),
11667         (dbus_message_iter_get_boolean_array), (message_iter_test):
11668         * dbus/dbus-message.h:
11669         * dbus/dbus-protocol.h:
11670         * doc/dbus-specification.sgml:
11671         * test/data/valid-messages/lots-of-arguments.message:
11672         Add support for boolean and boolean array types.
11673
11674 2003-02-23  Havoc Pennington  <hp@pobox.com>
11675
11676         * dbus/dbus-keyring.c: finish most of this implementation and
11677         simple unit test
11678
11679         * dbus/dbus-errors.c (dbus_set_error_const, dbus_set_error): make
11680         these barf if the error isn't cleared to NULL
11681
11682         * dbus/dbus-sysdeps.c (_dbus_delete_file): set error on failure
11683         (_dbus_create_directory): new function
11684
11685         * dbus/dbus-errors.c (dbus_set_error): fix warning
11686
11687         * dbus/dbus-string.c (_dbus_string_hex_encode): new function
11688         (_dbus_string_hex_decode): new function
11689         (test_hex_roundtrip): test code
11690
11691         * dbus/dbus-sha.c (_dbus_sha_compute): use dbus_string_hex_encode
11692
11693         * dbus/dbus-md5.c (_dbus_md5_compute): use dbus_string_hex_encode
11694
11695         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): make this use
11696         the save-to-temp/rename trick to atomically write the new file
11697         (_dbus_string_parse_uint): new function
11698
11699 2003-02-22  Havoc Pennington  <hp@pobox.com>
11700
11701         * test/Makefile.am (dist-hook): fix dist for test/data/sha-1
11702
11703 2003-02-22  Havoc Pennington  <hp@pobox.com>
11704
11705         * dbus/dbus-message.c (dbus_message_iter_get_string_array):
11706         (dbus_message_iter_get_byte_array): Fix up doxygen warnings
11707
11708         * dbus/dbus-sha.c: add implementation of SHA-1 algorithm
11709
11710         * dbus/test/data/sha-1: add US government test suite for SHA-1
11711
11712 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
11713
11714         * dbus/dbus-marshal.c: (_dbus_demarshal_string_array):
11715         Make string arrays NULL-terminated.
11716
11717         * dbus/dbus-memory.c: (dbus_free_string_array):
11718         * dbus/dbus-memory.h:
11719         New function for freeing NULL-terminated string arrays.
11720
11721         * dbus/dbus-message-builder.c: (append_quoted_string),
11722         (_dbus_message_data_load):
11723         Add support for array types.
11724
11725         * dbus/dbus-message.c: (check_message_handling):
11726         Add more types as test cases.
11727
11728         * dbus/dbus-sysdeps.c: (_dbus_string_parse_int),
11729         (_dbus_string_parse_double):
11730         Add the start offset to the end offset.
11731
11732         * test/data/valid-messages/lots-of-arguments.message:
11733         New test message with lots of arguments.
11734
11735 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
11736
11737         * dbus/dbus-message.c: (dbus_message_append_nil),
11738         (dbus_message_append_int32), (dbus_message_append_uint32),
11739         (dbus_message_append_double), (dbus_message_append_string),
11740         (dbus_message_append_int32_array),
11741         (dbus_message_append_uint32_array),
11742         (dbus_message_append_double_array),
11743         (dbus_message_append_byte_array),
11744         (dbus_message_append_string_array):
11745         Fix all out-of-memory handling in these functions.
11746
11747 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
11748
11749         * dbus/dbus-message.c: (dbus_message_append_nil):
11750         Fix a silly.
11751
11752 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
11753
11754         * dbus/dbus-message.c: (dbus_message_append_args_valist),
11755         (dbus_message_append_nil), (dbus_message_append_int32_array),
11756         (dbus_message_append_uint32_array),
11757         (dbus_message_append_double_array),
11758         (dbus_message_append_byte_array),
11759         (dbus_message_append_string_array), (dbus_message_get_args_valist),
11760         (dbus_message_iter_get_int32_array),
11761         (dbus_message_iter_get_uint32_array),
11762         (dbus_message_iter_get_double_array),
11763         (dbus_message_iter_get_byte_array),
11764         (dbus_message_iter_get_string_array):
11765
11766         * dbus/dbus-message.h:
11767         Add functions for appending and getting arrays.
11768
11769 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
11770
11771         * dbus/dbus-mempool.c (_dbus_mem_pool_new): Make the
11772         element size at least 8 bytes, fixes mempool tests on
11773         64-bit machines.
11774
11775 2003-02-20  Alexander Larsson  <alexl@redhat.com>
11776
11777         * dbus/dbus-transport-unix.c (unix_do_iteration):
11778         Unlock the connection mutex during a blocking select call.
11779         Add todo about how we need a way to wake up the select.
11780
11781         * dbus/dbus-connection-internal.h:
11782         * dbus/dbus-connection.c:
11783         Add _dbus_connection_lock and _dbus_connection_unlock.
11784
11785 2003-02-19  Havoc Pennington  <hp@pobox.com>
11786
11787         * Doxyfile.in (PREDEFINED): put DOXYGEN_SHOULD_SKIP_THIS in
11788         Doxyfile.in, not Doxyfile
11789
11790         * dbus/dbus-keyring.c: do some hacking on this
11791
11792         * dbus/dbus-sysdeps.c (_dbus_delete_file): new
11793
11794         * dbus/dbus-errors.c (dbus_set_error_const): do not call
11795         dbus_error_init
11796         (dbus_set_error): remove dbus_error_init, check for message ==
11797         NULL *before* we sprintf into it, and add @todo about including
11798         system headers in this file
11799
11800         * dbus/dbus-sysdeps.c (_dbus_create_file_exclusively): new
11801
11802         * dbus/dbus-errors.h (DBUS_ERROR_FAILED): add
11803
11804         * dbus/dbus-sysdeps.c (get_user_info): break this function out to
11805         get various bits of user information based on either username
11806         or user ID
11807         (_dbus_homedir_from_username): new function
11808
11809 2003-02-19  Anders Carlsson  <andersca@codefactory.se>
11810
11811         * configure.in:
11812         Add check for nonposix getpwnam_r
11813
11814         * dbus/dbus-mempool.c: (_dbus_mem_pool_new):
11815         Align the pool element size to a sizeof (void *) boundary.
11816
11817         * dbus/dbus-sysdeps.c: (_dbus_setenv), (_dbus_connect_unix_socket),
11818         (_dbus_listen_unix_socket), (_dbus_credentials_from_username):
11819         General Solaris fixes.
11820
11821         * test/data/valid-messages/simplest-manual.message:
11822         Explicitly state that we want little-endian packing.
11823
11824 2003-02-19  Mikael Hallendal  <micke@codefactory.se>
11825
11826         * dbus/dbus-server.c (dbus_server_listen): Support tcp: addresses.
11827
11828         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_tcp_socket):
11829         Added to create a transport connecting using a tcp/ip socket.
11830
11831         * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): Added to connect
11832         to a tcp socket at given host and port.
11833         (_dbus_listen_tcp_socket): added to listen on tcp socket for given
11834         hostname and port.
11835
11836         * dbus/dbus-server.c (dbus_server_listen): Support tcp: addresses.
11837
11838         * dbus/dbus-server-unix.c (_dbus_server_new_for_tcp_socket):
11839         Added to create a server listening on a TCP/IP socket.
11840
11841 2003-02-19  Havoc Pennington  <hp@pobox.com>
11842
11843         Throughout: mop up all the Doxygen warnings and undocumented
11844         stuff.
11845
11846         * dbus/dbus-sysdeps.c (do_exec): do not use execvp, we don't want
11847         to search any paths.
11848
11849         * dbus/dbus-threads.c: move global mutex initializers to
11850         dbus-internals.h, multiple prototypes was confusing doxygen
11851         besides being kind of ugly
11852
11853         * Doxyfile (PREDEFINED): have Doxygen define
11854         DOXYGEN_SHOULD_SKIP_THIS so we can exclude things from
11855         docs with #ifndef DOXYGEN_SHOULD_SKIP_THIS
11856         (do not abuse the feature! it's for stuff like the autogenerated
11857         macros in dbus-md5.c, not just for things you don't feel like
11858         documenting...)
11859
11860 2003-02-18  Havoc Pennington  <hp@pobox.com>
11861
11862         * dbus/dbus-string.c (_dbus_string_zero): new function
11863
11864         * dbus/dbus-md5.c: include MD5 implementation by L. Peter Deutsch,
11865         wrap it in some dbus-friendly API
11866
11867         * dbus/dbus-types.h: add 16-bit types
11868
11869 2003-02-18  Joe Shaw  <joe@assbarn.com>
11870
11871         * dbus/dbus-auth.c (handle_server_data_stupid_test_mech): Just get
11872         credentials from our currently running process.
11873         (get_word): Fix a buglet where we were copying the entire length
11874         instead of relative to our position.
11875
11876         * dbus/dbus-hash.c (_dbus_hash_test): Don't try to allocate the
11877         keys on the stack... it's 640k of data.
11878
11879         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): Always
11880         read the credentials byte off the socket, even if we don't have
11881         SO_PEERCRED.
11882         (_dbus_poll): Implement poll() using select() for systems which
11883         don't have it.
11884
11885         * glib/test-dbus-glib.c (main): Print out an error if no
11886         parameters are given.
11887
11888         * test/data/auth/fallback.auth-script: Added.  Tests that a client
11889         can fallback to a secondary auth mechanism if the first fails.
11890
11891 2003-02-18  Havoc Pennington  <hp@pobox.com>
11892
11893         * AUTHORS: add Alex
11894
11895 2003-02-17  Havoc Pennington  <hp@pobox.com>
11896
11897         * doc/dbus-specification.sgml: lots of cosmetic
11898         cleanups/rearrangement, add assorted FIXME, change DBUS_ADDRESS
11899         env variable to DBUS_BUS_ADDRESS, s/client/application/,
11900         s/server/bus/ (except in authentication section). Add a section
11901         "Message Bus Message Routing"
11902
11903 2003-02-17  Anders Carlsson  <andersca@codefactory.se.>
11904
11905         Release 0.4
11906
11907         * NEWS: Update
11908
11909 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
11910
11911         * doc/dbus-specification.sgml:
11912         Specification updates.
11913
11914 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
11915
11916         * bus/activation.c: (bus_activation_init), (child_setup),
11917         (bus_activation_activate_service):
11918         * bus/activation.h:
11919         * bus/main.c: (main):
11920         Set DBUS_ADDRESS environment variable.
11921
11922         * dbus/dbus-errors.c: (dbus_set_error):
11923         Don't use va_copy since that's a C99 feature.
11924
11925         * dbus/dbus-sysdeps.c: (_dbus_setenv), (do_exec),
11926         (_dbus_spawn_async):
11927         * dbus/dbus-sysdeps.h:
11928         Add child_setup_func to _dbus_spawn_async.
11929
11930         * doc/dbus-specification.sgml:
11931         Update specification.
11932
11933         * test/spawn-test.c: (setup_func), (main):
11934         Fix test.
11935
11936 2003-02-17  Alexander Larsson  <alexl@redhat.com>
11937
11938         * dbus/dbus-connection.c (_dbus_connection_handler_destroyed_locked):
11939         Added todo.
11940
11941 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
11942
11943         * doc/.cvsignore:
11944         * doc/Makefile.am:
11945         * doc/dbus-test-plan.sgml:
11946         Add test plan document.
11947
11948         * test/Makefile.am:
11949         Fix distcheck.
11950
11951 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
11952
11953         * dbus/dbus-message.c: (decode_header_data),
11954         (_dbus_message_loader_return_buffer):
11955         Set the header padding amount when loading a message.
11956
11957 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
11958
11959         * bus/dispatch.c: (send_one_message):
11960         Only send broadcast messages to registered connections.
11961
11962         * dbus/dbus-message.c: (dbus_message_name_is):
11963         * dbus/dbus-message.h:
11964         New convenience function.
11965
11966         * dbus/dbus-transport-debug.c: (do_reading):
11967         Only dispatch one message per run.
11968
11969         * test/Makefile.am:
11970         * test/bus-test.c: (new_connection_callback), (die),
11971         (test_hello_client1_handler), (test_hello_client2_handler),
11972         (test_hello_replies), (main):
11973
11974         * test/bus-test-loop.[ch]:
11975         Add these.
11976
11977 2003-02-16  Havoc Pennington  <hp@pobox.com>
11978
11979         * dbus/dbus-connection.c (dbus_connection_dispatch_message): fix
11980         backward conditional
11981
11982 2003-02-16  Alexander Larsson  <alexl@redhat.com>
11983
11984         * dbus/dbus-connection.c:
11985         Implement sent_message_with_reply. (with_reply_and block is still
11986         busted).
11987         Made dispatch_message not lose message if OOM.
11988
11989         * dbus/dbus-errors.h:
11990         Add NoReply error (for reply timeouts).
11991
11992 2003-02-16  Alexander Larsson  <alexl@redhat.com>
11993
11994         * dbus/dbus-hash.c (_dbus_hash_table_unref):
11995         Actually free keys and values when destroying hashtable.
11996
11997 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
11998
11999         * dbus/dbus-auth.c: (client_try_next_mechanism):
12000         Plug a leak.
12001
12002         * dbus/dbus-threads.c: (dbus_condvar_wait_timeout):
12003         Return TRUE if there's no thread implementation around.
12004
12005         * glib/dbus-gmain.c: (free_source),
12006         (dbus_connection_hookup_with_g_main):
12007         Make sure to remove the GSource when the connection is finalized.
12008
12009 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
12010
12011         * bus/dispatch.c: (bus_dispatch_message_handler):
12012         * dbus/dbus-errors.h:
12013         Return an error if someone tries to send a message to a service
12014         that doesn't exist.
12015
12016 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
12017
12018         * bus/activation.c: (load_directory), (bus_activation_init),
12019         (bus_activation_activate_service):
12020         * bus/activation.h:
12021         * bus/driver.c:
12022         (bus_driver_handle_activate_service), (bus_driver_handle_message):
12023         More work on the activation handling.
12024
12025         * dbus/dbus-errors.h:
12026         Add some error messages
12027
12028         * dbus/dbus-message.c: (dbus_message_new_error_reply):
12029         * dbus/dbus-message.h:
12030         New function that creates an error message.
12031
12032         * dbus/dbus-protocol.h:
12033         Add ACTIVATE_SERVER message.
12034
12035         * dbus/dbus-server-unix.c: (unix_handle_watch),
12036         (_dbus_server_new_for_domain_socket):
12037         Call _dbus_fd_set_close_on_exec.
12038
12039         * dbus/dbus-sysdeps.c: (make_pipe), (do_exec),
12040         (_dbus_spawn_async), (_dbus_disable_sigpipe),
12041         (_dbus_fd_set_close_on_exec):
12042         * dbus/dbus-sysdeps.h:
12043         Add _dbus_fd_set_close_on exec function. Also add function that checks
12044         that all open fds are set to close-on-exec and warns otherwise.
12045
12046         * dbus/dbus-transport-unix.c:
12047         (_dbus_transport_new_for_domain_socket):
12048         Call _dbus_fd_set_close_on_exec.
12049
12050 2003-02-16  Havoc Pennington  <hp@pobox.com>
12051
12052         * dbus/dbus-connection.c (dbus_connection_set_change_sigpipe):
12053         allow people to avoid setting SIGPIPE to SIG_IGN
12054         (_dbus_connection_new_for_transport): disable SIGPIPE unless
12055         we've been asked not to
12056
12057 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
12058
12059         * dbus/dbus-list.c: (_dbus_list_append_link),
12060         (_dbus_list_prepend_link):
12061         * dbus/dbus-memory.c: (dbus_malloc), (dbus_malloc0),
12062         (dbus_realloc):
12063         Warning fixes.
12064
12065 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
12066
12067         * bus/Makefile.am:
12068         * bus/activation.c: (bus_activation_entry_free),
12069         (add_desktop_file_entry), (load_directory), (bus_activation_init):
12070         * bus/activation.h:
12071         * bus/main.c: (main):
12072         Add simple activation support, doesn't work yet though.
12073
12074 2003-02-15   Zack Rusin  <zack@kde.org>
12075
12076         * qt/dbus-qthread.cpp:  small casting fix
12077
12078 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
12079
12080         * dbus/dbus-errors.c: (dbus_set_error):
12081         * dbus/dbus-errors.h:
12082         Add a few errors and make dbus_set_error void.
12083
12084         * dbus/dbus-sysdeps.c:
12085         (_dbus_errno_to_string), (close_and_invalidate), (make_pipe),
12086         (write_err_and_exit), (read_ints), (do_exec), (_dbus_spawn_async):
12087         * dbus/dbus-sysdeps.h:
12088         Add _dbus_spawn_async.
12089
12090         * test/spawn-test.c: (main):
12091         Test for _dbus_spawn_async.
12092
12093 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
12094
12095         * dbus/dbus-internals.h:
12096         Fix build without tests.
12097
12098         * dbus/dbus-list.c: (alloc_link):
12099         Fix a segfault when a malloc fails.
12100
12101         * dbus/dbus-memory.c: (initialize_malloc_debug), (dbus_malloc),
12102         (dbus_malloc0), (dbus_realloc):
12103         Add support for malloc debugging.
12104
12105 2003-02-15  Alexander Larsson  <alexl@redhat.com>
12106
12107         * dbus/dbus-threads.c:
12108         * dbus/dbus-threads.h:
12109         Add condvars. Remove static mutext from API.
12110         Implement static mutexes by initializing them from threads_init.
12111
12112         * glib/dbus-gthread.c:
12113         * qt/dbus-qthread.cpp:
12114         Update with the thread api changes.
12115
12116
12117         * dbus/dbus-list.c:
12118         * dbus/dbus-list.h:
12119         Turn StaticMutex into normal mutex + init function.
12120         Export new functions _dbus_list_alloc_link, _dbus_list_free_link,
12121         _dbus_list_append_link, _dbus_list_prepend_link
12122
12123
12124         * dbus/dbus-sysdeps.c:
12125         * dbus/dbus-sysdeps.h:
12126         New type dbus_atomic_t, and new functions _dbus_atomic_inc,
12127         _dbus_atomic_dec. Only slow fallback implementation at the moment.
12128
12129         * dbus/dbus-protocol.h:
12130         Add DBUS_MESSAGE_LOCAL_DISCONNECT define
12131
12132         * dbus/dbus-message.c:
12133         Make ref/unref atomic.
12134         Fix some docs.
12135
12136         * dbus/dbus-connection-internal.h:
12137         * dbus/dbus-connection.c:
12138         * dbus/dbus-connection.h:
12139         Make threadsafe.
12140         Change _peek to _borrow,_return & _steal_borrowed.
12141         Change disconnect callback to event.
12142         Make dbus_connection_dispatch_messages reentrant.
12143
12144         * dbus/dbus-transport.c:
12145         Don't ref the connection on calls to the transport
12146         implementation.
12147
12148         * dbus/dbus-message-handler.c:
12149         Make threadsafe.
12150
12151         * glib/dbus-gmain.c:
12152         Don't use peek_message anymore
12153
12154         * test/Makefile.am:
12155         * test/debug-thread.c:
12156         * test/debug-thread.h:
12157         Simple thread implementation that asserts() on deadlocks in
12158         single-threaded code.
12159
12160         * test/bus-test.c:
12161         (main) Call debug_threads_init.
12162
12163         * test/watch.c:
12164         Use disconnect message instead of disconnect callback.
12165
12166         * bus/connection.c:
12167         * bus/connection.h:
12168         Don't call dbus_connection_set_disconnect_function. Instead export
12169         bus_connection_disconnect.
12170
12171         * bus/dispatch.c:
12172         Call bus_connection_disconnect when we get a disconnected message.
12173
12174 2003-02-15  Havoc Pennington  <hp@pobox.com>
12175
12176         * dbus/dbus-message.c (dbus_message_new): fool around with the
12177         docs
12178
12179 2003-02-14  Havoc Pennington  <hp@pobox.com>
12180
12181         * dbus/dbus-mempool.c: fail if the debug functions so indicate
12182
12183         * dbus/dbus-memory.c: fail if the debug functions indicate we
12184         should
12185
12186         * dbus/dbus-internals.c (_dbus_set_fail_alloc_counter)
12187         (_dbus_decrement_fail_alloc_counter): debug functions to
12188         simulate memory allocation failures
12189
12190 2003-02-14  Havoc Pennington  <hp@pobox.com>
12191
12192         * dbus/dbus-errors.h (struct DBusError): add a word of padding
12193         to DBusError
12194
12195 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12196
12197         * bus/driver.c: (bus_driver_handle_hello):
12198         * bus/driver.h:
12199         * bus/services.c: (bus_service_lookup):
12200         Reorder message sending so we get a more sane order.
12201
12202         * test/bus-test.c: (message_handler):
12203         Fix tyop.
12204
12205 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12206
12207         * bus/driver.c: (bus_driver_send_service_deleted),
12208         (bus_driver_send_service_created), (bus_driver_send_service_lost),
12209         (bus_driver_send_service_acquired), (bus_driver_handle_hello),
12210         (bus_driver_send_welcome_message),
12211         (bus_driver_handle_list_services),
12212         (bus_driver_handle_acquire_service),
12213         (bus_driver_handle_service_exists):
12214         * dbus/dbus-bus.c: (dbus_bus_register_client),
12215         (dbus_bus_acquire_service), (dbus_bus_service_exists):
12216         * dbus/dbus-errors.c: (dbus_result_to_string):
12217         * dbus/dbus-errors.h:
12218         * dbus/dbus-message.c: (dbus_message_append_args),
12219         (dbus_message_append_args_valist), (dbus_message_get_args),
12220         (dbus_message_get_args_valist), (dbus_message_get_args_iter),
12221         (dbus_message_iter_get_arg_type), (dbus_message_iter_get_string),
12222         (dbus_message_iter_get_byte_array),
12223         (dbus_message_iter_get_string_array), (message_iter_test),
12224         (check_message_handling), (_dbus_message_test):
12225         * dbus/dbus-message.h:
12226         * test/bus-test.c: (main):
12227         Change fields to arguments in messages, so that they won't be
12228         confused with header fields.
12229
12230         * glib/test-dbus-glib.c: (main):
12231         Remove append_fields from hello message.
12232
12233 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12234
12235         * dbus/dbus-errors.c:
12236         * dbus/dbus-message.c:
12237         * dbus/dbus-string.c:
12238         Documentation fixes.
12239
12240 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12241
12242         * glib/dbus-gmain.c: (timeout_handler), (add_timeout),
12243         (remove_timeout):
12244         Implement support for timeouts in dbus-glib.
12245
12246 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12247
12248         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
12249         * dbus/dbus-message.c: (process_test_subdir):
12250         * test/break-loader.c: (find_breaks_based_on):
12251         Plug some memory leaks.
12252
12253 2003-02-13  Richard Hult  <rhult@codefactory.se>
12254
12255         * bus/main.c: Fix build.
12256
12257         * dbus/dbus-errors.h:
12258         * dbus/dbus-errors.c: Fix copyright for Anders.
12259
12260 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12261
12262         * bus/Makefile.am:
12263         Add utils.[ch]
12264
12265         * bus/connection.c: (bus_connection_foreach):
12266         Fix a warning.
12267
12268         * bus/desktop-file.c: (grow_lines_in_section), (grow_sections),
12269         (unescape_string), (new_section), (parse_section_start),
12270         (parse_key_value), (report_error), (bus_desktop_file_load),
12271         (bus_desktop_file_get_string):
12272         * bus/desktop-file.h:
12273         Use DBusError for error reporting.
12274
12275         * bus/dispatch.c: (send_one_message),
12276         (bus_dispatch_message_handler):
12277         * bus/driver.c: (bus_driver_send_service_deleted),
12278         (bus_driver_send_service_created), (bus_driver_send_service_lost),
12279         (bus_driver_send_service_acquired), (bus_driver_handle_hello),
12280         (bus_driver_send_welcome_message),
12281         (bus_driver_handle_list_services),
12282         (bus_driver_handle_acquire_service),
12283         (bus_driver_handle_service_exists):
12284         * bus/loop.c: (bus_loop_run):
12285         * bus/main.c:
12286         Use BUS_HANDLE_OOM instead of _DBUS_HANDLE_OOM.
12287
12288         * bus/utils.c: (bus_wait_for_memory):
12289         * bus/utils.h:
12290         New files with general utility functions.
12291
12292         * dbus/dbus-internals.h:
12293         Remove _DBUS_HANDLE_OOM.
12294
12295 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12296
12297         * dbus/dbus-errors.c: (dbus_result_to_string), (dbus_error_init),
12298         (dbus_error_free), (dbus_set_error_const), (dbus_set_error):
12299         * dbus/dbus-errors.h:
12300         Add DBusError structure.
12301
12302 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12303
12304         * test/data/valid-messages/standard-acquire-service.message:
12305         * test/data/valid-messages/standard-hello.message:
12306         * test/data/valid-messages/standard-list-services.message:
12307         * test/data/valid-messages/standard-service-exists.message:
12308         Add some standard messages.
12309
12310 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12311
12312         * bus/driver.c: (bus_driver_send_welcome_message),
12313         (bus_driver_handle_list_services),
12314         (bus_driver_handle_acquire_service),
12315         (bus_driver_handle_service_exists), (bus_driver_handle_message):
12316         Update for API changes in libdbus.
12317
12318         * dbus/dbus-message.c: (dbus_message_new_reply):
12319         * dbus/dbus-message.h:
12320         Remove the name argument. The spec states that replies shouldn't
12321         have a name.
12322
12323 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12324
12325         * bus/desktop-file.c: (parse_section_start), (parse_key_value),
12326         (report_error), (bus_desktop_file_load), (lookup_section),
12327         (lookup_line), (bus_desktop_file_get_raw),
12328         (bus_desktop_file_get_string):
12329         * bus/desktop-file.h:
12330         Some fixes, and new functions for getting a key value from a section.
12331
12332 2003-02-13  Havoc Pennington  <hp@pobox.com>
12333
12334         * test/data/auth/fail-after-n-attempts.auth-script: new test
12335
12336         * dbus/dbus-auth.c (send_rejected): shutdown_mech() when we
12337         reject the client.
12338
12339 2003-02-13  Havoc Pennington  <hp@pobox.com>
12340
12341         * dbus/dbus-auth.c (handle_server_data_external_mech): args to
12342         dbus_credentials_match were backward
12343
12344         * dbus/dbus-auth-script.c (_dbus_auth_script_run): support
12345         NO_CREDENTIALS and ROOT_CREDENTIALS
12346
12347         * dbus/dbus-auth.c (_dbus_auth_do_work): move get_state() routine
12348         into here. Never process more commands after we've reached an
12349         end state; store further data as unused bytes.
12350
12351         * test/data/auth/*: add more auth tests
12352
12353         * dbus/dbus-auth-script.c (_dbus_auth_script_run): support EXPECT
12354         command to match exact string and EXPECT_UNUSED to match unused
12355         bytes
12356
12357         * test/Makefile.am (dist-hook): fix to dist all the test stuff
12358
12359 2003-02-12  Havoc Pennington  <hp@pobox.com>
12360
12361         * dbus/dbus-string.c (_dbus_string_pop_line): fix to also strip
12362         \r off of popped lines
12363
12364         * dbus/dbus-auth.c (_dbus_auth_test): write code to run auth
12365         scripts
12366
12367         * dbus/dbus-auth-script.c (_dbus_auth_script_run): when doing a
12368         SEND, append \r\n
12369
12370 2003-02-12  Havoc Pennington  <hp@pobox.com>
12371
12372         * dbus/Makefile.am: remove break-loader from the build, since it
12373         moved.
12374
12375         * configure.in: add --enable-gcov to turn on coverage profiling
12376         flags and disable optimization
12377
12378 2003-02-10  Havoc Pennington  <hp@pobox.com>
12379
12380         * dbus/dbus-auth-script.c, dbus/dbus-auth-script.h: sync
12381         initial cut at test framework for DBusAuth from laptop.
12382         Doesn't quite work yet but it compiles and I need to get
12383         it off the 266mhz laptop. ;-)
12384
12385         * dbus/dbus-server-debug.c (_dbus_server_debug_accept_transport):
12386         fix a memleak in error case
12387
12388 2003-02-12  Anders Carlsson  <andersca@codefactory.se>
12389
12390         * bus/Makefile.am:
12391         * bus/desktop-file.c:
12392         * bus/desktop-file.h:
12393         Add a desktop file parser.
12394
12395 2003-02-11  Zack Rusin  <zack@kde.org>
12396
12397         * qt/message.[h|cpp]: sample implementation
12398         of the KDE wrapper for DBusMessage
12399
12400 2003-02-09  Zack Rusin  <zack@kde.org>
12401
12402         * test/bus-test.c: make_it_compile
12403         * doc/dbus-specification.sgml: minimal semantic fix
12404
12405 2003-02-06  Anders Carlsson  <andersca@codefactory.se>
12406
12407         Release 0.3
12408
12409         * NEWS: Update
12410
12411 2003-02-06  Anders Carlsson  <andersca@codefactory.se>
12412
12413         * dbus/Makefile.am:
12414         * dbus/dbus-break-loader.c:
12415         * test/Makefile.am:
12416         * test/break-loader.c:
12417         Move dbus-break-loader to test/ and rename it to break-loader.
12418
12419 2003-02-02  Havoc Pennington  <hp@pobox.com>
12420
12421         * dbus/dbus-keyring.c, dbus/dbus-keyring.h: template files
12422         for code to manage cookies in your home directory
12423
12424         * dbus/dbus-sysdeps.c (_dbus_generate_random_bytes): new function
12425
12426         * dbus/dbus-auth.c (get_state): impose a maximum number of tries
12427         to authenticate, then disconnect the client.
12428
12429 2003-02-03  Alexander Larsson  <alexl@redhat.com>
12430
12431         * dbus/dbus-message.c (dbus_message_append_fields):
12432         Correct docs.
12433
12434 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
12435
12436         * doc/dbus-specification.sgml:
12437         Update address format section.
12438
12439 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
12440
12441         * test/Makefile.am:
12442         * test/bus-test.c: (get_time), (add_timeout), (remove_timeout),
12443         (message_handler), (new_connection_callback), (loop_quit),
12444         (loop_run), (main):
12445         Add bus test.
12446
12447 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
12448
12449         * bus/driver.c: (bus_driver_handle_service_exists):
12450         Simplify the code a bit.
12451
12452         * dbus/dbus-bus.c: (dbus_bus_service_exists):
12453         Fix a silly.
12454
12455 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
12456
12457         * bus/Makefile.am:
12458         Add libdbus-daemon.la and link to it.
12459
12460 2003-02-01  James Willcox  <jwillcox@gnome.org>
12461
12462         * bus/driver.c: (bus_driver_handle_own_service):
12463         Actually include the service reply code in the message.
12464
12465 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
12466
12467         * bus/driver.c: (bus_driver_handle_service_exists):
12468         Don't unref the incoming message.
12469
12470 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
12471
12472         * dbus/dbus.h: Add dbus-address.h and dbus-bus.h
12473
12474 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
12475
12476         * dbus/dbus-server.c: (dbus_server_listen):
12477         * dbus/dbus-transport.c: (_dbus_transport_open):
12478         ifdef out the calls to the debug transport and server.
12479
12480 2003-02-02  Alexander Larsson  <alexl@redhat.com>
12481
12482         * dbus/dbus-watch.c (dbus_watch_get_flags):
12483         Add note in the docs that ERROR or HANGUP won't be returned
12484         and are assumed always on.
12485
12486         * glib/dbus-gmain.c (add_watch):
12487         Always add IO_ERR | IO_HUP
12488
12489         * dbus/dbus-message.h:
12490         Add semicolon after dbus_message_iter_get_string_array().
12491         Makes qt code build again
12492
12493 2003-02-01  Anders Carlsson  <andersca@codefactory.se>
12494
12495         * bus/driver.c: (create_unique_client_name),
12496         (bus_driver_handle_hello):
12497         Don't take a name, just use a numeric id to identify
12498         each client.
12499
12500         * dbus/Makefile.am:
12501         * dbus/dbus-bus.c: (dbus_bus_register_client),
12502         (dbus_bus_acquire_service), (dbus_bus_service_exists):
12503         * dbus/dbus-bus.h:
12504         Add new convenience functions for communicating with the bus.
12505
12506         * dbus/dbus-message.h:
12507
12508         * dbus/dbus-protocol.h:
12509         Fix a typo.
12510
12511 2003-02-01  Alexander Larsson  <alexl@redhat.com>
12512
12513         * dbus/dbus-message.c (dbus_message_append_fields):
12514         Add some more doc comments.
12515
12516 2003-02-01  Havoc Pennington  <hp@pobox.com>
12517
12518         * dbus/dbus-break-loader.c (randomly_modify_length): change
12519         a 4-byte value in the message as if it were a length
12520
12521         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): don't set
12522         execute bit on saved files
12523
12524 2003-02-01  Havoc Pennington  <hp@pobox.com>
12525
12526         * dbus/dbus-break-loader.c (main): new program to find messages
12527         that break the loader.
12528
12529         * dbus/dbus-sysdeps.c (_dbus_string_append_uint): new function
12530         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): new function
12531
12532         * dbus/dbus-string.c (_dbus_string_set_byte): new
12533
12534 2003-01-31  Havoc Pennington  <hp@pobox.com>
12535
12536         * dbus/dbus-message.c: refactor the test code to be more general,
12537         in preparation for writing a "randomly permute test cases to
12538         try to break the loader" program.
12539
12540 2003-01-31  Havoc Pennington  <hp@pobox.com>
12541
12542         * doc/dbus-specification.sgml: work on the specification
12543
12544         * dbus/dbus-message.c (_dbus_message_loader_return_buffer): check
12545         the protocol version of the message.
12546
12547         * dbus/dbus-protocol.h: drop special _REPLY names, the spec
12548         no longer specifies that.
12549         (DBUS_SERVICE_REPLY_SERVICE_EXISTS): fix flags (1/2/4/8 not
12550         1/2/3/4)
12551
12552         * dbus/dbus-marshal.c (_dbus_marshal_get_arg_end_pos): add missing
12553         "break" for DBUS_TYPE_NIL, remove @todo
12554
12555 2003-01-31  Havoc Pennington  <hp@pobox.com>
12556
12557         * dbus/dbus-message.c (dbus_message_set_is_error_reply): rename
12558         just set_is_error/get_is_error as this is a commonly-used
12559         function, and write docs.
12560
12561 2003-01-31  Anders Carlsson  <andersca@codefactory.se>
12562
12563         * dbus/dbus-address.c: (dbus_address_entry_free):
12564         Free key and value lists.
12565
12566         * dbus/dbus-internals.c: (_dbus_type_to_string):
12567         Add the types we didn't have.
12568
12569         * dbus/dbus-marshal.c: (_dbus_marshal_get_arg_end_pos),
12570         (_dbus_marshal_validate_arg):
12571         Add NIL types.
12572
12573         * dbus/dbus-message.c: (dbus_message_set_sender):
12574         Remove todo about being able to set sender to NULL.
12575
12576         (dbus_message_set_is_error_reply),
12577         (dbus_message_get_is_error_reply):
12578         * dbus/dbus-message.h:
12579         New functions.
12580
12581         * dbus/dbus-protocol.h:
12582         Add error reply flag.
12583
12584         * test/data/valid-messages/opposite-endian.message:
12585         Add NIL type to test.
12586
12587 2003-01-31  Havoc Pennington  <hp@pobox.com>
12588
12589         * doc/dbus-specification.sgml: fully specify the header.  Add
12590         flags and major protocol version, and change header/body len to
12591         unsigned.
12592
12593         * dbus/dbus-message-builder.c (append_saved_length): append length
12594         as uint32
12595
12596         * dbus/dbus-message.c (dbus_message_create_header): change header
12597         length and body length to unsigned. Add the new fields from the
12598         spec
12599         (_dbus_message_loader_return_buffer): unsigned header/body len
12600
12601 2003-01-30  Havoc Pennington  <hp@pobox.com>
12602
12603         * dbus/dbus-auth.c: rework to use only REJECTED, no
12604         MECHANISMS
12605
12606         * doc/dbus-sasl-profile.txt: drop MECHANISMS and just
12607         use REJECTED, suggested by Mark McLoughlin
12608
12609 2003-01-30  Havoc Pennington  <hp@pobox.com>
12610
12611         * dbus/dbus-server.c (dbus_server_listen): @todo about how we need
12612         a better way to report errors here. e.g.  "unix address lacks
12613         path" or something. also "no such file" when the path doesn't
12614         exist, etc.
12615
12616         * dbus/dbus-address.c (dbus_address_entries_free): add @todo about
12617         leaking list nodes
12618         (dbus_parse_address): add @todo about documenting address format,
12619         and allowing , and ; to be escaped
12620
12621 2003-01-30  Anders Carlsson  <andersca@codefactory.se>
12622
12623         * dbus/Makefile.am:
12624         Add dbus-address.[ch]
12625
12626         * dbus/dbus-address.c: (dbus_address_entry_free),
12627         (dbus_address_entries_free), (create_entry),
12628         (dbus_address_entry_get_method), (dbus_address_entry_get_value),
12629         (dbus_parse_address), (_dbus_address_test):
12630         * dbus/dbus-address.h:
12631         New files for dealing with address parsing.
12632
12633         * dbus/dbus-connection.c:
12634         Document timeout functions.
12635
12636         * dbus/dbus-message.c:
12637         Document dbus_message_new_from_message.
12638
12639         * dbus/dbus-server-debug.c:
12640         Document.
12641
12642         * dbus/dbus-server.c: (dbus_server_listen):
12643         Parse address and use correct server implementation.
12644
12645         * dbus/dbus-string.c: (_dbus_string_find_to), (_dbus_string_test):
12646         * dbus/dbus-string.h:
12647         New function with test.
12648
12649         * dbus/dbus-test.c: (dbus_internal_symbol_do_not_use_run_tests):
12650         * dbus/dbus-test.h:
12651         Add address tests.
12652
12653         * dbus/dbus-transport-debug.c:
12654         Document.
12655
12656         * dbus/dbus-transport.c: (_dbus_transport_open):
12657         Parse address and use correct transport implementation.
12658
12659 2003-01-30  Havoc Pennington  <hp@pobox.com>
12660
12661         * dbus/dbus-message.c: use message->byte_order instead of
12662         DBUS_COMPILER_BYTE_ORDER throughout.
12663         (dbus_message_create_header): pad header to align the
12664         start of the body of the message to 8-byte boundary
12665
12666         * dbus/dbus-marshal.h: make all the demarshalers take const
12667         DBusString arguments.
12668
12669         * dbus/dbus-message.c (_dbus_message_loader_return_buffer):
12670         validate message args here, so we don't have to do slow validation
12671         later, and so we catch bad messages as they are incoming. Also add
12672         better checks on header_len and body_len. Also fill in
12673         message->byte_order
12674
12675         * dbus/dbus-string.c (_dbus_string_validate_utf8): new (not
12676         implemented properly)
12677         (_dbus_string_validate_nul): new function to check all-nul
12678
12679         * dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): rename
12680         get_arg_end_pos and remove all validation
12681         (_dbus_marshal_validate_arg): actually do validation here.
12682
12683 2003-01-29  Havoc Pennington  <hp@pobox.com>
12684
12685         * dbus/dbus-message.c (check_message_handling): fix assertion
12686         failure on set_client_serial
12687
12688 2003-01-28  Havoc Pennington  <hp@pobox.com>
12689
12690         * dbus/dbus-server-debug.c: Add doc section comments
12691
12692         * dbus/dbus-transport-debug.c: add doc section comments
12693
12694 2003-01-28  Havoc Pennington  <hp@redhat.com>
12695
12696         * dbus/dbus-string.c (_dbus_string_base64_decode): append bytes in
12697         the reverse order from how I had it
12698         (_dbus_string_base64_encode): reverse encoding order. I was
12699         basically byteswapping everything during encoding.
12700
12701 2003-01-28  Anders Carlsson  <andersca@codefactory.se>
12702
12703         * dbus/dbus-connection-internal.h:
12704         * dbus/dbus-connection.c: (_dbus_connection_add_timeout),
12705         (_dbus_connection_remove_timeout):
12706         Add functions for adding and removing timeouts.
12707
12708         * dbus/dbus-message.c: (dbus_message_new_from_message):
12709         Add new function that takes a message and creates an exact
12710         copy of it, but with the refcount set to 1.
12711         (check_message_handling):
12712         Fix build error.
12713
12714         * dbus/dbus-server-protected.h:
12715         * dbus/dbus-server.c: (_dbus_server_init_base),
12716         (_dbus_server_finalize_base), (_dbus_server_add_timeout),
12717         (dbus_server_set_timeout_functions):
12718         (_dbus_server_remove_timeout):
12719         New functions so that a server can add and remove timeouts.
12720
12721         (dbus_server_listen):
12722         Add commented out call to dbus_server_debug_new.
12723
12724         * dbus/dbus-timeout.c: (_dbus_timeout_new):
12725         Actually set the handler, doh.
12726
12727         * dbus/dbus-transport.c: (_dbus_transport_open):
12728         Add commented out call to dbus_transport_debug_client_new.
12729
12730         * dbus/Makefile.am:
12731         Add dbus-transport-debug.[ch] and dbus-server-debug.[ch]
12732
12733 2003-01-28  Havoc Pennington  <hp@pobox.com>
12734
12735         * dbus/dbus-message.c (check_message_handling): function to check
12736         on the loaded message, iterates over it etc.
12737
12738 2003-01-28  Havoc Pennington  <hp@pobox.com>
12739
12740         * test/Makefile.am (dist-hook): fix make distdir
12741
12742         * dbus/Makefile.am (TESTS_ENVIRONMENT): fix make check
12743
12744 2003-01-27  Havoc Pennington  <hp@pobox.com>
12745
12746         * dbus/dbus-mempool.c (time_for_size): replace printf with
12747         _dbus_verbose
12748
12749         * dbus/dbus-message-builder.c (_dbus_message_data_load): allow
12750         empty lines; fix the SAVE_LENGTH stuff to be
12751         START_LENGTH/END_LENGTH so it actually works; couple other
12752         bugfixes
12753
12754         * test/Makefile.am (dist-hook): add dist-hook for .message files
12755
12756         * dbus/dbus-string.c (DBUS_STRING_COPY_PREAMBLE): source of a copy
12757         can be constant or locked.
12758         (_dbus_string_free): allow freeing a const string as
12759         documented/intended
12760
12761         * dbus/dbus-sysdeps.c (_dbus_concat_dir_and_file): utility
12762
12763         * dbus/dbus-test-main.c (main): take an argument which is the
12764         directory containing test data
12765
12766         * dbus/dbus-message.c (_dbus_message_test): pass a test_data_dir
12767         argument to this and load all the messages in test/data/
12768         checking that they can be loaded or not loaded as appropriate.
12769
12770 2003-01-27  Anders Carlsson  <andersca@codefactory.se>
12771
12772         * bus/dispatch.c: (bus_dispatch_message_handler):
12773         Dispatch messages sent to services.
12774
12775         * bus/driver.c: (bus_driver_send_service_deleted),
12776         (bus_driver_send_service_created), (bus_driver_send_service_lost),
12777         (bus_driver_send_service_acquired):
12778         Add helper functions for sending service related messages.
12779
12780         (bus_driver_send_welcome_message):
12781         Send HELLO_REPLY instead of WELCOME.
12782
12783         (bus_driver_handle_list_services):
12784         Send LIST_SERVICES_REPLY instead of SERVICES.
12785
12786         (bus_driver_handle_own_service),
12787         (bus_driver_handle_service_exists):
12788         New message handlers.
12789
12790         (bus_driver_handle_message):
12791         Invoke new message handlers.
12792
12793         (bus_driver_remove_connection):
12794         Don't remove any services here since that's done automatically
12795         by bus_service_remove_owner now.
12796
12797         * bus/driver.h:
12798         New function signatures.
12799
12800         * bus/services.c: (bus_service_add_owner):
12801         Send ServiceAcquired message if we're the only primary owner.
12802
12803         (bus_service_remove_owner):
12804         Send ServiceAcquired/ServiceLost messages.
12805
12806         (bus_service_set_prohibit_replacement),
12807         (bus_service_get_prohibit_replacement):
12808         Functions for setting prohibit replacement.
12809
12810         (bus_service_has_owner):
12811         New function that checks if a connection is in the owner queue of
12812         a certain service.
12813
12814         * bus/services.h:
12815         Add new function signatures.
12816
12817         * dbus/dbus-list.c: (_dbus_list_test):
12818         Add tests for _dbus_list_remove_last and traversing the list backwards.
12819
12820         * dbus/dbus-list.h:
12821         Fix a typo in _dbus_list_get_prev_link, if we're at the first element we can't
12822         go any further, so return NULL then.
12823
12824         * dbus/dbus-protocol.h:
12825         Add new messages, service flags and service replies.
12826
12827 2003-01-26  Havoc Pennington  <hp@pobox.com>
12828
12829         * dbus/dbus-message-builder.c: implement, completely untested.
12830
12831         * test/data/*: add data to be used in testing.
12832         ".message" files are our simple loadable text format.
12833         ".message-raw" will be binary dumps of messages.
12834
12835         * dbus/dbus-string.c (_dbus_string_starts_with_c_str): new
12836
12837 2003-01-26  Havoc Pennington  <hp@pobox.com>
12838
12839         * dbus/dbus-sysdeps.c (_dbus_file_get_contents): new function
12840
12841         * dbus/dbus-errors.c (dbus_result_to_string): add
12842         file errors
12843
12844         * dbus/dbus-message-builder.c: new file, will contain code to load
12845         up messages from files. Not implemented yet.
12846
12847 2003-01-26  Havoc Pennington  <hp@pobox.com>
12848
12849         * dbus/dbus-message.c (dbus_message_set_sender): support deleting
12850         the sender by setting to NULL
12851
12852 2003-01-26  Havoc Pennington  <hp@pobox.com>
12853
12854         The unit tests pass, but otherwise untested.  If it breaks, the
12855         tests should have been better. ;-)
12856
12857         * bus/driver.c (bus_driver_handle_hello): return if we disconnect
12858         the connection.
12859
12860         * dbus/dbus-message.c: redo everything so we maintain
12861         message->header as the only copy of the various fields.
12862         This avoids the possibility of out-of-memory in some cases,
12863         for example dbus_message_lock() can't run out of memory anymore,
12864         and avoids extra copying. Figured I may as well go ahead and do
12865         this since it was busted for dbus_message_lock to not return
12866         failure on OOM, and dbus_message_write_header was totally
12867         unchecked for OOM. Also fixed some random other bugs.
12868
12869         * dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): verify
12870         that strings are nul-terminated. Also, end_pos can be equal
12871         to string length just not greater than, I think.
12872         (_dbus_marshal_set_int32): new function
12873         (_dbus_marshal_set_uint32): new function
12874         (_dbus_marshal_set_string): new function
12875
12876         * dbus/dbus-connection.c (_dbus_connection_new_for_transport): fix
12877         a warning, init timeout_list to NULL
12878         (dbus_connection_send_message): don't use uninitialized variable
12879         "serial"
12880
12881         * dbus/dbus-string.c (_dbus_string_replace_len): new function
12882
12883 2003-01-26  Anders Carlsson  <andersca@codefactory.se>
12884
12885         * bus/driver.c: (bus_driver_handle_hello),
12886         (bus_driver_send_welcome_message):
12887         Plug leaks
12888
12889 2003-01-26  Anders Carlsson  <andersca@codefactory.se>
12890
12891         * dbus/dbus-auth.c: (process_auth), (_dbus_auth_unref):
12892         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport),
12893         (dbus_connection_unref):
12894         * dbus/dbus-marshal.c: (_dbus_marshal_test):
12895         * dbus/dbus-message.c: (dbus_message_unref),
12896         Plug memory leaks.
12897
12898         (dbus_message_get_fields):
12899         Remove debugging printout.
12900
12901         (_dbus_message_loader_return_buffer):
12902         Don't store the header string.
12903
12904         (_dbus_message_test):
12905         Plug leaks.
12906
12907 2003-01-26  Richard Hult  <rhult@codefactory.se>
12908
12909         * glib/dbus-gmain.c (dbus_connection_dispatch): Traverse a copy of
12910         the file descriptor list, since it can change under us.
12911
12912 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
12913
12914         * glib/dbus-gmain.c: (dbus_connection_prepare),
12915         (dbus_connection_check), (dbus_connection_dispatch), (add_watch),
12916         (remove_watch), (dbus_connection_hookup_with_g_main):
12917         Rewrite the glib handling to use its own GSource instead of a
12918         GIOChannel so we can catch messages put in the queue while waiting
12919         for a reply.
12920
12921 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
12922
12923         * bus/Makefile.am:
12924         * bus/connection.c: (connection_disconnect_handler),
12925         (connection_watch_callback), (bus_connection_setup):
12926         * bus/dispatch.c: (send_one_message),
12927         (bus_dispatch_broadcast_message), (bus_dispatch_message_handler),
12928         (bus_dispatch_add_connection), (bus_dispatch_remove_connection):
12929         * bus/dispatch.h:
12930         * bus/driver.c: (bus_driver_send_service_deleted),
12931         (bus_driver_send_service_created), (bus_driver_handle_hello),
12932         (bus_driver_send_welcome_message),
12933         (bus_driver_handle_list_services), (bus_driver_remove_connection),
12934         (bus_driver_handle_message):
12935         * bus/driver.h:
12936         Refactor code, put the message dispatching in its own file. Use
12937         _DBUS_HANDLE_OOM. Also send ServiceDeleted messages when a client
12938         is disconnected.
12939
12940 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
12941
12942         * dbus/dbus-internals.h:
12943         Add _DBUS_HANDLE_OOM macro, it doesn't do anything currently.
12944
12945         * dbus/dbus-message.c: (dbus_message_get_sender):
12946         * dbus/dbus-message.h:
12947         Implement dbus_message_get_sender.
12948
12949         * dbus/dbus-protocol.h:
12950         Add message and service defines.
12951
12952 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
12953
12954         * dbus/dbus-connection.c: (dbus_connection_send_message):
12955         * dbus/dbus-message-internal.h:
12956         * dbus/dbus-message.c: (_dbus_message_get_client_serial),
12957         (dbus_message_write_header):
12958         Remove _dbus_messag_unlock and don't set the client serial on a
12959         message if one already exists.
12960
12961 2003-01-24  Havoc Pennington  <hp@pobox.com>
12962
12963         * dbus/dbus-list.c (alloc_link): put a thread lock on the global
12964         list_pool
12965
12966         * bus/driver.c (bus_driver_handle_list_services): fix a leak
12967         on OOM
12968
12969 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
12970
12971         * dbus/dbus-list.c: (alloc_link), (free_link):
12972         Use a memory pool for the links.
12973
12974 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
12975
12976         * bus/connection.c: (bus_connection_foreach):
12977         * bus/connection.h:
12978         Add new bus_connection_foreach function.
12979
12980         * bus/driver.c: (send_one_message), (bus_driver_broadcast_message):
12981         Add function that broadcasts a message to all clients.
12982
12983         (bus_driver_send_service_created), (bus_driver_handle_hello),
12984         (bus_driver_send_welcome_message),
12985         (bus_driver_handle_list_services), (bus_driver_message_handler):
12986         Implement functions that take care of listing services, and notifying
12987         clients when new services are created.
12988
12989         * bus/services.c: (bus_services_list):
12990         * bus/services.h:
12991         Add new function that returns an array of strings with the currently
12992         registered services.
12993
12994         * glib/dbus-glib.h:
12995         * glib/dbus-gmain.c:
12996         Update copyright year.
12997
12998 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
12999
13000         * dbus/dbus-connection.c: (dbus_connection_send_message):
13001         Unlock the message in case it was sent earlier.
13002
13003         (dbus_connection_send_message_with_reply_and_block):
13004         Remove the reply message from the list.
13005
13006         * dbus/dbus-marshal.c: (_dbus_demarshal_string_array):
13007         Set array_len and new_pos correctly.
13008
13009         (_dbus_marshal_test):
13010         Remove debug output.
13011
13012         * dbus/dbus-message-internal.h:
13013         * dbus/dbus-message.c: (_dbus_message_get_reply_serial):
13014         New function that returns the reply serial.
13015
13016         (_dbus_message_unlock):
13017         New function that unlocks a message and resets its header.
13018
13019         (dbus_message_append_string_array),
13020         (dbus_message_get_fields_valist),
13021         (dbus_message_iter_get_field_type),
13022         (dbus_message_iter_get_string_array),
13023         (dbus_message_get_fields),
13024         (dbus_message_append_fields_valist):
13025         Handle string arrays.
13026
13027         (dbus_message_set_sender):
13028         Make this function public since the bus daemon needs it.
13029
13030         (decode_header_data):
13031         Set the reply serial to -1 initially.
13032
13033         * dbus/dbus-message.h:
13034         Add dbus_message_set_sender.
13035
13036 2003-01-24  Havoc Pennington  <hp@pobox.com>
13037
13038         * doc/dbus-specification.sgml: add some stuff
13039
13040 2003-01-22  Havoc Pennington  <hp@pobox.com>
13041
13042         * doc/dbus-specification.sgml: Start to document the protocol.
13043
13044 2003-01-22  Havoc Pennington  <hp@pobox.com>
13045
13046         * dbus/dbus-connection.c
13047         (dbus_connection_send_message_with_reply_and_block): add some @todo
13048
13049         * bus/driver.c (bus_driver_add_connection): add a FIXME about memleak
13050
13051 2003-01-21  Havoc Pennington  <hp@pobox.com>
13052
13053         (patch untested because can't compile)
13054
13055         * bus/driver.c (create_unique_client_name): make this function
13056         never recycle client names. Also, caller should initialize
13057         the DBusString.
13058
13059         * dbus/dbus-sysdeps.c (_dbus_get_current_time): new function
13060
13061 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
13062
13063         * dbus/dbus-marshal.c: (_dbus_marshal_double),
13064         (_dbus_marshal_int32), (_dbus_marshal_uint32),
13065         (_dbus_marshal_int32_array), (_dbus_marshal_uint32_array),
13066         (_dbus_marshal_double_array), (_dbus_marshal_string_array),
13067         (_dbus_demarshal_int32_array), (_dbus_demarshal_uint32_array),
13068         (_dbus_demarshal_double_array), (_dbus_demarshal_string_array),
13069         (_dbus_marshal_get_field_end_pos), (_dbus_marshal_test):
13070         * dbus/dbus-marshal.h:
13071         * dbus/dbus-protocol.h:
13072         Add support for marshalling and demarshalling integer, double
13073         and string arrays.
13074
13075 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
13076
13077         * bus/Makefile.am:
13078         Add driver.[ch]
13079
13080         * bus/connection.c: (connection_disconnect_handler):
13081         Remove the connection from the bus driver's list.
13082
13083         (connection_watch_callback): Dispatch messages.
13084
13085         (free_connection_data): Free connection name.
13086
13087         (bus_connection_setup): Add connection to the bus driver's list.
13088         (bus_connection_remove_owned_service):
13089         (bus_connection_set_name), (bus_connection_get_name):
13090         Add functions for setting and getting the connection's name.
13091
13092         * bus/connection.h:
13093         Add function headers.
13094
13095         * bus/driver.c: (create_unique_client_name),
13096         (bus_driver_handle_hello_message),
13097         (bus_driver_send_welcome_message), (bus_driver_message_handler),
13098         (bus_driver_add_connection), (bus_driver_remove_connection):
13099         * bus/driver.h:
13100         * bus/main.c:
13101         * bus/services.c: (bus_service_free):
13102         * bus/services.h:
13103         New file that handles communication and registreation with the bus
13104         itself.
13105
13106 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
13107
13108         * dbus/dbus-connection.c: (dbus_connection_send_message):
13109         Add a new client_serial parameter.
13110
13111         (dbus_connection_send_message_with_reply):
13112         Remove a @todo since we've implemented the blocking function.
13113
13114         (dbus_connection_send_message_with_reply_and_block):
13115         New function that sends a message and waits for a reply and
13116         then returns the reply.
13117
13118         * dbus/dbus-connection.h:
13119         Add new functions.
13120
13121         * dbus/dbus-errors.c: (dbus_result_to_string):
13122         * dbus/dbus-errors.h:
13123         Add new DBUS_RESULT.
13124
13125         * dbus/dbus-message-internal.h:
13126         * dbus/dbus-message.c: (_dbus_message_get_reply_serial),
13127         (_dbus_message_set_sender), (dbus_message_write_header),
13128         (dbus_message_new_reply), (decode_header_data),
13129         (_dbus_message_loader_return_buffer), (_dbus_message_test):
13130         * dbus/dbus-message.h:
13131         Add new functions that set the reply serial and sender.
13132         Also marshal and demarshal them correctly and add test.
13133
13134         * dbus/dbus-protocol.h:
13135         Add new DBUS_MESSAGE_TYPE_SENDER.
13136
13137         * glib/dbus-glib.h:
13138         * glib/dbus-gmain.c: (watch_callback), (free_callback_data),
13139         (add_watch), (remove_watch), (add_timeout), (remove_timeout),
13140         (dbus_connection_hookup_with_g_main):
13141         * glib/test-dbus-glib.c: (main):
13142         Rewrite to use GIOChannel and remove the GSource crack.
13143
13144         * test/echo-client.c: (main):
13145         * test/watch.c: (check_messages):
13146         Update for changed APIs
13147
13148 2003-01-19  Anders Carlsson  <andersca@codefactory.se>
13149
13150         * dbus/Makefile.am: Add dbus-timeout.[cħ]
13151
13152         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport):
13153         Create a DBusTimeoutList.
13154         (dbus_connection_set_timeout_functions): Add new function to
13155         set timeout callbacks
13156
13157         * dbus/dbus-connection.h: Add public DBusTimeout API.
13158
13159         * dbus/dbus-message.c: (dbus_message_get_service):
13160         * dbus/dbus-message.h:  New function.
13161
13162         * dbus/dbus-server.c: Fix small doc typo.
13163
13164         * dbus/dbus-timeout.[ch]: New files for mainloop timeouts.
13165
13166 2003-01-19  Anders Carlsson  <andersca@codefactory.se>
13167
13168         * dbus/dbus-string.c (_dbus_string_move_len): Don't delete all
13169         of the string, just as long as specified.
13170
13171 2003-01-19  Havoc Pennington  <hp@pobox.com>
13172
13173         * dbus/dbus-connection.c (dbus_connection_get_is_authenticated):
13174         new function
13175
13176         * dbus/dbus-server.c (dbus_server_set_max_connections)
13177         (dbus_server_get_max_connections, dbus_server_get_n_connections):
13178         keep track of current number of connections, and add API for
13179         setting a max (but haven't implemented enforcing the max yet)
13180
13181 2003-01-18  Havoc Pennington  <hp@pobox.com>
13182
13183         * dbus/dbus-transport-unix.c (unix_do_iteration): only do the
13184         reading/writing if read_watch != NULL or write_watch != NULL.
13185
13186         * dbus/dbus-message.c (_dbus_message_loader_return_buffer): fix
13187         the message loader code to actually load message->header and
13188         message->body into the newly-created message.
13189
13190         * dbus/dbus-transport-unix.c (check_write_watch): fix a mem leak
13191         in OOM case
13192
13193         * dbus/dbus-connection.c (dbus_connection_set_max_message_size)
13194         (dbus_connection_get_max_message_size)
13195         (dbus_connection_set_max_live_messages_size)
13196         (dbus_connection_get_max_live_messages_size): implement some
13197         resource limitation functions
13198
13199         * dbus/dbus-resources.c: new file implementing some of the
13200         resource limits stuff
13201
13202         * dbus/dbus-message.c (dbus_message_iter_get_byte_array): add
13203         missing docs, add @todo to handle OOM etc.
13204
13205         * dbus/dbus-marshal.c (_dbus_demarshal_byte_array): add missing
13206         docs
13207
13208 2003-01-18  Havoc Pennington  <hp@pobox.com>
13209
13210         * dbus/dbus-connection.c (dbus_connection_unref): disconnect the
13211         connection if it hasn't been already.
13212
13213         * dbus/dbus-connection.h: kill off the idea of an ErrorFunction,
13214         replace with DisconnectFunction.
13215
13216 2003-01-18  Havoc Pennington  <hp@pobox.com>
13217
13218         Building --disable-verbose-mode --disable-asserts --disable-tests
13219         cuts the library from 112K to 45K or so
13220
13221         * configure.in: check for varargs macro support,
13222         add --enable-verbose-mode, --enable-asserts.
13223
13224         * dbus/dbus-internals.h (_dbus_assert): support
13225         DBUS_DISABLE_ASSERT
13226         (_dbus_verbose): support DBUS_ENABLE_VERBOSE_MODE
13227
13228 2003-01-18  Havoc Pennington  <hp@pobox.com>
13229
13230         * dbus/dbus-test.c: include config.h so that tests actually run
13231
13232         * dbus/dbus-string.c: add assertions that stuff is 8-byte aligned,
13233         so the failure mode when that assumption fails will be plenty
13234         obvious.
13235
13236 2003-01-18  Havoc Pennington  <hp@pobox.com>
13237
13238         * configure.in: default --enable-tests to $USE_MAINTAINER_MODE
13239
13240         * dbus/Makefile.am: fix it up so dubs-test-main.c is included in
13241         the distribution
13242
13243         * test/Makefile.am: don't use special variable "TESTS" for echo-*
13244         since we don't want to use those in make check
13245
13246 2003-01-15  Havoc Pennington  <hp@redhat.com>
13247
13248         Release 0.2
13249
13250         * NEWS: update
13251
13252 2003-01-15  Havoc Pennington  <hp@redhat.com>
13253
13254         * test/Makefile.am: fix so that test source code ends up in the
13255         distribution on make distcheck
13256
13257 2003-01-15  Havoc Pennington  <hp@redhat.com>
13258
13259         Release 0.1.
13260
13261         * NEWS: update
13262
13263 2003-01-15  Havoc Pennington  <hp@redhat.com>
13264
13265         * dbus/dbus-test.c (dbus_internal_symbol_do_not_use_run_tests):
13266         fix build when --disable-tests
13267
13268         * Makefile.am (EXTRA_DIST): put HACKING in here
13269
13270         * HACKING: document procedure for making a tarball release.
13271
13272 2003-01-14  Anders Carlsson  <andersca@codefactory.se>
13273
13274         * bus/connection.c: (connection_error_handler),
13275         (bus_connection_setup):
13276         * bus/main.c: (main):
13277         Make sure that the DBusConnectionData struct is NULLed
13278         out to prevent a segfault.
13279
13280         * dbus/dbus-errors.c: (dbus_result_to_string):
13281         * dbus/dbus-errors.h:
13282         * dbus/dbus-message.c: (dbus_message_get_fields),
13283         (dbus_message_get_fields_valist), (_dbus_message_test):
13284         * dbus/dbus-message.h:
13285         Make dbus_message_get_fields return a result code so we can
13286         track invalid fields as well as oom.
13287
13288 2003-01-11  Havoc Pennington  <hp@pobox.com>
13289
13290         * configure.in: change --enable-test/--enable-ansi action-if-given
13291         to enable_foo=$enableval instead of enable_foo=yes
13292
13293 2003-01-08  Havoc Pennington  <hp@pobox.com>
13294
13295         * dbus/dbus-string.c (_dbus_string_align_length): new function
13296
13297         * dbus/dbus-test-main.c: move main() for test app here
13298         * dbus/dbus-test.c
13299         (dbus_internal_symbol_do_not_use_run_tests): we have to export a
13300         symbol to run tests, because dbus-test isn't in the main
13301         library
13302
13303         Code review nitpicks.
13304
13305         * dbus/dbus-message.c (dbus_message_write_header): add newlines
13306         for people with narrow emacs ;-). Assert client_serial was filled
13307         in. Assert message->name != NULL.
13308         (dbus_message_append_fields): have "first_field_type" arg separate
13309         from va list, needed for C++ binding that also uses varargs IIRC
13310         and helps with type safety
13311         (dbus_message_new): add @todo about using DBusString to store
13312         service/name internally
13313         (dbus_message_new): don't leak ->service and ->name on OOM later
13314         in the function
13315         (dbus_message_unref): free the service name
13316         (dbus_message_get_fields): same change to varargs
13317         i.e. first_field_type
13318         (_dbus_message_loader_return_buffer): assert that the message data
13319         is aligned (if not it's a bug in our code). Put in verbose griping
13320         about why we set corrupted = TRUE.
13321         (decode_header_data): add FIXME that char* is evil.  Was going to
13322         add FIXME about evil locale-specific string.h strncmp, but just
13323         switched to wacky string-as-uint32 optimization. Move check for
13324         "no room for field name" above get_const_data_len() to avoid
13325         assertion failure in get_const_data_len if we have trailing 2
13326         bytes or the like. Check for service and name fields being
13327         provided twice. Don't leak service/name on error. Require field
13328         names to be aligned to 4 bytes.
13329
13330         * dbus/dbus-marshal.c: move byte swap stuff to header
13331         (_dbus_pack_int32): uscore-prefix
13332         (_dbus_unpack_int32): uscore-prefix
13333         (_dbus_unpack_uint32): export
13334         (_dbus_demarshal_string): add @todo complaining about use of
13335         memcpy()
13336         (_dbus_marshal_get_field_end_pos): add @todo about bad error
13337         handling allowing corrupt data to go unchecked
13338
13339 2003-01-08  Havoc Pennington  <hp@redhat.com>
13340
13341         * dbus/dbus-transport-unix.c (unix_do_iteration): add read/write
13342         to the select() as needed for authentication. (should be using
13343         _dbus_poll() not select, but for another day)
13344
13345         * dbus/dbus.h: include dbus/dbus-protocol.h
13346
13347 2003-01-08  Anders Carlsson  <andersca@codefactory.se>
13348
13349         * dbus/Makefile.am (dbusinclude_HEADERS): Install
13350         dbus-connection.h
13351
13352 2003-01-08  Anders Carlsson  <andersca@codefactory.se>
13353
13354         * dbus/dbus-internals.c: (_dbus_type_to_string):
13355         New function that returns a string describing a type.
13356
13357         * dbus/dbus-marshal.c: (_dbus_demarshal_byte_array):
13358         * dbus/dbus-marshal.h:
13359         * dbus/dbus-message.c: (dbus_message_get_fields_valist),
13360         (dbus_message_iter_get_field_type), (dbus_message_iter_get_double),
13361         (dbus_message_iter_get_byte_array):
13362         * dbus/dbus-message.h:
13363         Add new convenience functions for appending and getting message fields.
13364         Also add demarshalling routines for byte arrays.
13365
13366 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
13367
13368         * dbus/dbus-connection-internal.h:
13369         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport),
13370         (_dbus_connection_get_next_client_serial),
13371         (dbus_connection_send_message):
13372         * dbus/dbus-internals.h:
13373         * dbus/dbus-marshal.c: (unpack_uint32), (dbus_unpack_int32),
13374         (dbus_pack_int32), (_dbus_marshal_double), (_dbus_marshal_int32),
13375         (_dbus_marshal_uint32), (_dbus_demarshal_double),
13376         (_dbus_demarshal_int32), (_dbus_demarshal_uint32),
13377         (_dbus_demarshal_string), (_dbus_marshal_get_field_end_pos),
13378         (_dbus_verbose_bytes), (_dbus_marshal_test):
13379         * dbus/dbus-marshal.h:
13380         * dbus/dbus-message-internal.h:
13381         * dbus/dbus-message.c: (_dbus_message_set_client_serial),
13382         (dbus_message_write_header), (_dbus_message_lock),
13383         (dbus_message_new), (dbus_message_ref), (dbus_message_unref),
13384         (dbus_message_get_name), (dbus_message_append_int32),
13385         (dbus_message_append_uint32), (dbus_message_append_double),
13386         (dbus_message_append_string), (dbus_message_append_byte_array),
13387         (dbus_message_get_fields_iter), (dbus_message_iter_ref),
13388         (dbus_message_iter_unref), (dbus_message_iter_has_next),
13389         (dbus_message_iter_next), (dbus_message_iter_get_field_type),
13390         (dbus_message_iter_get_string), (dbus_message_iter_get_int32),
13391         (dbus_message_iter_get_uint32), (dbus_message_iter_get_double),
13392         (decode_header_data), (_dbus_message_loader_return_buffer),
13393         (message_iter_test), (_dbus_message_test):
13394         * dbus/dbus-message.h:
13395         * dbus/dbus-protocol.h:
13396         * dbus/dbus-test.c: (main):
13397         * dbus/dbus-test.h:
13398         * glib/test-dbus-glib.c: (message_handler), (main):
13399         * test/echo-client.c: (main):
13400         * test/watch.c: (check_messages):
13401         Make messages sendable and receivable for real.
13402
13403 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
13404
13405         * dbus/dbus-marshal.c: (_dbus_marshal_double),
13406         (_dbus_marshal_string), (_dbus_marshal_byte_array):
13407         * dbus/dbus-message.c: (dbus_message_append_int32),
13408         (dbus_message_append_uint32), (dbus_message_append_double),
13409         (dbus_message_append_string), (dbus_message_append_byte_array):
13410         Handle OOM restoration.
13411
13412 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
13413
13414         * dbus/dbus-marshal.c: (_dbus_marshal_string),
13415         (_dbus_demarshal_string), (_dbus_marshal_test):
13416         * dbus/dbus-marshal.h:
13417         * dbus/dbus-message.c: (dbus_message_get_name),
13418         Document these functions.
13419
13420         (dbus_message_append_int32), (dbus_message_append_uint32),
13421         (dbus_message_append_double), (dbus_message_append_string),
13422         (dbus_message_append_byte_array):
13423         * dbus/dbus-message.h:
13424         Add functions for adding message fields of different types.
13425
13426         * dbus/dbus-protocol.h:
13427         Add the different types.
13428
13429 2003-01-05  Havoc Pennington  <hp@pobox.com>
13430
13431         * bus/connection.c: implement routines for handling connections,
13432         first thing is keeping a list of owned services on each connection
13433         and setting up watches etc.
13434
13435         * bus/services.c: implement a mapping from service names to lists
13436         of connections
13437
13438         * dbus/dbus-hash.c: add DBUS_HASH_POINTER
13439
13440         * dbus/dbus-threads.c (dbus_static_mutex_lock): add functions
13441         to use static mutexes for global data
13442
13443         * dbus/dbus-connection.c (dbus_connection_set_data): add new
13444         collection of functions to set/get application-specific data
13445         on the DBusConnection.
13446
13447 2003-01-04  Havoc Pennington  <hp@pobox.com>
13448
13449         * dbus/dbus-sysdeps.c (_dbus_sleep_milliseconds): new function
13450         (_dbus_poll): new function
13451
13452         * dbus/dbus-internals.h (_DBUS_STRUCT_OFFSET): new macro
13453         copied from GLib
13454
13455         * bus/loop.c: initial code for the daemon main loop
13456
13457 2003-01-04  Havoc Pennington  <hp@pobox.com>
13458
13459         * test/watch.c (error_handler): make it safe if the error handler
13460         is called multiple times (if we s/error handler/disconnect
13461         handler/ we should just guarantee it's called only once)
13462
13463         * dbus/dbus-transport.c (_dbus_transport_disconnect): call the
13464         error handler on disconnect (it's quite possible we should
13465         just change the error handler to a "disconnect handler," I'm
13466         not sure we have any other meaningful errors)
13467
13468         * configure.in: check for getpwnam_r
13469
13470         * dbus/dbus-transport.c, dbus/dbus-transport-unix.c,
13471         dbus/dbus-auth.c: add credentials support, add EXTERNAL auth
13472         mechanism as in SASL spec, using socket credentials
13473
13474         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): new function
13475         (_dbus_send_credentials_unix_socket): new function
13476
13477         * dbus/dbus-sysdeps.c (_dbus_accept_unix_socket): rename just
13478         dbus_accept()
13479         (_dbus_write): only check errno if <0 returned
13480         (_dbus_write_two): ditto
13481
13482 2003-01-02  Anders Carlsson  <andersca@codefactory.se>
13483
13484         * dbus/dbus-marshal.c: (_dbus_marshal_utf8_string),
13485         (_dbus_marshal_byte_array), (_dbus_demarshal_utf8_string),
13486         (_dbus_marshal_test):
13487         * dbus/dbus-marshal.h:
13488         Add _dbus_marshal_byte_array and rename _dbus_marshal_string
13489         to _dbus_marshal_utf8_string. Also fix some tests.
13490
13491 2002-12-28  Harri Porten  <porten@kde.org>
13492
13493         * configure.in: added check for C++ compiler and a very cheesy
13494         check for the Qt integration
13495
13496         * Makefile.am (SUBDIRS): compile qt subdir if support is enabled
13497
13498         * qt/Makefile.am: added
13499
13500         * qt/.cvsignore: added
13501
13502         * qt/dbus-qthread.cc, qt/dbus-qthread.cpp: renamed former to
13503         latter, added #ifdef QT_THREAD_SUPPORT guard.
13504
13505         * dbus/Makefile.am: added missing headers for make dist
13506
13507 2002-12-28  Kristian Rietveld  <kris@gtk.org>
13508
13509         * dbus/Makefile.am: fixup export-symbols-regex.
13510
13511 2002-12-27  Anders Carlsson  <andersca@codefactory.se>
13512
13513         * acinclude.m4: Add this file and put the
13514         PKG_CHECK_MODULE macro in it.
13515
13516 2002-12-27  Anders Carlsson  <andersca@codefactory.se>
13517
13518         * dbus/dbus-marshal.c: (_dbus_marshal_string),
13519         (_dbus_demarshal_double), (_dbus_demarshal_int32),
13520         (_dbus_demarshal_uint32), (_dbus_demarshal_string),
13521         (_dbus_marshal_test):
13522         Make the demarshalling routines align the pos argument.
13523         Add string marshalling tests and fix the obvious bugs
13524         discovered.
13525
13526 2002-12-26  Havoc Pennington  <hp@pobox.com>
13527
13528         * dbus/dbus-auth.c: fixes fixes fixes
13529
13530         * dbus/dbus-transport-unix.c: wire up support for
13531         encoding/decoding data on the wire
13532
13533         * dbus/dbus-auth.c (_dbus_auth_encode_data)
13534         (_dbus_auth_decode_data): append to target string
13535         instead of nuking it.
13536
13537 2002-12-26  Havoc Pennington  <hp@pobox.com>
13538
13539         * dbus/dbus-marshal.h (DBUS_COMPILER_BYTE_ORDER): #ifdef
13540         WORDS_BIGENDIAN then compiler byte order is DBUS_BIG_ENDIAN,
13541         doh
13542
13543         * dbus/dbus-marshal.c: Add macros to do int swapping in-place and
13544         avoid swap_bytes() overhead (ignoring possible assembly stuff for
13545         now). Main point is because I wanted unpack_uint32 to implement
13546         _dbus_verbose_bytes
13547         (_dbus_verbose_bytes): new function
13548
13549         * dbus/dbus-string.c (_dbus_string_validate_ascii): new function
13550
13551         * dbus/dbus-message.c (_dbus_message_loader_get_is_corrupted): add
13552         mechanism to handle a corrupt message stream
13553         (_dbus_message_loader_new): fix preallocation to only prealloc,
13554         not prelengthen
13555
13556         * dbus/dbus-string.c (_dbus_string_skip_blank): fix this function
13557         (_dbus_string_test): enhance tests for copy/move and fix the
13558         functions
13559
13560         * dbus/dbus-transport-unix.c: Hold references in more places to
13561         avoid reentrancy problems
13562
13563         * dbus/dbus-transport.c: ditto
13564
13565         * dbus/dbus-connection.c (dbus_connection_dispatch_message): don't
13566         leak reference count in no-message case
13567
13568         * test/watch.c (do_mainloop): handle adding/removing watches
13569         during iteration over the watches. Also, ref the connection/server
13570         stored on a watch, so we don't try to mangle a destroyed one.
13571
13572         * dbus/dbus-transport-unix.c (do_authentication): perform
13573         authentication
13574
13575         * dbus/dbus-auth.c (get_state): add a state
13576         AUTHENTICATED_WITH_UNUSED_BYTES and return it if required
13577         (_dbus_auth_get_unused_bytes): append the unused bytes
13578         to the passed in string, rather than prepend
13579
13580         * dbus/dbus-transport.c (_dbus_transport_init_base): create
13581         the auth conversation DBusAuth
13582
13583         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd)
13584         (_dbus_transport_new_for_domain_socket): when creating a
13585         transport, pass in whether it's a client-side or server-side
13586         transport so we know which DBusAuth to create
13587
13588 2002-12-03  Havoc Pennington  <hp@pobox.com>
13589
13590         * dbus/dbus-transport-unix.c (unix_finalize): finalize base
13591         _after_ finalizing the derived members
13592         (unix_connection_set): unref watch if we fail to add it
13593
13594         * dbus/dbus-connection.c (dbus_connection_unref): delete the
13595         transport first, so that the connection owned by the
13596         transport will be valid as the transport finalizes.
13597
13598         * dbus/dbus-transport-unix.c (unix_finalize): free the write_watch
13599         if necessary, and remove watches from the connection.
13600
13601         * dbus/dbus-watch.c (_dbus_watch_list_free): improve a comment
13602
13603 2002-12-26  Anders Carlsson  <andersca@codefactory.se>
13604
13605         * dbus/dbus-marshal.c: (_dbus_marshal_string),
13606         (_dbus_demarshal_double), (_dbus_demarshal_int32),
13607         (_dbus_demarshal_uint32), (_dbus_demarshal_string),
13608         (_dbus_marshal_test):
13609         * dbus/dbus-marshal.h:
13610         Add string marshal functions and have the demarshal functions
13611         return the new position.
13612
13613 2002-12-25  Havoc Pennington  <hp@pobox.com>
13614
13615         * doc/dbus-sasl-profile.txt: docs on the authentication protocol,
13616         it is a simple protocol that just maps directly to SASL.
13617
13618         * dbus/dbus-auth.h, dbus/dbus-auth.c: authentication protocol
13619         initial implementation, not actually used yet.
13620
13621         * dbus/dbus-string.c (_dbus_string_find): new function
13622         (_dbus_string_equal): new function
13623         (_dbus_string_base64_encode): new function
13624         (_dbus_string_base64_decode): new function
13625
13626 2002-12-25  Anders Carlsson  <andersca@codefactory.se>
13627
13628         * dbus/Makefile.am:
13629         * dbus/dbus-marshal.c: (swap_bytes), (_dbus_marshal_double),
13630         (_dbus_marshal_int32), (_dbus_marshal_uint32),
13631         (_dbus_demarshal_double), (_dbus_demarshal_int32),
13632         (_dbus_demarshal_uint32), (_dbus_marshal_test):
13633         * dbus/dbus-marshal.h:
13634         * dbus/dbus-protocol.h:
13635         * dbus/dbus-test.c: (main):
13636         * dbus/dbus-test.h:
13637         Add un-optimized marshalling/demarshalling routines.
13638
13639 2002-12-25  Harri Porten  <porten@kde.org>
13640
13641         * qt/dbus-qt.h: adjusted ctor and getter to KDE/Qt conventions
13642
13643 2002-12-24  Zack Rusin  <zack@kde.org>
13644
13645         * qt/dbus-qthread.cc: adding - integrates QMutex into Dbus
13646         * qt/dbus-qt.h: skeleton with two sample implemenatation of the
13647         main loop stuff
13648
13649 2002-12-24  Havoc Pennington  <hp@pobox.com>
13650
13651         * glib/dbus-gthread.c: fix include
13652
13653         * glib/dbus-glib.h: rename DBusMessageHandler for now.
13654         I think glib API needs to change, though, as you don't
13655         want to use DBusMessageFunction, you want to use the
13656         DBusMessageHandler object. Probably
13657         dbus_connection_open_with_g_main_loop()
13658         and dbus_connection_setup_g_main_loop() or something like that
13659         (but think of better names...) that just create a connection
13660         that has watch/timeout functions etc. already set up.
13661
13662         * dbus/dbus-connection.c
13663         (dbus_connection_send_message_with_reply): new function just to
13664         show how the message handler helps us deal with replies.
13665
13666         * dbus/dbus-list.c (_dbus_list_remove_last): new function
13667
13668         * dbus/dbus-string.c (_dbus_string_test): free a string that
13669         wasn't
13670
13671         * dbus/dbus-hash.c: use memory pools for the hash entries
13672         (rebuild_table): be more paranoid about overflow, and
13673         shrink table when we can
13674         (_dbus_hash_test): reduce number of sprintfs and write
13675         valid C89. Add tests for case where we grow and then
13676         shrink the hash table.
13677
13678         * dbus/dbus-mempool.h, dbus/dbus-mempool.c: memory pools
13679
13680         * dbus/dbus-connection.c (dbus_connection_register_handler)
13681         (dbus_connection_unregister_handler): new functions
13682
13683         * dbus/dbus-message.c (dbus_message_get_name): new
13684
13685         * dbus/dbus-list.c: fix docs typo
13686
13687         * dbus/dbus-message-handler.h, dbus/dbus-message-handler.c:
13688         an object representing a handler for messages.
13689
13690 2002-12-16  Anders Carlsson  <andersca@codefactory.se>
13691
13692         * glib/dbus-glib.h:
13693         * glib/dbus-gthread.c: (dbus_gthread_init):
13694         Don't use the gdbus prefix for public functions.
13695
13696 2002-12-16  Anders Carlsson  <andersca@codefactory.se>
13697
13698         * Makefile.am:
13699         * configure.in:
13700         Add GLib checks and fixup .pc files
13701
13702         * glib/Makefile.am:
13703         * glib/dbus-glib.h:
13704         * glib/dbus-gmain.c: (gdbus_connection_prepare),
13705         (gdbus_connection_check), (gdbus_connection_dispatch),
13706         (gdbus_add_connection_watch), (gdbus_remove_connection_watch),
13707         (dbus_connection_gsource_new):
13708         * glib/dbus-gthread.c: (dbus_gmutex_new), (dbus_gmutex_free),
13709         (dbus_gmutex_lock), (dbus_gmutex_unlock), (dbus_gthread_init):
13710         * glib/test-dbus-glib.c: (message_handler), (main):
13711         Add GLib support.
13712
13713 2002-12-15  Harri Porten  <porten@kde.org>
13714
13715         * autogen.sh: check for libtoolize before attempting to use it
13716
13717         * dbus/dbus-transport-unix.c: include <sys/time.h> for timeval
13718         struct.
13719
13720         * .cvsignore: ignore more stamp files
13721
13722         * dbus/dbus-watch.c (_dbus_watch_list_new): fixed doc error
13723
13724         * test/Makefile.am: added -I$(top_srcdir) to be able to compile
13725         without make install.
13726
13727 2002-12-15  Havoc Pennington  <hp@pobox.com>
13728
13729         * dbus/dbus-threads.c: add thread stubs that a higher library
13730         layer can fill in. e.g. the GLib wrapper might fill them in with
13731         GThread stuff. We still need to use this thread API to
13732         thread-safe-ize the library.
13733
13734 2002-12-12  Havoc Pennington  <hp@pobox.com>
13735
13736         * dbus/dbus-transport-unix.c, dbus/dbus-server-unix.c: use the
13737         below new interfaces and include fewer system headers.
13738
13739         * dbus/dbus-sysdeps.c (_dbus_read): new function
13740         (_dbus_write): new function
13741         (_dbus_write_two): new function
13742         (_dbus_connect_unix_socket): new function
13743         (_dbus_listen_unix_socket): new function
13744
13745         * dbus/dbus-message-internal.h: change interfaces to use
13746         DBusString
13747
13748 2002-12-11  Havoc Pennington  <hp@pobox.com>
13749
13750         * dbus/dbus-types.h: add dbus_unichar
13751
13752         * dbus/dbus-internals.c (_dbus_verbose): use _dbus_getenv
13753
13754         * dbus/dbus-connection.c (dbus_connection_send_message): return
13755         TRUE on success
13756
13757         * dbus/dbus-transport.c: include dbus-watch.h
13758
13759         * dbus/dbus-connection.c: include dbus-message-internal.h
13760
13761         * HACKING: add file with coding guidelines stuff.
13762
13763         * dbus/dbus-string.h, dbus/dbus-string.c: Encapsulate all string
13764         handling here, for security purposes (as in vsftpd). Not actually
13765         using this class yet.
13766
13767         * dbus/dbus-sysdeps.h, dbus/dbus-sysdeps.c: Encapsulate all
13768         system/libc usage here, as in vsftpd, for ease of auditing (and
13769         should also simplify portability). Haven't actually moved all the
13770         system/libc usage into here yet.
13771
13772 2002-11-25  Havoc Pennington  <hp@pobox.com>
13773
13774         * dbus/dbus-internals.c (_dbus_verbose): fix to not
13775         always print the first verbose message.
13776
13777 2002-11-24  Havoc Pennington  <hp@pobox.com>
13778
13779         * test/echo-client.c, test/echo-server.c: cheesy test
13780         clients.
13781
13782         * configure.in (AC_CHECK_FUNCS): check for writev
13783
13784         * dbus/dbus-message.c (_dbus_message_get_network_data): new
13785         function
13786
13787         * dbus/dbus-list.c (_dbus_list_foreach): new function
13788
13789         * dbus/dbus-internals.c (_dbus_verbose): new function
13790
13791         * dbus/dbus-server.c, dbus/dbus-server.h: public object
13792         representing a server that listens for connections.
13793
13794         * dbus/.cvsignore: create
13795
13796         * dbus/dbus-errors.h, dbus/dbus-errors.c:
13797         public API for reporting errors
13798
13799         * dbus/dbus-connection.h, dbus/dbus-connection.c:
13800         public object representing a connection that
13801         sends/receives messages. (Same object used for
13802         both client and server.)
13803
13804         * dbus/dbus-transport.h, dbus/dbus-transport.c:
13805         Basic abstraction for different kinds of stream
13806         that we might read/write messages from.
13807
13808 2002-11-23  Havoc Pennington  <hp@pobox.com>
13809
13810         * dbus/dbus-internals.h (_DBUS_INT_MAX): add _DBUS_INT_MIN
13811         _DBUS_INT_MAX
13812
13813         * dbus/dbus-test.c (main): add list test, and include
13814         dbus-test.h as intended
13815
13816         * dbus/dbus-hash.c (_dbus_hash_table_remove_string)
13817         (_dbus_hash_table_remove_int): return value indicates
13818         whether the entry existed to remove
13819
13820         * dbus/dbus-list.c: add linked list utility class,
13821         with docs and tests
13822
13823         * dbus/dbus-hash.c: add TODO item about shrinking the hash bucket
13824         array sometimes.
13825
13826 2002-11-23  Havoc Pennington  <hp@pobox.com>
13827
13828         * Doxyfile.in (INCLUDE_FILE_PATTERNS): expand DBUS_BEGIN_DECLS/
13829         DBUS_END_DECLS to nothing, that should fix this once and for all
13830
13831         * Doxyfile.in (JAVADOC_AUTOBRIEF): set to YES
13832
13833         * dbus/dbus-message.c, dbus/dbus-hash.c:
13834         add some missing @brief
13835
13836 2002-11-23  Havoc Pennington  <hp@pobox.com>
13837
13838         * dbus/dbus-message.h: put semicolons after DEBUG_BEGIN_DECLS
13839         to avoid confusing Doxygen
13840
13841         * dbus/dbus-hash.c: @} not }@
13842
13843         * dbus/dbus-message.c (struct DBusMessage): split out
13844         internals docs
13845
13846 2002-11-23  Havoc Pennington  <hp@pobox.com>
13847
13848         * configure.in: pile on more warning flags if using gcc
13849
13850         * Doxyfile.in (EXTRACT_STATIC): set to NO, so we don't have
13851         to document static functions
13852
13853         * configure.in: add summary to end of configure so it
13854         looks nice and attractive
13855
13856         * dbus/dbus-hash.c: finish implementation and write unit
13857         tests and docs
13858
13859         * configure.in: add --enable-tests to enable unit tests
13860
13861         * dbus/dbus-test.c: test program to run unit tests
13862         for all files in dbus/*, initially runs a test for
13863         dbus-hash.c
13864
13865         * dbus/dbus-internals.h: file to hold some internal utility stuff
13866
13867 2002-11-22  Havoc Pennington  <hp@redhat.com>
13868
13869         * dbus/dbus-hash.c: copy in Tcl hash table, not yet
13870         "ported" away from Tcl
13871
13872         * dbus/dbus-types.h: header for types such as dbus_bool_t
13873
13874 2002-11-22  Havoc Pennington  <hp@redhat.com>
13875
13876         * dbus/dbus.h: fixups for doc warnings
13877
13878         * Doxyfile.in (FILE_PATTERNS): we need to scan .h to pick up
13879         macros
13880         (QUIET): make it quiet so we can see warnings
13881
13882         * dbus/dbus-memory.c: teach D-BUS to allocate and free memory
13883
13884 2002-11-22  Havoc Pennington  <hp@redhat.com>
13885
13886         * Makefile.am: include "Doxyfile" target in all-local
13887
13888         * configure.in: generate the Doxyfile
13889
13890         * Doxyfile.in: move Doxyfile here, so we can use
13891         configure to generate a Doxyfile with the right
13892         version number etc.
13893
13894 2002-11-22  Havoc Pennington  <hp@redhat.com>
13895
13896         * dbus/dbus-message.c: move inline docs into .c file
13897
13898         * Doxyfile (OUTPUT_DIRECTORY): move output to doc/api
13899         so all docs are under doc/
13900         (MAN_EXTENSION): generate man pages. Use extension
13901         ".3dbus" which matches ".3qt" on my system,
13902         I guess this is OK, I don't know really.
13903         (FILE_PATTERNS): look for .c files not .h, makes sense
13904         for plain C I think
13905
13906 2002-11-22  Havoc Pennington  <hp@pobox.com>
13907
13908         * Makefile.am (SUBDIRS): rename subdir "server" to "bus"
13909         because any app can be a server, and any app can be a client,
13910         the bus is a special kind of server.
13911
13912 Thu Nov 21 23:35:31 2002  Zack Rusin  <zack@kde.org>
13913
13914         * Doxyfile : adding. Still needs Makefile rules to be generated
13915         automatically (just run "doxygen" in the toplevel dir for now to
13916         generate docs)
13917
13918         * dbus/dbus-message.h : Adding sample docs (javadoc since
13919         resembles gtk-doc a little more)
13920
13921         * dbus/dbus.h : Adding sample docs
13922
13923 2002-11-21  Havoc Pennington  <hp@redhat.com>
13924
13925         * dbus/Makefile.am (INCLUDES): define DBUS_COMPILATION
13926         so we can allow ourselves to include files directly,
13927         instead of having to use dbus.h
13928
13929         * dbus/dbus.h: fill in
13930
13931         * dbus/dbus-message.h: sketch out a sample header file.
13932         Include griping if you include it directly instead of
13933         via dbus.h
13934
13935         * dbus/dbus-macros.h: new file with macros for extern "C",
13936         TRUE/FALSE, NULL, etc.
13937
13938         * doc/file-boilerplate.c: put include guards in here
13939
13940 2002-11-21  Havoc Pennington  <hp@redhat.com>
13941
13942         * doc/file-boilerplate.c: include both AFL and GPL boilerplate.
13943
13944         * COPYING: include the GPL as well, and license code
13945         under both AFL and GPL.
13946
13947 2002-11-21  Havoc Pennington  <hp@redhat.com>
13948
13949         * acconfig.h: get rid of this
13950
13951         * autogen.sh (run_configure): add --no-configure option
13952
13953         * configure.in: remove AC_ARG_PROGRAM to make
13954         autoconf complain less. add AC_PREREQ.
13955         add AC_DEFINE third arg.
13956
13957 2002-11-21  Anders Carlsson  <andersca@codefactory.se>
13958
13959         * doc/Makefile.am:
13960         Fix references so we can distcheck.
13961
13962 2002-11-21  Havoc Pennington  <hp@redhat.com>
13963
13964         * Initial module creation
13965