bd7f951e4927a962b6de7ba3f488ca697b8b8ca4
[platform/upstream/dbus.git] / ChangeLog
1 2006-08-18  John (J5) Palmieri  <johnp@redhat.com>
2
3         * Released 0.92 
4
5 2006-08-18  John (J5) Palmieri  <johnp@redhat.com>
6
7         * dbus/dbus-threads.c (dbus_threads_init): change the documentation
8         to reflect the init late change
9
10         * bus/bus.c (bus_context_new): Check user before we fork so we can
11         print out an error message a user will be able to see
12
13 2006-08-18  John (J5) Palmieri  <johnp@redhat.com>
14
15         Patch provided by Ralf Habacker (ralf dot habacker at freenet dot de) 
16
17         * dbus/dbus-sysdeps.c, dbus/dbus-threads.c, dbus/dbus-internals.h:
18         Add two more global locks for use on windows platforms.  These are
19         unused on non-windows platforms but are not ifdefed out to avoid
20         potential bugs (i.e. the few bytes lost does not warrent the extra
21         maintanence and complexity that having seperate sets of locks would
22         cause)
23
24 2006-08-18  John (J5) Palmieri  <johnp@redhat.com>
25
26         * bus/services.c (bus_registry_acquire_service): Return an error
27         when an application tries to register the org.freedesktop.DBus Bus Name
28
29         * bus/services.c (bus_registry_release_service): Return an error
30         when an application tries to release the org.freedesktop.DBus Bus Name
31
32 2006-08-17  Alp Toker  <alp@atoker.com>
33
34         * doc/dbus-specification.xml: Fix some minor typos.
35
36 2006-08-17  John (J5) Palmieri  <johnp@redhat.com>
37
38         * configure.in: use $with_init_scripts instead of $operating_system
39         to determine where to store the pid since the init scripts manipulate 
40         the pid file (patch from Marcelo Ricardo Leitner 
41         <marcelo dot leitner at terra dot com dot br>.  
42
43 2006-08-16  John (J5) Palmieri  <johnp@redhat.com>
44
45         * dbus/dbus-threads.c: Add static DBusList *uninitialized_mutex_list and
46         static DBusList *uninitialized_condvar_list to support new late 
47         initialization threading model.  In this model threads can be initialized
48         even after the D-Bus API has been used but still needs to be initialized 
49         before the second thread has been started.  Mutexes and condvar addresses
50         are stored in the two static lists and are replaced with actuall locks
51         when threads are initalized.
52         (_dbus_mutex_new_at_location): New method for creating a mutex and placing
53         the location into the static list
54         (_dbus_mutex_free_at_location): New method for removing a mutex location 
55         from the static list and freeing the mutex
56         (_dbus_condvar_new_at_location): New method for creating a conditional 
57         variable and placing the location into the static list
58         (_dbus_condvar_free_at_location): New method for removing a conditional
59         variable location from the static list and freeing the conditional variable 
60         (init_uninitialized_locks): Atomic method which goes through the static 
61         lists of mutex and condvar location and updates them with actuall locks
62         (init_global_locks): changed to init_locks
63         
64         * dbus/dbus-connection.c:
65         (_dbus_connection_test_get_locks): New method for tests to check connections
66         (_dbus_connection_new_for_transport): Use the new at_location mutex and
67         condvar API
68         (dbus_connection_allocate_data_slot): Pass in the global lock address
69         to _dbus_data_slot_allocator_alloc
70
71         * dbus/dbus-dataslot.c:
72         (_dbus_data_slot_allocator_alloc): Use the address of the mutex
73         instead of the mutex itself
74
75         * dbus/dbus-message.c:
76         (dbus_message_allocate_data_slot): Pass in the global lock address
77         to _dbus_data_slot_allocator_alloc
78
79         * dbus/dbus-pending-call.c:
80         (dbus_pending_call_allocate_data_slot): Pass in the global lock address
81         to _dbus_data_slot_allocator_alloc
82
83         * dbus/dbus-server.c:
84         (_dbus_server_init_base): Use the new at_location mutex API
85         (dbus_server_allocate_data_slot): Pass in the global lock address
86         to _dbus_data_slot_allocator_alloc
87
88         * test/name-test/test-threads-init.c: New test case for late thread
89         initialization
90
91 2006-08-14  John (J5) Palmieri  <johnp@redhat.com>
92
93         * dbus/dbus-dataslot.c (_dbus_data_slot_allocator_alloc):
94         Change _dbus_abort to _dbus_assert_not_reached because _dbus_abort
95         causes compile problems when asserts are turned off
96         Keeping _dbus_warn for printing out the message so even if
97         asserts are turned off the user gets the messages that something is 
98         wrong 
99
100 2006-08-14  John (J5) Palmieri  <johnp@redhat.com>
101
102         Patches by Kjartan Maraas <kmaraas at gnome dot org>
103
104         * bus/services.c (bus_service_list_queued_owners):
105         Add a pointer cast to fix compiler warning
106
107         * dbus/dbus-dataslot.c (_dbus_data_slot_list_get):
108         return a NULL instead of FALSE since the return type
109         is not expecting a boolean
110
111         * dbus/dbus-marshal-basic.c (_dbus_marshal_test):
112         Remove unused variable
113
114         * dbus/dbus-marshal-recursive-util.c (node_new):
115         return a NULL instead of FALSE since the return type
116         is not expecting a boolean
117
118         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
119         Send a NULL into _dbus_transport_new_for_fd instead of a FALSE
120         because we are expecting a pointer not a boolean
121
122         * dbus/dbus-sysdeps-util.c (_dbus_get_tmpdir): 
123         add void as the parameter so some compilers
124         don't complain
125
126         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_domain_socket,
127           _dbus_transport_new_for_tcp_socket):
128         Send a NULL into _dbus_transport_new_for_fd instead of a FALSE
129         because we are expecting a pointer not a boolean
130
131         * test/shell-test.c (test_command_line):
132         cast the second argument to _dbus_list_append to avoid compiler
133         warnings
134
135         * test/test-names.c (main): remove unused variable
136
137         * test/test-service.c (check_hello_from_self_reply):
138         Initialize echo_message and echo_reply to NULL
139         
140         * test/test-shell-service.c (handle_echo):
141         Remove unused variable and cast the third parameter passed to
142         dbus_connection_get_object_path_data to avoid compiler warrnings
143
144         * test/name-test/test-names.c (clear_message_queue):
145         Remove unused function
146
147         * test/name-test/test-pending-call-dispatch.c:
148         Fix format string in printf
149
150
151 2006-08-14  John (J5) Palmieri  <johnp@redhat.com>
152
153         * dbus/dbus-bus.c:
154         * test/name-test/test-names.c:
155         Remove test method dbus_bus_connection_get_unique_name because 
156         we already have public method dbus_bus_get_unique_name that 
157         does the exact same thing
158
159 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
160
161         * dbus/dbus-signature.c:
162         fix typos in Julio's previous patch which cause make check to fail
163
164 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
165
166         * dbus/dbus-address.c (_dbus_address_test): Revert leaking strcmp.  
167         In any case it was wrong since this is a test checking to see if
168         address parsing is correct.  There was no need to get the true
169         tmp directory.  
170
171 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
172
173         * dbus/dbus-macros.h: Revert the addition of stddef.h
174         as we should not be adding it to library headers 
175
176 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
177
178         * dbus/dbus-signature.c:
179         Fix the unit tests so that they work if assertions are not enabled.
180         (patch from Julio M. Merino Vidal  <jmmv at NetBSD dot org>)
181
182 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
183
184         * tools/run-with-tmp-session-bus.sh:
185         * test/name-test/run-test.sh:
186         Remove bashisms (patch from Julio M. Merino Vidal
187         <jmmv at NetBSD dot org>)
188
189 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
190
191         * configure.in: add a version (>= 2.6.0) check for libxml2
192
193 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
194
195         * configure.in: make sure the compiler supports -Wfloat-equal
196         
197         * bus/dir-watch-dnotify.c: move functional code after 
198         variable declerations (C99 fix)  (patches from Jens Granseuer
199         <jensgr at gmx dot net>
200
201 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
202
203         * dbus/dbus-macros.h:
204         add #include <stddef.h> so that Sun compilers don't complain about
205         the defining NULL
206
207 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
208
209         * dbus/dbus-sysdeps.c:
210         * dbus/dbus-address.c:
211         * bus/activation.c:
212         * test/shell-test.c:
213         don't hardcode tmp directory (patch from Dave Meikle 
214         <dmk at davemeikle dot co dot uk>)
215
216 2006-08-09  John (J5) Palmieri  <johnp@redhat.com>
217
218         * dbus/dbus-dataslot.c (_dbus_data_slot_allocator_alloc):
219         Change an assert to a detailed warning and abort.  
220         When allocator->lock != mutex it indicates that the user has failed
221         to initalize threads before using the D-Bus library.  This warning
222         helps the user identify the issue and fix their app.
223
224 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
225
226         These are all patches from Kjartan Maraas <kmaraas at gnome dot org>
227         with cleanups of bugs found from Coverity reports:
228
229         * dbus/dbus-sysdeps-util.c (_dbus_write_pid_file):
230         close the file on error to avoid a leak
231
232         * bus/expirelist.c (bus_expire_list_test):
233         Check for NULL on dbus_new0
234
235         * bus/activation.c (update_directory):
236         remove dead code
237
238         * bus/config-parser.c (merge_service_context_hash, start_selinux_child):
239         Fix some leaks
240
241         * bus/bus.c (process_config_every_time):
242         Fixed a leak
243
244         * bus/desktop-file.c (parse_key_value):
245         Fixed leak
246
247         * bus/selinux.c (bus_selinux_id_table_insert):
248         Fixed leak
249
250 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
251
252         * dbus/dbus-object-tree.c (_dbus_object_subtree_new):
253         remove dead code
254
255 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
256
257         * tools/run-with-tmp-session-bus.sh: use #!/bin/sh instead of
258         #!/bin/bash
259
260 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
261
262         * Doxyfile.in: fix the INPUT line so we can generate docs 
263         when sourcedir != builddir (patch from Cygwin Ports maintainer
264         <yselkowitz at users dot sourceforge dot net>
265
266 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
267
268         * dbus/dbus-sysdeps.h:
269         * dbus/dbus-sysdeps.c: 
270         * dbus/dbus-string.c: 
271         s/_dbus_printf_length/_dbus_printf_string_upper_bound to comform with
272         GLib's function which does the same thing
273
274         * configure.in:
275         * bus/Makefile.am:
276         * bus/dir-watch-default.c:
277         * bus/dir-watch-dnotify.c:
278         * bus/dir-watch-kqueue.c:
279         Add kqueue directory watching for freebsd and split the directory
280         watching code into seperate files per method/arch
281         (patches from Timothy Redaelli <drizzt at gufi dotorg>)
282
283 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
284
285         * configure.in:
286         * tools/Makefile.am:
287         * tools/dbus-launch.c:
288         * bus/Makefile.am:
289         allow --with-dbus-daemondir switch to be used to make the
290         daemon install to a seperate bindir like /usr/libexec
291         (patch from Brian Cameron <brian dot cameron at sun dot com)
292
293 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
294
295         * bus/Makefile.am (install-data-hook): removed the slash after 
296         $(DESTDIR) so we don't get the double slash which does not work
297         in windows (patch from Andras Porjesz 
298         <andras dot porjesz at siemens dot com>)
299
300 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
301
302         * dbus/dbus-sysdeps.h:
303         * dbus/dbus-sysdeps.c: 
304           add _dbus_printf_length (patch from Peter Kümmel 
305           <syntheticpp at gmx dot net>)
306
307 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
308
309         * dbus/dbus-internals.c: unistd.h is not used 
310         (_dbus_verbose_real): only enable verbose printing 
311         if DBUS_VERBOSE environment var is set to '1'
312         (patch from Peter Kümmel <syntheticpp at gmx dot net>)
313
314 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
315
316         * configure.in: add a GCC flag check for -Wdeclaration-after-statement
317         so we still compile on older gcc (patch from Frederic Peters 
318         <fpeters at 0d dot be>
319
320 2006-08-04  Havoc Pennington  <hp@redhat.com>
321
322         * configure.in: add -Wdeclaration-after-statement
323
324         * dbus/dbus-connection.c: change all the pending call stuff to
325         reflect the fact that pending call operations use the connection
326         lock
327
328         * dbus/dbus-pending-call.c: add locking here
329
330         * dbus/dbus-errors.c (struct DBusRealError): don't make the name
331         field const consistent with how message field is done
332
333 2006-08-03  John (J5) Palmieri  <johnp@redhat.com>
334
335         * s/D-BUS/D-Bus/g
336
337 2006-08-03  John (J5) Palmieri  <johnp@redhat.com>
338
339         * dbus/dbus-object-tree.c: Patch by Benjamin Otte 
340         <in7y118 at public.uni-hamburg dot de> - fix invalid
341         read/write reported by valgrind
342
343 2006-07-24  John (J5) Palmieri  <johnp@redhat.com>
344
345         * Released 0.91
346
347 2006-07-22  John (J5) Palmieri  <johnp@redhat.com>
348
349         * dbus/dbus-connection.c:
350         (_dbus_connection_attach_pending_call_unlocked):
351         (connection_timeout_and_complete_all_pending_calls_unlocked):
352         Make sure we set timeout_added on pending calls to FALSE when
353         we remove the timeout from the connection
354
355 2006-07-21  John (J5) Palmieri  <johnp@redhat.com>
356
357         * Removed some extra bindings stuff lingering around (thanks timo)
358         * dbus-pendingcall.c (_dbus_pending_call_new): 
359         s/dbus_connection_ref/_dbus_connection_ref_unlocked fixes assertion
360         when we tried to take a lock on an already locked connection
361
362 2006-07-17  John (J5) Palmieri  <johnp@redhat.com>
363
364         * Released 0.90
365
366 2006-07-17  Havoc Pennington  <hp@redhat.com>
367
368         * dbus/dbus-marshal-basic.c (_dbus_type_to_string): support 64-bit
369         ints, reported by Owen Taylor
370
371 2006-07-17  John (J5) Palmieri  <johnp@redhat.com>
372
373         * doc/TODO:
374         * dbus/dbus-bus.c:
375         * dbus-errors.c:
376         * dbus/dbus-marshal-validate.c:
377           Removed TODO items which were fixed or are no longer relevent
378
379 2006-07-17  John (J5) Palmieri  <johnp@redhat.com>
380
381         * dbus-qt4-1.pc.in, dbus-sharp.pc.in:
382         Remove stray files from the stripped bindings
383
384 2006-07-16  Havoc Pennington  <hp@redhat.com>
385
386         * dbus/dbus-pending-call.c (_dbus_pending_call_set_timeout_error):
387         Improve the error message on reply timeout
388
389 2006-07-14  John (J5) Palmieri  <johnp@redhat.com>
390
391         * Remove all bindings
392
393 2006-07-13  John (J5) Palmieri  <johnp@redhat.com>
394
395         * dbus-connection.c (dbus_connection_send_with_reply): return TRUE
396         and set pending_reply out arg to NULL is connection is disconnected
397         (connection_timeout_and_complete_all_pending_calls_unlocked): New
398         static method for cleaning up pending calls on disconnect
399         (_dbus_connection_get_dispatch_status_unlocked): If we have pending 
400         calls queued timeouts on disconnect 
401
402          * dbus/dbus-pending-call.c (_dbus_pending_call_set_connection):
403         Remove 
404
405 2006-07-13  Carlos Garcia Campos  <carlosgc@gnome.org>
406
407         * bus/activation.[ch] (bus_activation_list_services): new function to 
408         get the list of services that can be activated
409
410         * bus/dispatch.c: test coverage for the new bus method
411         ListActivatableNames
412
413         * bus/driver.c: new bus method ListActivatableNames to get the list of
414         services that can be activated
415
416         * doc/dbus-specification.xml: ListActivatableNames method documentation
417
418 2006-07-12  John (J5) Palmieri  <johnp@redhat.com>
419         * dbus/Makefile.am: add dbus-pending-call-internal.h to the list of
420         source files
421
422 2006-07-12  John (J5) Palmieri  <johnp@redhat.com>
423         * dbus/dbus-message-factory.c:
424         Fix index into an array (patch by Peter Kümmel <syntheticpp at gmx.net>)
425
426 2006-07-12  John (J5) Palmieri  <johnp@redhat.com>
427         * dbus/dbus-connection-internal.h:
428         * dbus/dbus-connection.c:
429         * file dbus/dbus-pending-call.c:
430         * dbus/dbus-pending-call.h:
431         Make DBusPendingCall an opaque type even to D-Bus internals
432
433 2006-07-07  John (J5) Palmieri  <johnp@redhat.com>
434
435         * dbus/dbus-connection.h: remove connection_disconnect and replace with
436         connection_close
437
438         * dbus/dbus-connection.c: include dbus-bus.h
439         (_dbus_connection_read_write_dispatch): make static
440
441 2006-07-07  John (J5) Palmieri  <johnp@redhat.com>
442
443         * dbus/dbus-connection.c (dbus_connection_close): removed deprecated
444         function
445         (dbus_connection_dispatch): On disconnect unref any shared connections
446
447         * dbus/dbus-bus.c (_dbus_bus_check_connection_and_unref): new function
448         for cleaning up shared connections on disconnect
449         (internal_bus_get): get a hard refrence to shared connections when
450         they are created
451         
452         * doc/TODO: Remove items which are no longer relevent or have been fixed
453         Split 1.0 todo items with a 0.90 freeze todo list
454  
455 2006-06-14  Ross Burton  <ross@openedhand.com>
456
457         * glib/dbus-gobject.c:
458         Free a leaking GArray (surely not!) in dbus_g_method_return.
459
460 2006-06-14  Ross Burton  <ross@openedhand.com>
461
462         * tools/Makefile.am:
463         * tools/dbus-monitor.c:
464         Don't use the GLib bindings in dbus-monitor (patch from Ralf
465         Habacker).
466         
467 2006-06-14  Ross Burton  <ross@openedhand.com>
468
469         * tools/dbus-print-message.c:
470         Also print the object path when outputting signals or method calls.
471
472 2006-06-13  Thiago Macieira <thiago.macieira@trolltech.com>
473
474         * qt/src/Makefile.am: install the qdbus.h header.
475         This allows people to actually use the installed code.
476
477 2006-06-12  Ross Burton  <ross@openedhand.com>
478
479         * glib/dbus-gproxy.c:
480         Don't leak a GArray when firing signals (thank Rob Taylor for review).
481
482 2006-06-12  Thiago Macieira <thiago.macieira@trolltech.com>
483
484         * Released 0.62
485
486 2006-06-12  Thiago Macieira <thiago.macieira@trolltech.com>
487
488         * dbus/dbus-arch-deps.h.in: Remove spurious semi-colons that
489         break pedantic builds. Closes bug 6043 (patch approved by
490         Havoc back in February).
491
492 2006-06-12  Thiago Macieira <thiago.macieira@trolltech.com>
493
494         * qt/src/qdbusintegrator.cpp: Fix bug in parsing async methods
495         that took a QDBusMessage parameter.
496         * qt/src/qdbusbus.h: Add a default flag for RequestName.
497         * qt/tools/dbus.cpp: Don't use automatic call because we might
498         be calling an async method: request a reply.
499
500 2006-06-11  Thiago Macieira <thiago.macieira@trolltech.com>
501
502         * test/qt/*: Update the testcases, including testing the new
503         functionality of sending null QByteArray and QString over the
504         bus. Add new headertest test and restore the old
505         qdbusxmlparser test.
506
507 2006-06-11  Thiago Macieira <thiago.macieira@trolltech.com>
508
509         * qt/tools/dbuscpp2xml.cpp: Compile on Windows.
510         * qt/tools/dbusidl2cpp.cpp: Add missing newline.
511
512         * qt/examples/Makefile.am:
513         * qt/examples/chat.h: Use UI-generated files with the ui_*.h
514         form.
515
516         * qt/src/qdbusmarshall.cpp: Allow sending of QString() and
517         QByteArray() (nulls) over the bus.
518         * qt/src/qdbusabstractinterface.cpp: Use the correct variable,
519         the one that has the signature suffix stripped.
520         * qt/src/qdbusreply.h: Make some methods const.
521
522 2006-06-09  Thiago Macieira <thiago.macieira@trolltech.com>
523
524         Patch from Timo Hoenig <thoenig@suse.de>.
525
526         * qt/dbus/Makefile.am: New file.  Fix "make dist", add all headers
527         required during build to EXTRA_DIST.
528         * qt/src/Makefile.am: Fix "make dist", add 'qdbus.h' to EXTRA_DIST.
529         * qt/Makefile.am: Fix "make dist", add 'dbus' to DIST_SUBDIRS.
530         * configure.in: Fix "make dist", take care that the Makefile for
531         qt/dbus is being generated.
532
533 2006-06-07  John (J5) Palmieri  <johnp@redhat.com>
534
535         * bus/bus.c: Fix eavesdropping on method calls
536
537 2006-06-07  John (J5) Palmieri  <johnp@redhat.com>
538
539         * configure.in:
540         * dbus/dbus-userdb-util.c:
541         Add Solaris console owner patch from Artem Kachitchkine
542
543 2006-06-07  Thiago Macieira <thiago.macieira@trolltech.com>
544
545         * qt/Makfile.am:
546         * qt/src/Makefile.am: Fix the EXTRA_DIST after the
547         reorganisation. Thanks to Timo Hoenig for pointing this out.
548
549 2006-06-06  Robert McQueen  <robot101@debian.org>
550
551         * glib/dbus-gtype-specialized.c: Fix obvious leak of GArray in every
552           call to dbus_g_type_get_struct.
553
554 2006-06-06  Robert McQueen  <robot101@debian.org>
555
556         * glib/dbus-gvalue-utils.c: Fix the failing test where static string
557           pointers were put into a GPtrArray-based specialised collection, and
558           then freed along with the array. GValues which you add into
559           collections or maps which have the NOCOPY flag set are assumed to not
560           belong to the caller, so rather than the existing pointer-stealing
561           semantics, they are copied instead. Given that the main consumers of
562           this abstraction are the bindings themselves, I don't think this is
563           too bad, but others should watch their choice of take vs set_static.
564
565 2006-06-06  Robert McQueen  <robot101@debian.org>
566
567         * glib/dbus-gvalue-utils.c: Spotted a warning about the return value
568           of g_slist_prepend not being used. Fixed copying of slist-based
569           specialised collections, then wrote a test case and found that it was
570           all broken. Went on to fix iterating and appending too. Good thing
571           nobody uses this code yet.
572
573 2006-06-06  Robert McQueen  <robot101@debian.org>
574
575         * glib/dbus-gvalue-utils.c: Remove duplicated code by having all of
576           the iterators use gvalue_take_ptrarray_value (the GValues themselves
577           are discarded without unsetting, so it makes no difference whether
578           we take or set_static). Remove cases for G_TYPE_POINTER because
579           there really is nothing useful we can do with them in our
580           specialised types - we *need* boxed copy/free functions at the very
581           least.
582
583 2006-06-05  Thiago Macieira <thiago.macieira@trolltech.com>
584
585         * qt/dbus: Add directory. I had forgotten to add this
586         yesterday after the move...
587
588         * qt/examples/Makefile.am:
589         * qt/examples/dbus.cpp: Moved to qt/tools/dbus.cpp.
590
591         * qt/tools/Makefile.am:
592         * qt/tools/dbus.cpp: Moved from qt/examples/dbus.cpp.
593         Added feature to get and set properties.
594         Added validation of service, object path and interface names.
595
596         * qt/tools/dbusidl2cpp.cpp: Two new features:
597         1) Allow specifying both the header and the source file names,
598         by separating them with a colon.
599         2) Don't write an interface output if the -p switch wasn't
600         given, but the -a was.
601
602         * qt/src/*: Fix usage of Iterators and ConstIterators.
603         Fix shadowing of variables by other variables (-Wshadow).
604         Fix keyword-cleanliness in headers.
605         Fix ASCII-cast (QLatin1String, QLatin1Char).
606         Fix validation of member names.
607         Add extra checking of introspection data during XML parsing.
608         Various bug fixes.
609
610 2006-06-04  Thiago Macieira <thiago.macieira@trolltech.com>
611
612         * dbus/Makefile.am:
613         * dbus/qdbus.h: Remove unnecessary file. This is mirrored into
614         qt/dbus/qdbus.h now.
615
616 2006-06-04  Thiago Macieira <thiago.macieira@trolltech.com>
617
618         * configure.in: Make --disable-qt actually do
619           something. Patch inspired by Zack Rusin.
620
621 2006-06-04  Thiago Macieira <thiago.macieira@trolltech.com>
622
623         * qt/: Update to Subversion r548032.
624         This includes a big reorganisation of the files inside the
625         subdir.
626
627 2006-05-30  Sjoerd Simons  <sjoerd@luon.net>
628
629         * dbus/dbus-sysdeps.c: Make tcp socket connection error somewhat more
630         clear:  
631         "Failed to connect to socket <host>:<port> <error>" instead of
632         "Failed to connect to socket <host>: <error>:<port>"
633
634         * dbus/dbus-transport-unix.c: Fix crash when no host option is given
635         for a tcp transport. 
636
637 2006-05-29  Thiago Macieira  <thiago.macieira@trolltech.com>
638
639         * qt/*: Update the QtDBus bindings up to revision 546310 in
640         Subversion.
641         This adds the dbuscpp2xml tool, that parses a C++ header and
642         outputs a D-BUS Introspection XML.
643
644 2006-05-21  Havoc Pennington  <hp@redhat.com>
645
646         * glib/dbus-gproxy.c: Put in a pile of assertions that the proxy name
647         is not NULL when it shouldn't be. Also a couple of possible fixes
648         for #4637 though I don't understand why the bug happens, to be
649         honest... also the object constructor has an assert name != NULL
650         and the name is only currently NULL for peer-to-peer proxies that 
651         I don't think anyone uses? So it should be asserting.
652         Anyway, for now at least see if we get an earlier assertion failure.
653
654         * glib/dbus-gvalue-utils.c: Put in a couple of assertions for
655         apparently broken code to be sure the tests fail and someone 
656         will fix them...
657
658 2006-05-07  Thiago Macieira  <thiago.macieira@trolltech.com>
659
660         * qt/qdbusmarshall.cpp: Fix a problem of demarshalling lists
661         and arrays when they had a single element: has_next returns
662         false, even before you read the element. So, instead, check
663         the array length.
664
665 2006-05-06  Thiago Macieira  <thiago.macieira@trolltech.com>
666
667         * qt/qdbusmessage.cpp:
668         * qt/qdbustypehelper_p.h:
669         * qt/qdbusintegrator.cpp: gcc 3.4 doesn't like Q_FOREACH when
670         the list is a const-reference
671
672 2006-05-03  John (J5) Palmieri  <johnp@redhat.com>
673
674         * Adding old doc patch that never got applied
675         
676         * dbus/bus.c (dbus_bus_add_match): Add documentation
677
678         * doc/dbus-specification.xml: Add documentation for the match rules
679           and the AddMatch and RemoveMatch methods
680
681 2006-05-02  Thiago Macieira  <thiago.macieira@trolltech.com>
682
683         * qt/dbusidl2cpp.cpp: There's no callAsync. Use the correct
684         call (r535506)
685
686         * qt/dbusidl2cpp.cpp:
687         * qt/qdbusabstractadaptor.cpp:
688         * qt/qdbusabstractadaptor.h: Make QDBusAdaptorConnector be a
689         sibling of the QDBusAbstractAdaptor objects instead of the
690         parent. (r535848)
691
692         * qt/dbusidl2cpp.cpp:
693         * qt/qdbusabstractinterface.cpp:
694         * qt/qdbusabstractinterface.h:
695         * qt/qdbusabstractinterface_p.h:
696         * qt/qdbusinterface.cpp: Make properties in interfaces
697         actually work. The code that was generated would not compile,
698         due to moc calls to functions that did not exist. They now
699         shall. (r536571)
700
701 2006-04-30  Thiago Macieira  <thiago.macieira@trolltech.com>
702
703         * Makefile.am:
704         * configure.in:
705         * dbus-qt4-1.pc.in: Add a pkg-config file for libdbus-qt4-1.
706         Thanks to Brad Hards for providing the patch
707
708 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
709
710         * qt/dbusidl2cpp.cpp: There's no callAsync. Use the correct
711         call. (r535506)
712
713 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
714
715         * qt/examples/dbus.cpp: Enhance error messages and use
716         QDBusInterfacePtr.
717
718 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
719
720         * qt/qdbusinterface.h: Rename QDBusRef to QDBusInterfacePtr
721         and disable the copy operators. (r533772, r534746)
722
723         * qt/qdbuserror.h: Remove the automatic cast to bool. (r533929)
724
725         * qt/qdbusabstractinterface.cpp:
726         * qt/qdbusabstractinterface.h: Change the default call mode to
727         not use the event loop. Add convenience call() methods that
728         take a CallMode parameter. (r534042)
729
730         * qt/qdbusconnection.h: Change the default call mode to not
731         use the event loop. (r534042)
732
733         * qt/qdbusinterface.cpp:
734         * qt/qdbusinterface.h: Add a method to tell us if the
735         interface is valid (since we don't return a null pointer
736         anymore) (r534099)
737
738         * qt/qdbusinterface_p.h: Don't crash if metaObject is 0
739         (r534101)
740
741         * qt/qdbusinternalfilters.cpp: Decouple the introspection
742         function in two so taht we get the chance to introspect
743         without having a QDBusMessage (r534102)
744
745         * qt/qdbusbus.h:
746         * qt/qdbusconnection.cpp:
747         * qt/qdbusconnection_p.h:
748         * qt/qdbusintegrator.cpp: Keep a list of our own names to
749         avoid a round-trip to the server when attempting to introspect
750         one of our own objects. Also make sure the filter functions
751         match the empty interface as well. (r534108)
752         Don't keep the connection names. Instead, trust the unique
753         connection name (r534111)
754         Remove event loop usage (r534112)
755
756 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
757
758         * qt/qdbusintegrator.cpp: Fix assertion failure spotted by
759         Brad Hards.
760
761 2006-04-28  Robert McQueen  <robot101@debian.org>
762
763         * glib/dbus-gproxy.c: Fix properties so that they can be given in
764         any order, making it easier for people who inherit from this
765         object.
766
767 2006-04-28  Robert McQueen  <robot101@debian.org>
768
769         * glib/dbus-gvalue-utils.c: Patch from Jakub Stachowski to fix leaking
770         of memory from within pointer arrays and lists. Fixes bug #6300.
771
772 2006-04-28  Robert McQueen  <robot101@debian.org>
773
774         * glib/dbus-gvalue.c: Patch from Jakub Stachowski to fix a leak in
775         generating struct signatures. Fixes bug #6083.
776
777 2006-04-28  Robert McQueen  <robot101@debian.org>
778
779         * qt/Makefile.am: Tweak CLEANFILES from qdbusconnection.moc
780         to qdbusconnection_p.moc.
781
782 2006-04-24 John (J5) Palmieri <johnp@redhat.com>
783
784         * README, INSTALL: Doc fixes
785         Patch from Brad Hards <bradh at frogmouth.net>
786
787 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
788
789         * qt/examples/dbus.cpp: Use the new merged-interface mode for
790         the dynamic meta object. No need to guess which interface to
791         call.
792
793 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
794
795         * qt/qdbusconnection_p.h:
796         * qt/qdbusmetaobject.cpp:
797         * qt/qdbusmetaobject_p.h:
798         * qt/qdbusintegrator.cpp: Use the new merged-interface mode
799         for the dynamic meta object. No need to guess which
800         interface to call.
801         * qt/qdbusabstractinterface_p.h:
802         * qt/qdbusconnection.cpp:
803         * qt/qdbusintegrator.cpp:
804         * qt/qdbusinterface.cpp:
805         * qt/qdbusinterface.h: Make findInterface always return a non-null pointer.
806         Add a QDBusRef that looks and behaves like DCOPRef.
807
808 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
809
810         * dbus/dbus-connection.c: Interfaces are optional in method
811         calls, so don't give up if the interface parameter is NULL.
812         Patch reviewed by Havoc Pennington.
813
814 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
815
816         * qt/qdbusreply.h: Add default constructor and operator=
817           (r532625)
818         * qt/qdbustypehelper_p.h: Use a clean namespace: no foreach()
819           in public headers (r532952)
820         * qt/qdbusabstractinterface.cpp:
821         * qt/qdbusabstractinterface_p.h: Add the AutoDetect mode and
822           make it the default (r532951)
823
824 2006-04-19  John (J5) Palmieri  <johnp@redhat.com>
825
826         * dbus/dbus-connection.c: Fix asserts
827         Patch from Tim Moloney <t.moloney at verizon.net>
828
829 2006-04-19  John (J5) Palmieri  <johnp@redhat.com>
830
831         * mono/Connection.cs, mono/Message.cs: Check Target type
832         Patch from Aaron Bockover (abockover at novell.com)
833
834 2006-04-13  Thiago Macieira  <thiago.macieira@trolltech.com>
835
836         * INSTALL: fine-tune the requirements for the Qt4 binding.
837
838 2006-04-16  Daniel P. Berrange  <dan@berrange.com>
839
840         * tools/dbus-print-message.c: Added support for printing of all 
841           remaining data types. Fixed logic for indentation of compound
842           data types.
843         
844 2006-04-15  Daniel P. Berrange  <dan@berrange.com>
845
846         * INSTALL: fill out content of file providing DBus specific
847           build installations, followed by generic Auto* INSTALL file
848           content
849         
850 2006-04-13  Thiago Macieira  <thiago.macieira@trolltech.com>
851
852         * qt/qdbusintegrator.cpp: Work around g++ 3.3 bug.
853           Patch by Stefan Eilers. (r529537)
854
855 2006-04-13  Thiago Macieira  <thiago.macieira@trolltech.com>
856
857         * qt/qdbusinternalfilters.cpp: Don't show the parent's
858           contents (r528208)
859
860 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
861
862         * qt/Makefile.am: fix the dependency for
863           qdbusconnection_p.moc. It's included in qdbusintegrator.cpp,
864           not in qdbusconnection.cpp.
865           Thanks to Jakub Stachowski <stachowski@hypair.net> for
866           spotting this.
867
868 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
869
870         * qt/examples/listnames.cpp:
871         * qt/examples/Makefile.am: Three ways to list the names on the
872           bus.
873
874 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
875
876         * test/qt/tst_hal.cpp: Remove the waiting, since it's not
877           needed anymore. Requires Qt 4.1.3 to work properly. (r528148)
878
879 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
880
881         Merge from Subversion:
882         * qt/qt-dbus.qdocconf: Update Trolltech's webpage link to
883           something that exists (r526315)
884         * qt/qdbusinternalfilters.cpp: Correctly detect non-scriptable
885           slots/signals (r526316)
886         * qt/qdbusinternalfilters.cpp: Fix the setProperty call and
887           also return an unknown-method error if the parameters don't
888           match for org.freedesktop.DBus.Properties. (r526842)
889         * qt/examples/dbus.cpp: Allow passing of QVariants (r526843)
890         * qt/qdbusintegrator.cpp: Restore the proper order of
891           delivery: don't make method returns be delivered on priority
892           (r528150)
893
894 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
895
896         * configure.in qt/Makefile.am: add qt/examples
897         * qt/examples: Add QtDBus example programs:
898           - hello: Hello, World
899           - ping: Simple method-calling program
900           - pong: Simple object-exporting program (not using adaptors)
901           - complexping: Interactive method-calling program 
902                 (also gets and sets properties).
903           - complexpong: Sample program exporting methods, signals and
904                 properties, using adaptors.
905           - dbus: Simple implementation of a generic method-calling
906                 program, similar to 'dbus-send', but with semantics
907                 similar to 'dcop'.
908           - chat: Simplistic chat program, implemented using signals
909                 and the system bus. Looks like IRC.
910
911 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
912
913         * configure.in: Detect QtGui (necessary for one of the
914           example programs). Note: this increases the minimum required
915           version of Qt to 4.1.3.
916
917 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
918
919         * test/qt/*: Sync with KDE Subversion revision 523647.
920         Update the testcases to the new API. Remove testcases for
921         classes that are no longer public or have been removed.
922
923 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
924
925         * qt/*: 
926         * dbus/qdbus.h: Sync with KDE Subversion revision
927         523647. Hopefully, this will be the last of the
928         source-incompatible changes. Documentation has been improved;
929         support for QList<basic-types> has been added; QDBusObject is
930         gone; QDBus(Abstract)Interface is now a QObject with
931         auto-generated meta-object; QDBusIntrospection is marked
932         private, since QMetaObject can be used now; lots of bugfixes.
933
934 2006-03-16  John (J5) Palmieri  <johnp@redhat.com>
935
936         Patch from Milosz Derezynski <internalerror at gmail.com>
937         
938         * configure.in:
939         Output the service directory in the configure summary
940
941         * dbus-1.pc.in:
942         Add session_bus_services_dir
943
944 2006-03-10  Ross Burton  <ross@openedhand.com>
945
946         * tools/dbus-print-message.c:
947         Add support for object paths and signatures.
948
949 2006-03-06  Sjoerd Simons <sjoerd@luon.net>
950
951         * bus/bus.c: (bus_context_reload_config): Flush the user database cache on
952         config reload.
953         * bus/dbus-daemon.1.in: Also note that SIGHUP flushes the user/group
954         information caches
955         * dbus/dbus-hash.c: (_dbus_hash_table_remove_all): 
956         * dbus/dbus-hash.h: Add function to remove all entries from a hash table
957         * dbus/dbus-userdb.c: (_dbus_user_database_flush):
958         * dbus/dbus-userdb.h: Add function to flush all user/group information
959         caches.
960
961 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
962
963         * qt/dbusidl2cpp.cpp:
964         * qt/Makefile.am: add the dbusidl2cpp tool, the replacement
965         for dcopidl2cpp, found in the KDE installations (or the more
966         modern kalyptus): generate Qt4 C++ code for the input XML
967         introspection. Currently no IDL parsing.
968
969 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
970
971         * test/qt/*: Update the self-tests.
972
973 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
974
975         * qt/*: 
976         * dbus/qdbus.h: Sync with KDE Subversion revision 516237. This
977         represents the first feature-complete version of the Qt4
978         bindings since I took ove maintainership.
979
980 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
981
982         * qt/Doxyfile: Adding a Doxyfile for the Qt4 bindings
983         dir. This is C++, so we can't use the DBus ones.
984
985 2006-03-02  John (J5) Palmieri  <johnp@redhat.com>
986
987         * python/dbus_bindings.pyx: Remove refrence to sys/cdefs.h
988         (Patch from Artem Kachitchkine <Artem.Kachitchkin at Sun.COM>)
989
990 2006-03-02  John (J5) Palmieri  <johnp@redhat.com>
991
992         * dbus/dbus-connection.c: 
993         (_dbus_connection_block_pending_call):
994         Check to see if our data has already been read off the connection
995         by another blocking pending call before we block in poll.
996         (check_for_reply_and_update_dispatch_unlocked):
997         Code taken from _dbus_connection_block_pending_call - checks for
998         an already read reply and updates the dispatch if there is one.
999
1000         * test/name-test/test-pending-call-dispatch.c:
1001         New test for making sure we don't get stuck polling a 
1002         dbus connection which has no data on the socket when
1003         blocking out of order on two or more pending calls.
1004
1005 2006-02-28  Thiago Macieira <thiago.macieira@trolltech.com>
1006
1007         * qt/Makefile.am: Patch by Sjoerd Simons. More .moc issues:
1008         make/automake don't detect that we're talking about the same
1009         .lo file if I specify the full path to the source files.
1010
1011 2006-02-26  Havoc Pennington  <hp@redhat.com>
1012
1013         * bus/dbus-daemon.1.in: improve the language in a couple spots I noticed
1014
1015         * dbus/dbus-bus.c (internal_bus_get): in the error message if the
1016         session bus variable is unset, suggest "man dbus-launch" and "man
1017         dbus-daemon" to figure out how to fix the problem
1018
1019 2006-02-25  Havoc Pennington  <hp@redhat.com>
1020
1021         * glib/dbus-glib-tool.c (usage): fix up the usage message, someone
1022         should make this thing use the new glib options parser
1023
1024 2006-02-25  Thiago Macieira <thiago.macieira@trolltech.com>
1025
1026         * qt/Makefile.am: Patch by Sjoerd Simons. Fix the path to the
1027         .lo files taking moc sources.
1028
1029 2006-02-25  Havoc Pennington  <hp@redhat.com>
1030
1031         * dbus/dbus.h, dbus/Makefile.am: add dbus-signature.h to dbus.h
1032         and install it as a public header
1033
1034 2006-02-24  John (J5) Palmieri  <johnp@redhat.com>
1035
1036         * Released 0.61
1037
1038 2006-02-24  John (J5) Palmieri  <johnp@redhat.com>
1039         
1040         * proxies.py: Fix the callchain
1041
1042 2006-02-24  John (J5) Palmieri <johnp@redhat.com>
1043         
1044         * patch from Sjoerd Simons <sjoerd at debian.org>:      
1045
1046         * dbus/dbus-sysdeps-util.c (_dbus_group_info_free): Moved to 
1047         dbus/dbus-sysdeps.c
1048
1049         * dbus/dbus-userdb.c (_dbus_group_info_free_allocated): Don't
1050         call _dbus_group_info_free_allocated which causes infinite loop,
1051         correctly call _dbus_group_info_free
1052
1053 2006-02-20  Thiago Macieira <thiago.macieira@trolltech.com>
1054
1055         * qt/qdbusinterface_p.h:
1056         * qt/qdbusinterface.cpp: Use the standard
1057         org.freedesktop.DBus.Method.NoReply annotation for the "async"
1058         calls instead of creating one for us.
1059
1060         * qt/qdbusconnection_p.h:
1061         * qt/qdbusintegrator.cpp: Remove debugging code.
1062
1063         * qt/qdbusintegrator.cpp:
1064         * qt/qdbusmessage.cpp:
1065         * qt/qdbusmessage_p.h:
1066         * qt/qdbusmessage.h: Change the behaviour of automatic
1067         reply-sending: now a reply is always sent, unless the caller
1068         didn't request one or if the user slot has already sent one.
1069
1070 2006-02-16  Robert McQueen  <robot101@debian.org>
1071
1072         * configure.in: Patch from Debian packages by Sjoerd Simons
1073         <sjoerd@debian.org> to add --with-qt-moc and --with-qt3-moc
1074         arguments so it's possible to build both bindings in the
1075         same tree.
1076
1077         * qt/Makefile.am: Fix truncated value so that make dist works.
1078
1079 2006-02-16  Robert McQueen  <robot101@debian.org>
1080
1081         * acinclude.m4, configure.in: Patch from Brad Hards
1082         <bradh@frogmouth.net> to avoid warnings from autoconf 1.9 by
1083         improving quoting, re-ordering a few checks, and a few other
1084         aesthetic tidy-ups.
1085
1086 2006-02-16  Robert McQueen  <robot101@debian.org>
1087
1088         * dbus/dbus-message.c (dbus_message_iter_get_fixed_array):
1089         Patch from Rob Taylor <rob.taylor@collabora.co.uk> to correct a bogus
1090         assertion that the next element to read from the iter is fixed in
1091         size. This is not the case when you are at the end of the iter,
1092         because the next element type is INVALID.
1093
1094         * dbus/dbus-string.c (_dbus_string_init_const_len): Correct a
1095         a bogus assert which means that you may not initialise a 0-length
1096         string unless you provide a non-NULL pointer. This prevented
1097         you from marshalling messages containing zero-length arrays in
1098         some cases.
1099
1100         * glib/dbus-gvalue.c (demarshal_collection_array): Another patch
1101         from Rob to correct bogus asserts when trying to demarshal an
1102         array and get_fixed_array got you 0 elements. Append nothing to
1103         the GArray in this case.
1104
1105         * test/glib/test-dbus-glib.c: Add a test case for round-tripping
1106         an empty array via the glib bindings. Without all of the above
1107         patches, this new test fails.
1108
1109 2006-02-16  Robert McQueen  <robot101@debian.org>
1110
1111         * glib/dbus-gmain.c: Make the previous commit compile.
1112
1113         * python/_dbus.py, python/matchrules.py: Patch from Ole Andre
1114         Ravnaas <ole.andre.ravnaas@collabora.co.uk> to allow you to
1115         specify sender_keyword="foo", path_keyword="bar" when adding
1116         a signal listener, so that you can bind to signals generically
1117         but still do something useful in your callback.
1118
1119         * python/dbus_bindings.pyx: Demarshal the byte type as unsigned
1120         chars so that they're not cast to chars and made negative. Thanks
1121         to Jakub Stachowski for reporting this and testing the fix.
1122
1123 2006-02-15  John (J5) Palmieri  <johnp@redhat.com>
1124
1125         * dbus/dbus-glib.h:
1126         * glib/dbus-gmain.h:
1127         (dbus_g_connection_open): new method for openning
1128         a connection to an arbitrary address in the glib bindings
1129
1130         * ChangeLog: checkin last entry which doesn't seem to be commited
1131
1132 2006-02-13  John (J5) Palmieri  <johnp@redhat.com>
1133
1134         * tools/dbus-launch.c: Fixed sh syntax output
1135
1136 2006-02-13  Robert McQueen  <robot101@debian.org>
1137
1138         * glib/dbus-binding-tool-glib.c, glib/dbus-gmain.c,
1139         glib/dbus-gsignature.c, glib/dbus-gtype-specialized.c,
1140         glib/dbus-gtype-specialized.h, glib/dbus-gvalue-utils.c,
1141         glib/dbus-gvalue-utils.h, glib/dbus-gvalue.c:
1142         Patch from Rob Taylor <rob.taylor@collabora.co.uk> to add a big
1143         missing piece of the glib bindings jigsaw puzzle. This modifies
1144         the existing specialised types to have N type parameters (rather
1145         than the current 1 or 2 for arrays and dictionaries respectively).
1146         You can then use this to get a glib type to represent any arbitrary
1147         D-Bus struct type using dbus_g_type_get_struct. The only
1148         implementation of these types is with GValueArrays as before,
1149         but it's now possible to store these in arrays, emit them in
1150         signals, etc.
1151
1152 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
1153
1154         * dbus/dbus-signature.c (dbus_signature_iter_recurse): Correctly
1155         deal with nested arrays (Bug #5823) Patch by Thiago Macieira 
1156         <thiago.macieira at trolltech.com>
1157
1158 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
1159
1160         * mono/doc/Makefile.am: Fix parallel make problem with mono-doc
1161         (Bug #4213) Patch from Doug Goldstein <cardoe at gentoo.org>
1162
1163 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
1164
1165         * bus/connection.c (bus_connections_expect_reply): Make
1166         pending reply limit not common to all connections (Bug #5416)
1167         Patch from Kimmo Hämäläinen <kimmo.hamalainen at nokia.com>
1168
1169 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
1170
1171         * tools/dbus-launch.c: Fixed csh syntax output (Bug #5720)
1172
1173 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
1174
1175         * gcj/Makefile.am: point to correct jar command (Bug #4529)
1176         patch from Doug Goldstein <cardoe at gentoo.org>
1177
1178 2006-02-09  Joe Shaw  <joeshaw@novell.com>
1179
1180         * mono/Arguments.cs: Fix a magic number in the mono bindings
1181         that doesn't work on 64 bit arches.  Patch from Peter Johanson.
1182
1183 2006-01-27  Robert McQueen  <robot101@debian.org>
1184
1185         * glib/dbus-binding-tool-glib.[ch]: Patch based on Ricardo Kekki's
1186         patch to use an annotation org.freedesktop.DBus.GLib.ClientCSymbol
1187         when generating the client-side methods, instead of overloading
1188         CSymbol which broke everything horribly. My apologies.
1189
1190 2006-01-27  Robert McQueen  <robot101@debian.org>
1191
1192         * glib/dbus-gtype-specialized.[ch], glib/dbus-gvalue-utils.c: Patch
1193         by me and Rob Taylor to add a simple_free function to D-Bus map
1194         and collection types, which allows those types which can be freed
1195         with a GDestroyNotify (such as GHashTables and GArrays, but not
1196         GPtrArrays) to be stored as the values in hashtables.
1197
1198         * test/glib/test-dbus-glib.c, test/glib/test-service-glib.{c,xml}:
1199         Patch by Rob Taylor to add nested dicts to the glib tests to check
1200         the above code works, and appears not to leak when called repeatedly.
1201
1202 2006-01-27  Robert McQueen  <robot101@debian.org>
1203
1204         * glib/dbus-gvalue.c (demarshal_valuearray): Patch from Rob Taylor
1205         to free a D-Bus allocated string with dbus_free () instead of
1206         g_free ().
1207
1208 2006-01-27  Iain Holmes  <iain@openedhand.com>
1209
1210         * glib/dbus-gproxy.c (dbus_g_proxy_dispose): Protect the dispose
1211         method from being called multiple times.
1212
1213 2006-01-19  Robert McQueen  <robot101@debian.org>
1214
1215         * glib/dbus-binding-tool-glib.c: Patch from Rob Taylor
1216         <rob.taylor@collabora.co.uk> to add support for generating bindings
1217         to arrays that are represented as GPtrArrays rather than GArrays (ie
1218         size-variable things, such as strings, objects, structs, etc).
1219
1220 2006-01-05  Robert McQueen  <robot101@debian.org>
1221
1222         * dbus/dbus-glib.h, glib/dbus-gproxy.c: Patch from Ricardo Kekki
1223         <ricardo.kekki@movial.fi> to make it possible to inherit from
1224         DBusGProxy, by splitting the DBusGProxy struct into a public part and
1225         a private part, and moving the setting of the DBusGProxyManager into a
1226         connection property, allowing proper GObject construction.
1227
1228 2006-01-05  Robert McQueen  <robot101@debian.org>
1229
1230         * glib/dbus-binding-tool-glib.c: Patch from Ricardo Kekki
1231         <ricardo.kekki@movial.fi> to make dbus-binding-tool heed C symbol name
1232         annotations when generating glib client bindings.
1233
1234 2005-12-19 John (J5) Palmieri  <johnp@redhat.com>
1235
1236         * dbus/dbus-shared.h: Call it shared constants instead of shared macros
1237
1238         * dbus/dbus-protocol.h: add DOxygen markup to quiet warnings
1239
1240 2005-12-19 John (J5) Palmieri  <johnp@redhat.com>
1241
1242         * dbus/dbus-shared.h: add DOxygen markup to quiet warnings
1243
1244 2005-12-19 John (J5) Palmieri  <johnp@redhat.com> 
1245
1246         * dbus/dbus-macros.h: correct DOxygen end of section (s/}@/@})
1247
1248 2005-12-19  Ross Burton  <ross@openedhand.com>
1249
1250         * doc/dbus-tutorial.xml:
1251         Document the Glib client-side bindings, and list all possible annotations.
1252
1253 2005-12-19  John (J5) Palmieri  <johnp@redhat.com>
1254
1255         * dbus/bus.c (dbus_bus_release_name): Add documentation
1256
1257 2005-12-06  Robert McQueen  <robot101@debian.org>
1258
1259         * python/service.py: s/sucessful/successful/ so we're allocating to
1260         and reading from the same variable. Oops.
1261
1262 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
1263
1264         * Released 0.60
1265
1266 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
1267
1268         * test/qt/Makefile.am: build from srcdir
1269
1270         * qt/qtconnection.cpp (requestName): Changed PROHIBIT_REPLACE to ALLOW_REPLACE
1271         Note - this code is wrong and needs to be fixed by the Qt binding
1272         developers.  The flags should be treated as bitfields and not enums.
1273
1274         * qt/qtconnection.h: Change ProhibitReplace to AllowReplace
1275
1276 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
1277
1278         * dbus/dbus-list.c (_dbus_list_insert_after_link, _dbus_list_insert_after, 
1279           link_after): remove #ifdef DBUS_BUILD_TESTS since we use these methods 
1280           in production code
1281
1282 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
1283
1284         * dbus/dbus-connection.c (dbus_connection_read_write): Add new
1285         method for getting messages off the bus in the absence of a
1286         mainloop.  This method is much like 
1287         dbus_connection_read_write_dispatch except it does not dispatch
1288         the messages to a registered filter function.  Instead it
1289         allows a developer to process messages by directly popping
1290         them off the bus.
1291
1292 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
1293
1294         * bus/desktop-file.c (parse_key_value): Ignore locales allowing 
1295         the parser to continue instead of returning error
1296         (bus_desktop_file_load): Do not free parser data when
1297         parse_section_start or parse_key_value fails because it was 
1298         already freed by parser_free (patch from Carlos Garcia Campos  
1299         <carlosgc at gnome.org>)
1300
1301 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
1302
1303         * dbus/dbus-auth.c, dbus/dbus-connection.c, dbus/dbus-keyring.c,
1304         dbus/dbus-server-debug-pipe.c, glib/dbus-binding-tool-glib.c
1305         glib/dbus-glib-tool.c, glib/dbus-gparser.c, glib/dbus-gproxy.c
1306         test/test-segfault.c, test/test-utils.c,
1307         test/glib/test-dbus-glib.c, tools/dbus-cleanup-sockets.c
1308         tools/dbus-launch.c, tools/dbus-tree-view.c, tools/dbus-viewer.c:
1309         Various cleanup of dead code and compiler warnings (patch from
1310         Kjartan Maraas <kmaraas at gnome.org>) 
1311
1312 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
1313
1314         * glib/dbus-gmain.c (connection_setup_add_watch): plugged a leak
1315         (patch from Carlos Garnacho Parro <carlosg at gnome.org>
1316
1317 2005-11-27  Robert McQueen  <robot101@debian.org>
1318
1319         * python/dbus_bindings.pyx: Repair my previous commit which reverted
1320         part of the preceding one. Oops. Merge patch by Johan Hedberg
1321         <johan.hedberg@nokia.com> to fix marshalling of 16-bit integer values
1322         on big-endian platforms.
1323
1324         * test/python/test-client.py: Add some 16-bit integers to the test
1325         values.
1326
1327 2005-11-27  Carlos Garcia Campos  <carlosgc@gnome.org>
1328
1329         * glib/dbus-gobject.c: Append a GValue instead of a basic type in
1330         method return message for property getters
1331
1332 2005-11-27  Robert McQueen  <robot101@debian.org>
1333
1334         * python/dbus_bindings.pyx: Fix a bug where doing a strict append
1335         with type v of an instance of dbus.Variant(foo, type='x') caused
1336         it to be boxed twice before sending over the bus.
1337
1338         * python/dbus_bindings.pyx, python/service.py,
1339         test/python/test-client.py: Update the constants for the new
1340         request_name flags, and update comments/test cases now that queueing
1341         is the default action.
1342
1343 2005-11-22  John (J5) Palmieri  <johnp@redhat.com>
1344
1345         * configure.in:
1346         - Change version to 0.60 for impending release
1347         - upped the sonames because of ABI and API breakage
1348
1349 2005-11-22  John (J5) Palmieri  <johnp@redhat.com>
1350
1351         * configure.in: Add test/name-test/Makefile to the generated
1352         Makefile list
1353
1354         * dbus/dbus-shared.h (#define DBUS_NAME_FLAG_ALLOW_REPLACEMENT):
1355         New flag which replaces DBUS_NAME_FLAG_PROHIBIT_REPLACEMENT
1356         (#define DBUS_NAME_FLAG_DO_NOT_QUEUE): New flag for specifying
1357         not to queue an ower if it can't be the primary owner
1358
1359         * bus/bus.h: Add new internal BusOwner struct
1360
1361         * bus/driver.c (bus_driver_handle_hello): Send flags (0 for default)
1362         to bus_registry_ensure and don't set the prohibit_replacement flag
1363         since they are now set per BusOwner and not per name.
1364         (bus_driver_handle_list_queued_owners): bus method (ListQueuedOwners) 
1365         that returns the list of connections in a name's connection queue
1366         
1367         * bus/services.c (struct BusService): remove prohibit_replacement field
1368         (struct BusOwner): new struct for keeping track of queued connections
1369         and their associated flags for the queue
1370         (struct BusRegistry): add a BusOwner memory pool
1371         (bus_registry_new): initialize the BusOwner memory pool
1372         (bus_registry_unref): free the BusOwner memory pool
1373         (_bus_service_find_owner_link): new internal method for
1374         searching the queue for a specific connection
1375         (bus_owner_set_flags): new method for adding setting the flags on a
1376         bus owner
1377         (bus_owner_new): new method that creates a BusOwner object from the
1378         pool and sets its flags
1379         (bus_owner_ref, bus_owner_unref): ref counting for BusOwner objects
1380         (bus_registry_ensure): Add the flags parameter
1381         (bus_registry_acquire_service): Switch from using raw connections to
1382         using the BusOwner struct
1383         Add new state machine for dealing with the new set of flags
1384         (bus_registry_set_service_context_table, struct OwnershipCancelData, 
1385         cancel_ownership, free_ownership_cancel_data, 
1386         add_cancel_ownership_to_transaction, struct OwnershipRestoreData, 
1387         restore_ownership, free_ownership_restore_data, 
1388         add_restore_ownership_to_transaction): Switch to using BusOwner 
1389         instead of raw connections
1390         (bus_service_add_owner): Add flags parameter
1391         Switch to using BusOwner instead of raw connections
1392         Add state machine for dealing with the new set of flags
1393         (bus_service_swap_owner): Swaps the first and second owners in the
1394         queue.  Used to make sure proper signals are sent when a service looses 
1395         or gains primary ownership.  We never insert an owner at the top of the
1396         queue.  Instead we insert it in the second position and then swap.
1397         (bus_service_remove_owner): Remove the owner from the queue sending
1398         out the NameLost and NameOwnerChanged signals if the we were the 
1399         primary owner
1400         (bus_service_get_primary_owners_connection): New method that extracts
1401         the connection from the primary owner
1402         (bus_service_get_primary_owner): Returns the BusOwner instead of the 
1403         connection
1404         (bus_service_get_allow_replacement): Changed from the old 
1405         bus_service_get_prohibit_replacement method.  Checks the flags of the 
1406         primary owner and returns if it can be replaced or not
1407         (bus_service_set_prohibit_replacement): removed
1408         (bus_service_has_owner): returns TRUE if and owner with
1409         the specified connection exists in the queue
1410         
1411         * dbus/dbus-bus.c (dbus_bus_connection_get_unique_name): New helper
1412         method that only compiles if tests are enabled.  Allows us to get the 
1413         unique name of a connection so we can check it against the queue when
1414         doing regression tests
1415
1416         * bus/activation.c (bus_activation_send_pending_auto_activate),
1417         bus/dispatch.c (bus_dispatch),  
1418         bus/driver.c (bus_driver_handle_get_service_owner, 
1419         bus_driver_handle_get_connection_unix_user, 
1420         bus_driver_handle_get_connection_unix_process_id,
1421         bus_driver_handle_get_connection_selinux_security_context),
1422         bus/signals.c (connection_is_primary_owner): 
1423         use bus_service_get_primary_owners_connection instead of
1424         bus_service_get_primary_owner
1425
1426         * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket, 
1427         _dbus_listen_unix_socket): Calculate the length of the socket
1428         path and use that instead of using a fixed length which was
1429         causing socket names to contain many trailing Nul bytes.
1430
1431         * dbus/dbus-glib-lowlevel.h, glib/dbus-gobject.c
1432         (dbus_g_method_get_sender): New method for extracting the sender 
1433         from a DBusGMethodInvocation
1434         (dbus_g_method_return_get_reply): changed name to 
1435         dbus_g_method_get_reply
1436         (dbus_g_method_return_send_reply): changed name to
1437         dbus_g_method_send reply
1438
1439         * doc/dbus-specification.xml: New docs that describe how the new
1440         queueing system works and talks about the changes to the how
1441         we specify socket names
1442
1443         * glib/examples/example-service.c, 
1444         glib/examples/example-signal-emitter.c,
1445         glib/examples/statemachine/statemachine-server.c:
1446         Changed the RequestName flags to the new system
1447
1448         * test/name-test/ (test-names.c, run-test.sh, Makefile.am): New
1449         regression test suite for testing various states of the new
1450         queueing system
1451         
1452 2005-11-15  Robert McQueen  <robot101@debian.org>
1453
1454         * dbus/dbus-glib-lowlevel.h, glib/dbus-gobject.c: Patch from Rob
1455         Taylor to add two methods, dbus_g_method_return_get_reply and
1456         dbus_g_method_return_send_reply, to allow you to get the reply
1457         message from a DBusGMethodInvocation, append arbitrary stuff to it,
1458         and send it. The GLib bindings can't marshal a return value of
1459         something like a(s) if the array is empty - ultimately they should be
1460         made to heed the signature of the out arguments as the Python bindings
1461         now can, but this is a workable interim solution which might have
1462         other applications.
1463
1464 2005-11-15  Robert McQueen  <robot101@debian.org>
1465
1466         * bus/driver.c, bus/services.c, bus/services.h: Add a ReleaseName
1467         method to org.freedesktop.DBus to release a bus name or give up
1468         waiting in the queue for it.
1469
1470         * dbus/dbus-bus.c, dbus/dbus-bus.h, dbus/dbus-shared.h: Add a
1471         dbus_bus_release_name method to send the ReleaseName method calls.
1472         Add constants for the return values to dbus/dbus-shared.h.
1473
1474         * doc/dbus-specification.xml: Document the new ReleaseName method
1475         in the specification.
1476
1477         * python/dbus_bindings.pyx: Add a low-level python binding for the
1478         release name method.
1479
1480         * python/exceptions.py, python/service.py: Make freeing BusName
1481         objects release the name. Add a NameExistsException, and fix a
1482         bug with creating UnknownMethodException.
1483
1484         * test/python/test-client.py: Add tests for freeing BusName
1485         objects causing names to be released.
1486
1487 2005-11-14  Robert McQueen  <robot101@debian.org>
1488
1489         * python/service.py: Include the traceback in the error reply when we
1490         send an exception over the bus. _BEST_ _PATCH_ _EVER_
1491
1492 2005-11-14  David Zeuthen  <davidz@redhat.com>
1493
1494         Patch from Timo Hoenig <thoenig@suse.de>.
1495
1496         * bus/bus.c: I've recently investigated why the automatic reload
1497         of configuration files does not work as expected.
1498
1499         Currently, reloading configuration files does only work when
1500         running dbus-daemon with --nodaemon.  If we are running as daemon
1501         we're hitting a dnotify bug once we fork the process.
1502
1503         We're initializing the dnotify fds before calling fork().  Once
1504         the child process forked it does still have the fds (and they
1505         still show up in /proc/`pidof dbus-daemon`/fd/) but we're not
1506         getting SIGIO as changes are made to the configuration files.
1507
1508         The attached patch moves the initialization of the dnotify fds to
1509         process_config_postinit().  This is safe for all current code
1510         paths and solves the dnotify disfunction.  If we're running
1511         dbus-daemon as daemon the fds for dnotify are now being
1512         initialized after fork() for the child process.
1513
1514         * configure.in: The current configure.in check for dnotify probes
1515         'x$target_os' for being 'xlinux-gnu'.  I've changed the check to
1516         match for 'xlinux', too. Additionally I have adapted the configure
1517         option's style to match with the others.
1518
1519 2005-11-14  Robert McQueen  <robot101@debian.org>
1520
1521         * python/decorators.py, python/service.py: Add a new argument to the
1522         dbus.service.method decorator called sender_keyword, which if set,
1523         specifies the name of an argument which will be provided the bus
1524         name of the method caller.
1525
1526         * test/python/test-client.py, test/python/test-service.py: Add a
1527         method and test to check the sender_keyword functionality.
1528
1529 2005-11-07  John (J5) Palmieri  <johnp@redhat.com>
1530
1531         * bus/driver.c (bus_driver_handle_reload_config): Make sure we send an 
1532         empty reply so blocking calls don't block forever (Patch from Sjoerd 
1533         Simons <sjoerd at luon.net>)
1534
1535         * AUTHORS: Add Robert McQueen for his work on the Python
1536         Bindings and other parts of D-Bus
1537
1538 2005-11-07  Robert McQueen  <robot101@debian.org>
1539
1540         * python/decorators.py: Change emit_signal function to use the
1541         signature annotation of the signal when marhsalling the arguments from
1542         the service. Fix a bug where the code checking signature length
1543         against argument length referenced the wrong variable.
1544
1545         * python/introspect_parser.py: Avoid adding the type signature of
1546         signal arguments to any methods which occur after them in the
1547         introspection data (!) by making the parser a little more careful
1548         about its current state.
1549
1550         * python/service.py: Remove debug prints from last commit (again :D).
1551
1552         * test/python/test-client.py, test/python/test-service.py: Add test
1553         signals with signature decorators to test the strict marshalling code
1554         gives errors at the right time. Could do with checking the signals
1555         actually get emitted too, given that the test does nothing with
1556         signals at the moment...
1557
1558 2005-11-07  Robert McQueen  <robot101@debian.org>
1559
1560         * python/_dbus.py: Add WeakReferenceDictionary cache of dbus.Bus
1561         instances to stop madness of creating new instances representing
1562         the same bus connection all the time, rendering any tracking of
1563         match rules and bus names quite meaningless. Caught a bug where
1564         the private argument to SessionBus() and friends was being passed
1565         in as use_default_mainloop by mistake. Still some problems with
1566         multiple dbus_binding.Connection instances representing the same
1567         low-level connection (eg when you use both SessionBus() and
1568         StarterBus() in same process), but it's a lot better now than it
1569         was.
1570
1571         * python/dbus_bindings.pyx: Add constants with the return values
1572         for bus_request_name().
1573
1574         * python/service.py: Store bus name instances in a per-dbus.Bus cache
1575         and retrieve the same instances for the same name, so deletion can be
1576         done with refcounting. Also now throws some kind of error if you
1577         don't actually get the name you requested, unlike previously...
1578
1579         * test/python/test-client.py: Add tests for instance caching of buses
1580         and bus name objects.
1581
1582 2005-11-04  Robert McQueen  <robot101@debian.org>
1583
1584         * python/dbus_bindings.pyx, test/python/test-client.py: Fix
1585         marshalling of boolean values. Add some booleans to the values in
1586         the test client.
1587
1588         * python/decorators.py, python/service.py: Add an 'async_callbacks'
1589         argument to the dbus.service.method decorator, which allows you to
1590         name arguments to take two callback functions for replying with
1591         return values or an exception.
1592
1593         * test/python/test-client.py, test/python/test-service.py: Add test
1594         case using asynchronous method reply functions, both return values and
1595         errors, and from within both the function itself and from a mainloop
1596         callback.
1597
1598         * python/decorators.py, python/service.py: Perform checking that the
1599         number of method/signal arguments matches the number of types in the
1600         signature at class loading time, not when you first introspect the
1601         class.
1602
1603         * python/service.py: Remove debug print left by the last commit.
1604
1605 2005-11-03  Robert McQueen  <robot101@debian.org>
1606
1607         * python/service.py: Heavy refactoring of method invocation, with
1608         hopefully no effect on functionality. Nuked _dispatch_dbus_method_call
1609         in favour of a new _message_cb that uses seperate functions for
1610         looking up the method to call, marshalling the return values, and
1611         sending exceptions as errors, and is easier to follow as a
1612         consequence.  Fixes some corner cases about returning things that
1613         don't match your declared out_signature, allows exceptions to define
1614         _dbus_error_name and have it be sent over the bus as the error name,
1615         and paves the way for cool stuff like heeding the message no reply
1616         flag, asynchronous method implementations, informing the method of the
1617         sender, and including backtraces in the error messages.
1618
1619         * test/python/test-client.py: Catch and print exceptions thrown in the
1620         async callback tests, rather than passing them to the low-level
1621         bindings to be ignored in a noisy and frustrating manner.
1622
1623 2005-11-03  Robert McQueen  <robot101@debian.org>
1624
1625         * python/_dbus.py, python/proxies.py, python/service.py: Add __repr__
1626         functions to dbus.Bus, dbus.service.BusName and dbus.service.Object,
1627         tweak others to be consistent.
1628
1629         * test/python/test-client.py: Tweak output of testInheritance.
1630
1631 2005-10-29  Robert McQueen  <robot101@debian.org>
1632
1633         * python/service.py: Major changes to allow multiple inheritance
1634         from classes that define D-Bus interfaces:
1635         
1636          1. Create a new Interface class which is the parent class of
1637             Object, and make the ObjectType metaclass into InterfaceType.
1638         
1639          2. Patch written with Rob Taylor to replace use of method_vtable
1640             with code that walks the class's __MRO__ (method resolution order)
1641             to behave like Python does when invoking methods and allow
1642             overriding as you'd expect. Code is quite tricky because
1643             we have to find two methods, the one to invoke which has the
1644             right name and isn't decorated with the /wrong/ interface,
1645             and the one to pick up the signatures from which is decorated
1646             with the right interface.
1647         
1648             The same caveats apply as to normal multiple inheritance -
1649             this has undefined behaviour if you try and inherit from two
1650             classes that define a method with the same name but are
1651             decorated with different interfaces. You should decorate
1652             your overriding method with the interface you want.
1653         
1654          3. Replace grungy introspection XML generation code in the metaclass
1655             with dictionaries that cope correctly with multiple inheritance
1656             and the overriding of methods. This also uses the signature
1657             decorations to provide correct introspection data, including
1658             the debut appearance of the types of your return values. :D
1659
1660         * test/python/test-client.py, test/python/test-service.py: Add a test
1661         case to try invoking an method that overrides one inherited from a
1662         D-Bus interface class.
1663
1664 2005-10-29  Robert McQueen  <robot101@debian.org>
1665
1666         * python/dbus_bindings.pyx: Tweak 'raise AssertionError' to assert().
1667         Add checking for the end of struct character when marshalling a
1668         struct in MessageIter.append_strict.
1669
1670         * python/examples/example-service.py,
1671         python/examples/gconf-proxy-service.py,
1672         python/examples/gconf-proxy-service2.py: Update to use gobject
1673         mainloop directly rather than appearing to depend on gtk.
1674
1675         * python/test/test-client.py, python/test/test-server.py: Remove
1676         obsolete and broken test scripts for old bindings. We have up to date
1677         and working tests in test/python/.
1678
1679 2005-10-29  Robert McQueen  <robot101@debian.org>
1680
1681         * python/decorators.py: Add optional arguments to the method and
1682         signal decorators to allow you to specify the signature of arguments
1683         and return values. Preserve the doc strings of signal functions in the
1684         decorated version, for pydoc and friends.
1685
1686         * python/dbus_bindings.pyx, python/proxies.py: Replace the
1687         parse_signature_block function with an iterable dbus.Signature()
1688         type. Fix a bug in MessageIter.append_strict where you could append
1689         anything by claiming it was a string.
1690
1691         * python/service.py: Use the out_signature decoration on methods to
1692         marshal return values, meaning you no longer require dbus.Array()
1693         or dbus.Dictionary() to indicate the type when returning empty
1694         arrays or dictionaries. Fix a bug where exceptions which are defined
1695         in __main__ are not turned into error replies.
1696
1697         * test/python/test-client.py, test/python/test-service.py: Add test
1698         for correct marshalling of return values according to out_signature.
1699         Fix a bug in the async call test where the error_handler is missing a
1700         self argument.
1701
1702 2005-10-29  Robert McQueen  <robot101@debian.org>
1703
1704         * glib/Makefile.am, glib/examples/Makefile.am,
1705         glib/examples/statemachine/Makefile.am: Merge patch from Ubuntu by
1706         Daniel Stone to replace explicit calls to libtool with $(LIBTOOL).
1707
1708         * test/python/.cvsignore: Add run-with-tmp-session-bus.conf.
1709
1710         * tools/dbus-monitor.1, tools/dbus-monitor.c: Merge dbus-monitor patch
1711         from Ubuntu by Daniel Silverstone to allow specifying match rules on
1712         the command line.
1713
1714 2005-10-27  Ross Burton  <ross@openedhand.com>
1715
1716         * dbus/dbus-marshal-header.c:
1717         Remove dead code.
1718
1719         * glib/dbus-gobject.c:
1720         Stop compiler warning.
1721
1722 2005-10-25  Ross Burton  <ross@openedhand.com>
1723
1724         * dbus/dbus-auth.c:
1725         * dbus/dbus-server-unix.c:
1726         * dbus/dbus-transport-unix.c:
1727         * glib/dbus-gmain.c:
1728         * glib/dbus-gobject.c:
1729         Add some const keywords.
1730
1731 2005-10-25  Ross Burton  <ross@openedhand.com>
1732
1733         * doc/dbus-specification.xml:
1734         Document the NoReply annotation.
1735
1736         * glib/dbus-binding-tool-glib.h:
1737         * glib/dbus-binding-tool-glib.c:
1738         Respect the NoReply annotation.
1739
1740 2005-10-24  Robert McQueen <robot101@debian.org>
1741
1742         * python/dbus_bindings.pyx (String, MessageIter): make D-Bus strings
1743         derive from unicode instead of str, and encode/decode UTF-8 when
1744         marshalling/unmarshalling bus messages
1745
1746         * python/introspect_parser.py: encode introspection data as UTF-8
1747         before passing the buffer into libxml2
1748
1749         * test/python/test-client.py: add unicode test strings
1750
1751         * test/data/valid-service-files/.cvsignore, test/python/.cvsignore:
1752         ignore generated python test files
1753
1754 2005-10-17  John (J5) Palmieri  <johnp@redhat.com>
1755
1756         * glib/dbus-gvalue-utils.c (hash_free_from_gtype): handle gdouble
1757         and G_TYPE_VALUE_ARRAY (DBUS_TYPE_STRUCT)
1758         (gvalue_from_hash_value, hash_value_from_gvalue): handle gdouble
1759
1760         * glib/dbus-gvalue.c (dbus_gvalue_to_signature): add missing
1761         DBUS_STRUCT_BEGIN_CHAR and DBUS_STRUCT_END_CHAR charaters
1762         when constructing struct signatures
1763
1764         * python/_dbus.py (Bus): handle private connections using the
1765         private keyword in the constructor. defaults to private=False
1766         (Bus::close): new method to close a connection to the bus
1767
1768         * python/dbus_bindings.pyx (Connection::close): renamed method
1769         was previously called disconnect
1770         (bus_get): now supports getting a private connection
1771
1772         * python/proxies.py (ProxyMethod::__call__): check if ignore_reply
1773         keyword is set to True.  if it is, execute the method without waiting
1774         for a reply
1775         (ProxyObject::_introspect_execute_queue): new method for executing
1776         all the pending methods that were waiting for the introspect to
1777         finish.  this is called when introspect either succeeds or fails
1778         (ProxyObject::_introspect_error_handler): call queued methods
1779
1780 2005-10-14  John (J5) Palmieri  <johnp@redhat.com>
1781
1782         * python/dbus_bindings.pyx (MessageIter::append_strict): check for
1783         STRUCT_BEGIN not TYPE_STRUCT in indicate we are marshalling a struct
1784
1785         * python/service.py (Object::_message_cb): handle exceptions correctly
1786         by sending them over the wire to the calling app.  This makes sure
1787         the client returns immediately instead of waiting the 15 seconds to
1788         timeout.
1789
1790         * test/python/test-client.py (TestDBusBindings::testBenchmarkIntrospect): 
1791         Add a test to benchmark how long it takes to introspect a service and 
1792         call a method which returns a large element (pretty fast)
1793
1794         * test/python/test-service.py (TestObject::GetComplexArray): new test 
1795         method which pushes a lot of data
1796
1797 2005-10-13  John (J5) Palmieri  <johnp@redhat.com>
1798
1799         * python/service.py(ObjectType::_reflect_on_signal, _reflect_on_method):        
1800         reclaim memory outside of the loop and use del istead of just setting
1801         the key to None
1802
1803 2005-10-13  John (J5) Palmieri  <johnp@redhat.com>
1804
1805         * python/service.py (ObjectType::_reflect_on_signal): Always close
1806         signal tag even when there are no arguments
1807
1808 2005-10-13  John (J5) Palmieri  <johnp@redhat.com>
1809
1810         * configure.in: Set mono, mono-docs and Qt3 to default
1811         to no instead of auto when building.  These bindings do not
1812         have full time maintainers and will not be supported for the
1813         1.0 release.
1814
1815 2005-10-12  John (J5) Palmieri  <johnp@redhat.com>
1816
1817         patches from Michael Krivoruchko <misha at sun.com>: 
1818         
1819         * dbus/dbus-connection.c (_dbus_connection_queue_received_message_link,
1820         _dbus_connection_message_sent, 
1821         _dbus_connection_send_preallocated_unlocked_no_update, 
1822         _dbus_connection_pop_message_link_unlocked): handle the case when path 
1823         is NULL when calling _dbus_verbose
1824
1825         * configure.in: check for functions getpeerucred and getpeereid
1826
1827         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): provides 
1828         support of auth EXTERNAL on Solaris 10+ (getpeerucred), FreeBSD 4.6+, 
1829         OpenBSD 3.0+ and FreeBSD 5.0+ as well as MacOSX 10.2+ (getpeereid). 
1830         Patch was only tested on Solaris 10 x86 so it might be issues
1831         with other platforms (i.e. BSDs and MacOSX)
1832         
1833
1834 2005-10-05  John (J5) Palmieri  <johnp@redhat.com>
1835
1836         * glib/dbus-gvalue.c (marshal_variant): call _dbus_gvalue_marshal 
1837         instead of marshal basic so we can handle recursive types in a variant
1838
1839         * test/glib/test-dbus-glib.c: Add test for marshaling recurive types
1840         in variants
1841
1842         * test/glib/test-service-glib.c, test-service-glib.xml
1843         (my_object_echo_variant [EchoVariant], 
1844         my_object_process_variant_of_array_of_ints123
1845         [ProcessVariantOfArrayOfInts123]): 
1846         Add two test methods
1847
1848         * python/introspect_parser.py: New module for parsing introspect
1849         data.
1850
1851         * python/dbus_bindings.pyx:
1852         (various places): when throwing errors fix to use errormsg instead 
1853         of message local variable because Pyrex can get confused with other 
1854         message variables (initial patch by Robert McQueen 
1855         <robert.mcqueen at collabora.co.uk>)
1856         (MessageIter::parse_signature_block): new method for getting the next
1857         block in a signiture.
1858         (MessageIter::append_strict): new method for appending values strictly
1859         using the passed in signature instead of guessing at the type
1860         (MessageItter:: append_dict, append_struct, append_array): use 
1861         signatures to marshal children if the signature is available
1862         
1863         * python/exceptions.py (IntrospectionParserException): new exception
1864
1865         * python/proxies.py (ProxyMethod::__call__): Marshal args with 
1866         introspected signatures if available, else we fall back to the
1867         old way of doing things.
1868         (ProxyObject::_introspect_reply_handler ): parse introspection data
1869         
1870         * python/service.py (ObjectType::_reflect_on_method): Properly
1871         terminate <method> if there are no args in the reflection data
1872
1873         * test/python/test-client.py: add tests for talking with the GLib
1874         test server.  This gives us better coverage for introspection since
1875         python to python will always generate arguments as variants.  It also
1876         allows us to test the robustness of the GLib bindings and interlanguage
1877         communications.
1878
1879         
1880 2005-10-03  John (J5) Palmieri  <johnp@redhat.com>
1881
1882         * bus/driver.c (bus_driver_handle_introspect): Add signals
1883         to the introspect data. (patch from Daniel P. Berrange 
1884         <dan at berrange.com>)
1885
1886         * bus/dispatch.c (check_existent_ping): Add testcase for Ping
1887         
1888         * dbus/dbus-connection.c (_dbus_connection_peer_filter,
1889         _dbus_connection_run_builtin_filters): Changed these to
1890         be unlock_no_update functions and call 
1891         _dbus_connection_send_unlocked_no_update instead of
1892         dbus_connection_send to avoid locking errors.
1893         
1894         * doc/TODO: Removed the make Ping test TODO
1895         
1896 2005-09-26  John (J5) Palmieri  <johnp@redhat.com>
1897
1898         * dbus/Python.pyx: Fixed memory leaks when throwing errors.
1899         We now copy the message from a DBusError and then free 
1900         the error object befor throwing the error
1901
1902         * glib/dbus-glib-tool.c: removed extra comma at the end of the
1903         DBusBindingOutputMode enum which was causing a warning.
1904         #include <time.h> so using time_t is explicitly defined
1905
1906 2005-09-26  John (J5) Palmieri  <johnp@redhat.com>
1907
1908         * Integrate patches from Lennart Poettering <mzsqb at 0pointer.de>:
1909         - dbus/dbus-bus.c
1910         (internal_bus_get): new method that take over the heavy lifting
1911         of dbus_bus_get and adds the ability to get a private connection
1912         to the bus
1913         (dbus_bus_get): wrapper to internal_bus_get that provides the same
1914         interface as in previous versions
1915         (dbus_bus_get_private): new method that is a wrapper to 
1916         internal_bus_get to get a private connection to the bus
1917
1918         - dbus/dbus-bus.h
1919         (dbus_bus_get_private): add as a public libdbus interface
1920
1921         - dbus-1.pc.in: output system_bus_default_address and 
1922         sysconfdir variables so apps can use them when compiling
1923
1924 2005-09-23  Harald Fernengel  <harry@kdevelop.org>
1925         * dbus/qt: New Qt bindings
1926
1927 2005-09-12  Waldo Bastian  <bastian@kde.org>
1928
1929         * dbus/dbus-marshal-validate.c,
1930         doc/dbus-specification.xml, test/Makefile.am,
1931         test/test-names.c: allow hyphens in bus names.
1932
1933 2005-09-11  Mark McLoughlin  <mark@skynet.ie>
1934
1935         * test/data/auth/fallback.auth-script: we don't
1936         retry the EXTERNAL method when we know its going
1937         to fail anymore.
1938
1939 2005-09-11  Mark McLoughlin  <mark@skynet.ie>
1940
1941         * dbus/dbus-connection-internal.h: rename
1942         (add|remove|toggle)_(watch|timeout) to unlocked()
1943         
1944         * dbus/dbus-connection.c: ditto.
1945         
1946         * dbus/dbus-timeout.c, dbus/dbus-transport-unix.c:
1947         Update some callers for the renaming.
1948
1949 2005-09-10  Mark McLoughlin  <mark@skynet.ie>
1950
1951         * dbus/dbus-auth.c: (record_mechanisms): don't
1952         retry the first auth mechanism because we know
1953         we're just going to get rejected again.
1954         
1955         * dbus/dbus-keyring.c: (_dbus_keyring_reload):
1956         Fix thinko ... and what a nasty little bugger to
1957         track down you were ...
1958
1959         * dbus/dbus-connection.c:
1960         (_dbus_connection_add_watch),
1961         (_dbus_connection_remove_watch): add note about
1962         these needing the connection to be locked.
1963         (_dbus_connection_get_dispatch_status_unlocked):
1964         set status to DATA_REMAINS when we queue the
1965         disconnected message.
1966         
1967         * bus/dispatch.c:
1968         (bus_dispatch): fix warning.
1969         (check_existent_service_no_auto_start):
1970         Expect ChildSignaled error too.
1971         (check_existent_hello_from_self): fix another
1972         couple of warnings.
1973         
1974 2005-09-08  Joe Shaw  <joeshaw@novell.com>
1975
1976         Patches from James Willcox <snorp@snorp.net>
1977
1978         * mono/Makefile.am: Add Int16.cs and UInt16.cs
1979
1980         * mono/DBusType/Array.cs: Handle multidimensional arrays, and
1981         support array "out" parameters.
1982
1983         * mono/DBusType/Int16.cs, mono/DBusType/UInt16.cs: New files,
1984         for 16-bit int support.
1985
1986 2005-09-06  John (J5) Palmieri  <johnp@redhat.com>
1987
1988         * Released 0.50
1989
1990         * Patch from Steve Grubb:
1991         - bus/activation.c (bus_activation_service_reload_test): clean up
1992         some indentation
1993         - dbus/dbus-keyring.c (_dbus_keyring_reload): fix conditional 
1994         - dbus/dbus-message-factory.c (generate_special): fix a couple of
1995         buffer overflows in the test suite.  This is non critical because
1996         it can not be exploited and this code is only run when doing a 
1997         make check.
1998
1999         * Patch from Yaakov Selkowitz: Build fixes for Cygwin
2000         - configure.in: Don't check and link against kdecore, only qt headers
2001         - dbus/Makefile.am: Add -no-undefined to libdbus_1_la_LDFLAGS
2002         - gcj/org/freedesktop/dbus/Makefile.am:
2003         add libdbus_gcj_1_la_LDFLAGS = -no-undefined
2004         - glib/Makefile.am: Add -no-undefined to libdbus_glib_1_la_LDFLAGS
2005         and $(DBUS_GLIB_LIBS) to dbus_binding_tool_LDADD
2006         - qt/Makefile.am: Add -no-undefined to libdbus_qt_1_la_LDFLAGS
2007         - tools/Makefile.am: Add platform extentions to binaries 
2008         (i.e. .exe on windows)
2009
2010         * configure.in: 
2011         - Make it so if no suitable version of python is found we only 
2012         disable building python instead of exiting the configure script
2013         - Require version 2.4 of glib for glib bindings
2014         - Up version to 0.50
2015
2016         * python/__init__.py: Sync version with libdbus to (0,50,0)
2017         
2018 2005-09-05  Olivier Andrieu  <oliv__a@users.sourceforge.net>
2019
2020         * dbus/dbus-object-tree.c (find_subtree_recurse):
2021         a couple of optimizations (bug #710):
2022         - do a binary search in the tree
2023         - insert a new child at the right place directly, no need for
2024           qsort anymore
2025         - do the "double alloc" thing when allocating children
2026
2027 2005-08-31  John (J5) Palmieri  <johnp@redhat.com>
2028
2029         * python/Makefile.am: Break on pyrexc errors instead of ignoring them
2030
2031         * python/dbus_bindings.pyx: Memory management foo
2032         (global): remove hacky _user_data_references global list
2033         (GIL_safe_cunregister_function_handler): userdata now stuffed into
2034         tuples. Unref user_data
2035         (GIL_safe_cmessage_function_handler): userdata now stuffed into tuples
2036         (Connection::__del__): Remove and replace with __dealloc__ method
2037         (Connection::add_filter): Stuff user_data into a tuple.  Use Py_INCREF
2038         to keep tuple from being deallocated instead of the global var hack
2039         (Connection::register_object_path): Stuff user_data into a tuple.
2040         Use Py_INCREF to keep tuple from being deallocated instead of the 
2041         global var hack
2042         (Connection::register_fallback): Stuff user_data into a tuple.
2043         Use Py_INCREF to keep tuple from being deallocated instead of the 
2044         global var hack
2045         (GIL_safe_pending_call_notification): Don't unref the message
2046         because it gets unreffed when going out of scope.  Py_XDECREF
2047         the user_data
2048         (PendingCall::__del__): Remove and replace with __dealloc__ method
2049         (PendingCall::set_notify): ref the pending call because we will
2050         need it to stick around for when the notify callback gets called
2051         (Message::__del__): Remove and replace with __dealloc__ method
2052
2053         * python/dbus_glib_bindings.pyx (init_gthreads): Changed to 
2054         gthreads_init to match up with the dbus call
2055
2056         * python/glib.py (init_threads): Changed to threads_init to match
2057         up with gobject.threads_init().  init_threads is kept for backwards
2058         compat but will most likely be deprecated in the future
2059
2060         * test/python/test-client.py: 
2061         - revamp to use Python's unittest functionality
2062         - add async call tests
2063         - setup threads in glib and dbus so we make sure locks are working
2064         
2065 2005-08-30  John (J5) Palmieri  <johnp@redhat.com>
2066
2067         * python/dbus_bindings.pyx 
2068         (_pending_call_notification, cunregister_function_handler, 
2069         cmessage_function_handler): All callback functions have been rearranged 
2070         to workaround a bug in Pyrex when working with the GIL which is Python's 
2071         global lock when dealing with threads.  They have been split into
2072         a wrapper function (which assumes the name of the old function) and
2073         a _GIL_safe_<function name> function which contains the functionality
2074         of the old function.  This ensures that Pyrex does not write code
2075         the lock is released.
2076         
2077
2078 2005-08-30  John (J5) Palmieri  <johnp@redhat.com>
2079
2080         * python/dbus_bindings.pyx (_pending_call_notification): Obtain the
2081         GIL global lock when calling back into Python
2082
2083 2005-08-29  John (J5) Palmieri  <johnp@redhat.com>
2084
2085         * Release 0.36.2
2086
2087         * Add Havoc's patch that never got applied to HEAD (Bug #2436):
2088
2089         * bus/policy.c (bus_policy_allow_user): change default "user is
2090         allowed" to be "user has same uid as the bus itself"; any
2091         allow/deny rules will override.
2092
2093         * bus/session.conf.in: don't allow all users, since now by default
2094         the user that ran the bus can connect.
2095
2096 2005-08-26  Colin Walters  <walters@verbum.org>
2097
2098         * tools/dbus-print-message.c (print_message): Flush stdout
2099         after printing a message, so that redirecting to a file, then
2100         hitting Ctrl-C works.
2101
2102 2005-08-25  John (J5) Palmieri  <johnp@redhat.com>
2103
2104         * python/dbus_bindings.pyx: Tracked down a major memleak and fixed it
2105         (EmptyMessage): new class that subclasses Message.  This is a workaround
2106         to a Pyrex bug that fails to call __del__ when the Message object goes out
2107         of scope.  For some reason subclassing Message fixes this bug
2108         (Bus::send_with_reply_and_block): use EmptyMessage instead of Message
2109         - s/Message(_create=0)/EmptyMessage everywhere else
2110         
2111         * test/python/test-{server|client}.py: add the python/.libs directory
2112         to the lookup path so dbus_bindings and dbus_glib_bindings don't
2113         get picked up from the system
2114
2115 2005-08-25  Colin Walters  <walters@verbum.org>
2116
2117         * glib/dbus-gproxy.c (dbus_g_proxy_call): Doc update, thanks
2118         to Ryan Lortie for the suggestion.
2119
2120 2005-08-24  John (J5) Palmieri  <johnp@redhat.com>
2121
2122         * test/python: Add python regression test
2123
2124         * configure.in: Add test/python/Makefile
2125
2126         * test/Makefile.am: Add the python directory to SUBDIRS
2127
2128 2005-08-24  John (J5) Palmieri  <johnp@redhat.com>
2129
2130         * Release 0.36.1
2131
2132         * python/_dbus.py: 
2133         (Interface::connect_to_signal): propigate keywords for match on args
2134         (Bus::add_signal_receiver): Fix typo s/dbus_inteface/dbus_interface
2135
2136         * python/proxies.py (ProxyObject::connect_to_signal):
2137         propigate keywords for match on args
2138
2139         * Makefile.am: point everything to pyexecdir since python borks
2140         on multilib
2141
2142 2005-08-23  John (J5) Palmieri  <johnp@redhat.com>
2143
2144         * Release 0.36
2145
2146 2005-08-23  Colin Walters  <walters@verbum.org>
2147
2148         * test/glib/Makefile.am: Don't multiply-define EXTRA_DIST.
2149
2150 2005-08-23  John (J5) Palmieri  <johnp@redhat.com>
2151
2152         * python/dbus_glib_bindings.pyx: reorder imports and c definitions
2153         to fix some wranings. We now use dbus_bindings.DBusConnection instead
2154         of defining DBusConnection ourselves.
2155
2156 2005-08-18  John (J5) Palmieri  <johnp@redhat.com>
2157
2158         * python/dbus.pth: New path file to fix up problems when installing
2159         c libraries to lib64 and python files to lib.
2160
2161         * python/Makefile.am: install dbus.pth in the correct spot
2162
2163 2005-08-17  John (J5) Palmieri  <johnp@redhat.com>
2164         * ChangeLog: clean up my last entry a bit
2165
2166         * doc/introspect.xsl: New stylesheet for converting introspection data
2167         into browser renderable xhtml. Contributed by Lennart Poettering.
2168
2169         * doc/introspect.dtd: Fixups in the introspect format from Lennart
2170         Poettering.
2171
2172         * doc/dbus-tutorial.xml: 
2173         - Add Colin Walter to the Authors section for authoring the GLib
2174         section
2175         - Add descriptions of the new signature and type functionality
2176         in the Python complex type mapping section
2177         - Add a sidenote on the new args matching functionality in 
2178         the Python bindings
2179         - Fixed up some of the examples to use the gobject.MainLoop
2180         instead of gtk.main
2181         
2182         * python/_dbus.py:
2183         (Bus::_create_args_dict): New. Converts a hash of arg matches
2184         to a more useable format
2185         (Bus::add_signal_receiver): add a **keywords parameter for catching
2186         arg match parameters
2187         (Bus::remove_signal_receiver): add a **keywords parameter for catching
2188         arg match parameters
2189         
2190         * python/matchrules.py:
2191         (MatchTree::exec_matches): Check for arg matches
2192         (SignalMatchRule::add_args_match): New method
2193         (SignalMatchRule::execute): Added args_list parameter as an optimization
2194         so we don't have to marshal the args more than once
2195         (SignalMatchRule::match_args_from_list): New method that checks to see
2196         if the rule's arg matches match an argument list.  Only arguments
2197         set in the rule are checked.
2198         (SignalMatchRule::match_args_from_rule): New method that checks to see
2199         if the rule's arg matches match another rule's.  All args have to match
2200         in order for this method to return true.  If either rule has more args
2201         then it is not a match.
2202         (SignalMatchRule::is_match): Add args match
2203         (SignalMatchRule::repr): Add args to the final output if they exist
2204
2205 2005-08-17  Ross Burton  <ross@burtonini.com>
2206
2207         * glib/dbus-gproxy.c:
2208         (dbus_g_proxy_call_no_reply): unref the message once sent.
2209         (dbus_g_proxy_call): protect against NULL proxy.
2210
2211 2005-08-16  John (J5) Palmieri  <johnp@redhat.com>
2212
2213         * python/__init__.py: Version updated (0, 43, 0)
2214         
2215         * python/dbus_bindings.pyx: 
2216         - Fixed type objects to have self passed into __init__
2217         - Added the Variant type
2218         - Add the ability to specify types or signatures for Array, Variant 
2219         and Dictionary
2220         (Connection::send_with_reply_handlers): return a PendingCall object
2221         (_pending_call_notification): handle the case when an error is returned 
2222         without an error message in the body
2223         (MessageIter::get_boolean): return True or False instead of an integer
2224         (MessageIter::python_value_to_dbus_sig): add direct checking of types 
2225         and add checks for objects with embeded signatures or types (Array, 
2226         Variant and Dictionary)
2227         (MessageIter::append_byte): handle case when the value is a dbus.Byte
2228         (MessageIter::append_dict): handle embeded types or signatures
2229         (MessageIter::append_array): handle embeded types or signatures
2230         (MessageIter::append_variant): new method
2231         
2232         * python/proxies.py:
2233         (DeferedMethod): New. Dummy executable object used when queuing calls 
2234         blocking on introspection data
2235         (ProxyMethod::__call__): add the timeout keyword for specifying longer 
2236         or shorter timeouts for method calls
2237         (ProxyObject): Add first pass at an introspection state machine
2238         (ProxyObject::__init__): Add introspect keyword for turing off an on 
2239         introspection. 
2240         (ProxyObject::_Introspect): Internal Introspect call that bypasses 
2241         the usual mechanisms for sending messages.  This is to avoid a deadlock
2242         where the Intospect call would be queued waiting for the Introspect 
2243         call to finish ;-)
2244         (ProxyObject::_introspect_reply_handler): New.  This method is called 
2245         when introspection returns with no error
2246         (ProxyObject::_introspect_error_handler): New.  This method is called 
2247         when introspection encounters an error
2248         (ProxyObject::__getattr__): Code to handle different introspection 
2249         states.  Queue async calls or block blocking calls if we are 
2250         introspecting.  Pass through as normal if we are not or are done with 
2251         introspecting.
2252         
2253         * python/service.py: Import signal and method from decorators.py
2254
2255         * python/types.py: Add Variant type
2256
2257 2005-08-16  Colin Walters  <walters@verbum.org>
2258
2259         * glib/dbus-gobject.c (dbus_set_g_error): Don't lose if the
2260         DBusError message is NULL.
2261
2262 2005-08-09  Havoc Pennington  <hp@redhat.com>
2263
2264         * dbus/dbus-errors.c: apply patch from Timo Teras to make a
2265         malloc'd copy of the name parameter
2266
2267 2005-08-09  Havoc Pennington  <hp@redhat.com>
2268
2269         * dbus/dbus-message.c (dbus_message_set_reply_serial): print
2270         warning if the reply serial is set to 0
2271
2272 2005-08-04  Colin Walters  <walters@verbum.org>
2273
2274         * glib/dbus-gvalue-utils.h (_dbus_g_type_specialized_builtins_init)
2275         (dbus_g_type_is_fixed, dbus_g_type_fixed_get_size)
2276         (dbus_gvalue_set_from_pointer, dbus_g_hash_table_value_foreach)
2277         (dbus_g_hash_table_insert_values, dbus_g_hash_table_insert_steal_values)
2278         (dbus_gtype_is_valid_hash_key, dbus_gtype_is_valid_hash_value)
2279         (dbus_g_hash_func_from_gtype, dbus_g_hash_free_from_gtype)
2280         (dbus_g_hash_equal_from_gtype, dbus_gvalue_stor, dbus_gvalue_take):
2281         * glib/dbus-gvalue.h (dbus_g_value_types_init)
2282         (dbus_gvalue_demarshal, dbus_gvalue_demarshal_variant)
2283         (dbus_gvalue_demarshal_message, dbus_gvalue_marshal):
2284         
2285         Prefix name with _ to ensure they're not exported.  All callers
2286         updated.
2287
2288         * glib/dbus-gvalue.c (typecode_to_gtype)
2289         (dbus_typecode_maps_to_basic, basic_typecode_to_gtype)
2290         (signature_iter_to_g_type_dict)
2291         (signature_iter_to_g_type_array)
2292         (dbus_gtype_from_signature_iter, dbus_gtype_from_signature)
2293         (dbus_gtypes_from_arg_signature):
2294         Move to dbus-gsignature.c.
2295
2296         * glib/dbus-binding-tool-glib.c (dbus_binding_tool_output_glib_server): Call
2297         dbus_g_type_specialized_builtins_init instead of dbus_g_value_types_init.
2298         (dbus_binding_tool_output_glib_client): Ditto.
2299
2300         * glib/Makefile.am (DBUS_GLIB_INTERNALS): Add dbus-gsignature.c
2301         and dbus-gsignature.h
2302
2303         * test/glib/test-service-glib.c (my_object_rec_arrays): Delete
2304         unused variable.
2305
2306 2005-08-03  Colin Walters  <walters@verbum.org>
2307
2308         * glib/dbus-gobject.c: Add tests on hardcoded object info; this should
2309         catch any incompatible changes accidentally made.
2310
2311 2005-08-03  Havoc Pennington  <hp@redhat.com>
2312
2313         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): fix
2314         typo, from Julien Puydt
2315
2316         * bus/connection.c (bus_connection_disconnected): we were always
2317         doing a wait_for_memory due to a buggy loop, found by Timo Hoenig
2318
2319 2005-08-01  Colin Walters  <walters@verbum.org>
2320
2321         Patch from Joe Markus Clarke:   
2322         
2323         * glib/dbus-gidl.c (property_info_unref, arg_info_unref): Fix
2324         use-after-free.
2325
2326 2005-08-01  Colin Walters  <walters@verbum.org>
2327         
2328         Patch from Joe Markus Clarke:   
2329         
2330         * tools/dbus-send.c (main): 
2331         
2332         Don't use C99 style initializers (bug #3933).
2333         
2334 2005-08-01  Colin Walters  <walters@verbum.org>
2335
2336         Patch from Joe Markus Clarke:   
2337
2338         * glib/dbus-gvalue.c (dbus_g_value_types_init): 
2339         * glib/dbus-gvalue-utils.c (dbus_g_type_specialized_builtins_init) 
2340         * glib/dbus-gobject.c (write_interface):
2341
2342         Don't use C99 style initializers (bug #3933).
2343
2344 2005-07-31  Havoc Pennington  <hp@redhat.com>
2345
2346         * tools/dbus-viewer.c (load_child_nodes): fix invocation of
2347         dbus_g_proxy_call, fix from Piotr Zielinski bug #3920
2348
2349 2005-07-30  Havoc Pennington  <hp@redhat.com>
2350
2351         * fix a bunch of Doxygen warnings and mistakes
2352
2353 2005-07-30  Havoc Pennington  <hp@redhat.com>
2354
2355         * dbus/dbus-sysdeps.c (_dbus_string_parse_uint): remove #ifdef
2356         DBUS_BUILD_TESTS since it's now used in production code
2357
2358 2005-07-29  Havoc Pennington  <hp@redhat.com>
2359
2360         * test/glib/test-profile.c (write_junk): initialize the junk
2361         buffer so valgrind doesn't have a breakdown
2362
2363 2005-07-29  Havoc Pennington  <hp@redhat.com>
2364
2365         * bus/signals.c (bus_signals_test): add match_rule_equal() tests
2366         (match_rule_matches): remove unused arg
2367         (test_matching): add tests for match_rule_matches()
2368
2369         * bus/signals.c (bus_match_rule_parse_arg_match): add ability to
2370         do arg0='foo' arg5='bar' in the match rules
2371         (match_rule_matches): don't match if the arg0='foo' doesn't match.
2372
2373         * dbus/dbus-protocol.h (DBUS_MAXIMUM_MATCH_RULE_ARG_NUMBER): add this
2374
2375 2005-07-29  Ross Burton  <ross@openedhand.com>
2376
2377         * dbus/dbus-connection.c:
2378         Don't create a DBusCondVar which is never used.
2379
2380 2005-07-27  Ross Burton  <ross@openedhand.com>
2381
2382         * dbus/dbus-message.c:
2383         Reduce the size of the maximum cached message to 10K.
2384
2385 2005-07-25  Ross Burton  <ross@openedhand.com>
2386
2387         * glib/dbus-gproxy.c:
2388         Remove matches when all proxies are unregistered.
2389
2390 2005-07-24  Colin Walters  <walters@verbum.org>
2391
2392         * glib/dbus-gvalue.c (signature_iter_to_g_type_array): Don't require
2393         typedata; recursive arrays won't have it.
2394
2395         * test/glib/test-dbus-glib.c:
2396         * test/glib/test-service-glib.c:
2397         * test/glib/test-service-glib.xml: Add recursive arrays tests.
2398         
2399 2005-07-20  John (J5) Palmieir  <johnp@redhat.com>
2400
2401         * python/_dbus.py, _util.py, decorators.py, extract.py, matchrules.py.
2402         proxies.py, service.py: Cleanup of code after running it through the
2403         pyflakes code checker mostly dealing with undefined names.  
2404         (Bug #3828, Patch from Anthony Baxter <anthony@interlink.com.au>)
2405
2406 2005-07-17  John (J5) Palmieri  <johnp@redhat.com>
2407
2408         * NEWS: Update to 0.35.2
2409
2410 2005-07-17  John (J5) Palmieri  <johnp@redhat.com>
2411
2412         * python/_dbus.py: Remove import of the dbus.services
2413         module as it no longer exists (patch from Dimitur Kirov)
2414
2415         * python/service.py (Object::__init__): Fixed typo
2416         s/name/bus_name (patch from Dimitur Kirov)
2417
2418         * python/examples/example-signal-emitter.py: import dbus.glib
2419         to get the main loop and use glib mainloop instead of gtk so
2420         X doesn't have to be running.
2421
2422         * python/examples/example-signal-recipient.py: import dbus.glib
2423         to get the main loop and use glib mainloop instead of gtk so
2424         X doesn't have to be running. Import the decorators module
2425         directly.
2426
2427         * test/glib/Makefile.am:  Added DIST_EXTRA files that distcheck
2428         didn't pick up on but are needed to build
2429
2430         * configure.in: upped version to 0.35.2
2431
2432         * bus/driver.c, bus/selinux.c, bus/selinux.h, dbus/dbus-protocol.h:
2433         added Colin Walters' SELinux API rename patch from head 
2434         s/unix sercurity context/selinux security context/
2435
2436 2005-07-16  John (J5) Palmieri  <johnp@redhat.com>
2437
2438         * python/Makefile.am: dbus_binding.pxd.in should be included 
2439         in EXTRA_DIST not dbus_binding.pxd
2440         fix up $(srcdir) hopefully for the last time
2441
2442         * NEWS: Update to 0.35.1
2443
2444 2005-07-16  Colin Walters  <walters@verbum.org>
2445
2446         * bus/driver.c (bus_driver_handle_get_connection_selinux_security_context): Renamed
2447         from bus_driver_handle_get_connection_unix_security_context.  Update for
2448         error usage.
2449         (message_handlers): Update for renames.
2450
2451         * bus/selinux.c (bus_selinux_allows_send): Handle OOM on
2452         _dbus_string_init failure correctly.
2453         (bus_selinux_append_context): Convert SID to context.  Append it
2454         as a byte array.
2455         (bus_selinux_shutdown): Handle the case where bus_selinux_full_init
2456         hasn't been called.
2457
2458         * bus/selinux.h: Update prototype.
2459
2460         * dbus/dbus-protocol.h (DBUS_ERROR_SELINUX_SECURITY_CONTEXT_UNKNOWN): Renamed
2461         from DBUS_ERROR_UNIX_SECURITY_CONTEXT_UNKNOWN.
2462
2463 2005-07-15  Colin Walters  <walters@verbum.org>
2464
2465         * doc/TODO: Add note about convenience wrappers.
2466
2467 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
2468
2469         * NEWS: Update to 0.35
2470
2471 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
2472
2473         * glib/Makefile.am: Add make-dbus-glib-error-switch.sh to EXTRA_DIST
2474         so distcheck doesn't fail
2475
2476         * glib/examples/Makefile.am: Add example-service.xml and 
2477         example-signal-emitter.xml to EXTRA_DIST so distcheck doesn't fail
2478
2479         * glib/examples/statemachine/Makefile.am: Add statemachine.xml and
2480         statemachine-server.xml to EXTRA_DIST so distcheck doesn't fail
2481
2482         * python/Makefile.am: Preprend $(srcdir)/ to source files so the
2483         compiler looks in the right places during distcheck
2484
2485 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
2486
2487         * glib/example/Makefile.am: Fix a typo which cause make distcheck
2488         to fail
2489
2490 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
2491
2492         * python/examples/example-service.py,
2493         python/examples/example-signal-emitter.py: Fixed up examples
2494         for API changes
2495
2496 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
2497
2498         * python/__init__.py: Upped to version (0,42,0) because of
2499         the API change
2500
2501 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
2502
2503         * ChangeLog: fix date in last entry
2504
2505         * configure.in, bus/system.conf.in: add the ability to configure 
2506         the system bus user at compiletime with the --with-dbus-user flag
2507         (patch from Kristof Vansant)
2508
2509 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
2510
2511         * bus/dispatch.c, test/test-service.c: Add testcase
2512         for sending messages to oneself (TODO item).
2513
2514         * python/service.py (class Object): Swap ordering of bus_name 
2515         and object_path parameters to better support inheritance.
2516
2517         * doc/dbus-tutorial.xml: change Python docs to reflect change
2518         in parameter ordering and fix the inheritance section.
2519
2520         * doc/TODO: remove sending message to oneself TODO item
2521
2522 2005-07-15  Ross Burton  <ross@openedhand.com>
2523
2524         * glib/dbus-gproxy.c:
2525         Fix a leak when calling methods via the proxy.
2526
2527 2005-07-15  Colin Walters  <walters@verbum.org>
2528
2529         * bus/selinux.c (bus_selinux_append_context): Wrap in
2530         HAVE_SELINUX.
2531
2532 2005-07-14  John (J5) Palmieri  <johnp@redhat.com>
2533
2534         * python/_dbus.py (Bus::remove_signal_receiver):
2535         don't add a callback to the match if none has been passed in
2536         
2537         * python/matchrules.py (SignalMatchTree::remove): if the rule
2538         being matched does not have a callback treat it as a wildcard
2539         fix matching logic
2540
2541         * doc/dbus-tutorial.xml: Add Python tutorial
2542
2543 2005-07-14  Colin Walters  <walters@verbum.org>
2544
2545         * bus/driver.c
2546         (bus_driver_handle_get_connection_unix_security_context): New function.
2547         (message_handlers): Add.
2548
2549         * bus/selinux.c (bus_selinux_append_context): New function; appends
2550         security context to message.
2551
2552         * bus/selinux.h: Prototype.
2553
2554         * dbus/dbus-protocol.h (DBUS_ERROR_UNIX_SECURITY_CONTEXT_UNKNOWN): New.
2555
2556 2005-07-14  John (J5) Palmieri  <johnp@redhat.com>
2557
2558         * bus/activation.c: clean up all tabs to be 8 spaces 
2559         (bus_activation_activate_service): make sure we clean up
2560         if activation fails
2561
2562         * bus/dispatch.c: clean up all tabs to be 8 spaces 
2563         (check_shell_fail_service_auto_start): New function
2564         tests to make sure we get fail properly when trying to auto start a service
2565         with a faulty command line
2566         (check_shell_service_success_auto_start): New function tests to make sure
2567         auto started services get the arguments on the command line
2568
2569         * test/test-shell-service.c: Added service for testing auto-starting with 
2570         command line arguments
2571
2572         * test/data/valid-service-files/debug-shell-echo-fail.service.in, 
2573         test/data/valid-service-files/debug-shell-echo-success.service.in:
2574         Added service files for testing auto-starting with command line arguments
2575
2576         * */.cvsignore: added a bunch of generated files to various .cvsignore files
2577
2578 2005-07-14  Rodrigo Moya  <rodrigo@novell.com>
2579
2580         * dbus/dbus-shell.[ch]: copy/pasted code from GLib.
2581         
2582         * dbus/Makefile.am: added new files to build.
2583
2584         * bus/activation.c (bus_activation_activate_service): support
2585         activation commands with parameters.
2586
2587         * test/shell-test.c: added test program for the shell parsing
2588         code.
2589
2590 2005-07-13  David Zeuthen  <davidz@redhat.com>
2591
2592         * tools/dbus-send.c (append_arg, type_from_name): Also support 16 and
2593         64 bit signed and unsigned parameters
2594
2595 2005-07-13  John (J5) Palmieri  <johnp@redhat.com>
2596
2597         * python/.cvsignore: remove dbus_bindings.pyx, add dbus_bindings.pxd
2598
2599         * python/service.py (class Name): renamed BusName to make it clearer
2600         what the object is for (a name on the bus)
2601
2602         * python/examples/example-service.py,
2603         python/examples/example-signal-emitter.py: change the Name object to
2604         BusName
2605
2606 2005-07-12  Colin Walters  <walters@verbum.org>
2607
2608         Patch from Jim Gettys <Jim.Gettys@hp.com>.
2609
2610         * tools/dbus-launch.c: Include sys/select.h.
2611
2612 2005-07-12  John (J5) Palmieri  <johnp@redhat.com>
2613         * python/dbus_bindings.pyx.in: removed
2614
2615         * python/dbus_bindings.pyx: Added.
2616         - Fixed some memleaks (patch from 
2617         Sean Meiners <sean.meiners@linspireinc.com>)
2618         - Broke out the #include "dbus_h_wrapper.h" and put it in its
2619         own pxd file (Pyrex definition)
2620         - Broke out glib dependancies into its own pyx module
2621         
2622         * python/dbus_bindings.pdx: Added.
2623         - Defines C class Connection for exporting to other modules
2624
2625         * python/dbus_glib_bindings.pyx: Added.
2626         - New module to handle lowlevel dbus-glib mainloop integration
2627
2628         * python/glib.py: Added.
2629         - Registers the glib mainloop when you import this module
2630
2631         * python/services.py: Removed (renamed to service.py)
2632         
2633         * python/service.py: Added.
2634         - (class Server): renamed Name
2635
2636         * python/__init__.py: Bump ro version (0,41,0)
2637         -don't import the decorators or service module
2638         by default.  These now reside in the dbus.service namespace
2639
2640         * python/_dbus.py (Bus::__init__): Add code run the main loop 
2641         setup function on creation 
2642
2643         * python/examples/example-service.py,
2644         python/examples/example-signal-emitter.py: update examples
2645
2646         * python/examples/gconf-proxy-service.py,
2647         python/examples/gconf-proxy-service2.py: TODO fix these up
2648
2649         * doc/TODO: Addition
2650         - Added a Python Bindings 1.0 section
2651         - added "Add match on args or match on details to match rules"
2652
2653
2654 2005-07-12  Colin Walters  <walters@verbum.org>
2655
2656         * glib/examples/statemachine/Makefile.am (statemachine-server-glue.h) 
2657         (statemachine-glue.h): 
2658         * glib/examples/Makefile.am (example-service-glue.h) 
2659         (example-signal-emitter-glue.h): 
2660         * glib/Makefile.am (dbus-glib-error-switch.h): 
2661         Add libtool --mode=execute so we use the built library instead
2662         of any installed one.
2663
2664 2005-07-11  Colin Walters  <walters@verbum.org>
2665
2666         * glib/dbus-gvalue.c (struct _DBusGValue): Delete.
2667         (dbus_g_value_types_init): Remove assertion.
2668         (dbus_g_value_get_g_type, dbus_g_value_open)
2669         (dbus_g_value_iterator_get_values, dbus_g_value_get_signature)
2670         (dbus_g_value_copy, dbus_g_value_free): Delete unimplemented
2671         functions related to DBusGValue.  Now we marshal/demarshal
2672         structures as GValueArray.
2673         (dbus_gtype_from_signature_iter): Return G_TYPE_VALUE_ARRAY for
2674         structures.
2675         (signature_iter_to_g_type_array): Don't call
2676         signature_iter_to_g_type_struct.
2677         (signature_iter_to_g_type_struct): Delete.
2678         (dbus_gvalue_to_signature): Delete.
2679         (dbus_gvalue_to_signature): New function with same name as other
2680         one; we can convert structures to signatures.
2681         (demarshal_valuearray): New function.
2682         (get_type_demarshaller): Use it.
2683         (demarshal_recurse): Delete.
2684         (marshal_proxy): New function.
2685         (marshal_map): Warn if we can't determine signature from type.
2686         (marshal_collection_ptrarray): Ditto.
2687         (marshal_collection_array): Ditto.
2688         (get_type_marshaller): Use marshal_valuearray.
2689         (marshal_recurse): Delete.
2690         (_dbus_gvalue_test): Add some tests.
2691
2692         * dbus/dbus-glib.h (struct _DBusGValueIterator): 
2693         (dbus_g_value_get_g_type, DBUS_TYPE_G_VALUE)
2694         (dbus_g_value_open, dbus_g_value_iterator_get_value)
2695         (dbus_g_value_iterator_get_values, dbus_g_value_iterator_recurse)
2696         (dbus_g_value_free): Remove prototypes.
2697
2698         * glib/dbus-binding-tool-glib.c (dbus_g_type_get_lookup_function): Handle
2699         G_TYPE_VALUE_ARRAY.
2700
2701         * glib/examples/example-service.c:
2702         * glib/examples/example-client.c: Implement GetTuple.
2703
2704         * test/glib/test-dbus-glib.c:
2705         * test/glib/test-service-glib.c:
2706         * test/glib/test-service-glib.xml: Add structure tests.
2707
2708 2005-07-10  Colin Walters  <walters@verbum.org>
2709
2710         * doc/TODO: Knock off some GLib items with this patch.
2711
2712         * glib/dbus-gvalue-utils.c (_dbus_gtype_can_signal_error) 
2713         (_dbus_gvalue_signals_error): New functions.
2714
2715         * glib/dbus-gvalue-utils.h: Prototype them.
2716
2717         * glib/dbus-gobject.c (arg_iterate): Update to handle return vals
2718         and change to not output const/retval flags for input args.  All
2719         callers updated.
2720         (invoke_object_method): Refactor to handle return values.  Add
2721         some more comments in various places.  Remove debug g_print.
2722
2723         * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_RETURNVAL): New.
2724
2725         * glib/dbus-binding-tool-glib.c (dbus_g_type_get_marshal_name):
2726         Handle G_TYPE_NONE.
2727         (compute_gsignature): New function; refactored from code from
2728         compute_marshaller and compute_marshaller_name.  Enhance to
2729         handle return values and async ops more cleanly.  Update for
2730         async ops returning NONE instead of BOOLEAN.
2731         (compute_marshaller, compute_marshaller_name): Call compute_gsignature
2732         and output appropriate string.
2733         (generate_glue): Handle return value annotation.  Also don't dump
2734         constness flag for input arguments.
2735
2736         * glib/Makefile.am (DBUS_GLIB_INTERNALS): New variable; contains
2737         files shared between installed library and utilities.
2738         (libdbus_glib_1_la_SOURCES): Move some stuf into DBUS_GLIB_INTERNALS.
2739         (libdbus_gtool_la_SOURCES): Suck in DBUS_GLIB_INTERNALS so the
2740         binding tool can access gtype utility functions.
2741
2742         * test/glib/test-service-glib.c: 
2743         * test/glib/test-service-glib.xml: 
2744         * test/glib/test-dbus-glib.c: Add some tests for return values.
2745
2746 2005-07-09  Colin Walters  <walters@verbum.org>
2747
2748         * glib/dbus-gparser.c (parse_annotation): Add annotations to
2749         argument if available, not method.
2750
2751         * glib/dbus-gobject.c (arg_iterate): More verbose warnings.
2752         (invoke_object_method): First, remove some redundant
2753         GValues (object_value, error_value) in favor of working on
2754         array directly.  Second, rework constness to be less buggy.
2755         Now we iterate directly over the argument metadata instead
2756         of parallel iterating over output signature and metadata.
2757
2758         * glib/dbus-glib-tool.h: Add INVALID_ANNOTATION error.
2759
2760         * glib/dbus-binding-tool-glib.c (generate_glue): Barf on const
2761         annotation on input args.
2762         
2763 2005-07-09  Colin Walters  <walters@verbum.org>
2764
2765         * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_CONST):
2766         Define.
2767
2768         * glib/dbus-binding-tool-glib.c (generate_glue): Handle Const
2769         annotation.
2770
2771         * glib/dbus-gobject.c (arg_iterate): Update to parse constval too.
2772         (method_dir_signature_from_object_info): Handle arg_iterate change.
2773         (write_interface): Ditto.
2774         (lookup_object_info): Don't barf if format_version is > 0.
2775         (invoke_object_method): Handle arg constness.
2776
2777         * glib/dbus-gidl.c (struct ArgInfo): Add annotations.
2778         (arg_info_new): Create.
2779         (arg_info_unref): Destroy.
2780         (arg_info_get_annotations, arg_info_get_annotation) 
2781         (arg_info_add_annotation): New functions.
2782
2783         * glib/dbus-gidl.h: Prototype them.
2784
2785         * glib/dbus-gparser.c (parse_annotation): Allow annotations in
2786         args, disallow them in properties.
2787         (parse_annotation): Handle arg annotations.
2788
2789         * test/glib/test-service-glib.xml: 
2790         * test/glib/test-service-glib.c: Update to make some methods
2791         const.
2792
2793 2005-07-08  Colin Walters  <walters@verbum.org>
2794
2795         * test/glib/test-service-glib.xml: 
2796         * test/glib/test-service-glib.c:
2797         * test/glib/test-dbus-glib.c: Test a{sv}.
2798
2799         * glib/examples/statemachine/statemachine.c:
2800         * glib/examples/statemachine/statemachine-server.c:
2801         * glib/examples/statemachine/statemachine-client.c: Fix some bugs,
2802         add progress bar, etc.
2803
2804         * glib/dbus-gvalue.c (register_array, register_dict): Delete; not
2805         needed anymore due to generic array/map marshalling.
2806         (dbus_g_value_types_init): Don't register basic arrays or the
2807         string/string hash.
2808         (dbus_gtype_from_signature_iter): Don't try to recurse into
2809         variants.
2810         (dbus_gtype_to_signature): Check collection/map before type
2811         metadata.
2812         (demarshal_garray_basic): Renamed to demarshal_collection_array.
2813         (demarshal_ghashtable): Renamed to demarshal_map; fix to use new
2814         generic map creation/append functions instead of hash table
2815         specifically.
2816         (get_type_demarshaller): Handle maps.
2817         (demarshal_collection): Dispatch on collection type to either
2818         demarshal_collection_ptrarray or demarshal_collection_array.
2819         (get_type_marshaller): Handle maps.
2820         (marshal_collection): Dispatch collection type to either
2821         marshal_collection_ptrarray or marshal_collection_array.
2822         (_dbus_gvalue_test): New test.
2823
2824         * glib/dbus-gvalue-utils.c (unset_and_free_g_value): New function.
2825         (hash_free_from_gtype): Use it to free GValues.
2826         (hashtable_append): New function.
2827         (ptrarray_append): Fix prototype.
2828         (slist_append): Ditto.
2829         (_dbus_gvalue_utils_test): Extend tests.
2830
2831         * glib/dbus-gtype-specialized.c
2832         (dbus_g_type_specialized_init_append): Renamed from
2833         dbus_g_type_specialized_collection_init_append.  Remove const from
2834         value, since we steal it.
2835         (dbus_g_type_specialized_map_append): New function.
2836
2837         * glib/dbus-gtype-specialized.h: Update prototypes.
2838         Add DBusGTypeSpecializedMapAppendFunc.
2839
2840         * glib/dbus-gtest.c (dbus_glib_internal_do_not_use_run_tests): Run
2841         _dbus_gvalue_test.
2842         
2843         * glib/dbus-gtest.h: Prototype it.
2844
2845 2005-07-08  Ross Burton  <ross@openedhand.com>
2846
2847         * dbus/dbus-glib.h:
2848         Add DBysGAsyncData for the async bindings.
2849
2850         * glib/dbus-binding-tool-glib.c:
2851         Re-enable the async bindings.
2852
2853         * test/glib/test-dbus-glib.c:
2854         Add a test for the generated async bindings.
2855
2856 2005-07-08  Colin Walters  <walters@verbum.org>
2857
2858         * doc/TODO: Update GLib todo bits, also add a post-1.0 TODO for a
2859         connection concept.
2860         
2861 2005-07-08  Colin Walters  <walters@verbum.org>
2862         
2863         * tools/Makefile.am: Kill of print-introspect in favor of using
2864         dbus-send --print-reply=literal.
2865
2866         * test/glib/test-service-glib.xml: 
2867         * test/glib/test-service-glib.c (my_object_get_objs): New test
2868         for "ao".
2869
2870         * test/glib/test-dbus-glib.c (echo_received_cb): Free echo data.
2871         (main): Test GetObjs.
2872
2873         * glib/examples/statemachine/Makefile.am:
2874         * glib/examples/statemachine/sm-marshal.list:
2875         * glib/examples/statemachine/statemachine-client.c:
2876         * glib/examples/statemachine/statemachine-server.c:
2877         * glib/examples/statemachine/statemachine-server.xml:
2878         * glib/examples/statemachine/statemachine.c:
2879         * glib/examples/statemachine/statemachine.h:
2880         * glib/examples/statemachine/statemachine.xml:
2881
2882         New example.
2883
2884         * glib/examples/example-service.c (main): Move invocation
2885         of dbus_g_object_type_install_info earlier, to emphasize it
2886         should only be done once.
2887
2888         * glib/examples/example-signal-emitter.c (main): Ditto.
2889
2890         * glib/examples/Makefile.am (SUBDIRS): Include statemachine.
2891
2892         * glib/dbus-gvalue.h (dbus_gtype_to_signature)
2893         (dbus_gvalue_marshal): Update prototypes.
2894
2895         * glib/dbus-gvalue.c: Update all marshalling functions to take
2896         const GValue instead of GValue.
2897         (signature_iter_to_g_type_array): Return a GPtrArray for nonfixed
2898         types.
2899         (dbus_gvalue_to_signature): Update for dbus_gtype_to_signature
2900         change.
2901         (dbus_gtype_to_signature): Handle generic collecitons and maps.
2902         Return a newly-allocated string.
2903         (demarshal_proxy, demarshal_object_path, demarshal_object)
2904         (demarshal_strv, demarshal_ghashtable): Set error, don't assert if
2905         we get the wrong types from message.
2906         (get_type_demarshaller): New function, extracted from
2907         dbus_gvalue_demarshal.
2908         (demarshal_collection): New function, demarshals generic
2909         collection.
2910         (dbus_gvalue_demarshal): Just invoke result of
2911         get_type_demarshaller.  Throw error if we don't have one.
2912         (marshal_garray_basic): Abort on OOM.
2913         (get_type_marshaller): New function, extracted from
2914         dbus_gvalue_marshal.
2915         (collection_marshal_iterator, marshal_collection): New functions;
2916         implements generic marshalling for an iteratable specialized
2917         collection.
2918         (dbus_gvalue_marshal): Just invoke result of get_type_marshaller.
2919
2920         * glib/dbus-gvalue-utils.c (gvalue_from_ptrarray_value): Handle
2921         G_TYPE_STRING.
2922         (ptrarray_value_from_gvalue): Ditto.
2923         (ptrarray_append, ptrarray_free): New functions.
2924         (slist_constructor, slist_iterator, slist_copy_elt, slist_copy) 
2925         (slist_append, slist_end_append, slist_free): New functions.
2926         (dbus_g_type_specialized_builtins_init): Add append fuctions
2927         for GPtrArray and GSList.  Register GSList.
2928         (test_specialized_hash, _dbus_gvalue_utils_test): New functions.
2929
2930         * glib/dbus-gtype-specialized.h (DBusGTypeSpecializedAppendContext):
2931         New.
2932         (dbus_g_type_specialized_collection_init_append)
2933         (dbus_g_type_specialized_collection_append)
2934         (dbus_g_type_specialized_collection_end_append): Prototype.
2935         (DBusGTypeSpecializedCollectionVtable): Add append_func and
2936         end_append_func.
2937
2938         * glib/dbus-gtype-specialized.c (dbus_g_type_specialized_collection_init_append) 
2939         (dbus_g_type_specialized_collection_append) 
2940         (dbus_g_type_specialized_collection_end_append): New functions.
2941         (dbus_g_type_map_value_iterate): Take const GValue.
2942         (dbus_g_type_collection_value_iterate): Ditto.
2943
2944         * glib/dbus-gtest.c (dbus_glib_internal_do_not_use_run_tests): Run
2945         _dbus_gvalue_utils_test.
2946         
2947         * glib/dbus-gtest.h: Prototype it.
2948
2949         * glib/dbus-gproxy.c (dbus_g_proxy_manager_filter): Avoid
2950         using uninitialized owner_list.
2951         (dbus_g_proxy_begin_call_internal): Move return_if_fail to
2952         public API.
2953         (dbus_g_proxy_end_call_internal): Update to use error set
2954         from dbus_gvalue_demarshal instead of setting it here.
2955         (dbus_g_proxy_begin_call): Move return_if_fail here.
2956
2957         * glib/dbus-gobject.c (write_interface): Update for
2958         dbus_gtype_to_signature returning new string.
2959
2960         * configure.in: Add glib/examples/statemachine.
2961
2962 2005-07-08  Joe Shaw  <joeshaw@novell.com>
2963
2964         * configure.in: Add a configure option, --with-console-auth-dir
2965         
2966         * dbus/dbus-sysdeps-util.c (_dbus_user_at_console): Use the
2967         new setting.  Patch from Kay Sievers.
2968
2969 2005-07-06  Colin Walters  <walters@verbum.org>
2970
2971         * dbus/dbus-glib.h (DBusGPendingCall, DBusGPendingCallNotify)
2972         (DBUS_TYPE_G_PENDING_CALL, dbus_g_pending_call_get_g_type)
2973         (dbus_g_pending_call_ref, dbus_g_pending_call_unref): Delete.
2974         (dbus_g_pending_call_set_notify, dbus_g_pending_call_cancel):
2975         Delete in favor of dbus_g_proxy_begin_call and
2976         dbus_g_proxy_cancel_call.
2977         (DBusGProxyCall, DBusGProxyCallNotify): New.
2978         (dbus_g_proxy_begin_call): Change prototype to take callback, user
2979         data, and destroy function.  This replaces
2980         dbus_g_pending_call_set_notify.
2981         (dbus_g_proxy_cancel_call): Prototype.
2982         (DBusGAsyncData): Delete, shouldn't be needed anymore.
2983
2984         * glib/dbus-gproxy.c (struct _DBusGProxy): Add call_id_counter and
2985         pending_calls map.
2986         (struct _DBusGProxyManager): Add bus_proxy member, which is an
2987         internal proxy for calls to the bus. Remove
2988         pending_nameowner_calls, now the internal proxy keeps track.
2989         (dbus_g_proxy_manager_unref): Unref bus proxy, remove reference to
2990         pending_nameowner_calls.
2991         (got_name_owner_cb): Update prototype, and use
2992         dbus_g_proxy_end_call.
2993         (got_name_owner_cb): Remove reference to pending_nameowner_calls.
2994         (dbus_g_proxy_manager_register): Delete directly libdbus code in
2995         favor of using internal proxy.
2996         (dbus_g_proxy_manager_unregister): Update to use
2997         dbus_g_proxy_cancel_call for any pending GetNameOwner call.
2998         (dbus_g_proxy_init): Initialize pending calls map.
2999         (dbus_g_proxy_constructor): New.
3000         (dbus_g_proxy_class_init): Add get/set property functions,
3001         constructor, and add NAME, PATH, and INTERFACE properties.
3002         (cancel_pending_call): New function.
3003         (dbus_g_proxy_dispose): Iterate over any outstanding calls and
3004         cancel them.
3005         (dbus_g_proxy_set_property, dbus_g_proxy_get_property): New.
3006         (GPendingNotifyClosure): New structure.
3007         (d_pending_call_notify, d_pending_call_free): Moved here from
3008         dbus-glib.c.
3009         (DBUS_G_VALUE_ARRAY_COLLECT_ALL): Moved around to satisfy function
3010         ordering.
3011         (manager_begin_bus_call): New internal function for talking to
3012         internal bus proxy.
3013         (dbus_g_proxy_new): Construct object using GObjet properties.
3014         (dbus_g_proxy_begin_call_internal): Update to take user data, etc.
3015         Create closure of same, and insert call into map of pending calls.
3016         (dbus_g_proxy_end_call_internal): Take call id instead of pending
3017         call.  Look up pending call in current set.  Remove it when we've
3018         completed.
3019         (dbus_g_pending_call_end, dbus_g_proxy_end_call_internal): Delete.
3020         (dbus_g_proxy_begin_call): Change API to take callback, user data,
3021         and destroy function directly.
3022         (dbus_g_proxy_end_call): Update to take DBusGProxyCall.
3023         (dbus_g_proxy_call): Invoke with NULL callback.
3024         (dbus_g_proxy_cancel_call): New function, replaces
3025         dbus_g_pending_call_cancel.
3026
3027         * glib/dbus-gparser.c (validate_signature): Fix call to
3028         dbus_set_g_error.
3029
3030         * glib/dbus-gobject.c (dbus_g_object_type_dbus_metadata_quark):
3031         New quark for attaching metadata to GType.
3032         (info_hash): Delete.
3033         (lookup_object_info): Look up using quark.
3034         (dbus_g_object_type_install_info): Check that a type is classed,
3035         not that it's an object.  Also just install type data using quark
3036         instead of using global hash.
3037
3038         * glib/dbus-glib.c (dbus_g_pending_call_ref) 
3039         (dbus_g_pending_call_unref, dbus_pending_call_get_g_type)
3040         (GPendingNotifyClosure): Delete.
3041         (d_pending_call_notify, d_pending_call_free): Move to dbus-gproxy.c.
3042         (dbus_g_pending_call_set_notify, dbus_g_pending_call_cancel): Delete.
3043
3044         * glib/dbus-binding-tool-glib.c (generate_client_glue): Disable async
3045         client method generation until we can fix it...
3046         
3047         * tools/dbus-viewer.c (load_child_nodes): Use dbus_g_proxy_call.
3048         (load_from_service_thread_func): Ditto.
3049
3050         * tools/dbus-names-model.c (struct NamesModel): Hold
3051         DBusGProxyCall.
3052         (have_names_notify): Update prototype, use
3053         dbus_g_proxy_cancel_call.
3054         (names_model_reload): Update for new dbus_g_proxy_begin_call API.
3055
3056         * tools/dbus-monitor.c (filter_func): Update for print_message
3057         API change.
3058
3059         * test/glib/test-dbus-glib.c: Add more tests for async
3060         invocations.  Update many begin_call/end_call pairs to just use
3061         dbus_g_proxy_call.
3062
3063         * tools/dbus-send.c (main): Add --print-reply=literal mode.  This
3064         allows us to dump print-introspect.c.
3065
3066         * tools/dbus-print-message.h (print_message): Add literal argument
3067         to print_message which is intended to allow printing arguments without
3068         metadata like "string=".
3069
3070         * tools/dbus-print-message.c (print_iter): Add literal argument.
3071         (print_message): Allow printing string messages literally.
3072
3073 2005-07-05  Colin Walters  <walters@verbum.org>
3074
3075         * glib/dbus-gproxy.c (marshal_dbus_message_to_g_marshaller):
3076         Remove value refcount leak, original patch from Jorn Baayen
3077         <jorn@openedhand.com>.  Also remove useless extra value in favor
3078         of prepending to value array directly.
3079
3080 2005-07-02  Colin Walters  <walters@verbum.org>
3081
3082         * glib/dbus-gmain.c (_dbus_gmain_test): Fix test.
3083
3084 2005-07-01  Colin Walters  <walters@verbum.org>
3085
3086         Patch from Jonathan Matthew <jonathan@kaolin.hn.org>
3087         
3088         * glib/dbus-gvalue.c (basic_typecode_to_gtype): Fix return type.
3089         (dbus_g_value_types_init): Marshal G_TYPE_CHAR as DBUS_TYPE_BYTE,
3090         G_TYPE_LONG as DBUS_TYPE_INT32, G_TYPE_ULONG as DBUS_TYPE_UINT32,
3091         and G_TYPE_FLOAT as DBUS_TYPE_DOUBLE.
3092
3093 2005-06-30  Colin Walters  <walters@verbum.org>
3094
3095         * test/glib/test-dbus-glib.c:
3096         * test/glib/test-service-glib.c:
3097         * test/glib/test-service-glib.xml: Update tests for new error
3098         setting bits, also add async tests (patch from Ross Burton).
3099
3100         * test/glib/Makefile.am (test_service_glib_LDADD): Add
3101         DBUS_GLIB_THREADS_LIBS.
3102
3103         * glib/dbus-gproxy.c (get_name_owner)
3104         (dbus_g_pending_call_end_valist): Ditto.
3105
3106         * glib/dbus-gobject.c (error_metadata): New mapping from GError
3107         domain (GQuark) to DBusGErrorInfo.  
3108         (gerror_domaincode_to_dbus_error_name): Attempt to look up error
3109         quark in error_metadata.  Take message interface as default
3110         error message interface.
3111         (gerror_to_dbus_error_message): Pass message interface.
3112         (dbus_set_g_error): Resurrected.
3113         (dbus_g_error_info_free): New function.
3114         (dbus_g_object_type_install_info): Use g_type_class_ref instead
3115         of _peek to actually create the object class if it hasn't been
3116         created yet.
3117         (dbus_g_error_domain_register): New function.
3118
3119         * glib/dbus-gmain.c (dbus_g_bus_get): Switch to dbus_set_g_error.
3120
3121         * glib/dbus-gparser.c (validate_signature): Ditto.
3122
3123         * dbus/dbus-glib.h (dbus_g_error_set): Delete.
3124         (dbus_g_error_domain_register): Prototype.
3125
3126         * glib/dbus-glib.c (dbus_g_error_set): Delete.
3127         Update tests.
3128
3129 2005-06-29  Colin Walters  <walters@verbum.org>
3130
3131         * dbus/dbus-glib.h: Delete DBUS_TYPE_G_PROXY_ARRAY.  Add
3132         DBUS_TYPE_G_OBJECT_PATH.
3133
3134         * glib/dbus-gvalue.c (dbus_g_value_types_init): Remove marshallers
3135         for G_TYPE_OBJECT and DBUS_TYPE_G_PROXY_ARRAY (the latter should
3136         be handled more generically).  Add DBUS_TYPE_G_OBJECT_PATH.
3137         (dbus_g_object_path_get_g_type): New function.
3138         (dbus_gtype_from_signature_iter): Map DBUS_TYPE_OBJECT_PATH
3139         to DBUS_TYPE_G_OBJECT_PATH by default.
3140         (demarshal_proxy): Remove unused name variable.
3141         (demarshal_object_path, marshal_object_path): New functions.
3142         (demarshal_proxy_array, marshal_proxy_array): Delete.
3143         
3144         * glib/dbus-binding-tool-glib.c (dbus_g_type_get_c_name): Map
3145         DBUS_TYPE_G_OBJECT_PATH to char *.
3146         (dbus_g_type_get_lookup_function): Map builtin
3147         DBUS_TYPE_G_OBJECT_PATH.
3148
3149         * test/glib/test-dbus-glib.c
3150         * test/glib/test-service-glib.c (my_object_objpath): 
3151         Adapt tests to new object path marshalling.
3152
3153 2005-06-29  John (J5) Palmieri  <johnp@redhat.com>
3154
3155         * configure.in: force check for Python >= 2.4
3156
3157 2005-06-29  Colin Walters  <walters@verbum.org>
3158         
3159         Patch from Ross Burton <ross@openedhand.com>
3160         
3161         * glib/dbus-gobject.c (invoke_object_method): Unset object
3162         value in all cases, not only in async case.
3163
3164 2005-06-29  Colin Walters  <walters@verbum.org>
3165
3166         * glib/dbus-gproxy.c (struct _DBusGProxy): Add new member
3167         name_call for keeping track of any outgoing GetNameOwner call.
3168         Also add for_owner and associated.
3169         (struct _DBusGProxyManager): Add owner_names, which is hash table
3170         that maps a base name to a list of names it owns (that we're
3171         interested in).  Add pending_nameowner_calls which is a list of
3172         all outstanding GetNameOwner; avoids us having to iterate over
3173         every proxy.  Add unassociated_proxies which keeps track of name
3174         proxies with no associated name owner.
3175         (dbus_g_proxy_manager_unref): Destroy owner_names.
3176         (struct DBusGProxyNameOwnerInfo): New struct for keeping track of
3177         name refcounts.
3178         (find_name_in_info, name_owner_foreach)
3179         (dbus_g_proxy_manager_lookup_name_owner, insert_nameinfo)
3180         (dbus_g_proxy_manager_monitor_name_owner)
3181         (dbus_g_proxy_manager_unmonitor_name_owner)
3182         (unassociate_proxies, dbus_g_proxy_manager_replace_name_owner):
3183         New functions; they manipulate the owner_names mapping.
3184         (got_name_owner_cb): New function.
3185         (get_name_owner): New function, extracted from
3186         dbus_g_proxy_new_for_name_owner.
3187         (dbus_g_proxy_manager_register): For now we need to keep track of
3188         all NameOwnerChanged.  Also if the proxy is for a name, if we
3189         don't already know the name owner, queue a new GetNameOwner
3190         request and add it to our list of unassociated proxies.  Otherwise
3191         inc the refcount.
3192         (dbus_g_proxy_manager_unregister): If this proxy is for a name,
3193         cancel any pending GetNameOwner call, etc.
3194         (dbus_g_proxy_manager_filter): Handle NameOwnerChanged.  Also use
3195         the owner_names mapping to look up the current names for the
3196         signal source, and dispatch to any proxies for that name.
3197         (dbus_g_proxy_new): Initialize new members.
3198         (dbus_g_proxy_new_for_name): Delete unused proxy variable.
3199         (dbus_g_proxy_new_for_name_owner): Use get_name_owner.
3200         (dbus_g_pending_call_end_valist): New function, extracted from
3201         dbus_g_proxy_end_call_internal.  Useful when we don't have a proxy
3202         but want to use the GLib infrastructure.  Also note how many
3203         arguments in reply were over.
3204         (dbus_g_pending_call_end): New function, just call
3205         dbus_g_pending_call_end_valist.
3206         (dbus_g_proxy_end_call_internal): Just call
3207         dbus_g_pending_call_end_valist.
3208
3209         * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller): Fix lookup
3210         of builtin marshaller for STRING_STRING_STRING.
3211
3212         * test/glib/test-dbus-glib.c: 
3213         * test/glib/test-service-glib.c:
3214         * test/glib/test-service-glib.xml:
3215         Extend tests to cover name proxies, destruction of owner proxies,
3216         etc.
3217         
3218         * glib/examples/example-signal-recipient.c
3219         (dbus_g_proxy_new_for_name_owner): Create a name proxy.
3220         
3221         * tools/dbus-send.c (main): Print D-BUS error name in addition
3222         to message.
3223
3224 2005-06-28  John (J5) Palmieri  <johnp@redhat.com>
3225
3226         * python/dbus_bindings.pyx.in (cunregister_function_handler,
3227         cmessage_function_handler): Patch from 
3228         Anthony Baxter <anthony@interlink.com.au> fixes threading problems
3229         by using the Py_GILState_Ensure/Release to synchronize with the
3230         python runtime.
3231         
3232 2005-06-28  Ray Strode  <rstrode@redhat.com>
3233
3234         *  dbus/dbus-spawn.c (_dbus_babysitter_unref): kill
3235         babysitter helper process on last unref, bug #2813.
3236
3237 2005-06-27  Colin Walters  <walters@verbum.org>
3238
3239         * test/glib/test-dbus-glib.c: 
3240         * test/glib/test-service-glib.c:
3241         * test/glib/test-service-glib.xml:
3242         Test hash table signal emitting.
3243
3244         * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller): Convert
3245         types to their fundamental basis types, since this is what
3246         marshallers operate on.  Also add an entry for VOID__BOXED.
3247         (dbus_g_object_register_marshaller_array): Convert to fundamental.
3248
3249 2005-06-26  Havoc Pennington  <hp@redhat.com>
3250
3251         * doc/dbus-tutorial.xml: fix names of interface/service/path, fix
3252         from Don Park
3253
3254 2005-06-26  Colin Walters  <walters@verbum.org>
3255
3256         * glib/dbus-glib.c (dbus_set_g_error): Delete.
3257         (dbus_g_error_set): New public function from its ashes; used by
3258         both service-side method implementation and GLib bindings
3259         internals.
3260         (dbus_g_error_has_name, dbus_g_error_get_name): New function.
3261         (_dbus_glib_test): Add some tests.
3262
3263         * test/glib/test-dbus-glib.c (main): Test dbus_g_error_has_name.
3264
3265         * test/glib/test-service-glib.c (my_object_throw_error): Use
3266         dbus_g_error_set.
3267
3268         * glib/dbus-gobject.c (gerror_to_dbus_error_message): Handle
3269         errors thrown by dbus_g_error_set.
3270
3271         * glib/dbus-gmain.c (dbus_g_bus_get): Change to dbus_g_error_set.
3272
3273         * glib/dbus-gparser.c (validate_signature): Ditto.
3274
3275         * glib/dbus-gproxy.c (dbus_g_proxy_new_for_name_owner) 
3276         (dbus_g_proxy_end_call_internal): Ditto.
3277
3278         * glib/Makefile.am: Generate dbus-glib-error-switch.h, which
3279         converts DBUS_ERROR_x to DBUS_GERROR_x.
3280         (libdbus_glib_1_la_SOURCES, BUILT_SOURCES, CLEANFILES): Add it.
3281
3282         * doc/TODO: Remove error TODO.
3283
3284         * doc/dbus-tutorial.xml: Update with documentation about error
3285         handling.
3286
3287         * dbus/make-dbus-glib-error-enum.sh: Tighten up regexp to make
3288         sure we only change DBUS_ERROR to DBUS_GERROR, not all ERROR to
3289         GERROR.  Also add DBUS_GERROR_REMOTE_EXCEPTION.
3290
3291 2005-06-22  Colin Walters  <walters@verbum.org>
3292         
3293         Patch from Ross Burton <ross@openedhand.com>
3294
3295         * glib/dbus-gobject.c (dbus_g_method_return): Free out_sig.
3296
3297 2005-06-20  Colin Walters  <walters@verbum.org>
3298
3299         * configure.in: Add glib/examples.
3300
3301         * glib/Makefile.am: Add examples/
3302
3303         * glib/examples/.cvsignore
3304         * glib/examples/Makefile.am
3305         * glib/examples/example-client.c
3306         * glib/examples/example-service.c
3307         * glib/examples/example-service.xml
3308         * glib/examples/example-signal-emitter.c
3309         * glib/examples/example-signal-emitter.xml
3310         * glib/examples/example-signal-recipient.c:
3311         New files; GLib binding examples, ported from
3312         python/examples.
3313
3314 2005-06-20  Colin Walters  <walters@verbum.org>
3315
3316         * dbus/dbus-glib.h: 
3317         * glib/dbus-gproxy.c: Rename dbus_g_proxy_invoke to
3318         dbus_g_proxy_call.
3319
3320         * glib/dbus-binding-tool-glib.c: 
3321         * doc/dbus-tutorial.xml: 
3322         * test/glib/test-dbus-glib.c: Update for rename.
3323         
3324 2005-06-20  Colin Walters  <walters@verbum.org>
3325
3326         Patch suggested by Ross Burton <ross@openedhand.com>
3327
3328         * glib/dbus-gobject.c (export_signals): Free signal name.
3329         (g_value_init): Use G_VALUE_NOCOPY_CONTENTS to plug
3330         memory leak.  Add a bit of documentation.
3331         (dbus_g_method_return_error): Free context, and note we do
3332         so.
3333
3334 2005-06-18  Murray Cumming  <murrayc@murrayc.com>
3335
3336         * dbus/dbus-glib.h:
3337         * glib/dbus-gobject.c:
3338         * glib/dbus-gproxy.c:
3339         * glib/dbus-gvalue.c: Predeclare structs as 
3340         typedef struct _Something Something instead of 
3341         typedef struct Something Something, so we can 
3342         redeclare the prototypes. Other GNOME libraries 
3343         do this already.
3344
3345 2005-06-17  Colin Walters  <walters@verbum.org>
3346
3347         * tools/dbus-names-model.c (have_names_notify): Fix call
3348         to dbus_g_proxy_end_call.
3349         
3350 2005-06-17  Colin Walters  <walters@verbum.org>
3351
3352         * glib/dbus-gproxy.c (dbus_g_proxy_emit_remote_signal): Don't
3353         spew warnings if we get malformed remote signals.
3354
3355         * glib/dbus-gobject.c (propsig_iterate): New function.
3356         (lookup_object_info): New function, extracted from
3357         lookup_object_and_method.
3358         (introspect_properties, introspect_signals): Delete; these
3359         are merged into write_interface.
3360         (write_interface): Write out signals and properties here;
3361         dump the org.gtk.object stuff and use the interface given
3362         in the introspection data blob.  Also fix up property XML.
3363         (lookup_values): New function.
3364         (introspect_interfaces): Gather a mapping from interface to a
3365         list of its methods, signals, and properties, then write out
3366         each interface.
3367         (lookup_object_and_method): Use lookup_object_info.
3368         (struct DBusGSignalClosure): Add interface.
3369         (dbus_g_signal_closure_new): Add interface. Don't dup signame;
3370         we can just use the constant data.
3371         (dbus_g_signal_closure_finalize): Don't free signal name.
3372         (signal_emitter_marshaller): Use interface from signal closure.
3373         (export_signals): Only export signals mentioned in introspection
3374         blob.
3375         (dbus_g_connection_register_g_object): Warn if we have no
3376         introspection data for an object.
3377         (funcsig_equal): Remove unused variable.
3378         (dbus_g_object_register_marshaller): Take varargs instead of
3379         list.
3380         (dbus_g_object_register_marshaller_array): New function,
3381         extracted from old dbus_g_object_register_marshaller.
3382
3383         * glib/dbus-binding-tool-glib.c (struct DBusBindingToolCData): Add
3384         signals and property data.
3385         (write_quoted_string): New function, extracted from generate_glue.
3386         (generate_glue): Write signals and properties to introspection
3387         blob.
3388
3389         * dbus/dbus-glib.h (struct DBusGObjectInfo): Include
3390         exported_signals and exported_properties.
3391         (dbus_g_object_register_marshaller): Update prototype.
3392         (dbus_g_object_register_marshaller_array): Prototype.
3393         
3394         * test/glib/test-dbus-glib.c: Extend testing to cover new signals.
3395
3396         * test/glib/test-service-glib.c: Add new test signals and method
3397         to emit them.
3398
3399         * test/glib/test-service-glib.xml: Add some test signals.
3400
3401         * test/glib/Makefile.am (BUILT_SOURCES): Add my-object-marshal.c
3402         and my-object-marshal.h
3403         (test_service_glib_SOURCES, test_dbus_glib_SOURCES): Add
3404         my-object-marshal.c.
3405         (my-object-marshal.c, my-object-marshal.h): Implement.
3406
3407         * test/glib/.cvsignore: Update.
3408
3409         * doc/TODO: Remove two GLib TODO items fixed by this
3410         patch.
3411
3412 2005-06-16  Colin Walters  <walters@verbum.org>
3413
3414         * doc/TODO: Update for GLib bindings.
3415         
3416 2005-06-16  Colin Walters  <walters@verbum.org>
3417
3418         * glib/dbus-binding-tool-glib.c:
3419         * glib/dbus-gobject.c:
3420         * glib/dbus-gproxy.c:  Add Nokia copyright; Patch
3421         from Ross Burton, for his GLib bindings work.
3422
3423 2005-06-16  Colin Walters  <walters@verbum.org>
3424
3425         * glib/dbus-gobject.c (funcsig_hash, funcsig_equal): Use n_params
3426         to iterate instead of walking to G_TYPE_INVALID.
3427
3428         Patch based on a patch from Ryan Gammon.
3429
3430 2005-06-16  Colin Walters  <walters@verbum.org>
3431
3432         * bus/bus.c (bus_context_new): Set parser to NULL
3433         after we unref it (Patch from Chris Boscolo, #2174).
3434         
3435 2005-06-16  Colin Walters  <walters@verbum.org>
3436
3437         * python/dbus_bindings.pyx.in: Import size_t,
3438         __int64_t, __uint64_t, and __signed.
3439
3440         * dbus/dbus-sysdeps.c <HAVE_CMSGCRED> (write_credentials_byte):
3441         Define cmsg struct, output it.
3442         (_dbus_read_credentials_unix_socket):
3443         Use cmsg struct.
3444         
3445         Patch from Joe Markus Clarke for FreeBSD support.
3446         
3447 2005-06-16  Colin Walters  <walters@verbum.org>
3448
3449         * tools/dbus-send.c (append_array): Use strtok.
3450         (append_dict): New function.
3451         (type_from_name): New function, extracted from main.
3452         (main): Handle sending dicts.
3453
3454         * tools/dbus-print-message.c (print_iter): Print dict
3455         entries.
3456         
3457 2005-06-16  Colin Walters  <walters@verbum.org>
3458
3459         * glib/dbus-gvalue.c (marshal_basic): Marshal NULL string
3460         values as the empty string (#2948).
3461         
3462 2005-06-16  Colin Walters  <walters@verbum.org>
3463
3464         * dbus/Makefile.am:
3465         * mono/doc/Makefile.am:
3466         * test/glib/Makefile.am:
3467
3468         Fix srcdir != builddir issues (Patch from Chris Wilson, #3477)
3469
3470 2005-06-16  Colin Walters  <walters@verbum.org>
3471
3472         * dbus/dbus-marshal-header.c (_dbus_header_load): Set
3473         header byte order from expected byte order (Patch from Chris Wilson, #3475).
3474
3475         * dbus/dbus-marshal-byteswap.c (byteswap_body_helper): 
3476         Increment pointer after swapping fixed array.  Add assertion
3477         for array length.
3478                 
3479 2005-06-15  Colin Walters  <walters@verbum.org>
3480
3481         * dbus/dbus-sysdeps.c <HAVE_CMSGCRED> (_dbus_read_credentials_unix_socket):
3482         Fix call to dbus_set_error.  (Patch from Michael Banck, #3461)
3483         
3484 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
3485
3486         * NEWS: Update to 0.34
3487
3488 2005-06-15  David Zeuthen  <davidz@redhat.com>
3489
3490         * configure.in (LT_CURRENT): Revert back to 1 as the library
3491         hasn't changed and we've certainly not committed to protocol
3492         stability yet.  All this does is to break ABI. See commit note
3493         from hp@redhat.com 2005-05-05 for details.
3494         
3495 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
3496
3497         * dbus/dbus-connection.c (_dbus_connection_peer_filter): New method 
3498         (_dbus_connection_run_builtin_filters): New method
3499         (dbus_connection_dispatch): Run the builtin filters which in turn
3500         runs the peer filter which handles Ping messages.
3501
3502         * doc/TODO: 
3503          - Ping isn't handled: This patch fixes it
3504          
3505          - Add a test case for the Ping message: added TODO item
3506
3507 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
3508
3509         * dbus/dbus-message.c:
3510         (dbus_message_has_path): New method
3511         (dbus_message_has_interface): New method
3512         (dbus_message_has_member): New method
3513
3514         * dbus/dbus/dbus-sysdeps.c (_dbus_check_dir_is_private_to_user):
3515         New method
3516
3517         * dbus/dbus-keyring.c (_dbus_keyring_reload): Check to see that 
3518         the keyring directory is private to the user
3519
3520         * doc/TODO:
3521          - The convenience functions in dbus-bus.h should perhaps have
3522          the signatures that they would have if they were autogenerated
3523          stubs. e.g. the acquire service function. We should also evaluate
3524          which of these functions to include, in light of the fact that
3525          GLib/Qt native stubs will probably also exist.: Punted
3526
3527          - add dbus_message_has_path(), maybe has_member/interface:
3528          fixed in this patch
3529
3530          - in dbus-keyring.c, enforce that the keyring dir is not
3531          world readable/writable: Fixed in this patch
3532
3533 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
3534
3535         * dbus/dbus-marshal-validate.h: Added a new validation
3536         error code DBUS_VALIDITY_UNKNOWN_OOM_ERROR = -4 for 
3537         out of memory errors when validating signitures
3538
3539         * dbus/dbus-marshal-header.c: use DBUS_VALIDITY_UNKNOWN_OOM_ERROR
3540         in places where we previously used DBUS_VALID and a FALSE return 
3541         value to indicate OOM
3542         
3543         * dbus/dbus-marshal-validate.c (_dbus_validate_signature_with_reason):
3544         Use a stack to track the number of elements inside containers.  The 
3545         stack values are then used to validate that dict entries have only two
3546         elements within them.
3547         (validate_body_helper): check the reason for failure when validating
3548         varients
3549         
3550         * dbus/dbus-message.c (load_message): use 
3551         DBUS_VALIDITY_UNKNOWN_OOM_ERROR in places where we previously used 
3552         DBUS_VALID and a FALSE return value to indicate OOM
3553
3554         * doc/TODO: remove "- validate dict entry number of fields" as this
3555         patch fixes it
3556
3557 2005-06-14  David Zeuthen  <davidz@redhat.com>
3558
3559         * bus/bus.c (process_config_every_time): Drop existing conf-dir
3560         watches (if applicable) and add new watches
3561
3562         * bus/main.c (signal_handler): Handle SIGIO if using D_NOTIFY
3563         (main): Setup SIGIO signal handler if using D_NOTIFY
3564
3565         * bus/config-parser.h: Add prototype bus_config_parser_get_conf_dirs
3566
3567         * bus/config-parser.c (struct BusConfigParser): Add conf_dirs list
3568         (merge_included): Also merge conf_dirs list
3569         (bus_config_parser_unref): Clear conf_dirs list
3570         (include_dir): Add directory to conf_dirs list
3571         (bus_config_parser_get_conf_dirs): New function
3572
3573         * bus/dir-watch.[ch]: New files
3574
3575         * bus/Makefile.am (BUS_SOURCES): Add dir-watch.[ch]
3576
3577         * configure.in: Add checks for D_NOTIFY on Linux
3578
3579 2005-06-14  Colin Walters  <walters@verbum.org>
3580
3581         * glib/dbus-binding-tool-glib.c:
3582         * glib/dbus-gobject.c:
3583         * glib/dbus-gvalue.c: Fix indentation and brace style.
3584         
3585 2005-06-14  Ross Burton <ross@openedhand.com>.
3586
3587         * glib/dbus-glib.h: Make DBusGMethodInvocation
3588         a private structure.  Rearrange prototypes a bit.
3589         
3590         * glib/dbus-gproxy.c (dbus_g_proxy_invoke): Add
3591         documentation for first_arg_type.
3592         
3593         * glib/dbus-gobject.c: Move DBusGMethodInvocation
3594         here, add documentation.  Move dbus_g_method_return
3595         and dbus_g_method_return_error into public API
3596         section.
3597
3598 2005-06-14  Colin Walters  <walters@verbum.org>
3599
3600         * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller):
3601         Add missing return statements, noticed by Ross Burton.
3602         
3603 2005-06-13  Ross Burton <ross@openedhand.com>.
3604
3605         * glib/dbus-gobject.c: Handle errors on message
3606         demarshalling by sending error message back.
3607         * glib/dbus-gvalue.c: Initialize return variables.
3608
3609 2005-06-13  Colin Walters  <walters@verbum.org>
3610
3611         * glib/Makefile.am: Fix thinko in last patch.
3612
3613 2005-06-13  Colin Walters  <walters@verbum.org>
3614
3615         * glib/Makefile.am: Move dbus-gtype-specialized.c
3616         and dbus-gtype-specialized.h into a _HEADERS variable,
3617         install them.
3618
3619 2005-06-12  Colin Walters  <walters@verbum.org>
3620
3621         Async signals and various bugfixes and testing by
3622         Ross Burton <ross@openedhand.com>.
3623
3624         * glib/dbus-gvalue.h: (struct DBusBasicGValue): Delete.
3625         (dbus_gvalue_genmarshal_name_from_type)
3626         (dbus_gvalue_ctype_from_type): Moved to dbus-binding-tool-glib.c.
3627         (dbus_gtype_to_dbus_type): Renamed to dbus_gtype_from_signature.
3628         (dbus_g_value_types_init, dbus_gtype_from_signature)
3629         (dbus_gtype_from_signature_iter, dbus_gtype_to_signature)
3630         (dbus_gtypes_from_arg_signature): New function prototypes.
3631         (dbus_gvalue_demarshal): Take context and error arguments.
3632         (dbus_gvalue_demarshal_variant): New function.
3633         (dbus_gvalue_demarshal_message): New function.
3634         (dbus_gvalue_store): Delete.
3635
3636         * glib/dbus-gvalue.c:
3637
3638         File has been almost entirely rewritten; now we special-case
3639         more types such as DBUS_TYPE_SIGNATURE, handle arrays and
3640         hash tables correctly, etc.  Full support for recursive values
3641         is not yet complete.
3642
3643         * glib/dbus-gproxy.c (dbus_g_proxy_class_init): Change last
3644         argument of signal to G_TYPE_POINTER since we now pass a
3645         structure.
3646         (lookup_g_marshaller): Delete in favor of
3647         _dbus_gobject_lookup_marshaller.
3648         (marshal_dbus_message_to_g_marshaller): Use
3649         _dbus_gobject_lookup_marshaller and dbus_gvalue_demarshal_message
3650         to handle remote signal callbacks.
3651         (dbus_g_proxy_new_from_proxy): New function; creates a new
3652         DBusGProxy by copying an existing one.
3653         (dbus_g_proxy_get_interface, dbus_g_proxy_set_interface)
3654         (dbus_g_proxy_get_path): New functions.
3655         (dbus_g_proxy_marshal_args_to_message): New function;
3656         factored out of existing code.
3657         (DBUS_G_VALUE_ARRAY_COLLECT_ALL): Collect all arguments
3658         from a varargs array.
3659         (dbus_g_proxy_begin_call_internal): New function.
3660         (dbus_g_proxy_end_call_internal): New function.
3661         (dbus_g_proxy_begin_call): Take GTypes instead of DBus types
3662         as arguments; simply invoke dbus_g_proxy_begin_call_internal
3663         after collecting args into value array.
3664         (dbus_g_proxy_end_call): Take GTypes instead of DBus types;
3665         invoke dbus_g_proxy_end_call_internal.
3666         (dbus_g_proxy_invoke): Simply invoke begin_call_interanl and
3667         end_call_internal.
3668         (dbus_g_proxy_call_no_reply): Take GTypes instead of DBus
3669         types.
3670         (array_free_all): New function.
3671         (dbus_g_proxy_add_signal): Take GTypes.
3672
3673         * glib/dbus-gobject.h:
3674         (_dbus_glib_marshal_dbus_message_to_gvalue_array): Delete.
3675         (_dbus_gobject_get_path, _dbus_gobject_lookup_marshaller):
3676         Prototype.
3677
3678         * glib/dbus-gobject.c: Add a global marshal_table hash which
3679         stores mappings from type signatures to marshallers.  Change lots
3680         of invocations of dbus_gtype_to_dbus_type to
3681         dbus_gtype_to_signature.
3682         (_dbus_glib_marshal_dbus_message_to_gvalue_array): Delete.
3683         (introspect_signals): Fix test for query.return_type.
3684         (set_object_property): Update invocation of dbus_gvalue_demarshal.
3685         (invoke_object_method): Many changes.  Handle asynchronous
3686         invocations.  Convert arguments with
3687         dbus_gvalue_demarshal_message.  Handle errors.  Use
3688         DBusSignatureIter instead of strlen on args. Handle all arguments
3689         generically.  Special-case variants.
3690         (dbus_g_method_return, dbus_g_method_return_error): New function.
3691         (DBusGSignalClosure): New structure, closes over signal
3692         information.
3693         (dbus_g_signal_closure_new): New function.
3694         (dbus_g_signal_closure_finalize): New function.
3695         (signal_emitter_marshaller): New function; is special marshaller
3696         which emits signals on bus.
3697         (export_signals): New function; introspects object signals and
3698         connects to them.
3699         (dbus_g_object_type_install_info): Take GType instead of
3700         GObjectClass.
3701         (dbus_g_connection_register_g_object): Invoke export_signals.
3702         (dbus_g_connection_lookup_g_object): New function.
3703         (DBusGFuncSignature) New structure; used for mapping type
3704         signatures to marshallers.
3705         (funcsig_hash): New function; hashes DBusGFuncSignature.
3706         (funcsig_equal): New function; compares DBusGFuncSignature.
3707         (_dbus_gobject_lookup_marshaller): New function.
3708         (dbus_g_object_register_marshaller): New function; used to
3709         register a marshaller at runtime for a particular signature.
3710
3711         * glib/dbus-gmain.c (_dbus_gmain_test): Add various tests.
3712
3713         * glib/dbus-binding-tool-glib.h: Add DBUS_GLIB_ANNOTATION_ASYNC
3714         which notes a server method implementation should be
3715         asynchronous.
3716
3717         * glib/dbus-binding-tool-glib.c
3718         (dbus_binding_tool_output_glib_server): Call
3719         dbus_g_value_types_init.
3720         (write_formal_parameters): Use dbus_gtype_from_signature.  Handle
3721         variants specially.
3722         (dbus_g_type_get_lookup_function): Turn GType into an invocation
3723         of a lookup function.
3724         (write_args_for_direction): Use dbus_g_type_get_lookup_function.
3725         (write_untyped_out_args): New method; write output arguments.
3726         (write_formal_declarations_for_direction): Function for
3727         writing prototypes.
3728         (write_formal_parameters_for_direction): Function for
3729         writing implementations.
3730         (write_typed_args_for_direction): Function for writing
3731         arguments prefixed with GTypes.
3732         (write_async_method_client): Write out async version
3733         of method.
3734
3735         * glib/dbus-binding-tool-glib.c: Include dbus-gvalue-utils.h.
3736         (dbus_g_type_get_marshal_name): Move mapping from GType
3737         to marshal name into here.
3738         (dbus_g_type_get_c_name): Move into here.
3739         (compute_marshaller): Convert signature to type with
3740         dbus_gtype_from_signature, use dbus_g_type_get_marshal_name.
3741         (compute_marshaller_name): Ditto.
3742         (compute_marshaller): Handle async signal annotations.
3743         (gather_marshallers): Return if we don't have a known
3744         prefix.
3745         (generate_glue): Collect introspection blob here, and
3746         write all of the blob at the end.  This allows an object
3747         with multiple interfaces to work.
3748         Mark async methods in introspection blob.
3749
3750         * glib/Makefile.am (libdbus_glib_1_la_SOURCES): Add
3751         dbus-gtype-specialized.c, dbus-gtype-specialized.h,
3752         dbus-gvalue-utils.h, dbus-gvalue-utils.c.
3753
3754         * dbus/dbus-glib.h: Don't include dbus-protocol.h; this
3755         avoids people accidentally using DBUS_TYPE_* which should
3756         not be necessary anymore.
3757         Do include dbus-gtype-specialized.h, which are utilities
3758         for GLib container types.
3759         Add various #defines for types such as
3760         DBUS_TYPE_G_BOOLEAN_ARRAY.
3761         (DBusGValueIterator, DBusGValue): Define, not fully used
3762         yet.
3763         (dbus_g_value_get_g_type): Type for recursive value.
3764         (dbus_g_value_open, dbus_g_value_iterator_get_value)
3765         (dbus_g_value_iterator_get_values, dbus_g_value_iterator_recurse)
3766         (dbus_g_value_free): Prototypes.
3767         (dbus_g_object_register_marshaller, dbus_g_proxy_new_from_proxy): Prototype.
3768         (dbus_g_proxy_set_interface): Prototype.
3769         (dbus_g_proxy_begin_call, dbus_g_proxy_end_call)
3770         (dbus_g_proxy_call_no_reply): Take GLib types instead of DBus
3771         types.
3772         (dbus_g_proxy_get_path, dbus_g_proxy_get_interface):
3773         Accessors.
3774         (DBusGAsyncData, DBusGMethodInvocation): Structures for
3775         doing async invocations.
3776         (dbus_g_method_return, dbus_g_method_return_error):
3777         Prototypes.
3778         * doc/dbus-tutorial.xml: Update GLib section.
3779         
3780         * tools/dbus-viewer.c (load_child_nodes): Update
3781         for new invocation type of dbus_g_proxy_end_call.
3782         (load_from_service_thread_func): Ditto.
3783
3784         * tools/print-introspect.c (main): Ditto.
3785
3786         * tools/dbus-names-model.c (have_names_notify)
3787         (names_model_reload, names_model_set_connection)
3788         Use GTypes.
3789
3790         * python/Makefile.am (INCLUDES): Define DBUS_COMPILATION,
3791         needed since Python bindings use GLib bindings.
3792
3793         * test/glib/Makefile.am (INCLUDES): Define DBUS_COMPILATION.
3794         Add --prefix argument.
3795
3796         * tools/Makefile.am: Define DBUS_COMPILATION.  Remove
3797         unneeded --ignore-unsupported arg.
3798         
3799         * test/glib/test-service-glib.c: 
3800         * test/glib/test-service-glib.xml:
3801         * test/glib/test-dbus-glib.c: Add many more tests.
3802
3803 2005-06-06  David Zeuthen  <davidz@redhat.com>
3804
3805         * doc/TODO: Add item about need to remove deprecated functions.
3806
3807         * dbus/dbus-connection.h: Add prototype for dbus_connection_disconnect
3808
3809         * dbus/dbus-connection.c (dbus_connection_disconnect): New function
3810         to repair the ABI which was broken with the last commit.
3811
3812 2005-06-02  John (J5) Palmieri <johnp@redhat.com>
3813
3814         *  dbus/dbus-connection.c, dbus/dbus-connection.h 
3815         (dbus_connection_disconnect): renamed to dbus_connection_close 
3816         for API symmetry with dbus_connection_open
3817         (_dbus_connection_open_internal): 
3818         s/dbus_connection_disconnect/dbus_connection_close
3819
3820         * dbus/dbus-bus.c (dbus_bus_get):
3821         s/dbus_connection_disconnect/dbus_connection_close
3822
3823         * bus/connection.c (bus_connections_unref, 
3824         bus_connections_setup_connection, bus_connections_expire_incomplete):
3825         s/dbus_connection_disconnect/dbus_connection_close
3826
3827         * bus/dispatch.c (bus_dispatch, kill_client_connection, 
3828         kill_client_connection_unchecked, check_hello_connection):
3829         s/dbus_connection_disconnect/dbus_connection_close
3830
3831         * bus/bus.c (new_connection_callback):
3832         s/dbus_connection_disconnect/dbus_connection_close
3833
3834         * tools/dbus-send.c (main):
3835         s/dbus_connection_disconnect/dbus_connection_close
3836
3837         * test/glib/test-profile.c (no_bus_thread_func, with_bus_thread_func):
3838         s/dbus_connection_disconnect/dbus_connection_close
3839         
3840         * test/test-service.c (path_message_func, filter_func):
3841         s/dbus_connection_disconnect/dbus_connection_close
3842         
3843         * doc/TODO: remove connection_open/connection_disconnect lacks symmetry         item that was just fixed
3844         
3845 2005-05-25  Colin Walters  <walters@verbum.org>
3846
3847         * dbus/dbus-protocol.h: Move various bus service #defines such
3848           as DBUS_SERVICE_DBUS and DBUS_NAME_FLAG_PROHIBIT_REPLACEMENT to
3849           dbus/dbus-shared.h.
3850         * dbus/dbus-shared.h: Various defines moved here.
3851         * dbus/dbus-marshal-header.c: Include dbus-shared.h.
3852
3853 2005-05-25  John (J5) Palmieri  <johnp@redhat.com>
3854
3855         * python/__init__.py: Python bindings deserve a minor version
3856         update.  Upped to (0, 40, 2)
3857
3858 2005-05-24  John (J5) Palmieri  <johnp@redhat.com>
3859
3860         * python/decorators.py: add explicitly_pass_message decorator
3861         for passing in the dbus message as keyword for edge case signal
3862         handling
3863
3864         * python/matchrules.py (SignalMatchRule.__repr__): fix output
3865         to conform with what dbus expects for match rules
3866         (SignalMatchRule.execute): add the dbus message as a keyword
3867         if the signal handler has requested it
3868
3869         * python/examples/example/signal-recipient.py: added some more
3870         examples on how to hook up to signals
3871
3872 2005-05-23  John (J5) Palmieri  <johnp@redhat.com>
3873
3874         * python/decorators.py: import dbus_bindings
3875
3876         * python/matchrules.py (SignalMatchRule, SignalMatchTree, 
3877         SignalMatchNode): new classes that implement wildcard signal
3878         callback matching using a tree lookup. Heavily modified from a
3879         patch sent by Celso Pinto (fd.o bug #3241)
3880
3881         * _dbus.py (add_signal_receiver, remove_signal_receiver, _signal_func):
3882         use new match classes to handle signals.
3883
3884 2005-05-19  John (J5) Palmieri  <johnp@redhat.com>
3885         
3886         * python/dbus_bindings.pyx.in: s/TYPE_PATH/TYPE_OBJECT_PATH
3887
3888 2005-05-18  Havoc Pennington  <hp@redhat.com>
3889
3890         * configure.in: use GLIB_GNU_GETTEXT to get INTLLIBS and require
3891         gettext. Not really worth requiring yet perhaps, but any
3892         production quality 1.0 would require it so we should go ahead and
3893         get things set up. We do have a couple token calls to
3894         bindtextdomain in the code already.
3895
3896 2005-05-16  John (J5) Palmieri  <johnp@redhat.com>
3897
3898         * glib/dbus-gmain.c (io_handler_dispatch): fix deadlock
3899         when using recursive g_main_loops
3900
3901         * python/_dbus.py (class Bus): add the ProxyObjectClass
3902         alias for ProxyObject to make it easier for the Twisted 
3903         networking framework to integrate dbus.
3904
3905         * python/proxies.py (class ProxyObject): add the ProxyMethodClass
3906         alias for ProxyMethod to make it easier for the Twisted 
3907         networking framework to integrate dbus. 
3908
3909 2005-05-11  Ross Burton  <ross@openedhand.com>
3910
3911         * glib/dbus-glib-tool.c: Add --prefix argument.
3912         * glib/dbus-binding-tool-glib.h: Add prefix argument.
3913         * glib/dbus-binding-tool-glib.c (compute_marshaller_name):
3914         Add prefix argument.
3915         (generate_glue): Pass prefix argument down.
3916         (dbus_binding_tool_output_glib_server): Pass prefix to
3917         glib-genmarshal.
3918         
3919 2005-05-11  Colin Walters  <walters@verbum.org>
3920
3921         * tools/dbus-send.c (append_array): New function.
3922         (append_arg): Broken out from main.
3923         (main): Add cheesy hack to send arrays and variants.
3924         (usage): Update.
3925         * tools/dbus-print-message.c (print_iter): Broken out
3926         from main.
3927
3928 2005-05-11  Colin Walters  <walters@verbum.org>
3929
3930         * dbus/dbus-signature.c (dbus_signature_iter_get_signature):
3931         New function, returns signature string for signature iter.
3932         * dbus/dbus-signature.h: Prototype it.
3933         * dbus/dbus-message.c (dbus_message_iter_get_signature):
3934         New function, returns signature string for message iter.
3935         (dbus_message_iter_get_array_len): New function, returns
3936         length of array.
3937         (dbus_message_iter_get_fixed_array): Fix assertion; this
3938         function should be used when the iter is pointing to the
3939         contents of an array
3940         * dbus/dbus-message.h: Prototypes.
3941         * dbus/dbus-marshal-recursive.c (_dbus_type_reader_get_array_length):
3942         New function; returns length of an array.
3943         * dbus/dbus-marshal-recursive.h: Prototype it.
3944         
3945 2005-05-11  Colin Walters  <walters@verbum.org>
3946
3947         * dbus/dbus-sysdeps-util.c <!HAVE_POSIX_GETPWNAM_R>: Fix
3948         compilation error.
3949         
3950 2005-05-08  Havoc Pennington  <hp@redhat.com>
3951
3952         * dbus/dbus-sysdeps-util.c (_dbus_become_daemon): write the
3953         daemon's pid, not the parent's pid, to the file descriptor.
3954         Reported by Taj Morton.
3955
3956 2005-05-05  Havoc Pennington  <hp@redhat.com>
3957
3958         * configure.in (LT_*): add notes on how the libtool versioning
3959         works to save thinking. Increment soname to indicate protocol
3960         breakage (though really the library interface hasn't changed I
3961         guess)
3962
3963         * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated):
3964         verify the GUID received from server matches what we were
3965         expecting, if we had an expectation
3966
3967         * dbus/dbus-auth.c (send_ok): send GUID along with the OK command
3968         (_dbus_auth_get_guid_from_server): new function
3969         (send_begin): parse the OK args
3970
3971         * doc/dbus-specification.xml: add GUID to the auth protocol
3972
3973 2005-05-05  John (J5) Palmieri  <johnp@redhat.com>
3974
3975         * Fix my name in previous changelog ;)
3976
3977         * python/proxies.py (ProxyObject.__getattr__): add further patch
3978         from Anthony Baxter to throw an AttributeError when python 
3979         __special__ functions are called instead of marshling them over 
3980         the bus (Bug#1685 comment 3).
3981
3982 2005-05-04  John (J5) Palmieri  <johnp@redhat.com>
3983
3984         * python/Makefile.am: changed to use pyexecdir for the binding
3985         shared libraries (Bug#2494)
3986
3987         * python/exceptions.py: bring exceptions over from the bindings
3988         so they can be used in applications (Bug#2036)
3989         Make all exceptions derive from DBusException
3990
3991         * python/_dbus.py, python/proxies.py: implement __repr__ in a couple
3992         of classes so that print obj doesn't throw an exception (Bug #1685)
3993
3994 2005-05-03  Ross Burton  <ross@openedhand.com>
3995
3996         * glib/dbus-gobject.c (dbus_g_connection_register_g_object):
3997         Return if we get an error during registration.  Set up a
3998         weak reference on object to unregister if object is destroyed.
3999         (unregister_gobject): New function.
4000         
4001 2005-05-01  John (J5) Palmieri  <johnp@redhat.com>
4002
4003         * python/dbus_bindings.pyx.in: 
4004         - added new type classes for hinting to the marashaler what type 
4005         to send over the wire
4006         - added int16 and uint16 marshalers
4007         - Fixed a bug in the type constants that caused int32 to go out
4008         as uint16 over the wire
4009         * python/dbus.py: split up into different files and renamed _dbus.py
4010         * python/__init__.py, python/_util.py, python/decorators.py, 
4011         python/exceptions.py, python/proxies.py, python/services.py,
4012         python/types.py: new files split off from dbus.py
4013         * python/Makefile.am: Add new files, remove dbus.py and 
4014         install all python files to <python module dir>/dbus
4015         * python/examples/*: Added #!/usr/bin/env python to the top of
4016         every example.  Patch provided by Tatavarty Kalyan
4017
4018 2005-04-25  John (J5) Palmieri  <johnp@redhat.com>
4019
4020         * NEWS: Update to 0.33
4021
4022 2005-04-25  John (J5) Palmieri  <johnp@redhat.com>
4023
4024         * python/dbus_bindings.pyx.in (send_with_reply_handlers): New send
4025         method for doing async calls
4026         (_pending_call_notification): New C function for handling pendning call
4027         callbacks
4028         (set_notify): New method for setting pending call notification
4029         
4030         * python/dbus.py: new version tuple "version" is set at (0, 40, 0)
4031         Async capabilities added to remote method calls
4032         (Sender): class removed
4033         (RemoteService): class removed
4034         (ObjectTree): class removed for now
4035         (RemoteObject): Renamed to ProxyObject
4036         (RemoteMethod): Renamed to ProxyMethod
4037         (method): Decorator added for decorating python methods as dbus methods
4038         (signal): Decorator added for decorating python methods as signal emitters
4039         (ObjectType): Metaclass added for generating introspection data and the
4040         method callback vtable
4041         (Interface): Wrapper class added to wrap objects in a dbus interface
4042         (Object): Uses ObjectType as its metaclass and exports Introspect
4043         of the org.freedesktop.DBus.Introspectable interface
4044         (ValidationException, UnknownMethodException): new exceptions
4045
4046         * python/examples/*: Modified to fit with the new bindings
4047
4048 2005-04-23  Havoc Pennington  <hp@redhat.com>
4049
4050         * dbus/dbus-message.c (dbus_message_append_args): fix doc comment,
4051         reported by Tony Houghton
4052
4053         * test/test-service.c (main): test
4054         dbus_connection_get_object_path_data()
4055
4056         * dbus/dbus-object-tree.c (find_handler): be sure we always init
4057         the exact_match
4058         (_dbus_object_tree_get_user_data_unlocked): new function used by
4059         dbus_connection_get_object_path_data()
4060         (do_register): add assertion test for get_user_data_unlocked
4061         (object_tree_test_iteration): more tests
4062
4063         * dbus/dbus-connection.c (dbus_connection_get_object_path_data):
4064         new function from Dan Reed to let you get the user data from 
4065         dbus_connection_register_object_path()
4066
4067 2005-04-23  John (J5) Palmieri  <johnp@redhat.com>
4068
4069         * dbus/dbus-marshal-recursive-util.c: Fixed buffer overflow
4070         in numerous places that did not account for the NULL terminator
4071         (signature_from_seed): changed the manual string copy loop to 
4072         just use strcpy instead
4073         make check should now pass
4074
4075 2005-04-19  John (J5) Palmieri  <johnp@redhat.com>
4076
4077         * dbus/dbus-marshal-header.c (_dbus_header_create): Fix assert
4078         so that it allows messages that are not signals to pass in 
4079         NULL as the interface.
4080
4081 2005-04-18  David Zeuthen  <davidz@redhat.com>
4082
4083         * glib/dbus-gmain.c (io_handler_destroy_source): 
4084         (timeout_handler_destroy_source, connection_setup_free): 
4085         Also unref the source to avoid memory leaks.
4086
4087 2005-04-13  David Zeuthen  <davidz@redhat.com>
4088
4089         * bus/config-parser.c (bus_config_parser_new): Bump this to a
4090         more reasonable, yet still totally arbitrary, value :-). 
4091
4092 2005-04-13  David Zeuthen  <davidz@redhat.com>
4093
4094         * doc/TODO: Added an "important for 1.0" item about selinux
4095         allow/deny messages
4096
4097 2005-04-13  David Zeuthen  <davidz@redhat.com>
4098
4099         * bus/selinux.c: Add c-file-style to top of file
4100         (log_audit_callback): Don't free the data here anymore
4101         (bus_selinux_check): Don't take spid and tpid since appending
4102         that to auxdata may OOM.
4103         (bus_selinux_allows_acquire_service): Handle OOM and signal back
4104         to the caller if we are OOM by taking an error object.
4105         (bus_selinux_allows_send): -do-
4106
4107         * bus/selinux.h: Fix prototypes for bus_selinux_allows_acquire_service
4108         and bus_selinux_allows_send
4109
4110         * bus/bus.c (bus_context_check_security_policy): Pass error and
4111         pass on OOM thrown by bus_selinux_allows_send()
4112
4113         * bus/services.c (bus_registry_acquire_service): Pass error and
4114         pass on OOM thrown by bus_selinux_allows_acquire_service()
4115
4116 2005-04-13  Havoc Pennington  <hp@redhat.com>
4117
4118         * glib/dbus-gmain.c (message_queue_dispatch): only dispatch one
4119         message at a time to avoid monopolizing the main loop, bug 
4120         #2953 from Benjamin Otte
4121
4122 2005-04-09  Havoc Pennington  <hp@redhat.com>
4123
4124         * dbus/dbus-string.c (copy): change a memcpy to memmove due to
4125         possible overlap, fix from Daniel Reed
4126         (fixup_alignment): fix signedness warnings
4127         (_dbus_string_append_unichar): ditto
4128
4129 2005-04-09  Havoc Pennington  <hp@redhat.com>
4130
4131         * dbus/dbus-message-util.c (_dbus_message_test): fix signedness warning
4132
4133         * glib/dbus-glib-tool.c (main): fix warning
4134
4135         * glib/dbus-binding-tool-glib.c (generate_glue): fix warning
4136
4137         * dbus/dbus-connection.c (dbus_connection_read_write_dispatch):
4138         add a new function that can be used in simple applications that
4139         don't have a main loop and are willing to block
4140
4141 2005-04-05  David Zeuthen  <davidz@redhat.com>
4142
4143         Fix https://bugs.freedesktop.org/show_bug.cgi?id=2889
4144
4145         * glib/dbus-gmain.c:
4146         (io_handler_destroy_source): Remove from list of IO handlers
4147         of the ConnectionSetup object
4148         (timeout_handler_destroy_source): -do- for timeout handlers
4149         (io_handler_source_finalized): Don't remove from list since
4150         we now do that in io_handler_destroy_source(). Renamed from
4151         io_handler_source_destroyed
4152         (timeout_handler_source_destroyed): -do- for timeout handlers
4153         (connection_setup_free): It is now safe to iterate over all
4154         IO and timeout handlers as the _destroy_source removes them
4155         from the list synchronously
4156
4157 2005-03-30  Havoc Pennington  <hp@redhat.com>
4158
4159         * configure.in: change check to gtk 2.4
4160
4161         * tools/dbus-viewer.c (name_combo_changed_callback): remove
4162         gtk_combo_box_get_active_text() usage to decrement GTK requirement
4163         to 2.4
4164
4165 2005-03-29  John (J5) Palmieri  <johnp@redhat.com>
4166
4167         * News: Update 0.32
4168
4169         * HACKING: Fixed realease instructions.  configure.in should be updated to
4170           the next release by the person who made the last release.
4171
4172 2005-03-29  John (J5) Palmieri  <johnp@redhat.com>
4173
4174         * python/lvalue_cast_post_process.py - removed.  Patch has been
4175           submitted to Pyrex maintainers that fixes gcc4.0 errors
4176
4177         * python/Makefile.am: removed refrences to lvalue_cast_post_process.py
4178
4179 2005-03-24  Daniel Reed  <n@ml.org>
4180
4181         * tools/Makefile.am: Make print-introspect and
4182         dbus-bus-introspect.xml building conditional on HAVE_GLIB.
4183
4184 2005-03-22  John (J5) Palmieri  <johnp@redhat.com>
4185
4186         * tools/Makefile.am: Patch by Colin Walters that fixes distcheck
4187
4188         * dbus/dbus-userdb.c, dbus/dbus-userdb-util.c: Add patch we have 
4189           had in Red Hat packages for a while but for some reason never 
4190           got merged upstream
4191           (_dbus_is_a_number): New checks if a string
4192           can be converted to a number and does the conversion if it can
4193           (_dbus_user_database_lookup): Add check to see if the given username
4194           is a udi.  This allows udi's to be used instead of usernames in the
4195           config file.
4196           (_dbus_user_database_lookup_group): Add check to see if the given groupname
4197           is a gdi.  This allows gdi's to be used instead of groupnames in the
4198           config file.
4199
4200 2005-03-21  John (J5) Palmieri  <johnp@redhat.com>
4201
4202         * python/lvalue_cast_post_process.py - added post processor to fix Pyrex
4203           code so that it compiles with gcc4.0
4204
4205         * python/Makefile.am: Added lvalue_cast_post_process.py to EXTRA_DIST
4206           run dbus_bindings.c through lvalue_cast_post_process.py and copy the
4207           results back to dbus_binding.c
4208
4209 2005-03-20  Colin Walters  <walters@verbum.org>
4210
4211         Patch suggested by Inguva Rajasekhar <ringuva@novell.com>.
4212
4213         * configure.in: Require GTK+ 2.6.
4214         
4215 2005-03-20  Colin Walters  <walters@verbum.org>
4216
4217         * Makefile.am (SUBDIRS, DIST_SUBDIRS): Build tools before test.
4218
4219 2005-03-17  Tom Parker  <palfrey@tevp.net>
4220
4221         * dbus/dbus-userdb.c (_dbus_user_database_lookup): Don't
4222         print DBUS_UID_UNSET; instead print passed username.  Also
4223         be sure to actually use gid looked up in cache.
4224         
4225         * dbus/dbus-userdb-util.c (_dbus_user_database_lookup_group): Ditto
4226         for DBUS_GID_UNSET and groupname.
4227
4228 2005-03-17  Colin Walters  <walters@verbum.org>
4229
4230         * bus/print-introspect.c: Move to tools/.
4231         * bus/run-with-tmp-session-bus.sh: Ditto.
4232         
4233         * glib/Makefile.am (dbus-glib-bindings.h): Move
4234         generation to tools/Makefile.am.
4235
4236         * test/glib/run-test.sh: Update to handle move
4237         of run-with-tmp-session-bus.sh.
4238
4239         * test/glib/test-service-glib.c: Update to handle
4240         move of dbus-glib-bindings.h.
4241
4242         * tools/print-introspect.c: Moved here
4243         from bus/, and ported to GLib bindings.
4244
4245         * tools/run-with-tmp-session-bus.sh: Moved here
4246         from bus/.
4247
4248         * tools/Makefile.am: Generate dbus-glib-bindings.h
4249         and dbus-bus-introspect.xml here.
4250
4251         * tools/.cvsignore, glib/.cvsignore, bus/.cvsignore:
4252         Update.
4253
4254 2005-03-17  Colin Walters  <walters@verbum.org>
4255
4256         * bus/driver.c (write_args_for_direction): Use
4257         _dbus_string_get_const_data to retrieve string;
4258         _dbus_string_get_const_data_len doesn't actually return
4259         a NULL-terminated substring.
4260
4261         * test/glib/test-service-glib.c: Include dbus-glib-bindings.h.
4262         (main): Change to use org_freedesktop_DBus_request_name
4263         instead of using g_proxy_begin_call/end_call.
4264
4265 2005-03-15  Joe Shaw  <joeshaw@novell.com>
4266
4267         * mono/ProxyBuilder.cs (BuildFinalizer): Fix some invalid IL when
4268         generating the finalizer.  Fixes from Ben Maurer.
4269
4270 2005-03-12  Joe Shaw  <joeshaw@novell.com>
4271
4272         * mono/BusDriver.cs: Update method names: ListServices
4273         becomes ListNames; GetOwner becomes GetNameOwner.
4274
4275         * mono/ProxyBuilder.cs (BuildFinalizer): Need to load arg 0
4276         onto the eval stack when removing the delegate.
4277
4278 2005-03-12  Joe Shaw  <joeshaw@novell.com>
4279
4280         * mono/dbus-sharp.dll.config.in: Don't hardcode 0 for
4281         LT_CURRENT.  Set it to the autoconf variable.
4282                                                                                 
4283         * mono/ProxyBuilder.cs: Add a finalizer to the generated proxy
4284         classes that disconnects the signal handler delegate from the
4285         service object.  Fixes a big leak of proxy objects on the
4286         client side of things.  Patch from Ben Maurer
4287         <bmaurer@ximian.com>
4288
4289 2005-03-12  Colin Walters  <walters@verbum.org>
4290
4291         * bus/driver.c (write_args_for_direction): New function,
4292         parses a type signature into arguments and outputs to
4293         XML.
4294         (bus_driver_handle_introspect): Use it instead of
4295         hardcoding XML for certain signatures.
4296         
4297         * bus/Makefile.am (dbus-bus-introspect.xml): Add
4298         dependency on dbus-daemon.
4299
4300         * glib/dbus-glib-tool.c (main): Parse ignore_unsupported
4301         argument, pass it to dbus_binding_tool_output_glib_client.
4302
4303         * glib/dbus-binding-tool-glib.c
4304         (generate_client_glue): Protect against multiple inclusion.
4305         (dbus_binding_tool_output_glib_client): Add
4306         G_BEGIN_DECLS/G_END_DECLS.
4307
4308         * glib/dbus-binding-tool-glib.c (compute_client_method_name):
4309         Change to just take iface prefix directly.
4310         (write_formal_parameters): Clarify error message.
4311         (check_supported_parameters): New function; checks to see type
4312         signatures of method parameters are supported.
4313         (generate_client_glue): Handle ignore_unsupported flag.
4314         (dbus_binding_tool_output_glib_client): Handle ignore_unsupported
4315         parameter.
4316
4317         * glib/Makefile.am (dbus-glib-bindings.h): Pass
4318         --ignore-unsupported by default until glib bindings
4319         support arrays.
4320
4321 2005-03-11  Colin Walters  <walters@verbum.org>
4322
4323         * glib/Makefile.am: Generate dbus-glib-bindings.h and
4324         install it.
4325
4326         * bus/print-introspect.c: New file; prints introspection
4327         data for a given name and object path.
4328
4329         * bus/run-with-tmp-session-bus.sh: New file, refactored
4330         from test/glib/run-test.sh.  Creates a temporary session
4331         bus and runs another program.
4332
4333         * test/glib/run-test.sh: Refactor to invoke
4334         run-with-tmp-session-bus.sh.
4335
4336         * bus/driver.c (bus_driver_handle_introspect): Fix to print new
4337         introspection format.  Also change to use DBUS_TYPE_x_AS_STRING
4338         macros instead of hardcoding.
4339
4340         * glib/.cvsignore, bus/.cvsignore, test/glib/.cvsignore: Update.
4341
4342 2005-03-11  Joe Shaw  <joeshaw@novell.com>
4343
4344         * dbus/dbus-connection.c (dbus_connection_send_with_reply): Remove
4345         this unref; it doesn't match up evenly in some codepaths.
4346         (_dbus_connection_block_pending_call): Unref at every exitpoint;
4347         this evenly matches with the ref near the top of this function.
4348
4349 2005-03-09  Joe Shaw  <joeshaw@novell.com>
4350
4351         * dbus/dbus-object-tree.c
4352         (_dbus_object_tree_unregister_and_unlock): If checks are enabled
4353         and we try to unregister a path that's not registered, still go
4354         through the process of unlocking and don't just return.
4355
4356 2005-03-09  Colin Walters  <walters@verbum.org>
4357
4358         * glib/dbus-gproxy.c (dbus_g_proxy_invoke): New method; calls
4359         to this are generated for client-side wrappers.  Invokes a
4360         D-BUS method and returns reply values.  
4361
4362         * glib/dbus-binding-tool-glib.c (write_args_sig_for_direction): New
4363         function; writes signature string for argument direction.
4364         (write_args_for_direction): Change to pass input values directly
4365         instead of via address, and fix indentation.
4366         (generate_client_glue): Change to invoke dbus_g_proxy_invoke.  Also
4367         make generated wrappers inlineable.
4368
4369         * dbus/dbus-message.c (dbus_message_iter_get_fixed_array): Add
4370         note about using dbus_type_is_fixed.
4371
4372         * dbus/dbus-marshal-basic.c (_dbus_type_is_fixed): Moved to
4373         dbus/dbus-signature.c as dbus_type_is_fixed.
4374
4375         All callers updated.
4376
4377         * dbus/dbus-signature.c (dbus_type_is_fixed): Moved here
4378         from dbus/dbus-marshal-basic.c:_dbus_type_is_fixed.
4379
4380         * dbus/dbus-signature.h: Prototype.
4381
4382         * glib/dbus-binding-tool-glib.c (compute_marshaller_name): Fix
4383         error printf code.
4384
4385         * test/glib/test-dbus-glib.c (main): Be sure to clear error as
4386         appropriate instead of just freeing it.
4387         (main): Free returned strings using g_free.
4388
4389         * test/glib/Makefile.am (test-service-glib-glue.h)
4390         (test-service-glib-bindings.h): Add dependency on dbus-binding-tool.
4391
4392         * glib/dbus-gvalue.c (MAP_BASIC): Refactored from MAP_BASIC_INIT;
4393         simply maps a simple D-BUS type to GType.
4394         (dbus_dbus_type_to_gtype): Function which maps D-BUS type to
4395         GType.
4396         (dbus_gvalue_init): Just invoke dbus_dbus_type_to_gtype and
4397         initialize the value with it.
4398         (dbus_gvalue_binding_type_from_type): Unused, delete.
4399         (dbus_gvalue_demarshal): Switch to hardcoding demarshalling for
4400         various types instead of unmarshalling to value data directly.
4401         Remove can_convert boolean.
4402         (dbus_gvalue_marshal): Remove duplicate initialization; switch to
4403         returning directly instead of using can_convert boolean.
4404         (dbus_gvalue_store): New function; not related to D-BUS per-se.
4405         Stores a GValue in a pointer to a value of its corresponding C
4406         type.
4407
4408         * glib/dbus-gvalue.h: Remove dbus_gvalue_binding_type_from_type,
4409         add dbus_gvalue_store.
4410
4411 2005-03-08  Joe Shaw  <joeshaw@novell.com>
4412
4413         Fix a bunch of lifecycle and memory management problems
4414         in the mono bindings.
4415
4416         * mono/Arguments.cs (Arguments): Implement IDisposable
4417
4418         * mono/Bus.cs (Bus): Don't allow public instantiation.  This is
4419         strictly a static class.
4420
4421         * mono/Connection.cs: Move the DBusObjectPathVTable and associated
4422         delegates into this file.
4423         (Connection): Implement IDisposable.
4424         (Dispose): Disconnect the connection and set the raw connection
4425         pointer to IntPtr.Zero.
4426         (~Connection): Call Dispose().
4427         (RegisterObjectPath): Added.  Manages the registration of object
4428         paths so we can cleanly disconnect them at dispose/finalize time.
4429         (UnregisterObjectPath): Ditto.
4430         (set_RawConnection): Unregister all of the object paths when
4431         changing the underlying DBusConnection.  Add them back onto the
4432         new connection, if any.
4433
4434         * mono/Handler.cs: Don't implement IDisposable; it doesn't use any
4435         more unmanaged resources anymore, so it's not necessary.  Move all
4436         the DBusObjectPathVTable stuff out of here.
4437         (Handler): Save references to our delegates so that they don't get
4438         finalized.  Call Connection.RegisterObjectPath() instead of
4439         dbus_connection_register_object_path() directly.
4440         (Message_Called): Dispose the message after we're finished with
4441         it.
4442
4443         * mono/Message.cs (Message): Implement IDisposable.
4444         (Dispose): Dispose the Arguments, and set the RawMessage to
4445         IntPtr.Zero.
4446         (SendWithReplyAndBlock): We own the ref to the reply that comes
4447         back from dbus_connection_send_with_reply_and_block() so add a
4448         comment about that and unref it after we've constructed a managed
4449         MethodReturn class around it.  Fixes a big, big leak.
4450
4451         * mono/ProxyBuilder.cs: Reflect into Message to get the Dispose
4452         method.
4453         (BuildSignalHandler): After we've sent the Signal message, dispose
4454         of it.
4455         (BuildMethod): Dispose of the method call and reply messages after
4456         we've sent the message and extracted the data we want from the
4457         reply.
4458
4459         * mono/Service.cs (UnregisterObject): Don't call handler.Dispose()
4460         anymore.
4461         (Service_FilterCalled): Dispose of the message after we're
4462         finished with it.
4463
4464 2005-03-08  Joe Shaw  <joeshaw@novell.com>
4465
4466         * dbus/dbus-connection.c (dbus_connection_send_with_reply):
4467         After we attach our pending call to the connection, unref
4468         it.  Fixes a leak.
4469  
4470         * mono/Connection.cs (set_RawConnection): Disconnect our
4471         filter and match callbacks from the old connection and
4472         reconnect them to the new connection, if any.
4473
4474         * mono/DBusType/Array.cs: "Code" is a static member, so
4475         don't use "this" to refer to it.  Fix for stricter checking
4476         in Mono 1.1.4.
4477  
4478         * mono/DBusType/ObjectPath.cs (Append): Don't leak the
4479         object path that we pass into unmanaged code.
4480  
4481         * mono/DBusType/String.cs (Append): Don't leak the string
4482         that we pass into unmanged code.
4483
4484 2005-03-07  John (J5) Palmieri  <johnp@redhat.com>
4485         * NEWS: Update for 0.31
4486
4487         * configure.in: Release 0.31
4488         add LT_CURRENT, LT_REVISION, LT_AGE for easy soname bumping
4489
4490         * qt/Makefile.am: fixed build
4491
4492         * dbus/Makefile.am: soname bump for libdbus
4493
4494         * glib/Makefile.am: soname bump for libdbus-glib
4495
4496 2005-03-05  Havoc Pennington  <hp@redhat.com>
4497
4498         * dbus/dbus-sysdeps.c:
4499         (pseudorandom_generate_random_bytes_buffer): fix to have no return
4500         value
4501         (_dbus_generate_random_bytes_buffer): fix return value
4502
4503         * dbus/dbus-sysdeps-util.c: s/GETPWNAME/GETPWNAM/ so configure
4504         checks actually work, from Tom Parker <fdo@tevp.net>
4505
4506 2005-03-01  Colin Walters  <walters@verbum.org>
4507
4508         * test/glib/test-dbus-glib.c (lose, lose_gerror): Utility
4509         functions copied from dbus-glib-tool.c.
4510         (main): Convert lots of error code to use them.
4511         Also add some testing for introspection bits.
4512
4513 2005-03-01  Colin Walters  <walters@verbum.org>
4514         
4515         * doc/TODO: Remove introspection signature TODO.
4516
4517 2005-02-27  Colin Walters  <walters@verbum.org>
4518
4519         * glib/dbus-gidl.c (property_info_get_type, arg_info_get_type):
4520         Change return value to const char * instead of int so we can do
4521         full signatures.
4522         (struct PropertyInfo, struct ArgInfo): Store char *.
4523         (property_info_new, arg_info_new): Update parameters, strdup.
4524         (property_info_unref, arg_info_unref): Free.
4525
4526         * glib/dbus-gidl.h: Update prototypes.
4527
4528         * glib/dbus-gparser.c (basic_type_from_string): Delete.
4529         (validate_signature): New function, just validates signature and
4530         sets GError.
4531         (parse_property, parse_arg): Invoke validate_signature.  Store
4532         signature instead of just type code.
4533
4534         * glib/dbus-gvalue.c (base_type_from_signature): New utility
4535         function to return a primary type for a signature, dropping
4536         information about types in container types.
4537         (dbus_gvalue_genmarshal_name_from_type)
4538         (dbus_gvalue_binding_type_from_type)
4539         (dbus_gvalue_ctype_from_type): Update to take full signature
4540          instead of type code.
4541         (dbus_gtype_to_dbus_type): Moved here from glib/dbus-gobject.c.
4542
4543         * glib/dbus-gvalue.h: Update prototypes for above.
4544
4545         * glib/dbus-gobject.c (gtype_to_dbus_type): Moved to
4546         glib/dbus-gvalue.c as dbus_gtype_to_dbus_type.
4547         (introspect_properties, introspect_signals, write_interface):
4548         Update to handle signatures, and remove usage of
4549         _dbus_gutils_type_to_string.
4550         (handle_introspect): Print out type codes instead of e.g. "string"
4551         in hardcoded introspection XML; also use x_AS_STRING constants
4552         instead of hardcoding in string.
4553
4554         * glib/dbus-glib-tool.c (pretty_print): Handle signature change
4555         to string.  Remove usage of _dbus_gutils_type_to_string.
4556
4557         * glib/dbus-gutils.c (_dbus_gutils_type_to_string): Delete.
4558
4559         * glib/dbus-gutils.h (_dbus_gutils_type_to_string): Update for
4560         deletion.
4561         
4562         * glib/dbus-binding-tool-glib.c (compute_marshaller)
4563         (compute_marshaller_name, generate_glue): Handle signature change
4564         to string.
4565         (write_formal_parameters, write_args_for_direction): Ditto, and
4566         remove FIXME.
4567
4568         * tools/dbus-tree-view.c (type_to_string): Delete.
4569         (info_set_func_text): Update to print full signatures.
4570
4571         * test/glib/test-service-glib.xml: Change types to new
4572         introspection format.
4573
4574 2005-02-26  Havoc Pennington  <hp@redhat.com>
4575
4576         * doc/TODO: remove the "guid" item
4577
4578         * test/glib/test-profile.c (no_bus_thread_func): use open_private
4579         (with_bus_thread_func): use open_private
4580
4581         * dbus/dbus-connection.c (dbus_connection_open_private): new
4582         function that works like the old dbus_connection_open()
4583         (dbus_connection_open): now returns an existing connection if
4584         possible
4585
4586         * dbus/dbus-server-unix.c (handle_new_client_fd_and_unlock): pass
4587         through the GUID to the transport
4588
4589         * dbus/dbus-server.c (_dbus_server_init_base): keep around the
4590         GUID in hex-encoded form.
4591
4592         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
4593         pass GUID argument in to the transport
4594
4595         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd): add
4596         guid argument
4597
4598         * dbus/dbus-transport.c (_dbus_transport_init_base): add guid argument
4599
4600         * dbus/dbus-auth.c (_dbus_auth_server_new): add guid argument
4601
4602 2005-02-25  Havoc Pennington  <hp@redhat.com>
4603
4604         * doc/dbus-specification.xml: document the GUID thing
4605
4606         * dbus/dbus-server.c (_dbus_server_init_base): initialize a
4607         globally unique ID for the server, and put a "guid=hexencoded"
4608         field in the address
4609
4610         * dbus/dbus-bus.c: fix missing #include of dbus-threads-internal.h
4611
4612         * dbus/dbus-message.c: ditto
4613
4614         * dbus/dbus-dataslot.c: ditto
4615
4616         * dbus/dbus-list.c: ditto
4617
4618         * dbus/dbus-internals.h: wait, just include
4619         dbus-threads-internal.h here
4620         
4621         * dbus/dbus-string.c (_dbus_string_copy_to_buffer): move back for
4622         use in main library
4623
4624         * dbus/dbus-sysdeps.c (_dbus_generate_random_bytes_buffer): new function
4625
4626 2005-02-24  Colin Walters  <walters@verbum.org>
4627
4628         * test/glib/Makefile.am (EXTRA_DIST): Add test-service-glib.xml
4629
4630 2005-02-24  John (J5) Palmieir  <johnp@redhat.com>
4631
4632         * glib/Makefile.am: added dbus-gobject.h to sources list
4633         so distcheck doesn't fail
4634         
4635 2005-02-24  Havoc Pennington  <hp@redhat.com>
4636
4637         * dbus/dbus-server.c, dbus/dbus-server-unix.c: change semantics so
4638         you must disconnect before unref, since locking and other things
4639         are screwed up otherwise. Fix assorted other locking stuff.
4640
4641         * dbus/dbus-signature.c (dbus_signature_iter_get_element_type):
4642         fix compilation
4643
4644         * dbus/dbus-threads-internal.h: move the mutex/condvar wrappers
4645         into a private header and don't export from the library
4646
4647         * throughout - call _dbus_thread_stuff vs. dbus_thread_stuff
4648
4649 2005-02-24  Colin Walters  <walters@verbum.org>
4650         
4651         * dbus/dbus-signature.c: New file; implements various functions
4652         related to type signatures.  Includes an interator for parsing,
4653         validation functions.
4654         (dbus_type_is_basic): Moved here from
4655         dbus-marshal-basic.c:_dbus_type_is_basic.
4656         (dbus_type_is_container): Moved here from
4657         dbus-marshal-basic.c:_dbus_type_is_container.
4658
4659         All callers of _dbus_type_is_container and _dbus_type_is_basic
4660         updated, and include dbus-signature.h.
4661
4662         * dbus/dbus-signature.h: New file; prototypes for the above.
4663
4664         * dbus/Makefile.am (DBUS_LIB_SOURCES): Add dbus-signature.c,
4665         dbus-signature.h.
4666
4667         * dbus/dbus-marshal-basic.c (map_type_char_to_type): New utility
4668         function factored out of _dbus_first_type_in_signature.
4669         (_dbus_first_type_in_signature_c_str): New function; returns first
4670         type code for a type signature character.
4671
4672         * dbus/dbus-marshal-basic.h: Prototype _dbus_first_type_in_signature_c_str,
4673         handle function moves.
4674
4675         * dbus/dbus-marshal-recursive.h: Export _dbus_type_signature_next.
4676
4677         * dbus/dbus-marshal-recursive.c (_dbus_type_signature_next): New
4678         function; skips to next complete type in type signature.
4679         Implemented using previous skip_one_complete_type.  Now
4680         skip_one_complete_type just delegates to
4681         _dbus_type_signature_next.
4682
4683         * dbus/dbus-marshal-basic.c (_dbus_type_is_basic): Moved
4684         to dbus-signature.c
4685         (_dbus_type_is_container): Ditto.
4686
4687         * doc/dbus-specification.xml: Update introspection sample to
4688         use real type signatures.
4689
4690         * dbus/dbus-test.h: Prototype signature test.
4691
4692         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): Run
4693         signature tests.
4694
4695         * dbus/dbus-protocol.h (DBUS_ERROR_INVALID_SIGNATURE): New error.
4696
4697 2005-02-23  John (J5) Palmieri  <johnp@redhat.com>
4698
4699         * python/dbus_bindings.pyx.in (PendingCall::get_reply):
4700         s/dbus_pending_call_get_reply/dbus_pending_call_steal_reply
4701
4702 2005-02-21  Colin Walters  <walters@verbum.org>
4703
4704         * dbus/dbus-test-main.c (main): Take optional specific test
4705         argument.
4706
4707         * dbus/dbus-test.c (run_test): New function, runs a test function
4708         with no data directory.
4709         (run_data_test): Like above, but takes data directory.
4710         (dbus_internal_do_not_use_run_tests): Take
4711         specific test argument.  Replace lots of cut n' paste code
4712         with run_test and run_data_test.
4713
4714         * dbus/dbus-test.h: Update prototype for
4715         dbus_internal_do_not_use_run_tests.
4716
4717 2005-02-20  Havoc Pennington  <hp@redhat.com>
4718
4719         Fix bugs reported by Daniel P. Berrange
4720         
4721         * dbus/dbus-server.c (_dbus_server_unref_unlocked): new function
4722         (protected_change_watch): new function
4723         (_dbus_server_toggle_watch, _dbus_server_remove_watch)
4724         (_dbus_server_add_watch): change to work like the
4725         dbus-connection.c equivalents; like those, probably kind of
4726         busted, but should at least mostly work for now
4727         (dbus_server_disconnect): drop the lock if we were already
4728         disconnected, patch from Daniel P. Berrange
4729
4730         * dbus/dbus-server.c (_dbus_server_toggle_timeout) 
4731         (_dbus_server_remove_timeout, _dbus_server_add_timeout): all the
4732         same stuff
4733
4734         * doc/TODO: todo about unscrewing this mess
4735
4736 2005-02-19  Colin Walters  <walters@verbum.org>
4737
4738         * glib/dbus-binding-tool-glib.c
4739         (dbus_binding_tool_output_glib_server): Fix iochannel refcounting.
4740
4741         * glib/dbus-glib-tool.c: Include dbus-glib-tool.h, as well
4742         as errno.h and sys/stat.h.
4743         (lose): New function, prints error with
4744         newline and exits.
4745         (lose_gerror): Similar, but takes GError for message.
4746         (main): Add --output argument to specify output file to write to,
4747         instead of always printing to stdout.  In this mode, determine
4748         timestamps on source files to see whether any are newer than the
4749         target file.  If not, exit.  Also convert a number of error
4750         messages to use lose (since it's shorter), and switch to using
4751         g_io_channel_shutdown.
4752
4753 2005-02-19  Havoc Pennington  <hp@redhat.com>
4754
4755         * glib/dbus-gobject.c
4756         (_dbus_glib_marshal_dbus_message_to_gvalue_array): add docs
4757
4758         * glib/dbus-glib.c: fix doxygen warnings
4759
4760         * glib/dbus-gparser.c (parse_annotation): error if an annotation
4761         is found on an <arg>
4762
4763 2005-02-17  Colin Walters  <walters@verbum.org>
4764
4765         * glib/dbus-gobject.h: Don't export
4766         _dbus_glib_marshal_dbus_message_to_gvalue_array.
4767         
4768         * glib/dbus-gobject.c (_dbus_glib_marshal_dbus_message_to_gvalue_array): Do rename.
4769         (invoke_object_method): Handle it.
4770
4771         * glib/dbus-gproxy.c (marshal_dbus_message_to_g_marshaller):
4772         Handle rename.
4773         
4774 2005-02-17  Colin Walters  <walters@verbum.org>
4775
4776         * bus/.cvsignore, doc/.cvsignore
4777         * test/data/valid-service-files/.cvsignore, test/glib/.cvsignore:
4778         Update.
4779
4780 2005-02-17  Colin Walters  <walters@verbum.org>
4781         
4782         * dbus/dbus-protocol.h (DBUS_SERVICE_ORG_FREEDESKTOP_DBUS):
4783         Rename to DBUS_SERVICE_DBUS.
4784         (DBUS_PATH_ORG_FREEDESKTOP_DBUS): Rename to DBUS_PATH_DBUS.
4785         (DBUS_PATH_ORG_FREEDESKTOP_LOCAL): Rename to DBUS_PATH_LOCAL.
4786         Change the value from "org.freedesktop.Local"
4787         to "org.freedesktop.DBus.Local".
4788         (DBUS_INTERFACE_ORG_FREEDESKTOP_DBUS): Rename to DBUS_INTERFACE_DBUS.
4789         (DBUS_INTERFACE_ORG_FREEDESKTOP_INTROSPECTABLE): Rename to
4790         DBUS_INTERFACE_INTROSPECTABLE.
4791         Change the value from "org.freedesktop.Introspectable"
4792         to "org.freedesktop.DBus.Introspectable".
4793         (DBUS_INTERFACE_ORG_FREEDESKTOP_PROPERTIES): Rename to
4794         DBUS_INTERFACE_PROPERTIES.
4795         Change the value from "org.freedesktop.Properties"
4796         to "org.freedesktop.DBus.Properties".
4797         (DBUS_INTERFACE_ORG_FREEDESKTOP_PEER): Rename to
4798         DBUS_INTERFACE_PEER.
4799         Change the value from "org.freedesktop.Peer"
4800         to "org.freedesktop.DBus.Peer".
4801         (DBUS_INTERFACE_ORG_FREEDESKTOP_LOCAL): 
4802         DBUS_INTERFACE_LOCAL.
4803         Change the value from "org.freedesktop.Local"
4804         to "org.freedesktop.DBus.Local".
4805
4806         All other users of those constants have been changed.
4807
4808         * bus/driver.c (bus_driver_handle_introspect): Use constants.
4809
4810         * glib/dbus-gobject.c (handle_introspect): Use constants.
4811
4812         * doc/dbus-faq.xml, doc/dbus-specification.xml: Update for rename.
4813
4814 2005-02-17  Colin Walters  <walters@verbum.org>
4815
4816         * glib/dbus-gparser.c (struct Parser): Add in_annotation boolean.
4817         (parse_node, parse_interface, parse_method, parse_signal)
4818         (parse_property, parse_annotation): Lose if we're currently in an
4819         annotation.
4820         (parse_annotation): New function.
4821         (parser_start_element, parser_end_element): Handle annotation.
4822         (parse_method, parse_interface): Remove support for c_name attribute,
4823         switch to annotations.
4824
4825         * glib/dbus-gidl.h (interface_info_get_binding_names)
4826         (method_info_get_binding_names)
4827         (interface_info_get_binding_name, method_info_get_binding_name)
4828         (interface_info_set_binding_name, method_info_set_binding_name):
4829         Remove.
4830         (interface_info_get_annotations, method_info_get_annotations)
4831         (interface_info_get_annotation, method_info_get_annotation)
4832         (interface_info_add_annotation, method_info_add_annotation):
4833         Prototype.
4834
4835         * glib/dbus-gidl.c (struct InterfaceInfo): Substitute "annotations"
4836         for "bindings".
4837         (struct MethodInfo): Ditto.
4838         Straightfoward conversion of binding methods into annotation methods
4839         as prototyped.
4840
4841         * glib/dbus-glib-tool.c (pretty_print): Print annotations.
4842
4843         * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_C_SYMBOL): Define.
4844
4845         * glib/dbus-binding-tool-glib.c (gather_marshallers, generate_glue):
4846         Use new annotation API.
4847
4848         * doc/introspect.dtd: Fix a number of DTD syntax errors.  Add
4849         annotation element.
4850         
4851         * doc/dbus-specification.xml: Discuss introspection annotations,
4852         include list of well-known annotations.
4853
4854         * test/glib/test-service-glib.xml: Make validate against new DTD.
4855
4856 2005-02-17  Colin Walters  <walters@verbum.org>
4857
4858         This patch is based on initial work from
4859         Paul Kuliniewicz <kuliniew@purdue.edu>.
4860
4861         * glib/dbus-gvalue.c (dbus_gvalue_init): New function; move
4862         initialization of GValue from dbus type to here.
4863         (dbus_gvalue_genmarshal_name_from_type): New function; generates a string
4864         for the "glib-genmarshal" program from a DBus type.
4865         (dbus_gvalue_binding_type_from_type): New function; turns a DBus type
4866         into the C name for it we use in the glib bindings.
4867         (dbus_gvalue_ctype_from_type): New function; maps a DBus type into a
4868         glib C type (not GValue).
4869         (dbus_gvalue_demarshal): invoke dbus_gvalue_init.
4870
4871         * glib/dbus-gutils.c (_dbus_gutils_wincaps_to_uscore): Moved here
4872         from dbus-gobject.c.
4873
4874         * glib/dbus-gutils.h: Prototype it.
4875
4876         * glib/dbus-gproxy.c: Include new dbus-gobject.h.
4877         (marshal_dbus_message_to_g_marshaller): Use new shared function
4878         dbus_glib_marshal_dbus_message_to_gvalue_array.
4879
4880         * glib/dbus-gparser.c (parse_interface, parse_method): Handle c_name attribute.
4881         Will be changed once we have annotations.
4882
4883         * glib/dbus-gobject.c: Change info_hash_mutex from GStaticMutex to
4884         GStaticRWLock.  Callers updated.
4885         (wincaps_to_uscore): Move to dbus-gutils.c.  Callers updated.
4886         (string_table_next): New function for iterating over zero-terminated
4887         string value array.
4888         (string_table_lookup): New function; retrieves specific entry in
4889         array.
4890         (get_method_data): New function; look up method data in object data chunk.
4891         (object_error_domain_prefix_from_object_info)
4892         (object_error_code_from_object_info): New functions, but not implemented yet.
4893         (method_interface_from_object_info): New function; retrieve interface name.
4894         (method_name_from_object_info): New function; retrieve method name.
4895         (method_arg_info_from_object_info): New function; retrieve argument data.
4896         (arg_iterate): New function; iterates over serialized argument data.
4897         (method_dir_signature_from_object_info): New function; returns a
4898         GString holding type signature for arguments for just one
4899         direction (input or output).
4900         (method_input_signature_from_object_info)
4901         (method_output_signature_from_object_info): New functions.
4902         (dbus_glib_marshal_dbus_message_to_gvalue_array): New shared function;
4903         converts dbus message arguments into a GValue array.  Used for both
4904         signal handling and method invocation.
4905         (struct DBusGlibWriteIterfaceData): New utility structure.
4906         (write_interface): New function; generate introspection XML for
4907         an interface.
4908         (introspect_interfaces): New function; gathers all interface->methods,
4909         generates introspection XML for them.
4910         (handle_introspect): Invoke introspect_interfaces.
4911         (get_object_property): Be sure to zero-initalize stack-allocated GValue.
4912         (lookup_object_and_method): New function; examines an incoming message
4913         and attempts to match it up (via interface, method name, and argument
4914         signature) with a known object and method.
4915         (gerror_domaincode_to_dbus_error_name): New function; converts a
4916         GError domain and code into a DBus error name.  Needs GError data
4917         added to object introspection to work well.
4918         (gerror_to_dbus_error_message): Creates a DBusMessage error return from
4919         GError.
4920         (invoke_object_method): New function to invoke an object method
4921         looked up via lookup_object_and_method.  Parses the incoming
4922         message, turns it into a GValue array, then invokes the marshaller
4923         specified in the DBusGMethodInfo.  Creates a new message with
4924         either return values or error message as appropriate.
4925         (gobject_message_function): Invoke lookup_object_and_method and
4926         invoke_object_method.
4927
4928         * glib/dbus-glib-tool.c: Include dbus-binding-tool-glib.h.
4929         (enum DBusBindingOutputMode): New enum for binding output modes.
4930         (pretty_print): Print binding names.
4931         (dbus_binding_tool_error_quark): GError bits.
4932         (version): Fix typo.
4933         (main): Create GIOChannel for output.  Parse new --mode argument,
4934         possible values are "pretty-print", "glib-server", "glib-client".
4935         Use mode to invoke appropriate function.
4936         
4937         * glib/dbus-gobject.h: Prototype dbus_glib_marshal_dbus_message_to_gvalue_array.
4938
4939         * glib/dbus-glib-tool.h: New header, just includes GError bits
4940         for now.
4941
4942         * glib/dbus-gidl.c (struct InterfaceInfo): Add bindings hashtable;
4943         maps binding style to name.
4944         (struct MethodInfo): Ditto.
4945         (get_hash_keys, get_hash_key): Utility function, returns keys for
4946         a GHashTable.
4947         (interface_info_new, method_info_new): Initialize bindings.
4948         (interface_info_unref, method_info_unref): Destroy bindings.
4949         (method_info_get_binding_names, method_info_get_binding_name)
4950         (interface_info_get_binding_names, interface_info_get_binding_name):
4951         Functions for retrieving binding names.
4952         (method_info_set_binding_name, interface_info_set_binding_name):
4953         Functions for setting binding names.
4954
4955         * glib/dbus-binding-tool-glib.h: New file, has prototypes
4956         for glib binding generation.
4957
4958         * glib/dbus-binding-tool-glib.c: New file, implements server-side
4959         and client-side glib glue generation.
4960
4961         * glib/Makefile.am (dbus_binding_tool_SOURCES): Add
4962         dbus-binding-tool-glib.c, dbus-binding-tool-glib.h,
4963         dbus-glib-tool.h.
4964
4965         * dbus/dbus-glib.h (struct DBusGMethodMarshaller): Remove in favor
4966         of using GClosureMarshal directly.
4967         (struct DBusGObjectInfo): Add n_infos member.
4968
4969         * test/glib/test-service-glib.xml: New file; contains introspection data
4970         for MyTestObject used in test-service-glib.c.
4971
4972         * test/glib/test-service-glib.c (enum MyObjectError): New GError enum.
4973         (my_object_do_nothing, my_object_increment, my_object_throw_error)
4974         (my_object_uppercase, my_object_many_args): New test methods.
4975         (main): Use dbus_g_object_class_install_info to include generated object
4976         info.
4977
4978         * test/glib/Makefile.am: Generate server-side glue for test-service-glib.c,
4979         as well as client-side bindings.
4980
4981         * test/glib/test-dbus-glib.c: Include test-service-glib-bindings.h.
4982         (main): Activate TestSuiteGLibService; test invoke a bunch of its methods
4983         using both the dbus_gproxy stuff directly as well as the generated bindings.
4984
4985 2005-02-15  Havoc Pennington  <hp@redhat.com>
4986
4987         * dbus/dbus-connection.c (dbus_connection_dispatch): always
4988         complete a pending call, don't run filters first.
4989
4990         * glib/dbus-gproxy.c (dbus_g_proxy_end_call): change to use
4991         dbus_pending_call_steal_reply
4992
4993         * dbus/dbus-pending-call.c (dbus_pending_call_block): just call
4994         _dbus_connection_block_pending_call
4995         (dbus_pending_call_get_reply): change to steal_reply and return a
4996         ref
4997
4998         * dbus/dbus-connection.c
4999         (dbus_connection_send_with_reply_and_block): port to work in terms
5000         of DBusPendingCall
5001         (_dbus_connection_block_pending_call): replace block_for_reply
5002         with this
5003
5004 2005-02-14  Havoc Pennington  <hp@redhat.com>
5005
5006         * dbus/dbus-userdb-util.c (_dbus_user_database_lookup_group):
5007         properly handle looking up group information by name; fix 
5008         from j@bootlab.org
5009
5010 2005-02-13  Havoc Pennington  <hp@redhat.com>
5011
5012         * dbus/dbus-connection.c (dbus_connection_return_message) 
5013         (dbus_connection_borrow_message): hold dispatch lock while message
5014         is outstanding
5015         (_dbus_connection_block_for_reply): hold dispatch lock while we
5016         block for the reply, so nobody steals our reply
5017         (dbus_connection_pop_message): hold the dispatch lock while we
5018         pluck the message
5019
5020 2005-02-13  Havoc Pennington  <hp@redhat.com>
5021
5022         * dbus/dbus-connection.c (_dbus_connection_acquire_dispatch)
5023         (_dbus_connection_release_dispatch)
5024         (_dbus_connection_acquire_io_path)
5025         (_dbus_connection_release_io_path): make the mutex and condvar
5026         control access to the "acquired" flag. Drop the connection lock
5027         while waiting on the condvar. Hopefully these are baby steps in
5028         roughly the right direction.
5029
5030 2005-02-13  Havoc Pennington  <hp@redhat.com>
5031
5032         * dbus/dbus-connection.c: use separate mutexes for the condition
5033         variables; this is some kind of baseline for sanity, but the
5034         condition variables still aren't used correctly afaict
5035
5036 2005-02-13  Havoc Pennington  <hp@redhat.com>
5037
5038         * dbus/dbus-object-tree.c (handle_default_introspect_and_unlock):
5039         fix a double-unlock
5040
5041         * dbus/dbus-connection.c
5042         (_dbus_connection_detach_pending_call_unlocked): add this
5043
5044         Initial semi-correct pass through to fix thread locking; there are
5045         still some issues with the condition variable paths I'm pretty
5046         sure
5047         
5048         * dbus/dbus-server.c: add a mutex on DBusServer and appropriate
5049         lock/unlock calls
5050
5051         * dbus/dbus-connection.c (_dbus_connection_do_iteration_unlocked):
5052         rename to add _unlocked
5053         (struct DBusConnection): move "dispatch_acquired" and
5054         "io_path_acquired" to use only one bit each.
5055         (CONNECTION_LOCK, CONNECTION_UNLOCK): add checks with !DBUS_DISABLE_CHECKS
5056         (dbus_connection_set_watch_functions): hacky fix to reentrancy
5057         (_dbus_connection_add_watch, _dbus_connection_remove_watch) 
5058         (_dbus_connection_toggle_watch, _dbus_connection_add_timeout) 
5059         (_dbus_connection_remove_timeout) 
5060         (_dbus_connection_toggle_timeout): drop lock when calling out to
5061         user functions; done in a hacky/bad way.
5062         (_dbus_connection_send_and_unlock): add a missing unlock
5063         (_dbus_connection_block_for_reply): add a missing unlock
5064
5065         * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated):
5066         drop lock in a hacky probably unsafe way to call out to user
5067         function
5068
5069 2005-02-12  Havoc Pennington  <hp@redhat.com>
5070
5071         * tools/dbus-tree-view.c (info_set_func_text): display more
5072         details on args
5073
5074         * bus/driver.c (bus_driver_handle_list_services): list the bus
5075         driver
5076
5077         * glib/dbus-gparser.c (parse_arg): generate an arg name if none is supplied
5078
5079         * glib/dbus-gidl.c (signal_info_get_n_args): new function
5080         (method_info_get_n_args): new function
5081
5082 2005-02-12  Havoc Pennington  <hp@redhat.com>
5083
5084         * bus/driver.c (bus_driver_handle_introspect): add introspection
5085         for bus driver
5086
5087 2005-02-12  Havoc Pennington  <hp@redhat.com>
5088
5089         * bus/driver.c: put the signature of each bus driver method in the
5090         table of handlers and check it on incoming calls; this isn't
5091         really useful, but going to add introspect support in a minute.
5092
5093 2005-02-11  Joe Shaw  <joeshaw@novell.com>
5094
5095         * mono/Connection.cs: The unpredictability of finalizers in mono
5096         prevents us from deterministically disconnecting the filters from
5097         the Service class's finalizer, so move tracking of filters and
5098         matches here.  Add API for that.
5099
5100         * mono/Service.cs: Remove the code, add code which calls the
5101         methods now on the Connection class.
5102
5103 2005-02-11  John (J5) Palmieri  <johnp@redhat.com>
5104
5105         * python/dbus.py (class Sender): added to support dbus signals better
5106         (Bus::add_signal_receiver): added expand_args parameter which defaults
5107         to True.  When expand args is True the signal handler will pass the 
5108         message arguments as parameters to the signal handler.  If False
5109         revert to previous behavior where the signal handler must get the
5110         argument list from the message.  This is to help port applications
5111         like HAL that have a tendancy to send variable length argument lists.
5112         self._match_rule_to_receivers is now a dict of dicts.
5113         (Bus::remove_signal_receiver): pop handler off the dict intead of 
5114         removing it from a list
5115         (Bus::_signal_func): change signal handlers so that interface,
5116         signal_name, service, path and message are packed into a Sender
5117         object and that is passed to the handler.  If expand_args is True
5118         extract the args list from the message and append it to the parameter
5119         list
5120         
5121         * python/dbus_bindings.pyx.in (class Signature): added to support 
5122         signiature types
5123         (MessageIter::__init__): changed iteration limit to match D-BUS
5124         (MessageIter::get*): added INT16, UINT16, SIGNATURE, DICT_ENTRY, 
5125         STRUCT and VARIENT type support
5126         (MessageIter::python_value_to_dbus_sig): made recursive to support
5127         recursive types
5128         (MessageIter::append*): added Signature, dict, tuple 
5129         support
5130
5131         * python/examples/example-client.py: added examples of getting tuples
5132         and dicts
5133
5134         * python/examples/example-service.py: added examples of sending tuples
5135         and dicts
5136
5137         * python/examples/example-signal-recipient.py: Fixed to handle new
5138         signal callback format
5139
5140 2005-02-10  Havoc Pennington  <hp@redhat.com>
5141
5142         * test/glib/test-dbus-glib.c (main): fix so this test doesn't fail
5143         (call dbus_g_proxy_add_signal)
5144
5145         * dbus/dbus-server-unix.c (_dbus_server_new_for_tcp_socket):
5146         escape the hostname
5147         (_dbus_server_new_for_domain_socket): escape the path
5148
5149         * dbus/dbus-address.c (dbus_address_escape_value): new
5150         (dbus_address_unescape_value): new
5151         (dbus_parse_address): unescape values
5152
5153         * dbus/dbus-string.c (_dbus_string_append_byte_as_hex): new function
5154
5155         * doc/dbus-specification.xml: explain how to escape values in
5156         addresses
5157
5158 2005-02-10  Havoc Pennington  <hp@redhat.com>
5159
5160         * dbus/dbus-message-factory.c (generate_special): modify test to
5161         avoid using a non-basic dict key
5162
5163         * dbus/dbus-marshal-validate-util.c: add test for the below
5164
5165         * doc/dbus-specification.xml: require that dict keys are a basic
5166         type
5167
5168         * dbus/dbus-marshal-validate.c
5169         (_dbus_validate_signature_with_reason): require that dict key is a
5170         basic type
5171
5172 2005-02-10  Havoc Pennington  <hp@redhat.com>
5173
5174         * dbus/dbus-object-tree.c (handle_default_introspect_and_unlock):
5175         change to be _and_unlock instead of _unlocked
5176
5177         * dbus/dbus-connection.c
5178         (_dbus_connection_send_preallocated_unlocked_no_update): rename to
5179         have no_update so we can find this bug quickly in future
5180
5181 2005-02-10  Havoc Pennington  <hp@redhat.com>
5182
5183         * dbus/dbus-message-util.c (verify_test_message): tests for string
5184         array
5185
5186         * dbus/dbus-message.c (dbus_message_append_args_valist): add
5187         support for arrays of string/signature/path
5188
5189 2005-02-10  Joe Shaw  <joeshaw@novell.com>
5190
5191         * dbus/dbus-connection.c
5192         (_dbus_connection_queue_received_message_link,
5193         _dbus_connection_message_sent): Add the path to
5194         the verbose output.
5195         (_dbus_connection_send_preallocated_and_unlock): Added.  Calls
5196         _dbus_connection_send_preallocated_unlocked(), updated the
5197         dispatch status, and unlocks.  Fixes a bug where certain
5198         situations (like a broken pipe) could cause a Disconnect message
5199         to not be sent, tricking the bus into thinking a service was still
5200         there when the process had quit.
5201         (_dbus_connection_send_preallocated): Call
5202         _dbus_connection_send_preallocated_and_unlock().
5203         (_dbus_connection_send_and_unlock): Added.  Calls
5204         _dbus_connection_send_preallocated_and_unlock().
5205         (dbus_connection_send): Call _dbus_connection_send_and_unlock().
5206         (dbus_connection_send_with_reply): Update the dispatch status and
5207         unlock.
5208
5209         * mono/Service.cs (~Service): Added.  Removes the filter so that
5210         we don't get unmanaged code calling back into a GCed delegate.
5211         (RemoveFilter); Added.
5212
5213 2005-02-09  John (J5) Palmieri  <johnp@redhat.com>
5214
5215         * dbus/dbus-message.c (dbus_message_iter_open_container):
5216         - Removed check for iterator type being an array because
5217         get_arg_type does not work with writer iterators
5218         - Pass NULL to _dbus_type_writer_recurse if signiture is NULL
5219
5220 2005-02-07  Havoc Pennington  <hp@redhat.com>
5221
5222         * doc/dbus-specification.xml: some more language cleanups; add
5223         stuff about how to deal with invalid protocol and extension
5224         points; add _ to allowed chars in auth commands; add EXTENSION_
5225         auth command prefix
5226
5227 2005-02-06  Havoc Pennington  <hp@redhat.com>
5228
5229         * s/expected/required/ in a couple places for clarity
5230
5231 2005-02-07  Colin Walters  <walters@verbum.org>
5232
5233         * bus/selinux.c (bus_selinux_allows_send): Handle NULL for
5234         sender or proposed_recipient.
5235
5236 2005-02-06  Havoc Pennington  <hp@redhat.com>
5237
5238         * dbus/dbus-message-factory.c (generate_special): more tests
5239
5240         * dbus/dbus-marshal-validate.c (validate_body_helper): detect
5241         array length that exceeds the maximum
5242
5243 2005-02-05  Havoc Pennington  <hp@redhat.com>
5244
5245         * dbus/dbus-message-factory.c (generate_special): more test cases,
5246         increasing coverage
5247
5248         * dbus/dbus-marshal-validate.c (validate_body_helper): return the
5249         reason why a signature was invalid
5250
5251         * dbus/dbus-marshal-header.c (load_and_validate_field): fix to
5252         skip the length of the string before we look at it in validation
5253
5254         * dbus/dbus-string-util.c (_dbus_string_test): add tests for
5255         equal_substring
5256
5257         * dbus/dbus-message.c (_dbus_message_loader_new): default
5258         max_message_length to DBUS_MAXIMUM_MESSAGE_LENGTH
5259
5260 2005-02-05  Havoc Pennington  <hp@redhat.com>
5261
5262         * dbus/dbus-marshal-validate.c (validate_body_helper): fix crash
5263         if the signature of a variant was empty
5264         (_dbus_validate_signature_with_reason): catch "(a)" (array inside
5265         struct with no element type)
5266
5267         * dbus/dbus-message-factory.c (generate_uint32_changed): add more
5268         mangled messages to break things
5269
5270 2005-02-04  Havoc Pennington  <hp@redhat.com>
5271
5272         * glib/dbus-gproxy.c (dbus_g_proxy_disconnect_signal): use
5273         g_quark_try_string() so it actually can return 0
5274         (dbus_g_proxy_connect_signal): ditto
5275
5276 2005-02-04  Havoc Pennington  <hp@redhat.com>
5277
5278         * glib/dbus-gproxy.c (dbus_g_proxy_emit_remote_signal): fix a
5279         bogus warning
5280         (tristring_from_message): assert cleanly on null path/interface
5281         (should not be possible though I decided later)
5282         (dbus_g_proxy_dispose): move proxy manager unregistration here
5283         (DBUS_G_PROXY_DESTROYED): add this macro, and use it in a bunch of
5284         g_return_if_fail() checks
5285
5286 2005-02-04  Havoc Pennington  <hp@redhat.com>
5287
5288         * doc/Makefile.am (EXTRA_DIST): add DTDs to makefile
5289
5290         * doc/introspect.dtd: add introspect.dtd from David A. Wheeler
5291         (with some minor changes)
5292
5293         * doc/dbus-specification.xml: add deprecated attribute to
5294         introspection format
5295
5296 2005-01-31  Havoc Pennington  <hp@redhat.com>
5297
5298         * glib/dbus-gproxy.c: rewrite how signals work again, this time I
5299         think it's sort of right
5300
5301 2005-01-30  Havoc Pennington  <hp@redhat.com>
5302
5303         * tools/dbus-viewer.c: kind of half-ass hook up the option menu.
5304
5305 2005-01-30  Havoc Pennington  <hp@redhat.com>
5306
5307         * tools/dbus-names-model.c: dynamically watch NameOwnerChanged
5308
5309         * autogen.sh: change to autotools 1.9
5310
5311         * glib/dbus-gproxy.c: completely change how signals work
5312         (dbus_g_proxy_add_signal): new function to specify signature of a
5313         signal
5314         (dbus_g_proxy_emit_received): marshal the dbus message to GValues,
5315         and g_warning if the incoming message has the wrong signature.
5316
5317 2005-01-30  Havoc Pennington  <hp@redhat.com>
5318
5319         * tools/dbus-names-model.c (have_names_notify): fix this
5320
5321         * dbus/dbus-message.c (_dbus_message_iter_get_args_valist): clean
5322         up the string array handling a bit 
5323
5324 2005-01-30  Havoc Pennington  <hp@redhat.com>
5325
5326         * glib/dbus-glib.c (dbus_g_pending_call_set_notify): new function
5327         (dbus_g_pending_call_cancel): new function
5328
5329         * dbus/dbus-glib.h: move GType decls for connection/message here;
5330         * dbus/dbus-glib.c: move all the g_type and ref/unref stuff in
5331         here, just kind of rationalizing how we handle all that
5332
5333         * tools/dbus-names-model.c: new file for a tree model listing the
5334         services on a bus
5335
5336         * tools/dbus-tree-view.c (model_new): use proper typing on the
5337         model rows
5338
5339 2005-01-30  Havoc Pennington  <hp@redhat.com>
5340
5341         * glib/dbus-gmain.c: add a custom GSource back that just checks
5342         whether the message queue has anything in it; otherwise, there are 
5343         cases where we won't see messages in the queue since there was no 
5344         IO visible to the glib main loop
5345
5346         * dbus/dbus-connection-internal.h (_DBUS_DEFAULT_TIMEOUT_VALUE):
5347         increase default message timeout to 25 seconds
5348
5349 2005-01-30  Havoc Pennington  <hp@redhat.com>
5350
5351         * test/glib/test-profile.c (no_bus_stop_server): remove the
5352         warning about the g_warning that I just fixed
5353
5354         * glib/dbus-gmain.c: rewrite the main loop stuff to avoid the
5355         custom source, seems to be a lot easier to understand and work
5356         better.
5357
5358 2005-01-30  Havoc Pennington  <hp@redhat.com>
5359
5360         I think this main loop thing is conceptually broken, but here are 
5361         some band aids. I'll maybe rewrite it in a minute.
5362         
5363         * glib/dbus-gmain.c (add_timeout): timeout stuff doesn't use the
5364         custom GSource, so don't pass it in; confusing
5365         (gsource_server_finalize, gsource_connection_finalize): add
5366         finalize handlers that remove all the watches.  
5367
5368 2005-01-30  Havoc Pennington  <hp@redhat.com>
5369
5370         * glib/dbus-gobject.c (introspect_properties): fix the XML
5371         generated
5372
5373         * dbus/dbus-message.c (dbus_message_unref): add an in_cache flag
5374         which effectively detects the use of freed messages
5375
5376         * glib/dbus-gobject.c (handle_introspect): modify and return the
5377         reply message instead of the incoming message
5378
5379         * dbus/dbus-object-tree.c (handle_default_introspect_unlocked):
5380         gee, maybe it should SEND THE XML instead of just making a string
5381         and freeing it again ;-)
5382
5383         * tools/dbus-print-message.c (print_message): improve printing of
5384         messages
5385
5386         * configure.in: add debug-glib.service to the output
5387
5388 2005-01-30  Havoc Pennington  <hp@redhat.com>
5389
5390         dbus-viewer introspected and displayed the bus driver
5391         
5392         * dbus/dbus-object-tree.c 
5393         (object_tree_test_iteration): add tests for a handler registered on "/"
5394
5395         * dbus/dbus-object-tree.c
5396         (_dbus_decompose_path): fix to handle path "/" properly
5397         (run_decompose_tests): add tests for path decomposition
5398         
5399         * glib/dbus-gutils.c (_dbus_gutils_split_path): fix to handle "/"
5400         properly
5401
5402         * glib/dbus-gobject.c (handle_introspect): fix quotes
5403
5404         * test/glib/run-test.sh: support launching the bus, then running
5405         dbus-viewer
5406
5407         * test/glib/test-service-glib.c (main): put in a trivial gobject
5408         subclass and register it on the connection
5409
5410         * bus/driver.c (bus_driver_handle_introspect): implement
5411         introspection of the bus driver service
5412
5413         * dbus/dbus-protocol.h: add #defines for the XML namespace,
5414         identifiers, doctype decl
5415
5416         * bus/driver.c (bus_driver_handle_get_service_owner): handle
5417         attempts to get owner of DBUS_SERVICE_ORG_FREEDESKTOP_DBUS by 
5418         returning the service unchanged.
5419         (bus_driver_handle_message): remove old check for reply_serial in
5420         method calls, now the message type deals with that
5421         (bus_driver_handle_message): handle NULL interface
5422
5423         * glib/dbus-gproxy.c (dbus_g_proxy_get_bus_name): new function
5424
5425         * glib/dbus-gloader-expat.c (description_load_from_string): allow
5426         -1 for len
5427
5428         * tools/dbus-viewer.c: add support for introspecting a service on
5429         a bus
5430
5431         * glib/dbus-gproxy.c (dbus_g_pending_call_ref): add
5432         (dbus_g_pending_call_unref): add
5433
5434 2005-01-29  Havoc Pennington  <hp@redhat.com>
5435
5436         * tools/dbus-tree-view.c: add support for displaying properties.
5437         (run dbus-viewer with an introspect xml file as arg, then resize
5438         the window so the tree elements show up, not sure what that is)
5439
5440         * glib/dbus-gobject.c (handle_introspect): return
5441         org.freedesktop.Properties and org.freedesktop.Introspectable
5442         interfaces when we are introspected.
5443
5444         * doc/dbus-specification.xml: allow empty interface name when 
5445         Get/Set a property
5446
5447 2005-01-29  Havoc Pennington  <hp@redhat.com>
5448
5449         * glib/Makefile.am: rename dbus-glib-tool to dbus-binding-tool;
5450         though it uses glib, it could be extended for any binding in
5451         principle
5452
5453         * glib/dbus-gobject.c (gobject_message_function): change to the
5454         new way properties work
5455
5456         * dbus/dbus-protocol.h: add the new interfaces
5457
5458         * doc/dbus-specification.xml: document the introspection format,
5459         Introspectable interface, and add an org.freedesktop.Properties
5460         interface.
5461
5462         * glib/dbus-gparser.c: add support for a <property> element
5463
5464         * glib/dbus-gidl.c: add PropertyInfo
5465
5466         * glib/dbus-gobject.c (handle_introspect): put the outermost
5467         <node> outside the signal and property descriptions.
5468         (introspect_properties): export properties as <property> rather
5469         than as method calls
5470
5471 2005-01-28  Havoc Pennington  <hp@redhat.com>
5472
5473         * doc/TODO, doc/dbus-specification.xml: spec and TODO tweaks
5474         related to authentication protocol
5475
5476 2005-01-28  John (J5) Palmieri  <johnp@redhat.com>
5477
5478         * python/dbus_bindings.pyx.in: Updated to handle new D-BUS type system
5479                 - BUS_ACTIVATION -> BUS_STARTER
5480                 - DBUS_BUS_ACTIVATION -> DBUS_BUS_STARTER
5481                 - class MessageIter (__init__): Added recursion checking 
5482                 so we throw a nice error instead of just disconnecting from the
5483                 bus.
5484                 (get): Added arg_type parameter for recursion.
5485                 Removed the nil type
5486                 Added signiture type placeholder (not implemented)
5487                 Added struct type placeholder (not implemented)
5488                 Added varient type placeholder (not implemented)
5489                 Commented out dict type for now     
5490                 (get_element_type): renamed from get_array_type
5491                 (get_*): changed to use the dbus_message_iter_get_basic API
5492                 (get_*_array): removed in favor of recursive get_array method
5493                 (get_array): new recursive method which calls get to marshal
5494                 the elements of the array
5495                 (value_to_dbus_sig): New method returns the corrasponding
5496                 dbus signiture to a python value
5497                 (append): Comment out dict handling for now
5498                 Handle lists with the new recursive API
5499                 Comment out None handling for now
5500                 (append_nil): removed
5501                 (append_*): changed to use dbus_message_iter_append_basic API
5502                 (append_*_array): removed in favor of recursive append_array 
5503                 method
5504                 (__str__): Make it easier to print out recursive iterators
5505                 for debugging
5506                 - class Message (__str__): moved type inspection to the
5507                 MessageIter class' __str__ method
5508                 (get_iter): Added an append parameter wich defaults to False
5509                 If True use the new API's to create an append iterator
5510
5511         * python/dbus.py: Update to use new bindings API
5512                 - TYPE_ACTIVATION -> TYPE_STARTER
5513                 - class Bus (_get_match_rule): GetServiceOwner -> GetNameOwner
5514                 - class ActivationBus -> class StarterBus
5515                 - class RemoteObject (__call__): get an append iterator
5516                 - (_dispatch_dbus_method_call): get an append iterator
5517                 - class Object (emit_signal): get an append iterator
5518
5519         * python/examples/: Fixed up the examples to work with the new API
5520                 
5521 2005-01-28  Joe Shaw  <joeshaw@novell.com>
5522
5523         * configure.in: Bump version up to 0.30.
5524
5525         * HACKING: Add a release item to bump the version number up after 
5526         a release.
5527
5528 2005-01-28  Havoc Pennington  <hp@redhat.com>
5529
5530         * doc/dbus-specification.xml: update to describe 16-bit types and
5531         dict entries
5532
5533         * dbus/dbus-marshal-basic.c (_dbus_unpack_uint16): fix broken
5534         assertion
5535
5536         * dbus/dbus-protocol.h (DBUS_TYPE_DICT_ENTRY): add DICT_ENTRY as a
5537         type
5538
5539         * dbus/dbus-marshal-recursive.c: implement
5540
5541 2005-01-27  Havoc Pennington  <hp@redhat.com>
5542
5543         * dbus/dbus-arch-deps.h.in: add 16/32-bit types
5544
5545         * configure.in: find the right type for 16 and 32 bit ints as well
5546         as 64
5547
5548         * dbus/dbus-protocol.h (DBUS_TYPE_INT16, DBUS_TYPE_UINT16): add
5549         the 16-bit types so people don't have to stuff them in 32-bit or
5550         byte arrays.
5551
5552 2005-01-27  Havoc Pennington  <hp@redhat.com>
5553
5554         * dbus/dbus-message.c: byteswap the message if you init an
5555         iterator to read/write from it
5556         
5557         * dbus/dbus-marshal-byteswap.c: new file implementing 
5558         _dbus_marshal_byteswap()
5559
5560         * dbus/dbus-marshal-basic.c: add _dbus_swap_array()
5561
5562 2005-01-26  Havoc Pennington  <hp@redhat.com>
5563         
5564         * dbus/dbus-marshal-validate-util.c: break this out (and fix
5565         build, apparently - nobody noticed?)
5566         
5567 2005-01-26  Havoc Pennington  <hp@redhat.com>
5568
5569         * dbus/dbus-marshal-recursive.h: remove todo comment
5570
5571 2005-01-25  Joe Shaw  <joeshaw@novell.com>
5572
5573         * Land the mono binding changes to conform to the new APIs.
5574
5575         * mono/Makefile.am: Remove Custom.cs, DBusType/Custom.cs,
5576         DBusType/Dict.cs, and DBusType/Nil.cs from the build.
5577
5578         * mono/Arguments.cs (GetCodeAsString): Added.  Returns the dbus
5579         type code as a string.
5580         (InitAppending): Rename dbus_message_append_iter_init() to
5581         dbus_message_iter_init_append().
5582
5583         * mono/BusDriver.cs: Rename ServiceEventHandler to
5584         NameOwnerChangedHandler.  Rename GetServiceOwner to GetOwner.
5585         Rename ServiceOwnerChanged to NameOwnerChanged.
5586
5587         * mono/Connection.cs: Rename BaseService to UniqueName, and the
5588         underlying C call.
5589
5590         * mono/Custom.cs: Removed.  The CUSTOM type has been removed.
5591
5592         * mono/Service.cs: Rename Exists to HasOwner, internally rename
5593         dbus_bus_acquire_service() to dbus_bus_request_name().
5594
5595         * mono/DBusType/Array.cs (ctor): Use Type.GetElementType() instead
5596         of Type.UnderlyingSystemType to get the correct element type for
5597         the array.
5598         (ctor): Update code for new APIs: use dbus_message_iter_recurse(),
5599         dbus_message_get_{element|arg}_type() instead of
5600         dbus_message_iter_init_array_iterator().
5601         (Append): Replace dbus_message_iter_append_array() with
5602         dbus_message_iter_open_container() and
5603         dbus_message_iter_close_container().
5604
5605         * mono/DBusType/Custom.cs, mono/DBusType/Nil.cs: Removed.  These
5606         types have been removed.
5607         
5608         * mono/DBusType/*.cs: Replace calls of
5609         dbus_message_iter_get_[type]() to dbus_message_iter_get_basic(),
5610         but specify the type in the DllImport extern declaration.  Ditto
5611         for dbus_message_iter_append_[type]() ->
5612         dbus_message_iter_append_basic().
5613
5614         * mono/example/BusListener.cs: Update for ServiceEventHandler ->
5615         NameOwnerChangedHandler.
5616
5617 2005-01-25  John (J5) Palmieri  <johnp@redhat.com>
5618
5619         * python/dbus_bindings.pyx.in: Rename of methods and bindings
5620                 - get_base_service -> get_unique_name
5621                 - bus_get_base_service -> bus_get_unique_name
5622                 - dbus_bus_get_base_service -> dbus_bus_get_unique_name
5623                 - ACTIVATION_REPLY_ACTIVATED -> DBUS_START_REPLY_SUCCESS 
5624                 - ACTIVATION_REPLY_ALREADY_ACTIVE -> DBUS_START_REPLY_ALREADY_RUNNING
5625                 - bus_activate_service -> bus_start_service_by_name
5626                 - dbus_bus_activate_service -> dbus_bus_start_service_by_name
5627                 - bus_acquire_service -> bus_request_name
5628                 - dbus_bus_acquire_service -> dbus_bus_request_name
5629                 - bus_service_exists -> bus_name_has_owner
5630                 - dbus_bus_service_exists -> dbus_bus_name_has_owner
5631
5632         * python/dbus.py: Rename of methods
5633                 - activate_service -> start_service_by_name
5634                 - bus_acquire_service -> bus_request_name
5635                 - ACTIVATION_REPLY_ACTIVATED -> START_REPLY_SUCCESS 
5636                 - ACTIVATION_REPLY_ALREADY_ACTIVE -> START_REPLY_ALREADY_RUNNING
5637
5638         
5639 2005-01-24  Joe Shaw  <joeshaw@novell.com>
5640
5641         * dbus/dbus-connection.c (dbus_connection_dispatch): Print out the
5642         signature for the method that can't be found.
5643
5644         * dbus/dbus-message.c (dbus_message_iter_init): To check to see if
5645         the message has any arguments, we need to call
5646         _dbus_type_reader_get_current_type(), not
5647         _dbus_type_reader_has_next().
5648
5649 2005-01-24  Havoc Pennington  <hp@redhat.com>
5650
5651         * dbus/dbus-message-factory.c: more testing of message validation
5652
5653         * dbus/dbus-protocol.h (DBUS_MINIMUM_HEADER_SIZE): move to this
5654         header
5655
5656 2005-01-23  Havoc Pennington  <hp@redhat.com>
5657
5658         * dbus/dbus-message-factory.c, dbus/dbus-message-util.c: 
5659         get this all working, not many tests in the framework yet though
5660
5661 2005-01-22  Havoc Pennington  <hp@redhat.com>
5662
5663         * doc/dbus-faq.xml, doc/dbus-tutorial: add a FAQ and update
5664         tutorial, based on work from David Wheeler.
5665
5666 2005-01-21  Havoc Pennington  <hp@redhat.com>
5667
5668         * dbus/dbus-bus.c: add more return_if_fail checks
5669
5670         * dbus/dbus-message.c (load_message): have the "no validation"
5671         mode (have to edit the code to toggle the mode for now though)
5672
5673         * dbus/dbus-marshal-header.c (_dbus_header_load): have a mode that
5674         skips all validation; I want to use this at least for benchmark
5675         baseline, I'm not sure if it should be a publicly-available switch.
5676
5677 2005-01-21  Havoc Pennington  <hp@redhat.com>
5678
5679         * glib/dbus-gmain.c: don't put the GLib bindings in the same
5680         toplevel doxygen group as the low-level API stuff
5681
5682         * dbus/dbus.h: note that libdbus is the low-level API
5683
5684 2005-01-20  Havoc Pennington  <hp@redhat.com>
5685
5686         * update-dbus-docs.sh: script to update docs on the web site, only
5687         works for me though. neener.
5688
5689 2005-01-20  Havoc Pennington  <hp@redhat.com>
5690
5691         * dbus/dbus-sysdeps.c (_dbus_poll): amazingly, trying to compile
5692         code can reveal bugs in it
5693
5694 2005-01-20  Havoc Pennington  <hp@redhat.com>
5695
5696         * dbus/dbus-sysdeps.c (_dbus_poll): fix several bugs in the
5697         select() version, patches from Tor Lillqvist
5698
5699 2005-01-20  Havoc Pennington  <hp@redhat.com>
5700
5701         * doc/dbus-tutorial.xml: replace > with &gt;
5702
5703         * bus/services.c (bus_registry_acquire_service): validate the name
5704         and return a better error if it's no good.
5705
5706         * doc/dbus-specification.xml: note NO_AUTO_START change
5707
5708         * dbus/dbus-protocol.h (DBUS_HEADER_FLAG_NO_AUTO_START): change
5709         from AUTO_START, we're toggling the default
5710
5711         * bus/dispatch.c: adapt the tests to change of auto-start default
5712
5713 2005-01-18  Havoc Pennington  <hp@redhat.com>
5714
5715         * rename dbus-daemon-1 to dbus-daemon throughout
5716
5717 2005-01-18  Havoc Pennington  <hp@redhat.com>
5718
5719         * Throughout, grand renaming to strip out the use of "service",
5720         just say "name" instead (or "bus name" when ambiguous).  Did not
5721         change the internal code of the message bus itself, only the
5722         programmer-facing API and messages.
5723         
5724         * doc/dbus-specification.xml: further update the message bus section
5725         
5726         * bus/config-parser.c (all_are_equiv): fix bug using freed string
5727         in error case
5728
5729 2005-01-17  Havoc Pennington  <hp@redhat.com>
5730
5731         * dbus/dbus-types.h: remove 16-bit types since we don't use them
5732         ever
5733
5734         * dbus/dbus-marshal-validate.c (_dbus_validate_path): disallow any
5735         "invalid name character" not only non-ASCII
5736
5737         * doc/dbus-specification.xml: further update spec, message bus 
5738         parts are still out-of-date but the marshaling etc. stuff is now
5739         accurate-ish
5740
5741 2005-01-17  Havoc Pennington  <hp@redhat.com>
5742
5743         * doc/dbus-specification.xml: partially update spec
5744
5745 2005-01-17  Havoc Pennington  <hp@redhat.com>
5746
5747         * Throughout, align variant bodies according to the contained
5748         type, rather than always to 8. Should save a fair bit of space in
5749         message headers.
5750         
5751         * dbus/dbus-marshal-validate.c (_dbus_validate_body_with_reason):
5752         fix handling of case where p == end
5753
5754         * doc/TODO: remove the dbus_bool_t item and variant alignment items
5755
5756 2005-01-17  Havoc Pennington  <hp@redhat.com>
5757
5758         * dbus/dbus-types.h: hardcode dbus_bool_t to 32 bits
5759
5760         * Throughout: modify DBUS_TYPE_BOOLEAN to be a 32-bit type instead
5761         of an 8-bit type. Now dbus_bool_t is the type to use whenever you 
5762         are marshaling/unmarshaling a boolean.
5763
5764 2005-01-16  Havoc Pennington  <hp@redhat.com>
5765
5766         This is about it on what can be disabled/deleted from libdbus
5767         easily, back below 150K anyhow. Deeper cuts are more work than 
5768         just turning the code off as I've done here.
5769         
5770         * dbus/dbus-marshal-basic.c (_dbus_pack_int32): we don't need the
5771         signed int convenience funcs
5772
5773         * dbus/dbus-internals.c (_dbus_verbose_real): omit when not in
5774         verbose mode
5775
5776         * dbus/dbus-string-util.c, dbus/dbus-string.c: more breaking
5777         things out of libdbus
5778
5779         * dbus/dbus-sysdeps.c, dbus/dbus-sysdeps-util.c: same
5780         
5781         * dbus/dbus-hash.c: purge the TWO_STRINGS crap (well, make it
5782         tests-enabled-only, though it should probably be deleted)
5783
5784         * dbus/dbus-message-util.c: same stuff
5785
5786         * dbus/dbus-auth-util.c: same stuff
5787
5788 2005-01-16  Havoc Pennington  <hp@redhat.com>
5789
5790         * dbus/dbus-userdb-util.c: split out part of dbus-userdb.c
5791
5792         * dbus/dbus-sysdeps.c (_dbus_uid_from_string): move here to pave
5793         way for stripping down dbus-userdb.c stuff included in libdbus.
5794         Rename _dbus_parse_uid for consistency.
5795
5796 2005-01-16  Havoc Pennington  <hp@redhat.com>
5797
5798         * dbus/dbus-internals.c (_dbus_real_assert): print the function
5799         name the assertion failed in
5800
5801         * dbus/dbus-internals.h (_dbus_return_if_fail) 
5802         (_dbus_return_val_if_fail): assert that the name of the function
5803         containing the check doesn't start with '_', since we only want to 
5804         use checks on public functions
5805         
5806         * dbus/dbus-connection.c (_dbus_connection_ref_unlocked): change
5807         checks to assertions
5808
5809         * dbus/dbus-marshal-header.c (_dbus_header_set_field_basic):
5810         change checks to asserts for private function
5811
5812         * dbus/dbus-message.c (_dbus_message_set_serial): checks
5813         to asserts for private function
5814
5815         * dbus/dbus-marshal-recursive.c (skip_one_complete_type): remove
5816         broken assertion that was breaking make check
5817         (_dbus_type_reader_array_is_empty): remove this rather than fix
5818         it, was only used in assertions
5819
5820 2005-01-16  Havoc Pennington  <hp@redhat.com>
5821
5822         * test/unused-code-gc.py: hacky script to find code that's used
5823         only by the bus (not libdbus) or used only by tests or not used at
5824         all. It has some false alarms, but looks like we can clean up a
5825         lot of size from libdbus.
5826
5827         * dbus/dbus-sysdeps.c, dbus/dbus-sysdeps-utils.c,
5828         dbus/Makefile.am: initially move 10K of binary size out of libdbus
5829         
5830 2005-01-16  Havoc Pennington  <hp@redhat.com>
5831
5832         * Add and fix docs according to Doxygen warnings throughout
5833         source.
5834         
5835         * dbus/dbus-marshal-recursive.c
5836         (_dbus_type_reader_array_is_empty): change this to just call
5837         array_reader_get_array_len() and make it static
5838
5839         * dbus/dbus-message.c (dbus_message_iter_get_element_type): rename
5840         from get_array_type
5841         (dbus_message_iter_init_append): rename from append_iter_init
5842
5843         * dbus/dbus-marshal-recursive.c
5844         (_dbus_type_reader_get_element_type): rename from
5845         _dbus_type_reader_get_array_type
5846
5847 2005-01-15  Havoc Pennington  <hp@redhat.com>
5848
5849         * test/glib/test-profile.c (with_bus_server_filter): fix crash
5850
5851         * dbus/dbus-marshal-basic.c (_dbus_unpack_uint32): inline as macro
5852         when DBUS_DISABLE_ASSERT
5853         (_dbus_marshal_set_basic): be sure we align for the string length
5854
5855         * dbus/dbus-marshal-recursive.c (skip_one_complete_type): make
5856         this look faster
5857
5858         * dbus/dbus-string.c (_dbus_string_get_const_data_len): add an
5859         inline macro version
5860         (_dbus_string_set_byte): provide inline macro version
5861
5862 2005-01-15  Havoc Pennington  <hp@redhat.com>
5863
5864         * Land the new message args API and type system.
5865
5866         This patch is huge, but the public API change is not 
5867         really large. The set of D-BUS types has changed somewhat, 
5868         and the arg "getters" are more geared toward language bindings;
5869         they don't make a copy, etc.
5870
5871         There are also some known issues. See these emails for details
5872         on this huge patch:
5873         http://lists.freedesktop.org/archives/dbus/2004-December/001836.html
5874         http://lists.freedesktop.org/archives/dbus/2005-January/001922.html
5875         
5876         * dbus/dbus-marshal-*: all the new stuff
5877
5878         * dbus/dbus-message.c: basically rewritten
5879
5880         * dbus/dbus-memory.c (check_guards): with "guards" enabled, init
5881         freed blocks to be all non-nul bytes so using freed memory is less
5882         likely to work right
5883
5884         * dbus/dbus-internals.c (_dbus_test_oom_handling): add
5885         DBUS_FAIL_MALLOC=N environment variable, so you can do
5886         DBUS_FAIL_MALLOC=0 to skip the out-of-memory checking, or
5887         DBUS_FAIL_MALLOC=10 to make it really, really, really slow and
5888         thorough.
5889
5890         * qt/message.cpp: port to the new message args API
5891         (operator<<): use str.utf8() rather than str.unicode()
5892         (pretty sure this is right from the Qt docs?)
5893
5894         * glib/dbus-gvalue.c: port to the new message args API
5895
5896         * bus/dispatch.c, bus/driver.c: port to the new message args API
5897
5898         * dbus/dbus-string.c (_dbus_string_init_const_len): initialize the
5899         "locked" flag to TRUE and align_offset to 0; I guess we never
5900         looked at these anyhow, but seems cleaner.
5901
5902         * dbus/dbus-string.h (_DBUS_STRING_ALLOCATION_PADDING):
5903         move allocation padding macro to this header; use it to implement
5904         (_DBUS_STRING_STATIC): ability to declare a static string.
5905
5906         * dbus/dbus-message.c (_dbus_message_has_type_interface_member):
5907         change to return TRUE if the interface is not set.
5908
5909         * dbus/dbus-string.[hc]: move the D-BUS specific validation stuff
5910         to dbus-marshal-validate.[hc]
5911
5912         * dbus/dbus-marshal-basic.c (_dbus_type_to_string): move here from
5913         dbus-internals.c
5914
5915         * dbus/Makefile.am: cut over from dbus-marshal.[hc]
5916         to dbus-marshal-*.[hc]
5917
5918         * dbus/dbus-object-tree.c (_dbus_decompose_path): move this
5919         function here from dbus-marshal.c
5920
5921 2005-01-12  Joe Shaw  <joeshaw@novell.com>
5922
5923         * NEWS: Update for 0.23.
5924
5925         * configure.in: Release 0.23.
5926
5927 2005-01-12  Joe Shaw  <joeshaw@novell.com>
5928
5929         * mono/Makefile.am, mono/example/Makefile.am: Always build the 
5930         dbus DLL with --debug.  Clean up after the .mdb files this leaves
5931         behind.
5932
5933         * mono/doc/Makefile.am: Need to uninstall the docs on "make
5934         uninstall"
5935
5936         * mono/Arguments.cs (GetDBusTypeConstructor): If the type
5937         is an enum, get the enum's underlying type.  Another mono
5938         1.1.3 fix.
5939
5940 2005-01-11  Joe Shaw  <joeshaw@novell.com>
5941
5942         Patch from Sjoerd Simons <sjoerd@luon.net>
5943
5944         * mono/Makefile.am, mono/example/Makefile.am: Don't redefine
5945         DESTDIR.  It breaks stuff.
5946
5947 2005-01-11  Joe Shaw  <joeshaw@novell.com>
5948
5949         Patch from Tambet Ingo <tambet@ximian.com>
5950
5951         * mono/DBusType/Array.cs (Get): Get the underlying element type by
5952         calling type.GetElementType().  The code previously depended on
5953         broken Mono behavior, which was fixed in Mono 1.1.3.
5954
5955         * mono/DBusType/Dict.cs (constructor): Fix the parameters for
5956         Activator.CreateInstance() so that the class's constructor is
5957         called with the right parameters.
5958
5959 2005-01-11  Joe Shaw  <joeshaw@novell.com>
5960
5961         Patch from Timo Teräs <ext-timo.teras@nokia.com>
5962
5963         * dbus/dbus-connection.c
5964         (_dbus_connection_queue_received_message_link): Call
5965         _dbus_connection_remove_timeout() instead of the _locked()
5966         variant, since it's always called from
5967         _dbus_connection_handle_watch(), which handles the locking.
5968         Removed the _locked() variant since it's no longer used.
5969
5970 2005-01-03  Havoc Pennington  <hp@redhat.com>
5971
5972         * dbus/dbus-internals.h: I'm an idiot, _dbus_assert certainly can
5973         return
5974         
5975 2004-12-26  Havoc Pennington  <hp@redhat.com>
5976
5977         * dbus/dbus-internals.h: add _DBUS_GNUC_NORETURN to _dbus_assert
5978
5979 2005-01-03  Havoc Pennington  <hp@redhat.com>
5980
5981         * dbus/dbus-sysdeps.c (_dbus_sysdeps_test): fix using == on
5982         floating point
5983
5984         * dbus/dbus-string.c (_dbus_string_insert_alignment): new function
5985
5986 2005-01-02  Havoc Pennington  <hp@redhat.com>
5987
5988         * dbus/dbus-internals.h (_DBUS_ALIGN_OFFSET): new macro
5989
5990 2005-01-01  Havoc Pennington  <hp@redhat.com>
5991
5992         * configure.in: add -Wfloat-equal
5993
5994 2005-01-01  Havoc Pennington  <hp@redhat.com>
5995
5996         * dbus/dbus-sysdeps.h: add _DBUS_DOUBLES_BITWISE_EQUAL macro, 
5997         for a variety of reasons '==' doesn't do this.
5998
5999 2004-12-31  Havoc Pennington  <hp@redhat.com>
6000
6001         * dbus/dbus-string.c (_dbus_string_equal_substrings): new function
6002         I keep wishing I had
6003
6004 2004-12-30  John (J5) Palmieri  <johnp@redhat.com>
6005
6006         * python/dbus.py: s/ACTIVATION_REPLY_ACTIVE/ACTIVATION_REPLY_ACTIVATED
6007
6008 2004-12-30  John (J5) Palmieri  <johnp@redhat.com>
6009
6010         * python/dbus_bindings.pyx.in: Change DBUS_ACTIVATION_REPLY_ACTIVATED
6011         and DBUS_ACTIVATION_REPLY_ALREADY_ACTIVE to match the values in
6012         dbus-protocol.h.  Because they are defines and not enums they are not
6013         autogenerated.
6014
6015 2004-12-26  John (J5) Palmieri  <johnp@redhat.com>
6016
6017         * python/dbus_bindings.pyx.in (bus_activate_service): Bind
6018         dbus_bus_activate_service
6019
6020         * python/dbus.py (Bus.activate_service): activate a service on the
6021         bus.
6022
6023 2004-12-24  Havoc Pennington  <hp@redhat.com>
6024
6025         * test/decode-gcov.c: change to use .gcno and .gcda files, but the
6026         file format has also changed and I haven't adapted to that yet
6027         
6028         * Makefile.am: load .gcno files from latest gcc
6029
6030 2004-12-23  John (J5) Palmieri  <johnp@redhat.com>
6031         * Patch from Rob Taylor <robtaylor@fastmail.fm>
6032
6033         * python/dbus_bindings.pyx.in (bus_get_unix_user): New
6034         lowlevel binding
6035
6036         * python/dbus.py (get_unix_user): Added binding to 
6037         call dbus_bindings.bus_get_unix_user
6038
6039         * python/extract.py: Modified the proto_pat regex to
6040         handle unsigned long
6041
6042 2004-12-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6043
6044         * dbus/make-dbus-glib-error-enum.sh: omit the function keyword for
6045         better POSIX compliance.
6046
6047 2004-12-19  Havoc Pennington  <hp@redhat.com>
6048
6049         * dbus/dbus-string.c (_dbus_string_insert_4_aligned) 
6050         (_dbus_string_insert_8_aligned): new functions
6051
6052         * dbus/dbus-string.c (_dbus_string_alloc_space): new function
6053
6054 2004-12-18  Havoc Pennington  <hp@redhat.com>
6055
6056         * dbus/dbus-string.c (_dbus_string_validate_ascii): use ISASCII
6057         macro
6058
6059         * dbus/dbus-message.c: fix a comment, and add a still-unused
6060         not-implemented function
6061
6062         * dbus/dbus-marshal.h: fix comment
6063
6064         * dbus/dbus-internals.h (_DBUS_ISASCII): new macro
6065
6066 2004-12-17  Joe Shaw  <joeshaw@novell.com>
6067
6068         * mono/DBusType/Byte.cs, mono/DBusType/Int32.cs,
6069         mono/DBusType/Int64.cs, mono/DBusType/UInt32.cs,
6070         mono/DBusType/UInt64.cs: Use Enum.GetUnderlyingType() instead of
6071         Type.UnderlyingSystemType to get the actual system type
6072         underneath.  This code previously depended on the broken Mono
6073         behavior, which was fixed in 1.1.3.
6074
6075 2004-11-27  Havoc Pennington  <hp@redhat.com>
6076
6077         * dbus/dbus-string.h (_dbus_string_get_byte): inline when asserts
6078         are disabled
6079         (_dbus_string_get_const_data): inline when asserts are disabled
6080
6081         * dbus/dbus-message.c: record the _dbus_current_generation of
6082         creation so we can complain if dbus_shutdown() is used improperly.
6083         Do this only if checks are enabled.
6084
6085         * dbus/dbus-connection.c: ditto
6086         
6087 2004-11-26  Havoc Pennington  <hp@redhat.com>
6088
6089         * test/glib/test-profile.c: add with_bus mode to profile echoes
6090         that go through the bus.
6091
6092         * test/glib/run-test.sh: add ability to run test-profile
6093
6094         * bus/dbus-daemon-1.1.in: fix to say that SIGHUP causes partial
6095         config file reload.
6096
6097 2004-11-26  Havoc Pennington  <hp@redhat.com>
6098
6099         * test/glib/test-profile.c: clean up how the fake_malloc_overhead
6100         thing was implemented
6101
6102 2004-11-26  Havoc Pennington  <hp@redhat.com>
6103
6104         * test/glib/test-profile.c: tweak a bit, add support for some
6105         made-up minimal malloc overhead with plain sockets, since in 
6106         real life some sort of buffers are unavoidable thus we could 
6107         count them in the theoretical best case
6108
6109 2004-11-26  Havoc Pennington  <hp@redhat.com>
6110
6111         * dbus/dbus-message.c (dbus_message_cache_or_finalize): fix bug
6112         where I was trying to cache one too many messages
6113
6114 2004-11-26  Havoc Pennington  <hp@redhat.com>
6115
6116         * dbus/dbus-message.c: reimplement message cache as an array which 
6117         makes the cache about twice as fast and saves maybe 1.5% overall
6118
6119 2004-11-26  Havoc Pennington  <hp@redhat.com>
6120
6121         * dbus/dbus-threads.c (init_global_locks): forgot to put the
6122         message cache lock here
6123
6124 2004-11-26  Havoc Pennington  <hp@redhat.com>
6125
6126         * dbus/dbus-message.c (struct DBusMessage): put the locked bit and
6127         the "char byte_order" next to each other to save 4 bytes
6128         (dbus_message_new_empty_header): reduce preallocation, since the
6129         message cache should achieve a similar effect
6130         (dbus_message_cache_or_finalize, dbus_message_get_cached): add a
6131         message cache that keeps a few DBusMessage around in a pool,
6132         another 8% speedup or so.
6133
6134         * dbus/dbus-dataslot.c (_dbus_data_slot_list_clear): new function
6135
6136 2004-11-25  Havoc Pennington  <hp@redhat.com>
6137
6138         * dbus/dbus-transport-unix.c (unix_do_iteration): if we're going
6139         to write, without reading or blocking, try it before the poll()
6140         and skip the poll() if nothing remains to write. This is about a
6141         3% speedup in the echo client/server
6142
6143 2004-11-25  Havoc Pennington  <hp@redhat.com>
6144
6145         The primary change here is to always write() once before adding
6146         the write watch, which gives us about a 10% performance increase.
6147         
6148         * dbus/dbus-transport-unix.c: a number of modifications to cope
6149         with removing messages_pending
6150         (check_write_watch): properly handle
6151         DBUS_AUTH_STATE_WAITING_FOR_MEMORY; adapt to removal of
6152         messages_pending stuff
6153         (check_read_watch): properly handle WAITING_FOR_MEMORY and
6154         AUTHENTICATED cases
6155         (unix_handle_watch): after writing, see if the write watch can be
6156         removed
6157         (unix_do_iteration): assert that write_watch/read_watch are
6158         non-NULL rather than testing that they aren't, since they 
6159         aren't allowed to be NULL. check_write_watch() at the end so 
6160         we add the watch if we did not finish writing (e.g. got EAGAIN)
6161
6162         * dbus/dbus-transport-protected.h: remove messages_pending call,
6163         since it resulted in too much inefficient watch adding/removing; 
6164         instead we now require that the transport user does an iteration 
6165         after queueing outgoing messages, and after trying the first
6166         write() we add a write watch if we got EAGAIN or exceeded our 
6167         max bytes to write per iteration setting
6168
6169         * dbus/dbus-string.c (_dbus_string_validate_signature): add this
6170         function
6171
6172         * dbus/dbus-server-unix.c (unix_finalize): the socket name was
6173         freed and then accessed, valgrind flagged this bug, fix it
6174
6175         * dbus/dbus-message.c: fix several bugs where HEADER_FIELD_LAST was taken
6176         as the last valid field plus 1, where really it is equal to the
6177         last valid field. Corrects some message corruption issues.
6178
6179         * dbus/dbus-mainloop.c: verbosity changes
6180
6181         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): handle OOM
6182         instead of aborting in one of the test codepaths
6183
6184         * dbus/dbus-internals.c (_dbus_verbose_real): fix a bug that
6185         caused not printing the pid ever again if a verbose was missing
6186         the newline at the end
6187         (_dbus_header_field_to_string): add HEADER_FIELD_SIGNATURE
6188
6189         * dbus/dbus-connection.c: verbosity changes; 
6190         (dbus_connection_has_messages_to_send): new function
6191         (_dbus_connection_message_sent): no longer call transport->messages_pending
6192         (_dbus_connection_send_preallocated_unlocked): do one iteration to
6193         try to write() immediately, so we can avoid the write watch. This
6194         is the core purpose of this patchset
6195         (_dbus_connection_get_dispatch_status_unlocked): if disconnected,
6196         dump the outgoing message queue, so nobody will get confused
6197         trying to send them or thinking stuff is pending to be sent
6198
6199         * bus/test.c: verbosity changes
6200
6201         * bus/driver.c: verbosity/assertion changes
6202
6203         * bus/dispatch.c: a bunch of little tweaks to get it working again
6204         because this patchset changes when/where you need to block.
6205
6206 2004-11-23  Havoc Pennington  <hp@redhat.com>
6207
6208         * test/glib/test-profile.c: modify to accept a plain_sockets
6209         argument in which case it will bench plain sockets instead of
6210         libdbus, for comparison purposes.
6211
6212 2004-11-22  Havoc Pennington  <hp@redhat.com>
6213
6214         * test/glib/test-profile.c (N_CLIENT_THREADS): run multiple
6215         threads for more time, so sysprof can get a grip on it.
6216
6217         * dbus/dbus-string.c (_dbus_string_validate_utf8): remove
6218         pointless variable
6219
6220 2004-11-13  Havoc Pennington  <hp@redhat.com>
6221
6222         * test/glib/test-profile.c: fix this thing up a bit
6223
6224         * dbus/dbus-message.c (dbus_message_new_empty_header): increase
6225         preallocation sizes by a fair bit; not sure if this will be an
6226         overall performance win or not, but it does reduce reallocs.
6227
6228         * dbus/dbus-string.c (set_length, reallocate_for_length): ignore
6229         the test hack that forced constant realloc if asserts are
6230         disabled, so we can profile sanely. Sprinkle in some
6231         _DBUS_UNLIKELY() which are probably pointless, but before I
6232         noticed the real performance problem I put them in.
6233         (_dbus_string_validate_utf8): micro-optimize this thing a little
6234         bit, though callgrind says it didn't help; then special-case
6235         ascii, which did help a lot; then be sure we detect nul bytes as
6236         invalid, which is a bugfix.
6237         (align_length_then_lengthen): add some more _DBUS_UNLIKELY
6238         superstition; use memset to nul the padding instead of a manual
6239         loop.
6240         (_dbus_string_get_length): inline this as a
6241         macro; it showed up in the profile because it's used for loop
6242         tests and so forth
6243
6244 2004-11-10  Colin Walters  <walters@verbum.org>
6245
6246         * dbus/dbus-spawn.c (check_babysit_events): Handle EINTR,
6247         for extra paranoia.
6248
6249 2004-11-09  Colin Walters  <walters@verbum.org>
6250
6251         * dbus/dbus-string.c (_dbus_string_get_length): New
6252         function, writes DBusString to C buffer.
6253
6254         * dbus/dbus-string.h: Prototype it.
6255
6256         * dbus/dbus-message.c (dbus_message_type_to_string): New
6257         function, converts message type into C string.
6258
6259         * dbus/dbus-message.h: Prototype it.
6260
6261         * bus/selinux.c (bus_selinux_check): Take source pid,
6262         target pid, and audit data.  Pass audit data to
6263         avc_has_perm.
6264         (log_audit_callback): New function, appends extra
6265         audit information.
6266         (bus_selinux_allows_acquire_service): Also take
6267         service name, add it to audit data.
6268         (bus_selinux_allows_send): Also take message
6269         type, interface, method member, error name,
6270         and destination, and add them to audit data.
6271         (log_cb): Initialize func_audit.
6272         
6273         * bus/selinux.h (bus_selinux_allows_acquire_service)
6274         (bus_selinux_allows_send): Update prototypes 
6275
6276         * bus/services.c (bus_registry_acquire_service): Pass
6277         service name to bus_selinux_allows_acquire_service.
6278
6279         * bus/bus.c (bus_context_check_security_policy): Pass
6280         additional audit data.  Move assignment of dest
6281         to its own line.
6282
6283 2004-11-07  Colin Walters  <walters@verbum.org>
6284
6285         * dbus/dbus-transport-unix.c (do_authentication): Always
6286         initialize auth_completed.
6287         
6288 2004-11-07  Colin Walters  <walters@verbum.org>
6289
6290         * bus/bus.c (load_config): Break into three
6291         separate functions: process_config_first_time_only,
6292         process_config_every_time, and process_config_postinit.
6293         (process_config_every_time): Move call of
6294         bus_registry_set_service_context_table into
6295         process_config_postinit.
6296         (process_config_postinit): New function, does
6297         any processing that needs to happen late
6298         in initialization (and also on reload).
6299         (bus_context_new): Instead of calling load_config,
6300         open config parser here and call process_config_first_time_only
6301         and process_config_every_time directly.  Later, after
6302         we have forked but before changing UID,
6303         invoke bus_selinux_full_init, and then call
6304         process_config_postinit.
6305         (bus_context_reload_config): As in bus_context_new,
6306         load parse file inside here, and call process_config_every_time
6307         and process_config_postinit.
6308
6309         * bus/services.h, bus/services.c
6310         (bus_registry_set_service_context_table): Rename
6311         from bus_registry_set_sid_table.  Take string hash from config
6312         parser, and convert them here into SIDs.
6313
6314         * bus/config-parser.c (struct BusConfigParser): Have
6315         config parser only store a mapping of service->context
6316         string.
6317         (merge_service_context_hash): New function.
6318         (merge_included): Merge context string hashes instead
6319         of using bus_selinux_id_table_union.
6320         (bus_config_parser_new): Don't use bus_selinux_id_table_new;
6321         simply create a new string hash.
6322         (bus_config_parser_unref): Unref it.
6323         (start_selinux_child): Simply insert strings into hash,
6324         don't call bus_selinux_id_table_copy_over.
6325
6326         * bus/selinux.h, bus/selinux.c (bus_selinux_id_table_union)
6327         (bus_selinux_id_table_copy_over): Delete.
6328
6329 2004-11-03  Colin Walters  <walters@verbum.org>
6330
6331         * bus/selinux.c (bus_selinux_pre_init): Kill some unused
6332         variables.
6333         
6334 2004-11-03  Colin Walters  <walters@verbum.org>
6335
6336         * bus/test-main.c (test_pre_hook): Fix test logic,
6337         thanks Joerg Barfurth <Joerg.Barfurth@Sun.COM>.
6338
6339 2004-11-02  Colin Walters  <walters@redhat.com>
6340
6341         * bus/selinux.c (bus_selinux_init): Split into two functions,
6342         bus_selinux_pre_init and bus_selinux_post_init.
6343         (bus_selinux_pre_init): Just determine whether SELinux is
6344         enabled.
6345         (bus_selinux_post_init): Do everything else.
6346
6347         * bus/main.c (main): Call bus_selinux_pre_init before parsing
6348         config file, and bus_selinux_post_init after.  This ensures that
6349         we don't lose the policyreload notification thread that
6350         bus_selinux_init created before forking previously.
6351         
6352         * bus/test-main.c (test_pre_hook): Update for split.
6353
6354 2004-10-31  Owen Fraser-Green  <owen@discobabe.net>
6355
6356         Patch from Johan Fischer <linux@fischaz.com>
6357         
6358         * mono/doc/Makefile.am (install-data-local): Added directory
6359         install for DESTDIR
6360
6361 2004-10-29  Colin Walters  <walters@redhat.com>
6362
6363         * dbus/dbus-sysdeps.h (_dbus_become_daemon): Also take
6364         parameter for fd to write pid to.       
6365
6366         * dbus/dbus-sysdeps.c (_dbus_become_daemon): Implement it.
6367         
6368         * bus/bus.c (bus_context_new): Pass print_pid_fd
6369         to _dbus_become_daemon (bug #1720)
6370
6371 2004-10-29  Colin Walters  <walters@redhat.com>
6372
6373         Patch from Ed Catmur <ed@catmur.co.uk>
6374
6375         * mono/doc/Makefile.am (install-data-local): Handle
6376         DESTDIR.
6377
6378 2004-10-29  Colin Walters  <walters@redhat.com>
6379
6380         * bus/.cvsignore, qt/.cvsignore: Update.
6381
6382 2004-10-29  Colin Walters  <walters@redhat.com>
6383
6384         Patch from Kristof Vansant <de_lupus@pandora.be>
6385
6386         * configure.in: Detect Slackware.
6387         * bus/Makefile.am (SCRIPT_IN_FILES): Add rc.messagebus.in.
6388         * bus/rc.messagebus.in: New file.
6389
6390 2004-10-29  Colin Walters  <walters@redhat.com>
6391
6392         * tools/dbus-monitor.c (filter_func): Return
6393         DBUS_HANDLER_RESULT_HANDLED in filter function
6394         for now.  See:
6395         http://freedesktop.org/pipermail/dbus/2004-August/001433.html
6396
6397 2004-10-29  Colin Walters  <walters@redhat.com>
6398
6399         Patch from Matthew Rickard <mjricka@epoch.ncsc.mil>
6400
6401         * bus/services.c (bus_registry_acquire_service): 
6402         Correctly retrieve service name from DBusString
6403         for printing.
6404
6405 2004-10-29  Colin Walters  <walters@redhat.com>
6406
6407         * dbus/dbus-glib.h: Update documentation to not
6408         refer to internal APIs.
6409
6410 2004-10-27  Joe Shaw  <joeshaw@novell.com>
6411
6412         * mono/Arguments.cs (GetDBusTypeConstructor):
6413         type.UnderlyingSystemType will return "System.Byte" if you do it
6414         on "byte[]", which is not what we want.  So check the type.IsArray
6415         property and use System.Array instead.
6416
6417 2004-10-25  John (J5) Palmieri  <johnp@redhat.com>
6418
6419         * dbus/dbus-sysdeps.c (fill_user_info): On errors do not free
6420         the DBusUserInfo structure since this is passed into the function.
6421         This would cause a double free when the function that allocated
6422         the structure would try to free it when an error occured.
6423
6424         * (bus/session.conf.in, bus/Makefile.am, dbus/configure.in):
6425         use /usr/share/dbus-1/services instead of /usr/lib/dbus-1.0/services
6426         for service activation to avoid 32bit/64bit parallel install issues
6427
6428 2004-10-21  Colin Walters  <walters@verbum.org>
6429
6430         * AUTHORS: Fix my email address, the @gnu.org one
6431         has been bouncing for some time.  Also add J5.
6432         
6433 2004-10-21  Colin Walters  <walters@verbum.org>
6434
6435         * dbus/dbus-transport-unix.c (do_authentication): Return
6436         authentication status to callers.
6437         (unix_handle_watch): If we completed authentication this round,
6438         don't do another read.  Instead wait until the next iteration,
6439         after we've read any pending data in the auth buffer.
6440         (unix_do_iteration): Ditto.
6441         (unix_handle_watch): Updated for new do_authentication prototype.
6442
6443 2004-10-18  Colin Walters  <walters@verbum.org>
6444
6445         * bus/selinux.c (bus_selinux_enabled): Handle
6446         --disable-selinux case.
6447         
6448 2004-10-18  Colin Walters  <walters@verbum.org>
6449
6450         * bus/selinux.h: Add bus_selinux_enabled.
6451         
6452         * bus/selinux.c (bus_selinux_enabled): Implement it.
6453         
6454         * bus/config-parser.c (struct include): Add
6455         if_selinux_enabled member.
6456         (start_busconfig_child): Parse if_selinux_enabled
6457         attribute for include.
6458         (bus_config_parser_content): Handle it.
6459
6460         * bus/session.conf.in, bus/system.conf.in: Add
6461         inclusion of context mapping to default config files;
6462         conditional on SELinux being enabled.
6463         
6464         * doc/busconfig.dtd: Add to if_selinux_enabled to default DTD.
6465         
6466         * test/data/invalid-config-files/badselinux-1.conf, 
6467         test/data/invalid-config-files/badselinux-2.conf:
6468         Test files for bad syntax.
6469         
6470 2004-10-17  Colin Walters  <walters@verbum.org>
6471
6472         * dbus/dbus-memory.c (_dbus_initialize_malloc_debug, check_guards)
6473         (dbus_malloc, dbus_malloc0, dbus_realloc): Fix up printf
6474         format specifier mismatches.
6475
6476 2004-10-07  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6477
6478         * dbus/dbus-sysdeps.c (_dbus_file_get_contents): fix an incorrect
6479         format string.
6480
6481         * glib/dbus-dbus-gmain.c (dbus_g_bus_get): do not mangle NULL
6482         pointer (bug #1540, Leonardo Boiko).
6483
6484 2004-09-28  Jon Trowbridge  <trow@ximian.com>
6485
6486         * mono/BusDriver.cs: Changed BusDriver struct to remove
6487         the ServiceCreated and ServiceDeleted events and replace them
6488         with the new ServiceOwnerChanged event.
6489
6490         * mono/example/BusListener.cs: Added a new example program,
6491         which listens for and reports any ServiceOwnerChanged events
6492         on the bus driver.
6493
6494         * mono/example/Makefile.am (DESTDIR): Build changes for the
6495         new BusListener.cs example.
6496
6497 2004-09-27  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6498
6499         * bus/signals.c (bus_match_rule_parse): validate the components of
6500         match rules (bug #1439).
6501
6502         * dbus/dbus-bus.c (dbus_bus_add_match): add a missing OOM test.
6503
6504 2004-09-24  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6505
6506         * doc/dbus-specification.xml: document ServiceOwnerChanged
6507         signal.
6508         
6509         * bus/driver.c, bus/driver.h, bus/services.c: Use
6510         ServiceOwnerChanged signal instead of ServiceCreated and
6511         ServiceDeleted.
6512         
6513         * bus/dispatch.c: update testcase for the new signal.
6514
6515 2004-09-20  Jon Trowbridge  <trow@ximian.com>
6516
6517         Patch from Nat Friedman <nat@novell.com>
6518
6519         * mono/Makefile.am: A number of small build fixes to allow "make
6520         distcheck" to succeed.
6521
6522         * mono/example/Makefile.am: "make distcheck" fixes.
6523
6524         * mono/AssemblyInfo.cs.in: When signing the assembly, look for the
6525         key in @srcdir@.
6526
6527         * test/Makefile.am: "make distcheck" fixes.
6528
6529 2004-09-17  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6530
6531         * dbus/dbus-sysdeps.c (_dbus_user_at_console): fix memleak in OOM.
6532
6533         * doc/busconfig.dtd: update the DTD for the at_console attribute.
6534
6535         * bus/driver.c (bus_driver_handle_hello): correctly handle Hello
6536         messages after the first one (bug #1389).
6537         
6538         * bus/dispatch.c (check_double_hello_message): add a test case for
6539         the double hello message bug.
6540         (check_existent_service_activation): fix check of spawning error.
6541         
6542 2004-09-16  David Zeuthen  <david@fubar.dk>
6543
6544         * python/dbus_bindings.pyx.in: Add support for int64 and uint64
6545
6546 2004-09-12  David Zeuthen  <david@fubar.dk>
6547
6548         Patch from Kay Sievers <kay.sievers@vrfy.org>
6549
6550         * bus/bus.c (bus_context_new):
6551         * bus/bus.h:
6552         * bus/main.c (usage)
6553         (main):
6554         Add commandline option --nofork to override configuration file
6555         setting.
6556
6557 2004-09-09  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6558
6559         * dbus/dbus-*.h: remove the ; after DBUS_(BEGIN|END)_DECLS. Some C
6560         compilers don't like it (bug #974).
6561
6562 2004-09-04  Harald Fernengel  <harry@kdevelop.org>
6563
6564         * qt/connection.*: Applied patch by Jérôme Lodewyck
6565         <lodewyck@clipper.ens.fr> to integrate an existing
6566         connection into the Qt eventloop
6567
6568 2004-08-30  Jon Trowbridge  <trow@ximian.com>
6569
6570         * mono/BusDriver.cs: Added.  This is a class for interacting with
6571         the org.freedesktop.DBus service.
6572
6573         * mono/Message.cs: Added a mechanism to expose the message that is
6574         currently being dispatched via the static Message.Current
6575         property.  Added Message.Sender and Message.Destination
6576         properties.
6577
6578         * mono/Handler.cs: Expose the dispatched message via
6579         Message.Current when handling method calls.
6580
6581         * mono/Service.cs: Expose the dispatched message via
6582         Message.Current when handling signal emissions.
6583         
6584         * mono/Connection.cs: Bind dbus_bus_get_base_service via the
6585         Connection.BaseService property.
6586
6587 2004-08-28  Havoc Pennington  <hp@redhat.com>
6588
6589         * dbus/dbus-userdb.c (_dbus_is_console_user): remove unused variable
6590
6591         More fixes from Steve Grubb
6592         
6593         * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): fix fd leak
6594         (_dbus_listen_tcp_socket): fix fd leak
6595
6596         * dbus/dbus-spawn.c (read_pid, read_ints): move the "again:" for
6597         EINTR to a bit lower in the code
6598
6599 2004-08-26  Jon Trowbridge  <trow@ximian.com>
6600
6601         * bus/driver.c (bus_driver_handle_service_exists): Respond with
6602         TRUE if we are inquiring about the existence of the built-in
6603         org.freedesktop.DBus service.
6604
6605 2004-08-25  John Palmieri  <johnp@redhat.com>
6606         * bus/config-parser.c:
6607         (struct PolicyType): Add POLICY_CONSOLE
6608         (struct Element.d.policy): s/gid_or_uid/gid_uid_or_at_console
6609         (start_busconfig_child): Sets up console element when
6610         <policy at_console=""> is encountered in a policy file
6611         (append_rule_from_element): Convert console elements to console
6612         rules.
6613
6614         * bus/policy.c: 
6615         (bus_policy_create_client_policy): Add console rules to the client
6616         policy based on if the client is at the console
6617         (bus_policy_append_console_rule): New function for adding a
6618         console rule to a policy
6619         (bus_policy_merge): Handle console rule merging
6620
6621         * dbus/dbus-sysdeps.h: Added the DBUS_CONSOLE_DIR constant
6622         where we check for console user files
6623         
6624         * dbus/dbus-sysdeps.c:
6625         (_dbus_file_exists): New function which checks if the given
6626         file exists
6627         (_dbus_user_at_console): New function which does the system
6628         specific process of checking if the user is at the console
6629
6630         * dbus/dbus-userdb.c:
6631         (_dbus_is_console_user): New function converts a UID to user name
6632         and then calls the system specific _dbus_user_at_console to 
6633         see if the user is at the console and therefor a console user
6634
6635 2004-08-25  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6636
6637         * bus/config-parser.c (set_limit):
6638         * bus/dbus-daemon-1.1.in:
6639         * test/data/valid-config-files/many-rules.conf: set the
6640         max_match_rules_per_connection limt from the config file. 
6641
6642         * doc/busconfig.dtd: update the DTD.
6643
6644         * bus/driver.c: remove some unused variables.
6645
6646 2004-08-24  Mikael Hallendal  <micke@imendio.com>
6647
6648         * dbus/dbus-glib-lowlevel.h: Removed dbus_bus_get_with_g_main since 
6649         it's been replaced by dbus_g_bus_get
6650
6651 2004-08-23  Colin Walters  <walters@redhat.com>
6652
6653         Updated SELinux support from Matthew Rickard <mjricka@epoch.ncsc.mil>
6654
6655         * bus/selinux.h: Prototype bus_selinux_get_policy_root.
6656
6657         * bus/selinux.c: Create a thread for policy reload notification.
6658         (bus_selinux_get_policy_root): Implement.
6659
6660         * bus/config-parser.c (start_busconfig_child)
6661         (bus_config_parser_content): Support SELinux-root relative
6662         inclusion.
6663
6664         * configure.in <HAVE_SELINUX>: Add -lpthread.
6665         
6666         * bus/test-main.c (test_pre_hook, test_post_hook): New.
6667         (test_post_hook): Move memory checking into here.
6668         (test_pre_hook, test_post_hook): Move SELinux checks in
6669         here, but conditional on a DBUS_TEST_SELINUX environment
6670         variable.  Unfortunately we can't run the SELinux checks
6671         as a normal user, since they won't have any permissions
6672         for /selinux.  So this will have to be tested manually
6673         for now, until we have virtualization for most of
6674         libselinux.
6675         
6676 2004-08-23  Havoc Pennington  <hp@redhat.com>
6677
6678         * dbus/dbus-sysdeps.c (_dbus_change_identity): add setgroups() to
6679         drop supplementary groups, suggested by Steve Grubb
6680
6681 2004-08-20  Colin Walters  <walters@redhat.com>
6682
6683         * bus/config-parser.c (start_busconfig_child): Remove some unused
6684         variables.
6685         
6686         * bus/selinux.c (bus_selinux_id_table_insert): Avoid compiler
6687         warning.
6688
6689 2004-08-17  Joe Shaw  <joeshaw@novell.com>
6690
6691         * configure.in: If --enable-mono is passed in, if we can't find
6692         mono error out.
6693
6694         * mono/Makefile.am: Use /gacutil to install assemblies into the
6695         GAC and not /root.
6696
6697 2004-08-12  Havoc Pennington  <hp@redhat.com>
6698
6699         * NEWS: update for 0.22
6700
6701         * configure.in: release 0.22
6702
6703 2004-08-11  Colin Walters  <walters@redhat.com>
6704
6705         * tools/dbus-send.c (main, usage): Add --reply-timeout
6706         argument.
6707
6708 2004-08-10  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6709
6710         * bus/bus.c (process_config_first_time_only): get rid of an unused
6711         DBusError that was causing a memoy leak (bug #989).
6712
6713         * dbus/dbus-keyring.c, dbus/dbus-message.c:
6714         fix compilation on Solaris/Forte C (bug #974)
6715
6716         * bus/main.c (main): plug two minuscule memleaks.
6717
6718 2004-08-10  Havoc Pennington  <hp@redhat.com>
6719
6720         * doc/dbus-tutorial.xml: add some more info on GLib bindings
6721
6722 2004-08-09  Havoc Pennington  <hp@redhat.com>
6723
6724         * COPYING: switch to Academic Free License version 2.1 instead of
6725         2.0, to resolve complaints about patent termination clause.
6726
6727 2004-07-31  John (J5) Palmieri  <johnp@redhat.com>
6728
6729         * README: added documentation for the --enable-python 
6730         configure switch.
6731
6732 2004-07-31  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6733
6734         * bus/config-parser.c (bus_config_parser_new): fix an invalid
6735         _unref in the SELinux support.
6736
6737         * doc/busconfig.dtd: update DTD for SELinux support.
6738
6739         * bus/config-loader-libxml.c: fix error handler and parser
6740         initialisation/cleanup. OOM test now works with libxml2 HEAD.
6741
6742         * configure.in: remove the warning about libxml2.
6743
6744         * dbus/dbus-bus.c: silence doxygen warning.
6745
6746 2004-07-31  Colin Walters  <walters@redhat.com>
6747
6748         * configure.in: Move #error in SELinux check to its own line.
6749
6750 2004-07-31  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6751
6752         * dbus/dbus-internals.h (_DBUS_SET_OOM):
6753         * bus/utils.h (BUS_SET_OOM): use dbus_error_set_const instead of
6754         dbus_error_set.
6755
6756         * bus/dispatch.c (check_send_exit_to_service): fix the test case,
6757         broken by the change in the _SET_OOM macros.
6758
6759 2004-07-31  Colin Walters  <walters@redhat.com>
6760
6761         * bus/selinux.c <HAVE_SELINUX>: Include utils.h to get
6762         BUS_SET_OOM.
6763
6764 2004-07-31  Colin Walters  <walters@redhat.com>
6765
6766         * configure.in: Use AC_TRY_COMPILE instead of AC_EGREP_HEADER
6767         to correctly detect DBUS__ACQUIRE_SVC.  Also add an
6768         AC_MSG_CHECKING.
6769
6770 2004-07-24  Havoc Pennington  <hp@redhat.com>
6771
6772         SELinux support from Matthew Rickard <mjricka@epoch.ncsc.mil>
6773
6774         * bus/selinux.c, bus/selinux.h: new file encapsulating selinux
6775         functionality
6776
6777         * configure.in: add --enable-selinux
6778         
6779         * bus/policy.c (bus_policy_merge): add FIXME to a comment
6780
6781         * bus/main.c (main): initialize and shut down selinux
6782
6783         * bus/connection.c: store SELinux ID on each connection, to avoid 
6784         repeated getting of the string context and converting it into 
6785         an ID
6786
6787         * bus/bus.c (bus_context_get_policy): new accessor, though it
6788         isn't used
6789         (bus_context_check_security_policy): check whether the security
6790         context of sender connection can send to the security context of
6791         recipient connection
6792
6793         * bus/config-parser.c: add parsing for <selinux> and <associate>
6794         
6795         * dbus/dbus-transport.c (_dbus_transport_get_unix_fd): to
6796         implement dbus_connection_get_unix_fd()
6797
6798         * dbus/dbus-connection.c (dbus_connection_get_unix_fd): new
6799         function, used by the selinux stuff
6800         
6801 2004-07-29  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6802
6803         * bus/config-loader-libxml.c: complete the implementation of
6804         libxml backend for config file loader. Doesn't work with full OOM
6805         test yet. 
6806         
6807         * configure.in: change error when selecting libxml into a warning.
6808         
6809         * test/data/invalid-config-files: add two non-well-formed XML
6810         files. 
6811         
6812         * glib/Makefile.am: libdbus_gtool always uses expat, not libxml.
6813         
6814         * dbus/dbus-transport-unix.c (unix_handle_watch): do not
6815         disconnect in case of DBUS_WATCH_HANGUP, several do_reading() may
6816         be necessary to read all the buffer. (bug #894)
6817
6818         * bus/activation.c (bus_activation_activate_service): fix a
6819         potential assertion failure (bug #896). Small optimization in the
6820         case of auto-activation messages.
6821
6822         * dbus/dbus-message.c (verify_test_message, _dbus_message_test):
6823         add test case for byte-through-vararg bug (#901). patch by Kimmo
6824         Hämäläinen. 
6825
6826 2004-07-28  Anders Carlsson  <andersca@gnome.org>
6827
6828         * python/dbus.py:
6829         * python/dbus_bindings.pyx.in:
6830         Add dbus.init_gthreads (), allow emit_signal to pass
6831         arguments to the signal.
6832         
6833 2004-07-24  Havoc Pennington  <hp@redhat.com>
6834
6835         * AUTHORS: add some people, not really comprehensively, let me
6836         know if I missed you
6837
6838 2004-07-24  Havoc Pennington  <hp@redhat.com>
6839
6840         * Makefile.am (DIST_SUBDIRS): add DIST_SUBDIRS, problem solved by
6841         Owen
6842
6843         * test/Makefile.am (DIST_SUBDIRS): here also
6844
6845 2004-07-22  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6846
6847         * dbus/dbus-sysdeps.c (fill_user_info): fix inexistent label name,
6848         breaking build on Solaris, reported by Farhad Saberi on the ML.
6849
6850         * dbus/dbus-message.c (dbus_message_append_args_valist): fix the
6851         va_arg invocation to account for integer promotion in the case of
6852         DBUS_TYPE_BYTE (unsigned char is promoted to int). (bug #901)
6853
6854         * bus/services.c (bus_service_remove_owner): fix bug #902, use
6855         _dbus_list_get_first_link, not _dbus_list_get_first.
6856
6857         * dbus/dbus-bus.c (dbus_bus_service_exists): plug a memory leak.
6858
6859         * dbus/dbus-object-tree.c (free_subtree_recurse): always null
6860         handler functions so that the asserts in _dbus_object_subtree_unref
6861         do not fail.
6862
6863         * dbus/dbus-transport-unix.c (do_reading):
6864         _dbus_transport_queue_messages return value is of type
6865         dbus_bool_t, not DBusDispatchStatus.
6866         
6867 2004-07-19  David Zeuthen  <david@fubar.dk>
6868
6869         * dbus/dbus-protocol.h: Add DBUS_ERROR_UNIX_PROCESS_ID_UNKNOWN
6870
6871         * bus/dispatch.c:
6872         (check_get_connection_unix_user): Debug says GetProperty; but the
6873         method is called GetConnectionUnixUser
6874         (check_get_connection_unix_process_id): New function
6875         (bus_dispatch_test): Actually call check_get_connection_unix_user();
6876         also call check_get_connection_unix_process_id()
6877         
6878         * bus/driver.c:
6879         (bus_driver_handle_get_connection_unix_process_id): New function,
6880         handles GetConnectionUnixProcessID on the org.freedesktop.DBus
6881         interface
6882         
6883         * dbus/dbus-auth.c:
6884         (handle_server_data_external_mech): Set pid from the credentials
6885         obtained from the socket
6886         
6887         * dbus/dbus-connection.c:
6888         (dbus_connection_get_unix_process_id): New function
6889         
6890         * dbus/dbus-connection.h: 
6891         Add prototype for dbus_connection_get_unix_process_id
6892         
6893         * dbus/dbus-transport.c:
6894         (_dbus_transport_get_unix_process_id): New function
6895         
6896         * dbus/dbus-transport.h:
6897         Add prototype for _dbus_transport_get_unix_process_id
6898         
6899 2004-07-19  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6900
6901         * dbus/dbus-message.c: Message counter fix, patch by Christian
6902         Hammond <chipx86@gnupdate.org>
6903
6904 2004-07-18  Seth Nickell  <seth@gnome.org>
6905
6906         * python/dbus.py:
6907         * python/dbus_bindings.pyx.in:
6908         * python/tests/test-client.py:
6909
6910         Add dbus.ByteArray and dbus_bindings.ByteArray
6911         types so that byte streams can be passed back.
6912
6913         Give jdahlin the heaps of credit that are so
6914         rightfully his.
6915         
6916 2004-07-12  Seth Nickell  <seth@gnome.org>
6917
6918         * python/dbus.py:
6919
6920         Add message argument to the default object_method_handler
6921         function.
6922         
6923         * python/dbus_bindings.pyx.in:
6924
6925         Automatically return NIL when passed an empty list
6926         (we can't pass back a list since lists are typed
6927         and we don't have any idea what type the the client
6928         intended the list to be... :-( )
6929         
6930 2004-07-10  Seth Nickell  <seth@gnome.org>
6931
6932         * python/examples/Makefile.am:
6933
6934         Fix distcheck breakage caused by new examples.
6935
6936 2004-07-10  Seth Nickell  <seth@gnome.org>
6937
6938         * python/dbus.py:
6939
6940         Add "message" argument to service-side dbus.Object
6941         methods. This will break existing services written
6942         using the python bindings, but will allow extraction
6943         of all the message information (e.g. who its from).
6944
6945         Add improved "object oriented" signal handling/emission.
6946         
6947         * python/examples/example-service.py:
6948
6949         Nix this example.
6950         
6951         * python/examples/example-signal-emitter.py:
6952         * python/examples/example-signal-recipient.py:
6953
6954         Two new examples that show how to emit and receive
6955         signals using the new APIs.
6956         
6957         * python/examples/example-signals.py:
6958         * python/examples/gconf-proxy-service.py:
6959         * python/examples/gconf-proxy-service2.py:
6960
6961         Add "message" argument to service methods.
6962
6963 2004-06-28  Kay Sievers <kay.sievers@vrfy.org>
6964
6965         * bus/driver.c (bus_driver_handle_get_connection_unix_user)
6966         * dbus/bus.c (dbus_bus_get_unix_user)
6967         * doc/dbus-specification.xml: implement GetConnectionUnixUser
6968         method of org.freedesktop.DBus interface.
6969
6970         * bus/dispatch.c: test case
6971
6972 2004-06-23  John (J5) Palmieri  <johnp@redhat.com>
6973
6974         * python/Makefile.am: switched include directory from glib/ to dbus/
6975         since dbus-glib.h moved
6976  
6977 2004-06-22  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6978
6979         * configure.in: prevent building the gcj stuff and libxml loader
6980         since they are broken.
6981
6982 2004-06-20  Havoc Pennington  <hp@redhat.com>
6983
6984         * dbus/dbus-glib-error-enum.h: autogenerate the GError enum 
6985         codes from the dbus error names
6986         
6987         * glib/dbus-glib.h: move to subdir dbus/ since it's included 
6988         as dbus/dbus-glib.h and that breakage is now visible due to 
6989         including dbus/dbus-glib.h in dbus-glib-lowlevel.h
6990         
6991         * glib/dbus-glib.h: s/gproxy/g_proxy/
6992
6993         * dbus/dbus-shared.h: new header to hold stuff shared with
6994         binding APIs
6995         
6996         * dbus/dbus-protocol.h (DBUS_ERROR_*): move errors here rather
6997         than dbus-errors.h
6998
6999         * glib/dbus-glib.h (dbus_set_g_error): move to
7000         dbus-glib-lowlevel.h
7001
7002         * glib/dbus-glib.h: remove dbus/dbus.h from here; change a bunch
7003         of stuff to enable this
7004
7005         * dbus/dbus-glib-lowlevel.h: put dbus/dbus.h here
7006
7007         * a bunch of other changes with the same basic "separate glib 
7008         bindings from dbus.h" theme
7009         
7010 2004-06-10  Owen Fraser-Green  <owen@discobabe.net>
7011
7012         * dbus-sharp.pc.in: Removed glib-sharp inclusion in Libs.
7013
7014         * python/examples/Makefile.am: Fixed typo in EXTRA_DIST.
7015
7016 2004-06-09  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7017
7018         * bus/driver.c, dbus/dbus-bus.c: use BOOLEAN instead of UINT32 for
7019         the reply value of the ServiceExists message.
7020
7021 2004-06-07  John (J5) Palmieri  <johnp@redhat.com>
7022
7023         * python/dbus_bindings.pyx.in: No longer need to parse path
7024         elements and pass them as arrays of strings.  The C API now
7025         accepts plain path strings.
7026         (_build_parsed_path): removed 
7027
7028 2004-06-07  Havoc Pennington  <hp@redhat.com>
7029
7030         * doc/TODO: remove auto-activation item since it's done; sort
7031         items by importance/milestone
7032
7033 2004-06-07  Havoc Pennington  <hp@redhat.com>
7034
7035         * dbus/dbus-message-builder.c (_dbus_message_data_load): append
7036         random signature when using REQUIRED_FIELDS (this hack won't work
7037         in the long term)
7038
7039         * dbus/dbus-message.c: change the signature to be a header field,
7040         instead of message->signature special-case string. Incremental
7041         step forward. Then we can fix up code to send the signature in the
7042         message, then fix up code to validate said signature, then fix up
7043         code to not put the typecodes inline, etc.
7044         (load_one_message): don't make up the signature after the fact
7045         (decode_header_data): require signature field for the known
7046         message types
7047
7048         * dbus/dbus-marshal.c (_dbus_marshal_string_len): new
7049
7050         * dbus/dbus-protocol.h: add DBUS_HEADER_FIELD_SIGNATURE
7051
7052 2004-06-07  Owen Fraser-Green  <owen@discobabe.net>
7053
7054         * mono/DBusType/ObjectPath.cs: Renamed PathName argument to Path
7055
7056         * mono/Handler.cs: Updated to follow new path argument for
7057         (un-)registering objects.
7058
7059         * mono/example/Makefile.am:
7060         * mono/Makefile.am:
7061         * configure.in: Bumped required version for mono and use new -pkg
7062         syntax for deps
7063
7064 2004-06-05  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7065
7066         * dbus/dbus-connection.h, dbus/dbus-connection.c: have object path
7067         registration functions take the path argument as char* instead of
7068         char**.
7069
7070         * dbus/dbus-marshal.h, dbus/dbus-marshal.c (_dbus_decompose_path):
7071         split off the path decompostion part of
7072         _dbus_demarshal_object_path. Some misc. fixes to silence compiler
7073         warnings. 
7074
7075         * glib/dbus-gobject.c, test/test-service.c: update accordingly.
7076         
7077 2004-06-02  Kristian Høgsberg  <krh@redhat.com>
7078  
7079         * dbus/dbus-auth.c: Rewrite auth protocol handling to use a state
7080         machine approach.  A state is implemented as a function that
7081         handles incoming events as specified for that state.
7082         
7083         * doc/dbus-specification.xml: Update auth protocol state machine
7084         specification to match implementation.  Remove some leftover
7085         base64 examples.
7086
7087 2004-06-02  Kristian Høgsberg  <krh@redhat.com>
7088
7089         * glib/dbus-gproxy.c, glib/dbus-gmain.c, dbus/dbus-string.c,
7090         dbus/dbus-object-tree.c, dbus/dbus-message.c: add comments to
7091         quiet doxygen.
7092
7093         * Doxyfile.in: remove deprecated options.
7094
7095         * dbus/dbus-message-handler.c, dbus/dbus-message-handler.h,
7096         glib/test-thread.h, glib/test-thread-client.c,
7097         glib/test-thread-server.c, glib/test-profile.c,
7098         glib/test-dbus-glib.c: remove these unused files.
7099
7100 2004-06-01  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7101
7102         * dbus/dbus-object-tree.c
7103         (_dbus_object_tree_dispatch_and_unlock): fix dispatch for
7104         non-fallback handlers (bug #684).
7105         (_dbus_object_subtree_new): initialize invoke_as_fallback field.
7106         (find_subtree_recurse): report wether the returned subtree is an
7107         exact match or a "fallback" match higher up in the tree.
7108         (object_tree_test_iteration): update test case.
7109
7110 2004-06-01  Seth Nickell  <seth@gnome.org>
7111
7112         * python/dbus_bindings.pyx.in:
7113         * python/tests/test-client.py:
7114
7115         Round off basic type support. Add dicts (yay!), and 
7116         remaining array types.
7117
7118         Make MessageIter more general so it works for dicts too.
7119
7120         Mark all loop variables as C integers.
7121         
7122 2004-05-31  Havoc Pennington  <hp@redhat.com>
7123
7124         * glib/dbus-gidl.c (method_info_add_arg): keep args sorted with
7125         "in" before "out"
7126
7127         * glib/dbus-gobject.c (dbus_type_to_string): move to dbus-gutils.c
7128
7129         * glib/dbus-glib-tool.c (main): set up to have a --self-test
7130         option that runs the tests, and start filling in some code
7131         including for starters just dumping the interfaces to stdout
7132
7133         * glib/Makefile.am (INCLUDES): define DBUS_LOCALEDIR
7134
7135         * test/data/valid-introspection-files/lots-of-types.xml: test of
7136         an example introspection file
7137
7138         * glib/dbus-gparser.c (parser_check_doctype): doctype should be
7139         "node" (I think...)
7140
7141 2004-05-31  Seth Nickell  <seth@gnome.org>
7142
7143         * python/dbus_bindings.pyx.in:
7144         * python/tests/test-client.py:
7145
7146         Test Suite: 1
7147         Python Bindings: 0
7148
7149         Fix string array memory trashing bug... oops...
7150
7151 2004-05-30  Seth Nickell  <seth@gnome.org>
7152
7153         * python/dbus.py:
7154
7155         Add a nicer-but-less-flexible alternate API for handling 
7156         calls to virtual objects in dbus.ObjectTree.
7157
7158         Screw up the argument order to the dbus.Object constructor
7159         for consistency with dbus.ObjectTree (and to make dbus_methods
7160         optional for future extension)
7161         
7162         * python/examples/Makefile.am:
7163         * python/examples/gconf-proxy-service.py:
7164         * python/examples/gconf-proxy-service2.py:
7165
7166         Alternate implementation of gconf-proxy-service using the
7167         nicer dbus.ObjectTree API.
7168         
7169         * python/examples/example-service.py:
7170         * python/tests/test-server.py
7171
7172         Reverse the argument order to deal with dbus.Object constructor
7173         changes.
7174         
7175 2004-05-30  Seth Nickell  <seth@gnome.org>
7176
7177         * python/examples/example-client.py:
7178         * python/examples/example-service.py:
7179
7180         Take it back. Lists seem to work but they're broken
7181         in the test suite. Make the base examples use
7182         lists (works fine).
7183
7184 2004-05-30  Seth Nickell  <seth@gnome.org>
7185
7186         * python/dbus_bindings.pyx.in:
7187         * python/tests/test-client.py:
7188
7189         Add some more tests and fix errors that crop up.
7190         Unfortunately, currently it seems like marshalling
7191         and unmarshalling of lists is completely broken :-(
7192
7193 2004-05-30  Seth Nickell  <seth@gnome.org>
7194
7195         * python/dbus_bindings.pyx.in:
7196
7197         Add support for ObjectPath type.
7198
7199         * python/dbus.py:
7200
7201         Refactor message handling code to a common function.
7202         
7203         * python/tests/test-client.py:
7204         * python/tests/test-server.py:
7205
7206         Add tests that check to make sure values of all types
7207         can be echoed from a service w/o mangling.
7208         
7209 2004-05-29  Seth Nickell  <seth@gnome.org>
7210
7211         * python/dbus.py:
7212
7213         Add ObjectTree class which allows implementation
7214         of trees of "virtual" objects. Basically the python
7215         wrapper for "register_fallback".
7216         
7217         * python/examples/Makefile.am
7218         * python/examples/gconf-proxy-client.py:
7219         * python/examples/gconf-proxy-service.py:
7220
7221         Implement a simple GConf proxy service that supports
7222         get/set on string and int GConf keys using the ObjectTree.
7223         
7224 2004-05-29  Seth Nickell  <seth@gnome.org>
7225
7226         * python/dbus.py:
7227         * python/examples/example-client.py:
7228         * python/examples/example-service.py:
7229         * python/examples/list-system-services.py:
7230
7231         Add SessionBus, SystemBus and ActivationBus classes
7232         so you don't need to know the special little BUS_TYPE
7233         flag.
7234         
7235 2004-05-29  Havoc Pennington  <hp@redhat.com>
7236
7237         * bus/config-parser.c (process_test_valid_subdir): temporarily
7238         stop testing config parser OOM handling, since expat has issues
7239         http://freedesktop.org/pipermail/dbus/2004-May/001153.html
7240
7241         * bus/dbus-daemon-1.1.in: change requested_reply to
7242         send_requested_reply/receive_requested_reply so we can send the
7243         replies, not just receive them.
7244
7245         * bus/config-parser.c: parse the new
7246         send_requested_reply/receive_requested_reply
7247
7248         * bus/policy.c (bus_client_policy_check_can_send): add
7249         requested_reply argument and use it
7250
7251         * bus/bus.c (bus_context_check_security_policy): pass through
7252         requested_reply status to message send check
7253
7254         * bus/system.conf.in: adapt to requested_reply change
7255         
7256 2004-05-28  Havoc Pennington  <hp@redhat.com>
7257
7258         * test/glib/test-service-glib.c (main): remove unused variable
7259
7260         * glib/dbus-gidl.c (base_info_ref): fix a silly compiler warning
7261
7262         * dbus/dbus-auth.h (enum): remove AUTHENTICATED_WITH_UNUSED_BYTES
7263         from the enum, no longer in use.
7264
7265         * dbus/dbus-sysdeps.h: include config.h so DBUS_VA_COPY actually
7266         works right.
7267
7268         * dbus/dbus-message.c: add various _dbus_return_val_if_fail for
7269         whether error_name passed in is a valid error name.
7270
7271 2004-05-28  John (J5) Palmieri  <johnp@redhat.com>
7272
7273         * dbus/dbus-message.c (dbus_message_get_args): Added support for
7274         OBJECT_PATH and OBJECT_PATH_ARRAY
7275
7276 2004-05-28  Seth Nickell  <seth@gnome.org>
7277
7278         * python/examples/Makefile.am:
7279
7280         Forget to add Makefile.am. Do not pass go.
7281
7282 2004-05-28  Michael Meeks  <michael@ximian.com>
7283
7284         * glib/dbus-gvalue.c (dbus_gvalue_marshal, dbus_gvalue_demarshal): 
7285         fix no int64 case.
7286
7287         * dbus/dbus-string.c (_dbus_string_parse_basic_type): impl.
7288
7289         * dbus/dbus-message.c (_dbus_message_iter_get_basic_type),
7290         (_dbus_message_iter_get_basic_type_array): impl.
7291         drastically simplify ~all relevant _get methods to use these.
7292         (_dbus_message_iter_append_basic_array),
7293         (dbus_message_iter_append_basic): impl
7294         drastically simplify ~all relevant _append methods to use these.
7295
7296         * dbus/dbus-message-builder.c (parse_basic_type) 
7297         (parse_basic_array, lookup_basic_type): impl.
7298         (_dbus_message_data_load): prune scads of duplicate /
7299         cut & paste coding.
7300
7301         * dbus/dbus-marshal.c (_dbus_demarshal_basic_type_array) 
7302         (_dbus_demarshal_basic_type): implement,
7303         (demarshal_and_validate_len/arg): beef up debug.
7304         (_dbus_marshal_basic_type, _dbus_marshal_basic_type_array): impl.
7305
7306 2004-05-27  Seth Nickell  <seth@gnome.org>
7307
7308         * configure.in:
7309         * python/Makefile.am:
7310
7311         Include the example python apps in the tarball.
7312         
7313         * python/examples/list-system-services.py
7314
7315         Add a python new example that fetches the list of services
7316         from the system bus.
7317         
7318 2004-05-27  Seth Nickell  <seth@gnome.org>
7319
7320         * python/dbus.py:
7321         * python/dbus_bindings.pyx.in:
7322
7323         Fix failure to notify that a signal was not handled,
7324         resulted in hung functions.
7325         
7326 2004-05-25  Colin Walters  <walters@redhat.com>
7327
7328         * tools/dbus-monitor.c (main): Monitor all types of messages.
7329
7330 2004-05-23  Owen Fraser-Green  <owen@discobabe.net>
7331
7332         * mono/Handler.cs, mono/Service.cs: Added UnregisterObject method
7333         which unregisters the object path and disposes the handler.
7334
7335 2004-05-23  Kristian Høgsberg  <krh@redhat.com>
7336  
7337         Patch from Timo Teräs <ext-timo.teras@nokia.com> (#614):
7338          
7339         * dbus/dbus-message.c (dbus_message_iter_get_args_valist): Swap
7340         operands to && so we call dbus_message_iter_next () for the last
7341         argument also.
7342
7343 2004-05-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7344
7345         * dbus/dbus-object-tree.c
7346         (_dbus_object_tree_list_registered_unlock, lookup_subtree): return
7347         children even if the requested path isn't registered.
7348         (object_tree_test_iteration): test object_tree_list_registered.
7349
7350         * configure.in: undefine HAVE_ABSTRACT_SOCKETS instead of defining
7351         it to 0.
7352         
7353 2004-05-20  Kristian Høgsberg  <krh@redhat.com>
7354
7355         * doc/TODO: Remove resolved items.
7356
7357         * bus/expirelist.h (struct BusExpireList): remove unused n_items
7358         field.
7359         
7360         * bus/connection.c (bus_connections_expect_reply): Enforce the
7361         per-connection limit on pending replies.
7362         
7363         Patch from Jon Trowbridge <trow@ximian.com>:
7364  
7365         * bus/main.c (setup_reload_pipe): Added.  Creates a pipe and sets
7366         up a watch that triggers a config reload when one end of the pipe
7367         becomes readable.
7368         (signal_handler): Instead of doing the config reload in our SIGHUP
7369         handler, just write to the reload pipe and let the associated
7370         watch handle the reload when control returns to the main loop.
7371  
7372         * bus/driver.c (bus_driver_handle_reload_config): Added.
7373         Implements a ReloadConfig method for requesting a configuration
7374         file reload via the bus driver.
7375  
7376 2004-05-19  Owen Fraser-Green  <owen@discobabe.net>
7377
7378         * HACKING: Updated release instructions concerning the wiki page.
7379
7380 2004-05-18  Kristian Høgsberg  <krh@redhat.com>
7381
7382         * dbus/dbus-auth.c (client_try_next_mechanism): Remove logic to
7383         filter against auth->allowed_mechs; we only add allowed mechs in
7384         record_mechanisms().
7385  
7386         * dbus/dbus-auth-script.c (_dbus_auth_script_run): Add an
7387         ALLOWED_MECHS to auth-script format so we can set the list of
7388         allowed mechanisms.
7389  
7390         * data/auth/client-out-of-mechanisms.auth-script: New test to
7391         check client disconnects when it is out of mechanisms to try.
7392  
7393         * dbus/dbus-auth.c (process_command): Remove check for lines
7394         longer that 1 MB; we only buffer up maximum 16 kB.
7395  
7396         * dbus/dbus-transport.c, dbus/dbus-transport-unix.c,
7397         dbus/dbus-auth-script.c, dbus/dbus-auth.c, dbus/dbus-auth.h:
7398         Remove auth state AUTHENTICATED_WITH_UNUSED_BYTES, instead always
7399         assume there might be unused bytes.
7400  
7401         * dbus/dbus-auth.c (_dbus_auth_do_work): Remove check for
7402         client-out-of-mechs, it is handled in process_reject(). Move check
7403         for max failures to send_rejected(), as it's a server-only thing.
7404
7405         * dbus/dbus-auth.c: Factor out protocol reply code into functions
7406         send_auth(), send_data(), send_rejected(), send_error(),
7407         send_ok(), send_begin() and send_cancel().
7408
7409 2004-05-17  Kristian Høgsberg  <krh@redhat.com>
7410
7411         Remove base64 encoding, replace with hex encoding. Original patch
7412         from trow@ximian.com, added error handling.
7413
7414         * dbus/dbus-string.c (_dbus_string_base64_encode)
7415         (_dbus_string_base64_decode): Remove.
7416         (_dbus_string_hex_decode): Add end_return argument so we can
7417         distinguish between OOM and invalid hex encoding.
7418         (_dbus_string_test): Remove base64 tests and add test case for
7419         invalid hex.
7420
7421         * dbus/dbus-keyring.c, dbus/dbus-auth-script.c, dbus/dbus-auth.c:
7422         Replace base64 with hex.
7423
7424         * test/data/auth/invalid-hex-encoding.auth-script: New test case
7425         for invalid hex encoded data in auth protocol.
7426
7427 2004-05-17  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7428
7429         * dbus/dbus-connection.c (check_for_reply_unlocked): plug a memory
7430         leak.
7431
7432 2004-05-15  Owen Fraser-Green  <owen@discobabe.net>
7433
7434         * mono/dbus-sharp.dll.config.in: Added for GAC
7435         * mono/dbus-sharp.snk: Added for GAC
7436         * mono/Assembly.cs.in: Added for GAC
7437         * mono/Makefile.am: Changes for GAC installation        
7438         * configure.in: Added refs for dbus-sharp.dll.config.in and
7439         Assembly.cs.in. More fixes for mono testing
7440         * mono/example/Makefile.am: Changed var to CSC
7441         * Makefile.am: Changed flag name to DBUS_USE_CSC
7442
7443 2004-05-15  Owen Fraser-Green  <owen@discobabe.net>
7444
7445         * mono/Makefile.am: Added SUBDIRS for docs. Changed SUBDIRS order
7446         * mono/doc/*: Added documentation framework
7447         * configure.in: Added monodoc check
7448         * README: Added description of mono configure flags
7449
7450 2004-05-11  John (J5) Palmieri  <johnp@redhat.com>:
7451
7452         * doc/dbus-specification.xml: Added a "Required" column to the 
7453         header fields table and changed the "zero or more" verbage in
7454         the above paragraph to read "The header must contain the required 
7455         named header fields and zero or more of the optional named header 
7456         fields".
7457         * test/data/invalid-messages/*.message: Added the required PATH 
7458         named header field to the tests so that they don't fail on 
7459         'Missing path field'
7460
7461 2004-05-07  John (J5) Palmieri  <johnp@redhat.com>
7462
7463         * python/dbus-bindings.pyx.in: Stopped the bindings from trashing
7464         the stack by implicitly defining variable and parameter types and
7465         removing the hack of defining C pointers as python objects and later
7466         casting them.
7467
7468 2004-05-02  Owen Fraser-Green  <owen@discobabe.net>
7469
7470         * mono/Makefile.am: Removed test-dbus-sharp.exe from all target
7471
7472 2004-05-01  Owen Fraser-Green  <owen@discobabe.net>
7473
7474         * mono/DBusType/Dict.cs: Handle empty dicts
7475         * mono/DBusType/Array.cs: Handle empty arrays
7476         * mono/Arguments.cs: Handle empty arguments
7477
7478 2004-04-30  Owen Fraser-Green  <owen@discobabe.net>
7479
7480         * dbus-sharp.pc.in: Modified to include include Libs and Requires
7481         field
7482
7483 2004-04-25  Kristian Høgsberg  <krh@redhat.com>
7484
7485         * test/data/valid-messages/standard-*.message: Update message
7486         test scripts to new header field names.
7487
7488 2004-04-22  John (J5) Palmieri  <johnp@redhat.com>
7489
7490         * test/break-loader.c (randomly_do_n_things): tracked down buffer
7491         overflow to times_we_did_each_thing array which would chop off the
7492         first character of the failure_dir string. Increased the size of
7493         the array to 7 to reflect the number of random mutation functions
7494         we have.
7495
7496 2004-04-21  Kristian Høgsberg  <krh@redhat.com>
7497
7498         * dbus/dbus-server-unix.c (unix_finalize): Don't unref
7499         unix_server->watch here, it is unreffed in disconnect.
7500         (_dbus_server_new_for_tcp_socket): convert NULL host to
7501         "localhost" here so we don't append NULL to address.
7502         
7503         * dbus/dbus-server.c (_dbus_server_test): Add test case for
7504         various addresses, including tcp with no explicit host.
7505
7506 2004-04-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7507
7508         * dbus/dbus-message.c (decode_header_data, decode_string_field):
7509         fix incorrect setting of .name_offset in the HeaderField (it was
7510         off by two bytes, positioned right after the name and typecode)
7511
7512         * bus/bus.c (bus_context_new, bus_context_unref): test before
7513         calling dbus_server_free_data_slot and _dbus_user_database_unref
7514         in case of an error.
7515
7516         * tools/Makefile.am: add $(DBUS_GLIB_TOOL_LIBS), xml libs needed
7517         by libdbus-gtool.
7518
7519 2004-04-19  Kristian Høgsberg  <krh@redhat.com>
7520
7521         * dbus/dbus-transport-unix.c (unix_do_iteration): Rewrite to use
7522         _dbus_poll() instead of select().
7523
7524 2004-04-15  Jon Trowbridge  <trow@ximian.com>
7525
7526         * bus/main.c (signal_handler): Reload the configuration files
7527         on SIGHUP.
7528         (main): Set up our SIGHUP handler.
7529
7530         * bus/bus.c (struct BusContext): Store the config file, user and
7531         fork flag in the BusContext.
7532         (process_config_first_time_only): Added.  Contains the code
7533         (previously in bus_context_new) for setting up the BusContext from
7534         the BusConfigParser that should only be run the first time the
7535         config files are read.
7536         (process_config_every_time): Added.  Contains the code (previously
7537         in bus_context_new) for setting up the BusContext from the
7538         BusConfigParser that should be run every time the config files are
7539         read.
7540         (load_config): Added.  Builds a BusConfigParser from the config
7541         files and passes the resulting structure off to
7542         process_config_first_time_only (assuming this is the first time)
7543         and process_config_every_time.
7544         (bus_context_new): All of the config-related code has been moved
7545         to process_config_first_time_only and process_config_every_time.
7546         Now this function just does the non-config-related initializations
7547         and calls load_config.
7548         (bus_context_reload_config): Added.
7549
7550 2004-04-15  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7551
7552         * bus/driver.c (bus_driver_handle_get_service_owner):
7553         implement a GetServiceOwner method.
7554         * doc/dbus-specification.xml: document it.
7555         * dbus/dbus-errors.h: add a 'ServiceHasNoOwner' error.
7556         
7557         * glib/dbus-gproxy.c (dbus_gproxy_new_for_service_owner):
7558         implement, using the bus GetServiceOwner method.
7559
7560         * test/glib/test-dbus-glib.c:
7561         use dbus_gproxy_new_for_service_owner so that we can receive the
7562         signal. 
7563
7564 2004-04-15  John (J5) Palmieri  <johnp@redhat.com>
7565
7566         * dbus/dbus-internals.c, dbus/dbus-message-builder.c,
7567         dbus/dbus-message.c, dbus/dbus-protocol.h
7568         (DBUS_HEADER_FIELD_SERVICE): renamed DBUS_HEADER_FIELD_DESTINATION
7569
7570         * dbus/dbus-internals.c, dbus/dbus-message-builder.c,
7571         dbus/dbus-message.c, dbus/dbus-protocol.h
7572         (DBUS_HEADER_FIELD_SENDER_SERVICE): renamed DBUS_HEADER_FIELD_SENDER
7573
7574         * dbus/dbus-internals.c (_dbus_header_field_to_string):
7575         DBUS_HEADER_FIELD_DESTINATION resolves to "destination"
7576         DBUS_HEADER_FIELD_SENDER resolves to "sender"
7577
7578         * doc/dbus-specification.xml (Header Fields Table):
7579         s/SERVICE/DESTINATION
7580         s/SENDER_SERVICE/SENDER
7581
7582
7583 2004-04-14  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7584
7585         * test/glib/test-dbus-glib.c (timed_exit): fail the test after
7586         a few seconds.
7587
7588 2004-04-13  Michael Meeks  <michael@ximian.com>
7589
7590         * glib/dbus-gobject.c (handle_introspect): split out
7591         (introspect_properties): this.
7592         (handle_introspect): implement this.
7593
7594         * test/glib/Makefile.am: use the absolute path so the bus
7595         daemon's chdir ("/") doesn't kill us dead.
7596
7597         * configure.in: subst ABSOLUTE_TOP_BUILDDIR
7598
7599 2004-04-12  Jon Trowbridge  <trow@ximian.com>
7600
7601         * bus/config-parser.c (struct BusConfigParser): Added
7602         included_files field.
7603         (seen_include): Added.  Checks whether or not a file has already
7604         been included by any parent BusConfigParser.
7605         (bus_config_parser_new): Copy the parent's included_files.
7606         (include_file): Track which files have been included, and fail on
7607         circular inclusions.
7608         (process_test_valid_subdir): Changed printf to report if we are
7609         testing valid or invalid conf files.
7610         (all_are_equiv): Changed printf to be a bit clearer about
7611         what we are actually doing.
7612         (bus_config_parser_test): Test invalid configuration files.
7613
7614 2004-04-09  Jon Trowbridge  <trow@ximian.com>
7615
7616         * bus/config-parser.c (bus_config_parser_new): Added a 'parent'
7617         argument.  If non-null, the newly-constructed BusConfigParser will
7618         be initialized with the parent's BusLimits instead of the default
7619         values.
7620         (include_file): When including a config file, pass in
7621         the current parser as the parent and then copy the BusLimits
7622         from the included BusConfigParser pack to the current parser.
7623         (process_test_valid_subdir): Renamed from process_test_subdir.
7624         (process_test_equiv_subdir): Added.  Walks through a directory,
7625         descending into each subdirectory and loading the config files
7626         it finds there.  If any subdirectory contains two config files
7627         that don't produce identical BusConfigParser structs, fail.
7628         For now, the BusConfigParser's BusPolicies are not compared.
7629         (bus_config_parser_test): Call both process_test_valid_subdir and
7630         process_test_equiv_subdir.
7631
7632         * bus/config-loader-libxml.c (bus_config_load): Take a parent
7633         argument and pass it along to the call to bus_config_parser_new.
7634         Also made a few small changes to allow this code to compile.
7635
7636         * bus/config-loader-expat.c (bus_config_load): Take a parent
7637         argument and pass it along to the call to bus_config_parser_new.
7638
7639         * bus/bus.c (bus_context_new): Load the config file
7640         with a NULL parent argument.
7641
7642 2004-03-29  Michael Meeks  <michael@ximian.com>
7643
7644         * glib/dbus-gobject.c (introspect_properties): split
7645         out, fix mangled 'while' flow control.
7646         (introspect_signals): implement.
7647         (handle_introspect): update.
7648
7649 2004-03-29  Michael Meeks  <michael@ximian.com>
7650
7651         * glib/dbus-gobject.c (set_object_property): split out / 
7652         re-work, use the property type, and not the message type(!)
7653         (get_object_property): ditto.
7654
7655         * glib/dbus-gvalue.c (dbus_gvalue_demarshal),
7656         (dbus_gvalue_marshal): make this code re-usable, needed
7657         for signals too, also on both proxy and server side.
7658         Re-write for more efficiency / readability.
7659
7660 2004-03-29  Michael Meeks  <michael@ximian.com>
7661
7662         * dbus/dbus-message.c
7663         (dbus_message_new_error_printf): impl.
7664
7665         * dbus/dbus-connection.c
7666         (dbus_connection_unregister_object_path): fix warning.
7667
7668         * configure.in: fix no-mono-installed situation.
7669
7670 2004-03-27  Havoc Pennington  <hp@redhat.com>
7671
7672         Patch from Timo Teräs:
7673         
7674         * tools/dbus-send.c (main): if --print-reply, assume type is
7675         method call; support boolean type args
7676         
7677         * dbus/dbus-connection.c (dbus_connection_send_with_reply): fix a
7678         bunch of memleak and logic bugs
7679         
7680 2004-03-23  Owen Fraser-Green  <owen@discobabe.net>
7681
7682         * mono/Arguments.cs:
7683         * mono/Introspector.cs:
7684         * mono/Handler.cs:
7685         * mono/InterfaceProxy.cs:
7686         * mono/Message.cs
7687         * mono/ProxyBuilder.cs:
7688         * mono/Service.cs:
7689         Added InterfaceProxy class to avoid building proxies for every
7690         object.
7691
7692         * dbus-message.h:
7693         * dbus-message.c (dbus_message_append_args_valist)
7694         (dbus_message_iter_get_object_path)
7695         (dbus_message_iter_get_object_path_array)
7696         (dbus_message_iter_append_object_path)
7697         (dbus_message_iter_append_object_path_array):
7698         Added object_path iter functions to handle OBJECT_PATH arguments
7699         
7700 2004-03-23  Owen Fraser-Green  <owen@discobabe.net>
7701
7702         First checkin of mono bindings.
7703         * configure.in:
7704         * Makefile.am:
7705         Build stuff for the bindings
7706         * dbus-sharp.pc.in: Added for pkgconfig
7707         
7708 2004-03-21  Havoc Pennington  <hp@redhat.com>
7709
7710         * test/test-service.c (main): remove debug spew
7711
7712 2004-03-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7713
7714         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): accept empty
7715         arrays
7716
7717         * dbus/dbus-message.h, bus/dbus-message.c (dbus_message_iter_init)
7718         (dbus_message_iter_init_array_iterator)
7719         (dbus_message_iter_init_dict_iterator): return a dbus_bool_t to
7720         indicate whether the iterator is empty
7721
7722         * dbus/dbus-pending-call.c, dbus/dbus-server.c: silence compiler
7723         warnings
7724
7725 2004-03-19  Havoc Pennington  <hp@redhat.com>
7726
7727         * NEWS: 0.21 updates
7728
7729         * configure.in: 0.21
7730
7731         * doc/Makefile.am: add all XMLTO usage to DBUS_XML_DOCS_ENABLED
7732         
7733         * python/Makefile.am: change to avoid dist of dbus_bindings.c so
7734         you don't need pyrex to make dist
7735
7736         * qt/Makefile.am (libdbus_qt_1_la_SOURCES): add integrator.h to
7737         sources; run moc
7738         
7739 2004-03-18  Richard Hult  <richard@imendio.com>
7740
7741         * dbus/dbus-message.c (dbus_message_get_auto_activation) 
7742         (dbus_message_set_auto_activation): Add doxygen docs.
7743
7744 2004-03-16  Richard Hult  <richard@imendio.com>
7745
7746         * bus/activation.c: (bus_activation_service_created),
7747         (bus_activation_send_pending_auto_activation_messages),
7748         (bus_activation_activate_service):
7749         * bus/activation.h:
7750         * bus/dispatch.c: (bus_dispatch),
7751         (check_nonexistent_service_auto_activation),
7752         (check_service_auto_activated),
7753         (check_segfault_service_auto_activation),
7754         (check_existent_service_auto_activation), (bus_dispatch_test):
7755         * bus/driver.c: (bus_driver_handle_activate_service):
7756         * bus/services.c: (bus_registry_acquire_service):
7757         * dbus/dbus-message.c: (dbus_message_set_auto_activation),
7758         (dbus_message_get_auto_activation):
7759         * dbus/dbus-message.h:
7760         * dbus/dbus-protocol.h: Implement auto-activation.
7761         
7762         * doc/dbus-specification.xml: Add auto-activation to the spec.
7763
7764 2004-03-12  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7765
7766         * dbus/dbus-marshal.c (_dbus_marshal_get_arg_end_pos):
7767         fix a bug with CUSTOM types.
7768
7769         * dbus/dbus-message.c (message_iter_test, _dbus_message_test): add
7770         a unit test for this bug (used to fail).
7771
7772 2004-03-12  Mikael Hallendal  <micke@imendio.com>
7773
7774         * bus/activation.c:
7775         (babysitter_watch_callback): notify all pending activations waiting for
7776           the same exec that the activation failed.
7777         (bus_activation_activate_service): shortcut the activation if we 
7778           already waiting for the same executable to start up.
7779
7780 2004-03-12  Mikael Hallendal  <micke@imendio.com>
7781
7782         * bus/activation.c: 
7783         - Added service file reloading. 
7784           Each service files directory is kept in an hash table in 
7785           BusActivation and each BusActivationEntry knows what .service-file it
7786           was read from. So when you try to activate a service the bus will 
7787           check if it's been updated, removed or if new .service-files has 
7788           been installed.
7789         - Test code at the bottom for the service file reloading.
7790         * bus/test-main.c: (main):
7791         * bus/test.h:
7792         - added service reloading test.
7793         * dbus/dbus-sysdeps.c: 
7794         * dbus/dbus-sysdeps.h: (_dbus_delete_directory): Added.
7795
7796 2004-03-08  Michael Meeks  <michael@ximian.com>
7797
7798         * dbus/dbus-connection.c (_dbus_connection_block_for_reply): 
7799         bail immediately if disconnected, to avoid busy loop.
7800
7801         * dbus/dbus-message.c (dbus_message_iter_get_args_valist):
7802         cleanup cut/paste/inefficiency.
7803
7804 2004-03-01  David Zeuthen  <david@fubar.dk>
7805
7806         * dbus/dbus-string.c (_dbus_string_append_printf_valist): Fix a
7807         bug where args were used twice. This bug resulted in a segfault
7808         on a Debian/PPC system when starting the messagebus daemon. Include
7809         dbus-sysdeps.h for DBUS_VA_COPY
7810
7811         * dbus/dbus-sysdeps.h: Define DBUS_VA_COPY if neccessary. From GLib
7812
7813         * configure.in: Check for va_copy; define DBUS_VA_COPY to the
7814         appropriate va_copy implementation. From GLib
7815         
7816 2004-02-24  Joe Shaw  <joe@ximian.com>
7817
7818         * bus/services.c (bus_registry_acquire_service): We need to pass
7819         in the service name to dbus_set_error() to prevent a crash.
7820
7821 2003-12-26  Anders Carlsson  <andersca@gnome.org>
7822
7823         * AUTHORS: Reveal my True identity.
7824
7825 2003-12-17  Mikael Hallendal  <micke@imendio.com>
7826
7827         * dbus/dbus-message.c: (dbus_message_append_args_valist): 
7828         - Added case for DBUS_TYPE_BYTE, patch from Johan Hedberg.
7829
7830 2003-12-13  Mikael Hallendal  <micke@imendio.com>
7831
7832         * doc/TODO: Added not about better error check of configuration files.
7833
7834 2003-12-02  Richard Hult  <richard@imendio.com>
7835
7836         * Update AFL version to 2.0 throughout the source files to reflect
7837         the update that was done a while ago.
7838
7839 2003-12-02  Richard Hult  <richard@imendio.com>
7840
7841         * dbus/dbus-message.c (dbus_message_iter_append_dict): Set
7842         wrote_dict_key to FALSE on the iter that the dict is appended to,
7843         just like when appending other types. Fixes a bug where a dict
7844         couldn't be put inside a dict.
7845         (dbus_message_iter_append_dict_key): Fix typo in warning message.
7846         (message_iter_test, _dbus_message_test): Add test case for dict
7847         inside dict.
7848
7849 2003-12-01  David Zeuthen  <david@fubar.dk>
7850
7851         * python/dbus.py: Add the actual message when calling the reciever
7852         of a signal such that parameters can be inspected. Add the method
7853         remove_signal_receiver
7854         
7855 2003-11-26  Mikael Hallendal  <micke@imendio.com>
7856
7857         * bus/*.[ch]:
7858         * dbus/*.[ch]:
7859         * glib/*.[ch]: Made ref functions return the pointer
7860
7861 2003-11-25  Zack Rusin  <zack@kde.org>
7862
7863         * qt/integrator.h, qt/integrator.cpp: Adding handling of DBusServer,
7864
7865         * qt/server.h, qt/server.cpp, qt/Makefile.am: Adding DBusServer 
7866         wrappers,
7867
7868         * qt/connection.h, qt/connection.cpp: Adjusting to changes in 
7869         the Integrator and to better fit with the server,
7870
7871 2003-11-24  Zack Rusin  <zack@kde.org>
7872
7873         * qt/connection.h, qt/connection.cpp: removing initDbus method since
7874         the integrator handles it now
7875
7876         * qt/integrator.h, qt/integrator.cpp: reworking handling of timeouts,
7877         since QTimer wasn't really meant to be used the way DBusTimeout is
7878
7879 2003-11-24  Zack Rusin  <zack@kde.org>
7880
7881         * qt/integrator.h, qt/integrator.cpp, Makefile.am: Adding 
7882         Integrator class which integrates D-BUS with the Qt event loop,
7883
7884         * qt/connection.h, qt/connection.cpp: Move all the code which
7885         was dealing with D-BUS integration to the Integrator class,
7886         and start using Integrator,
7887
7888 2003-11-23  Zack Rusin  <zack@kde.org>
7889
7890         * qt/connection.h, qt/connection.cpp: Adding the DBusConnection 
7891         wrapper
7892
7893         * qt/message.h, qt/message.cpp: updating to the current D-BUS api,
7894         switching namespaces to DBusQt, reworking the class,
7895
7896         * Makefile.cvs: switching dependencies so that it matches KDE 
7897         schematics,
7898         
7899         * qt/Makefile.am: adding connection.{h,cpp} and message.{h,cpp} to 
7900         the library
7901
7902 2003-11-19  Havoc Pennington  <hp@redhat.com>
7903
7904         * NEWS: update
7905
7906         * configure.in: bump version to 0.20
7907
7908         * configure.in (have_qt): add yet another place to look for qt
7909         (someone hand trolltech a .pc file...)
7910
7911 2003-11-01  Havoc Pennington  <hp@redhat.com>
7912
7913         * doc/dbus-specification.xml: add state machine docs on the auth
7914         protocol; just a first draft, I'm sure it's wrong.      
7915
7916 2003-10-28  David Zeuthen  <david@fubar.dk>
7917
7918         * python/dbus_bindings.pyx.in: add get_dict to handle dictionaries
7919         return types. Fixup TYPE_* to reflect changes in dbus/dbus-protocol.h
7920         
7921 2003-10-28  Havoc Pennington  <hp@redhat.com>
7922
7923         * dbus/dbus-message.c (get_next_field): delete unused function
7924
7925 2003-10-28  Havoc Pennington  <hp@redhat.com>
7926
7927         * bus/expirelist.c (do_expiration_with_current_time): detect
7928         failure of the expire_func due to OOM
7929
7930         * bus/connection.c (bus_pending_reply_expired): return FALSE on OOM
7931
7932         * bus/dispatch.c (check_send_exit_to_service): fix to handle the
7933         NoReply error that's now created by the bus when the service exits
7934
7935 2003-10-28  Havoc Pennington  <hp@redhat.com>
7936
7937         * dbus/dbus-message.c (_dbus_message_test): enable and fix the
7938         tests for set_path, set_interface, set_member, etc.
7939
7940         * dbus/dbus-string.c (_dbus_string_insert_bytes): allow 0 bytes
7941
7942         * dbus/dbus-message.c (set_string_field): always just delete and
7943         re-append the field; accept NULL for deletion
7944         (re_align_fields_recurse): reimplement
7945         
7946 2003-10-26  Havoc Pennington  <hp@redhat.com>
7947
7948         * dbus/dbus-connection.c: fix docs to properly describe the
7949         disconnected message
7950         (_dbus_connection_notify_disconnected): remove this function; 
7951         we can't synchronously add the disconnected message, we have to 
7952         do it after we've queued any remaining real messages
7953         (_dbus_connection_get_dispatch_status_unlocked): queue the
7954         disconnect message only if the transport has finished queueing all
7955         its real messages and is disconnected.
7956         (dbus_connection_disconnect): update the dispatch status here
7957
7958 2003-10-22  Havoc Pennington  <hp@redhat.com>
7959
7960         * bus/bus.c (bus_context_check_security_policy): fix up assertion
7961
7962         * bus/connection.c (bus_transaction_send_from_driver): set the
7963         destination to the connection's base service
7964
7965 2003-10-20  Havoc Pennington  <hp@redhat.com>
7966
7967         hmm, make check is currently not passing.
7968         
7969         * doc/dbus-specification.xml: add requirement that custom type
7970         names follow the same rules as interface names.
7971
7972         * dbus/dbus-protocol.h: change some of the byte codes, to avoid
7973         duplication and allow 'c' to be 'custom'; dict is now 'm' for
7974         'map'
7975
7976         * doc/dbus-specification.xml: update type codes to match
7977         dbus-protocol.h, using the ASCII byte values. Rename type NAMED to
7978         CUSTOM. Add type OBJECT_PATH to the spec.
7979
7980 2003-10-17  Havoc Pennington  <hp@redhat.com>
7981
7982         * bus/driver.c (create_unique_client_name): use "." as separator
7983         in base service names instead of '-'
7984
7985         * dbus/dbus-string.c (_dbus_string_get_byte): allow getting nul
7986         byte at the end of the string
7987
7988         * dbus/dbus-internals.h (_DBUS_LIKELY, _DBUS_UNLIKELY): add
7989         optimization macros since string validation seems to be a slow
7990         point.
7991         
7992         * doc/dbus-specification.xml: restrict valid
7993         service/interface/member/error names. Add test suite code for the
7994         name validation.
7995
7996         * dbus/dbus-string.c: limit service/interface/member/error names 
7997         to [0-9][A-Z][a-z]_
7998
7999         * dbus/dbus-connection.c (dbus_connection_dispatch): add missing
8000         format arg to verbose spew
8001
8002         * glib/dbus-gproxy.c (dbus_gproxy_call_no_reply): if not out of
8003         memory, return instead of g_error
8004
8005         * test/test-service.c (path_message_func): support emitting a
8006         signal on request
8007
8008         * dbus/dbus-bus.c (init_connections_unlocked): only fill in
8009         activation bus type if DBUS_BUS_ACTIVATION was set; default to
8010         assuming the activation bus was the session bus so that services
8011         started manually will still register.
8012         (init_connections_unlocked): fix so that in OOM situation we get
8013         the same semantics when retrying the function
8014         
8015         * test/test-service.c (main): change to use path registration, to
8016         test those codepaths; register with DBUS_BUS_ACTIVATION rather
8017         than DBUS_BUS_SESSION
8018
8019 2003-10-16  Havoc Pennington  <hp@redhat.com>
8020
8021         * glib/dbus-gtest-main.c: bracket with #ifdef DBUS_BUILD_TESTS
8022
8023         * Makefile.am (GCOV_DIRS): remove "test", we don't care about test
8024         coverage of the tests
8025         (coverage-report.txt): don't move the .da and .bbg files around
8026
8027 2003-10-16  Havoc Pennington  <hp@redhat.com>
8028
8029         * bus/bus.c (struct BusContext): remove struct field I didn't mean
8030         to put there
8031
8032 2003-10-16  Havoc Pennington  <hp@redhat.com>
8033
8034         * bus/connection.c (bus_pending_reply_expired): either cancel or
8035         execute, not both
8036         (bus_connections_check_reply): use unlink, not remove_link, as we
8037         don't want to free the link; fixes double free mess
8038
8039         * dbus/dbus-pending-call.c (dbus_pending_call_block): fix in case
8040         where no reply was received
8041
8042         * dbus/dbus-connection.c (_dbus_pending_call_complete_and_unlock):
8043         fix a refcount leak
8044
8045         * bus/signals.c (match_rule_matches): add special cases for the
8046         bus driver, so you can match on sender/destination for it.
8047
8048         * dbus/dbus-sysdeps.c (_dbus_abort): print backtrace if
8049         DBUS_PRINT_BACKTRACE is set
8050
8051         * dbus/dbus-internals.c: add pid to assertion failure messages
8052
8053         * dbus/dbus-connection.c: add message type code to the debug spew
8054
8055         * glib/dbus-gproxy.c (gproxy_get_match_rule): match rules want
8056         sender=foo not service=foo
8057
8058         * dbus/dbus-bus.c (dbus_bus_get): if the activation bus is the
8059         session bus but DBUS_SESSION_BUS_ADDRESS isn't set, use 
8060         DBUS_ACTIVATION_ADDRESS instead
8061
8062         * bus/activation.c: set DBUS_SESSION_BUS_ADDRESS,
8063         DBUS_SYSTEM_BUS_ADDRESS if appropriate
8064
8065         * bus/bus.c (bus_context_new): handle OOM copying bus type into
8066         context struct
8067
8068         * dbus/dbus-message.c (dbus_message_iter_get_object_path): new function
8069         (dbus_message_iter_get_object_path_array): new function (half
8070         finished, disabled for the moment)
8071         
8072         * glib/dbus-gproxy.c (dbus_gproxy_end_call): properly handle
8073         DBUS_MESSAGE_TYPE_ERROR
8074
8075         * tools/dbus-launch.c (babysit): support DBUS_DEBUG_OUTPUT to
8076         avoid redirecting stderr to /dev/null
8077         (babysit): close stdin if not doing the "exit_with_session" thing
8078
8079         * dbus/dbus-sysdeps.c (_dbus_become_daemon): delete some leftover
8080         debug code; change DBUS_DEBUG_OUTPUT to only enable stderr, not
8081         stdout/stdin, so things don't get confused
8082         
8083         * bus/system.conf.in: fix to allow replies, I modified .conf
8084         instead of .conf.in again.
8085
8086 2003-10-14  David Zeuthen  <david@fubar.dk>
8087
8088         * python/dbus_bindings.pyx.in (MessageIter.get): fixed typo in
8089         argtype to arg_type when raising unknown arg type exception.
8090         Changed type list to reflect the changes in dbus-protocol.h so 
8091         the bindings actually work.
8092
8093 2003-10-14  Havoc Pennington  <hp@redhat.com>
8094
8095         * test/decode-gcov.c: support gcc 3.3 also, though gcc 3.3 seems
8096         to have a bug keeping it from outputting the .da files sometimes
8097         (string_get_string): don't append garbage nul bytes to the string.
8098
8099 2003-10-15  Seth Nickell  <seth@gnome.org>
8100
8101         * python/Makefile.am:
8102
8103         Include dbus_h_wrapper.h in the dist tarball.
8104
8105 2003-10-14  Havoc Pennington  <hp@redhat.com>
8106
8107         * bus/bus.c (bus_context_check_security_policy): revamp this to
8108         work more sanely with new policy-based requested reply setup
8109
8110         * bus/connection.c (bus_transaction_send_from_driver): set bus
8111         driver messages as no reply
8112
8113         * bus/policy.c (bus_client_policy_check_can_receive): handle a
8114         requested_reply attribute on allow/deny rules
8115
8116         * bus/system.conf: add <allow requested_reply="true"/>
8117
8118         * bus/driver.c (bus_driver_handle_message): fix check for replies
8119         sent to the bus driver, which was backward. How did this ever work
8120         at all though? I think I'm missing something.
8121
8122         * dbus/dbus-message.c (decode_header_data): require error and
8123         method return messages to have a reply serial field to be valid
8124         (_dbus_message_loader_queue_messages): break up this function;
8125         validate that reply serial and plain serial are nonzero; 
8126         clean up the OOM/error handling.
8127         (get_uint_field): don't return -1 from this
8128         (dbus_message_create_header): fix signed/unsigned bug
8129
8130         * bus/connection.c (bus_connections_expect_reply): save serial of
8131         the incoming message, not reply serial
8132
8133 2003-10-14  Havoc Pennington  <hp@redhat.com>
8134
8135         * bus/connection.c: implement pending reply tracking using
8136         BusExpireList
8137
8138         * bus/bus.c (bus_context_check_security_policy): verify that a
8139         reply is pending in order to allow a reply to be sent. Deny 
8140         messages of unknown type.
8141
8142         * bus/dbus-daemon-1.1.in: update to mention new resource limits
8143
8144         * bus/bus.c (bus_context_get_max_replies_per_connection): new
8145         (bus_context_get_reply_timeout): new
8146
8147 2003-10-13  Seth Nickell  <seth@gnome.org>
8148
8149         * python/Makefile.am:
8150
8151         Pass "make distcheck": remove a couple files from DIST_FILES
8152         that weren't included in the final version.
8153
8154 2003-10-12  Havoc Pennington  <hp@pobox.com>
8155
8156         Added test code that 1) starts an actual bus daemon and 2) uses
8157         DBusGProxy; fixed bugs that were revealed by the test. Lots 
8158         more testing possible, but this is the basic framework.
8159         
8160         * glib/dbus-gproxy.c (dbus_gproxy_manager_unregister): remove
8161         empty proxy lists from the proxy list hash
8162
8163         * dbus/dbus-message.c (dbus_message_iter_get_args_valist): add a
8164         couple of return_if_fail checks
8165
8166         * dbus/dbus-pending-call.c (_dbus_pending_call_new): use dbus_new0
8167         to allocate, so everything is cleared to NULL as it should be.
8168
8169         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): pass
8170         source as data to dbus_connection_set_timeout_functions() as the 
8171         timeout functions expected
8172
8173         * test/glib/run-test.sh: add a little script to start up a message
8174         bus and run tests using it
8175
8176         * tools/dbus-launch.1: updates
8177
8178         * tools/dbus-launch.c (main): add --config-file option
8179
8180         * tools/dbus-launch.c (main): remove confusing else if (runprog)
8181         that could never be reached.
8182
8183         * dbus/dbus-message.c (dbus_message_new_method_return) 
8184         (dbus_message_new_error, dbus_message_new_signal): set the
8185         no-reply-expected flag on all these. Redundant, but may
8186         as well be consistent.
8187
8188 2003-10-11  Havoc Pennington  <hp@pobox.com>
8189
8190         * test/decode-gcov.c (function_solve_graph): make broken block
8191         graph a nonfatal error since it seems to be broken. Need to debug
8192         this.
8193
8194         * dbus/dbus-marshal.c (_dbus_type_is_valid): new function since we
8195         can't just check type > INVALID < LAST anymore
8196
8197         * dbus/dbus-message.c (dbus_message_get_signature): new function
8198         (dbus_message_has_signature): new function
8199         (struct DBusMessage): add signature field (right now it isn't sent
8200         over the wire, just generated on the fly)
8201         (dbus_message_copy): copy the signature, and init strings to
8202         proper length to avoid some reallocs
8203         (dbus_message_iter_init_array_iterator): return void, since it
8204         can't fail
8205         (dbus_message_iter_init_dict_iterator): return void since it can't fail
8206         (_dbus_message_loader_queue_messages): add silly temporary hack to
8207         fill in message->signature on load
8208
8209         * dbus/dbus-protocol.h: change DBUS_TYPE_* values to be ASCII
8210         characters, so they are relatively human-readable.
8211
8212 2003-10-11  Havoc Pennington  <hp@pobox.com>
8213
8214         * dbus/dbus-message.c (_dbus_message_test): add more test
8215         coverage, but #if 0 for now since they uncover a bug 
8216         not fixed yet; I think in re_align_field_recurse()
8217         (re_align_field_recurse): add FIXME about broken assertion
8218
8219         * dbus/dbus-sysdeps.c (_dbus_sysdeps_test): add more test coverage
8220
8221         * bus/connection.c: share a couple code bits with expirelist.c
8222
8223         * bus/expirelist.h, bus/expirelist.c: implement a generic
8224         expire-items-after-N-seconds facility, was going to share between
8225         expiring connections and replies, decided not to use for expiring
8226         connections for now.
8227
8228         * COPYING: include AFL 2.0 (still need to change all the file headers)
8229
8230 2003-10-09  Havoc Pennington  <hp@redhat.com>
8231
8232         * configure.in: define DBUS_HAVE_GCC33_GCOV if we have
8233         gcc 3.3. Not that we do anything about it yet.
8234
8235         * bus/signals.c (bus_match_rule_parse): impose max length on the
8236         match rule text
8237
8238         * dbus/dbus-protocol.h: add DBUS_MAXIMUM_MATCH_RULE_LENGTH
8239
8240 2003-10-09  Havoc Pennington  <hp@redhat.com>
8241
8242         Make matching rules theoretically work (add parser).
8243         
8244         * bus/bus.c (bus_context_check_security_policy): fix up to handle
8245         the case where destination is explicitly specified as bus driver
8246         and someone else is eavesdropping.
8247         
8248         * bus/policy.c (bus_client_policy_check_can_receive): fix up
8249         definition of eavesdropping and assertion
8250
8251         * tools/dbus-send.c (main): use dbus_message_type_from_string
8252
8253         * bus/signals.c (bus_match_rule_parse): implement
8254
8255         * dbus/dbus-message.c (dbus_message_type_from_string): new
8256
8257         * dbus/dbus-errors.h (DBUS_ERROR_MATCH_RULE_INVALID): add
8258
8259 2003-10-02  Havoc Pennington  <hp@pobox.com>
8260
8261         * glib/dbus-gproxy.c (dbus_gproxy_call_no_reply): rename from
8262         dbus_gproxy_oneway_call
8263
8264         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main) 
8265         (dbus_server_setup_with_g_main): fix to allow calling them more
8266         than once on the same args
8267         (dbus_bus_get_with_g_main): new function
8268
8269 2003-10-02  Havoc Pennington  <hp@redhat.com>
8270
8271         * doc/dbus-tutorial.xml: write some stuff
8272
8273 2003-09-29  Havoc Pennington  <hp@pobox.com>
8274
8275         * configure.in: split checks for Doxygen from XML docs, check for
8276         xmlto
8277
8278         * doc/Makefile.am: XML-ify all the docs, and add a blank
8279         dbus-tutorial.xml
8280
8281 2003-09-29  Havoc Pennington  <hp@pobox.com>
8282
8283         * Merge dbus-object-names branch. To see the entire patch 
8284         do cvs diff -r DBUS_OBJECT_NAMES_BRANCHPOINT -r dbus-object-names,
8285         it's huuuuge though.
8286         To revert, I tagged DBUS_BEFORE_OBJECT_NAMES_MERGE.
8287         
8288 2003-09-28  Havoc Pennington  <hp@pobox.com>
8289
8290         * HACKING: update to reflect new server
8291
8292 2003-09-26  Seth Nickell  <seth@gnome.org>
8293
8294         * python/dbus.py:
8295         * python/examples/example-signals.py:
8296
8297         Start implementing some notions of signals. The API
8298         is really terrible, but they sort of work (with the
8299         exception of being able to filter by service, and to
8300         transmit signals *as* a particular service). Need to
8301         figure out how to make messages come from the service
8302         we registered :-(
8303         
8304         * python/dbus_bindings.pyx.in:
8305
8306         Removed duplicate message_handler callbacks.
8307         
8308 2003-09-25  Havoc Pennington  <hp@redhat.com>
8309
8310         * bus/session.conf.in: fix my mess
8311
8312 2003-09-25  Havoc Pennington  <hp@pobox.com>
8313
8314         * bus/session.conf.in: fix security policy, reported by Seth Nickell
8315
8316 2003-09-25  Seth Nickell  <seth@gnome.org>
8317
8318         * python/examples/example-service.py:
8319
8320         Johan notices complete wrong code in example-service, but
8321         completely wrong in a way that works exactly the same (!).
8322         Johan is confused, how could this possibly work? Example
8323         code fails to serve purpose of making things clear.
8324         Seth fixes.
8325
8326 2003-09-25  Mark McLoughlin  <mark@skynet.ie>
8327
8328         * doc/dbus-specification.sgml: don't require header fields
8329         to be 4-byte aligned and specify that fields should be
8330         distinguished from padding by the fact that zero is not
8331         a valid field name.
8332         
8333         * doc/TODO: remove re-alignment item and add item to doc
8334         the OBJECT_PATH type.
8335         
8336         * dbus/dbus-message.c:
8337         (HeaderField): rename the original member to value_offset
8338         and introduce a name_offset member to keep track of where
8339         the field actually begins.
8340         (adjust_field_offsets): remove.
8341         (append_int_field), (append_uint_field),
8342         (append_string_field): don't align the start of the header
8343         field to a 4-byte boundary.
8344         (get_next_field): impl finding the next marhsalled field
8345         after a given field.
8346         (re_align_field_recurse): impl re-aligning a number of
8347         already marshalled fields.
8348         (delete_field): impl deleting a field of any type and
8349         re-aligning any following fields.
8350         (delete_int_or_uint_field), (delete_string_field): remove.
8351         (set_int_field), (set_uint_field): no need to re-check
8352         that we have the correct type for the field.
8353         (set_string_field): ditto and impl re-aligning any
8354         following fields.
8355         (decode_header_data): update to take into account that
8356         the fields aren't 4-byte aligned any more and the new
8357         way to distinguish padding from header fields. Also,
8358         don't exit when there is too much header padding.
8359         (process_test_subdir): print the directory.
8360         (_dbus_message_test): add test to make sure a following
8361         field is re-aligned correctly after field deletion.
8362         
8363         * dbus/dbus-string.[ch]:
8364         (_dbus_string_insert_bytes): rename from insert_byte and
8365         allow the insert of multiple bytes.
8366         (_dbus_string_test): test inserting multiple bytes.
8367
8368         * dbus/dbus-marshal.c: (_dbus_marshal_set_string): add
8369         warning note to docs about having to re-align any
8370         marshalled values following the string.
8371         
8372         * dbus/dbus-message-builder.c:
8373         (append_string_field), (_dbus_message_data_load):
8374         don't align the header field.
8375         
8376         * dbus/dbus-auth.c: (process_test_subdir): print the
8377         directory.
8378         
8379         * test/break-loader.c: (randomly_add_one_byte): upd. for
8380         insert_byte change.
8381         
8382         * test/data/invalid-messages/bad-header-field-alignment.message:
8383         new test case.
8384         
8385         * test/data/valid-messages/unknown-header-field.message: shove
8386         a dict in the unknown field.
8387
8388 2003-09-25  Seth Nickell  <seth@gnome.org>
8389
8390         * python/dbus.py:
8391         * python/dbus_bindings.pyx.in:
8392
8393         Handle return values.
8394         
8395         * python/examples/example-client.py:
8396         * python/examples/example-service.py:
8397
8398         Pass back return values from the service to the client.
8399         
8400 2003-09-24  Seth Nickell  <seth@gnome.org>
8401
8402         * python/dbus.py:
8403
8404         Connect Object methods (when you are sharing an object) up... pass
8405         in a list of methods to be shared. Sharing all the methods just
8406         worked out too weird. You can now create nice Services over the
8407         DBus in Python. :-)
8408         
8409         * python/dbus_bindings.pyx.in:
8410
8411         Keep references to user_data tuples passed into C functions so 
8412         Python doesn't garbage collect on us.
8413
8414         Implement MethodReturn and Error subclasses of Message for creating
8415         DBusMessage's of those types.
8416         
8417         * python/examples/example-client.py:
8418         * python/examples/example-service.py:
8419
8420         Simple example code showing both how create DBus services and objects,
8421         and how to use them.
8422
8423 2003-09-23  Havoc Pennington  <hp@pobox.com>
8424
8425         * glib/dbus-gproxy.c (dbus_gproxy_manager_filter): implement
8426
8427 2003-09-23  Havoc Pennington  <hp@redhat.com>
8428
8429         * glib/dbus-gproxy.c (dbus_gproxy_connect_signal): implement
8430         (dbus_gproxy_disconnect_signal): implement
8431         (dbus_gproxy_manager_remove_signal_match): implement
8432         (dbus_gproxy_manager_add_signal_match): implement
8433         (dbus_gproxy_oneway_call): implement
8434
8435 2003-09-23  Havoc Pennington  <hp@pobox.com>
8436
8437         * glib/dbus-gproxy.c (struct DBusGProxy): convert to a GObject
8438         subclass. This means dropping the transparent thread safety of the
8439         proxy; you now need a separate proxy per-thread, or your own
8440         locking on the proxy. Probably right anyway.
8441         (dbus_gproxy_ref, dbus_gproxy_unref): nuke, just use g_object_ref
8442
8443 2003-09-22  Havoc Pennington  <hp@redhat.com>
8444
8445         * glib/dbus-gproxy.c (dbus_gproxy_manager_get): implement
8446
8447 2003-09-21  Seth Nickell  <seth@gnome.org>
8448
8449         First checkin of the Python bindings.
8450         
8451         * python/.cvsignore:
8452         * python/Makefile.am:
8453         * python/dbus_bindings.pyx.in:
8454         * python/dbus_h_wrapper.h:
8455
8456         Pieces for Pyrex to operate on, building a dbus_bindings.so
8457         python module for low-level access to the DBus APIs.
8458         
8459         * python/dbus.py:
8460
8461         High-level Python module for accessing DBus objects.
8462
8463         * configure.in:
8464         * Makefile.am:
8465
8466         Build stuff for the python bindings.
8467
8468         * acinclude.m4:
8469
8470         Extra macro needed for finding the Python C header files.
8471
8472 2003-09-21  Havoc Pennington  <hp@pobox.com>
8473
8474         * glib/dbus-gproxy.c (dbus_gproxy_manager_new): start
8475         implementing the proxy manager, didn't get very far.
8476
8477         * dbus/dbus-bus.c (dbus_bus_add_match): new
8478         (dbus_bus_remove_match): new
8479
8480         * glib/dbus-gproxy.c (dbus_gproxy_new_for_service): add a
8481         path_name argument; adjust the other not-yet-implemented 
8482         gproxy constructors to be what I think they should be.
8483
8484 2003-09-21  Havoc Pennington  <hp@pobox.com>
8485
8486         * dbus/dbus-bus.c (dbus_bus_get): set exit_on_disconnect to TRUE
8487         by default for message bus connections.
8488
8489         * dbus/dbus-connection.c (dbus_connection_dispatch): exit if
8490         exit_on_disconnect flag is set and we process the disconnected
8491         signal.
8492         (dbus_connection_set_exit_on_disconnect): new function
8493
8494 2003-09-21  Havoc Pennington  <hp@pobox.com>
8495
8496         Get matching rules mostly working in the bus; only actually
8497         parsing the rule text remains. However, the client side of
8498         "signal connections" hasn't been started, this patch is only the
8499         bus side.
8500         
8501         * dbus/dispatch.c: fix for the matching rules changes
8502         
8503         * bus/driver.c (bus_driver_handle_remove_match)
8504         (bus_driver_handle_add_match): send an ack reply from these
8505         method calls
8506
8507         * glib/dbus-gproxy.c (dbus_gproxy_begin_call): fix order of
8508         arguments, reported by Seth Nickell
8509
8510         * bus/config-parser.c (append_rule_from_element): support
8511         eavesdrop=true|false attribute on policies so match rules 
8512         can be prevented from snooping on the system bus.
8513
8514         * bus/dbus-daemon-1.1.in: consistently use terminology "sender"
8515         and "destination" in attribute names; fix some docs bugs; 
8516         add eavesdrop=true|false attribute
8517
8518         * bus/driver.c (bus_driver_handle_add_match)
8519         (bus_driver_handle_remove_match): handle AddMatch, RemoveMatch
8520         messages
8521
8522         * dbus/dbus-protocol.h (DBUS_SERVICE_ORG_FREEDESKTOP_BROADCAST): get
8523         rid of broadcast service concept, signals are just always broadcast
8524
8525         * bus/signals.c, bus/dispatch.c, bus/connection.c, bus/bus.c:
8526         mostly implement matching rules stuff (currently only exposed as signal
8527         connections)
8528
8529 2003-09-21  Mark McLoughlin  <mark@skynet.ie>
8530
8531         * doc/dbus-specification.sgml: Change the header field name
8532         to be an enum and update the rest of the spec to reference
8533         the fields using the conventinal name.
8534
8535         * dbus/dbus-protocol.h: update to reflect the spec.
8536
8537         * doc/TODO: add item to remove the 4 byte alignment requirement.
8538         
8539         * dbus/dbus-message.c: Remove the code to generalise the
8540         header/body length and serial number header fields as named
8541         header fields so we can reference field names using the 
8542         protocol values.
8543         (append_int_field), (append_uint_field), (append_string_field):
8544         Append the field name as a byte rather than four chars.
8545         (delete_int_or_uint_field), (delete_string_field): reflect the
8546         fact that the field name and typecode now occupy 4 bytes instead
8547         of 8.
8548         (decode_string_field), (decode_header_data): update to reflect
8549         protocol changes and move the field specific encoding from
8550         decode_string_field() back into decode_header_data().
8551         
8552         * dbus/dbus-internals.[ch]: (_dbus_header_field_to_string):
8553         Add utility to aid debugging.
8554         
8555         * dbus/dbus-message-builder.c:
8556         (append_string_field), (_dbus_message_data_load): Update to
8557         reflect protocol changes; Change the FIELD_NAME directive
8558         to HEADER_FIELD and allow it to take the field's conventional
8559         name rather than the actual value.
8560         
8561         * test/data/*/*.message: Update to use HEADER_FIELD instead
8562         of FIELD_NAME; Always align the header on an 8 byte boundary
8563         *before* updating the header length.
8564
8565 2003-09-15  Havoc Pennington  <hp@pobox.com>
8566
8567         * dbus/dbus-pending-call.c: add the get/set object data
8568         boilerplate as for DBusConnection, etc. Use generic object data
8569         for the notify callback.
8570
8571         * glib/dbus-gparser.c (parse_node): parse child nodes
8572
8573         * tools/dbus-viewer.c: more hacking on the dbus-viewer
8574         
8575         * glib/dbus-gutils.c (_dbus_gutils_split_path): add a file to
8576         contain functions shared between the convenience lib and the
8577         installed lib
8578
8579         * glib/Makefile.am (libdbus_glib_1_la_LDFLAGS): add
8580         -export-symbols-regex to the GLib library
8581
8582         * dbus/dbus-object-tree.c (_dbus_object_tree_dispatch_and_unlock):
8583         fix the locking in here, and add a default handler for
8584         Introspect() that just returns sub-nodes.
8585
8586 2003-09-14  Havoc Pennington  <hp@pobox.com>
8587
8588         * glib/dbus-gthread.c (dbus_g_thread_init): rename to make g_foo
8589         rather than gfoo consistent
8590
8591         * glib/dbus-gproxy.h: delete for now, move contents to
8592         dbus-glib.h, because the include files don't work right since we
8593         aren't in the dbus/ subdir.
8594         
8595         * glib/dbus-gproxy.c (dbus_gproxy_send): finish implementing
8596         (dbus_gproxy_end_call): finish
8597         (dbus_gproxy_begin_call): finish
8598
8599         * glib/dbus-gmain.c (dbus_set_g_error): new
8600
8601         * glib/dbus-gobject.c (handle_introspect): include information
8602         about child nodes in the introspection
8603
8604         * dbus/dbus-connection.c (dbus_connection_list_registered): new
8605         function to help in implementation of introspection
8606
8607         * dbus/dbus-object-tree.c
8608         (_dbus_object_tree_list_registered_and_unlock): new function
8609
8610 2003-09-12  Havoc Pennington  <hp@pobox.com>
8611
8612         * glib/dbus-gidl.h: add common base class for all the foo_info
8613         types
8614
8615         * tools/dbus-viewer.c: add GTK-based introspection UI thingy
8616         similar to kdcop
8617
8618         * test/Makefile.am: try test srcdir -ef . in addition to test
8619         srcdir = ., one of them should work (yeah lame)
8620         
8621         * glib/Makefile.am: build the "idl" parser stuff as a convenience
8622         library
8623         
8624         * glib/dbus-gparser.h: make description_load routines return
8625         NodeInfo* not Parser*
8626
8627         * Makefile.am (SUBDIRS): build test dir after all library dirs
8628
8629         * configure.in: add GTK+ detection
8630
8631 2003-09-07  Havoc Pennington  <hp@pobox.com>
8632
8633         * Make Doxygen contented.
8634
8635 2003-09-07  Havoc Pennington  <hp@pobox.com>
8636
8637         * doc/dbus-specification.sgml: more updates
8638
8639 2003-09-06  Havoc Pennington  <hp@pobox.com>
8640
8641         * doc/dbus-specification.sgml: partial updates
8642
8643         * bus/dbus-daemon-1.1.in: fix the config file docs for the
8644         zillionth time; hopefully I edited the right file this time.
8645
8646         * bus/config-parser.c (append_rule_from_element): support
8647         send_type, send_path, receive_type, receive_path
8648
8649         * bus/policy.c: add message type and path to the list of things
8650         that can be "firewalled"
8651
8652 2003-09-06  Havoc Pennington  <hp@pobox.com>
8653
8654         * dbus/dbus-connection.c (dbus_connection_register_fallback): add this
8655         (dbus_connection_register_object_path): make this not handle
8656         messages to paths below the given path
8657
8658 2003-09-03  Havoc Pennington  <hp@pobox.com>
8659
8660         * test/glib/Makefile.am: add this with random glib-linked test
8661         programs
8662
8663         * glib/Makefile.am: remove the random test programs from here,
8664         leave only the unit tests
8665
8666         * glib/dbus-gobject.c (_dbus_gobject_test): add test for 
8667         uscore/javacaps conversion, and fix     
8668         (get_object_property, set_object_property): change to .NET
8669         convention for mapping props to methods, set_FooBar/get_FooBar, 
8670         since one language has such a convention we may as well copy it. 
8671         Plus real methods in either getFooBar or get_foo_bar style won't 
8672         collide with this convention.
8673
8674 2003-09-01  Havoc Pennington  <hp@pobox.com>
8675
8676         * glib/dbus-gparser.c: implement
8677
8678         * glib/dbus-gobject.c: start implementing skeletons support
8679
8680         * configure.in: when disabling checks/assert, also define
8681         G_DISABLE_ASSERT and G_DISABLE_CHECKS
8682
8683 2003-09-01  Havoc Pennington  <hp@pobox.com>
8684
8685         * glib/Makefile.am: rearrange a bunch of files and get "make
8686         check" framework set up
8687
8688 2003-08-31  Havoc Pennington  <hp@pobox.com>
8689
8690         * fix build with --disable-tests
8691
8692 2003-08-30  Havoc Pennington  <hp@pobox.com>
8693
8694         * dbus/dbus-connection.c: purge DBusMessageHandler
8695
8696         * dbus/dbus-message-handler.c: remove DBusMessageHandler, just 
8697         use callbacks everywhere
8698
8699 2003-08-30  Havoc Pennington  <hp@pobox.com>
8700
8701         * test/data/valid-config-files/system.d/test.conf: change to 
8702         root for the user so warnings don't get printed
8703
8704         * dbus/dbus-message.c: add dbus_message_get_path,
8705         dbus_message_set_path
8706         
8707         * dbus/dbus-object-tree.c (do_test_dispatch): add test of
8708         dispatching to a path
8709
8710         * dbus/dbus-string.c (_dbus_string_validate_path): add
8711
8712         * dbus/dbus-marshal.c (_dbus_demarshal_object_path): implement
8713         (_dbus_marshal_object_path): implement
8714
8715         * dbus/dbus-protocol.h (DBUS_HEADER_FIELD_PATH): new header field 
8716         to contain the path to the target object
8717         (DBUS_HEADER_FIELD_SENDER_SERVICE): rename
8718         DBUS_HEADER_FIELD_SENDER to explicitly say it's the sender service
8719
8720 2003-08-30  Havoc Pennington  <hp@pobox.com>
8721
8722         * dbus/dbus-object-tree.c: write tests and fix the discovered bugs
8723
8724 2003-08-29  Havoc Pennington  <hp@pobox.com>
8725
8726         * dbus/dbus-object-tree.c: modify to allow overlapping paths to be
8727         registered
8728         (struct DBusObjectSubtree): shrink this
8729         a lot, since we may have a lot of them
8730         (_dbus_object_tree_free_all_unlocked): implement
8731         (_dbus_object_tree_dispatch_and_unlock): implement
8732
8733 2003-08-29  Havoc Pennington  <hp@pobox.com>
8734
8735         * dbus/dbus-internals.h: fix _DBUS_N_GLOBAL_LOCKS
8736
8737 2003-08-28  Havoc Pennington  <hp@pobox.com>
8738
8739         purge DBusObjectID
8740         
8741         * dbus/dbus-connection.c: port to no ObjectID, create a
8742         DBusObjectTree, rename ObjectTree to ObjectPath in public API
8743
8744         * dbus/dbus-connection.h (struct DBusObjectTreeVTable): delete 
8745         everything except UnregisterFunction and MessageFunction
8746         
8747         * dbus/dbus-marshal.c: port away from DBusObjectID, 
8748         add DBUS_TYPE_OBJECT_PATH
8749         
8750         * dbus/dbus-object-registry.[hc], dbus/dbus-object.[hc], 
8751         dbus/dbus-objectid.[hc]: remove these, we are moving to 
8752         path-based object IDs
8753
8754 2003-08-25  Havoc Pennington  <hp@pobox.com>
8755
8756         Just noticed that dbus_message_test is hosed, I wonder when I
8757         broke that. I thought make check was passing earlier...
8758         
8759         * dbus/dbus-object-tree.c: add new "object tree" to match DCOP 
8760         container tree, will replace most of dbus-object-registry
8761
8762         * dbus/dbus-string.c (_dbus_string_append_printf_valist): fix C99
8763         screwup
8764
8765 2003-08-19  Havoc Pennington  <hp@pobox.com>
8766
8767         * dbus/dbus-message.c (decode_string_field): support FIELD_SENDER
8768         (dbus_message_is_error): fix this function
8769
8770         * bus/dbus-daemon-1.1: clarify logic on when <deny>/<allow> rules
8771         match
8772
8773         * bus/policy.c (bus_client_policy_check_can_receive): fix code to
8774         reflect clarified man page
8775         (bus_client_policy_check_can_send): ditto
8776         
8777         * bus/session.conf.in: fixup
8778
8779         * bus/system.conf.in: fixup
8780
8781 2003-08-18  Havoc Pennington  <hp@redhat.com>
8782
8783         * dbus/dbus-hash.c (_dbus_hash_table_insert_two_strings): fix
8784
8785         * dbus/dbus-message.c (_dbus_message_loader_queue_messages): fix
8786         dumb bug created earlier (wrong order of args to
8787         decode_header_data())
8788         
8789         * tools/dbus-send.c: port
8790
8791         * tools/dbus-print-message.c (print_message): port
8792
8793         * test/data/*messages: port all messages over
8794         
8795         * dbus/dbus-message-builder.c: support including 
8796         message type
8797         
8798         * bus/driver.c: port over
8799         
8800         * bus/dispatch.c: port over to new stuff
8801
8802         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
8803         rename disconnect signal to "Disconnected"
8804
8805 2003-08-17  Havoc Pennington  <hp@pobox.com>
8806
8807         This doesn't compile yet, but syncing up so I can hack on it from
8808         work. What are branches for if not broken code? ;-)
8809         
8810         * dbus/dbus-protocol.h: remove DBUS_HEADER_FIELD_NAME, add
8811         DBUS_HEADER_FIELD_INTERFACE, DBUS_HEADER_FIELD_MEMBER,
8812         DBUS_HEADER_FIELD_ERROR_NAME
8813         
8814         * dbus/dbus-hash.c: Introduce DBUS_HASH_TWO_STRINGS as hack to use
8815         for the interface+member pairs
8816         (string_hash): change to use g_str_hash algorithm
8817         (find_direct_function, find_string_function): refactor these to
8818         share most code.
8819         
8820         * dbus/dbus-message.c: port all of this over to support 
8821         interface/member fields instead of name field
8822
8823         * dbus/dbus-object-registry.c: port over
8824         
8825         * dbus/dbus-string.c (_dbus_string_validate_interface): rename
8826         from _dbus_string_validate_name
8827
8828         * bus/dbus-daemon-1.1: change file format for the 
8829         <deny>/<allow> stuff to match new message naming scheme
8830
8831         * bus/policy.c: port over
8832
8833         * bus/config-parser.c: parse new format
8834         
8835 2003-08-16  Havoc Pennington  <hp@pobox.com>
8836
8837         * dbus/dbus-object-registry.c (add_and_remove_objects): remove
8838         broken assertion
8839
8840         * glib/dbus-gproxy.c: some hacking
8841
8842 2003-08-15  Havoc Pennington  <hp@redhat.com>
8843
8844         * dbus/dbus-pending-call.c (dbus_pending_call_block): implement
8845
8846         * dbus/dbus-connection.c
8847         (dbus_connection_send_with_reply_and_block): factor out internals;
8848         change to convert any error replies to DBusError instead of 
8849         returning them as a message
8850
8851 2003-08-15  Havoc Pennington  <hp@pobox.com>
8852
8853         * dbus/dbus-connection.c, 
8854         dbus/dbus-pending-call.c: Finish the pending call stuff
8855
8856 2003-08-14  Havoc Pennington  <hp@redhat.com>
8857
8858         * dbus/dbus-pending-call.c: start on new object that will replace
8859         DBusMessageHandler and ReplyHandlerData for tracking outstanding
8860         replies
8861
8862         * dbus/dbus-gproxy.c: start on proxy object used to communicate
8863         with remote interfaces
8864
8865         * dbus/dbus-gidl.c: do the boring boilerplate in here
8866         
8867 2003-08-12  Havoc Pennington  <hp@pobox.com>
8868
8869         * bus/dispatch.c (bus_dispatch): make this return proper 
8870         DBusHandlerResult to avoid DBUS_ERROR_UNKNOWN_METHOD
8871
8872         * dbus/dbus-errors.c (dbus_set_error): use
8873         _dbus_string_append_printf_valist
8874
8875         * dbus/dbus-string.c (_dbus_string_append_printf_valist)
8876         (_dbus_string_append_printf): new
8877
8878         * dbus/dbus-errors.h (DBUS_ERROR_UNKNOWN_MESSAGE): change to
8879         UNKNOWN_METHOD
8880
8881         * dbus/dbus-connection.c (dbus_connection_dispatch): handle
8882         DBUS_HANDLER_RESULT_NEED_MEMORY; send default error reply if a
8883         message is unhandled.
8884
8885 2003-08-11  Havoc Pennington  <hp@pobox.com>
8886
8887         * bus/test.c (client_disconnect_handler): change to return
8888         HANDLED (would have been REMOVE_MESSAGE)
8889
8890         * dbus/dbus-object.h (enum DBusHandlerResult): rename to
8891         HANDLED/NOT_YET_HANDLED instead of
8892         REMOVE_MESSAGE/ALLOW_MORE_HANDLERS to make it clearer how it 
8893         should be used.
8894
8895 2003-08-10  Havoc Pennington  <hp@pobox.com>
8896
8897         * tools/dbus-send.c (main): add --type argument, for now
8898         supporting only method_call and signal types.
8899
8900         * tools/dbus-print-message.c: print message type
8901
8902         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
8903         init connection->objects
8904
8905         * doc/dbus-specification.sgml: fix sgml
8906
8907         * bus/*.c: port over to object-instance API changes
8908
8909         * test/test-service.c: ditto
8910         
8911         * dbus/dbus-message.c (dbus_message_create_header): allow #NULL
8912         name, we will have to fix up the rest of the code to also handle
8913         this
8914         (dbus_message_new): generic message-creation call
8915         (set_string_field): allow appending name field
8916
8917 2003-08-06  Havoc Pennington  <hp@pobox.com>
8918
8919         * dbus/dbus-object-registry.c: implement signal connection 
8920         and dispatch
8921
8922         * dbus/dbus-connection.c (_dbus_connection_unref_unlocked): new
8923
8924         * dbus/dbus-internals.c (_dbus_memdup): new function
8925
8926 2003-08-02  Havoc Pennington  <hp@pobox.com>
8927
8928         * dbus/dbus-message.c (dbus_message_get_no_reply)
8929         (dbus_message_set_no_reply): add these and remove
8930         set_is_error/get_is_error
8931
8932         * dbus/dbus-protocol.h, doc/dbus-specification.sgml: 
8933         remove the ERROR flag, since there's now an ERROR type
8934
8935 2003-08-01  Havoc Pennington  <hp@pobox.com>
8936
8937         * dbus/dbus-object-registry.c (_dbus_object_registry_handle_and_unlock):
8938         implement
8939
8940         * dbus/dbus-message.c (dbus_message_get_type): new function
8941
8942         * doc/dbus-specification.sgml: add "type" byte to messages
8943
8944 2003-08-01  Havoc Pennington  <hp@pobox.com>
8945
8946         * dbus/dbus-protocol.h (DBUS_MESSAGE_TYPE_*): introduce
8947         a message type enum to distinguish kinds of message
8948         (DBUS_HEADER_FLAG_NO_REPLY_EXPECTED): flag for a message 
8949         that need not be replied to
8950
8951 2003-08-01  Havoc Pennington  <hp@pobox.com>
8952
8953         * dbus/dbus-marshal.c: adapt to DBusObjectID changes
8954         (unpack_8_octets): fix no-64-bit-int bug
8955
8956         * dbus/dbus-object-registry.c (validate_id): validate the 
8957         connection ID bits, not just the instance ID.
8958
8959         * dbus/dbus-connection.c (_dbus_connection_init_id): initialize
8960         the connection-global 33 bits of the object ID
8961
8962         * dbus/dbus-object-registry.c (info_from_entry): fill in 
8963         object ID in the new way
8964
8965         * dbus/dbus-objectid.h: rather than high/low bits, specifically 
8966         define server/client/instance bits.
8967
8968 2003-07-30  Havoc Pennington  <hp@pobox.com>
8969
8970         * dbus/dbus-connection.c (dbus_connection_register_object): fix
8971         build
8972
8973 2003-07-13  Havoc Pennington  <hp@pobox.com>
8974
8975         * dbus/dbus-object.h (struct DBusObjectVTable): add padding
8976         fields to DBusObjectVTable and DBusObjectInfo
8977
8978 2003-07-12  Havoc Pennington  <hp@pobox.com>
8979
8980         * dbus/dbus-object-registry.c: implement unit test,
8981         fix bugs discovered in process
8982
8983         * dbus/dbus-connection.c: remove handler_table and
8984         register_handler(), add DBusObjectRegistry usage
8985
8986         * dbus/dbus-objectid.c (dbus_object_id_is_null)
8987         (dbus_object_id_set_null): new functions
8988
8989 2003-07-08  Havoc Pennington  <hp@pobox.com>
8990
8991         * dbus/dbus-object.c: implement some of this
8992
8993         * dbus/dbus-object-registry.c
8994         (_dbus_object_registry_add_and_unlock): fill in the object_id out
8995         param
8996         (_dbus_object_registry_new): handle OOM
8997
8998 2003-07-08  Havoc Pennington  <hp@pobox.com>
8999
9000         * dbus/dbus-object.h: sketch out an API for registering objects
9001         with a connection, that allows us to use as little as 24 bytes
9002         per object and lets application code represent an object in 
9003         any conceivable way.
9004
9005         * dbus/dbus-object-registry.c: implement the hard bits of the
9006         DBusConnection aspect of object API. Not yet wired up.
9007         
9008 2003-07-06  Havoc Pennington  <hp@pobox.com>
9009
9010         * dbus/dbus-marshal.c (_dbus_marshal_set_object_id): new function
9011         (_dbus_marshal_object_id): new
9012         (_dbus_demarshal_object_id): new
9013         (_dbus_marshal_get_arg_end_pos): support object ID type, and
9014         consolidate identical switch cases. Don't conditionalize handling
9015         of DBUS_TYPE_UINT64, need to handle the type always.
9016         (_dbus_marshal_validate_arg): consolidate identical cases, and
9017         handle DBUS_TYPE_OBJECT_ID
9018
9019         * dbus/dbus-objectid.c: new file with DBusObjectID data type.
9020
9021         * dbus/dbus-protocol.h: add DBUS_TYPE_OBJECT_ID
9022
9023 2003-09-28  Havoc Pennington  <hp@pobox.com>
9024
9025         * real 0.13 release
9026
9027 2003-09-28  Havoc Pennington  <hp@pobox.com>
9028
9029         * doc/Makefile.am (dbus-specification.html): testing a funky hack
9030         to work with Debian db2html
9031
9032 2003-09-28  Havoc Pennington  <hp@pobox.com>
9033
9034         * configure.in: 0.13
9035
9036         * doc/Makefile.am (dbus-test-plan.html): accept nonexistence of
9037         stylesheet-images for benefit of Debian
9038         
9039         Change back to using filesystem-linked sockets for the system
9040         bus, so only root can create the default system bus address.
9041         
9042         * bus/system.conf.in: change to use
9043         DBUS_SYSTEM_BUS_DEFAULT_ADDRESS
9044
9045         * dbus/Makefile.am (INCLUDES): remove DBUS_SYSTEM_BUS_PATH define
9046         from here.
9047
9048         * configure.in: define DBUS_SYSTEM_BUS_DEFAULT_ADDRESS
9049         here, and AC_DEFINE DBUS_SYSTEM_PATH
9050
9051 2003-08-09  Anders Carlsson  <andersca@codefactory.se>
9052
9053         * doc/TODO:
9054         * doc/busconfig.dtd:
9055         Add busconfig DTD.
9056         
9057 2003-08-09  Anders Carlsson  <andersca@codefactory.se>
9058
9059         * doc/dbus-specification.sgml:
9060         Add activation reply values.
9061         
9062 2003-08-05  Havoc Pennington  <hp@redhat.com>
9063
9064         * configure.in: 0.12
9065
9066 2003-08-05  Anders Carlsson  <andersca@codefactory.se>
9067
9068         * glib/dbus-gmain.c: (watch_fd_new), (watch_fd_ref),
9069         (watch_fd_unref), (dbus_gsource_check), (dbus_gsource_dispatch),
9070         (add_watch), (remove_watch), (create_source):
9071         Refcount fds, fixes some reentrancy issues.
9072         
9073 2003-07-30  Havoc Pennington  <hp@redhat.com>
9074
9075         * dbus/dbus-bus.c (init_connections_unlocked): fix default system
9076         bus address to be abstract if we have abstract sockets
9077
9078         * NEWS: update
9079
9080 2003-07-28  Havoc Pennington  <hp@redhat.com>
9081
9082         * bus/messagebus.in: fix to avoid processname/servicename 
9083         confusion, from Michael Kearey
9084         https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=100965
9085         
9086 2003-07-23  Havoc Pennington  <hp@pobox.com>
9087
9088         * dbus/dbus-message.c (dbus_message_iter_get_named): 
9089         fix from Andy Hanton to remove broken "+1"
9090
9091 2003-07-16  Havoc Pennington  <hp@pobox.com>
9092
9093         * tools/dbus-launch.c (babysit): close stdout/stderr in the
9094         babysitter process, as suggested by Thomas Leonard, so 
9095         an "eval `dbus-launch --exit-with-session`" will actually 
9096         return
9097
9098 2003-07-16  Havoc Pennington  <hp@pobox.com>
9099
9100         * configure.in: print out EXPANDED_* variables in the summary at
9101         the end; clean up the code that computes EXPANDED_ variables and
9102         get the ones using exec_prefix right. Should make things work
9103         when you build without --prefix
9104
9105 2003-06-29  Havoc Pennington  <hp@pobox.com>
9106
9107         * mono/Test.cs (class Test): fire up a main loop and run it
9108
9109         * mono/DBus.cs (DBus): don't g_thread_init since it can only be
9110         done once, the app has to do it
9111
9112 2003-06-26  Havoc Pennington  <hp@pobox.com>
9113
9114         * mono/Connection.cs: set up connection with the glib main loop
9115
9116 2003-07-01  Havoc Pennington  <hp@redhat.com>
9117
9118         * doc/dbus-specification.sgml: clarify the format of a type code,
9119         change suggested by Jim Blandy
9120
9121 2003-06-29  Miloslav Trmac  <mitr@volny.cz>
9122
9123         * doc/Makefile.am:
9124         * tools/Makefile.am: Don't assume srcdir == builddir.
9125
9126         * dbus/dbus-memory.c (dbus_realloc): Don't check guards after shrinking
9127         the allocated block.
9128         (_dbus_memory_test): New function.
9129         * dbus/dbus-test.h: Add _dbus_memory_test ().
9130         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): Call it.
9131
9132         * dbus/dbus-message.c (decode_header_data): Use %.4s instead
9133         of %c%c%c%c.
9134         (dbus_message_new): Remove obsolete @todo.
9135
9136         * dbus/dbus-marshal.c (_dbus_marshal_set_int64)
9137         (_dbus_marshal_set_uint64): Fix comment.
9138
9139         * dbus/dbus-message.c (append_int_field, append_uint_field): Don't
9140         hardcode FIELD_REPLY_SERIAL.
9141
9142         * dbus/dbus-mainloop.c (_dbus_loop_remove_watch)
9143         (_dbus_loop_remove_timeout): Cast function pointers to (void *) for %p
9144
9145         * configure.in: Add -D_POSIX_C_SOURCE=199309L -DBSD_SOURCE to CFLAGS
9146         and disable DBUS_USE_ATOMIC_INT_486 when --enable-ansi is used
9147
9148 2003-06-24  Havoc Pennington  <hp@pobox.com>
9149
9150         * mono/*.cs: Use IntPtr.Zero instead of ((IntPtr) 0)
9151
9152 2003-06-23  Anders Carlsson  <andersca@codefactory.se>
9153
9154         * configure.in:
9155         * gcj/.cvsignore:
9156         * gcj/Hello.java:
9157         * gcj/Makefile.am:
9158         * gcj/TestMessage.java: (TestMessage), (TestMessage.main):
9159         * gcj/org/.cvsignore:
9160         * gcj/org/Makefile.am:
9161         * gcj/org/freedesktop/.cvsignore:
9162         * gcj/org/freedesktop/Makefile.am:
9163         * gcj/org/freedesktop/dbus/.cvsignore:
9164         * gcj/org/freedesktop/dbus/Makefile.am:
9165         * gcj/org/freedesktop/dbus/Message.java: (Message),
9166         (Message.Message):
9167         * gcj/org/freedesktop/dbus/natMessage.cc:
9168         Fix the build system.
9169
9170 2003-06-22  Havoc Pennington  <hp@pobox.com>
9171
9172         * mono/Connection.cs: add more bindings
9173
9174         * dbus/dbus-threads.c (dbus_threads_init): allow calling this
9175         more than once.
9176
9177 2003-06-22  Havoc Pennington  <hp@pobox.com>
9178
9179         * mono/Connection.cs, mono/DBus.cs, mono/Error.cs:
9180         Start wrapping more stuff.
9181
9182 2003-06-22  Havoc Pennington  <hp@pobox.com>
9183
9184         * mono/Message.cs: implement Message.Wrap() that ensures we only
9185         have a single C# wrapper per DBusMessage, assuming it works which
9186         it probably doesn't.
9187
9188         * dbus/dbus-message.c (dbus_message_allocate_data_slot): new
9189         (dbus_message_free_data_slot): new
9190         (dbus_message_set_data): new
9191         (dbus_message_get_data): new
9192
9193 2003-06-22  Havoc Pennington  <hp@pobox.com>
9194
9195         * dbus/dbus-dataslot.c (_dbus_data_slot_allocator_unref)
9196         (_dbus_data_slot_allocator_alloc): rework these to keep a
9197         reference count on each slot and automatically manage a global
9198         slot ID variable passed in by address
9199
9200         * bus/bus.c: convert to new dataslot API
9201
9202         * dbus/dbus-bus.c: convert to new dataslot API
9203
9204         * dbus/dbus-connection.c: convert to new dataslot API
9205
9206         * dbus/dbus-server.c: convert to new dataslot API
9207
9208         * glib/dbus-gmain.c: ditto
9209
9210         * bus/test.c: ditto
9211
9212         * bus/connection.c: ditto
9213
9214 2003-06-22  Anders Carlsson  <andersca@codefactory.se>
9215
9216         * configure.in: Add AM_PROG_GCJ and move AM_PROG_LIBTOOL
9217         after the gcj checks so that the correct configuration tags
9218         will be added to libtool.
9219
9220         * dbus-glib-1.pc.in: No need to specify any includes since
9221         dbus-1.pc.in has those.
9222
9223 2003-06-22  Havoc Pennington  <hp@pobox.com>
9224
9225         * mono/*, gcj/*, configure.in, Makefile.am:
9226         Check in makefiles and subdirs for mono and gcj bindings.
9227         Neither binding actually exists, just trying to get through
9228         all the build and other boring bits.
9229
9230 2003-06-21  Philip Blundell  <philb@gnu.org>
9231
9232         * tools/dbus-monitor.1: Updated.
9233
9234         * tools/dbus-send.1: Likewise.
9235
9236 2003-06-20  Anders Carlsson  <andersca@codefactory.se>
9237
9238         * dbus/dbus-transport-unix.c (unix_handle_watch): Check
9239         for hangup and error after checking read so we won't discard
9240         pending data if both hangup and read are set.
9241
9242 2003-06-19  Philip Blundell  <philb@gnu.org>
9243
9244         * tools/dbus-print-message.c (print_message): Handle BOOLEAN.
9245
9246         * tools/dbus-send.c: Accept both --system and --session.
9247
9248         * tools/dbus-monitor.c: Same here.
9249
9250 2003-06-19  Anders Carlsson  <andersca@codefactory.se>
9251
9252         * glib/dbus-glib.h: Fix so that dbus-glib.h can be used
9253         from C++ (Patch by Miloslav Trmac).
9254
9255 2003-06-15  Joe Shaw  <joe@assbarn.com>
9256
9257         * configure.in: Check for socklen_t.
9258
9259         * dbus/dbus-sysdeps.c: Define socklen_t if it's not defined.
9260
9261         * test/test-segfault.c: Add #include <sys/time.h>
9262
9263         * tools/Makefile.am: Add DBUS_X_CFLAGS to the INCLUDES since
9264         dbus-launch needs it.
9265
9266 2003-06-09  Havoc Pennington  <hp@redhat.com>
9267
9268         * dbus/dbus-sysdeps.c (_dbus_listen_unix_socket): don't use
9269         SUN_LEN, it breaks abstract socket usage
9270
9271         * dbus/dbus-internals.c (_dbus_verbose_real): only print PID at
9272         starts of lines.
9273
9274 2003-06-04  Havoc Pennington  <hp@pobox.com>
9275
9276         * dbus/dbus-server.c (dbus_server_listen): allow abstract sockets
9277         using unix:abstract=/foo, and when listening in a tmpdir
9278         i.e. unix:tmpdir=/tmp, always use abstract sockets if we can.
9279
9280         * dbus/dbus-transport.c (_dbus_transport_open): support
9281         unix:abstract=/foo
9282
9283         * dbus/dbus-server-unix.c (_dbus_server_new_for_domain_socket):
9284         support abstract sockets
9285
9286         * dbus/dbus-transport-unix.c
9287         (_dbus_transport_new_for_domain_socket): support abstract sockets
9288
9289         * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket): add "abstract"
9290         toggle as an argument, implement abstract namespace support
9291         (_dbus_listen_unix_socket): ditto
9292
9293         * configure.in: add --enable-abstract-sockets and implement
9294         a configure check for autodetection of the right value.
9295
9296 2003-06-01  Havoc Pennington  <hp@pobox.com>
9297
9298         * tools/dbus-cleanup-sockets.c: add utility to clean up sockets
9299         in /tmp (though on Linux this will end up being useless,
9300         when we add abstract namespace support)
9301
9302         * configure.in: define DBUS_SESSION_SOCKET_DIR in addition to
9303         subst'ing it
9304
9305 2003-05-28  Colin Walters  <walters@verbum.org>
9306
9307         * tools/dbus-monitor.c (main): Fix silly typo (s/--session/--system/).
9308
9309 2003-05-18  Anders Carlsson  <andersca@codefactory.se>
9310
9311         * dbus/dbus-message.c (dbus_message_new): Remove @todo.
9312
9313 2003-05-17  Colin Walters  <walters@gnu.org>
9314
9315         * tools/dbus-send.c: Don't exit with an error code if --help was
9316         passed.  Default to using the session bus instead of the system
9317         one.
9318
9319         * tools/dbus-launch.c: Ditto.
9320
9321         * tools/dbus-monitor.c: Ditto.
9322
9323         * tools/dbus-send.1: Update with new arguments.
9324
9325         * tools/dbus-launch.c: Emit code to export variables.  New
9326         arguments -s and -c to specify shell syntax, and a bit of code to
9327         autodetect syntax.  Also, allow specifying a program to run.
9328
9329         * tools/dbus-launch.1: Update with new arguments.
9330
9331         * tools/dbus-send.1: Ditto.
9332
9333         * tools/dbus-monitor.1: Ditto.
9334
9335 2003-05-17  Havoc Pennington  <hp@pobox.com>
9336
9337         * bus/config-parser.c (merge_included): merge in policies from
9338         child configuration file.
9339
9340         * bus/policy.c (bus_policy_merge): function to merge two policies
9341         together
9342
9343 2003-05-16  Havoc Pennington  <hp@redhat.com>
9344
9345         * dbus/dbus-connection.c: disable verbose lock spew
9346
9347         * tools/dbus-send.c: add --print-reply command line option
9348
9349         * tools/dbus-print-message.h (print_message): new util function
9350         shared by dbus-send and dbus-monitor
9351
9352         * tools/dbus-monitor.c (handler_func): exit on disconnect
9353
9354         * dbus/dbus-transport-unix.c (do_reading): if the transport is
9355         disconnected, don't try to use the read_watch
9356
9357         * dbus/dbus-watch.c (dbus_watch_get_enabled): assert watch != NULL
9358         so we can find this bug more easily
9359
9360 2003-05-16  Havoc Pennington  <hp@redhat.com>
9361
9362         * bus/policy.c (free_rule_list_func): avoid a crash when passed
9363         NULL as DBusHashTable is annoyingly likely to do.
9364
9365 2003-05-16  Colin Walters  <walters@verbum.org>
9366
9367         * tools/dbus-monitor.c: Add --session argument and usage()
9368         function.
9369
9370         * tools/dbus-monitor.1: Update with new --session arg.
9371
9372         * bus/Makefile.am (install-data-hook): Create
9373         $(libdir)/dbus-1.0/services so that the session bus is happy.
9374
9375 2003-05-15  Havoc Pennington  <hp@redhat.com>
9376
9377         * dbus/dbus-sysdeps.c (_dbus_atomic_dec, _dbus_atomic_inc): work
9378         on non-x86. ifdef's are evil.
9379
9380 2003-05-15  Havoc Pennington  <hp@redhat.com>
9381
9382         * configure.in: 0.11
9383
9384         * NEWS: update
9385
9386         * bus/Makefile.am (initddir): apparently we are supposed to put
9387         init scripts in /etc/rc.d/init.d not /etc/init.d
9388
9389         * bus/Makefile.am: remove the "you must --enable-tests to make
9390         check" as it broke distcheck
9391
9392         * bus/Makefile.am (install-data-hook): create /etc/dbus-1/system.d
9393
9394 2003-05-13  James Willcox  <jwillcox@gnome.org>
9395
9396         * configure.in:
9397         * bus/activation.c: (bus_activation_service_created),
9398         (bus_activation_activate_service):
9399         * bus/driver.c: (bus_driver_send_service_deleted),
9400         (bus_driver_send_service_created), (bus_driver_send_service_lost),
9401         (bus_driver_send_service_acquired),
9402         (bus_driver_send_welcome_message),
9403         (bus_driver_handle_list_services):
9404         * bus/session.conf.in:
9405         * dbus/dbus-bus.c: (dbus_bus_acquire_service),
9406         (dbus_bus_service_exists), (dbus_bus_activate_service):
9407         * dbus/dbus-bus.h:
9408
9409         Add some convenience API which lets you activate a service, and did a
9410         bunch of s/0/DBUS_TYPE_INVALID/ in calls to dbus_message_append_args()
9411         and dbus_message_get_args()
9412
9413 2003-05-11  Havoc Pennington  <hp@pobox.com>
9414
9415         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): fix to avoid
9416         calling _dbus_marshal_validate_arg() for every byte in a byte
9417         array, etc.
9418
9419         * dbus/dbus-message-handler.c: use atomic reference counting to
9420         reduce number of locks slightly; the global lock in here sucks
9421
9422         * dbus/dbus-connection.c
9423         (_dbus_connection_update_dispatch_status_and_unlock): variant of
9424         update_dispatch_status that can be called with lock held; then use
9425         in a couple places to reduce locking/unlocking
9426         (dbus_connection_send): hold the lock over the whole function
9427         instead of acquiring it twice.
9428
9429         * dbus/dbus-timeout.c (_dbus_timeout_new): handle OOM
9430
9431         * bus/connection.c (bus_connections_setup_connection): fix access
9432         to already-freed memory.
9433
9434         * dbus/dbus-connection.c: keep a little cache of linked list
9435         nodes, to avoid using the global linked list alloc lock in the
9436         normal send-message case. Instead we just use the connection lock
9437         that we already have to take.
9438
9439         * dbus/dbus-list.c (_dbus_list_find_last): new function
9440
9441         * dbus/dbus-sysdeps.c (_dbus_atomic_inc, _dbus_atomic_dec):
9442         change to use a struct for the atomic type; fix docs,
9443         they return value before increment, not after increment.
9444
9445         * dbus/dbus-string.c (_dbus_string_append_4_aligned)
9446         (_dbus_string_append_8_aligned): new functions to try to
9447         microoptimize this operation.
9448         (reallocate_for_length): break this out of set_length(), to
9449         improve profile info, and also so we can consider inlining the
9450         set_length() part.
9451
9452         * dbus/dbus-message.c (dbus_message_new_empty_header): init data
9453         strings with some preallocation, cuts down on our calls to realloc
9454         a fair bit. Though if we can get the "move entire string to empty
9455         string" optimization below to kick in here, it would be better.
9456
9457         * dbus/dbus-string.c (_dbus_string_move): just call
9458         _dbus_string_move_len
9459         (_dbus_string_move_len): add a special case for moving
9460         an entire string into an empty string; we can just
9461         swap the string data instead of doing any reallocs.
9462         (_dbus_string_init_preallocated): new function
9463
9464 2003-05-11  Havoc Pennington  <hp@pobox.com>
9465
9466         Write a "test-profile" that does echo client-server with threads;
9467         profile reveals lock contention, memcpy/realloc of buffers, and
9468         UTF-8 validation as hot spots. 20% of lock contention eliminated
9469         with dbus_atomic_inc/dec implementation on x86.  Much remaining
9470         contention is global mempool locks for GList and DBusList.
9471
9472         * dbus/dbus-sysdeps.c (_dbus_atomic_inc, _dbus_atomic_dec): add
9473         x86 implementation
9474
9475         * dbus/dbus-connection.c (struct DBusConnection): use
9476         dbus_atomic_t for the reference count
9477
9478         * dbus/dbus-message.c (struct DBusMessage): declare
9479         dbus_atomic_t values as volatile
9480
9481         * configure.in: code to detect ability to use atomic integer
9482         operations in assembly, from GLib patch
9483
9484         * dbus/dbus-internals.c (_dbus_verbose_real): call getpid every
9485         time, tired of it being wrong in threads and forked processes
9486
9487         * glib/test-profile.c: a little program to bounce messages back
9488         and forth between threads and eat CPU
9489
9490         * dbus/dbus-connection.c: add debug spew macros for debugging
9491         thread locks; include config.h at top; fix deadlock in
9492         dbus_connection_flush()
9493
9494 2003-05-08  Havoc Pennington  <hp@pobox.com>
9495
9496         * dbus/dbus-spawn.c: s/_exit/exit/ because it was keeping gcov
9497         data from getting written, and there wasn't a good reason to
9498         use _exit really.
9499
9500         * test/decode-gcov.c (mark_inside_dbus_build_tests): don't count
9501         dbus_verbose lines in test coverage
9502         (main): add list of functions sorted by # of untested blocks
9503         to the coverage report
9504
9505         * dbus/dbus-mempool.c: put some test-only code in DBUS_BUILD_TESTS
9506
9507         * dbus/dbus-marshal.c (_dbus_marshal_test): extend test coverage
9508
9509         * dbus/dbus-message-handler.c (_dbus_message_handler_test):
9510         extend test coverage
9511
9512         * test/data/auth/cancel.auth-script: test canceling an
9513         authentication
9514
9515         * dbus/Makefile.am: remove dbus-server-debug.[hc] for now, as they
9516         aren't used. in CVS history if we end up needing them.
9517
9518 2003-05-04  Havoc Pennington  <hp@pobox.com>
9519
9520         * dbus/dbus-message-handler.c (_dbus_message_handler_test): add
9521         unit test
9522
9523         * dbus/dbus-marshal.c (_dbus_demarshal_string_array): fix this
9524         function, which assumed length was in # of strings, not bytes
9525
9526         * dbus/dbus-message.c (_dbus_message_test): add tests for some
9527         missing coverage
9528
9529         * dbus/dbus-connection.c
9530         (_dbus_connection_queue_received_message): disable function for
9531         now, we are only using it in test mode
9532
9533         * dbus/dbus-message.c (_dbus_message_loader_queue_messages):
9534         remove a mistaken FIXME
9535
9536 2003-05-04  Havoc Pennington  <hp@pobox.com>
9537
9538         * dbus/dbus-connection.c (dbus_connection_preallocate_send):
9539         unlock mutex on successful return, patch from Anders Gustafsson
9540
9541 2003-05-04  Havoc Pennington  <hp@pobox.com>
9542
9543         * dbus-glib-1.pc.in (Requires): fix dependencies, from
9544         Anders Gustafsson
9545
9546 2003-05-04  Havoc Pennington  <hp@pobox.com>
9547
9548         * tools/dbus-launch.c: implement
9549
9550         * bus/main.c (main), bus/bus.c (bus_context_new):
9551         implement --print-pid and --fork
9552
9553 2003-05-03  Havoc Pennington  <hp@redhat.com>
9554
9555         * dbus/dbus-address.c (dbus_parse_address): fix bug when a key in
9556         the address had no value, and add to test suite. Fix and
9557         regression test from Miloslav Trmac
9558
9559 2003-05-03  Havoc Pennington  <hp@pobox.com>
9560
9561         * dbus/dbus-watch.c (dbus_watch_handle): warn and return if a
9562         watch is invalid when handled
9563
9564         * tools/Makefile.am, tools/dbus-launch.c, tools/dbus-launch.1: add
9565         dbus-launch utility to launch the bus from a shell script.  Didn't
9566         actually implement dbus-launch yet, it's just a placeholder still.
9567
9568 2003-05-03  Havoc Pennington  <hp@pobox.com>
9569
9570         * bus/Makefile.am, bus/dbus-daemon-1.1.in: man page for the
9571         daemon; also documents daemon config file, so replaces
9572         doc/config-file.txt. Corrected some stuff from config-file.txt in
9573         the process of moving it.
9574
9575 2003-05-03  Havoc Pennington  <hp@pobox.com>
9576
9577         * tools/Makefile.am, tools/dbus-send.1, tools/dbus-monitor.1:
9578         add some man pages
9579
9580 2003-05-03  Colin Walters  <walters@verbum.org>
9581
9582         * dbus/dbus-sysdeps.c (fill_user_info): Test against
9583         DBUS_UID_UNSET to determine whether to do a uid lookup or not.
9584
9585         * Makefile.am: Update to use new .pc versioning scheme.
9586
9587 2003-05-02  Havoc Pennington  <hp@redhat.com>
9588
9589         * bus/system.conf.in: allow send/receive to/from message bus
9590         service
9591
9592 2003-04-30  Havoc Pennington  <hp@redhat.com>
9593
9594         * configure.in: print a note when building with unit tests and
9595         without assertions
9596
9597 2003-04-30  Havoc Pennington  <hp@redhat.com>
9598
9599         * Makefile.am: add a check-local that complains if you didn't
9600         configure with --enable-tests
9601
9602 2003-04-29  Havoc Pennington  <hp@redhat.com>
9603
9604         * glib/dbus-gmain.c: docs cleanups
9605
9606         * dbus/dbus-types.h: add docs on int64 types
9607
9608         * dbus/dbus-memory.c: fix docs to avoid putting private API in
9609         public API docs section
9610
9611 2003-04-29  Havoc Pennington  <hp@redhat.com>
9612
9613         * dbus-1.pc.in, dbus-glib-1.pc.in: rename these from
9614         dbus-1.0.pc.in, dbus-glib-1.0.pc.in. As these change with the
9615         parallel install API version, not with the D-BUS package version.
9616
9617         * HACKING: move some of README over here
9618
9619         * README: updates, and document API/ABI policy
9620
9621         * configure.in: reindentation
9622
9623 2003-04-29  Havoc Pennington  <hp@redhat.com>
9624
9625         * dbus/dbus.h: add "you have to define DBUS_API_SUBJECT_TO_CHANGE
9626         to use this library" to be sure people have the right
9627         expectations.
9628
9629 2003-04-28  Havoc Pennington  <hp@redhat.com>
9630
9631         * configure.in: add --enable-docs which by default is auto yes if
9632         doxygen and db2html found, no otherwise; but can be forced on/off
9633
9634         * doc/Makefile.am: conditionalize whether to build docs on
9635         --enable-docs
9636
9637 2003-04-28  Havoc Pennington  <hp@redhat.com>
9638
9639         * configure.in: 0.10
9640
9641         * NEWS: update
9642
9643         * bus/system.conf.in: add <includedir>system.d</includedir>
9644
9645         * dbus/dbus-userdb.c (_dbus_user_database_lookup): fix bug when
9646         username was provided but not uid
9647
9648         * bus/config-parser.c (struct BusConfigParser): keep track of
9649         whether the parser is toplevel or was included; change some
9650         of the error handling if it's included.
9651
9652 2003-04-27  Havoc Pennington  <hp@pobox.com>
9653
9654         Unbreak my code...
9655
9656         * dbus/dbus-transport.c (_dbus_transport_get_dispatch_status):
9657         report correct status if we finish processing authentication
9658         inside this function.
9659
9660         * bus/activation.c (try_send_activation_failure): use
9661         bus_transaction_send_error_reply
9662
9663         * bus/connection.c (bus_connection_get_groups): return an error
9664         explaining the problem
9665
9666         * bus/bus.c (bus_context_check_security_policy): implement
9667         restriction here that inactive connections can only send the
9668         hello message. Also, allow bus driver to send anything to
9669         any recipient.
9670
9671         * bus/connection.c (bus_connection_complete): create the
9672         BusClientPolicy here instead of on-demand.
9673         (bus_connection_get_policy): don't return an error
9674
9675         * dbus/dbus-message.c (dbus_message_new_error_reply): allow NULL
9676         sender field in message being replied to
9677
9678         * bus/bus.c (bus_context_check_security_policy): fix silly typo
9679         causing it to return FALSE always
9680
9681         * bus/policy.c (bus_client_policy_check_can_send): fix bug where
9682         we checked sender rather than destination
9683
9684 2003-04-25  Havoc Pennington  <hp@redhat.com>
9685
9686         test suite is slightly hosed at the moment, will fix soon
9687
9688         * bus/connection.c (bus_connections_expire_incomplete): fix to
9689         properly disable the timeout when required
9690         (bus_connection_set_name): check whether we can remove incomplete
9691         connections timeout after we complete each connection.
9692
9693         * dbus/dbus-mainloop.c (check_timeout): fix this up a bit,
9694         probably still broken.
9695
9696         * bus/services.c (bus_registry_acquire_service): implement max
9697         number of services owned, and honor allow/deny rules on which
9698         services a connection can own.
9699
9700         * bus/connection.c (bus_connection_get_policy): report errors here
9701
9702         * bus/activation.c: implement limit on number of pending
9703         activations
9704
9705 2003-04-25  Havoc Pennington  <hp@redhat.com>
9706
9707         * dbus/dbus-transport.c (_dbus_transport_get_unix_user): fix bug
9708         where we used >= 0 instead of != DBUS_UID_UNSET.
9709
9710 2003-04-25  Havoc Pennington  <hp@redhat.com>
9711
9712         * glib/dbus-gmain.c (remove_watch): fix for a crash when watches
9713         were toggled without add/remove, fix from Anders Gustafsson
9714
9715 2003-04-24  Havoc Pennington  <hp@redhat.com>
9716
9717         * test/data/valid-config-files/basic.conf: add <limit> tags to
9718         this test
9719
9720         * bus/config-parser.h, bus/config-parser.c, bus/bus.c: Implement
9721         <limit> tag in configuration file.
9722
9723 2003-04-24  Havoc Pennington  <hp@redhat.com>
9724
9725         * bus/dispatch.c: somehow missed some name_is
9726
9727         * dbus/dbus-timeout.c (_dbus_timeout_set_enabled)
9728         (_dbus_timeout_set_interval): new
9729
9730         * bus/connection.c (bus_connections_setup_connection): record time
9731         when each connection is first set up, and expire them after the
9732         auth timeout passes.
9733
9734 2003-04-24  Havoc Pennington  <hp@redhat.com>
9735
9736         * dbus/dbus-message.c (dbus_message_name_is): rename
9737         (dbus_message_service_is): rename
9738         (dbus_message_sender_is): rename
9739         (dbus_message_get_service): rename
9740
9741 2003-04-24  Havoc Pennington  <hp@redhat.com>
9742
9743         * configure.in: add --enable-checks
9744
9745         * dbus/dbus-message.c (dbus_message_new): reverse name/service arguments
9746
9747         * dbus/dbus-connection.c (dbus_connection_preallocate_send): fix
9748         to use thread locks.
9749         (_dbus_connection_handler_destroyed_locked): move some private
9750         functions into proper docs group
9751
9752         * dbus/dbus-internals.h: add _dbus_return_if_fail,
9753         _dbus_return_val_if_fail
9754
9755         Throughout: use dbus_return_if_fail
9756
9757 2003-04-23  James Willcox  <jwillcox@gnome.org>
9758
9759         * glib/dbus-glib.h:
9760         * glib/dbus-gmain.c: (add_timeout), (wakeup_main), (create_source),
9761         (dbus_connection_setup_with_g_main),
9762         (dbus_server_setup_with_g_main):
9763         * glib/test-dbus-glib.c: (main):
9764         * glib/test-thread-client.c: (main):
9765         * glib/test-thread-server.c: (new_connection_callback), (main):
9766         * tools/dbus-monitor.c: (main):
9767
9768         Added a GMainContext argument to dbus_connection_setup_with_g_main()
9769         and dbus_server_setup_with_g_main().
9770
9771 2003-04-20  Havoc Pennington  <hp@pobox.com>
9772
9773         * doc/dbus-specification.sgml: document the restrictions on
9774         message and service names
9775
9776 2003-04-22  Havoc Pennington  <hp@redhat.com>
9777
9778         * dbus/dbus-message.c, dbus/dbus-marshal.c: add 64-bit integer
9779         support, and do some code cleanups to share more code and
9780         speed up array marshal/demarshal.
9781
9782         * dbus-1.0.pc.in (Cflags): put libdir include file in cflags
9783
9784         * configure.in: generate dbus-arch-deps.h
9785
9786         * dbus/dbus-protocol.h (DBUS_TYPE_INT64, DBUS_TYPE_UINT64): add
9787         64-bit typecodes
9788
9789 2003-04-22  Havoc Pennington  <hp@redhat.com>
9790
9791         * test/data/valid-messages/opposite-endian.message: fix test
9792         to use proper type for rply field
9793
9794         * test/data/invalid-messages: add tests for below validation
9795
9796         * dbus/dbus-message.c (decode_header_data): validate field types,
9797         and validate that named fields are valid names
9798         (decode_name_field): consider messages in the
9799         org.freedesktop.Local. namespace to be invalid.
9800
9801         * dbus/dbus-string.c (_dbus_string_validate_name): new
9802
9803 2003-04-19  Havoc Pennington  <hp@pobox.com>
9804
9805         * bus/driver.c (bus_driver_handle_hello): check limits and
9806         return an error if they are exceeded.
9807
9808         * bus/connection.c: maintain separate lists of active and inactive
9809         connections, and a count of each. Maintain count of completed
9810         connections per user. Implement code to check connection limits.
9811
9812         * dbus/dbus-list.c (_dbus_list_unlink): export
9813
9814         * bus/bus.c (bus_context_check_security_policy): enforce a maximum
9815         number of bytes in the message queue for a connection
9816
9817 2003-04-18  Havoc Pennington  <hp@pobox.com>
9818
9819         * dbus/dbus-auth.c (record_mechanisms): memleak fixes
9820
9821         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): fix some
9822         memleaks
9823
9824         * dbus/dbus-keyring.c (add_new_key): fix a memleak, and
9825         on realloc be sure to update the pointer in the keyring
9826
9827         * dbus/dbus-string.c (_dbus_string_zero): compensate for align
9828         offset to avoid writing to unallocated memory
9829
9830         * dbus/dbus-auth.c (process_rejected): return FALSE if we fail to
9831         try the next mechanism, so we properly handle OOM
9832
9833         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): fix double-free
9834         on OOM.
9835         (_dbus_keyring_new): fix OOM bug
9836         (_dbus_keyring_new_homedir): always set error; impose a maximum
9837         number of keys we'll load from the file, mostly to speed up the
9838         test suite and make its OOM checks more useful, but also for
9839         general sanity.
9840
9841         * dbus/dbus-auth.c (process_error_server): reject authentication
9842         if we get an error from the client
9843         (process_cancel): on cancel, send REJECTED, per the spec
9844         (process_error_client): send CANCEL if we get an error from the
9845         server.
9846
9847 2003-04-18  Havoc Pennington  <hp@pobox.com>
9848
9849         * dbus/dbus-mainloop.c (_dbus_loop_iterate): fix UMR in verbose
9850         debug spew
9851
9852         * dbus/dbus-auth.c (handle_client_data_cookie_sha1_mech): fix OOM
9853         handling problem
9854
9855         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): only whine
9856         about DBUS_TEST_HOMEDIR once
9857
9858         * bus/Makefile.am (TESTS_ENVIRONMENT): put DBUS_TEST_HOMEDIR in
9859         the environment
9860
9861         * bus/dispatch.c (bus_dispatch_sha1_test): actually load sha1
9862         config file so we test the right thing
9863
9864         Throughout: assorted docs improvements
9865
9866 2003-04-18  Havoc Pennington  <hp@pobox.com>
9867
9868         * glib/dbus-gmain.c: adapt to watch changes
9869
9870         * bus/bus.c, bus/activation.c, etc.: adjust to watch changes
9871
9872         * dbus/dbus-server.h: remove dbus_server_handle_watch
9873
9874         * dbus/dbus-connection.h: remove dbus_connection_handle_watch
9875
9876         * dbus/dbus-watch.c (dbus_watch_handle): change DBusWatch to work
9877         like DBusTimeout, so we don't need dbus_connection_handle_watch
9878         etc.
9879
9880 2003-04-17  Havoc Pennington  <hp@redhat.com>
9881
9882         * dbus/dbus-userdb.c, dbus/dbus-sysdeps.c: redo all the passwd
9883         database usage so it all goes via the DBusUserDatabase cache.
9884
9885 2003-04-17  Havoc Pennington  <hp@redhat.com>
9886
9887         * dbus/dbus-mainloop.c (_dbus_loop_iterate): fix logic so that if
9888         there was an OOM watch we skipped, we always return TRUE so we
9889         iterate again to have a look at it again. Fixes test suite hang.
9890         Code rearrangement also lets us lose some memset and only iterate
9891         over callbacks once.
9892
9893         * bus/driver.c (bus_driver_handle_message): sense of test for
9894         reply was backward
9895
9896 2003-04-16  Havoc Pennington  <hp@pobox.com>
9897
9898         * doc/dbus-specification.sgml: make spec say serials are unsigned
9899
9900         * dbus/dbus-message.h: change message serials to unsigned
9901
9902         * dbus/dbus-connection.c: adapt to message serials being unsigned
9903
9904 2003-04-15  Havoc Pennington  <hp@pobox.com>
9905
9906         * bus/bus.c: create and keep around a shared DBusUserDatabase
9907         object.
9908
9909         * bus/connection.c (bus_connection_get_groups): don't cache
9910         groups for user in the connection object, since user database
9911         object now does that.
9912
9913 2003-04-16  Havoc Pennington  <hp@redhat.com>
9914
9915         * dbus/dbus-message.c (_dbus_message_add_size_counter): keep a
9916         list of size counters
9917         (_dbus_message_loader_putback_message_link): put back a popped link
9918
9919         * dbus/dbus-connection.c
9920         (dbus_connection_set_max_live_messages_size): rename
9921         max_received_size
9922         (dbus_connection_get_outgoing_size): get size of outgoing
9923         queue
9924         (_dbus_connection_set_connection_counter): remove this cruft
9925
9926 2003-04-14  Havoc Pennington  <hp@redhat.com>
9927
9928         * dbus/dbus-userdb.c: user database abstraction, mostly to get
9929         caching, but at some point we might want to be able to use a
9930         different database.
9931
9932         * bus/dispatch.c (bus_dispatch_sha1_test): add a test that uses
9933         SHA1 conf file to test the sha1 auth mechanism, since the regular
9934         test always uses EXTERNAL when available.
9935
9936         * configure.in,
9937         test/data/valid-config-files/debug-allow-all-sha1.conf.in:
9938         add conf file that requires use of sha1 auth
9939
9940 2003-04-13  Havoc Pennington  <hp@pobox.com>
9941
9942         * tools/dbus-send.c, tools/dbus-monitor.c: two utility programs
9943         from Philip Blundell to send messages and monitor them.
9944
9945 2003-04-13  Havoc Pennington  <hp@pobox.com>
9946
9947         * dbus/dbus-mainloop.c: fix some reentrancy issues by refcounting
9948         callbacks
9949
9950         * test/data/valid-config-files/debug-allow-all.conf.in: allow all
9951         users
9952
9953         * dbus/dbus-transport.c (_dbus_transport_get_dispatch_status):
9954         fix to only recover unused bytes if we're already authenticated
9955         (_dbus_transport_get_is_authenticated): fix to still mark us
9956         authenticated if there are unused bytes.
9957
9958         * bus/dispatch.c: implement security policy checking
9959
9960         * bus/connection.c (bus_transaction_send_from_driver): new
9961
9962         * bus/bus.c (bus_context_check_security_policy): new
9963
9964         * bus/dispatch.c (send_service_nonexistent_error): delete this,
9965         now we just set the DBusError and it gets converted to an error
9966         reply.
9967
9968         * bus/connection.c (allow_user_function): enable code using actual
9969         data from the config file
9970
9971         * bus/policy.c (list_allows_user): handle wildcard rules for
9972         user/group connection perms
9973
9974 2003-04-13  Havoc Pennington  <hp@pobox.com>
9975
9976         * bus/config-parser.c: Load up the BusPolicy and BusPolicyRules
9977
9978         * dbus/dbus-sysdeps.c (_dbus_get_user_id): new function
9979
9980         * bus/policy.c (bus_policy_append_mandatory_rule)
9981         (bus_policy_append_default_rule, bus_policy_append_user_rule)
9982         (bus_policy_append_group_rule): new functions
9983
9984 2003-04-12  Havoc Pennington  <hp@pobox.com>
9985
9986         * bus/config-parser.c (bus_config_parser_new): fix a memleak
9987
9988         * dbus/dbus-sysdeps.c: change DBusCredentials to use longs for
9989         the pid/gid/uid, just for paranoia.
9990
9991         * test/break-loader.c (randomly_do_n_things): find a byte
9992         containing a type code, and randomly change it to a different
9993         type code.
9994
9995 2003-04-12  Havoc Pennington  <hp@pobox.com>
9996
9997         * bus/policy.h: change BusPolicy to be the thing from the config
9998         file, and rename old BusPolicy to BusClientPolicy
9999
10000         * bus/bus.c, bus/connection.c, bus/config-parser.c: change to
10001         match change in how policy works
10002
10003         * dbus/dbus-internals.h: mark assert_not_reached as
10004         __attribute((noreturn))__
10005
10006 2003-04-11  Havoc Pennington  <hp@redhat.com>
10007
10008         * doc/dbus-specification.sgml: fix a spot with the wrong name for
10009         the broadcast service. Use boolean return for ServiceExists.
10010
10011 2003-04-11  Havoc Pennington  <hp@redhat.com>
10012
10013         * configure.in: add another directory to look for qt in.
10014
10015 2003-04-11  Havoc Pennington  <hp@redhat.com>
10016
10017         * AUTHORS: add Colin Walters
10018
10019 2003-04-11  Havoc Pennington  <hp@redhat.com>
10020
10021         * NEWS: update
10022
10023         * configure.in: 0.9
10024
10025 2003-04-11  Havoc Pennington  <hp@redhat.com>
10026
10027         * bus/messagebus.in: remove pid file when stopping the
10028         message bus, since the bus won't have privileges to remove it
10029         itself.
10030
10031 2003-04-11  Havoc Pennington  <hp@redhat.com>
10032
10033         * bus/bus.c (bus_context_new): move credentials change after
10034         creating pidfile
10035
10036 2003-04-11  Havoc Pennington  <hp@pobox.com>
10037
10038         * test/decode-gcov.c: add "below average functions" to the
10039         coverage report, and change how some of the code works.
10040
10041         * bus/test-main.c: bracket some stuff in DBUS_BUILD_TESTS so it's
10042         not in the coverage stats.
10043
10044         * test/test-service.c (main): use _dbus_verbose not fprintf in a
10045         couple places so running the test suite doesn't result in megaspam.
10046
10047 2003-04-11  Havoc Pennington  <hp@pobox.com>
10048
10049         * bus/dispatch.c (check_existent_service_activation): accept a no
10050         memory error in a place we didn't before
10051
10052         * bus/test.c (bus_test_run_everything): remove hacky "do it twice
10053         in case the first one failed," since the test suite is less
10054         broken now.
10055
10056 2003-04-10  Havoc Pennington  <hp@pobox.com>
10057
10058         * bus/dispatch.c (check_segfault_service_activation): add test
10059         for launching an executable that just crashes.
10060
10061         * test/test-segfault.c (main): try setting coredumpsize to 0 so we
10062         don't leave a million cores. We'll see how portable this is.
10063
10064 2003-04-10  Havoc Pennington  <hp@pobox.com>
10065
10066         * dbus/dbus-spawn.c (_dbus_spawn_async_with_babysitter): move all
10067         the possible parent failures before we fork, so that we don't
10068         fail to create a babysitter after creating the child.
10069
10070         * bus/activation.c (bus_activation_activate_service): kill child
10071         if we don't successfully complete the activation.
10072
10073 2003-04-10  Havoc Pennington  <hp@redhat.com>
10074
10075         * dbus/dbus-connection.c (dbus_connection_flush): don't spin on
10076         the connection if it's disconnected
10077
10078         * bus/activation.c (bus_activation_service_created): use new
10079         transaction features to roll back removal of pending activation if
10080         we don't successfully create the service after all. Don't remove
10081         pending activation if the function fails.
10082
10083         * dbus/dbus-list.c (_dbus_list_insert_before_link)
10084         (_dbus_list_insert_after_link): new code to facilitate
10085         services.c fixes
10086
10087         * dbus/dbus-hash.c (_dbus_hash_table_insert_string_preallocated):
10088         new functionality, so we can preallocate the ability to insert
10089         into a hash table.
10090
10091         * bus/connection.c (bus_transaction_add_cancel_hook): new function
10092         allowing us to put custom hooks in a transaction to be used for
10093         cancelling said transaction
10094
10095         * doc/dbus-specification.sgml: add some discussion of secondary
10096         service owners, and disallow zero-length service names
10097
10098         * bus/services.c (bus_registry_acquire_service): new function,
10099         splits out part of bus_driver_handle_acquire_service() and fixes
10100         a bug where we didn't remove the service doing the acquiring
10101         from the secondary queue if we failed to remove the current owner
10102         from the front of the queue.
10103
10104 2003-04-10  Alexander Larsson  <alexl@redhat.com>
10105
10106         * doc/dbus-specification.sgml:
10107         s/org.freedesktop.Broadcast/org.freedesktop.DBus.Broadcast/
10108
10109 2003-04-10  Alexander Larsson  <alexl@redhat.com>
10110
10111         * bus/.cvsignore:
10112         * glib/.cvsignore:
10113         * test/.cvsignore:
10114         Added files to cvsignore
10115
10116         * dbus/dbus-message.h:
10117         * dbus/dbus-message.c: (dbus_message_iter_get_named):
10118         Make get_named() take two out argument and return a boolean.
10119         (dbus_message_iter_get_args_valist):
10120         Update usage of get_named().
10121         (dbus_message_iter_append_byte):
10122         Fix typo
10123         (dbus_message_iter_append_named)
10124         Fix typo
10125         (message_iter_test), (check_message_handling_type), (_dbus_message_test):
10126         More tests.
10127
10128 2003-04-10  Alexander Larsson  <alexl@redhat.com>
10129
10130         * dbus/dbus-marshal.[ch]:
10131         Add array_type_pos argument to _dbus_marshal_validate_arg.
10132         Let you pass a NULL end_pos to _dbus_marshal_validate_type.
10133
10134         * dbus/dbus-message.[ch]:
10135         Multi-dimensional arrays have full type specification in the
10136         outermost array. Iter code re-arranged to handle this.
10137         Added some more iter tests.
10138
10139         * doc/dbus-specification.sgml:
10140         Add me to authors.
10141         Remove old FIXME.
10142         Update new array encoding description.
10143         Correct DBUS_SERVICE_FLAGS_REPLACE_EXISTING description.
10144
10145         * test/data/invalid-messages/array-with-mixed-types.message:
10146         * test/data/valid-messages/array-of-array-of-uint32.message:
10147         Change to the new array format.
10148
10149         * test/data/invalid-messages/too-short-dict.message:
10150         Fix bug in test.
10151
10152         * test/data/valid-messages/recursive-types.message:
10153         Fix up and extend test.
10154
10155 2003-04-10  Havoc Pennington  <hp@pobox.com>
10156
10157         * bus/dispatch.c: lots of fixes
10158
10159         * dbus/dbus-mainloop.c (_dbus_loop_dispatch): export
10160         (_dbus_loop_iterate): remove old "quit if no callbacks" code,
10161         that was crack, broke the test service.
10162
10163         * dbus/dbus-transport.c (_dbus_transport_open): fix error
10164         handling to avoid piling up errors if we get a failure on the
10165         first address.
10166
10167         * dbus/dbus-internals.c (_dbus_real_assert_not_reached): include
10168         pid in assertion failures.
10169
10170         * dbus/dbus-mainloop.c (_dbus_loop_iterate): use static arrays up
10171         to some fixed size of file descriptor array. Don't return TRUE
10172         anytime a timeout exists, that led to lots of busy loop silliness
10173         in the tests.
10174
10175 2003-04-09  Havoc Pennington  <hp@redhat.com>
10176
10177         * dbus/dbus-mainloop.c (check_timeout): fix timeouts, I thought
10178         I'd checked this in earlier but hadn't.
10179
10180 2003-04-09  Havoc Pennington  <hp@redhat.com>
10181
10182         * bus/dispatch.c (bus_dispatch_test): get a bit further through
10183         the activation test (man this is getting old!)
10184
10185 2003-04-09  Havoc Pennington  <hp@redhat.com>
10186
10187         * test/test-utils.c: use dispatch status function to fix this up
10188
10189         * bus/connection.c (connection_watch_callback): don't dispatch
10190         from here
10191         (connection_timeout_callback): don't dispatch from here
10192         (bus_connections_setup_connection): set the dispatch status function
10193         (bus_connection_disconnected): unset it
10194
10195         * dbus/dbus-mainloop.c (_dbus_loop_queue_dispatch): new function
10196         used to add a connection to be dispatched
10197         (_dbus_loop_iterate): do the dispatching at the end of each
10198         iteration
10199
10200         * dbus/dbus-connection.c
10201         (dbus_connection_set_dispatch_status_function): new function
10202         allowing us to fix up main loop usage
10203         (_dbus_connection_last_unref): free all the various function
10204         user data
10205         (dbus_connection_dispatch): call the DispatchStatusFunction
10206         whenever this function returns
10207         (dbus_connection_handle_watch): call DispatchStatusFunction
10208         (dbus_connection_send_with_reply_and_block): call DispatchStatusFunction
10209         (reply_handler_timeout): call DispatchStatusFunction
10210         (dbus_connection_flush): call DispatchStatusFunction
10211
10212 2003-04-09  Havoc Pennington  <hp@redhat.com>
10213
10214         * dbus/dbus-bus.c (dbus_bus_register): fix up error handling and
10215         a memory leak
10216
10217         * bus/dispatch.c (check_service_activated): fix bug in test
10218
10219         * dbus/dbus-mainloop.c (check_timeout): fix this up
10220
10221         * dbus/dbus-internals.c (_dbus_verbose_real): include PID in
10222         verbose output so we can sort out output from different processes,
10223         e.g. in the activation case.
10224
10225 2003-04-08  Colin Walters  <walters@gnu.org>
10226
10227         * bus/bus.c (struct BusContext) [pidfile]: New member, to store
10228         the pid file.
10229         (bus_context_new): Set it.
10230         (bus_context_unref): Use it to delete the pid file.
10231
10232 2003-04-08  Havoc Pennington  <hp@redhat.com>
10233
10234         * test/data/invalid-messages/array-with-mixed-types.message:
10235         regression test that fails for the moment
10236
10237         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): reorder
10238         tests for convenience
10239
10240         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): don't allow
10241         array of nil, it broke things.
10242
10243         * test/data/invalid-messages/array-of-nil.message: regression test
10244
10245         * test/data/valid-messages/array-of-array-of-uint32.message:
10246         happened to write this so added it to suite
10247
10248 2003-04-08  Havoc Pennington  <hp@redhat.com>
10249
10250         * bus/driver.c (bus_driver_handle_acquire_service): init
10251         retval/reply before checking name
10252
10253         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): add a
10254         recursion depth argument
10255
10256         * dbus/dbus-message.h (struct DBusMessageIter): put some padding
10257         in the public struct for future extension
10258
10259         * dbus/dbus-message-builder.c (_dbus_message_data_load): fix
10260         typo
10261
10262         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): fix a verbose
10263         message
10264
10265         * doc/dbus-specification.sgml: fix typo
10266
10267 2003-04-08  Alexander Larsson  <alexl@redhat.com>
10268
10269         Implemented recursive types, named types and new-style iters
10270
10271         * bus/driver.c:
10272         * glib/test-thread-client.c: (thread_func):
10273         * glib/test-thread-server.c: (handle_test_message):
10274         * test/test-service.c: (handle_echo):
10275         Update to new api
10276
10277         * dbus/Makefile.am:
10278         * dbus/dbus-dict.c:
10279         * dbus/dbus-dict.h:
10280         * dbus/dbus.h
10281         Remove DBusDict
10282
10283         * dbus/dbus-internals.c: (_dbus_type_to_string):
10284         Update for new types.
10285
10286         * dbus/dbus-marshal.[ch]:
10287         Implement recursive types and the new marshalling format.
10288         Remove hardcoded dict marshalling.
10289         Marshal named types.
10290
10291         * dbus/dbus-message-builder.c:
10292         Add BYTE_ARRAY.
10293         Remove references to old types
10294
10295         * dbus/dbus-message.[ch]:
10296         New non-refcounted iter API that supports recursive iters.
10297         Use iters for appending, including support for recursive
10298         iters.
10299         Add byte and named type support.
10300         Update everything to new marshalling formats.
10301         Add tests for new API.
10302
10303         * dbus/dbus-protocol.h:
10304         Remove old array types.
10305         Add types: BYTE, ARRAY, DICT, NAMED
10306
10307         * dbus/dbus-string.c:
10308         * dbus/dbus-sysdeps.c:
10309         Make parse_double locale safe.
10310
10311         * dbus/dbus-test-main.c:
10312         Call setlocale.
10313
10314         * dbus/dbus-test.c:
10315         Kill dict test
10316
10317         * doc/dbus-specification.sgml:
10318         Update spec
10319
10320         * test/data/incomplete-messages/missing-body.message:
10321         * test/data/invalid-messages/bad-boolean.message:
10322         * test/data/invalid-messages/bad-boolean-array.message:
10323         * test/data/invalid-messages/boolean-array-length-too-long.message-raw:
10324         * test/data/invalid-messages/boolean-has-no-value.message-raw:
10325         * test/data/invalid-messages/too-short-dict.message:
10326         * test/data/valid-messages/dict-simple.message:
10327         * test/data/valid-messages/dict.message:
10328         * test/data/valid-messages/emptiness.message:
10329         * test/data/valid-messages/lots-of-arguments.message:
10330         * test/data/valid-messages/no-padding.message:
10331         * test/data/valid-messages/recursive-types.message:
10332         Add missing NAME fields
10333         Fix up dicts & arrays
10334
10335         * test/data/invalid-messages/dict-with-nil-value.message:
10336         Removed, this is not invalid anymore.
10337
10338         * test/data/valid-messages/recursive-types.message:
10339         Add new test for deeply recursive types.
10340
10341 2003-04-07  Havoc Pennington  <hp@pobox.com>
10342
10343         * bus/driver.c (bus_driver_handle_acquire_service): return an
10344         error if you try to acquire a service that starts with ':'
10345
10346 2003-04-07  Havoc Pennington  <hp@redhat.com>
10347
10348         * doc/dbus-specification.sgml: require that base service names
10349         start with ':' and that the base service is created/deleted
10350         as first and last things a connection does on the bus
10351
10352         * bus/dispatch.c (check_existent_service_activation): lots more
10353         work on the activation test; it doesn't fully pass yet...
10354
10355         * test/test-service.c (main): fix so we don't memleak the
10356         connection to the message bus
10357         (filter_func): accept a message asking us to exit
10358
10359 2003-04-06  Havoc Pennington  <hp@pobox.com>
10360
10361         * qt/Makefile.am (dbusinclude_HEADERS): install dbus-qt.h,
10362         from Colin Walters
10363
10364         * configure.in: fixes to Qt detection from Colin Walters
10365
10366         * doc/Makefile.am: Only remove generated docbook dirs if they
10367         exist, from Colin Walters
10368
10369         * dbus/dbus-bus.c: change how we set well-known connections to
10370         NULL, so that it works if a single connection is stored in
10371         two well-known array slots.
10372
10373         * test/Makefile.am: remove a lot of stuff that isn't immediately
10374         useful, it's in CVS history if we want it.
10375
10376         * test/test-service.c: use dbus-mainloop instead of that
10377         watch.[hc] crack
10378
10379 2003-04-06  Havoc Pennington  <hp@pobox.com>
10380
10381         * dbus/Makefile.am: split lists of sources into stuff that goes in
10382         the library, util functions that go in the lib and are also used
10383         elsewhere, and util functions that are used in tests/daemon but
10384         don't go in the lib.
10385
10386         * dbus/dbus-mainloop.h, dbus/dbus-mainloop.c: move bus/loop.[hc]
10387         here so it can be used in test binaries also
10388
10389 2003-04-06  Havoc Pennington  <hp@pobox.com>
10390
10391         * dbus/dbus-sysdeps.c (_dbus_become_daemon): write the pidfile
10392         here in the parent process, so we can return an error if it
10393         fails. Also, move some of the code into the child so the parent
10394         is less hosed if we fail midway through.
10395
10396         * bus/bus.c (bus_context_new): move pidfile detection further up
10397         in the function, before we start overwriting sockets and such.
10398
10399         * bus/messagebus.in: adjust this a bit, not sure if it will work.
10400
10401         * configure.in: add --with-system-pid-file and --with-system-socket
10402
10403 2003-04-06  Colin Walters  <walters@verbum.org>
10404
10405         * configure.in (DBUS_SYSTEM_PID_FILE): New variable.
10406
10407         * bus/system.conf.in: Declare a pidfile.
10408
10409         * bus/bus.c (bus_context_new): Test for an existing pid file, and
10410         create one (if appropriate).
10411
10412         * bus/config-parser.c (enum ElementType) [ELEMENT_PIDFILE]: New.
10413         (struct BusConfigParser) [pidfile]: New.
10414         (element_type_to_name, merge_included, start_busconfig_child)
10415         (bus_config_parser_end_element, bus_config_parser_content): Handle it.
10416         (bus_config_parser_unref): Free it.
10417         (bus_config_parser_get_pidfile): New function.
10418
10419         * bus/config-parser.h (_dbus_write_pid_file): Prototype.
10420
10421         * dbus/dbus-errors.h (DBUS_ERROR_PIDFILE_EXISTS): New error.
10422
10423         * dbus/dbus-sysdeps.c (_dbus_write_pid_file): New function.
10424
10425         * dbus/dbus-sysdeps.h: Prototype it.
10426
10427 2003-04-06  Havoc Pennington  <hp@pobox.com>
10428
10429         * bus/bus.c (bus_context_new): print the address in here, rather
10430         than in main(), because we need to do it before forking the daemon
10431
10432         * bus/dispatch.c (send_service_nonexistent_error): set the sender
10433         on the service nonexistent error
10434
10435         * bus/driver.c (bus_driver_handle_acquire_service): set the
10436         sender on the AcquireService reply
10437
10438         * test/data/valid-config-files/debug-allow-all.conf.in: Make test
10439         server also listen on a UNIX socket so services can connect to it.
10440
10441 2003-04-06  Havoc Pennington  <hp@pobox.com>
10442
10443         * dbus/dbus-threads.c: Redo how the fake debug mutexes are done
10444         so it detects deadlocks and also we actually init threads when
10445         debugging.
10446
10447 2003-04-06  Havoc Pennington  <hp@pobox.com>
10448
10449         * dbus/dbus-server-unix.c (_dbus_server_new_for_domain_socket):
10450         save the domain socket name, and unlink it when we disconnect the
10451         server. Means that at least when we exit normally, we won't leave
10452         a bunch of junk in /tmp
10453
10454         * dbus/dbus-transport-unix.c
10455         (_dbus_transport_new_for_domain_socket): code cleanup (nicer
10456         memory management). (I was making a real change here but then
10457         didn't)
10458
10459 2003-04-06  Havoc Pennington  <hp@pobox.com>
10460
10461         * bus/bus.c (bus_context_new): fix wrong handling of
10462         server_data_slot_unref() in the error case.
10463
10464         * dbus/dbus-internals.h (_dbus_assert): change so it passes
10465         "(condition) != 0" to _dbus_real_assert so that
10466         "_dbus_assert (pointer)" doesn't cause a warning
10467
10468         * bus/main.c (main): accept --print-address option to print out
10469         the message bus address
10470
10471         * dbus/dbus-sysdeps.c (_dbus_generate_random_ascii): export this
10472
10473         * dbus/dbus-transport.c (_dbus_transport_open): special error for
10474         "tmpdir" option to unix: address on client side
10475
10476         * dbus/dbus-server.c (dbus_server_listen): handle "tmpdir" option
10477         to unix: address
10478
10479         * configure.in (TEST_SOCKET_DIR): locate a temporary directory
10480         we can use to create sockets in the test suite.
10481
10482         * bus/main.c (signal_handler): on SIGTERM, exit the daemon
10483         cleanly. To be used for testing.
10484
10485         * dbus/dbus-spawn.c (babysit): use _dbus_set_signal_handler()
10486
10487         * dbus/dbus-sysdeps.c (_dbus_set_signal_handler): new
10488
10489         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
10490         handle trying to call this when there's no servers active
10491
10492 2003-04-05  Havoc Pennington  <hp@pobox.com>
10493
10494         * NEWS: update
10495
10496         * configure.in: 0.8
10497
10498 2003-04-05  Havoc Pennington  <hp@pobox.com>
10499
10500         * bus/bus.c (setup_server): fix this so dbus-daemon-1 doesn't
10501         crash on startup. Need to get "try starting the daemon"
10502         in the test suite I guess. ;-)
10503
10504         * dbus/dbus-server.h, dbus/dbus-server.c: remove the stuff that
10505         tracked the number of open connections; it's better done in
10506         application-specific code as you want it to span all servers etc.
10507
10508 2003-04-05  Havoc Pennington  <hp@pobox.com>
10509
10510         * bus/Makefile.am (install-data-hook): add missing DESTDIR,
10511         patch from Colin Walters
10512
10513 2003-04-05  Havoc Pennington  <hp@pobox.com>
10514
10515         * doc/config-file.txt (Elements): fix docs of <auth> to reflect
10516         reality; in fact multiple mechanisms are allowed.
10517
10518         * dbus/dbus-internals.c (_dbus_real_assert)
10519         (_dbus_real_assert_not_reached): move guts of _dbus_assert() and
10520         _dbus_assert_not_reached() into functions, so that they don't show
10521         up in basic block counts for test coverage, and don't use up as
10522         much disk space. Does mean slower execution speed though, so
10523         assumes --disable-asserts is the normal production case.
10524
10525 2003-04-05  Havoc Pennington  <hp@pobox.com>
10526
10527         * test/Makefile.am (dist-hook): also dist *.in files
10528
10529         * NEWS: update
10530
10531         * configure.in: 0.7
10532
10533 2003-04-05  Havoc Pennington  <hp@pobox.com>
10534
10535         * dbus/dbus-string.c: docs warning
10536
10537         * dbus/dbus-spawn.c: missing docs
10538
10539         * dbus/dbus-memory.c (struct ShutdownClosure): missing docs
10540
10541 2003-04-05  Havoc Pennington  <hp@pobox.com>
10542
10543         * bus/loop.c (bus_loop_iterate): fix the timeout code, using
10544         magic from GLib
10545
10546         * dbus/dbus-spawn.c (_dbus_babysitter_unref): set sitter_pid
10547         to -1 once we've reaped the babysitter
10548         (_dbus_babysitter_handle_watch): do as much work as we can, not
10549         just one go of it
10550
10551         * bus/activation.c: add code using DBusBabysitter so that we
10552         handle it when a service fails to start up properly.
10553         (bus_activation_service_created): don't remove the activation
10554         entries as we go, just let them get removed when we free the pending
10555         activation. Unref reply messages after sending them.
10556
10557 2003-04-05  Havoc Pennington  <hp@pobox.com>
10558
10559         * test/decode-gcov.c (main): print per-directory stats in the report
10560
10561         * Makefile.am (coverage-report.txt): don't include test/* in gcov stats
10562
10563 2003-04-05  Havoc Pennington  <hp@pobox.com>
10564
10565         * Makefile.am (coverage-report.txt): add target "coverage-report.txt"
10566
10567         * test/decode-gcov.c: hack up a little program to suck data
10568         out of gcov files. Yes this is sort of silly.
10569
10570         * configure.in: define something in config.h and do an
10571         AM_CONDITIONAL when gcov is enabled
10572
10573 2003-04-04  Havoc Pennington  <hp@redhat.com>
10574
10575         * dbus/dbus-spawn.c, dbus/dbus-spawn.h: Change dbus_spawn to
10576         return a "babysitter" object that is used to monitor the status of
10577         the spawned process and reap it when required.
10578
10579         * test/test-segfault.c, test/test-exit.c,
10580         test/test-sleep-forever.c: binaries that do various lame things,
10581         used in the test suite.
10582
10583         * dbus/dbus-sysdeps.c: kill _dbus_errno_to_string()
10584
10585 2003-04-03  Havoc Pennington  <hp@pobox.com>
10586
10587         * dbus/dbus-spawn.c: Move dbus-spawn into a separate file
10588         in preparation for modifying it, dbus-sysdeps is getting
10589         a bit unmanageable.
10590
10591 2003-04-03  Havoc Pennington  <hp@redhat.com>
10592
10593         * bus/loop.h, bus/loop.c: make the mainloop an object so we can
10594         have multiple ones
10595
10596         * bus/*.[hc]: adapt to mainloop change
10597
10598 2003-04-03  Havoc Pennington  <hp@redhat.com>
10599
10600         * bus/activation.c (load_directory): fix up memleaks
10601         (bus_activation_entry_free): free the entry
10602
10603         * dbus/dbus-bus.c (dbus_bus_acquire_service): return an error if
10604         we get one from the message bus; fix memleaks.
10605
10606         * dbus/dbus-message.c (dbus_set_error_from_message): new function
10607
10608 2003-04-03  Havoc Pennington  <hp@pobox.com>
10609
10610         * bus/config-parser.c (bus_config_parser_unref): free
10611         list of mechanisms, bug discovered by test suite enhancements
10612         (putting system.conf and session.conf into suite)
10613
10614         * test/Makefile.am, test/test-service.c: add placeholder for a
10615         test service that we'll activate as part of test suite. Doesn't
10616         do anything yet.
10617
10618         * dbus/dbus-sysdeps.c (_dbus_setenv): support unsetenv by
10619         setting NULL value, and use system malloc not dbus_malloc()
10620         when we have unavoidable memleakage.
10621
10622         * dbus/dbus-bus.c (dbus_bus_get): fix bug where bus type of 0
10623         didn't work, and support DBUS_BUS_ACTIVATION.
10624
10625         * bus/activation.c (child_setup): pass our well-known bus type to
10626         the child
10627
10628         * bus/config-parser.c: support <type> to specify well-known type
10629
10630         * doc/dbus-specification.sgml: document the env variables to
10631         locate well-known buses and find service activator
10632
10633 2003-04-02  Havoc Pennington  <hp@redhat.com>
10634
10635         * test/Makefile.am (all-local): add a rule to copy tests to
10636         builddir, so we can have generated tests. Use this to remove the
10637         silly hack for testing system.conf and session.conf. Will use this
10638         shortly to generate .service files pointing to test binaries.
10639
10640 2003-04-02  Havoc Pennington  <hp@redhat.com>
10641
10642         * dbus/dbus-string.c (set_length): fix a bug - we allocated max of
10643         current alloc and needed new length, not max of the doubled
10644         allocation and needed new length. Also, when building tests,
10645         don't do the double-allocation stuff, just realloc every time.
10646
10647 2003-04-02  Havoc Pennington  <hp@redhat.com>
10648
10649         * dbus/dbus-sysdeps.c (_dbus_file_get_contents): include filenames
10650         in error messages
10651         (_dbus_string_get_dirname): new
10652         (_dbus_sysdeps_test): new
10653         (_dbus_directory_open): include dirnames in error messages
10654
10655         * bus/config-parser.c: interpret <include> and <includedir> and
10656         <servicedir> relative to config file location if the given
10657         filename is not absolute.
10658
10659         * dbus/dbus-string.c (_dbus_string_find_byte_backward): new
10660
10661 2003-04-02  Havoc Pennington  <hp@redhat.com>
10662
10663         * bus/connection.c (bus_transaction_send_error_reply): set sender
10664         service for the error, and unref the reply on success
10665
10666         * bus/activation.c: convert to use BusTransaction so OOM can be
10667         handled correctly
10668         (bus_activation_service_created): set sender of the message
10669
10670 2003-04-01  Havoc Pennington  <hp@redhat.com>
10671
10672         * bus/config-parser.c, bus/bus.c: implement <servicedir> and
10673         <includedir> (at least mostly)
10674
10675         * dbus/dbus-sysdeps.c (_dbus_change_identity): set the group ID
10676         first, then the user ID
10677
10678 2003-04-01  Havoc Pennington  <hp@pobox.com>
10679
10680         * dbus/dbus-server.c (dbus_server_set_auth_mechanisms): new
10681         function
10682
10683         * dbus/dbus-auth.c (_dbus_auth_set_mechanisms): new
10684
10685         * dbus/dbus-internals.c (_dbus_dup_string_array): new function
10686
10687         * dbus/dbus-sysdeps.c (_dbus_listen_unix_socket): chmod the
10688         socket 0777, and unlink any existing socket.
10689
10690         * bus/bus.c (bus_context_new): change our UID/GID and fork if
10691         the configuration file so specifies; set up auth mechanism
10692         restrictions
10693
10694         * bus/config-parser.c (bus_config_parser_content): add support
10695         for <fork> option and fill in code for <auth>
10696
10697         * bus/system.conf.in: add <fork/> to default configuration,
10698         and limit auth mechanisms to EXTERNAL
10699
10700         * doc/config-file.txt (Elements): add <fork>
10701
10702         * dbus/dbus-sysdeps.c (_dbus_become_daemon): new function
10703         (_dbus_change_identity): new function
10704
10705 2003-03-31  Havoc Pennington  <hp@redhat.com>
10706
10707         * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket)
10708         (_dbus_listen_unix_socket): fix off-by-one error in null
10709         termination spotted by Nalin
10710
10711 2003-03-31  Havoc Pennington  <hp@redhat.com>
10712
10713         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): allow setting
10714         DBUS_TEST_HOMEDIR when tests are enabled, so we can test without
10715         having a real home directory available.
10716
10717 2003-03-31  Havoc Pennington  <hp@redhat.com>
10718
10719         * bus/Makefile.am (install-data-hook): create /var/run/dbus
10720
10721         * bus/messagebus.in: add init script for Red Hat /etc/init.d
10722
10723         * configure.in: add support for specifying a style of init script
10724         to install
10725
10726 2003-03-31  Havoc Pennington  <hp@redhat.com>
10727
10728         Fix some annoying DBusString API and fix all affected code.
10729
10730         * dbus/dbus-string.c (_dbus_string_init): get rid of annoying
10731         max_length argument
10732         (_dbus_string_get_data): change to return string instead of using
10733         an out param
10734         (_dbus_string_get_const_data): ditto
10735         (_dbus_string_get_data_len): ditto
10736         (_dbus_string_get_const_data_len): ditto
10737
10738 2003-03-31  Havoc Pennington  <hp@redhat.com>
10739
10740         * bus/main.c (main): fix up the command line arguments to be nicer
10741
10742 2003-03-31  Havoc Pennington  <hp@redhat.com>
10743
10744         * dbus/Makefile.am (INCLUDES): use EXPANDED_LOCALSTATEDIR to
10745         define DBUS_SYSTEM_BUS_PATH as we want to compile in the same
10746         final location that lands in the config file
10747
10748         * bus/config-loader-expat.c (bus_config_load): fix type of
10749         XML_Parser variable
10750
10751         * doc/TODO: remove TODO item for dbus_bus_get()
10752
10753         * dbus/dbus-bus.c (bus_data_free): add missing lock/unlock
10754
10755 2003-03-31  Havoc Pennington  <hp@pobox.com>
10756
10757         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_domain_socket)
10758         (_dbus_transport_new_for_tcp_socket): these didn't need the "server"
10759         argument since they are always client side
10760
10761         * dbus/dbus-server.c (dbus_server_get_address): new function
10762
10763         * bus/main.c (main): take the configuration file as an argument.
10764
10765         * test/data/valid-config-files/debug-allow-all.conf: new file to
10766         use with dispatch.c tests for example
10767
10768         * bus/test-main.c (main): require test data dir
10769
10770         * bus/bus.c (bus_context_new): change this to take a
10771         configuration file name as argument
10772
10773         * doc/config-file.txt (Elements): add <servicedir>
10774
10775         * bus/system.conf, bus/session.conf: new files
10776
10777         * dbus/dbus-bus.c (dbus_bus_get): look for system bus on
10778         well-known socket if none set
10779
10780         * configure.in: create system.conf and session.conf
10781
10782 2003-03-30  Havoc Pennington  <hp@pobox.com>
10783
10784         * bus/config-parser.c: hacking
10785
10786         * dbus/dbus-memory.c: don't use DBusList for the list of stuff
10787         to shut down, since it could cause weirdness with the DBusList
10788         lock
10789
10790         * dbus/dbus-list.c (_dbus_list_test): add tests for the
10791         link-oriented stack routines
10792         (alloc_link): free the mempool if the first alloc from it fails
10793
10794         * dbus/dbus-mempool.c (struct DBusMemBlock): fix alignment issue
10795
10796         * dbus/dbus-string.c (UNICODE_VALID): sync new version of this
10797         from GLib
10798         (_dbus_string_skip_white): new
10799
10800         * doc/config-file.txt (Elements): add <includedir>
10801
10802 2003-03-28  Havoc Pennington  <hp@pobox.com>
10803
10804         * dbus/dbus-string.c (_dbus_string_copy_data_len)
10805         (_dbus_string_copy_data): new functions
10806
10807 2003-03-28  Anders Carlsson  <andersca@codefactory.se>
10808
10809         * dbus/dbus-bus.c: (bus_data_free), (dbus_bus_get):
10810         * dbus/dbus-bus.h:
10811         Add dbus_bus_get.
10812
10813         * dbus/dbus-memory.c:
10814         Fix a doc comment.
10815
10816 2003-03-28  Havoc Pennington  <hp@pobox.com>
10817
10818         * bus/test.c (bus_test_flush_bus): remove the sleep from here,
10819         I think it may have just been superstition. Not sure.
10820
10821         * dbus/dbus-string.c (_dbus_string_base64_decode): catch some OOM
10822         failures that were not being handled.
10823
10824         * dbus/dbus-auth.c (process_auth): fix a memleak in OOM handling
10825
10826         * dbus/dbus-memory.c: add ability to set number of mallocs in a
10827         row that will fail on out-of-memory.
10828
10829         * dbus/dbus-internals.c (_dbus_test_oom_handling): convenience
10830         function for testing out-of-memory handling.
10831
10832         * bus/config-loader-expat.c (memsuite): don't wrap the dbus
10833         allocation functions, they do map exactly to the expat ones.
10834
10835 2003-03-27  Havoc Pennington  <hp@redhat.com>
10836
10837         * bus/config-loader-libxml.c (bus_config_load): add another error
10838         check
10839
10840 2003-03-26  Anders Carlsson  <andersca@codefactory.se>
10841
10842         * doc/TODO:
10843         Add note about automatic service activation.
10844
10845         * doc/dbus-specification.sgml:
10846         Rename the specification and clarify a few things.
10847
10848 2003-03-26  Anders Carlsson  <andersca@codefactory.se>
10849
10850         * Doxyfile.in:
10851         * dbus/dbus-address.c:
10852         * dbus/dbus-dict.c:
10853         * dbus/dbus-marshal.c:
10854         * dbus/dbus-server-debug-pipe.c:
10855         * dbus/dbus-transport-unix.c:
10856         Fix documentation warnings.
10857
10858 2003-03-26  Havoc Pennington  <hp@pobox.com>
10859
10860         * bus/test-main.c, dbus/dbus-test.c (main): check memleaks
10861         after every test so it's quick and easy to see which leaked, and
10862         so we test multiple dbus_shutdown() calls
10863
10864         * configure.in: change configure.in XML stuff to also support
10865         expat
10866
10867         * config-loader-libxml.c: some hacking
10868
10869         * config-loader-expat.c: some hacking
10870
10871         * config-parser.c: some hacking, plus tests
10872
10873 2003-03-25  Havoc Pennington  <hp@redhat.com>
10874
10875         * throughout - add more _DBUS_ASSERT_ERROR_IS_CLEAR
10876
10877         * configure.in: add --with-xml option to specify XML library,
10878         right now only libxml is supported.
10879
10880         * bus/config-loader-libxml.c, config-parser.c: sync some minor
10881         nonworking code between home and work, still just stubs
10882
10883 2003-03-24  Havoc Pennington  <hp@redhat.com>
10884
10885         * dbus/dbus-sysdeps.c (_dbus_set_fd_nonblocking): move to this
10886         file
10887
10888         * dbus/dbus-errors.c (dbus_set_error, dbus_set_error_const): allow
10889         NULL argument for "message" if the error is a well-known one,
10890         fill in a generic message in this case.
10891
10892         * dbus/dbus-errors.h (DBusResultCode): Kill DBusResultCode in
10893         favor of DBusError
10894
10895         * bus/test.c (bus_test_flush_bus): add
10896
10897         * bus/policy.c (bus_policy_test): test code stub
10898
10899 2003-03-24  Havoc Pennington  <hp@pobox.com>
10900
10901         * bus/connection.c (bus_connections_setup_connection): set up
10902         the "can this user connect" function, but it always returns
10903         TRUE until we have a config file parser so we can have a config
10904         file that allows connections.
10905
10906 2003-03-23  Havoc Pennington  <hp@pobox.com>
10907
10908         * dbus/dbus-threads.c (dbus_mutex_new, dbus_condvar_new): with
10909         DBUS_BUILD_TESTS, actually alloc/free a block of memory for
10910         the mutex, so we can check for proper memory management
10911         and OOM handling.
10912
10913         * dbus/dbus-dataslot.c: remove the mutex from
10914         DBusDataSlotAllocator and lock it manually when using it,
10915         to simplify fitting it into the global slots framework.
10916
10917         * dbus/dbus-threads.c (init_static_locks): rework how we're
10918         handling global locks so they are easily shut down.
10919
10920         * bus/policy.c (bus_policy_append_rule): fix
10921
10922         * bus/test-main.c (main): check for memleaks
10923
10924         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): make
10925         test suite check for memleaks
10926
10927         * dbus/dbus-memory.c: add support in test mode for tracking
10928         number of outstanding blocks
10929
10930 2003-03-23  Havoc Pennington  <hp@pobox.com>
10931
10932         * bus/policy.c, bus/bus.c, bus/connection.c: implement allow/deny
10933         policies code
10934
10935         * dbus/dbus-hash.h: add ULONG hash keys
10936
10937         * dbus/dbus-sysdeps.c (_dbus_get_groups): new
10938         (_dbus_get_group_id): new function
10939
10940 2003-03-20  Havoc Pennington  <hp@redhat.com>
10941
10942         * dbus/dbus-connection.c (dbus_connection_set_unix_user_function):
10943         new function
10944         (dbus_connection_get_unix_user): new function
10945
10946 2003-03-20  Havoc Pennington  <hp@pobox.com>
10947
10948         * bus/connection.c (bus_connection_send_oom_error): assert that
10949         message has a sender
10950         (connection_execute_transaction): ditto
10951         (bus_connection_preallocate_oom_error): fix to set the sender, and
10952         set recipient to the destination service, not the bus driver
10953
10954         * bus/policy.c: hacking
10955
10956         * dbus/dbus-message.c (dbus_message_service_is): new function
10957         (dbus_message_sender_is): new
10958
10959 2003-03-19  Havoc Pennington  <hp@redhat.com>
10960
10961         * bus/policy.c: start sketching code for policy restrictions on
10962         what connections can do.
10963
10964 2003-03-18  Havoc Pennington  <hp@redhat.com>
10965
10966         * doc/TODO: some notes on high-level todo items. Little nitpick
10967         stuff is all in @todo, so no need to add it here.
10968
10969         * doc/config-file.txt: some notes on how config file might look
10970
10971 2003-03-18  Anders Carlsson  <andersca@codefactory.se>
10972
10973         * configure.in: 0.6
10974
10975         * NEWS: Update.
10976
10977 2003-03-17  Havoc Pennington  <hp@redhat.com>
10978
10979         * dbus/dbus-internals.h: add gcc attributes so that
10980         our printf-style functions warn on bad arguments to
10981         format
10982
10983         * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): fix printf
10984         format bug
10985
10986         * dbus/dbus-message.c (_dbus_message_loader_queue_messages): fix
10987         printf format bug
10988
10989 2003-03-17  Havoc Pennington  <hp@redhat.com>
10990
10991         * bus/test-main.c (main): make it print something as it runs
10992         so make check doesn't look stuck
10993
10994         * doc/negotiation.txt, doc/dbus-sasl-profile.txt: remove
10995         from CVS, now obsolete
10996
10997 2003-03-17  Anders Carlsson  <andersca@codefactory.se>
10998
10999         * bus/dispatch.c: (bus_dispatch):
11000         Refetch the service name since it may have been reallocated
11001         when dbus_message_set_sender was called.
11002
11003         * dbus/dbus-sysdeps.c: (_dbus_accept):
11004         Add address and address length variables and use them to stop
11005         valgrind from complaining.
11006
11007 2003-03-17  Havoc Pennington  <hp@pobox.com>
11008
11009         All tests pass, no memleaks, no valgrind complaints.
11010
11011         * bus/test.c: refcount handler_slot
11012
11013         * bus/connection.c (bus_connections_new): refcount
11014         connection_data_slot
11015
11016         * dbus/dbus-auth-script.c (_dbus_auth_script_run): delete unused
11017         bytes so that auth scripts pass.
11018
11019         * bus/dispatch.c: init message_handler_slot so it gets allocated
11020         properly
11021
11022         * bus/dispatch.c (message_handler_slot_ref): fix memleak
11023
11024         * dbus/dbus-server-debug-pipe.c (_dbus_server_debug_pipe_new):
11025         dealloc server_pipe_hash when no longer used for benefit of
11026         leak checking
11027
11028         * dbus/dbus-auth.c (process_command): memleak fix
11029
11030         * bus/dispatch.c (check_hello_message): memleak fix
11031
11032 2003-03-16  Havoc Pennington  <hp@pobox.com>
11033
11034         * dbus/dbus-bus.c (ensure_bus_data): fix double-unref of the data slot
11035
11036 2003-03-17  Anders Carlsson  <andersca@codefactory.se>
11037
11038         * bus/activation.c (bus_activation_activate_service): Append
11039         the pending activation entry to the list of pending activations.
11040
11041 2003-03-16  Havoc Pennington  <hp@pobox.com>
11042
11043         * bus/dispatch.c (bus_dispatch_test): remove double-unrefs of
11044         connections
11045
11046         * dbus/dbus-address.c (create_entry): fix OOM handling when
11047         failing to alloc entry->method
11048
11049 2003-03-16  Havoc Pennington  <hp@pobox.com>
11050
11051         * dbus/dbus-watch.c (_dbus_watch_new): handle failure to malloc
11052         the watch
11053
11054         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
11055         add some missing dbus_set_result
11056
11057         * bus/dispatch.c (bus_dispatch_add_connection): handle failure to
11058         alloc the DBusMessageHandler
11059
11060         * dbus/dbus-transport.c (_dbus_transport_disconnect): don't ref
11061         the transport here, since we call this from the finalizer; it
11062         resulted in a double-finalize.
11063
11064         * dbus/dbus-transport.c (_dbus_transport_disconnect): fix a bug
11065         where we tried to use transport->connection that was NULL,
11066         happened when transport was disconnected early on due to OOM
11067
11068         * bus/*.c: adapt to handle OOM for watches/timeouts
11069
11070         * dbus/dbus-transport-unix.c: port to handle OOM during
11071         watch handling
11072
11073         * dbus/dbus-auth.c (_dbus_auth_get_unused_bytes): return a
11074         reference to unused bytes instead of a copy
11075
11076         * dbus/dbus-server.c (dbus_server_handle_watch): return FALSE for
11077         out of memory
11078
11079         * dbus/dbus-connection.c (dbus_connection_handle_watch): return
11080         FALSE on OOM
11081
11082         * dbus/dbus-timeout.c (dbus_timeout_handle): return FALSE for out
11083         of memory
11084
11085 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
11086
11087         * doc/dbus-specification.sgml:
11088         Document reply message for ActivateService.
11089
11090 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
11091
11092         * bus/activation.c: (bus_pending_activation_entry_free),
11093         (bus_pending_activation_free), (bus_activation_new),
11094         (bus_activation_unref), (bus_activation_service_created),
11095         (bus_activation_activate_service):
11096         * bus/activation.h:
11097         * bus/bus.c: (bus_context_new):
11098         * bus/desktop-file.c: (new_section):
11099         * bus/driver.c: (bus_driver_send_service_deleted),
11100         (bus_driver_handle_activate_service):
11101         * bus/services.c: (bus_registry_new), (bus_registry_ensure):
11102         * bus/services.h:
11103         * dbus/dbus-connection.c:
11104         (dbus_connection_send_with_reply_and_block):
11105         * dbus/dbus-message.c: (dbus_message_append_args_valist):
11106         * dbus/dbus-protocol.h:
11107         Make activation work better. Now pending activations will be queued
11108         and the daemon won't try to activate services that are already registered.
11109
11110 2003-03-16  Havoc Pennington  <hp@pobox.com>
11111
11112         * dbus/dbus-bus.c (ensure_bus_data): handle failure to set
11113         connection data
11114
11115         * dbus/dbus-memory.c (_dbus_initialize_malloc_debug): support
11116         DBUS_MALLOC_BACKTRACES to print trace when failing an alloc
11117
11118 2003-03-16  Havoc Pennington  <hp@pobox.com>
11119
11120         * dbus/dbus-string.c (_dbus_string_validate_utf8): oops, unbreak
11121         this. always run the test suite before commit...
11122
11123         * bus/*: adapt to DBusConnection API changes
11124
11125         * glib/dbus-gmain.c: adapt to DBusConnection API changes,
11126         requires renaming stuff to avoid dbus_connection_dispatch name
11127         conflict.
11128
11129         * dbus/dbus-transport.c (_dbus_transport_queue_messages): new
11130         function
11131
11132         * dbus/dbus-message.c (_dbus_message_loader_queue_messages):
11133         separate from _dbus_message_loader_return_buffer()
11134
11135         * dbus/dbus-connection.c (dbus_connection_get_n_messages): remove
11136         this, because it's now always broken to use; the number of
11137         messages in queue vs. the number still buffered by the message
11138         loader is undefined/meaningless. Should use
11139         dbus_connection_get_dispatch_state().
11140         (dbus_connection_dispatch): rename from
11141         dbus_connection_dispatch_message
11142
11143 2003-03-16  Havoc Pennington  <hp@pobox.com>
11144
11145         * dbus/dbus-string.c (_dbus_string_validate_utf8): copy in a real
11146         implementation
11147
11148 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
11149
11150         * dbus/dbus-connection.c:
11151         (dbus_connection_send_with_reply_and_block):
11152         Decrease connection->n_incoming when removing an entry
11153         from the list.
11154         * dbus/dbus-dict.c: (dbus_dict_entry_free),
11155         (dbus_dict_set_boolean_array), (dbus_dict_set_int32_array),
11156         (dbus_dict_set_uint32_array), (dbus_dict_set_double_array),
11157         (dbus_dict_set_byte_array), (dbus_dict_set_string_array),
11158         (dbus_dict_get_boolean_array), (dbus_dict_get_double_array),
11159         (dbus_dict_get_byte_array):
11160         Handle NULL arrays and strings. Also add support for byte arrays.
11161
11162         * dbus/dbus-marshal.c: (_dbus_marshal_byte_array),
11163         (_dbus_marshal_dict), (_dbus_demarshal_byte_array),
11164         (_dbus_demarshal_int32_array), (_dbus_demarshal_uint32_array),
11165         (_dbus_demarshal_double_array), (_dbus_demarshal_string_array),
11166         (_dbus_demarshal_dict), (demarshal_and_validate_len),
11167         (_dbus_marshal_validate_arg), (_dbus_marshal_test):
11168         * dbus/dbus-marshal.h:
11169         Add support for marshalling and demarshalling empty arrays and strings.
11170
11171         * dbus/dbus-message.c: (dbus_message_append_args_valist),
11172         (dbus_message_append_string_array),
11173         (dbus_message_iter_get_boolean),
11174         (dbus_message_iter_get_boolean_array),
11175         (dbus_message_iter_get_int32_array),
11176         (dbus_message_iter_get_uint32_array),
11177         (dbus_message_iter_get_double_array),
11178         (dbus_message_iter_get_byte_array),
11179         (dbus_message_iter_get_string_array), (dbus_message_iter_get_dict),
11180         (check_message_handling):
11181         Add support for getting empty arrays and dicts.
11182
11183         * dbus/dbus-string.c: (_dbus_string_validate_utf8):
11184         Don't do any validation at all for now, that's better than just checking
11185         for ASCII.
11186
11187         * test/data/valid-messages/emptiness.message:
11188         New test message with lots of empty arrays.
11189
11190 2003-03-16  Havoc Pennington  <hp@pobox.com>
11191
11192         * dbus/dbus-connection.c
11193         (_dbus_connection_queue_received_message_link): new function that
11194         can't fail due to OOM
11195
11196         * dbus/dbus-message.c (_dbus_message_loader_pop_message_link):
11197         new function pops a message together with a list link
11198         containing it.
11199
11200         * dbus/dbus-transport-unix.c (queue_messages): use new link-based
11201         message queuing functions to avoid needing to alloc memory
11202
11203 2003-03-16  Havoc Pennington  <hp@pobox.com>
11204
11205         Oops - test code was only testing failure of around 30 of the
11206         mallocs in the test path, but it turns out there are 500+
11207         mallocs. I believe this was due to misguided linking setup such
11208         that there was one copy of dbus_malloc etc. in the daemon and one
11209         in the shared lib, and only daemon mallocs were tested. In any
11210         case, the test case now tests all 500+ mallocs, and doesn't pass
11211         yet, though there are lots of fixes in this patch.
11212
11213         * dbus/dbus-connection.c (dbus_connection_dispatch_message): fix
11214         this so that it doesn't need to allocate memory, since it
11215         has no way of indicating failure due to OOM (and would be
11216         annoying if it did).
11217
11218         * dbus/dbus-list.c (_dbus_list_pop_first_link): new function
11219
11220         * bus/Makefile.am: rearrange to create two self-contained
11221         libraries, to avoid having libraries with overlapping symbols.
11222         that was resulting in weirdness, e.g. I'm pretty sure there
11223         were two copies of global static variables.
11224
11225         * dbus/dbus-internals.c: move the malloc debug stuff to
11226         dbus-memory.c
11227
11228         * dbus/dbus-list.c (free_link): free list mempool if it becomes
11229         empty.
11230
11231         * dbus/dbus-memory.c (_dbus_disable_mem_pools): new function
11232
11233         * dbus/dbus-address.c (dbus_parse_address): free list nodes
11234         on failure.
11235
11236         * bus/dispatch.c (bus_dispatch_add_connection): free
11237         message_handler_slot when no longer using it, so
11238         memory leak checkers are happy for the test suite.
11239
11240         * dbus/dbus-server-debug-pipe.c (debug_finalize): free server name
11241
11242         * bus/bus.c (new_connection_callback): disconnect in here if
11243         bus_connections_setup_connection fails.
11244
11245         * bus/connection.c (bus_connections_unref): fix to free the
11246         connections
11247         (bus_connections_setup_connection): if this fails, don't
11248         disconnect the connection, just be sure there are no side
11249         effects.
11250
11251         * dbus/dbus-string.c (undo_alignment): unbreak this
11252
11253         * dbus/dbus-auth.c (_dbus_auth_unref): free some stuff we were
11254         leaking
11255         (_dbus_auth_new): fix the order in which we free strings
11256         on OOM failure
11257
11258         * bus/connection.c (bus_connection_disconnected): fix to
11259         not send ServiceDeleted multiple times in case of memory
11260         allocation failure
11261
11262         * dbus/dbus-bus.c (dbus_bus_get_base_service): new function to
11263         get the base service name
11264         (dbus_bus_register_client): don't return base service name,
11265         instead store it on the DBusConnection and have an accessor
11266         function for it.
11267         (dbus_bus_register_client): rename dbus_bus_register()
11268
11269         * bus/dispatch.c (check_hello_message): verify that other
11270         connections on the bus also got the correct results, not
11271         just the one sending hello
11272
11273 2003-03-15  Havoc Pennington  <hp@pobox.com>
11274
11275         Make it pass the Hello handling test including all OOM codepaths.
11276         Now to do other messages...
11277
11278         * bus/services.c (bus_service_remove_owner): fix crash when
11279         removing owner from an empty list of owners
11280         (bus_registry_ensure): don't leave service in the list of
11281         a connection's owned services if we fail to put the service
11282         in the hash table.
11283
11284         * bus/connection.c (bus_connection_preallocate_oom_error): set
11285         error flag on the OOM error.
11286
11287         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
11288         handle _dbus_transport_set_connection failure
11289
11290         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd): modify
11291         to create watches up front and simply enable/disable them as
11292         needed.
11293         (unix_connection_set): this can now fail on OOM
11294
11295         * dbus/dbus-timeout.c, dbus/dbus-watch.c: add concept
11296         of enabling/disabling a watch or timeout.
11297
11298         * bus/loop.c (bus_loop_iterate): don't touch disabled
11299         watches/timeouts
11300
11301         * glib/dbus-gmain.c: adapt to enable/disable watches and timeouts
11302
11303 2003-03-15  Havoc Pennington  <hp@pobox.com>
11304
11305         * bus/dispatch.c (bus_dispatch_test): OK, now finally actually
11306         write useful test code, after all that futzing around ;-)
11307
11308         Test does not yet pass because we can't handle OOM in
11309         _dbus_transport_messages_pending (basically,
11310         dbus_connection_preallocate_send() does not prealloc the write
11311         watch). To fix this, I think we need to add new stuff to
11312         set_watch_functions, namely a SetEnabled function so we can alloc
11313         the watch earlier, then enable it later.
11314
11315         * dbus/Makefile.am (libdbus_convenience_la_SOURCES): move
11316         dbus-memory.c to the convenience lib
11317
11318         * bus/test.c: rename some static functions to keep them clearly
11319         distinct from stuff in connection.c. Handle client disconnection.
11320
11321 2003-03-14  Havoc Pennington  <hp@pobox.com>
11322
11323         * bus/dispatch.c (bus_dispatch_test): do test using debug-pipe
11324         transport, tests more of the real codepath. Set up clients
11325         with bus_setup_debug_client.
11326
11327         * bus/test.c (bus_setup_debug_client): function to set up debug
11328         "clients" on the main loop
11329
11330         * dbus/dbus-transport.c (_dbus_transport_open): add debug-pipe
11331         support
11332
11333         * dbus/dbus-server.c (dbus_server_listen): add debug-pipe
11334         server type
11335
11336         * dbus/dbus-server-debug.c: support a debug server based on pipes
11337
11338         * dbus/dbus-sysdeps.c (_dbus_full_duplex_pipe): new function
11339         (_dbus_close): new function
11340
11341         * configure.in: check for socketpair
11342
11343 2003-03-14  Havoc Pennington  <hp@redhat.com>
11344
11345         * dbus/dbus-memory.c: add a "detect buffer overwrites on free"
11346         cheesy hack
11347
11348         * dbus/dbus-transport-debug.c: rework this a good bit to be
11349         less complicated. hopefully still works.
11350
11351         * dbus/dbus-server-debug.c (handle_new_client): remove timeout
11352         manually
11353
11354         * glib/dbus-gmain.c (timeout_handler): don't remove timeout
11355         after running it
11356
11357         * dbus/dbus-message.c (dbus_message_copy): rename from
11358         dbus_message_new_from_message, fix it up to copy
11359         all the message fields, add test case
11360
11361         * bus/dispatch.c (bus_dispatch_test): add some more test code,
11362         not quite passing yet
11363
11364 2003-03-14  Havoc Pennington  <hp@pobox.com>
11365
11366         * bus/loop.c (bus_loop_iterate): add this so we can "run loop
11367         until no work remains" in test code. (the large diff here
11368         is just code movement, no actual changes)
11369
11370         * dbus/dbus-server-debug.c (DEFAULT_INTERVAL): change interval to
11371         1, no point waiting around for test code.
11372         (_dbus_server_debug_accept_transport): unref the timeout
11373         after adding it (right?)
11374
11375         * dbus/dbus-transport-debug.c (DEFAULT_INTERVAL): ditto
11376
11377 2003-03-13  Havoc Pennington  <hp@redhat.com>
11378
11379         * dbus/dbus-timeout.c (_dbus_timeout_list_set_functions): handle
11380         out of memory
11381
11382         * dbus/dbus-watch.c (_dbus_watch_list_set_functions): handle out
11383         of memory
11384
11385         * dbus/dbus-connection.h: Make AddWatchFunction and
11386         AddTimeoutFunction return a bool so they can fail on out-of-memory
11387
11388         * bus/bus.c (bus_context_new): set up timeout handlers
11389
11390         * bus/connection.c (bus_connections_setup_connection): set up
11391         timeout handlers
11392
11393         * glib/dbus-gmain.c: adapt to the fact that set_functions stuff
11394         can fail
11395
11396         * bus/bus.c (bus_context_new): adapt to changes
11397
11398         * bus/connection.c: adapt to changes
11399
11400         * test/watch.c: adapt to DBusWatch changes
11401
11402         * bus/dispatch.c (bus_dispatch_test): started adding this but
11403         didn't finish
11404
11405 2003-03-14  Anders Carlsson  <andersca@codefactory.se>
11406
11407         * bus/dispatch.c (send_service_nonexistent_error): Fix typo.
11408
11409 2003-03-13  Havoc Pennington  <hp@pobox.com>
11410
11411         * bus/test.c, bus/test.h, bus/Makefile.am, bus/test-main.c:
11412         set up a test framework as for the library
11413
11414 2003-03-12  Havoc Pennington  <hp@pobox.com>
11415
11416         Throughout: purge global variables, introduce BusActivation,
11417         BusConnections, BusRegistry, etc. objects instead.
11418
11419         * bus/bus.h, bus/bus.c: introduce BusContext as a global
11420         message bus object
11421
11422         * test/Makefile.am (TEST_BINARIES): disable bus-test for now,
11423         going to redo this a bit differently I think
11424
11425 2003-03-12  Havoc Pennington  <hp@redhat.com>
11426
11427         Mega-patch that gets the message bus daemon initially handling
11428         out-of-memory. Work still needed. Also lots of random
11429         moving stuff to DBusError instead of ResultCode.
11430
11431         * dbus/dbus-list.c (_dbus_list_length_is_one): new function
11432
11433         * dbus/dbus-connection.c
11434         (dbus_connection_send_with_reply_and_block): use DBusError
11435
11436         * dbus/dbus-bus.c: adapt to API changes, make it use DBusError not
11437         DBusResultCode
11438
11439         * dbus/dbus-connection.c (dbus_connection_send): drop the result
11440         code here, as the only failure possible is OOM.
11441
11442         * bus/connection.c (bus_connection_disconnect):
11443         rename bus_connection_disconnected as it's a notification only
11444
11445         * bus/driver.c (bus_driver_handle_acquire_service): don't free
11446         "name" on get_args failure, should be done by get_args;
11447         don't disconnect client for bad args, just return an error.
11448         (bus_driver_handle_service_exists): ditto
11449
11450         * bus/services.c (bus_services_list): NULL-terminate returned array
11451
11452         * bus/driver.c (bus_driver_send_service_lost)
11453         (bus_driver_send_service_acquired): send messages from driver to a
11454         specific client to the client's unique name, not to the broadcast
11455         service.
11456
11457         * dbus/dbus-message.c (decode_header_data): reject messages that
11458         contain no name field
11459         (_dbus_message_get_client_serial): rename to
11460         dbus_message_get_serial and make public
11461         (_dbus_message_set_serial): rename from set_client_serial
11462         (_dbus_message_set_reply_serial): make public
11463         (_dbus_message_get_reply_serial): make public
11464
11465         * bus/connection.c (bus_connection_foreach): allow stopping
11466         iteration by returning FALSE from foreach function.
11467
11468         * dbus/dbus-connection.c (dbus_connection_send_preallocated)
11469         (dbus_connection_free_preallocated_send)
11470         (dbus_connection_preallocate_send): new API for sending a message
11471         without possibility of malloc failure.
11472         (dbus_connection_send_message): rename to just
11473         dbus_connection_send (and same for whole function family)
11474
11475         * dbus/dbus-errors.c (dbus_error_free): make this reinit the error
11476
11477         * dbus/dbus-sysdeps.c (_dbus_exit): new function
11478
11479         * bus/activation.c: handle/return errors
11480
11481         * dbus/dbus-errors.h: add more DBUS_ERROR #define
11482
11483         * dbus/dbus-sysdeps.c (_dbus_directory_open) (_dbus_file_get_contents)
11484         (_dbus_directory_get_next_file): use DBusError instead of DBusResultCode
11485         (_dbus_result_from_errno): move to this file
11486
11487 2003-03-10  Anders Carlsson  <andersca@codefactory.se>
11488
11489         * dbus/dbus-marshal.c:
11490         (_dbus_marshal_set_string):
11491         Take a length argument so we can marshal the correct string
11492         length.
11493
11494         (_dbus_marshal_dict), (_dbus_demarshal_dict),
11495         (_dbus_marshal_get_arg_end_pos), (_dbus_marshal_validate_arg),
11496         (_dbus_marshal_test):
11497         * dbus/dbus-marshal.h:
11498         Add support for marshalling and demarshalling dicts.
11499
11500         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
11501         Add support for TYPE DICT.
11502
11503         * dbus/dbus-message.c: (set_string_field):
11504         Adjust header padding.
11505
11506         (dbus_message_append_args_valist), (dbus_message_append_dict),
11507         (dbus_message_get_args_valist), (dbus_message_iter_get_arg_type),
11508         (dbus_message_iter_get_dict), (_dbus_message_loader_return_buffer),
11509         (check_message_handling), (check_have_valid_message):
11510         * dbus/dbus-message.h:
11511         Add functions for setting and getting dicts.
11512
11513         * dbus/dbus-protocol.h:
11514         Add DBUS_TYPE_DICT.
11515
11516         * dbus/dbus.h:
11517         Add dbus-dict.h
11518
11519         * doc/dbus-specification.sgml:
11520         Add information about how dicts are marshalled.
11521
11522         * test/data/invalid-messages/dict-with-nil-value.message:
11523         * test/data/invalid-messages/too-short-dict.message:
11524         * test/data/valid-messages/dict-simple.message:
11525         * test/data/valid-messages/dict.message:
11526         Add sample messages containing dicts.
11527
11528 2003-03-08  Anders Carlsson  <andersca@codefactory.se>
11529
11530         * dbus/dbus-dict.h: Add DBUS_END_DECLS.
11531
11532 2003-03-07  Anders Carlsson  <andersca@codefactory.se>
11533
11534         * dbus/Makefile.am:
11535         * dbus/dbus-dict.c: (dbus_dict_entry_free), (dbus_dict_new),
11536         (dbus_dict_get_keys), (insert_entry), (dbus_dict_set_boolean),
11537         (dbus_dict_set_int32), (dbus_dict_set_uint32),
11538         (dbus_dict_set_double), (dbus_dict_set_string),
11539         (dbus_dict_set_boolean_array), (dbus_dict_set_int32_array),
11540         (dbus_dict_set_uint32_array), (dbus_dict_set_double_array),
11541         (dbus_dict_set_string_array), (_dbus_dict_test):
11542         * dbus/dbus-dict.h:
11543         Fix according to comments from Havoc.
11544
11545 2003-03-06  Michael Meeks  <michael@server.home>
11546
11547         * configure.in: if we don't have kde-config, disable have_qt.
11548
11549 2003-03-07  Anders Carlsson  <andersca@codefactory.se>
11550
11551         * dbus/Makefile.am:
11552         Add dbus-dict.[ch]
11553
11554         * dbus/dbus-dict.c: (dbus_dict_entry_free), (dbus_dict_new),
11555         (dbus_dict_ref), (dbus_dict_unref), (dbus_dict_contains),
11556         (dbus_dict_remove), (dbus_dict_get_value_type),
11557         (dbus_dict_get_keys), (dbus_dict_put_boolean),
11558         (dbus_dict_put_int32), (dbus_dict_put_uint32),
11559         (dbus_dict_put_double), (dbus_dict_put_string),
11560         (dbus_dict_put_boolean_array), (dbus_dict_put_int32_array),
11561         (dbus_dict_put_uint32_array), (dbus_dict_put_double_array),
11562         (dbus_dict_put_string_array), (dbus_dict_get_boolean),
11563         (dbus_dict_get_int32), (dbus_dict_get_uint32),
11564         (dbus_dict_get_double), (dbus_dict_get_string),
11565         (dbus_dict_get_boolean_array), (dbus_dict_get_int32_array),
11566         (dbus_dict_get_uint32_array), (dbus_dict_get_double_array),
11567         (dbus_dict_get_string_array), (_dbus_dict_test):
11568         * dbus/dbus-dict.h:
11569         Add DBusDict implementation
11570
11571         * dbus/dbus-test.c: (dbus_internal_do_not_use_run_tests):
11572         * dbus/dbus-test.h:
11573         Add _dbus_dict_test
11574
11575 2003-03-04  Havoc Pennington  <hp@pobox.com>
11576
11577         * test/data/auth/*: adapt to changes
11578
11579         * dbus/dbus-auth-script.c (_dbus_auth_script_run): add
11580         USERID_BASE64 and change USERNAME_BASE64 to put in username not
11581         userid
11582
11583         * dbus/dbus-keyring.c (_dbus_keyring_validate_context): prevent
11584         more stuff from being in a context name, to make the protocol
11585         simpler to deal with
11586
11587         * dbus/dbus-errors.c (dbus_error_has_name): new function
11588         (dbus_error_is_set): new function
11589
11590         * dbus/dbus-auth.c: replace DBUS_STUPID_TEST_MECH auth
11591         with DBUS_COOKIE_SHA1, implement DBUS_COOKIE_SHA1
11592
11593         * dbus/dbus-connection.c (dbus_connection_flush): also read
11594         messages during a flush operation
11595
11596         * dbus/Makefile.am: remove dbus-md5 since it isn't currently used.
11597
11598 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
11599
11600         * configure.in: Check for gethostbyname on Solaris.
11601
11602         * dbus/dbus-transport.c: (_dbus_transport_open):
11603         Remove duplicate "tcp" entry.
11604
11605         * doc/dbus-specification.sgml:
11606         Clarify some things.
11607
11608 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
11609
11610         * dbus/dbus-auth.c: (send_rejected), (process_test_subdir):
11611         * dbus/dbus-keyring.c: (_dbus_keyring_new_homedir),
11612         (_dbus_keyring_test):
11613         * dbus/dbus-md5.c: (_dbus_md5_compute):
11614         * dbus/dbus-sha.c: (_dbus_sha_compute):
11615         Plug memory leaks.
11616
11617 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
11618
11619         * README: Add some things.
11620
11621 2003-03-04  Anders Carlsson  <andersca@codefactory.se>
11622
11623         * dbus/dbus-message.c (dbus_message_append_args_valist): Add a break;
11624         after case DBUS_TYPE_BOOELAN.
11625
11626 2003-03-02  Havoc Pennington  <hp@pobox.com>
11627
11628         * test/break-loader.c (randomly_set_extreme_ints): add test that
11629         sets really huge and small integers
11630
11631         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): add check
11632         that length of boolean array fits in the string, and that
11633         string has room for boolean value in single-bool case.
11634
11635         * dbus/dbus-message-builder.c (_dbus_message_data_load): add
11636         optional value to "ALIGN" command which is what to fill the
11637         alignment with.
11638
11639         * test/data/valid-messages/no-padding.message: add regression
11640         test for the message padding problem
11641
11642 2003-03-02  Havoc Pennington  <hp@pobox.com>
11643
11644         * dbus/dbus-message.c (decode_header_data): fix to always init
11645         message_padding, from Benjamin Dauvergne
11646
11647 2003-03-02  Havoc Pennington  <hp@pobox.com>
11648
11649         * configure.in: 0.5
11650
11651         * NEWS: Update.
11652
11653 2003-03-01  Joe Shaw  <joe@assbarn.com>
11654
11655         * configure.in: Check for "struct cmsgcred" and try to access its
11656         members for BSD-like unices.
11657
11658         * dbus/dbus-sysdeps.c (read_credentials_byte): Fold this back into
11659         _dbus_read_credentials_unix_socket().
11660         (_dbus_read_credentials_unix_socket): Use recvmsg() instead of
11661         read() for reading the credential byte off the unix socket.  Use
11662         struct cmsgcred on systems that support it.
11663
11664 2003-02-27  Alexander Larsson  <alexl@redhat.com>
11665
11666         * glib/Makefile.am:
11667         * configure.in:
11668         Make gthreads-2.0 dependency optional. Don't build thread test if
11669         its not found.
11670
11671 2003-02-27  Havoc Pennington  <hp@pobox.com>
11672
11673         * dbus/dbus-connection.c
11674         (dbus_connection_send_message_with_reply_and_block): fix doh!
11675         doh! doh! bug that resulted in never removing a reply from the
11676         queue, no wonder we called get_reply_serial so much ;-)
11677
11678         * dbus/dbus-message.c (struct DBusMessage): cache reply serial
11679         and client serial instead of demarshaling them every time
11680
11681 2003-02-27  Havoc Pennington  <hp@pobox.com>
11682
11683         * dbus/dbus-marshal.c (_dbus_demarshal_int32): rewrite to be much
11684         more inlined, using dbus-string-private.h, speeds things up
11685         substantially
11686
11687         * dbus/dbus-string.c (_dbus_string_free): apply align offset
11688         when freeing the string
11689         (_dbus_string_steal_data): fix for align offset
11690         (undo_alignment): new function
11691
11692 2003-02-26  Havoc Pennington  <hp@redhat.com>
11693
11694         All kinds of audit fixes from Owen, plus initial attempt to
11695         handle unaligned memory returned from malloc.
11696
11697         * dbus/dbus-string.c (_dbus_string_init): clamp max length to
11698         leave room for align_offset and nul byte
11699         (fixup_alignment): function to track an align_offset and
11700         ensure real->str is aligned
11701         (DBUS_GENERIC_STRING_PREAMBLE): len must be less than allocated,
11702         to allow a nul byte plus align offset
11703         (_dbus_string_lock): fix overflow issue
11704         (_dbus_string_init_const_len): add assertions on sanity of len,
11705         assign allocated to be ALLOCATION_PADDING larger than len
11706         (set_length): fixup the overflow handling
11707         (_dbus_string_get_data_len): fix overflow in assertion
11708         (open_gap): detect overflow in size of gap to be opened
11709         (_dbus_string_lengthen): add overflow check
11710         (_dbus_string_align_length): fix overflow with _DBUS_ALIGN_VALUE
11711         (_dbus_string_append): add overflow check
11712         (_dbus_string_append_unichar): overflow
11713         (_dbus_string_delete): fix overflow in assertion
11714         (_dbus_string_copy_len): overflow in assertion
11715         (_dbus_string_replace_len): overflows in assertions
11716         (_dbus_string_find): change to implement in terms of
11717         _dbus_string_find_to
11718         (_dbus_string_find_to): assorted fixage
11719         (_dbus_string_equal_c_str): assert c_str != NULL,
11720         fix logic so the function works
11721         (_dbus_string_ends_with_c_str): fix overflow thingy
11722         (_dbus_string_base64_encode): overflow fix
11723         (_dbus_string_validate_ascii): overflow
11724         (_dbus_string_validate_nul): overflow
11725
11726 2003-02-26  Havoc Pennington  <hp@redhat.com>
11727
11728         * dbus/dbus-marshal.c (_dbus_marshal_test): fix to work with DISABLE_ASSERTS
11729
11730 2003-02-26  Alexander Larsson  <alexl@redhat.com>
11731
11732         * configure.in:
11733         Set DBUS_GLIB_THREADS_LIBS for apps using gthread-2.0
11734
11735         * dbus/dbus-connection.c:
11736         * dbus/dbus-connection.h:
11737         Fix _dbus_connection_acquire_io_path and _dbus_connection_acquire_dispatch.
11738         Add dbus_connection_set_wakeup_main_function and use it when queueing
11739         incoming and outgoing messages.
11740
11741
11742         * dbus/dbus-dataslot.c:
11743         Threadsafe usage of DBusDataSlotAllocator
11744
11745         * dbus/dbus-message.c: (dbus_message_get_args_iter):
11746         dbus_new can fail.
11747
11748         * dbus/dbus-server-unix.c:
11749         Add todo comment
11750
11751         * glib/dbus-gmain.c:
11752         Implement the new wakeup functions for glib.
11753
11754         * glib/Makefile.am:
11755         * glib/test-thread-client.c:
11756         * glib/test-thread-server.c:
11757         * glib/test-thread.h:
11758         Initial cut at some thread test code. Not really done yet.
11759
11760 2003-02-26  Havoc Pennington  <hp@pobox.com>
11761
11762         * dbus/dbus-connection.c
11763         (dbus_connection_send_message_with_reply_and_block): fix crash
11764         where we ref'd the outgoing message instead of the returned reply
11765
11766         * dbus/dbus-transport-unix.c (do_authentication): check read watch
11767         at the end of this function, so if we didn't need to read for
11768         authentication, we reinstall it for receiving messages
11769
11770         * dbus/dbus-message.c (dbus_message_new_reply): allow replies to
11771         a NULL sender for peer-to-peer case
11772
11773         * dbus/dbus-transport-unix.c (check_read_watch): handle
11774         !authenticated case correctly
11775
11776         * glib/dbus-gmain.c: add support for DBusServer
11777
11778         * dbus/dbus-server.c: add data slot support
11779
11780         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): check
11781         return values and handle errors
11782
11783         * dbus/dbus-dataslot.c: factor out the data slot stuff from
11784         DBusConnection
11785
11786         * Doxyfile.in (INPUT): add glib subdir
11787
11788         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): rename
11789         setup_with_g_main instead of hookup_with_g_main; write docs
11790
11791 2003-02-24  Anders Carlsson  <andersca@codefactory.se>
11792
11793         * dbus/dbus-marshal.c: (_dbus_marshal_validate_arg):
11794         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
11795         * dbus/dbus-message.c: (dbus_message_append_boolean),
11796         (dbus_message_append_boolean_array),
11797         (dbus_message_get_args_valist), (_dbus_message_test):
11798         * dbus/dbus-message.h:
11799         * doc/dbus-specification.sgml:
11800         Various fixes as pointed out by Havoc.
11801
11802         * test/data/invalid-messages/bad-boolean-array.message:
11803         * test/data/invalid-messages/bad-boolean.message:
11804         Add invalid boolean value test cases.
11805
11806 2003-02-24  Anders Carlsson  <andersca@codefactory.se>
11807
11808         * dbus/dbus-internals.c: (_dbus_type_to_string):
11809         * dbus/dbus-marshal.c: (_dbus_marshal_get_arg_end_pos),
11810         (_dbus_marshal_validate_arg):
11811         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
11812         * dbus/dbus-message.c: (dbus_message_append_args_valist),
11813         (dbus_message_append_boolean), (dbus_message_append_boolean_array),
11814         (dbus_message_get_args_valist), (dbus_message_iter_get_boolean),
11815         (dbus_message_iter_get_int32), (dbus_message_iter_get_uint32),
11816         (dbus_message_iter_get_double),
11817         (dbus_message_iter_get_boolean_array), (message_iter_test):
11818         * dbus/dbus-message.h:
11819         * dbus/dbus-protocol.h:
11820         * doc/dbus-specification.sgml:
11821         * test/data/valid-messages/lots-of-arguments.message:
11822         Add support for boolean and boolean array types.
11823
11824 2003-02-23  Havoc Pennington  <hp@pobox.com>
11825
11826         * dbus/dbus-keyring.c: finish most of this implementation and
11827         simple unit test
11828
11829         * dbus/dbus-errors.c (dbus_set_error_const, dbus_set_error): make
11830         these barf if the error isn't cleared to NULL
11831
11832         * dbus/dbus-sysdeps.c (_dbus_delete_file): set error on failure
11833         (_dbus_create_directory): new function
11834
11835         * dbus/dbus-errors.c (dbus_set_error): fix warning
11836
11837         * dbus/dbus-string.c (_dbus_string_hex_encode): new function
11838         (_dbus_string_hex_decode): new function
11839         (test_hex_roundtrip): test code
11840
11841         * dbus/dbus-sha.c (_dbus_sha_compute): use dbus_string_hex_encode
11842
11843         * dbus/dbus-md5.c (_dbus_md5_compute): use dbus_string_hex_encode
11844
11845         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): make this use
11846         the save-to-temp/rename trick to atomically write the new file
11847         (_dbus_string_parse_uint): new function
11848
11849 2003-02-22  Havoc Pennington  <hp@pobox.com>
11850
11851         * test/Makefile.am (dist-hook): fix dist for test/data/sha-1
11852
11853 2003-02-22  Havoc Pennington  <hp@pobox.com>
11854
11855         * dbus/dbus-message.c (dbus_message_iter_get_string_array):
11856         (dbus_message_iter_get_byte_array): Fix up doxygen warnings
11857
11858         * dbus/dbus-sha.c: add implementation of SHA-1 algorithm
11859
11860         * dbus/test/data/sha-1: add US government test suite for SHA-1
11861
11862 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
11863
11864         * dbus/dbus-marshal.c: (_dbus_demarshal_string_array):
11865         Make string arrays NULL-terminated.
11866
11867         * dbus/dbus-memory.c: (dbus_free_string_array):
11868         * dbus/dbus-memory.h:
11869         New function for freeing NULL-terminated string arrays.
11870
11871         * dbus/dbus-message-builder.c: (append_quoted_string),
11872         (_dbus_message_data_load):
11873         Add support for array types.
11874
11875         * dbus/dbus-message.c: (check_message_handling):
11876         Add more types as test cases.
11877
11878         * dbus/dbus-sysdeps.c: (_dbus_string_parse_int),
11879         (_dbus_string_parse_double):
11880         Add the start offset to the end offset.
11881
11882         * test/data/valid-messages/lots-of-arguments.message:
11883         New test message with lots of arguments.
11884
11885 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
11886
11887         * dbus/dbus-message.c: (dbus_message_append_nil),
11888         (dbus_message_append_int32), (dbus_message_append_uint32),
11889         (dbus_message_append_double), (dbus_message_append_string),
11890         (dbus_message_append_int32_array),
11891         (dbus_message_append_uint32_array),
11892         (dbus_message_append_double_array),
11893         (dbus_message_append_byte_array),
11894         (dbus_message_append_string_array):
11895         Fix all out-of-memory handling in these functions.
11896
11897 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
11898
11899         * dbus/dbus-message.c: (dbus_message_append_nil):
11900         Fix a silly.
11901
11902 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
11903
11904         * dbus/dbus-message.c: (dbus_message_append_args_valist),
11905         (dbus_message_append_nil), (dbus_message_append_int32_array),
11906         (dbus_message_append_uint32_array),
11907         (dbus_message_append_double_array),
11908         (dbus_message_append_byte_array),
11909         (dbus_message_append_string_array), (dbus_message_get_args_valist),
11910         (dbus_message_iter_get_int32_array),
11911         (dbus_message_iter_get_uint32_array),
11912         (dbus_message_iter_get_double_array),
11913         (dbus_message_iter_get_byte_array),
11914         (dbus_message_iter_get_string_array):
11915
11916         * dbus/dbus-message.h:
11917         Add functions for appending and getting arrays.
11918
11919 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
11920
11921         * dbus/dbus-mempool.c (_dbus_mem_pool_new): Make the
11922         element size at least 8 bytes, fixes mempool tests on
11923         64-bit machines.
11924
11925 2003-02-20  Alexander Larsson  <alexl@redhat.com>
11926
11927         * dbus/dbus-transport-unix.c (unix_do_iteration):
11928         Unlock the connection mutex during a blocking select call.
11929         Add todo about how we need a way to wake up the select.
11930
11931         * dbus/dbus-connection-internal.h:
11932         * dbus/dbus-connection.c:
11933         Add _dbus_connection_lock and _dbus_connection_unlock.
11934
11935 2003-02-19  Havoc Pennington  <hp@pobox.com>
11936
11937         * Doxyfile.in (PREDEFINED): put DOXYGEN_SHOULD_SKIP_THIS in
11938         Doxyfile.in, not Doxyfile
11939
11940         * dbus/dbus-keyring.c: do some hacking on this
11941
11942         * dbus/dbus-sysdeps.c (_dbus_delete_file): new
11943
11944         * dbus/dbus-errors.c (dbus_set_error_const): do not call
11945         dbus_error_init
11946         (dbus_set_error): remove dbus_error_init, check for message ==
11947         NULL *before* we sprintf into it, and add @todo about including
11948         system headers in this file
11949
11950         * dbus/dbus-sysdeps.c (_dbus_create_file_exclusively): new
11951
11952         * dbus/dbus-errors.h (DBUS_ERROR_FAILED): add
11953
11954         * dbus/dbus-sysdeps.c (get_user_info): break this function out to
11955         get various bits of user information based on either username
11956         or user ID
11957         (_dbus_homedir_from_username): new function
11958
11959 2003-02-19  Anders Carlsson  <andersca@codefactory.se>
11960
11961         * configure.in:
11962         Add check for nonposix getpwnam_r
11963
11964         * dbus/dbus-mempool.c: (_dbus_mem_pool_new):
11965         Align the pool element size to a sizeof (void *) boundary.
11966
11967         * dbus/dbus-sysdeps.c: (_dbus_setenv), (_dbus_connect_unix_socket),
11968         (_dbus_listen_unix_socket), (_dbus_credentials_from_username):
11969         General Solaris fixes.
11970
11971         * test/data/valid-messages/simplest-manual.message:
11972         Explicitly state that we want little-endian packing.
11973
11974 2003-02-19  Mikael Hallendal  <micke@codefactory.se>
11975
11976         * dbus/dbus-server.c (dbus_server_listen): Support tcp: addresses.
11977
11978         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_tcp_socket):
11979         Added to create a transport connecting using a tcp/ip socket.
11980
11981         * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): Added to connect
11982         to a tcp socket at given host and port.
11983         (_dbus_listen_tcp_socket): added to listen on tcp socket for given
11984         hostname and port.
11985
11986         * dbus/dbus-server.c (dbus_server_listen): Support tcp: addresses.
11987
11988         * dbus/dbus-server-unix.c (_dbus_server_new_for_tcp_socket):
11989         Added to create a server listening on a TCP/IP socket.
11990
11991 2003-02-19  Havoc Pennington  <hp@pobox.com>
11992
11993         Throughout: mop up all the Doxygen warnings and undocumented
11994         stuff.
11995
11996         * dbus/dbus-sysdeps.c (do_exec): do not use execvp, we don't want
11997         to search any paths.
11998
11999         * dbus/dbus-threads.c: move global mutex initializers to
12000         dbus-internals.h, multiple prototypes was confusing doxygen
12001         besides being kind of ugly
12002
12003         * Doxyfile (PREDEFINED): have Doxygen define
12004         DOXYGEN_SHOULD_SKIP_THIS so we can exclude things from
12005         docs with #ifndef DOXYGEN_SHOULD_SKIP_THIS
12006         (do not abuse the feature! it's for stuff like the autogenerated
12007         macros in dbus-md5.c, not just for things you don't feel like
12008         documenting...)
12009
12010 2003-02-18  Havoc Pennington  <hp@pobox.com>
12011
12012         * dbus/dbus-string.c (_dbus_string_zero): new function
12013
12014         * dbus/dbus-md5.c: include MD5 implementation by L. Peter Deutsch,
12015         wrap it in some dbus-friendly API
12016
12017         * dbus/dbus-types.h: add 16-bit types
12018
12019 2003-02-18  Joe Shaw  <joe@assbarn.com>
12020
12021         * dbus/dbus-auth.c (handle_server_data_stupid_test_mech): Just get
12022         credentials from our currently running process.
12023         (get_word): Fix a buglet where we were copying the entire length
12024         instead of relative to our position.
12025
12026         * dbus/dbus-hash.c (_dbus_hash_test): Don't try to allocate the
12027         keys on the stack... it's 640k of data.
12028
12029         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): Always
12030         read the credentials byte off the socket, even if we don't have
12031         SO_PEERCRED.
12032         (_dbus_poll): Implement poll() using select() for systems which
12033         don't have it.
12034
12035         * glib/test-dbus-glib.c (main): Print out an error if no
12036         parameters are given.
12037
12038         * test/data/auth/fallback.auth-script: Added.  Tests that a client
12039         can fallback to a secondary auth mechanism if the first fails.
12040
12041 2003-02-18  Havoc Pennington  <hp@pobox.com>
12042
12043         * AUTHORS: add Alex
12044
12045 2003-02-17  Havoc Pennington  <hp@pobox.com>
12046
12047         * doc/dbus-specification.sgml: lots of cosmetic
12048         cleanups/rearrangement, add assorted FIXME, change DBUS_ADDRESS
12049         env variable to DBUS_BUS_ADDRESS, s/client/application/,
12050         s/server/bus/ (except in authentication section). Add a section
12051         "Message Bus Message Routing"
12052
12053 2003-02-17  Anders Carlsson  <andersca@codefactory.se.>
12054
12055         Release 0.4
12056
12057         * NEWS: Update
12058
12059 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
12060
12061         * doc/dbus-specification.sgml:
12062         Specification updates.
12063
12064 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
12065
12066         * bus/activation.c: (bus_activation_init), (child_setup),
12067         (bus_activation_activate_service):
12068         * bus/activation.h:
12069         * bus/main.c: (main):
12070         Set DBUS_ADDRESS environment variable.
12071
12072         * dbus/dbus-errors.c: (dbus_set_error):
12073         Don't use va_copy since that's a C99 feature.
12074
12075         * dbus/dbus-sysdeps.c: (_dbus_setenv), (do_exec),
12076         (_dbus_spawn_async):
12077         * dbus/dbus-sysdeps.h:
12078         Add child_setup_func to _dbus_spawn_async.
12079
12080         * doc/dbus-specification.sgml:
12081         Update specification.
12082
12083         * test/spawn-test.c: (setup_func), (main):
12084         Fix test.
12085
12086 2003-02-17  Alexander Larsson  <alexl@redhat.com>
12087
12088         * dbus/dbus-connection.c (_dbus_connection_handler_destroyed_locked):
12089         Added todo.
12090
12091 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
12092
12093         * doc/.cvsignore:
12094         * doc/Makefile.am:
12095         * doc/dbus-test-plan.sgml:
12096         Add test plan document.
12097
12098         * test/Makefile.am:
12099         Fix distcheck.
12100
12101 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
12102
12103         * dbus/dbus-message.c: (decode_header_data),
12104         (_dbus_message_loader_return_buffer):
12105         Set the header padding amount when loading a message.
12106
12107 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
12108
12109         * bus/dispatch.c: (send_one_message):
12110         Only send broadcast messages to registered connections.
12111
12112         * dbus/dbus-message.c: (dbus_message_name_is):
12113         * dbus/dbus-message.h:
12114         New convenience function.
12115
12116         * dbus/dbus-transport-debug.c: (do_reading):
12117         Only dispatch one message per run.
12118
12119         * test/Makefile.am:
12120         * test/bus-test.c: (new_connection_callback), (die),
12121         (test_hello_client1_handler), (test_hello_client2_handler),
12122         (test_hello_replies), (main):
12123
12124         * test/bus-test-loop.[ch]:
12125         Add these.
12126
12127 2003-02-16  Havoc Pennington  <hp@pobox.com>
12128
12129         * dbus/dbus-connection.c (dbus_connection_dispatch_message): fix
12130         backward conditional
12131
12132 2003-02-16  Alexander Larsson  <alexl@redhat.com>
12133
12134         * dbus/dbus-connection.c:
12135         Implement sent_message_with_reply. (with_reply_and block is still
12136         busted).
12137         Made dispatch_message not lose message if OOM.
12138
12139         * dbus/dbus-errors.h:
12140         Add NoReply error (for reply timeouts).
12141
12142 2003-02-16  Alexander Larsson  <alexl@redhat.com>
12143
12144         * dbus/dbus-hash.c (_dbus_hash_table_unref):
12145         Actually free keys and values when destroying hashtable.
12146
12147 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
12148
12149         * dbus/dbus-auth.c: (client_try_next_mechanism):
12150         Plug a leak.
12151
12152         * dbus/dbus-threads.c: (dbus_condvar_wait_timeout):
12153         Return TRUE if there's no thread implementation around.
12154
12155         * glib/dbus-gmain.c: (free_source),
12156         (dbus_connection_hookup_with_g_main):
12157         Make sure to remove the GSource when the connection is finalized.
12158
12159 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
12160
12161         * bus/dispatch.c: (bus_dispatch_message_handler):
12162         * dbus/dbus-errors.h:
12163         Return an error if someone tries to send a message to a service
12164         that doesn't exist.
12165
12166 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
12167
12168         * bus/activation.c: (load_directory), (bus_activation_init),
12169         (bus_activation_activate_service):
12170         * bus/activation.h:
12171         * bus/driver.c:
12172         (bus_driver_handle_activate_service), (bus_driver_handle_message):
12173         More work on the activation handling.
12174
12175         * dbus/dbus-errors.h:
12176         Add some error messages
12177
12178         * dbus/dbus-message.c: (dbus_message_new_error_reply):
12179         * dbus/dbus-message.h:
12180         New function that creates an error message.
12181
12182         * dbus/dbus-protocol.h:
12183         Add ACTIVATE_SERVER message.
12184
12185         * dbus/dbus-server-unix.c: (unix_handle_watch),
12186         (_dbus_server_new_for_domain_socket):
12187         Call _dbus_fd_set_close_on_exec.
12188
12189         * dbus/dbus-sysdeps.c: (make_pipe), (do_exec),
12190         (_dbus_spawn_async), (_dbus_disable_sigpipe),
12191         (_dbus_fd_set_close_on_exec):
12192         * dbus/dbus-sysdeps.h:
12193         Add _dbus_fd_set_close_on exec function. Also add function that checks
12194         that all open fds are set to close-on-exec and warns otherwise.
12195
12196         * dbus/dbus-transport-unix.c:
12197         (_dbus_transport_new_for_domain_socket):
12198         Call _dbus_fd_set_close_on_exec.
12199
12200 2003-02-16  Havoc Pennington  <hp@pobox.com>
12201
12202         * dbus/dbus-connection.c (dbus_connection_set_change_sigpipe):
12203         allow people to avoid setting SIGPIPE to SIG_IGN
12204         (_dbus_connection_new_for_transport): disable SIGPIPE unless
12205         we've been asked not to
12206
12207 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
12208
12209         * dbus/dbus-list.c: (_dbus_list_append_link),
12210         (_dbus_list_prepend_link):
12211         * dbus/dbus-memory.c: (dbus_malloc), (dbus_malloc0),
12212         (dbus_realloc):
12213         Warning fixes.
12214
12215 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
12216
12217         * bus/Makefile.am:
12218         * bus/activation.c: (bus_activation_entry_free),
12219         (add_desktop_file_entry), (load_directory), (bus_activation_init):
12220         * bus/activation.h:
12221         * bus/main.c: (main):
12222         Add simple activation support, doesn't work yet though.
12223
12224 2003-02-15   Zack Rusin  <zack@kde.org>
12225
12226         * qt/dbus-qthread.cpp:  small casting fix
12227
12228 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
12229
12230         * dbus/dbus-errors.c: (dbus_set_error):
12231         * dbus/dbus-errors.h:
12232         Add a few errors and make dbus_set_error void.
12233
12234         * dbus/dbus-sysdeps.c:
12235         (_dbus_errno_to_string), (close_and_invalidate), (make_pipe),
12236         (write_err_and_exit), (read_ints), (do_exec), (_dbus_spawn_async):
12237         * dbus/dbus-sysdeps.h:
12238         Add _dbus_spawn_async.
12239
12240         * test/spawn-test.c: (main):
12241         Test for _dbus_spawn_async.
12242
12243 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
12244
12245         * dbus/dbus-internals.h:
12246         Fix build without tests.
12247
12248         * dbus/dbus-list.c: (alloc_link):
12249         Fix a segfault when a malloc fails.
12250
12251         * dbus/dbus-memory.c: (initialize_malloc_debug), (dbus_malloc),
12252         (dbus_malloc0), (dbus_realloc):
12253         Add support for malloc debugging.
12254
12255 2003-02-15  Alexander Larsson  <alexl@redhat.com>
12256
12257         * dbus/dbus-threads.c:
12258         * dbus/dbus-threads.h:
12259         Add condvars. Remove static mutext from API.
12260         Implement static mutexes by initializing them from threads_init.
12261
12262         * glib/dbus-gthread.c:
12263         * qt/dbus-qthread.cpp:
12264         Update with the thread api changes.
12265
12266
12267         * dbus/dbus-list.c:
12268         * dbus/dbus-list.h:
12269         Turn StaticMutex into normal mutex + init function.
12270         Export new functions _dbus_list_alloc_link, _dbus_list_free_link,
12271         _dbus_list_append_link, _dbus_list_prepend_link
12272
12273
12274         * dbus/dbus-sysdeps.c:
12275         * dbus/dbus-sysdeps.h:
12276         New type dbus_atomic_t, and new functions _dbus_atomic_inc,
12277         _dbus_atomic_dec. Only slow fallback implementation at the moment.
12278
12279         * dbus/dbus-protocol.h:
12280         Add DBUS_MESSAGE_LOCAL_DISCONNECT define
12281
12282         * dbus/dbus-message.c:
12283         Make ref/unref atomic.
12284         Fix some docs.
12285
12286         * dbus/dbus-connection-internal.h:
12287         * dbus/dbus-connection.c:
12288         * dbus/dbus-connection.h:
12289         Make threadsafe.
12290         Change _peek to _borrow,_return & _steal_borrowed.
12291         Change disconnect callback to event.
12292         Make dbus_connection_dispatch_messages reentrant.
12293
12294         * dbus/dbus-transport.c:
12295         Don't ref the connection on calls to the transport
12296         implementation.
12297
12298         * dbus/dbus-message-handler.c:
12299         Make threadsafe.
12300
12301         * glib/dbus-gmain.c:
12302         Don't use peek_message anymore
12303
12304         * test/Makefile.am:
12305         * test/debug-thread.c:
12306         * test/debug-thread.h:
12307         Simple thread implementation that asserts() on deadlocks in
12308         single-threaded code.
12309
12310         * test/bus-test.c:
12311         (main) Call debug_threads_init.
12312
12313         * test/watch.c:
12314         Use disconnect message instead of disconnect callback.
12315
12316         * bus/connection.c:
12317         * bus/connection.h:
12318         Don't call dbus_connection_set_disconnect_function. Instead export
12319         bus_connection_disconnect.
12320
12321         * bus/dispatch.c:
12322         Call bus_connection_disconnect when we get a disconnected message.
12323
12324 2003-02-15  Havoc Pennington  <hp@pobox.com>
12325
12326         * dbus/dbus-message.c (dbus_message_new): fool around with the
12327         docs
12328
12329 2003-02-14  Havoc Pennington  <hp@pobox.com>
12330
12331         * dbus/dbus-mempool.c: fail if the debug functions so indicate
12332
12333         * dbus/dbus-memory.c: fail if the debug functions indicate we
12334         should
12335
12336         * dbus/dbus-internals.c (_dbus_set_fail_alloc_counter)
12337         (_dbus_decrement_fail_alloc_counter): debug functions to
12338         simulate memory allocation failures
12339
12340 2003-02-14  Havoc Pennington  <hp@pobox.com>
12341
12342         * dbus/dbus-errors.h (struct DBusError): add a word of padding
12343         to DBusError
12344
12345 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12346
12347         * bus/driver.c: (bus_driver_handle_hello):
12348         * bus/driver.h:
12349         * bus/services.c: (bus_service_lookup):
12350         Reorder message sending so we get a more sane order.
12351
12352         * test/bus-test.c: (message_handler):
12353         Fix tyop.
12354
12355 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12356
12357         * bus/driver.c: (bus_driver_send_service_deleted),
12358         (bus_driver_send_service_created), (bus_driver_send_service_lost),
12359         (bus_driver_send_service_acquired), (bus_driver_handle_hello),
12360         (bus_driver_send_welcome_message),
12361         (bus_driver_handle_list_services),
12362         (bus_driver_handle_acquire_service),
12363         (bus_driver_handle_service_exists):
12364         * dbus/dbus-bus.c: (dbus_bus_register_client),
12365         (dbus_bus_acquire_service), (dbus_bus_service_exists):
12366         * dbus/dbus-errors.c: (dbus_result_to_string):
12367         * dbus/dbus-errors.h:
12368         * dbus/dbus-message.c: (dbus_message_append_args),
12369         (dbus_message_append_args_valist), (dbus_message_get_args),
12370         (dbus_message_get_args_valist), (dbus_message_get_args_iter),
12371         (dbus_message_iter_get_arg_type), (dbus_message_iter_get_string),
12372         (dbus_message_iter_get_byte_array),
12373         (dbus_message_iter_get_string_array), (message_iter_test),
12374         (check_message_handling), (_dbus_message_test):
12375         * dbus/dbus-message.h:
12376         * test/bus-test.c: (main):
12377         Change fields to arguments in messages, so that they won't be
12378         confused with header fields.
12379
12380         * glib/test-dbus-glib.c: (main):
12381         Remove append_fields from hello message.
12382
12383 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12384
12385         * dbus/dbus-errors.c:
12386         * dbus/dbus-message.c:
12387         * dbus/dbus-string.c:
12388         Documentation fixes.
12389
12390 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12391
12392         * glib/dbus-gmain.c: (timeout_handler), (add_timeout),
12393         (remove_timeout):
12394         Implement support for timeouts in dbus-glib.
12395
12396 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12397
12398         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
12399         * dbus/dbus-message.c: (process_test_subdir):
12400         * test/break-loader.c: (find_breaks_based_on):
12401         Plug some memory leaks.
12402
12403 2003-02-13  Richard Hult  <rhult@codefactory.se>
12404
12405         * bus/main.c: Fix build.
12406
12407         * dbus/dbus-errors.h:
12408         * dbus/dbus-errors.c: Fix copyright for Anders.
12409
12410 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12411
12412         * bus/Makefile.am:
12413         Add utils.[ch]
12414
12415         * bus/connection.c: (bus_connection_foreach):
12416         Fix a warning.
12417
12418         * bus/desktop-file.c: (grow_lines_in_section), (grow_sections),
12419         (unescape_string), (new_section), (parse_section_start),
12420         (parse_key_value), (report_error), (bus_desktop_file_load),
12421         (bus_desktop_file_get_string):
12422         * bus/desktop-file.h:
12423         Use DBusError for error reporting.
12424
12425         * bus/dispatch.c: (send_one_message),
12426         (bus_dispatch_message_handler):
12427         * bus/driver.c: (bus_driver_send_service_deleted),
12428         (bus_driver_send_service_created), (bus_driver_send_service_lost),
12429         (bus_driver_send_service_acquired), (bus_driver_handle_hello),
12430         (bus_driver_send_welcome_message),
12431         (bus_driver_handle_list_services),
12432         (bus_driver_handle_acquire_service),
12433         (bus_driver_handle_service_exists):
12434         * bus/loop.c: (bus_loop_run):
12435         * bus/main.c:
12436         Use BUS_HANDLE_OOM instead of _DBUS_HANDLE_OOM.
12437
12438         * bus/utils.c: (bus_wait_for_memory):
12439         * bus/utils.h:
12440         New files with general utility functions.
12441
12442         * dbus/dbus-internals.h:
12443         Remove _DBUS_HANDLE_OOM.
12444
12445 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12446
12447         * dbus/dbus-errors.c: (dbus_result_to_string), (dbus_error_init),
12448         (dbus_error_free), (dbus_set_error_const), (dbus_set_error):
12449         * dbus/dbus-errors.h:
12450         Add DBusError structure.
12451
12452 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12453
12454         * test/data/valid-messages/standard-acquire-service.message:
12455         * test/data/valid-messages/standard-hello.message:
12456         * test/data/valid-messages/standard-list-services.message:
12457         * test/data/valid-messages/standard-service-exists.message:
12458         Add some standard messages.
12459
12460 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12461
12462         * bus/driver.c: (bus_driver_send_welcome_message),
12463         (bus_driver_handle_list_services),
12464         (bus_driver_handle_acquire_service),
12465         (bus_driver_handle_service_exists), (bus_driver_handle_message):
12466         Update for API changes in libdbus.
12467
12468         * dbus/dbus-message.c: (dbus_message_new_reply):
12469         * dbus/dbus-message.h:
12470         Remove the name argument. The spec states that replies shouldn't
12471         have a name.
12472
12473 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12474
12475         * bus/desktop-file.c: (parse_section_start), (parse_key_value),
12476         (report_error), (bus_desktop_file_load), (lookup_section),
12477         (lookup_line), (bus_desktop_file_get_raw),
12478         (bus_desktop_file_get_string):
12479         * bus/desktop-file.h:
12480         Some fixes, and new functions for getting a key value from a section.
12481
12482 2003-02-13  Havoc Pennington  <hp@pobox.com>
12483
12484         * test/data/auth/fail-after-n-attempts.auth-script: new test
12485
12486         * dbus/dbus-auth.c (send_rejected): shutdown_mech() when we
12487         reject the client.
12488
12489 2003-02-13  Havoc Pennington  <hp@pobox.com>
12490
12491         * dbus/dbus-auth.c (handle_server_data_external_mech): args to
12492         dbus_credentials_match were backward
12493
12494         * dbus/dbus-auth-script.c (_dbus_auth_script_run): support
12495         NO_CREDENTIALS and ROOT_CREDENTIALS
12496
12497         * dbus/dbus-auth.c (_dbus_auth_do_work): move get_state() routine
12498         into here. Never process more commands after we've reached an
12499         end state; store further data as unused bytes.
12500
12501         * test/data/auth/*: add more auth tests
12502
12503         * dbus/dbus-auth-script.c (_dbus_auth_script_run): support EXPECT
12504         command to match exact string and EXPECT_UNUSED to match unused
12505         bytes
12506
12507         * test/Makefile.am (dist-hook): fix to dist all the test stuff
12508
12509 2003-02-12  Havoc Pennington  <hp@pobox.com>
12510
12511         * dbus/dbus-string.c (_dbus_string_pop_line): fix to also strip
12512         \r off of popped lines
12513
12514         * dbus/dbus-auth.c (_dbus_auth_test): write code to run auth
12515         scripts
12516
12517         * dbus/dbus-auth-script.c (_dbus_auth_script_run): when doing a
12518         SEND, append \r\n
12519
12520 2003-02-12  Havoc Pennington  <hp@pobox.com>
12521
12522         * dbus/Makefile.am: remove break-loader from the build, since it
12523         moved.
12524
12525         * configure.in: add --enable-gcov to turn on coverage profiling
12526         flags and disable optimization
12527
12528 2003-02-10  Havoc Pennington  <hp@pobox.com>
12529
12530         * dbus/dbus-auth-script.c, dbus/dbus-auth-script.h: sync
12531         initial cut at test framework for DBusAuth from laptop.
12532         Doesn't quite work yet but it compiles and I need to get
12533         it off the 266mhz laptop. ;-)
12534
12535         * dbus/dbus-server-debug.c (_dbus_server_debug_accept_transport):
12536         fix a memleak in error case
12537
12538 2003-02-12  Anders Carlsson  <andersca@codefactory.se>
12539
12540         * bus/Makefile.am:
12541         * bus/desktop-file.c:
12542         * bus/desktop-file.h:
12543         Add a desktop file parser.
12544
12545 2003-02-11  Zack Rusin  <zack@kde.org>
12546
12547         * qt/message.[h|cpp]: sample implementation
12548         of the KDE wrapper for DBusMessage
12549
12550 2003-02-09  Zack Rusin  <zack@kde.org>
12551
12552         * test/bus-test.c: make_it_compile
12553         * doc/dbus-specification.sgml: minimal semantic fix
12554
12555 2003-02-06  Anders Carlsson  <andersca@codefactory.se>
12556
12557         Release 0.3
12558
12559         * NEWS: Update
12560
12561 2003-02-06  Anders Carlsson  <andersca@codefactory.se>
12562
12563         * dbus/Makefile.am:
12564         * dbus/dbus-break-loader.c:
12565         * test/Makefile.am:
12566         * test/break-loader.c:
12567         Move dbus-break-loader to test/ and rename it to break-loader.
12568
12569 2003-02-02  Havoc Pennington  <hp@pobox.com>
12570
12571         * dbus/dbus-keyring.c, dbus/dbus-keyring.h: template files
12572         for code to manage cookies in your home directory
12573
12574         * dbus/dbus-sysdeps.c (_dbus_generate_random_bytes): new function
12575
12576         * dbus/dbus-auth.c (get_state): impose a maximum number of tries
12577         to authenticate, then disconnect the client.
12578
12579 2003-02-03  Alexander Larsson  <alexl@redhat.com>
12580
12581         * dbus/dbus-message.c (dbus_message_append_fields):
12582         Correct docs.
12583
12584 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
12585
12586         * doc/dbus-specification.sgml:
12587         Update address format section.
12588
12589 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
12590
12591         * test/Makefile.am:
12592         * test/bus-test.c: (get_time), (add_timeout), (remove_timeout),
12593         (message_handler), (new_connection_callback), (loop_quit),
12594         (loop_run), (main):
12595         Add bus test.
12596
12597 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
12598
12599         * bus/driver.c: (bus_driver_handle_service_exists):
12600         Simplify the code a bit.
12601
12602         * dbus/dbus-bus.c: (dbus_bus_service_exists):
12603         Fix a silly.
12604
12605 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
12606
12607         * bus/Makefile.am:
12608         Add libdbus-daemon.la and link to it.
12609
12610 2003-02-01  James Willcox  <jwillcox@gnome.org>
12611
12612         * bus/driver.c: (bus_driver_handle_own_service):
12613         Actually include the service reply code in the message.
12614
12615 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
12616
12617         * bus/driver.c: (bus_driver_handle_service_exists):
12618         Don't unref the incoming message.
12619
12620 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
12621
12622         * dbus/dbus.h: Add dbus-address.h and dbus-bus.h
12623
12624 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
12625
12626         * dbus/dbus-server.c: (dbus_server_listen):
12627         * dbus/dbus-transport.c: (_dbus_transport_open):
12628         ifdef out the calls to the debug transport and server.
12629
12630 2003-02-02  Alexander Larsson  <alexl@redhat.com>
12631
12632         * dbus/dbus-watch.c (dbus_watch_get_flags):
12633         Add note in the docs that ERROR or HANGUP won't be returned
12634         and are assumed always on.
12635
12636         * glib/dbus-gmain.c (add_watch):
12637         Always add IO_ERR | IO_HUP
12638
12639         * dbus/dbus-message.h:
12640         Add semicolon after dbus_message_iter_get_string_array().
12641         Makes qt code build again
12642
12643 2003-02-01  Anders Carlsson  <andersca@codefactory.se>
12644
12645         * bus/driver.c: (create_unique_client_name),
12646         (bus_driver_handle_hello):
12647         Don't take a name, just use a numeric id to identify
12648         each client.
12649
12650         * dbus/Makefile.am:
12651         * dbus/dbus-bus.c: (dbus_bus_register_client),
12652         (dbus_bus_acquire_service), (dbus_bus_service_exists):
12653         * dbus/dbus-bus.h:
12654         Add new convenience functions for communicating with the bus.
12655
12656         * dbus/dbus-message.h:
12657
12658         * dbus/dbus-protocol.h:
12659         Fix a typo.
12660
12661 2003-02-01  Alexander Larsson  <alexl@redhat.com>
12662
12663         * dbus/dbus-message.c (dbus_message_append_fields):
12664         Add some more doc comments.
12665
12666 2003-02-01  Havoc Pennington  <hp@pobox.com>
12667
12668         * dbus/dbus-break-loader.c (randomly_modify_length): change
12669         a 4-byte value in the message as if it were a length
12670
12671         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): don't set
12672         execute bit on saved files
12673
12674 2003-02-01  Havoc Pennington  <hp@pobox.com>
12675
12676         * dbus/dbus-break-loader.c (main): new program to find messages
12677         that break the loader.
12678
12679         * dbus/dbus-sysdeps.c (_dbus_string_append_uint): new function
12680         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): new function
12681
12682         * dbus/dbus-string.c (_dbus_string_set_byte): new
12683
12684 2003-01-31  Havoc Pennington  <hp@pobox.com>
12685
12686         * dbus/dbus-message.c: refactor the test code to be more general,
12687         in preparation for writing a "randomly permute test cases to
12688         try to break the loader" program.
12689
12690 2003-01-31  Havoc Pennington  <hp@pobox.com>
12691
12692         * doc/dbus-specification.sgml: work on the specification
12693
12694         * dbus/dbus-message.c (_dbus_message_loader_return_buffer): check
12695         the protocol version of the message.
12696
12697         * dbus/dbus-protocol.h: drop special _REPLY names, the spec
12698         no longer specifies that.
12699         (DBUS_SERVICE_REPLY_SERVICE_EXISTS): fix flags (1/2/4/8 not
12700         1/2/3/4)
12701
12702         * dbus/dbus-marshal.c (_dbus_marshal_get_arg_end_pos): add missing
12703         "break" for DBUS_TYPE_NIL, remove @todo
12704
12705 2003-01-31  Havoc Pennington  <hp@pobox.com>
12706
12707         * dbus/dbus-message.c (dbus_message_set_is_error_reply): rename
12708         just set_is_error/get_is_error as this is a commonly-used
12709         function, and write docs.
12710
12711 2003-01-31  Anders Carlsson  <andersca@codefactory.se>
12712
12713         * dbus/dbus-address.c: (dbus_address_entry_free):
12714         Free key and value lists.
12715
12716         * dbus/dbus-internals.c: (_dbus_type_to_string):
12717         Add the types we didn't have.
12718
12719         * dbus/dbus-marshal.c: (_dbus_marshal_get_arg_end_pos),
12720         (_dbus_marshal_validate_arg):
12721         Add NIL types.
12722
12723         * dbus/dbus-message.c: (dbus_message_set_sender):
12724         Remove todo about being able to set sender to NULL.
12725
12726         (dbus_message_set_is_error_reply),
12727         (dbus_message_get_is_error_reply):
12728         * dbus/dbus-message.h:
12729         New functions.
12730
12731         * dbus/dbus-protocol.h:
12732         Add error reply flag.
12733
12734         * test/data/valid-messages/opposite-endian.message:
12735         Add NIL type to test.
12736
12737 2003-01-31  Havoc Pennington  <hp@pobox.com>
12738
12739         * doc/dbus-specification.sgml: fully specify the header.  Add
12740         flags and major protocol version, and change header/body len to
12741         unsigned.
12742
12743         * dbus/dbus-message-builder.c (append_saved_length): append length
12744         as uint32
12745
12746         * dbus/dbus-message.c (dbus_message_create_header): change header
12747         length and body length to unsigned. Add the new fields from the
12748         spec
12749         (_dbus_message_loader_return_buffer): unsigned header/body len
12750
12751 2003-01-30  Havoc Pennington  <hp@pobox.com>
12752
12753         * dbus/dbus-auth.c: rework to use only REJECTED, no
12754         MECHANISMS
12755
12756         * doc/dbus-sasl-profile.txt: drop MECHANISMS and just
12757         use REJECTED, suggested by Mark McLoughlin
12758
12759 2003-01-30  Havoc Pennington  <hp@pobox.com>
12760
12761         * dbus/dbus-server.c (dbus_server_listen): @todo about how we need
12762         a better way to report errors here. e.g.  "unix address lacks
12763         path" or something. also "no such file" when the path doesn't
12764         exist, etc.
12765
12766         * dbus/dbus-address.c (dbus_address_entries_free): add @todo about
12767         leaking list nodes
12768         (dbus_parse_address): add @todo about documenting address format,
12769         and allowing , and ; to be escaped
12770
12771 2003-01-30  Anders Carlsson  <andersca@codefactory.se>
12772
12773         * dbus/Makefile.am:
12774         Add dbus-address.[ch]
12775
12776         * dbus/dbus-address.c: (dbus_address_entry_free),
12777         (dbus_address_entries_free), (create_entry),
12778         (dbus_address_entry_get_method), (dbus_address_entry_get_value),
12779         (dbus_parse_address), (_dbus_address_test):
12780         * dbus/dbus-address.h:
12781         New files for dealing with address parsing.
12782
12783         * dbus/dbus-connection.c:
12784         Document timeout functions.
12785
12786         * dbus/dbus-message.c:
12787         Document dbus_message_new_from_message.
12788
12789         * dbus/dbus-server-debug.c:
12790         Document.
12791
12792         * dbus/dbus-server.c: (dbus_server_listen):
12793         Parse address and use correct server implementation.
12794
12795         * dbus/dbus-string.c: (_dbus_string_find_to), (_dbus_string_test):
12796         * dbus/dbus-string.h:
12797         New function with test.
12798
12799         * dbus/dbus-test.c: (dbus_internal_symbol_do_not_use_run_tests):
12800         * dbus/dbus-test.h:
12801         Add address tests.
12802
12803         * dbus/dbus-transport-debug.c:
12804         Document.
12805
12806         * dbus/dbus-transport.c: (_dbus_transport_open):
12807         Parse address and use correct transport implementation.
12808
12809 2003-01-30  Havoc Pennington  <hp@pobox.com>
12810
12811         * dbus/dbus-message.c: use message->byte_order instead of
12812         DBUS_COMPILER_BYTE_ORDER throughout.
12813         (dbus_message_create_header): pad header to align the
12814         start of the body of the message to 8-byte boundary
12815
12816         * dbus/dbus-marshal.h: make all the demarshalers take const
12817         DBusString arguments.
12818
12819         * dbus/dbus-message.c (_dbus_message_loader_return_buffer):
12820         validate message args here, so we don't have to do slow validation
12821         later, and so we catch bad messages as they are incoming. Also add
12822         better checks on header_len and body_len. Also fill in
12823         message->byte_order
12824
12825         * dbus/dbus-string.c (_dbus_string_validate_utf8): new (not
12826         implemented properly)
12827         (_dbus_string_validate_nul): new function to check all-nul
12828
12829         * dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): rename
12830         get_arg_end_pos and remove all validation
12831         (_dbus_marshal_validate_arg): actually do validation here.
12832
12833 2003-01-29  Havoc Pennington  <hp@pobox.com>
12834
12835         * dbus/dbus-message.c (check_message_handling): fix assertion
12836         failure on set_client_serial
12837
12838 2003-01-28  Havoc Pennington  <hp@pobox.com>
12839
12840         * dbus/dbus-server-debug.c: Add doc section comments
12841
12842         * dbus/dbus-transport-debug.c: add doc section comments
12843
12844 2003-01-28  Havoc Pennington  <hp@redhat.com>
12845
12846         * dbus/dbus-string.c (_dbus_string_base64_decode): append bytes in
12847         the reverse order from how I had it
12848         (_dbus_string_base64_encode): reverse encoding order. I was
12849         basically byteswapping everything during encoding.
12850
12851 2003-01-28  Anders Carlsson  <andersca@codefactory.se>
12852
12853         * dbus/dbus-connection-internal.h:
12854         * dbus/dbus-connection.c: (_dbus_connection_add_timeout),
12855         (_dbus_connection_remove_timeout):
12856         Add functions for adding and removing timeouts.
12857
12858         * dbus/dbus-message.c: (dbus_message_new_from_message):
12859         Add new function that takes a message and creates an exact
12860         copy of it, but with the refcount set to 1.
12861         (check_message_handling):
12862         Fix build error.
12863
12864         * dbus/dbus-server-protected.h:
12865         * dbus/dbus-server.c: (_dbus_server_init_base),
12866         (_dbus_server_finalize_base), (_dbus_server_add_timeout),
12867         (dbus_server_set_timeout_functions):
12868         (_dbus_server_remove_timeout):
12869         New functions so that a server can add and remove timeouts.
12870
12871         (dbus_server_listen):
12872         Add commented out call to dbus_server_debug_new.
12873
12874         * dbus/dbus-timeout.c: (_dbus_timeout_new):
12875         Actually set the handler, doh.
12876
12877         * dbus/dbus-transport.c: (_dbus_transport_open):
12878         Add commented out call to dbus_transport_debug_client_new.
12879
12880         * dbus/Makefile.am:
12881         Add dbus-transport-debug.[ch] and dbus-server-debug.[ch]
12882
12883 2003-01-28  Havoc Pennington  <hp@pobox.com>
12884
12885         * dbus/dbus-message.c (check_message_handling): function to check
12886         on the loaded message, iterates over it etc.
12887
12888 2003-01-28  Havoc Pennington  <hp@pobox.com>
12889
12890         * test/Makefile.am (dist-hook): fix make distdir
12891
12892         * dbus/Makefile.am (TESTS_ENVIRONMENT): fix make check
12893
12894 2003-01-27  Havoc Pennington  <hp@pobox.com>
12895
12896         * dbus/dbus-mempool.c (time_for_size): replace printf with
12897         _dbus_verbose
12898
12899         * dbus/dbus-message-builder.c (_dbus_message_data_load): allow
12900         empty lines; fix the SAVE_LENGTH stuff to be
12901         START_LENGTH/END_LENGTH so it actually works; couple other
12902         bugfixes
12903
12904         * test/Makefile.am (dist-hook): add dist-hook for .message files
12905
12906         * dbus/dbus-string.c (DBUS_STRING_COPY_PREAMBLE): source of a copy
12907         can be constant or locked.
12908         (_dbus_string_free): allow freeing a const string as
12909         documented/intended
12910
12911         * dbus/dbus-sysdeps.c (_dbus_concat_dir_and_file): utility
12912
12913         * dbus/dbus-test-main.c (main): take an argument which is the
12914         directory containing test data
12915
12916         * dbus/dbus-message.c (_dbus_message_test): pass a test_data_dir
12917         argument to this and load all the messages in test/data/
12918         checking that they can be loaded or not loaded as appropriate.
12919
12920 2003-01-27  Anders Carlsson  <andersca@codefactory.se>
12921
12922         * bus/dispatch.c: (bus_dispatch_message_handler):
12923         Dispatch messages sent to services.
12924
12925         * bus/driver.c: (bus_driver_send_service_deleted),
12926         (bus_driver_send_service_created), (bus_driver_send_service_lost),
12927         (bus_driver_send_service_acquired):
12928         Add helper functions for sending service related messages.
12929
12930         (bus_driver_send_welcome_message):
12931         Send HELLO_REPLY instead of WELCOME.
12932
12933         (bus_driver_handle_list_services):
12934         Send LIST_SERVICES_REPLY instead of SERVICES.
12935
12936         (bus_driver_handle_own_service),
12937         (bus_driver_handle_service_exists):
12938         New message handlers.
12939
12940         (bus_driver_handle_message):
12941         Invoke new message handlers.
12942
12943         (bus_driver_remove_connection):
12944         Don't remove any services here since that's done automatically
12945         by bus_service_remove_owner now.
12946
12947         * bus/driver.h:
12948         New function signatures.
12949
12950         * bus/services.c: (bus_service_add_owner):
12951         Send ServiceAcquired message if we're the only primary owner.
12952
12953         (bus_service_remove_owner):
12954         Send ServiceAcquired/ServiceLost messages.
12955
12956         (bus_service_set_prohibit_replacement),
12957         (bus_service_get_prohibit_replacement):
12958         Functions for setting prohibit replacement.
12959
12960         (bus_service_has_owner):
12961         New function that checks if a connection is in the owner queue of
12962         a certain service.
12963
12964         * bus/services.h:
12965         Add new function signatures.
12966
12967         * dbus/dbus-list.c: (_dbus_list_test):
12968         Add tests for _dbus_list_remove_last and traversing the list backwards.
12969
12970         * dbus/dbus-list.h:
12971         Fix a typo in _dbus_list_get_prev_link, if we're at the first element we can't
12972         go any further, so return NULL then.
12973
12974         * dbus/dbus-protocol.h:
12975         Add new messages, service flags and service replies.
12976
12977 2003-01-26  Havoc Pennington  <hp@pobox.com>
12978
12979         * dbus/dbus-message-builder.c: implement, completely untested.
12980
12981         * test/data/*: add data to be used in testing.
12982         ".message" files are our simple loadable text format.
12983         ".message-raw" will be binary dumps of messages.
12984
12985         * dbus/dbus-string.c (_dbus_string_starts_with_c_str): new
12986
12987 2003-01-26  Havoc Pennington  <hp@pobox.com>
12988
12989         * dbus/dbus-sysdeps.c (_dbus_file_get_contents): new function
12990
12991         * dbus/dbus-errors.c (dbus_result_to_string): add
12992         file errors
12993
12994         * dbus/dbus-message-builder.c: new file, will contain code to load
12995         up messages from files. Not implemented yet.
12996
12997 2003-01-26  Havoc Pennington  <hp@pobox.com>
12998
12999         * dbus/dbus-message.c (dbus_message_set_sender): support deleting
13000         the sender by setting to NULL
13001
13002 2003-01-26  Havoc Pennington  <hp@pobox.com>
13003
13004         The unit tests pass, but otherwise untested.  If it breaks, the
13005         tests should have been better. ;-)
13006
13007         * bus/driver.c (bus_driver_handle_hello): return if we disconnect
13008         the connection.
13009
13010         * dbus/dbus-message.c: redo everything so we maintain
13011         message->header as the only copy of the various fields.
13012         This avoids the possibility of out-of-memory in some cases,
13013         for example dbus_message_lock() can't run out of memory anymore,
13014         and avoids extra copying. Figured I may as well go ahead and do
13015         this since it was busted for dbus_message_lock to not return
13016         failure on OOM, and dbus_message_write_header was totally
13017         unchecked for OOM. Also fixed some random other bugs.
13018
13019         * dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): verify
13020         that strings are nul-terminated. Also, end_pos can be equal
13021         to string length just not greater than, I think.
13022         (_dbus_marshal_set_int32): new function
13023         (_dbus_marshal_set_uint32): new function
13024         (_dbus_marshal_set_string): new function
13025
13026         * dbus/dbus-connection.c (_dbus_connection_new_for_transport): fix
13027         a warning, init timeout_list to NULL
13028         (dbus_connection_send_message): don't use uninitialized variable
13029         "serial"
13030
13031         * dbus/dbus-string.c (_dbus_string_replace_len): new function
13032
13033 2003-01-26  Anders Carlsson  <andersca@codefactory.se>
13034
13035         * bus/driver.c: (bus_driver_handle_hello),
13036         (bus_driver_send_welcome_message):
13037         Plug leaks
13038
13039 2003-01-26  Anders Carlsson  <andersca@codefactory.se>
13040
13041         * dbus/dbus-auth.c: (process_auth), (_dbus_auth_unref):
13042         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport),
13043         (dbus_connection_unref):
13044         * dbus/dbus-marshal.c: (_dbus_marshal_test):
13045         * dbus/dbus-message.c: (dbus_message_unref),
13046         Plug memory leaks.
13047
13048         (dbus_message_get_fields):
13049         Remove debugging printout.
13050
13051         (_dbus_message_loader_return_buffer):
13052         Don't store the header string.
13053
13054         (_dbus_message_test):
13055         Plug leaks.
13056
13057 2003-01-26  Richard Hult  <rhult@codefactory.se>
13058
13059         * glib/dbus-gmain.c (dbus_connection_dispatch): Traverse a copy of
13060         the file descriptor list, since it can change under us.
13061
13062 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
13063
13064         * glib/dbus-gmain.c: (dbus_connection_prepare),
13065         (dbus_connection_check), (dbus_connection_dispatch), (add_watch),
13066         (remove_watch), (dbus_connection_hookup_with_g_main):
13067         Rewrite the glib handling to use its own GSource instead of a
13068         GIOChannel so we can catch messages put in the queue while waiting
13069         for a reply.
13070
13071 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
13072
13073         * bus/Makefile.am:
13074         * bus/connection.c: (connection_disconnect_handler),
13075         (connection_watch_callback), (bus_connection_setup):
13076         * bus/dispatch.c: (send_one_message),
13077         (bus_dispatch_broadcast_message), (bus_dispatch_message_handler),
13078         (bus_dispatch_add_connection), (bus_dispatch_remove_connection):
13079         * bus/dispatch.h:
13080         * bus/driver.c: (bus_driver_send_service_deleted),
13081         (bus_driver_send_service_created), (bus_driver_handle_hello),
13082         (bus_driver_send_welcome_message),
13083         (bus_driver_handle_list_services), (bus_driver_remove_connection),
13084         (bus_driver_handle_message):
13085         * bus/driver.h:
13086         Refactor code, put the message dispatching in its own file. Use
13087         _DBUS_HANDLE_OOM. Also send ServiceDeleted messages when a client
13088         is disconnected.
13089
13090 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
13091
13092         * dbus/dbus-internals.h:
13093         Add _DBUS_HANDLE_OOM macro, it doesn't do anything currently.
13094
13095         * dbus/dbus-message.c: (dbus_message_get_sender):
13096         * dbus/dbus-message.h:
13097         Implement dbus_message_get_sender.
13098
13099         * dbus/dbus-protocol.h:
13100         Add message and service defines.
13101
13102 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
13103
13104         * dbus/dbus-connection.c: (dbus_connection_send_message):
13105         * dbus/dbus-message-internal.h:
13106         * dbus/dbus-message.c: (_dbus_message_get_client_serial),
13107         (dbus_message_write_header):
13108         Remove _dbus_messag_unlock and don't set the client serial on a
13109         message if one already exists.
13110
13111 2003-01-24  Havoc Pennington  <hp@pobox.com>
13112
13113         * dbus/dbus-list.c (alloc_link): put a thread lock on the global
13114         list_pool
13115
13116         * bus/driver.c (bus_driver_handle_list_services): fix a leak
13117         on OOM
13118
13119 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
13120
13121         * dbus/dbus-list.c: (alloc_link), (free_link):
13122         Use a memory pool for the links.
13123
13124 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
13125
13126         * bus/connection.c: (bus_connection_foreach):
13127         * bus/connection.h:
13128         Add new bus_connection_foreach function.
13129
13130         * bus/driver.c: (send_one_message), (bus_driver_broadcast_message):
13131         Add function that broadcasts a message to all clients.
13132
13133         (bus_driver_send_service_created), (bus_driver_handle_hello),
13134         (bus_driver_send_welcome_message),
13135         (bus_driver_handle_list_services), (bus_driver_message_handler):
13136         Implement functions that take care of listing services, and notifying
13137         clients when new services are created.
13138
13139         * bus/services.c: (bus_services_list):
13140         * bus/services.h:
13141         Add new function that returns an array of strings with the currently
13142         registered services.
13143
13144         * glib/dbus-glib.h:
13145         * glib/dbus-gmain.c:
13146         Update copyright year.
13147
13148 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
13149
13150         * dbus/dbus-connection.c: (dbus_connection_send_message):
13151         Unlock the message in case it was sent earlier.
13152
13153         (dbus_connection_send_message_with_reply_and_block):
13154         Remove the reply message from the list.
13155
13156         * dbus/dbus-marshal.c: (_dbus_demarshal_string_array):
13157         Set array_len and new_pos correctly.
13158
13159         (_dbus_marshal_test):
13160         Remove debug output.
13161
13162         * dbus/dbus-message-internal.h:
13163         * dbus/dbus-message.c: (_dbus_message_get_reply_serial):
13164         New function that returns the reply serial.
13165
13166         (_dbus_message_unlock):
13167         New function that unlocks a message and resets its header.
13168
13169         (dbus_message_append_string_array),
13170         (dbus_message_get_fields_valist),
13171         (dbus_message_iter_get_field_type),
13172         (dbus_message_iter_get_string_array),
13173         (dbus_message_get_fields),
13174         (dbus_message_append_fields_valist):
13175         Handle string arrays.
13176
13177         (dbus_message_set_sender):
13178         Make this function public since the bus daemon needs it.
13179
13180         (decode_header_data):
13181         Set the reply serial to -1 initially.
13182
13183         * dbus/dbus-message.h:
13184         Add dbus_message_set_sender.
13185
13186 2003-01-24  Havoc Pennington  <hp@pobox.com>
13187
13188         * doc/dbus-specification.sgml: add some stuff
13189
13190 2003-01-22  Havoc Pennington  <hp@pobox.com>
13191
13192         * doc/dbus-specification.sgml: Start to document the protocol.
13193
13194 2003-01-22  Havoc Pennington  <hp@pobox.com>
13195
13196         * dbus/dbus-connection.c
13197         (dbus_connection_send_message_with_reply_and_block): add some @todo
13198
13199         * bus/driver.c (bus_driver_add_connection): add a FIXME about memleak
13200
13201 2003-01-21  Havoc Pennington  <hp@pobox.com>
13202
13203         (patch untested because can't compile)
13204
13205         * bus/driver.c (create_unique_client_name): make this function
13206         never recycle client names. Also, caller should initialize
13207         the DBusString.
13208
13209         * dbus/dbus-sysdeps.c (_dbus_get_current_time): new function
13210
13211 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
13212
13213         * dbus/dbus-marshal.c: (_dbus_marshal_double),
13214         (_dbus_marshal_int32), (_dbus_marshal_uint32),
13215         (_dbus_marshal_int32_array), (_dbus_marshal_uint32_array),
13216         (_dbus_marshal_double_array), (_dbus_marshal_string_array),
13217         (_dbus_demarshal_int32_array), (_dbus_demarshal_uint32_array),
13218         (_dbus_demarshal_double_array), (_dbus_demarshal_string_array),
13219         (_dbus_marshal_get_field_end_pos), (_dbus_marshal_test):
13220         * dbus/dbus-marshal.h:
13221         * dbus/dbus-protocol.h:
13222         Add support for marshalling and demarshalling integer, double
13223         and string arrays.
13224
13225 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
13226
13227         * bus/Makefile.am:
13228         Add driver.[ch]
13229
13230         * bus/connection.c: (connection_disconnect_handler):
13231         Remove the connection from the bus driver's list.
13232
13233         (connection_watch_callback): Dispatch messages.
13234
13235         (free_connection_data): Free connection name.
13236
13237         (bus_connection_setup): Add connection to the bus driver's list.
13238         (bus_connection_remove_owned_service):
13239         (bus_connection_set_name), (bus_connection_get_name):
13240         Add functions for setting and getting the connection's name.
13241
13242         * bus/connection.h:
13243         Add function headers.
13244
13245         * bus/driver.c: (create_unique_client_name),
13246         (bus_driver_handle_hello_message),
13247         (bus_driver_send_welcome_message), (bus_driver_message_handler),
13248         (bus_driver_add_connection), (bus_driver_remove_connection):
13249         * bus/driver.h:
13250         * bus/main.c:
13251         * bus/services.c: (bus_service_free):
13252         * bus/services.h:
13253         New file that handles communication and registreation with the bus
13254         itself.
13255
13256 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
13257
13258         * dbus/dbus-connection.c: (dbus_connection_send_message):
13259         Add a new client_serial parameter.
13260
13261         (dbus_connection_send_message_with_reply):
13262         Remove a @todo since we've implemented the blocking function.
13263
13264         (dbus_connection_send_message_with_reply_and_block):
13265         New function that sends a message and waits for a reply and
13266         then returns the reply.
13267
13268         * dbus/dbus-connection.h:
13269         Add new functions.
13270
13271         * dbus/dbus-errors.c: (dbus_result_to_string):
13272         * dbus/dbus-errors.h:
13273         Add new DBUS_RESULT.
13274
13275         * dbus/dbus-message-internal.h:
13276         * dbus/dbus-message.c: (_dbus_message_get_reply_serial),
13277         (_dbus_message_set_sender), (dbus_message_write_header),
13278         (dbus_message_new_reply), (decode_header_data),
13279         (_dbus_message_loader_return_buffer), (_dbus_message_test):
13280         * dbus/dbus-message.h:
13281         Add new functions that set the reply serial and sender.
13282         Also marshal and demarshal them correctly and add test.
13283
13284         * dbus/dbus-protocol.h:
13285         Add new DBUS_MESSAGE_TYPE_SENDER.
13286
13287         * glib/dbus-glib.h:
13288         * glib/dbus-gmain.c: (watch_callback), (free_callback_data),
13289         (add_watch), (remove_watch), (add_timeout), (remove_timeout),
13290         (dbus_connection_hookup_with_g_main):
13291         * glib/test-dbus-glib.c: (main):
13292         Rewrite to use GIOChannel and remove the GSource crack.
13293
13294         * test/echo-client.c: (main):
13295         * test/watch.c: (check_messages):
13296         Update for changed APIs
13297
13298 2003-01-19  Anders Carlsson  <andersca@codefactory.se>
13299
13300         * dbus/Makefile.am: Add dbus-timeout.[cħ]
13301
13302         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport):
13303         Create a DBusTimeoutList.
13304         (dbus_connection_set_timeout_functions): Add new function to
13305         set timeout callbacks
13306
13307         * dbus/dbus-connection.h: Add public DBusTimeout API.
13308
13309         * dbus/dbus-message.c: (dbus_message_get_service):
13310         * dbus/dbus-message.h:  New function.
13311
13312         * dbus/dbus-server.c: Fix small doc typo.
13313
13314         * dbus/dbus-timeout.[ch]: New files for mainloop timeouts.
13315
13316 2003-01-19  Anders Carlsson  <andersca@codefactory.se>
13317
13318         * dbus/dbus-string.c (_dbus_string_move_len): Don't delete all
13319         of the string, just as long as specified.
13320
13321 2003-01-19  Havoc Pennington  <hp@pobox.com>
13322
13323         * dbus/dbus-connection.c (dbus_connection_get_is_authenticated):
13324         new function
13325
13326         * dbus/dbus-server.c (dbus_server_set_max_connections)
13327         (dbus_server_get_max_connections, dbus_server_get_n_connections):
13328         keep track of current number of connections, and add API for
13329         setting a max (but haven't implemented enforcing the max yet)
13330
13331 2003-01-18  Havoc Pennington  <hp@pobox.com>
13332
13333         * dbus/dbus-transport-unix.c (unix_do_iteration): only do the
13334         reading/writing if read_watch != NULL or write_watch != NULL.
13335
13336         * dbus/dbus-message.c (_dbus_message_loader_return_buffer): fix
13337         the message loader code to actually load message->header and
13338         message->body into the newly-created message.
13339
13340         * dbus/dbus-transport-unix.c (check_write_watch): fix a mem leak
13341         in OOM case
13342
13343         * dbus/dbus-connection.c (dbus_connection_set_max_message_size)
13344         (dbus_connection_get_max_message_size)
13345         (dbus_connection_set_max_live_messages_size)
13346         (dbus_connection_get_max_live_messages_size): implement some
13347         resource limitation functions
13348
13349         * dbus/dbus-resources.c: new file implementing some of the
13350         resource limits stuff
13351
13352         * dbus/dbus-message.c (dbus_message_iter_get_byte_array): add
13353         missing docs, add @todo to handle OOM etc.
13354
13355         * dbus/dbus-marshal.c (_dbus_demarshal_byte_array): add missing
13356         docs
13357
13358 2003-01-18  Havoc Pennington  <hp@pobox.com>
13359
13360         * dbus/dbus-connection.c (dbus_connection_unref): disconnect the
13361         connection if it hasn't been already.
13362
13363         * dbus/dbus-connection.h: kill off the idea of an ErrorFunction,
13364         replace with DisconnectFunction.
13365
13366 2003-01-18  Havoc Pennington  <hp@pobox.com>
13367
13368         Building --disable-verbose-mode --disable-asserts --disable-tests
13369         cuts the library from 112K to 45K or so
13370
13371         * configure.in: check for varargs macro support,
13372         add --enable-verbose-mode, --enable-asserts.
13373
13374         * dbus/dbus-internals.h (_dbus_assert): support
13375         DBUS_DISABLE_ASSERT
13376         (_dbus_verbose): support DBUS_ENABLE_VERBOSE_MODE
13377
13378 2003-01-18  Havoc Pennington  <hp@pobox.com>
13379
13380         * dbus/dbus-test.c: include config.h so that tests actually run
13381
13382         * dbus/dbus-string.c: add assertions that stuff is 8-byte aligned,
13383         so the failure mode when that assumption fails will be plenty
13384         obvious.
13385
13386 2003-01-18  Havoc Pennington  <hp@pobox.com>
13387
13388         * configure.in: default --enable-tests to $USE_MAINTAINER_MODE
13389
13390         * dbus/Makefile.am: fix it up so dubs-test-main.c is included in
13391         the distribution
13392
13393         * test/Makefile.am: don't use special variable "TESTS" for echo-*
13394         since we don't want to use those in make check
13395
13396 2003-01-15  Havoc Pennington  <hp@redhat.com>
13397
13398         Release 0.2
13399
13400         * NEWS: update
13401
13402 2003-01-15  Havoc Pennington  <hp@redhat.com>
13403
13404         * test/Makefile.am: fix so that test source code ends up in the
13405         distribution on make distcheck
13406
13407 2003-01-15  Havoc Pennington  <hp@redhat.com>
13408
13409         Release 0.1.
13410
13411         * NEWS: update
13412
13413 2003-01-15  Havoc Pennington  <hp@redhat.com>
13414
13415         * dbus/dbus-test.c (dbus_internal_symbol_do_not_use_run_tests):
13416         fix build when --disable-tests
13417
13418         * Makefile.am (EXTRA_DIST): put HACKING in here
13419
13420         * HACKING: document procedure for making a tarball release.
13421
13422 2003-01-14  Anders Carlsson  <andersca@codefactory.se>
13423
13424         * bus/connection.c: (connection_error_handler),
13425         (bus_connection_setup):
13426         * bus/main.c: (main):
13427         Make sure that the DBusConnectionData struct is NULLed
13428         out to prevent a segfault.
13429
13430         * dbus/dbus-errors.c: (dbus_result_to_string):
13431         * dbus/dbus-errors.h:
13432         * dbus/dbus-message.c: (dbus_message_get_fields),
13433         (dbus_message_get_fields_valist), (_dbus_message_test):
13434         * dbus/dbus-message.h:
13435         Make dbus_message_get_fields return a result code so we can
13436         track invalid fields as well as oom.
13437
13438 2003-01-11  Havoc Pennington  <hp@pobox.com>
13439
13440         * configure.in: change --enable-test/--enable-ansi action-if-given
13441         to enable_foo=$enableval instead of enable_foo=yes
13442
13443 2003-01-08  Havoc Pennington  <hp@pobox.com>
13444
13445         * dbus/dbus-string.c (_dbus_string_align_length): new function
13446
13447         * dbus/dbus-test-main.c: move main() for test app here
13448         * dbus/dbus-test.c
13449         (dbus_internal_symbol_do_not_use_run_tests): we have to export a
13450         symbol to run tests, because dbus-test isn't in the main
13451         library
13452
13453         Code review nitpicks.
13454
13455         * dbus/dbus-message.c (dbus_message_write_header): add newlines
13456         for people with narrow emacs ;-). Assert client_serial was filled
13457         in. Assert message->name != NULL.
13458         (dbus_message_append_fields): have "first_field_type" arg separate
13459         from va list, needed for C++ binding that also uses varargs IIRC
13460         and helps with type safety
13461         (dbus_message_new): add @todo about using DBusString to store
13462         service/name internally
13463         (dbus_message_new): don't leak ->service and ->name on OOM later
13464         in the function
13465         (dbus_message_unref): free the service name
13466         (dbus_message_get_fields): same change to varargs
13467         i.e. first_field_type
13468         (_dbus_message_loader_return_buffer): assert that the message data
13469         is aligned (if not it's a bug in our code). Put in verbose griping
13470         about why we set corrupted = TRUE.
13471         (decode_header_data): add FIXME that char* is evil.  Was going to
13472         add FIXME about evil locale-specific string.h strncmp, but just
13473         switched to wacky string-as-uint32 optimization. Move check for
13474         "no room for field name" above get_const_data_len() to avoid
13475         assertion failure in get_const_data_len if we have trailing 2
13476         bytes or the like. Check for service and name fields being
13477         provided twice. Don't leak service/name on error. Require field
13478         names to be aligned to 4 bytes.
13479
13480         * dbus/dbus-marshal.c: move byte swap stuff to header
13481         (_dbus_pack_int32): uscore-prefix
13482         (_dbus_unpack_int32): uscore-prefix
13483         (_dbus_unpack_uint32): export
13484         (_dbus_demarshal_string): add @todo complaining about use of
13485         memcpy()
13486         (_dbus_marshal_get_field_end_pos): add @todo about bad error
13487         handling allowing corrupt data to go unchecked
13488
13489 2003-01-08  Havoc Pennington  <hp@redhat.com>
13490
13491         * dbus/dbus-transport-unix.c (unix_do_iteration): add read/write
13492         to the select() as needed for authentication. (should be using
13493         _dbus_poll() not select, but for another day)
13494
13495         * dbus/dbus.h: include dbus/dbus-protocol.h
13496
13497 2003-01-08  Anders Carlsson  <andersca@codefactory.se>
13498
13499         * dbus/Makefile.am (dbusinclude_HEADERS): Install
13500         dbus-connection.h
13501
13502 2003-01-08  Anders Carlsson  <andersca@codefactory.se>
13503
13504         * dbus/dbus-internals.c: (_dbus_type_to_string):
13505         New function that returns a string describing a type.
13506
13507         * dbus/dbus-marshal.c: (_dbus_demarshal_byte_array):
13508         * dbus/dbus-marshal.h:
13509         * dbus/dbus-message.c: (dbus_message_get_fields_valist),
13510         (dbus_message_iter_get_field_type), (dbus_message_iter_get_double),
13511         (dbus_message_iter_get_byte_array):
13512         * dbus/dbus-message.h:
13513         Add new convenience functions for appending and getting message fields.
13514         Also add demarshalling routines for byte arrays.
13515
13516 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
13517
13518         * dbus/dbus-connection-internal.h:
13519         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport),
13520         (_dbus_connection_get_next_client_serial),
13521         (dbus_connection_send_message):
13522         * dbus/dbus-internals.h:
13523         * dbus/dbus-marshal.c: (unpack_uint32), (dbus_unpack_int32),
13524         (dbus_pack_int32), (_dbus_marshal_double), (_dbus_marshal_int32),
13525         (_dbus_marshal_uint32), (_dbus_demarshal_double),
13526         (_dbus_demarshal_int32), (_dbus_demarshal_uint32),
13527         (_dbus_demarshal_string), (_dbus_marshal_get_field_end_pos),
13528         (_dbus_verbose_bytes), (_dbus_marshal_test):
13529         * dbus/dbus-marshal.h:
13530         * dbus/dbus-message-internal.h:
13531         * dbus/dbus-message.c: (_dbus_message_set_client_serial),
13532         (dbus_message_write_header), (_dbus_message_lock),
13533         (dbus_message_new), (dbus_message_ref), (dbus_message_unref),
13534         (dbus_message_get_name), (dbus_message_append_int32),
13535         (dbus_message_append_uint32), (dbus_message_append_double),
13536         (dbus_message_append_string), (dbus_message_append_byte_array),
13537         (dbus_message_get_fields_iter), (dbus_message_iter_ref),
13538         (dbus_message_iter_unref), (dbus_message_iter_has_next),
13539         (dbus_message_iter_next), (dbus_message_iter_get_field_type),
13540         (dbus_message_iter_get_string), (dbus_message_iter_get_int32),
13541         (dbus_message_iter_get_uint32), (dbus_message_iter_get_double),
13542         (decode_header_data), (_dbus_message_loader_return_buffer),
13543         (message_iter_test), (_dbus_message_test):
13544         * dbus/dbus-message.h:
13545         * dbus/dbus-protocol.h:
13546         * dbus/dbus-test.c: (main):
13547         * dbus/dbus-test.h:
13548         * glib/test-dbus-glib.c: (message_handler), (main):
13549         * test/echo-client.c: (main):
13550         * test/watch.c: (check_messages):
13551         Make messages sendable and receivable for real.
13552
13553 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
13554
13555         * dbus/dbus-marshal.c: (_dbus_marshal_double),
13556         (_dbus_marshal_string), (_dbus_marshal_byte_array):
13557         * dbus/dbus-message.c: (dbus_message_append_int32),
13558         (dbus_message_append_uint32), (dbus_message_append_double),
13559         (dbus_message_append_string), (dbus_message_append_byte_array):
13560         Handle OOM restoration.
13561
13562 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
13563
13564         * dbus/dbus-marshal.c: (_dbus_marshal_string),
13565         (_dbus_demarshal_string), (_dbus_marshal_test):
13566         * dbus/dbus-marshal.h:
13567         * dbus/dbus-message.c: (dbus_message_get_name),
13568         Document these functions.
13569
13570         (dbus_message_append_int32), (dbus_message_append_uint32),
13571         (dbus_message_append_double), (dbus_message_append_string),
13572         (dbus_message_append_byte_array):
13573         * dbus/dbus-message.h:
13574         Add functions for adding message fields of different types.
13575
13576         * dbus/dbus-protocol.h:
13577         Add the different types.
13578
13579 2003-01-05  Havoc Pennington  <hp@pobox.com>
13580
13581         * bus/connection.c: implement routines for handling connections,
13582         first thing is keeping a list of owned services on each connection
13583         and setting up watches etc.
13584
13585         * bus/services.c: implement a mapping from service names to lists
13586         of connections
13587
13588         * dbus/dbus-hash.c: add DBUS_HASH_POINTER
13589
13590         * dbus/dbus-threads.c (dbus_static_mutex_lock): add functions
13591         to use static mutexes for global data
13592
13593         * dbus/dbus-connection.c (dbus_connection_set_data): add new
13594         collection of functions to set/get application-specific data
13595         on the DBusConnection.
13596
13597 2003-01-04  Havoc Pennington  <hp@pobox.com>
13598
13599         * dbus/dbus-sysdeps.c (_dbus_sleep_milliseconds): new function
13600         (_dbus_poll): new function
13601
13602         * dbus/dbus-internals.h (_DBUS_STRUCT_OFFSET): new macro
13603         copied from GLib
13604
13605         * bus/loop.c: initial code for the daemon main loop
13606
13607 2003-01-04  Havoc Pennington  <hp@pobox.com>
13608
13609         * test/watch.c (error_handler): make it safe if the error handler
13610         is called multiple times (if we s/error handler/disconnect
13611         handler/ we should just guarantee it's called only once)
13612
13613         * dbus/dbus-transport.c (_dbus_transport_disconnect): call the
13614         error handler on disconnect (it's quite possible we should
13615         just change the error handler to a "disconnect handler," I'm
13616         not sure we have any other meaningful errors)
13617
13618         * configure.in: check for getpwnam_r
13619
13620         * dbus/dbus-transport.c, dbus/dbus-transport-unix.c,
13621         dbus/dbus-auth.c: add credentials support, add EXTERNAL auth
13622         mechanism as in SASL spec, using socket credentials
13623
13624         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): new function
13625         (_dbus_send_credentials_unix_socket): new function
13626
13627         * dbus/dbus-sysdeps.c (_dbus_accept_unix_socket): rename just
13628         dbus_accept()
13629         (_dbus_write): only check errno if <0 returned
13630         (_dbus_write_two): ditto
13631
13632 2003-01-02  Anders Carlsson  <andersca@codefactory.se>
13633
13634         * dbus/dbus-marshal.c: (_dbus_marshal_utf8_string),
13635         (_dbus_marshal_byte_array), (_dbus_demarshal_utf8_string),
13636         (_dbus_marshal_test):
13637         * dbus/dbus-marshal.h:
13638         Add _dbus_marshal_byte_array and rename _dbus_marshal_string
13639         to _dbus_marshal_utf8_string. Also fix some tests.
13640
13641 2002-12-28  Harri Porten  <porten@kde.org>
13642
13643         * configure.in: added check for C++ compiler and a very cheesy
13644         check for the Qt integration
13645
13646         * Makefile.am (SUBDIRS): compile qt subdir if support is enabled
13647
13648         * qt/Makefile.am: added
13649
13650         * qt/.cvsignore: added
13651
13652         * qt/dbus-qthread.cc, qt/dbus-qthread.cpp: renamed former to
13653         latter, added #ifdef QT_THREAD_SUPPORT guard.
13654
13655         * dbus/Makefile.am: added missing headers for make dist
13656
13657 2002-12-28  Kristian Rietveld  <kris@gtk.org>
13658
13659         * dbus/Makefile.am: fixup export-symbols-regex.
13660
13661 2002-12-27  Anders Carlsson  <andersca@codefactory.se>
13662
13663         * acinclude.m4: Add this file and put the
13664         PKG_CHECK_MODULE macro in it.
13665
13666 2002-12-27  Anders Carlsson  <andersca@codefactory.se>
13667
13668         * dbus/dbus-marshal.c: (_dbus_marshal_string),
13669         (_dbus_demarshal_double), (_dbus_demarshal_int32),
13670         (_dbus_demarshal_uint32), (_dbus_demarshal_string),
13671         (_dbus_marshal_test):
13672         Make the demarshalling routines align the pos argument.
13673         Add string marshalling tests and fix the obvious bugs
13674         discovered.
13675
13676 2002-12-26  Havoc Pennington  <hp@pobox.com>
13677
13678         * dbus/dbus-auth.c: fixes fixes fixes
13679
13680         * dbus/dbus-transport-unix.c: wire up support for
13681         encoding/decoding data on the wire
13682
13683         * dbus/dbus-auth.c (_dbus_auth_encode_data)
13684         (_dbus_auth_decode_data): append to target string
13685         instead of nuking it.
13686
13687 2002-12-26  Havoc Pennington  <hp@pobox.com>
13688
13689         * dbus/dbus-marshal.h (DBUS_COMPILER_BYTE_ORDER): #ifdef
13690         WORDS_BIGENDIAN then compiler byte order is DBUS_BIG_ENDIAN,
13691         doh
13692
13693         * dbus/dbus-marshal.c: Add macros to do int swapping in-place and
13694         avoid swap_bytes() overhead (ignoring possible assembly stuff for
13695         now). Main point is because I wanted unpack_uint32 to implement
13696         _dbus_verbose_bytes
13697         (_dbus_verbose_bytes): new function
13698
13699         * dbus/dbus-string.c (_dbus_string_validate_ascii): new function
13700
13701         * dbus/dbus-message.c (_dbus_message_loader_get_is_corrupted): add
13702         mechanism to handle a corrupt message stream
13703         (_dbus_message_loader_new): fix preallocation to only prealloc,
13704         not prelengthen
13705
13706         * dbus/dbus-string.c (_dbus_string_skip_blank): fix this function
13707         (_dbus_string_test): enhance tests for copy/move and fix the
13708         functions
13709
13710         * dbus/dbus-transport-unix.c: Hold references in more places to
13711         avoid reentrancy problems
13712
13713         * dbus/dbus-transport.c: ditto
13714
13715         * dbus/dbus-connection.c (dbus_connection_dispatch_message): don't
13716         leak reference count in no-message case
13717
13718         * test/watch.c (do_mainloop): handle adding/removing watches
13719         during iteration over the watches. Also, ref the connection/server
13720         stored on a watch, so we don't try to mangle a destroyed one.
13721
13722         * dbus/dbus-transport-unix.c (do_authentication): perform
13723         authentication
13724
13725         * dbus/dbus-auth.c (get_state): add a state
13726         AUTHENTICATED_WITH_UNUSED_BYTES and return it if required
13727         (_dbus_auth_get_unused_bytes): append the unused bytes
13728         to the passed in string, rather than prepend
13729
13730         * dbus/dbus-transport.c (_dbus_transport_init_base): create
13731         the auth conversation DBusAuth
13732
13733         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd)
13734         (_dbus_transport_new_for_domain_socket): when creating a
13735         transport, pass in whether it's a client-side or server-side
13736         transport so we know which DBusAuth to create
13737
13738 2002-12-03  Havoc Pennington  <hp@pobox.com>
13739
13740         * dbus/dbus-transport-unix.c (unix_finalize): finalize base
13741         _after_ finalizing the derived members
13742         (unix_connection_set): unref watch if we fail to add it
13743
13744         * dbus/dbus-connection.c (dbus_connection_unref): delete the
13745         transport first, so that the connection owned by the
13746         transport will be valid as the transport finalizes.
13747
13748         * dbus/dbus-transport-unix.c (unix_finalize): free the write_watch
13749         if necessary, and remove watches from the connection.
13750
13751         * dbus/dbus-watch.c (_dbus_watch_list_free): improve a comment
13752
13753 2002-12-26  Anders Carlsson  <andersca@codefactory.se>
13754
13755         * dbus/dbus-marshal.c: (_dbus_marshal_string),
13756         (_dbus_demarshal_double), (_dbus_demarshal_int32),
13757         (_dbus_demarshal_uint32), (_dbus_demarshal_string),
13758         (_dbus_marshal_test):
13759         * dbus/dbus-marshal.h:
13760         Add string marshal functions and have the demarshal functions
13761         return the new position.
13762
13763 2002-12-25  Havoc Pennington  <hp@pobox.com>
13764
13765         * doc/dbus-sasl-profile.txt: docs on the authentication protocol,
13766         it is a simple protocol that just maps directly to SASL.
13767
13768         * dbus/dbus-auth.h, dbus/dbus-auth.c: authentication protocol
13769         initial implementation, not actually used yet.
13770
13771         * dbus/dbus-string.c (_dbus_string_find): new function
13772         (_dbus_string_equal): new function
13773         (_dbus_string_base64_encode): new function
13774         (_dbus_string_base64_decode): new function
13775
13776 2002-12-25  Anders Carlsson  <andersca@codefactory.se>
13777
13778         * dbus/Makefile.am:
13779         * dbus/dbus-marshal.c: (swap_bytes), (_dbus_marshal_double),
13780         (_dbus_marshal_int32), (_dbus_marshal_uint32),
13781         (_dbus_demarshal_double), (_dbus_demarshal_int32),
13782         (_dbus_demarshal_uint32), (_dbus_marshal_test):
13783         * dbus/dbus-marshal.h:
13784         * dbus/dbus-protocol.h:
13785         * dbus/dbus-test.c: (main):
13786         * dbus/dbus-test.h:
13787         Add un-optimized marshalling/demarshalling routines.
13788
13789 2002-12-25  Harri Porten  <porten@kde.org>
13790
13791         * qt/dbus-qt.h: adjusted ctor and getter to KDE/Qt conventions
13792
13793 2002-12-24  Zack Rusin  <zack@kde.org>
13794
13795         * qt/dbus-qthread.cc: adding - integrates QMutex into Dbus
13796         * qt/dbus-qt.h: skeleton with two sample implemenatation of the
13797         main loop stuff
13798
13799 2002-12-24  Havoc Pennington  <hp@pobox.com>
13800
13801         * glib/dbus-gthread.c: fix include
13802
13803         * glib/dbus-glib.h: rename DBusMessageHandler for now.
13804         I think glib API needs to change, though, as you don't
13805         want to use DBusMessageFunction, you want to use the
13806         DBusMessageHandler object. Probably
13807         dbus_connection_open_with_g_main_loop()
13808         and dbus_connection_setup_g_main_loop() or something like that
13809         (but think of better names...) that just create a connection
13810         that has watch/timeout functions etc. already set up.
13811
13812         * dbus/dbus-connection.c
13813         (dbus_connection_send_message_with_reply): new function just to
13814         show how the message handler helps us deal with replies.
13815
13816         * dbus/dbus-list.c (_dbus_list_remove_last): new function
13817
13818         * dbus/dbus-string.c (_dbus_string_test): free a string that
13819         wasn't
13820
13821         * dbus/dbus-hash.c: use memory pools for the hash entries
13822         (rebuild_table): be more paranoid about overflow, and
13823         shrink table when we can
13824         (_dbus_hash_test): reduce number of sprintfs and write
13825         valid C89. Add tests for case where we grow and then
13826         shrink the hash table.
13827
13828         * dbus/dbus-mempool.h, dbus/dbus-mempool.c: memory pools
13829
13830         * dbus/dbus-connection.c (dbus_connection_register_handler)
13831         (dbus_connection_unregister_handler): new functions
13832
13833         * dbus/dbus-message.c (dbus_message_get_name): new
13834
13835         * dbus/dbus-list.c: fix docs typo
13836
13837         * dbus/dbus-message-handler.h, dbus/dbus-message-handler.c:
13838         an object representing a handler for messages.
13839
13840 2002-12-16  Anders Carlsson  <andersca@codefactory.se>
13841
13842         * glib/dbus-glib.h:
13843         * glib/dbus-gthread.c: (dbus_gthread_init):
13844         Don't use the gdbus prefix for public functions.
13845
13846 2002-12-16  Anders Carlsson  <andersca@codefactory.se>
13847
13848         * Makefile.am:
13849         * configure.in:
13850         Add GLib checks and fixup .pc files
13851
13852         * glib/Makefile.am:
13853         * glib/dbus-glib.h:
13854         * glib/dbus-gmain.c: (gdbus_connection_prepare),
13855         (gdbus_connection_check), (gdbus_connection_dispatch),
13856         (gdbus_add_connection_watch), (gdbus_remove_connection_watch),
13857         (dbus_connection_gsource_new):
13858         * glib/dbus-gthread.c: (dbus_gmutex_new), (dbus_gmutex_free),
13859         (dbus_gmutex_lock), (dbus_gmutex_unlock), (dbus_gthread_init):
13860         * glib/test-dbus-glib.c: (message_handler), (main):
13861         Add GLib support.
13862
13863 2002-12-15  Harri Porten  <porten@kde.org>
13864
13865         * autogen.sh: check for libtoolize before attempting to use it
13866
13867         * dbus/dbus-transport-unix.c: include <sys/time.h> for timeval
13868         struct.
13869
13870         * .cvsignore: ignore more stamp files
13871
13872         * dbus/dbus-watch.c (_dbus_watch_list_new): fixed doc error
13873
13874         * test/Makefile.am: added -I$(top_srcdir) to be able to compile
13875         without make install.
13876
13877 2002-12-15  Havoc Pennington  <hp@pobox.com>
13878
13879         * dbus/dbus-threads.c: add thread stubs that a higher library
13880         layer can fill in. e.g. the GLib wrapper might fill them in with
13881         GThread stuff. We still need to use this thread API to
13882         thread-safe-ize the library.
13883
13884 2002-12-12  Havoc Pennington  <hp@pobox.com>
13885
13886         * dbus/dbus-transport-unix.c, dbus/dbus-server-unix.c: use the
13887         below new interfaces and include fewer system headers.
13888
13889         * dbus/dbus-sysdeps.c (_dbus_read): new function
13890         (_dbus_write): new function
13891         (_dbus_write_two): new function
13892         (_dbus_connect_unix_socket): new function
13893         (_dbus_listen_unix_socket): new function
13894
13895         * dbus/dbus-message-internal.h: change interfaces to use
13896         DBusString
13897
13898 2002-12-11  Havoc Pennington  <hp@pobox.com>
13899
13900         * dbus/dbus-types.h: add dbus_unichar
13901
13902         * dbus/dbus-internals.c (_dbus_verbose): use _dbus_getenv
13903
13904         * dbus/dbus-connection.c (dbus_connection_send_message): return
13905         TRUE on success
13906
13907         * dbus/dbus-transport.c: include dbus-watch.h
13908
13909         * dbus/dbus-connection.c: include dbus-message-internal.h
13910
13911         * HACKING: add file with coding guidelines stuff.
13912
13913         * dbus/dbus-string.h, dbus/dbus-string.c: Encapsulate all string
13914         handling here, for security purposes (as in vsftpd). Not actually
13915         using this class yet.
13916
13917         * dbus/dbus-sysdeps.h, dbus/dbus-sysdeps.c: Encapsulate all
13918         system/libc usage here, as in vsftpd, for ease of auditing (and
13919         should also simplify portability). Haven't actually moved all the
13920         system/libc usage into here yet.
13921
13922 2002-11-25  Havoc Pennington  <hp@pobox.com>
13923
13924         * dbus/dbus-internals.c (_dbus_verbose): fix to not
13925         always print the first verbose message.
13926
13927 2002-11-24  Havoc Pennington  <hp@pobox.com>
13928
13929         * test/echo-client.c, test/echo-server.c: cheesy test
13930         clients.
13931
13932         * configure.in (AC_CHECK_FUNCS): check for writev
13933
13934         * dbus/dbus-message.c (_dbus_message_get_network_data): new
13935         function
13936
13937         * dbus/dbus-list.c (_dbus_list_foreach): new function
13938
13939         * dbus/dbus-internals.c (_dbus_verbose): new function
13940
13941         * dbus/dbus-server.c, dbus/dbus-server.h: public object
13942         representing a server that listens for connections.
13943
13944         * dbus/.cvsignore: create
13945
13946         * dbus/dbus-errors.h, dbus/dbus-errors.c:
13947         public API for reporting errors
13948
13949         * dbus/dbus-connection.h, dbus/dbus-connection.c:
13950         public object representing a connection that
13951         sends/receives messages. (Same object used for
13952         both client and server.)
13953
13954         * dbus/dbus-transport.h, dbus/dbus-transport.c:
13955         Basic abstraction for different kinds of stream
13956         that we might read/write messages from.
13957
13958 2002-11-23  Havoc Pennington  <hp@pobox.com>
13959
13960         * dbus/dbus-internals.h (_DBUS_INT_MAX): add _DBUS_INT_MIN
13961         _DBUS_INT_MAX
13962
13963         * dbus/dbus-test.c (main): add list test, and include
13964         dbus-test.h as intended
13965
13966         * dbus/dbus-hash.c (_dbus_hash_table_remove_string)
13967         (_dbus_hash_table_remove_int): return value indicates
13968         whether the entry existed to remove
13969
13970         * dbus/dbus-list.c: add linked list utility class,
13971         with docs and tests
13972
13973         * dbus/dbus-hash.c: add TODO item about shrinking the hash bucket
13974         array sometimes.
13975
13976 2002-11-23  Havoc Pennington  <hp@pobox.com>
13977
13978         * Doxyfile.in (INCLUDE_FILE_PATTERNS): expand DBUS_BEGIN_DECLS/
13979         DBUS_END_DECLS to nothing, that should fix this once and for all
13980
13981         * Doxyfile.in (JAVADOC_AUTOBRIEF): set to YES
13982
13983         * dbus/dbus-message.c, dbus/dbus-hash.c:
13984         add some missing @brief
13985
13986 2002-11-23  Havoc Pennington  <hp@pobox.com>
13987
13988         * dbus/dbus-message.h: put semicolons after DEBUG_BEGIN_DECLS
13989         to avoid confusing Doxygen
13990
13991         * dbus/dbus-hash.c: @} not }@
13992
13993         * dbus/dbus-message.c (struct DBusMessage): split out
13994         internals docs
13995
13996 2002-11-23  Havoc Pennington  <hp@pobox.com>
13997
13998         * configure.in: pile on more warning flags if using gcc
13999
14000         * Doxyfile.in (EXTRACT_STATIC): set to NO, so we don't have
14001         to document static functions
14002
14003         * configure.in: add summary to end of configure so it
14004         looks nice and attractive
14005
14006         * dbus/dbus-hash.c: finish implementation and write unit
14007         tests and docs
14008
14009         * configure.in: add --enable-tests to enable unit tests
14010
14011         * dbus/dbus-test.c: test program to run unit tests
14012         for all files in dbus/*, initially runs a test for
14013         dbus-hash.c
14014
14015         * dbus/dbus-internals.h: file to hold some internal utility stuff
14016
14017 2002-11-22  Havoc Pennington  <hp@redhat.com>
14018
14019         * dbus/dbus-hash.c: copy in Tcl hash table, not yet
14020         "ported" away from Tcl
14021
14022         * dbus/dbus-types.h: header for types such as dbus_bool_t
14023
14024 2002-11-22  Havoc Pennington  <hp@redhat.com>
14025
14026         * dbus/dbus.h: fixups for doc warnings
14027
14028         * Doxyfile.in (FILE_PATTERNS): we need to scan .h to pick up
14029         macros
14030         (QUIET): make it quiet so we can see warnings
14031
14032         * dbus/dbus-memory.c: teach D-BUS to allocate and free memory
14033
14034 2002-11-22  Havoc Pennington  <hp@redhat.com>
14035
14036         * Makefile.am: include "Doxyfile" target in all-local
14037
14038         * configure.in: generate the Doxyfile
14039
14040         * Doxyfile.in: move Doxyfile here, so we can use
14041         configure to generate a Doxyfile with the right
14042         version number etc.
14043
14044 2002-11-22  Havoc Pennington  <hp@redhat.com>
14045
14046         * dbus/dbus-message.c: move inline docs into .c file
14047
14048         * Doxyfile (OUTPUT_DIRECTORY): move output to doc/api
14049         so all docs are under doc/
14050         (MAN_EXTENSION): generate man pages. Use extension
14051         ".3dbus" which matches ".3qt" on my system,
14052         I guess this is OK, I don't know really.
14053         (FILE_PATTERNS): look for .c files not .h, makes sense
14054         for plain C I think
14055
14056 2002-11-22  Havoc Pennington  <hp@pobox.com>
14057
14058         * Makefile.am (SUBDIRS): rename subdir "server" to "bus"
14059         because any app can be a server, and any app can be a client,
14060         the bus is a special kind of server.
14061
14062 Thu Nov 21 23:35:31 2002  Zack Rusin  <zack@kde.org>
14063
14064         * Doxyfile : adding. Still needs Makefile rules to be generated
14065         automatically (just run "doxygen" in the toplevel dir for now to
14066         generate docs)
14067
14068         * dbus/dbus-message.h : Adding sample docs (javadoc since
14069         resembles gtk-doc a little more)
14070
14071         * dbus/dbus.h : Adding sample docs
14072
14073 2002-11-21  Havoc Pennington  <hp@redhat.com>
14074
14075         * dbus/Makefile.am (INCLUDES): define DBUS_COMPILATION
14076         so we can allow ourselves to include files directly,
14077         instead of having to use dbus.h
14078
14079         * dbus/dbus.h: fill in
14080
14081         * dbus/dbus-message.h: sketch out a sample header file.
14082         Include griping if you include it directly instead of
14083         via dbus.h
14084
14085         * dbus/dbus-macros.h: new file with macros for extern "C",
14086         TRUE/FALSE, NULL, etc.
14087
14088         * doc/file-boilerplate.c: put include guards in here
14089
14090 2002-11-21  Havoc Pennington  <hp@redhat.com>
14091
14092         * doc/file-boilerplate.c: include both AFL and GPL boilerplate.
14093
14094         * COPYING: include the GPL as well, and license code
14095         under both AFL and GPL.
14096
14097 2002-11-21  Havoc Pennington  <hp@redhat.com>
14098
14099         * acconfig.h: get rid of this
14100
14101         * autogen.sh (run_configure): add --no-configure option
14102
14103         * configure.in: remove AC_ARG_PROGRAM to make
14104         autoconf complain less. add AC_PREREQ.
14105         add AC_DEFINE third arg.
14106
14107 2002-11-21  Anders Carlsson  <andersca@codefactory.se>
14108
14109         * doc/Makefile.am:
14110         Fix references so we can distcheck.
14111
14112 2002-11-21  Havoc Pennington  <hp@redhat.com>
14113
14114         * Initial module creation
14115