* configure.in: Fix for OS-X compile time endian issues (patch from
[platform/upstream/dbus.git] / ChangeLog
1 2006-09-05  John (J5) Palmieri  <johnp@redhat.com>
2
3         * configure.in: Fix for OS-X compile time endian issues (patch from
4         Benjamin Reed <ranger at befunk dot com>)
5
6 2006-09-05  John (J5) Palmieri  <johnp@redhat.com>
7
8         * configure.in: Check for no-common compiler flag (OS-X fix from
9         Benjamin Reed <ranger at befunk dot com>)
10
11 2006-09-01  John (J5) Palmieri  <johnp@redhat.com>
12
13         * tools/dbus-launch.c: Add a sigterm handler (patch from Frederic Crozat
14         <fcrozat at mandriva dot com>)
15
16 2006-08-29  Havoc Pennington  <hp@redhat.com>
17
18         * test/test-service.c (path_message_func): fix lack of return value
19
20         * dbus/dbus-sysdeps.c (_dbus_printf_string_upper_bound): fix
21         formatting, remove #ifdef, and fix docs. #ifdef doesn't make
22         any more sense than on anything else in this file.
23         (_dbus_get_tmpdir): add const to return value, and keep the
24         results of the various getenv around in a static variable.
25
26 2006-08-29  Havoc Pennington  <hp@redhat.com>
27
28         * dbus/dbus-sysdeps-util.c, dbus/dbus-sysdeps-util-unix.c: change
29         from Ralf Habacker to move UNIX-specific sysdeps into a separate file.
30
31 2006-08-25  John (J5) Palmieri  <johnp@redhat.com>
32
33         * test/Makefile.am: change find to use syntax that works with non
34         gnu versions of find
35
36 2006-08-25  John (J5) Palmieri  <johnp@redhat.com>
37
38         * dbus/dbus-transport.c: fix invalid deref when checking if
39         a vtable method exists (Patch from Christian Ehrlicher 
40         <ch dot ehrlicher at gmx dot de>)
41
42 2006-08-25  John (J5) Palmieri  <johnp@redhat.com>
43
44         * configure.in, dbus/Makefile.am, test/name-test/run-test.sh, 
45         test/name-test/Makefile.am: Fixed some issues with getting get dbus 
46         to build with builddir != srcdir (Taken from a patch by Bernard Leak
47         <bernard at brenda-arkle dot demon dot co dot uk>)
48
49 2006-08-25  John (J5) Palmieri  <johnp@redhat.com>
50
51         * configure.in: Fix DBUS_DAEMONDIR to use EXPANDED_BINDIR for the
52         default case
53
54 2006-08-25  John (J5) Palmieri  <johnp@redhat.com>
55
56         * configure.ac, bus/Makefile.am: Generalize kqueue support so that
57         it works on any system providing this interface, not only FreeBSD.
58         For example, NetBSD. (Patch by Julio M. Merino Vidal  <jmmv at NetBSD dot org>)
59
60 2006-08-20  Havoc Pennington  <hp@redhat.com>
61
62         * doc/dbus-faq.xml, doc/dbus-tutorial.xml: some improvements to
63         the docs
64
65 2006-08-18  John (J5) Palmieri  <johnp@redhat.com>
66
67         * Released 0.92 
68
69 2006-08-18  John (J5) Palmieri  <johnp@redhat.com>
70
71         * dbus/dbus-threads.c (dbus_threads_init): change the documentation
72         to reflect the init late change
73
74         * bus/bus.c (bus_context_new): Check user before we fork so we can
75         print out an error message a user will be able to see
76
77 2006-08-18  John (J5) Palmieri  <johnp@redhat.com>
78
79         Patch provided by Ralf Habacker (ralf dot habacker at freenet dot de) 
80
81         * dbus/dbus-sysdeps.c, dbus/dbus-threads.c, dbus/dbus-internals.h:
82         Add two more global locks for use on windows platforms.  These are
83         unused on non-windows platforms but are not ifdefed out to avoid
84         potential bugs (i.e. the few bytes lost does not warrent the extra
85         maintanence and complexity that having seperate sets of locks would
86         cause)
87
88 2006-08-18  John (J5) Palmieri  <johnp@redhat.com>
89
90         * bus/services.c (bus_registry_acquire_service): Return an error
91         when an application tries to register the org.freedesktop.DBus Bus Name
92
93         * bus/services.c (bus_registry_release_service): Return an error
94         when an application tries to release the org.freedesktop.DBus Bus Name
95
96 2006-08-17  Alp Toker  <alp@atoker.com>
97
98         * doc/dbus-specification.xml: Fix some minor typos.
99
100 2006-08-17  John (J5) Palmieri  <johnp@redhat.com>
101
102         * configure.in: use $with_init_scripts instead of $operating_system
103         to determine where to store the pid since the init scripts manipulate 
104         the pid file (patch from Marcelo Ricardo Leitner 
105         <marcelo dot leitner at terra dot com dot br>.  
106
107 2006-08-16  John (J5) Palmieri  <johnp@redhat.com>
108
109         * dbus/dbus-threads.c: Add static DBusList *uninitialized_mutex_list and
110         static DBusList *uninitialized_condvar_list to support new late 
111         initialization threading model.  In this model threads can be initialized
112         even after the D-Bus API has been used but still needs to be initialized 
113         before the second thread has been started.  Mutexes and condvar addresses
114         are stored in the two static lists and are replaced with actuall locks
115         when threads are initalized.
116         (_dbus_mutex_new_at_location): New method for creating a mutex and placing
117         the location into the static list
118         (_dbus_mutex_free_at_location): New method for removing a mutex location 
119         from the static list and freeing the mutex
120         (_dbus_condvar_new_at_location): New method for creating a conditional 
121         variable and placing the location into the static list
122         (_dbus_condvar_free_at_location): New method for removing a conditional
123         variable location from the static list and freeing the conditional variable 
124         (init_uninitialized_locks): Atomic method which goes through the static 
125         lists of mutex and condvar location and updates them with actuall locks
126         (init_global_locks): changed to init_locks
127         
128         * dbus/dbus-connection.c:
129         (_dbus_connection_test_get_locks): New method for tests to check connections
130         (_dbus_connection_new_for_transport): Use the new at_location mutex and
131         condvar API
132         (dbus_connection_allocate_data_slot): Pass in the global lock address
133         to _dbus_data_slot_allocator_alloc
134
135         * dbus/dbus-dataslot.c:
136         (_dbus_data_slot_allocator_alloc): Use the address of the mutex
137         instead of the mutex itself
138
139         * dbus/dbus-message.c:
140         (dbus_message_allocate_data_slot): Pass in the global lock address
141         to _dbus_data_slot_allocator_alloc
142
143         * dbus/dbus-pending-call.c:
144         (dbus_pending_call_allocate_data_slot): Pass in the global lock address
145         to _dbus_data_slot_allocator_alloc
146
147         * dbus/dbus-server.c:
148         (_dbus_server_init_base): Use the new at_location mutex API
149         (dbus_server_allocate_data_slot): Pass in the global lock address
150         to _dbus_data_slot_allocator_alloc
151
152         * test/name-test/test-threads-init.c: New test case for late thread
153         initialization
154
155 2006-08-14  John (J5) Palmieri  <johnp@redhat.com>
156
157         * dbus/dbus-dataslot.c (_dbus_data_slot_allocator_alloc):
158         Change _dbus_abort to _dbus_assert_not_reached because _dbus_abort
159         causes compile problems when asserts are turned off
160         Keeping _dbus_warn for printing out the message so even if
161         asserts are turned off the user gets the messages that something is 
162         wrong 
163
164 2006-08-14  John (J5) Palmieri  <johnp@redhat.com>
165
166         Patches by Kjartan Maraas <kmaraas at gnome dot org>
167
168         * bus/services.c (bus_service_list_queued_owners):
169         Add a pointer cast to fix compiler warning
170
171         * dbus/dbus-dataslot.c (_dbus_data_slot_list_get):
172         return a NULL instead of FALSE since the return type
173         is not expecting a boolean
174
175         * dbus/dbus-marshal-basic.c (_dbus_marshal_test):
176         Remove unused variable
177
178         * dbus/dbus-marshal-recursive-util.c (node_new):
179         return a NULL instead of FALSE since the return type
180         is not expecting a boolean
181
182         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
183         Send a NULL into _dbus_transport_new_for_fd instead of a FALSE
184         because we are expecting a pointer not a boolean
185
186         * dbus/dbus-sysdeps-util.c (_dbus_get_tmpdir): 
187         add void as the parameter so some compilers
188         don't complain
189
190         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_domain_socket,
191           _dbus_transport_new_for_tcp_socket):
192         Send a NULL into _dbus_transport_new_for_fd instead of a FALSE
193         because we are expecting a pointer not a boolean
194
195         * test/shell-test.c (test_command_line):
196         cast the second argument to _dbus_list_append to avoid compiler
197         warnings
198
199         * test/test-names.c (main): remove unused variable
200
201         * test/test-service.c (check_hello_from_self_reply):
202         Initialize echo_message and echo_reply to NULL
203         
204         * test/test-shell-service.c (handle_echo):
205         Remove unused variable and cast the third parameter passed to
206         dbus_connection_get_object_path_data to avoid compiler warrnings
207
208         * test/name-test/test-names.c (clear_message_queue):
209         Remove unused function
210
211         * test/name-test/test-pending-call-dispatch.c:
212         Fix format string in printf
213
214
215 2006-08-14  John (J5) Palmieri  <johnp@redhat.com>
216
217         * dbus/dbus-bus.c:
218         * test/name-test/test-names.c:
219         Remove test method dbus_bus_connection_get_unique_name because 
220         we already have public method dbus_bus_get_unique_name that 
221         does the exact same thing
222
223 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
224
225         * dbus/dbus-signature.c:
226         fix typos in Julio's previous patch which cause make check to fail
227
228 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
229
230         * dbus/dbus-address.c (_dbus_address_test): Revert leaking strcmp.  
231         In any case it was wrong since this is a test checking to see if
232         address parsing is correct.  There was no need to get the true
233         tmp directory.  
234
235 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
236
237         * dbus/dbus-macros.h: Revert the addition of stddef.h
238         as we should not be adding it to library headers 
239
240 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
241
242         * dbus/dbus-signature.c:
243         Fix the unit tests so that they work if assertions are not enabled.
244         (patch from Julio M. Merino Vidal  <jmmv at NetBSD dot org>)
245
246 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
247
248         * tools/run-with-tmp-session-bus.sh:
249         * test/name-test/run-test.sh:
250         Remove bashisms (patch from Julio M. Merino Vidal
251         <jmmv at NetBSD dot org>)
252
253 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
254
255         * configure.in: add a version (>= 2.6.0) check for libxml2
256
257 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
258
259         * configure.in: make sure the compiler supports -Wfloat-equal
260         
261         * bus/dir-watch-dnotify.c: move functional code after 
262         variable declerations (C99 fix)  (patches from Jens Granseuer
263         <jensgr at gmx dot net>
264
265 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
266
267         * dbus/dbus-macros.h:
268         add #include <stddef.h> so that Sun compilers don't complain about
269         the defining NULL
270
271 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
272
273         * dbus/dbus-sysdeps.c:
274         * dbus/dbus-address.c:
275         * bus/activation.c:
276         * test/shell-test.c:
277         don't hardcode tmp directory (patch from Dave Meikle 
278         <dmk at davemeikle dot co dot uk>)
279
280 2006-08-09  John (J5) Palmieri  <johnp@redhat.com>
281
282         * dbus/dbus-dataslot.c (_dbus_data_slot_allocator_alloc):
283         Change an assert to a detailed warning and abort.  
284         When allocator->lock != mutex it indicates that the user has failed
285         to initalize threads before using the D-Bus library.  This warning
286         helps the user identify the issue and fix their app.
287
288 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
289
290         These are all patches from Kjartan Maraas <kmaraas at gnome dot org>
291         with cleanups of bugs found from Coverity reports:
292
293         * dbus/dbus-sysdeps-util.c (_dbus_write_pid_file):
294         close the file on error to avoid a leak
295
296         * bus/expirelist.c (bus_expire_list_test):
297         Check for NULL on dbus_new0
298
299         * bus/activation.c (update_directory):
300         remove dead code
301
302         * bus/config-parser.c (merge_service_context_hash, start_selinux_child):
303         Fix some leaks
304
305         * bus/bus.c (process_config_every_time):
306         Fixed a leak
307
308         * bus/desktop-file.c (parse_key_value):
309         Fixed leak
310
311         * bus/selinux.c (bus_selinux_id_table_insert):
312         Fixed leak
313
314 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
315
316         * dbus/dbus-object-tree.c (_dbus_object_subtree_new):
317         remove dead code
318
319 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
320
321         * tools/run-with-tmp-session-bus.sh: use #!/bin/sh instead of
322         #!/bin/bash
323
324 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
325
326         * Doxyfile.in: fix the INPUT line so we can generate docs 
327         when sourcedir != builddir (patch from Cygwin Ports maintainer
328         <yselkowitz at users dot sourceforge dot net>
329
330 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
331
332         * dbus/dbus-sysdeps.h:
333         * dbus/dbus-sysdeps.c: 
334         * dbus/dbus-string.c: 
335         s/_dbus_printf_length/_dbus_printf_string_upper_bound to comform with
336         GLib's function which does the same thing
337
338         * configure.in:
339         * bus/Makefile.am:
340         * bus/dir-watch-default.c:
341         * bus/dir-watch-dnotify.c:
342         * bus/dir-watch-kqueue.c:
343         Add kqueue directory watching for freebsd and split the directory
344         watching code into seperate files per method/arch
345         (patches from Timothy Redaelli <drizzt at gufi dotorg>)
346
347 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
348
349         * configure.in:
350         * tools/Makefile.am:
351         * tools/dbus-launch.c:
352         * bus/Makefile.am:
353         allow --with-dbus-daemondir switch to be used to make the
354         daemon install to a seperate bindir like /usr/libexec
355         (patch from Brian Cameron <brian dot cameron at sun dot com)
356
357 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
358
359         * bus/Makefile.am (install-data-hook): removed the slash after 
360         $(DESTDIR) so we don't get the double slash which does not work
361         in windows (patch from Andras Porjesz 
362         <andras dot porjesz at siemens dot com>)
363
364 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
365
366         * dbus/dbus-sysdeps.h:
367         * dbus/dbus-sysdeps.c: 
368           add _dbus_printf_length (patch from Peter Kümmel 
369           <syntheticpp at gmx dot net>)
370
371 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
372
373         * dbus/dbus-internals.c: unistd.h is not used 
374         (_dbus_verbose_real): only enable verbose printing 
375         if DBUS_VERBOSE environment var is set to '1'
376         (patch from Peter Kümmel <syntheticpp at gmx dot net>)
377
378 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
379
380         * configure.in: add a GCC flag check for -Wdeclaration-after-statement
381         so we still compile on older gcc (patch from Frederic Peters 
382         <fpeters at 0d dot be>
383
384 2006-08-04  Havoc Pennington  <hp@redhat.com>
385
386         * configure.in: add -Wdeclaration-after-statement
387
388         * dbus/dbus-connection.c: change all the pending call stuff to
389         reflect the fact that pending call operations use the connection
390         lock
391
392         * dbus/dbus-pending-call.c: add locking here
393
394         * dbus/dbus-errors.c (struct DBusRealError): don't make the name
395         field const consistent with how message field is done
396
397 2006-08-03  John (J5) Palmieri  <johnp@redhat.com>
398
399         * s/D-BUS/D-Bus/g
400
401 2006-08-03  John (J5) Palmieri  <johnp@redhat.com>
402
403         * dbus/dbus-object-tree.c: Patch by Benjamin Otte 
404         <in7y118 at public.uni-hamburg dot de> - fix invalid
405         read/write reported by valgrind
406
407 2006-07-24  John (J5) Palmieri  <johnp@redhat.com>
408
409         * Released 0.91
410
411 2006-07-22  John (J5) Palmieri  <johnp@redhat.com>
412
413         * dbus/dbus-connection.c:
414         (_dbus_connection_attach_pending_call_unlocked):
415         (connection_timeout_and_complete_all_pending_calls_unlocked):
416         Make sure we set timeout_added on pending calls to FALSE when
417         we remove the timeout from the connection
418
419 2006-07-21  John (J5) Palmieri  <johnp@redhat.com>
420
421         * Removed some extra bindings stuff lingering around (thanks timo)
422         * dbus-pendingcall.c (_dbus_pending_call_new): 
423         s/dbus_connection_ref/_dbus_connection_ref_unlocked fixes assertion
424         when we tried to take a lock on an already locked connection
425
426 2006-07-17  John (J5) Palmieri  <johnp@redhat.com>
427
428         * Released 0.90
429
430 2006-07-17  Havoc Pennington  <hp@redhat.com>
431
432         * dbus/dbus-marshal-basic.c (_dbus_type_to_string): support 64-bit
433         ints, reported by Owen Taylor
434
435 2006-07-17  John (J5) Palmieri  <johnp@redhat.com>
436
437         * doc/TODO:
438         * dbus/dbus-bus.c:
439         * dbus-errors.c:
440         * dbus/dbus-marshal-validate.c:
441           Removed TODO items which were fixed or are no longer relevent
442
443 2006-07-17  John (J5) Palmieri  <johnp@redhat.com>
444
445         * dbus-qt4-1.pc.in, dbus-sharp.pc.in:
446         Remove stray files from the stripped bindings
447
448 2006-07-16  Havoc Pennington  <hp@redhat.com>
449
450         * dbus/dbus-pending-call.c (_dbus_pending_call_set_timeout_error):
451         Improve the error message on reply timeout
452
453 2006-07-14  John (J5) Palmieri  <johnp@redhat.com>
454
455         * Remove all bindings
456
457 2006-07-13  John (J5) Palmieri  <johnp@redhat.com>
458
459         * dbus-connection.c (dbus_connection_send_with_reply): return TRUE
460         and set pending_reply out arg to NULL is connection is disconnected
461         (connection_timeout_and_complete_all_pending_calls_unlocked): New
462         static method for cleaning up pending calls on disconnect
463         (_dbus_connection_get_dispatch_status_unlocked): If we have pending 
464         calls queued timeouts on disconnect 
465
466          * dbus/dbus-pending-call.c (_dbus_pending_call_set_connection):
467         Remove 
468
469 2006-07-13  Carlos Garcia Campos  <carlosgc@gnome.org>
470
471         * bus/activation.[ch] (bus_activation_list_services): new function to 
472         get the list of services that can be activated
473
474         * bus/dispatch.c: test coverage for the new bus method
475         ListActivatableNames
476
477         * bus/driver.c: new bus method ListActivatableNames to get the list of
478         services that can be activated
479
480         * doc/dbus-specification.xml: ListActivatableNames method documentation
481
482 2006-07-12  John (J5) Palmieri  <johnp@redhat.com>
483         * dbus/Makefile.am: add dbus-pending-call-internal.h to the list of
484         source files
485
486 2006-07-12  John (J5) Palmieri  <johnp@redhat.com>
487         * dbus/dbus-message-factory.c:
488         Fix index into an array (patch by Peter Kümmel <syntheticpp at gmx.net>)
489
490 2006-07-12  John (J5) Palmieri  <johnp@redhat.com>
491         * dbus/dbus-connection-internal.h:
492         * dbus/dbus-connection.c:
493         * file dbus/dbus-pending-call.c:
494         * dbus/dbus-pending-call.h:
495         Make DBusPendingCall an opaque type even to D-Bus internals
496
497 2006-07-07  John (J5) Palmieri  <johnp@redhat.com>
498
499         * dbus/dbus-connection.h: remove connection_disconnect and replace with
500         connection_close
501
502         * dbus/dbus-connection.c: include dbus-bus.h
503         (_dbus_connection_read_write_dispatch): make static
504
505 2006-07-07  John (J5) Palmieri  <johnp@redhat.com>
506
507         * dbus/dbus-connection.c (dbus_connection_close): removed deprecated
508         function
509         (dbus_connection_dispatch): On disconnect unref any shared connections
510
511         * dbus/dbus-bus.c (_dbus_bus_check_connection_and_unref): new function
512         for cleaning up shared connections on disconnect
513         (internal_bus_get): get a hard refrence to shared connections when
514         they are created
515         
516         * doc/TODO: Remove items which are no longer relevent or have been fixed
517         Split 1.0 todo items with a 0.90 freeze todo list
518  
519 2006-06-14  Ross Burton  <ross@openedhand.com>
520
521         * glib/dbus-gobject.c:
522         Free a leaking GArray (surely not!) in dbus_g_method_return.
523
524 2006-06-14  Ross Burton  <ross@openedhand.com>
525
526         * tools/Makefile.am:
527         * tools/dbus-monitor.c:
528         Don't use the GLib bindings in dbus-monitor (patch from Ralf
529         Habacker).
530         
531 2006-06-14  Ross Burton  <ross@openedhand.com>
532
533         * tools/dbus-print-message.c:
534         Also print the object path when outputting signals or method calls.
535
536 2006-06-13  Thiago Macieira <thiago.macieira@trolltech.com>
537
538         * qt/src/Makefile.am: install the qdbus.h header.
539         This allows people to actually use the installed code.
540
541 2006-06-12  Ross Burton  <ross@openedhand.com>
542
543         * glib/dbus-gproxy.c:
544         Don't leak a GArray when firing signals (thank Rob Taylor for review).
545
546 2006-06-12  Thiago Macieira <thiago.macieira@trolltech.com>
547
548         * Released 0.62
549
550 2006-06-12  Thiago Macieira <thiago.macieira@trolltech.com>
551
552         * dbus/dbus-arch-deps.h.in: Remove spurious semi-colons that
553         break pedantic builds. Closes bug 6043 (patch approved by
554         Havoc back in February).
555
556 2006-06-12  Thiago Macieira <thiago.macieira@trolltech.com>
557
558         * qt/src/qdbusintegrator.cpp: Fix bug in parsing async methods
559         that took a QDBusMessage parameter.
560         * qt/src/qdbusbus.h: Add a default flag for RequestName.
561         * qt/tools/dbus.cpp: Don't use automatic call because we might
562         be calling an async method: request a reply.
563
564 2006-06-11  Thiago Macieira <thiago.macieira@trolltech.com>
565
566         * test/qt/*: Update the testcases, including testing the new
567         functionality of sending null QByteArray and QString over the
568         bus. Add new headertest test and restore the old
569         qdbusxmlparser test.
570
571 2006-06-11  Thiago Macieira <thiago.macieira@trolltech.com>
572
573         * qt/tools/dbuscpp2xml.cpp: Compile on Windows.
574         * qt/tools/dbusidl2cpp.cpp: Add missing newline.
575
576         * qt/examples/Makefile.am:
577         * qt/examples/chat.h: Use UI-generated files with the ui_*.h
578         form.
579
580         * qt/src/qdbusmarshall.cpp: Allow sending of QString() and
581         QByteArray() (nulls) over the bus.
582         * qt/src/qdbusabstractinterface.cpp: Use the correct variable,
583         the one that has the signature suffix stripped.
584         * qt/src/qdbusreply.h: Make some methods const.
585
586 2006-06-09  Thiago Macieira <thiago.macieira@trolltech.com>
587
588         Patch from Timo Hoenig <thoenig@suse.de>.
589
590         * qt/dbus/Makefile.am: New file.  Fix "make dist", add all headers
591         required during build to EXTRA_DIST.
592         * qt/src/Makefile.am: Fix "make dist", add 'qdbus.h' to EXTRA_DIST.
593         * qt/Makefile.am: Fix "make dist", add 'dbus' to DIST_SUBDIRS.
594         * configure.in: Fix "make dist", take care that the Makefile for
595         qt/dbus is being generated.
596
597 2006-06-07  John (J5) Palmieri  <johnp@redhat.com>
598
599         * bus/bus.c: Fix eavesdropping on method calls
600
601 2006-06-07  John (J5) Palmieri  <johnp@redhat.com>
602
603         * configure.in:
604         * dbus/dbus-userdb-util.c:
605         Add Solaris console owner patch from Artem Kachitchkine
606
607 2006-06-07  Thiago Macieira <thiago.macieira@trolltech.com>
608
609         * qt/Makfile.am:
610         * qt/src/Makefile.am: Fix the EXTRA_DIST after the
611         reorganisation. Thanks to Timo Hoenig for pointing this out.
612
613 2006-06-06  Robert McQueen  <robot101@debian.org>
614
615         * glib/dbus-gtype-specialized.c: Fix obvious leak of GArray in every
616           call to dbus_g_type_get_struct.
617
618 2006-06-06  Robert McQueen  <robot101@debian.org>
619
620         * glib/dbus-gvalue-utils.c: Fix the failing test where static string
621           pointers were put into a GPtrArray-based specialised collection, and
622           then freed along with the array. GValues which you add into
623           collections or maps which have the NOCOPY flag set are assumed to not
624           belong to the caller, so rather than the existing pointer-stealing
625           semantics, they are copied instead. Given that the main consumers of
626           this abstraction are the bindings themselves, I don't think this is
627           too bad, but others should watch their choice of take vs set_static.
628
629 2006-06-06  Robert McQueen  <robot101@debian.org>
630
631         * glib/dbus-gvalue-utils.c: Spotted a warning about the return value
632           of g_slist_prepend not being used. Fixed copying of slist-based
633           specialised collections, then wrote a test case and found that it was
634           all broken. Went on to fix iterating and appending too. Good thing
635           nobody uses this code yet.
636
637 2006-06-06  Robert McQueen  <robot101@debian.org>
638
639         * glib/dbus-gvalue-utils.c: Remove duplicated code by having all of
640           the iterators use gvalue_take_ptrarray_value (the GValues themselves
641           are discarded without unsetting, so it makes no difference whether
642           we take or set_static). Remove cases for G_TYPE_POINTER because
643           there really is nothing useful we can do with them in our
644           specialised types - we *need* boxed copy/free functions at the very
645           least.
646
647 2006-06-05  Thiago Macieira <thiago.macieira@trolltech.com>
648
649         * qt/dbus: Add directory. I had forgotten to add this
650         yesterday after the move...
651
652         * qt/examples/Makefile.am:
653         * qt/examples/dbus.cpp: Moved to qt/tools/dbus.cpp.
654
655         * qt/tools/Makefile.am:
656         * qt/tools/dbus.cpp: Moved from qt/examples/dbus.cpp.
657         Added feature to get and set properties.
658         Added validation of service, object path and interface names.
659
660         * qt/tools/dbusidl2cpp.cpp: Two new features:
661         1) Allow specifying both the header and the source file names,
662         by separating them with a colon.
663         2) Don't write an interface output if the -p switch wasn't
664         given, but the -a was.
665
666         * qt/src/*: Fix usage of Iterators and ConstIterators.
667         Fix shadowing of variables by other variables (-Wshadow).
668         Fix keyword-cleanliness in headers.
669         Fix ASCII-cast (QLatin1String, QLatin1Char).
670         Fix validation of member names.
671         Add extra checking of introspection data during XML parsing.
672         Various bug fixes.
673
674 2006-06-04  Thiago Macieira <thiago.macieira@trolltech.com>
675
676         * dbus/Makefile.am:
677         * dbus/qdbus.h: Remove unnecessary file. This is mirrored into
678         qt/dbus/qdbus.h now.
679
680 2006-06-04  Thiago Macieira <thiago.macieira@trolltech.com>
681
682         * configure.in: Make --disable-qt actually do
683           something. Patch inspired by Zack Rusin.
684
685 2006-06-04  Thiago Macieira <thiago.macieira@trolltech.com>
686
687         * qt/: Update to Subversion r548032.
688         This includes a big reorganisation of the files inside the
689         subdir.
690
691 2006-05-30  Sjoerd Simons  <sjoerd@luon.net>
692
693         * dbus/dbus-sysdeps.c: Make tcp socket connection error somewhat more
694         clear:  
695         "Failed to connect to socket <host>:<port> <error>" instead of
696         "Failed to connect to socket <host>: <error>:<port>"
697
698         * dbus/dbus-transport-unix.c: Fix crash when no host option is given
699         for a tcp transport. 
700
701 2006-05-29  Thiago Macieira  <thiago.macieira@trolltech.com>
702
703         * qt/*: Update the QtDBus bindings up to revision 546310 in
704         Subversion.
705         This adds the dbuscpp2xml tool, that parses a C++ header and
706         outputs a D-BUS Introspection XML.
707
708 2006-05-21  Havoc Pennington  <hp@redhat.com>
709
710         * glib/dbus-gproxy.c: Put in a pile of assertions that the proxy name
711         is not NULL when it shouldn't be. Also a couple of possible fixes
712         for #4637 though I don't understand why the bug happens, to be
713         honest... also the object constructor has an assert name != NULL
714         and the name is only currently NULL for peer-to-peer proxies that 
715         I don't think anyone uses? So it should be asserting.
716         Anyway, for now at least see if we get an earlier assertion failure.
717
718         * glib/dbus-gvalue-utils.c: Put in a couple of assertions for
719         apparently broken code to be sure the tests fail and someone 
720         will fix them...
721
722 2006-05-07  Thiago Macieira  <thiago.macieira@trolltech.com>
723
724         * qt/qdbusmarshall.cpp: Fix a problem of demarshalling lists
725         and arrays when they had a single element: has_next returns
726         false, even before you read the element. So, instead, check
727         the array length.
728
729 2006-05-06  Thiago Macieira  <thiago.macieira@trolltech.com>
730
731         * qt/qdbusmessage.cpp:
732         * qt/qdbustypehelper_p.h:
733         * qt/qdbusintegrator.cpp: gcc 3.4 doesn't like Q_FOREACH when
734         the list is a const-reference
735
736 2006-05-03  John (J5) Palmieri  <johnp@redhat.com>
737
738         * Adding old doc patch that never got applied
739         
740         * dbus/bus.c (dbus_bus_add_match): Add documentation
741
742         * doc/dbus-specification.xml: Add documentation for the match rules
743           and the AddMatch and RemoveMatch methods
744
745 2006-05-02  Thiago Macieira  <thiago.macieira@trolltech.com>
746
747         * qt/dbusidl2cpp.cpp: There's no callAsync. Use the correct
748         call (r535506)
749
750         * qt/dbusidl2cpp.cpp:
751         * qt/qdbusabstractadaptor.cpp:
752         * qt/qdbusabstractadaptor.h: Make QDBusAdaptorConnector be a
753         sibling of the QDBusAbstractAdaptor objects instead of the
754         parent. (r535848)
755
756         * qt/dbusidl2cpp.cpp:
757         * qt/qdbusabstractinterface.cpp:
758         * qt/qdbusabstractinterface.h:
759         * qt/qdbusabstractinterface_p.h:
760         * qt/qdbusinterface.cpp: Make properties in interfaces
761         actually work. The code that was generated would not compile,
762         due to moc calls to functions that did not exist. They now
763         shall. (r536571)
764
765 2006-04-30  Thiago Macieira  <thiago.macieira@trolltech.com>
766
767         * Makefile.am:
768         * configure.in:
769         * dbus-qt4-1.pc.in: Add a pkg-config file for libdbus-qt4-1.
770         Thanks to Brad Hards for providing the patch
771
772 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
773
774         * qt/dbusidl2cpp.cpp: There's no callAsync. Use the correct
775         call. (r535506)
776
777 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
778
779         * qt/examples/dbus.cpp: Enhance error messages and use
780         QDBusInterfacePtr.
781
782 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
783
784         * qt/qdbusinterface.h: Rename QDBusRef to QDBusInterfacePtr
785         and disable the copy operators. (r533772, r534746)
786
787         * qt/qdbuserror.h: Remove the automatic cast to bool. (r533929)
788
789         * qt/qdbusabstractinterface.cpp:
790         * qt/qdbusabstractinterface.h: Change the default call mode to
791         not use the event loop. Add convenience call() methods that
792         take a CallMode parameter. (r534042)
793
794         * qt/qdbusconnection.h: Change the default call mode to not
795         use the event loop. (r534042)
796
797         * qt/qdbusinterface.cpp:
798         * qt/qdbusinterface.h: Add a method to tell us if the
799         interface is valid (since we don't return a null pointer
800         anymore) (r534099)
801
802         * qt/qdbusinterface_p.h: Don't crash if metaObject is 0
803         (r534101)
804
805         * qt/qdbusinternalfilters.cpp: Decouple the introspection
806         function in two so taht we get the chance to introspect
807         without having a QDBusMessage (r534102)
808
809         * qt/qdbusbus.h:
810         * qt/qdbusconnection.cpp:
811         * qt/qdbusconnection_p.h:
812         * qt/qdbusintegrator.cpp: Keep a list of our own names to
813         avoid a round-trip to the server when attempting to introspect
814         one of our own objects. Also make sure the filter functions
815         match the empty interface as well. (r534108)
816         Don't keep the connection names. Instead, trust the unique
817         connection name (r534111)
818         Remove event loop usage (r534112)
819
820 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
821
822         * qt/qdbusintegrator.cpp: Fix assertion failure spotted by
823         Brad Hards.
824
825 2006-04-28  Robert McQueen  <robot101@debian.org>
826
827         * glib/dbus-gproxy.c: Fix properties so that they can be given in
828         any order, making it easier for people who inherit from this
829         object.
830
831 2006-04-28  Robert McQueen  <robot101@debian.org>
832
833         * glib/dbus-gvalue-utils.c: Patch from Jakub Stachowski to fix leaking
834         of memory from within pointer arrays and lists. Fixes bug #6300.
835
836 2006-04-28  Robert McQueen  <robot101@debian.org>
837
838         * glib/dbus-gvalue.c: Patch from Jakub Stachowski to fix a leak in
839         generating struct signatures. Fixes bug #6083.
840
841 2006-04-28  Robert McQueen  <robot101@debian.org>
842
843         * qt/Makefile.am: Tweak CLEANFILES from qdbusconnection.moc
844         to qdbusconnection_p.moc.
845
846 2006-04-24 John (J5) Palmieri <johnp@redhat.com>
847
848         * README, INSTALL: Doc fixes
849         Patch from Brad Hards <bradh at frogmouth.net>
850
851 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
852
853         * qt/examples/dbus.cpp: Use the new merged-interface mode for
854         the dynamic meta object. No need to guess which interface to
855         call.
856
857 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
858
859         * qt/qdbusconnection_p.h:
860         * qt/qdbusmetaobject.cpp:
861         * qt/qdbusmetaobject_p.h:
862         * qt/qdbusintegrator.cpp: Use the new merged-interface mode
863         for the dynamic meta object. No need to guess which
864         interface to call.
865         * qt/qdbusabstractinterface_p.h:
866         * qt/qdbusconnection.cpp:
867         * qt/qdbusintegrator.cpp:
868         * qt/qdbusinterface.cpp:
869         * qt/qdbusinterface.h: Make findInterface always return a non-null pointer.
870         Add a QDBusRef that looks and behaves like DCOPRef.
871
872 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
873
874         * dbus/dbus-connection.c: Interfaces are optional in method
875         calls, so don't give up if the interface parameter is NULL.
876         Patch reviewed by Havoc Pennington.
877
878 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
879
880         * qt/qdbusreply.h: Add default constructor and operator=
881           (r532625)
882         * qt/qdbustypehelper_p.h: Use a clean namespace: no foreach()
883           in public headers (r532952)
884         * qt/qdbusabstractinterface.cpp:
885         * qt/qdbusabstractinterface_p.h: Add the AutoDetect mode and
886           make it the default (r532951)
887
888 2006-04-19  John (J5) Palmieri  <johnp@redhat.com>
889
890         * dbus/dbus-connection.c: Fix asserts
891         Patch from Tim Moloney <t.moloney at verizon.net>
892
893 2006-04-19  John (J5) Palmieri  <johnp@redhat.com>
894
895         * mono/Connection.cs, mono/Message.cs: Check Target type
896         Patch from Aaron Bockover (abockover at novell.com)
897
898 2006-04-13  Thiago Macieira  <thiago.macieira@trolltech.com>
899
900         * INSTALL: fine-tune the requirements for the Qt4 binding.
901
902 2006-04-16  Daniel P. Berrange  <dan@berrange.com>
903
904         * tools/dbus-print-message.c: Added support for printing of all 
905           remaining data types. Fixed logic for indentation of compound
906           data types.
907         
908 2006-04-15  Daniel P. Berrange  <dan@berrange.com>
909
910         * INSTALL: fill out content of file providing DBus specific
911           build installations, followed by generic Auto* INSTALL file
912           content
913         
914 2006-04-13  Thiago Macieira  <thiago.macieira@trolltech.com>
915
916         * qt/qdbusintegrator.cpp: Work around g++ 3.3 bug.
917           Patch by Stefan Eilers. (r529537)
918
919 2006-04-13  Thiago Macieira  <thiago.macieira@trolltech.com>
920
921         * qt/qdbusinternalfilters.cpp: Don't show the parent's
922           contents (r528208)
923
924 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
925
926         * qt/Makefile.am: fix the dependency for
927           qdbusconnection_p.moc. It's included in qdbusintegrator.cpp,
928           not in qdbusconnection.cpp.
929           Thanks to Jakub Stachowski <stachowski@hypair.net> for
930           spotting this.
931
932 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
933
934         * qt/examples/listnames.cpp:
935         * qt/examples/Makefile.am: Three ways to list the names on the
936           bus.
937
938 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
939
940         * test/qt/tst_hal.cpp: Remove the waiting, since it's not
941           needed anymore. Requires Qt 4.1.3 to work properly. (r528148)
942
943 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
944
945         Merge from Subversion:
946         * qt/qt-dbus.qdocconf: Update Trolltech's webpage link to
947           something that exists (r526315)
948         * qt/qdbusinternalfilters.cpp: Correctly detect non-scriptable
949           slots/signals (r526316)
950         * qt/qdbusinternalfilters.cpp: Fix the setProperty call and
951           also return an unknown-method error if the parameters don't
952           match for org.freedesktop.DBus.Properties. (r526842)
953         * qt/examples/dbus.cpp: Allow passing of QVariants (r526843)
954         * qt/qdbusintegrator.cpp: Restore the proper order of
955           delivery: don't make method returns be delivered on priority
956           (r528150)
957
958 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
959
960         * configure.in qt/Makefile.am: add qt/examples
961         * qt/examples: Add QtDBus example programs:
962           - hello: Hello, World
963           - ping: Simple method-calling program
964           - pong: Simple object-exporting program (not using adaptors)
965           - complexping: Interactive method-calling program 
966                 (also gets and sets properties).
967           - complexpong: Sample program exporting methods, signals and
968                 properties, using adaptors.
969           - dbus: Simple implementation of a generic method-calling
970                 program, similar to 'dbus-send', but with semantics
971                 similar to 'dcop'.
972           - chat: Simplistic chat program, implemented using signals
973                 and the system bus. Looks like IRC.
974
975 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
976
977         * configure.in: Detect QtGui (necessary for one of the
978           example programs). Note: this increases the minimum required
979           version of Qt to 4.1.3.
980
981 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
982
983         * test/qt/*: Sync with KDE Subversion revision 523647.
984         Update the testcases to the new API. Remove testcases for
985         classes that are no longer public or have been removed.
986
987 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
988
989         * qt/*: 
990         * dbus/qdbus.h: Sync with KDE Subversion revision
991         523647. Hopefully, this will be the last of the
992         source-incompatible changes. Documentation has been improved;
993         support for QList<basic-types> has been added; QDBusObject is
994         gone; QDBus(Abstract)Interface is now a QObject with
995         auto-generated meta-object; QDBusIntrospection is marked
996         private, since QMetaObject can be used now; lots of bugfixes.
997
998 2006-03-16  John (J5) Palmieri  <johnp@redhat.com>
999
1000         Patch from Milosz Derezynski <internalerror at gmail.com>
1001         
1002         * configure.in:
1003         Output the service directory in the configure summary
1004
1005         * dbus-1.pc.in:
1006         Add session_bus_services_dir
1007
1008 2006-03-10  Ross Burton  <ross@openedhand.com>
1009
1010         * tools/dbus-print-message.c:
1011         Add support for object paths and signatures.
1012
1013 2006-03-06  Sjoerd Simons <sjoerd@luon.net>
1014
1015         * bus/bus.c: (bus_context_reload_config): Flush the user database cache on
1016         config reload.
1017         * bus/dbus-daemon.1.in: Also note that SIGHUP flushes the user/group
1018         information caches
1019         * dbus/dbus-hash.c: (_dbus_hash_table_remove_all): 
1020         * dbus/dbus-hash.h: Add function to remove all entries from a hash table
1021         * dbus/dbus-userdb.c: (_dbus_user_database_flush):
1022         * dbus/dbus-userdb.h: Add function to flush all user/group information
1023         caches.
1024
1025 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
1026
1027         * qt/dbusidl2cpp.cpp:
1028         * qt/Makefile.am: add the dbusidl2cpp tool, the replacement
1029         for dcopidl2cpp, found in the KDE installations (or the more
1030         modern kalyptus): generate Qt4 C++ code for the input XML
1031         introspection. Currently no IDL parsing.
1032
1033 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
1034
1035         * test/qt/*: Update the self-tests.
1036
1037 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
1038
1039         * qt/*: 
1040         * dbus/qdbus.h: Sync with KDE Subversion revision 516237. This
1041         represents the first feature-complete version of the Qt4
1042         bindings since I took ove maintainership.
1043
1044 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
1045
1046         * qt/Doxyfile: Adding a Doxyfile for the Qt4 bindings
1047         dir. This is C++, so we can't use the DBus ones.
1048
1049 2006-03-02  John (J5) Palmieri  <johnp@redhat.com>
1050
1051         * python/dbus_bindings.pyx: Remove refrence to sys/cdefs.h
1052         (Patch from Artem Kachitchkine <Artem.Kachitchkin at Sun.COM>)
1053
1054 2006-03-02  John (J5) Palmieri  <johnp@redhat.com>
1055
1056         * dbus/dbus-connection.c: 
1057         (_dbus_connection_block_pending_call):
1058         Check to see if our data has already been read off the connection
1059         by another blocking pending call before we block in poll.
1060         (check_for_reply_and_update_dispatch_unlocked):
1061         Code taken from _dbus_connection_block_pending_call - checks for
1062         an already read reply and updates the dispatch if there is one.
1063
1064         * test/name-test/test-pending-call-dispatch.c:
1065         New test for making sure we don't get stuck polling a 
1066         dbus connection which has no data on the socket when
1067         blocking out of order on two or more pending calls.
1068
1069 2006-02-28  Thiago Macieira <thiago.macieira@trolltech.com>
1070
1071         * qt/Makefile.am: Patch by Sjoerd Simons. More .moc issues:
1072         make/automake don't detect that we're talking about the same
1073         .lo file if I specify the full path to the source files.
1074
1075 2006-02-26  Havoc Pennington  <hp@redhat.com>
1076
1077         * bus/dbus-daemon.1.in: improve the language in a couple spots I noticed
1078
1079         * dbus/dbus-bus.c (internal_bus_get): in the error message if the
1080         session bus variable is unset, suggest "man dbus-launch" and "man
1081         dbus-daemon" to figure out how to fix the problem
1082
1083 2006-02-25  Havoc Pennington  <hp@redhat.com>
1084
1085         * glib/dbus-glib-tool.c (usage): fix up the usage message, someone
1086         should make this thing use the new glib options parser
1087
1088 2006-02-25  Thiago Macieira <thiago.macieira@trolltech.com>
1089
1090         * qt/Makefile.am: Patch by Sjoerd Simons. Fix the path to the
1091         .lo files taking moc sources.
1092
1093 2006-02-25  Havoc Pennington  <hp@redhat.com>
1094
1095         * dbus/dbus.h, dbus/Makefile.am: add dbus-signature.h to dbus.h
1096         and install it as a public header
1097
1098 2006-02-24  John (J5) Palmieri  <johnp@redhat.com>
1099
1100         * Released 0.61
1101
1102 2006-02-24  John (J5) Palmieri  <johnp@redhat.com>
1103         
1104         * proxies.py: Fix the callchain
1105
1106 2006-02-24  John (J5) Palmieri <johnp@redhat.com>
1107         
1108         * patch from Sjoerd Simons <sjoerd at debian.org>:      
1109
1110         * dbus/dbus-sysdeps-util.c (_dbus_group_info_free): Moved to 
1111         dbus/dbus-sysdeps.c
1112
1113         * dbus/dbus-userdb.c (_dbus_group_info_free_allocated): Don't
1114         call _dbus_group_info_free_allocated which causes infinite loop,
1115         correctly call _dbus_group_info_free
1116
1117 2006-02-20  Thiago Macieira <thiago.macieira@trolltech.com>
1118
1119         * qt/qdbusinterface_p.h:
1120         * qt/qdbusinterface.cpp: Use the standard
1121         org.freedesktop.DBus.Method.NoReply annotation for the "async"
1122         calls instead of creating one for us.
1123
1124         * qt/qdbusconnection_p.h:
1125         * qt/qdbusintegrator.cpp: Remove debugging code.
1126
1127         * qt/qdbusintegrator.cpp:
1128         * qt/qdbusmessage.cpp:
1129         * qt/qdbusmessage_p.h:
1130         * qt/qdbusmessage.h: Change the behaviour of automatic
1131         reply-sending: now a reply is always sent, unless the caller
1132         didn't request one or if the user slot has already sent one.
1133
1134 2006-02-16  Robert McQueen  <robot101@debian.org>
1135
1136         * configure.in: Patch from Debian packages by Sjoerd Simons
1137         <sjoerd@debian.org> to add --with-qt-moc and --with-qt3-moc
1138         arguments so it's possible to build both bindings in the
1139         same tree.
1140
1141         * qt/Makefile.am: Fix truncated value so that make dist works.
1142
1143 2006-02-16  Robert McQueen  <robot101@debian.org>
1144
1145         * acinclude.m4, configure.in: Patch from Brad Hards
1146         <bradh@frogmouth.net> to avoid warnings from autoconf 1.9 by
1147         improving quoting, re-ordering a few checks, and a few other
1148         aesthetic tidy-ups.
1149
1150 2006-02-16  Robert McQueen  <robot101@debian.org>
1151
1152         * dbus/dbus-message.c (dbus_message_iter_get_fixed_array):
1153         Patch from Rob Taylor <rob.taylor@collabora.co.uk> to correct a bogus
1154         assertion that the next element to read from the iter is fixed in
1155         size. This is not the case when you are at the end of the iter,
1156         because the next element type is INVALID.
1157
1158         * dbus/dbus-string.c (_dbus_string_init_const_len): Correct a
1159         a bogus assert which means that you may not initialise a 0-length
1160         string unless you provide a non-NULL pointer. This prevented
1161         you from marshalling messages containing zero-length arrays in
1162         some cases.
1163
1164         * glib/dbus-gvalue.c (demarshal_collection_array): Another patch
1165         from Rob to correct bogus asserts when trying to demarshal an
1166         array and get_fixed_array got you 0 elements. Append nothing to
1167         the GArray in this case.
1168
1169         * test/glib/test-dbus-glib.c: Add a test case for round-tripping
1170         an empty array via the glib bindings. Without all of the above
1171         patches, this new test fails.
1172
1173 2006-02-16  Robert McQueen  <robot101@debian.org>
1174
1175         * glib/dbus-gmain.c: Make the previous commit compile.
1176
1177         * python/_dbus.py, python/matchrules.py: Patch from Ole Andre
1178         Ravnaas <ole.andre.ravnaas@collabora.co.uk> to allow you to
1179         specify sender_keyword="foo", path_keyword="bar" when adding
1180         a signal listener, so that you can bind to signals generically
1181         but still do something useful in your callback.
1182
1183         * python/dbus_bindings.pyx: Demarshal the byte type as unsigned
1184         chars so that they're not cast to chars and made negative. Thanks
1185         to Jakub Stachowski for reporting this and testing the fix.
1186
1187 2006-02-15  John (J5) Palmieri  <johnp@redhat.com>
1188
1189         * dbus/dbus-glib.h:
1190         * glib/dbus-gmain.h:
1191         (dbus_g_connection_open): new method for openning
1192         a connection to an arbitrary address in the glib bindings
1193
1194         * ChangeLog: checkin last entry which doesn't seem to be commited
1195
1196 2006-02-13  John (J5) Palmieri  <johnp@redhat.com>
1197
1198         * tools/dbus-launch.c: Fixed sh syntax output
1199
1200 2006-02-13  Robert McQueen  <robot101@debian.org>
1201
1202         * glib/dbus-binding-tool-glib.c, glib/dbus-gmain.c,
1203         glib/dbus-gsignature.c, glib/dbus-gtype-specialized.c,
1204         glib/dbus-gtype-specialized.h, glib/dbus-gvalue-utils.c,
1205         glib/dbus-gvalue-utils.h, glib/dbus-gvalue.c:
1206         Patch from Rob Taylor <rob.taylor@collabora.co.uk> to add a big
1207         missing piece of the glib bindings jigsaw puzzle. This modifies
1208         the existing specialised types to have N type parameters (rather
1209         than the current 1 or 2 for arrays and dictionaries respectively).
1210         You can then use this to get a glib type to represent any arbitrary
1211         D-Bus struct type using dbus_g_type_get_struct. The only
1212         implementation of these types is with GValueArrays as before,
1213         but it's now possible to store these in arrays, emit them in
1214         signals, etc.
1215
1216 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
1217
1218         * dbus/dbus-signature.c (dbus_signature_iter_recurse): Correctly
1219         deal with nested arrays (Bug #5823) Patch by Thiago Macieira 
1220         <thiago.macieira at trolltech.com>
1221
1222 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
1223
1224         * mono/doc/Makefile.am: Fix parallel make problem with mono-doc
1225         (Bug #4213) Patch from Doug Goldstein <cardoe at gentoo.org>
1226
1227 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
1228
1229         * bus/connection.c (bus_connections_expect_reply): Make
1230         pending reply limit not common to all connections (Bug #5416)
1231         Patch from Kimmo Hämäläinen <kimmo.hamalainen at nokia.com>
1232
1233 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
1234
1235         * tools/dbus-launch.c: Fixed csh syntax output (Bug #5720)
1236
1237 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
1238
1239         * gcj/Makefile.am: point to correct jar command (Bug #4529)
1240         patch from Doug Goldstein <cardoe at gentoo.org>
1241
1242 2006-02-09  Joe Shaw  <joeshaw@novell.com>
1243
1244         * mono/Arguments.cs: Fix a magic number in the mono bindings
1245         that doesn't work on 64 bit arches.  Patch from Peter Johanson.
1246
1247 2006-01-27  Robert McQueen  <robot101@debian.org>
1248
1249         * glib/dbus-binding-tool-glib.[ch]: Patch based on Ricardo Kekki's
1250         patch to use an annotation org.freedesktop.DBus.GLib.ClientCSymbol
1251         when generating the client-side methods, instead of overloading
1252         CSymbol which broke everything horribly. My apologies.
1253
1254 2006-01-27  Robert McQueen  <robot101@debian.org>
1255
1256         * glib/dbus-gtype-specialized.[ch], glib/dbus-gvalue-utils.c: Patch
1257         by me and Rob Taylor to add a simple_free function to D-Bus map
1258         and collection types, which allows those types which can be freed
1259         with a GDestroyNotify (such as GHashTables and GArrays, but not
1260         GPtrArrays) to be stored as the values in hashtables.
1261
1262         * test/glib/test-dbus-glib.c, test/glib/test-service-glib.{c,xml}:
1263         Patch by Rob Taylor to add nested dicts to the glib tests to check
1264         the above code works, and appears not to leak when called repeatedly.
1265
1266 2006-01-27  Robert McQueen  <robot101@debian.org>
1267
1268         * glib/dbus-gvalue.c (demarshal_valuearray): Patch from Rob Taylor
1269         to free a D-Bus allocated string with dbus_free () instead of
1270         g_free ().
1271
1272 2006-01-27  Iain Holmes  <iain@openedhand.com>
1273
1274         * glib/dbus-gproxy.c (dbus_g_proxy_dispose): Protect the dispose
1275         method from being called multiple times.
1276
1277 2006-01-19  Robert McQueen  <robot101@debian.org>
1278
1279         * glib/dbus-binding-tool-glib.c: Patch from Rob Taylor
1280         <rob.taylor@collabora.co.uk> to add support for generating bindings
1281         to arrays that are represented as GPtrArrays rather than GArrays (ie
1282         size-variable things, such as strings, objects, structs, etc).
1283
1284 2006-01-05  Robert McQueen  <robot101@debian.org>
1285
1286         * dbus/dbus-glib.h, glib/dbus-gproxy.c: Patch from Ricardo Kekki
1287         <ricardo.kekki@movial.fi> to make it possible to inherit from
1288         DBusGProxy, by splitting the DBusGProxy struct into a public part and
1289         a private part, and moving the setting of the DBusGProxyManager into a
1290         connection property, allowing proper GObject construction.
1291
1292 2006-01-05  Robert McQueen  <robot101@debian.org>
1293
1294         * glib/dbus-binding-tool-glib.c: Patch from Ricardo Kekki
1295         <ricardo.kekki@movial.fi> to make dbus-binding-tool heed C symbol name
1296         annotations when generating glib client bindings.
1297
1298 2005-12-19 John (J5) Palmieri  <johnp@redhat.com>
1299
1300         * dbus/dbus-shared.h: Call it shared constants instead of shared macros
1301
1302         * dbus/dbus-protocol.h: add DOxygen markup to quiet warnings
1303
1304 2005-12-19 John (J5) Palmieri  <johnp@redhat.com>
1305
1306         * dbus/dbus-shared.h: add DOxygen markup to quiet warnings
1307
1308 2005-12-19 John (J5) Palmieri  <johnp@redhat.com> 
1309
1310         * dbus/dbus-macros.h: correct DOxygen end of section (s/}@/@})
1311
1312 2005-12-19  Ross Burton  <ross@openedhand.com>
1313
1314         * doc/dbus-tutorial.xml:
1315         Document the Glib client-side bindings, and list all possible annotations.
1316
1317 2005-12-19  John (J5) Palmieri  <johnp@redhat.com>
1318
1319         * dbus/bus.c (dbus_bus_release_name): Add documentation
1320
1321 2005-12-06  Robert McQueen  <robot101@debian.org>
1322
1323         * python/service.py: s/sucessful/successful/ so we're allocating to
1324         and reading from the same variable. Oops.
1325
1326 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
1327
1328         * Released 0.60
1329
1330 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
1331
1332         * test/qt/Makefile.am: build from srcdir
1333
1334         * qt/qtconnection.cpp (requestName): Changed PROHIBIT_REPLACE to ALLOW_REPLACE
1335         Note - this code is wrong and needs to be fixed by the Qt binding
1336         developers.  The flags should be treated as bitfields and not enums.
1337
1338         * qt/qtconnection.h: Change ProhibitReplace to AllowReplace
1339
1340 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
1341
1342         * dbus/dbus-list.c (_dbus_list_insert_after_link, _dbus_list_insert_after, 
1343           link_after): remove #ifdef DBUS_BUILD_TESTS since we use these methods 
1344           in production code
1345
1346 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
1347
1348         * dbus/dbus-connection.c (dbus_connection_read_write): Add new
1349         method for getting messages off the bus in the absence of a
1350         mainloop.  This method is much like 
1351         dbus_connection_read_write_dispatch except it does not dispatch
1352         the messages to a registered filter function.  Instead it
1353         allows a developer to process messages by directly popping
1354         them off the bus.
1355
1356 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
1357
1358         * bus/desktop-file.c (parse_key_value): Ignore locales allowing 
1359         the parser to continue instead of returning error
1360         (bus_desktop_file_load): Do not free parser data when
1361         parse_section_start or parse_key_value fails because it was 
1362         already freed by parser_free (patch from Carlos Garcia Campos  
1363         <carlosgc at gnome.org>)
1364
1365 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
1366
1367         * dbus/dbus-auth.c, dbus/dbus-connection.c, dbus/dbus-keyring.c,
1368         dbus/dbus-server-debug-pipe.c, glib/dbus-binding-tool-glib.c
1369         glib/dbus-glib-tool.c, glib/dbus-gparser.c, glib/dbus-gproxy.c
1370         test/test-segfault.c, test/test-utils.c,
1371         test/glib/test-dbus-glib.c, tools/dbus-cleanup-sockets.c
1372         tools/dbus-launch.c, tools/dbus-tree-view.c, tools/dbus-viewer.c:
1373         Various cleanup of dead code and compiler warnings (patch from
1374         Kjartan Maraas <kmaraas at gnome.org>) 
1375
1376 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
1377
1378         * glib/dbus-gmain.c (connection_setup_add_watch): plugged a leak
1379         (patch from Carlos Garnacho Parro <carlosg at gnome.org>
1380
1381 2005-11-27  Robert McQueen  <robot101@debian.org>
1382
1383         * python/dbus_bindings.pyx: Repair my previous commit which reverted
1384         part of the preceding one. Oops. Merge patch by Johan Hedberg
1385         <johan.hedberg@nokia.com> to fix marshalling of 16-bit integer values
1386         on big-endian platforms.
1387
1388         * test/python/test-client.py: Add some 16-bit integers to the test
1389         values.
1390
1391 2005-11-27  Carlos Garcia Campos  <carlosgc@gnome.org>
1392
1393         * glib/dbus-gobject.c: Append a GValue instead of a basic type in
1394         method return message for property getters
1395
1396 2005-11-27  Robert McQueen  <robot101@debian.org>
1397
1398         * python/dbus_bindings.pyx: Fix a bug where doing a strict append
1399         with type v of an instance of dbus.Variant(foo, type='x') caused
1400         it to be boxed twice before sending over the bus.
1401
1402         * python/dbus_bindings.pyx, python/service.py,
1403         test/python/test-client.py: Update the constants for the new
1404         request_name flags, and update comments/test cases now that queueing
1405         is the default action.
1406
1407 2005-11-22  John (J5) Palmieri  <johnp@redhat.com>
1408
1409         * configure.in:
1410         - Change version to 0.60 for impending release
1411         - upped the sonames because of ABI and API breakage
1412
1413 2005-11-22  John (J5) Palmieri  <johnp@redhat.com>
1414
1415         * configure.in: Add test/name-test/Makefile to the generated
1416         Makefile list
1417
1418         * dbus/dbus-shared.h (#define DBUS_NAME_FLAG_ALLOW_REPLACEMENT):
1419         New flag which replaces DBUS_NAME_FLAG_PROHIBIT_REPLACEMENT
1420         (#define DBUS_NAME_FLAG_DO_NOT_QUEUE): New flag for specifying
1421         not to queue an ower if it can't be the primary owner
1422
1423         * bus/bus.h: Add new internal BusOwner struct
1424
1425         * bus/driver.c (bus_driver_handle_hello): Send flags (0 for default)
1426         to bus_registry_ensure and don't set the prohibit_replacement flag
1427         since they are now set per BusOwner and not per name.
1428         (bus_driver_handle_list_queued_owners): bus method (ListQueuedOwners) 
1429         that returns the list of connections in a name's connection queue
1430         
1431         * bus/services.c (struct BusService): remove prohibit_replacement field
1432         (struct BusOwner): new struct for keeping track of queued connections
1433         and their associated flags for the queue
1434         (struct BusRegistry): add a BusOwner memory pool
1435         (bus_registry_new): initialize the BusOwner memory pool
1436         (bus_registry_unref): free the BusOwner memory pool
1437         (_bus_service_find_owner_link): new internal method for
1438         searching the queue for a specific connection
1439         (bus_owner_set_flags): new method for adding setting the flags on a
1440         bus owner
1441         (bus_owner_new): new method that creates a BusOwner object from the
1442         pool and sets its flags
1443         (bus_owner_ref, bus_owner_unref): ref counting for BusOwner objects
1444         (bus_registry_ensure): Add the flags parameter
1445         (bus_registry_acquire_service): Switch from using raw connections to
1446         using the BusOwner struct
1447         Add new state machine for dealing with the new set of flags
1448         (bus_registry_set_service_context_table, struct OwnershipCancelData, 
1449         cancel_ownership, free_ownership_cancel_data, 
1450         add_cancel_ownership_to_transaction, struct OwnershipRestoreData, 
1451         restore_ownership, free_ownership_restore_data, 
1452         add_restore_ownership_to_transaction): Switch to using BusOwner 
1453         instead of raw connections
1454         (bus_service_add_owner): Add flags parameter
1455         Switch to using BusOwner instead of raw connections
1456         Add state machine for dealing with the new set of flags
1457         (bus_service_swap_owner): Swaps the first and second owners in the
1458         queue.  Used to make sure proper signals are sent when a service looses 
1459         or gains primary ownership.  We never insert an owner at the top of the
1460         queue.  Instead we insert it in the second position and then swap.
1461         (bus_service_remove_owner): Remove the owner from the queue sending
1462         out the NameLost and NameOwnerChanged signals if the we were the 
1463         primary owner
1464         (bus_service_get_primary_owners_connection): New method that extracts
1465         the connection from the primary owner
1466         (bus_service_get_primary_owner): Returns the BusOwner instead of the 
1467         connection
1468         (bus_service_get_allow_replacement): Changed from the old 
1469         bus_service_get_prohibit_replacement method.  Checks the flags of the 
1470         primary owner and returns if it can be replaced or not
1471         (bus_service_set_prohibit_replacement): removed
1472         (bus_service_has_owner): returns TRUE if and owner with
1473         the specified connection exists in the queue
1474         
1475         * dbus/dbus-bus.c (dbus_bus_connection_get_unique_name): New helper
1476         method that only compiles if tests are enabled.  Allows us to get the 
1477         unique name of a connection so we can check it against the queue when
1478         doing regression tests
1479
1480         * bus/activation.c (bus_activation_send_pending_auto_activate),
1481         bus/dispatch.c (bus_dispatch),  
1482         bus/driver.c (bus_driver_handle_get_service_owner, 
1483         bus_driver_handle_get_connection_unix_user, 
1484         bus_driver_handle_get_connection_unix_process_id,
1485         bus_driver_handle_get_connection_selinux_security_context),
1486         bus/signals.c (connection_is_primary_owner): 
1487         use bus_service_get_primary_owners_connection instead of
1488         bus_service_get_primary_owner
1489
1490         * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket, 
1491         _dbus_listen_unix_socket): Calculate the length of the socket
1492         path and use that instead of using a fixed length which was
1493         causing socket names to contain many trailing Nul bytes.
1494
1495         * dbus/dbus-glib-lowlevel.h, glib/dbus-gobject.c
1496         (dbus_g_method_get_sender): New method for extracting the sender 
1497         from a DBusGMethodInvocation
1498         (dbus_g_method_return_get_reply): changed name to 
1499         dbus_g_method_get_reply
1500         (dbus_g_method_return_send_reply): changed name to
1501         dbus_g_method_send reply
1502
1503         * doc/dbus-specification.xml: New docs that describe how the new
1504         queueing system works and talks about the changes to the how
1505         we specify socket names
1506
1507         * glib/examples/example-service.c, 
1508         glib/examples/example-signal-emitter.c,
1509         glib/examples/statemachine/statemachine-server.c:
1510         Changed the RequestName flags to the new system
1511
1512         * test/name-test/ (test-names.c, run-test.sh, Makefile.am): New
1513         regression test suite for testing various states of the new
1514         queueing system
1515         
1516 2005-11-15  Robert McQueen  <robot101@debian.org>
1517
1518         * dbus/dbus-glib-lowlevel.h, glib/dbus-gobject.c: Patch from Rob
1519         Taylor to add two methods, dbus_g_method_return_get_reply and
1520         dbus_g_method_return_send_reply, to allow you to get the reply
1521         message from a DBusGMethodInvocation, append arbitrary stuff to it,
1522         and send it. The GLib bindings can't marshal a return value of
1523         something like a(s) if the array is empty - ultimately they should be
1524         made to heed the signature of the out arguments as the Python bindings
1525         now can, but this is a workable interim solution which might have
1526         other applications.
1527
1528 2005-11-15  Robert McQueen  <robot101@debian.org>
1529
1530         * bus/driver.c, bus/services.c, bus/services.h: Add a ReleaseName
1531         method to org.freedesktop.DBus to release a bus name or give up
1532         waiting in the queue for it.
1533
1534         * dbus/dbus-bus.c, dbus/dbus-bus.h, dbus/dbus-shared.h: Add a
1535         dbus_bus_release_name method to send the ReleaseName method calls.
1536         Add constants for the return values to dbus/dbus-shared.h.
1537
1538         * doc/dbus-specification.xml: Document the new ReleaseName method
1539         in the specification.
1540
1541         * python/dbus_bindings.pyx: Add a low-level python binding for the
1542         release name method.
1543
1544         * python/exceptions.py, python/service.py: Make freeing BusName
1545         objects release the name. Add a NameExistsException, and fix a
1546         bug with creating UnknownMethodException.
1547
1548         * test/python/test-client.py: Add tests for freeing BusName
1549         objects causing names to be released.
1550
1551 2005-11-14  Robert McQueen  <robot101@debian.org>
1552
1553         * python/service.py: Include the traceback in the error reply when we
1554         send an exception over the bus. _BEST_ _PATCH_ _EVER_
1555
1556 2005-11-14  David Zeuthen  <davidz@redhat.com>
1557
1558         Patch from Timo Hoenig <thoenig@suse.de>.
1559
1560         * bus/bus.c: I've recently investigated why the automatic reload
1561         of configuration files does not work as expected.
1562
1563         Currently, reloading configuration files does only work when
1564         running dbus-daemon with --nodaemon.  If we are running as daemon
1565         we're hitting a dnotify bug once we fork the process.
1566
1567         We're initializing the dnotify fds before calling fork().  Once
1568         the child process forked it does still have the fds (and they
1569         still show up in /proc/`pidof dbus-daemon`/fd/) but we're not
1570         getting SIGIO as changes are made to the configuration files.
1571
1572         The attached patch moves the initialization of the dnotify fds to
1573         process_config_postinit().  This is safe for all current code
1574         paths and solves the dnotify disfunction.  If we're running
1575         dbus-daemon as daemon the fds for dnotify are now being
1576         initialized after fork() for the child process.
1577
1578         * configure.in: The current configure.in check for dnotify probes
1579         'x$target_os' for being 'xlinux-gnu'.  I've changed the check to
1580         match for 'xlinux', too. Additionally I have adapted the configure
1581         option's style to match with the others.
1582
1583 2005-11-14  Robert McQueen  <robot101@debian.org>
1584
1585         * python/decorators.py, python/service.py: Add a new argument to the
1586         dbus.service.method decorator called sender_keyword, which if set,
1587         specifies the name of an argument which will be provided the bus
1588         name of the method caller.
1589
1590         * test/python/test-client.py, test/python/test-service.py: Add a
1591         method and test to check the sender_keyword functionality.
1592
1593 2005-11-07  John (J5) Palmieri  <johnp@redhat.com>
1594
1595         * bus/driver.c (bus_driver_handle_reload_config): Make sure we send an 
1596         empty reply so blocking calls don't block forever (Patch from Sjoerd 
1597         Simons <sjoerd at luon.net>)
1598
1599         * AUTHORS: Add Robert McQueen for his work on the Python
1600         Bindings and other parts of D-Bus
1601
1602 2005-11-07  Robert McQueen  <robot101@debian.org>
1603
1604         * python/decorators.py: Change emit_signal function to use the
1605         signature annotation of the signal when marhsalling the arguments from
1606         the service. Fix a bug where the code checking signature length
1607         against argument length referenced the wrong variable.
1608
1609         * python/introspect_parser.py: Avoid adding the type signature of
1610         signal arguments to any methods which occur after them in the
1611         introspection data (!) by making the parser a little more careful
1612         about its current state.
1613
1614         * python/service.py: Remove debug prints from last commit (again :D).
1615
1616         * test/python/test-client.py, test/python/test-service.py: Add test
1617         signals with signature decorators to test the strict marshalling code
1618         gives errors at the right time. Could do with checking the signals
1619         actually get emitted too, given that the test does nothing with
1620         signals at the moment...
1621
1622 2005-11-07  Robert McQueen  <robot101@debian.org>
1623
1624         * python/_dbus.py: Add WeakReferenceDictionary cache of dbus.Bus
1625         instances to stop madness of creating new instances representing
1626         the same bus connection all the time, rendering any tracking of
1627         match rules and bus names quite meaningless. Caught a bug where
1628         the private argument to SessionBus() and friends was being passed
1629         in as use_default_mainloop by mistake. Still some problems with
1630         multiple dbus_binding.Connection instances representing the same
1631         low-level connection (eg when you use both SessionBus() and
1632         StarterBus() in same process), but it's a lot better now than it
1633         was.
1634
1635         * python/dbus_bindings.pyx: Add constants with the return values
1636         for bus_request_name().
1637
1638         * python/service.py: Store bus name instances in a per-dbus.Bus cache
1639         and retrieve the same instances for the same name, so deletion can be
1640         done with refcounting. Also now throws some kind of error if you
1641         don't actually get the name you requested, unlike previously...
1642
1643         * test/python/test-client.py: Add tests for instance caching of buses
1644         and bus name objects.
1645
1646 2005-11-04  Robert McQueen  <robot101@debian.org>
1647
1648         * python/dbus_bindings.pyx, test/python/test-client.py: Fix
1649         marshalling of boolean values. Add some booleans to the values in
1650         the test client.
1651
1652         * python/decorators.py, python/service.py: Add an 'async_callbacks'
1653         argument to the dbus.service.method decorator, which allows you to
1654         name arguments to take two callback functions for replying with
1655         return values or an exception.
1656
1657         * test/python/test-client.py, test/python/test-service.py: Add test
1658         case using asynchronous method reply functions, both return values and
1659         errors, and from within both the function itself and from a mainloop
1660         callback.
1661
1662         * python/decorators.py, python/service.py: Perform checking that the
1663         number of method/signal arguments matches the number of types in the
1664         signature at class loading time, not when you first introspect the
1665         class.
1666
1667         * python/service.py: Remove debug print left by the last commit.
1668
1669 2005-11-03  Robert McQueen  <robot101@debian.org>
1670
1671         * python/service.py: Heavy refactoring of method invocation, with
1672         hopefully no effect on functionality. Nuked _dispatch_dbus_method_call
1673         in favour of a new _message_cb that uses seperate functions for
1674         looking up the method to call, marshalling the return values, and
1675         sending exceptions as errors, and is easier to follow as a
1676         consequence.  Fixes some corner cases about returning things that
1677         don't match your declared out_signature, allows exceptions to define
1678         _dbus_error_name and have it be sent over the bus as the error name,
1679         and paves the way for cool stuff like heeding the message no reply
1680         flag, asynchronous method implementations, informing the method of the
1681         sender, and including backtraces in the error messages.
1682
1683         * test/python/test-client.py: Catch and print exceptions thrown in the
1684         async callback tests, rather than passing them to the low-level
1685         bindings to be ignored in a noisy and frustrating manner.
1686
1687 2005-11-03  Robert McQueen  <robot101@debian.org>
1688
1689         * python/_dbus.py, python/proxies.py, python/service.py: Add __repr__
1690         functions to dbus.Bus, dbus.service.BusName and dbus.service.Object,
1691         tweak others to be consistent.
1692
1693         * test/python/test-client.py: Tweak output of testInheritance.
1694
1695 2005-10-29  Robert McQueen  <robot101@debian.org>
1696
1697         * python/service.py: Major changes to allow multiple inheritance
1698         from classes that define D-Bus interfaces:
1699         
1700          1. Create a new Interface class which is the parent class of
1701             Object, and make the ObjectType metaclass into InterfaceType.
1702         
1703          2. Patch written with Rob Taylor to replace use of method_vtable
1704             with code that walks the class's __MRO__ (method resolution order)
1705             to behave like Python does when invoking methods and allow
1706             overriding as you'd expect. Code is quite tricky because
1707             we have to find two methods, the one to invoke which has the
1708             right name and isn't decorated with the /wrong/ interface,
1709             and the one to pick up the signatures from which is decorated
1710             with the right interface.
1711         
1712             The same caveats apply as to normal multiple inheritance -
1713             this has undefined behaviour if you try and inherit from two
1714             classes that define a method with the same name but are
1715             decorated with different interfaces. You should decorate
1716             your overriding method with the interface you want.
1717         
1718          3. Replace grungy introspection XML generation code in the metaclass
1719             with dictionaries that cope correctly with multiple inheritance
1720             and the overriding of methods. This also uses the signature
1721             decorations to provide correct introspection data, including
1722             the debut appearance of the types of your return values. :D
1723
1724         * test/python/test-client.py, test/python/test-service.py: Add a test
1725         case to try invoking an method that overrides one inherited from a
1726         D-Bus interface class.
1727
1728 2005-10-29  Robert McQueen  <robot101@debian.org>
1729
1730         * python/dbus_bindings.pyx: Tweak 'raise AssertionError' to assert().
1731         Add checking for the end of struct character when marshalling a
1732         struct in MessageIter.append_strict.
1733
1734         * python/examples/example-service.py,
1735         python/examples/gconf-proxy-service.py,
1736         python/examples/gconf-proxy-service2.py: Update to use gobject
1737         mainloop directly rather than appearing to depend on gtk.
1738
1739         * python/test/test-client.py, python/test/test-server.py: Remove
1740         obsolete and broken test scripts for old bindings. We have up to date
1741         and working tests in test/python/.
1742
1743 2005-10-29  Robert McQueen  <robot101@debian.org>
1744
1745         * python/decorators.py: Add optional arguments to the method and
1746         signal decorators to allow you to specify the signature of arguments
1747         and return values. Preserve the doc strings of signal functions in the
1748         decorated version, for pydoc and friends.
1749
1750         * python/dbus_bindings.pyx, python/proxies.py: Replace the
1751         parse_signature_block function with an iterable dbus.Signature()
1752         type. Fix a bug in MessageIter.append_strict where you could append
1753         anything by claiming it was a string.
1754
1755         * python/service.py: Use the out_signature decoration on methods to
1756         marshal return values, meaning you no longer require dbus.Array()
1757         or dbus.Dictionary() to indicate the type when returning empty
1758         arrays or dictionaries. Fix a bug where exceptions which are defined
1759         in __main__ are not turned into error replies.
1760
1761         * test/python/test-client.py, test/python/test-service.py: Add test
1762         for correct marshalling of return values according to out_signature.
1763         Fix a bug in the async call test where the error_handler is missing a
1764         self argument.
1765
1766 2005-10-29  Robert McQueen  <robot101@debian.org>
1767
1768         * glib/Makefile.am, glib/examples/Makefile.am,
1769         glib/examples/statemachine/Makefile.am: Merge patch from Ubuntu by
1770         Daniel Stone to replace explicit calls to libtool with $(LIBTOOL).
1771
1772         * test/python/.cvsignore: Add run-with-tmp-session-bus.conf.
1773
1774         * tools/dbus-monitor.1, tools/dbus-monitor.c: Merge dbus-monitor patch
1775         from Ubuntu by Daniel Silverstone to allow specifying match rules on
1776         the command line.
1777
1778 2005-10-27  Ross Burton  <ross@openedhand.com>
1779
1780         * dbus/dbus-marshal-header.c:
1781         Remove dead code.
1782
1783         * glib/dbus-gobject.c:
1784         Stop compiler warning.
1785
1786 2005-10-25  Ross Burton  <ross@openedhand.com>
1787
1788         * dbus/dbus-auth.c:
1789         * dbus/dbus-server-unix.c:
1790         * dbus/dbus-transport-unix.c:
1791         * glib/dbus-gmain.c:
1792         * glib/dbus-gobject.c:
1793         Add some const keywords.
1794
1795 2005-10-25  Ross Burton  <ross@openedhand.com>
1796
1797         * doc/dbus-specification.xml:
1798         Document the NoReply annotation.
1799
1800         * glib/dbus-binding-tool-glib.h:
1801         * glib/dbus-binding-tool-glib.c:
1802         Respect the NoReply annotation.
1803
1804 2005-10-24  Robert McQueen <robot101@debian.org>
1805
1806         * python/dbus_bindings.pyx (String, MessageIter): make D-Bus strings
1807         derive from unicode instead of str, and encode/decode UTF-8 when
1808         marshalling/unmarshalling bus messages
1809
1810         * python/introspect_parser.py: encode introspection data as UTF-8
1811         before passing the buffer into libxml2
1812
1813         * test/python/test-client.py: add unicode test strings
1814
1815         * test/data/valid-service-files/.cvsignore, test/python/.cvsignore:
1816         ignore generated python test files
1817
1818 2005-10-17  John (J5) Palmieri  <johnp@redhat.com>
1819
1820         * glib/dbus-gvalue-utils.c (hash_free_from_gtype): handle gdouble
1821         and G_TYPE_VALUE_ARRAY (DBUS_TYPE_STRUCT)
1822         (gvalue_from_hash_value, hash_value_from_gvalue): handle gdouble
1823
1824         * glib/dbus-gvalue.c (dbus_gvalue_to_signature): add missing
1825         DBUS_STRUCT_BEGIN_CHAR and DBUS_STRUCT_END_CHAR charaters
1826         when constructing struct signatures
1827
1828         * python/_dbus.py (Bus): handle private connections using the
1829         private keyword in the constructor. defaults to private=False
1830         (Bus::close): new method to close a connection to the bus
1831
1832         * python/dbus_bindings.pyx (Connection::close): renamed method
1833         was previously called disconnect
1834         (bus_get): now supports getting a private connection
1835
1836         * python/proxies.py (ProxyMethod::__call__): check if ignore_reply
1837         keyword is set to True.  if it is, execute the method without waiting
1838         for a reply
1839         (ProxyObject::_introspect_execute_queue): new method for executing
1840         all the pending methods that were waiting for the introspect to
1841         finish.  this is called when introspect either succeeds or fails
1842         (ProxyObject::_introspect_error_handler): call queued methods
1843
1844 2005-10-14  John (J5) Palmieri  <johnp@redhat.com>
1845
1846         * python/dbus_bindings.pyx (MessageIter::append_strict): check for
1847         STRUCT_BEGIN not TYPE_STRUCT in indicate we are marshalling a struct
1848
1849         * python/service.py (Object::_message_cb): handle exceptions correctly
1850         by sending them over the wire to the calling app.  This makes sure
1851         the client returns immediately instead of waiting the 15 seconds to
1852         timeout.
1853
1854         * test/python/test-client.py (TestDBusBindings::testBenchmarkIntrospect): 
1855         Add a test to benchmark how long it takes to introspect a service and 
1856         call a method which returns a large element (pretty fast)
1857
1858         * test/python/test-service.py (TestObject::GetComplexArray): new test 
1859         method which pushes a lot of data
1860
1861 2005-10-13  John (J5) Palmieri  <johnp@redhat.com>
1862
1863         * python/service.py(ObjectType::_reflect_on_signal, _reflect_on_method):        
1864         reclaim memory outside of the loop and use del istead of just setting
1865         the key to None
1866
1867 2005-10-13  John (J5) Palmieri  <johnp@redhat.com>
1868
1869         * python/service.py (ObjectType::_reflect_on_signal): Always close
1870         signal tag even when there are no arguments
1871
1872 2005-10-13  John (J5) Palmieri  <johnp@redhat.com>
1873
1874         * configure.in: Set mono, mono-docs and Qt3 to default
1875         to no instead of auto when building.  These bindings do not
1876         have full time maintainers and will not be supported for the
1877         1.0 release.
1878
1879 2005-10-12  John (J5) Palmieri  <johnp@redhat.com>
1880
1881         patches from Michael Krivoruchko <misha at sun.com>: 
1882         
1883         * dbus/dbus-connection.c (_dbus_connection_queue_received_message_link,
1884         _dbus_connection_message_sent, 
1885         _dbus_connection_send_preallocated_unlocked_no_update, 
1886         _dbus_connection_pop_message_link_unlocked): handle the case when path 
1887         is NULL when calling _dbus_verbose
1888
1889         * configure.in: check for functions getpeerucred and getpeereid
1890
1891         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): provides 
1892         support of auth EXTERNAL on Solaris 10+ (getpeerucred), FreeBSD 4.6+, 
1893         OpenBSD 3.0+ and FreeBSD 5.0+ as well as MacOSX 10.2+ (getpeereid). 
1894         Patch was only tested on Solaris 10 x86 so it might be issues
1895         with other platforms (i.e. BSDs and MacOSX)
1896         
1897
1898 2005-10-05  John (J5) Palmieri  <johnp@redhat.com>
1899
1900         * glib/dbus-gvalue.c (marshal_variant): call _dbus_gvalue_marshal 
1901         instead of marshal basic so we can handle recursive types in a variant
1902
1903         * test/glib/test-dbus-glib.c: Add test for marshaling recurive types
1904         in variants
1905
1906         * test/glib/test-service-glib.c, test-service-glib.xml
1907         (my_object_echo_variant [EchoVariant], 
1908         my_object_process_variant_of_array_of_ints123
1909         [ProcessVariantOfArrayOfInts123]): 
1910         Add two test methods
1911
1912         * python/introspect_parser.py: New module for parsing introspect
1913         data.
1914
1915         * python/dbus_bindings.pyx:
1916         (various places): when throwing errors fix to use errormsg instead 
1917         of message local variable because Pyrex can get confused with other 
1918         message variables (initial patch by Robert McQueen 
1919         <robert.mcqueen at collabora.co.uk>)
1920         (MessageIter::parse_signature_block): new method for getting the next
1921         block in a signiture.
1922         (MessageIter::append_strict): new method for appending values strictly
1923         using the passed in signature instead of guessing at the type
1924         (MessageItter:: append_dict, append_struct, append_array): use 
1925         signatures to marshal children if the signature is available
1926         
1927         * python/exceptions.py (IntrospectionParserException): new exception
1928
1929         * python/proxies.py (ProxyMethod::__call__): Marshal args with 
1930         introspected signatures if available, else we fall back to the
1931         old way of doing things.
1932         (ProxyObject::_introspect_reply_handler ): parse introspection data
1933         
1934         * python/service.py (ObjectType::_reflect_on_method): Properly
1935         terminate <method> if there are no args in the reflection data
1936
1937         * test/python/test-client.py: add tests for talking with the GLib
1938         test server.  This gives us better coverage for introspection since
1939         python to python will always generate arguments as variants.  It also
1940         allows us to test the robustness of the GLib bindings and interlanguage
1941         communications.
1942
1943         
1944 2005-10-03  John (J5) Palmieri  <johnp@redhat.com>
1945
1946         * bus/driver.c (bus_driver_handle_introspect): Add signals
1947         to the introspect data. (patch from Daniel P. Berrange 
1948         <dan at berrange.com>)
1949
1950         * bus/dispatch.c (check_existent_ping): Add testcase for Ping
1951         
1952         * dbus/dbus-connection.c (_dbus_connection_peer_filter,
1953         _dbus_connection_run_builtin_filters): Changed these to
1954         be unlock_no_update functions and call 
1955         _dbus_connection_send_unlocked_no_update instead of
1956         dbus_connection_send to avoid locking errors.
1957         
1958         * doc/TODO: Removed the make Ping test TODO
1959         
1960 2005-09-26  John (J5) Palmieri  <johnp@redhat.com>
1961
1962         * dbus/Python.pyx: Fixed memory leaks when throwing errors.
1963         We now copy the message from a DBusError and then free 
1964         the error object befor throwing the error
1965
1966         * glib/dbus-glib-tool.c: removed extra comma at the end of the
1967         DBusBindingOutputMode enum which was causing a warning.
1968         #include <time.h> so using time_t is explicitly defined
1969
1970 2005-09-26  John (J5) Palmieri  <johnp@redhat.com>
1971
1972         * Integrate patches from Lennart Poettering <mzsqb at 0pointer.de>:
1973         - dbus/dbus-bus.c
1974         (internal_bus_get): new method that take over the heavy lifting
1975         of dbus_bus_get and adds the ability to get a private connection
1976         to the bus
1977         (dbus_bus_get): wrapper to internal_bus_get that provides the same
1978         interface as in previous versions
1979         (dbus_bus_get_private): new method that is a wrapper to 
1980         internal_bus_get to get a private connection to the bus
1981
1982         - dbus/dbus-bus.h
1983         (dbus_bus_get_private): add as a public libdbus interface
1984
1985         - dbus-1.pc.in: output system_bus_default_address and 
1986         sysconfdir variables so apps can use them when compiling
1987
1988 2005-09-23  Harald Fernengel  <harry@kdevelop.org>
1989         * dbus/qt: New Qt bindings
1990
1991 2005-09-12  Waldo Bastian  <bastian@kde.org>
1992
1993         * dbus/dbus-marshal-validate.c,
1994         doc/dbus-specification.xml, test/Makefile.am,
1995         test/test-names.c: allow hyphens in bus names.
1996
1997 2005-09-11  Mark McLoughlin  <mark@skynet.ie>
1998
1999         * test/data/auth/fallback.auth-script: we don't
2000         retry the EXTERNAL method when we know its going
2001         to fail anymore.
2002
2003 2005-09-11  Mark McLoughlin  <mark@skynet.ie>
2004
2005         * dbus/dbus-connection-internal.h: rename
2006         (add|remove|toggle)_(watch|timeout) to unlocked()
2007         
2008         * dbus/dbus-connection.c: ditto.
2009         
2010         * dbus/dbus-timeout.c, dbus/dbus-transport-unix.c:
2011         Update some callers for the renaming.
2012
2013 2005-09-10  Mark McLoughlin  <mark@skynet.ie>
2014
2015         * dbus/dbus-auth.c: (record_mechanisms): don't
2016         retry the first auth mechanism because we know
2017         we're just going to get rejected again.
2018         
2019         * dbus/dbus-keyring.c: (_dbus_keyring_reload):
2020         Fix thinko ... and what a nasty little bugger to
2021         track down you were ...
2022
2023         * dbus/dbus-connection.c:
2024         (_dbus_connection_add_watch),
2025         (_dbus_connection_remove_watch): add note about
2026         these needing the connection to be locked.
2027         (_dbus_connection_get_dispatch_status_unlocked):
2028         set status to DATA_REMAINS when we queue the
2029         disconnected message.
2030         
2031         * bus/dispatch.c:
2032         (bus_dispatch): fix warning.
2033         (check_existent_service_no_auto_start):
2034         Expect ChildSignaled error too.
2035         (check_existent_hello_from_self): fix another
2036         couple of warnings.
2037         
2038 2005-09-08  Joe Shaw  <joeshaw@novell.com>
2039
2040         Patches from James Willcox <snorp@snorp.net>
2041
2042         * mono/Makefile.am: Add Int16.cs and UInt16.cs
2043
2044         * mono/DBusType/Array.cs: Handle multidimensional arrays, and
2045         support array "out" parameters.
2046
2047         * mono/DBusType/Int16.cs, mono/DBusType/UInt16.cs: New files,
2048         for 16-bit int support.
2049
2050 2005-09-06  John (J5) Palmieri  <johnp@redhat.com>
2051
2052         * Released 0.50
2053
2054         * Patch from Steve Grubb:
2055         - bus/activation.c (bus_activation_service_reload_test): clean up
2056         some indentation
2057         - dbus/dbus-keyring.c (_dbus_keyring_reload): fix conditional 
2058         - dbus/dbus-message-factory.c (generate_special): fix a couple of
2059         buffer overflows in the test suite.  This is non critical because
2060         it can not be exploited and this code is only run when doing a 
2061         make check.
2062
2063         * Patch from Yaakov Selkowitz: Build fixes for Cygwin
2064         - configure.in: Don't check and link against kdecore, only qt headers
2065         - dbus/Makefile.am: Add -no-undefined to libdbus_1_la_LDFLAGS
2066         - gcj/org/freedesktop/dbus/Makefile.am:
2067         add libdbus_gcj_1_la_LDFLAGS = -no-undefined
2068         - glib/Makefile.am: Add -no-undefined to libdbus_glib_1_la_LDFLAGS
2069         and $(DBUS_GLIB_LIBS) to dbus_binding_tool_LDADD
2070         - qt/Makefile.am: Add -no-undefined to libdbus_qt_1_la_LDFLAGS
2071         - tools/Makefile.am: Add platform extentions to binaries 
2072         (i.e. .exe on windows)
2073
2074         * configure.in: 
2075         - Make it so if no suitable version of python is found we only 
2076         disable building python instead of exiting the configure script
2077         - Require version 2.4 of glib for glib bindings
2078         - Up version to 0.50
2079
2080         * python/__init__.py: Sync version with libdbus to (0,50,0)
2081         
2082 2005-09-05  Olivier Andrieu  <oliv__a@users.sourceforge.net>
2083
2084         * dbus/dbus-object-tree.c (find_subtree_recurse):
2085         a couple of optimizations (bug #710):
2086         - do a binary search in the tree
2087         - insert a new child at the right place directly, no need for
2088           qsort anymore
2089         - do the "double alloc" thing when allocating children
2090
2091 2005-08-31  John (J5) Palmieri  <johnp@redhat.com>
2092
2093         * python/Makefile.am: Break on pyrexc errors instead of ignoring them
2094
2095         * python/dbus_bindings.pyx: Memory management foo
2096         (global): remove hacky _user_data_references global list
2097         (GIL_safe_cunregister_function_handler): userdata now stuffed into
2098         tuples. Unref user_data
2099         (GIL_safe_cmessage_function_handler): userdata now stuffed into tuples
2100         (Connection::__del__): Remove and replace with __dealloc__ method
2101         (Connection::add_filter): Stuff user_data into a tuple.  Use Py_INCREF
2102         to keep tuple from being deallocated instead of the global var hack
2103         (Connection::register_object_path): Stuff user_data into a tuple.
2104         Use Py_INCREF to keep tuple from being deallocated instead of the 
2105         global var hack
2106         (Connection::register_fallback): Stuff user_data into a tuple.
2107         Use Py_INCREF to keep tuple from being deallocated instead of the 
2108         global var hack
2109         (GIL_safe_pending_call_notification): Don't unref the message
2110         because it gets unreffed when going out of scope.  Py_XDECREF
2111         the user_data
2112         (PendingCall::__del__): Remove and replace with __dealloc__ method
2113         (PendingCall::set_notify): ref the pending call because we will
2114         need it to stick around for when the notify callback gets called
2115         (Message::__del__): Remove and replace with __dealloc__ method
2116
2117         * python/dbus_glib_bindings.pyx (init_gthreads): Changed to 
2118         gthreads_init to match up with the dbus call
2119
2120         * python/glib.py (init_threads): Changed to threads_init to match
2121         up with gobject.threads_init().  init_threads is kept for backwards
2122         compat but will most likely be deprecated in the future
2123
2124         * test/python/test-client.py: 
2125         - revamp to use Python's unittest functionality
2126         - add async call tests
2127         - setup threads in glib and dbus so we make sure locks are working
2128         
2129 2005-08-30  John (J5) Palmieri  <johnp@redhat.com>
2130
2131         * python/dbus_bindings.pyx 
2132         (_pending_call_notification, cunregister_function_handler, 
2133         cmessage_function_handler): All callback functions have been rearranged 
2134         to workaround a bug in Pyrex when working with the GIL which is Python's 
2135         global lock when dealing with threads.  They have been split into
2136         a wrapper function (which assumes the name of the old function) and
2137         a _GIL_safe_<function name> function which contains the functionality
2138         of the old function.  This ensures that Pyrex does not write code
2139         the lock is released.
2140         
2141
2142 2005-08-30  John (J5) Palmieri  <johnp@redhat.com>
2143
2144         * python/dbus_bindings.pyx (_pending_call_notification): Obtain the
2145         GIL global lock when calling back into Python
2146
2147 2005-08-29  John (J5) Palmieri  <johnp@redhat.com>
2148
2149         * Release 0.36.2
2150
2151         * Add Havoc's patch that never got applied to HEAD (Bug #2436):
2152
2153         * bus/policy.c (bus_policy_allow_user): change default "user is
2154         allowed" to be "user has same uid as the bus itself"; any
2155         allow/deny rules will override.
2156
2157         * bus/session.conf.in: don't allow all users, since now by default
2158         the user that ran the bus can connect.
2159
2160 2005-08-26  Colin Walters  <walters@verbum.org>
2161
2162         * tools/dbus-print-message.c (print_message): Flush stdout
2163         after printing a message, so that redirecting to a file, then
2164         hitting Ctrl-C works.
2165
2166 2005-08-25  John (J5) Palmieri  <johnp@redhat.com>
2167
2168         * python/dbus_bindings.pyx: Tracked down a major memleak and fixed it
2169         (EmptyMessage): new class that subclasses Message.  This is a workaround
2170         to a Pyrex bug that fails to call __del__ when the Message object goes out
2171         of scope.  For some reason subclassing Message fixes this bug
2172         (Bus::send_with_reply_and_block): use EmptyMessage instead of Message
2173         - s/Message(_create=0)/EmptyMessage everywhere else
2174         
2175         * test/python/test-{server|client}.py: add the python/.libs directory
2176         to the lookup path so dbus_bindings and dbus_glib_bindings don't
2177         get picked up from the system
2178
2179 2005-08-25  Colin Walters  <walters@verbum.org>
2180
2181         * glib/dbus-gproxy.c (dbus_g_proxy_call): Doc update, thanks
2182         to Ryan Lortie for the suggestion.
2183
2184 2005-08-24  John (J5) Palmieri  <johnp@redhat.com>
2185
2186         * test/python: Add python regression test
2187
2188         * configure.in: Add test/python/Makefile
2189
2190         * test/Makefile.am: Add the python directory to SUBDIRS
2191
2192 2005-08-24  John (J5) Palmieri  <johnp@redhat.com>
2193
2194         * Release 0.36.1
2195
2196         * python/_dbus.py: 
2197         (Interface::connect_to_signal): propigate keywords for match on args
2198         (Bus::add_signal_receiver): Fix typo s/dbus_inteface/dbus_interface
2199
2200         * python/proxies.py (ProxyObject::connect_to_signal):
2201         propigate keywords for match on args
2202
2203         * Makefile.am: point everything to pyexecdir since python borks
2204         on multilib
2205
2206 2005-08-23  John (J5) Palmieri  <johnp@redhat.com>
2207
2208         * Release 0.36
2209
2210 2005-08-23  Colin Walters  <walters@verbum.org>
2211
2212         * test/glib/Makefile.am: Don't multiply-define EXTRA_DIST.
2213
2214 2005-08-23  John (J5) Palmieri  <johnp@redhat.com>
2215
2216         * python/dbus_glib_bindings.pyx: reorder imports and c definitions
2217         to fix some wranings. We now use dbus_bindings.DBusConnection instead
2218         of defining DBusConnection ourselves.
2219
2220 2005-08-18  John (J5) Palmieri  <johnp@redhat.com>
2221
2222         * python/dbus.pth: New path file to fix up problems when installing
2223         c libraries to lib64 and python files to lib.
2224
2225         * python/Makefile.am: install dbus.pth in the correct spot
2226
2227 2005-08-17  John (J5) Palmieri  <johnp@redhat.com>
2228         * ChangeLog: clean up my last entry a bit
2229
2230         * doc/introspect.xsl: New stylesheet for converting introspection data
2231         into browser renderable xhtml. Contributed by Lennart Poettering.
2232
2233         * doc/introspect.dtd: Fixups in the introspect format from Lennart
2234         Poettering.
2235
2236         * doc/dbus-tutorial.xml: 
2237         - Add Colin Walter to the Authors section for authoring the GLib
2238         section
2239         - Add descriptions of the new signature and type functionality
2240         in the Python complex type mapping section
2241         - Add a sidenote on the new args matching functionality in 
2242         the Python bindings
2243         - Fixed up some of the examples to use the gobject.MainLoop
2244         instead of gtk.main
2245         
2246         * python/_dbus.py:
2247         (Bus::_create_args_dict): New. Converts a hash of arg matches
2248         to a more useable format
2249         (Bus::add_signal_receiver): add a **keywords parameter for catching
2250         arg match parameters
2251         (Bus::remove_signal_receiver): add a **keywords parameter for catching
2252         arg match parameters
2253         
2254         * python/matchrules.py:
2255         (MatchTree::exec_matches): Check for arg matches
2256         (SignalMatchRule::add_args_match): New method
2257         (SignalMatchRule::execute): Added args_list parameter as an optimization
2258         so we don't have to marshal the args more than once
2259         (SignalMatchRule::match_args_from_list): New method that checks to see
2260         if the rule's arg matches match an argument list.  Only arguments
2261         set in the rule are checked.
2262         (SignalMatchRule::match_args_from_rule): New method that checks to see
2263         if the rule's arg matches match another rule's.  All args have to match
2264         in order for this method to return true.  If either rule has more args
2265         then it is not a match.
2266         (SignalMatchRule::is_match): Add args match
2267         (SignalMatchRule::repr): Add args to the final output if they exist
2268
2269 2005-08-17  Ross Burton  <ross@burtonini.com>
2270
2271         * glib/dbus-gproxy.c:
2272         (dbus_g_proxy_call_no_reply): unref the message once sent.
2273         (dbus_g_proxy_call): protect against NULL proxy.
2274
2275 2005-08-16  John (J5) Palmieri  <johnp@redhat.com>
2276
2277         * python/__init__.py: Version updated (0, 43, 0)
2278         
2279         * python/dbus_bindings.pyx: 
2280         - Fixed type objects to have self passed into __init__
2281         - Added the Variant type
2282         - Add the ability to specify types or signatures for Array, Variant 
2283         and Dictionary
2284         (Connection::send_with_reply_handlers): return a PendingCall object
2285         (_pending_call_notification): handle the case when an error is returned 
2286         without an error message in the body
2287         (MessageIter::get_boolean): return True or False instead of an integer
2288         (MessageIter::python_value_to_dbus_sig): add direct checking of types 
2289         and add checks for objects with embeded signatures or types (Array, 
2290         Variant and Dictionary)
2291         (MessageIter::append_byte): handle case when the value is a dbus.Byte
2292         (MessageIter::append_dict): handle embeded types or signatures
2293         (MessageIter::append_array): handle embeded types or signatures
2294         (MessageIter::append_variant): new method
2295         
2296         * python/proxies.py:
2297         (DeferedMethod): New. Dummy executable object used when queuing calls 
2298         blocking on introspection data
2299         (ProxyMethod::__call__): add the timeout keyword for specifying longer 
2300         or shorter timeouts for method calls
2301         (ProxyObject): Add first pass at an introspection state machine
2302         (ProxyObject::__init__): Add introspect keyword for turing off an on 
2303         introspection. 
2304         (ProxyObject::_Introspect): Internal Introspect call that bypasses 
2305         the usual mechanisms for sending messages.  This is to avoid a deadlock
2306         where the Intospect call would be queued waiting for the Introspect 
2307         call to finish ;-)
2308         (ProxyObject::_introspect_reply_handler): New.  This method is called 
2309         when introspection returns with no error
2310         (ProxyObject::_introspect_error_handler): New.  This method is called 
2311         when introspection encounters an error
2312         (ProxyObject::__getattr__): Code to handle different introspection 
2313         states.  Queue async calls or block blocking calls if we are 
2314         introspecting.  Pass through as normal if we are not or are done with 
2315         introspecting.
2316         
2317         * python/service.py: Import signal and method from decorators.py
2318
2319         * python/types.py: Add Variant type
2320
2321 2005-08-16  Colin Walters  <walters@verbum.org>
2322
2323         * glib/dbus-gobject.c (dbus_set_g_error): Don't lose if the
2324         DBusError message is NULL.
2325
2326 2005-08-09  Havoc Pennington  <hp@redhat.com>
2327
2328         * dbus/dbus-errors.c: apply patch from Timo Teras to make a
2329         malloc'd copy of the name parameter
2330
2331 2005-08-09  Havoc Pennington  <hp@redhat.com>
2332
2333         * dbus/dbus-message.c (dbus_message_set_reply_serial): print
2334         warning if the reply serial is set to 0
2335
2336 2005-08-04  Colin Walters  <walters@verbum.org>
2337
2338         * glib/dbus-gvalue-utils.h (_dbus_g_type_specialized_builtins_init)
2339         (dbus_g_type_is_fixed, dbus_g_type_fixed_get_size)
2340         (dbus_gvalue_set_from_pointer, dbus_g_hash_table_value_foreach)
2341         (dbus_g_hash_table_insert_values, dbus_g_hash_table_insert_steal_values)
2342         (dbus_gtype_is_valid_hash_key, dbus_gtype_is_valid_hash_value)
2343         (dbus_g_hash_func_from_gtype, dbus_g_hash_free_from_gtype)
2344         (dbus_g_hash_equal_from_gtype, dbus_gvalue_stor, dbus_gvalue_take):
2345         * glib/dbus-gvalue.h (dbus_g_value_types_init)
2346         (dbus_gvalue_demarshal, dbus_gvalue_demarshal_variant)
2347         (dbus_gvalue_demarshal_message, dbus_gvalue_marshal):
2348         
2349         Prefix name with _ to ensure they're not exported.  All callers
2350         updated.
2351
2352         * glib/dbus-gvalue.c (typecode_to_gtype)
2353         (dbus_typecode_maps_to_basic, basic_typecode_to_gtype)
2354         (signature_iter_to_g_type_dict)
2355         (signature_iter_to_g_type_array)
2356         (dbus_gtype_from_signature_iter, dbus_gtype_from_signature)
2357         (dbus_gtypes_from_arg_signature):
2358         Move to dbus-gsignature.c.
2359
2360         * glib/dbus-binding-tool-glib.c (dbus_binding_tool_output_glib_server): Call
2361         dbus_g_type_specialized_builtins_init instead of dbus_g_value_types_init.
2362         (dbus_binding_tool_output_glib_client): Ditto.
2363
2364         * glib/Makefile.am (DBUS_GLIB_INTERNALS): Add dbus-gsignature.c
2365         and dbus-gsignature.h
2366
2367         * test/glib/test-service-glib.c (my_object_rec_arrays): Delete
2368         unused variable.
2369
2370 2005-08-03  Colin Walters  <walters@verbum.org>
2371
2372         * glib/dbus-gobject.c: Add tests on hardcoded object info; this should
2373         catch any incompatible changes accidentally made.
2374
2375 2005-08-03  Havoc Pennington  <hp@redhat.com>
2376
2377         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): fix
2378         typo, from Julien Puydt
2379
2380         * bus/connection.c (bus_connection_disconnected): we were always
2381         doing a wait_for_memory due to a buggy loop, found by Timo Hoenig
2382
2383 2005-08-01  Colin Walters  <walters@verbum.org>
2384
2385         Patch from Joe Markus Clarke:   
2386         
2387         * glib/dbus-gidl.c (property_info_unref, arg_info_unref): Fix
2388         use-after-free.
2389
2390 2005-08-01  Colin Walters  <walters@verbum.org>
2391         
2392         Patch from Joe Markus Clarke:   
2393         
2394         * tools/dbus-send.c (main): 
2395         
2396         Don't use C99 style initializers (bug #3933).
2397         
2398 2005-08-01  Colin Walters  <walters@verbum.org>
2399
2400         Patch from Joe Markus Clarke:   
2401
2402         * glib/dbus-gvalue.c (dbus_g_value_types_init): 
2403         * glib/dbus-gvalue-utils.c (dbus_g_type_specialized_builtins_init) 
2404         * glib/dbus-gobject.c (write_interface):
2405
2406         Don't use C99 style initializers (bug #3933).
2407
2408 2005-07-31  Havoc Pennington  <hp@redhat.com>
2409
2410         * tools/dbus-viewer.c (load_child_nodes): fix invocation of
2411         dbus_g_proxy_call, fix from Piotr Zielinski bug #3920
2412
2413 2005-07-30  Havoc Pennington  <hp@redhat.com>
2414
2415         * fix a bunch of Doxygen warnings and mistakes
2416
2417 2005-07-30  Havoc Pennington  <hp@redhat.com>
2418
2419         * dbus/dbus-sysdeps.c (_dbus_string_parse_uint): remove #ifdef
2420         DBUS_BUILD_TESTS since it's now used in production code
2421
2422 2005-07-29  Havoc Pennington  <hp@redhat.com>
2423
2424         * test/glib/test-profile.c (write_junk): initialize the junk
2425         buffer so valgrind doesn't have a breakdown
2426
2427 2005-07-29  Havoc Pennington  <hp@redhat.com>
2428
2429         * bus/signals.c (bus_signals_test): add match_rule_equal() tests
2430         (match_rule_matches): remove unused arg
2431         (test_matching): add tests for match_rule_matches()
2432
2433         * bus/signals.c (bus_match_rule_parse_arg_match): add ability to
2434         do arg0='foo' arg5='bar' in the match rules
2435         (match_rule_matches): don't match if the arg0='foo' doesn't match.
2436
2437         * dbus/dbus-protocol.h (DBUS_MAXIMUM_MATCH_RULE_ARG_NUMBER): add this
2438
2439 2005-07-29  Ross Burton  <ross@openedhand.com>
2440
2441         * dbus/dbus-connection.c:
2442         Don't create a DBusCondVar which is never used.
2443
2444 2005-07-27  Ross Burton  <ross@openedhand.com>
2445
2446         * dbus/dbus-message.c:
2447         Reduce the size of the maximum cached message to 10K.
2448
2449 2005-07-25  Ross Burton  <ross@openedhand.com>
2450
2451         * glib/dbus-gproxy.c:
2452         Remove matches when all proxies are unregistered.
2453
2454 2005-07-24  Colin Walters  <walters@verbum.org>
2455
2456         * glib/dbus-gvalue.c (signature_iter_to_g_type_array): Don't require
2457         typedata; recursive arrays won't have it.
2458
2459         * test/glib/test-dbus-glib.c:
2460         * test/glib/test-service-glib.c:
2461         * test/glib/test-service-glib.xml: Add recursive arrays tests.
2462         
2463 2005-07-20  John (J5) Palmieir  <johnp@redhat.com>
2464
2465         * python/_dbus.py, _util.py, decorators.py, extract.py, matchrules.py.
2466         proxies.py, service.py: Cleanup of code after running it through the
2467         pyflakes code checker mostly dealing with undefined names.  
2468         (Bug #3828, Patch from Anthony Baxter <anthony@interlink.com.au>)
2469
2470 2005-07-17  John (J5) Palmieri  <johnp@redhat.com>
2471
2472         * NEWS: Update to 0.35.2
2473
2474 2005-07-17  John (J5) Palmieri  <johnp@redhat.com>
2475
2476         * python/_dbus.py: Remove import of the dbus.services
2477         module as it no longer exists (patch from Dimitur Kirov)
2478
2479         * python/service.py (Object::__init__): Fixed typo
2480         s/name/bus_name (patch from Dimitur Kirov)
2481
2482         * python/examples/example-signal-emitter.py: import dbus.glib
2483         to get the main loop and use glib mainloop instead of gtk so
2484         X doesn't have to be running.
2485
2486         * python/examples/example-signal-recipient.py: import dbus.glib
2487         to get the main loop and use glib mainloop instead of gtk so
2488         X doesn't have to be running. Import the decorators module
2489         directly.
2490
2491         * test/glib/Makefile.am:  Added DIST_EXTRA files that distcheck
2492         didn't pick up on but are needed to build
2493
2494         * configure.in: upped version to 0.35.2
2495
2496         * bus/driver.c, bus/selinux.c, bus/selinux.h, dbus/dbus-protocol.h:
2497         added Colin Walters' SELinux API rename patch from head 
2498         s/unix sercurity context/selinux security context/
2499
2500 2005-07-16  John (J5) Palmieri  <johnp@redhat.com>
2501
2502         * python/Makefile.am: dbus_binding.pxd.in should be included 
2503         in EXTRA_DIST not dbus_binding.pxd
2504         fix up $(srcdir) hopefully for the last time
2505
2506         * NEWS: Update to 0.35.1
2507
2508 2005-07-16  Colin Walters  <walters@verbum.org>
2509
2510         * bus/driver.c (bus_driver_handle_get_connection_selinux_security_context): Renamed
2511         from bus_driver_handle_get_connection_unix_security_context.  Update for
2512         error usage.
2513         (message_handlers): Update for renames.
2514
2515         * bus/selinux.c (bus_selinux_allows_send): Handle OOM on
2516         _dbus_string_init failure correctly.
2517         (bus_selinux_append_context): Convert SID to context.  Append it
2518         as a byte array.
2519         (bus_selinux_shutdown): Handle the case where bus_selinux_full_init
2520         hasn't been called.
2521
2522         * bus/selinux.h: Update prototype.
2523
2524         * dbus/dbus-protocol.h (DBUS_ERROR_SELINUX_SECURITY_CONTEXT_UNKNOWN): Renamed
2525         from DBUS_ERROR_UNIX_SECURITY_CONTEXT_UNKNOWN.
2526
2527 2005-07-15  Colin Walters  <walters@verbum.org>
2528
2529         * doc/TODO: Add note about convenience wrappers.
2530
2531 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
2532
2533         * NEWS: Update to 0.35
2534
2535 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
2536
2537         * glib/Makefile.am: Add make-dbus-glib-error-switch.sh to EXTRA_DIST
2538         so distcheck doesn't fail
2539
2540         * glib/examples/Makefile.am: Add example-service.xml and 
2541         example-signal-emitter.xml to EXTRA_DIST so distcheck doesn't fail
2542
2543         * glib/examples/statemachine/Makefile.am: Add statemachine.xml and
2544         statemachine-server.xml to EXTRA_DIST so distcheck doesn't fail
2545
2546         * python/Makefile.am: Preprend $(srcdir)/ to source files so the
2547         compiler looks in the right places during distcheck
2548
2549 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
2550
2551         * glib/example/Makefile.am: Fix a typo which cause make distcheck
2552         to fail
2553
2554 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
2555
2556         * python/examples/example-service.py,
2557         python/examples/example-signal-emitter.py: Fixed up examples
2558         for API changes
2559
2560 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
2561
2562         * python/__init__.py: Upped to version (0,42,0) because of
2563         the API change
2564
2565 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
2566
2567         * ChangeLog: fix date in last entry
2568
2569         * configure.in, bus/system.conf.in: add the ability to configure 
2570         the system bus user at compiletime with the --with-dbus-user flag
2571         (patch from Kristof Vansant)
2572
2573 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
2574
2575         * bus/dispatch.c, test/test-service.c: Add testcase
2576         for sending messages to oneself (TODO item).
2577
2578         * python/service.py (class Object): Swap ordering of bus_name 
2579         and object_path parameters to better support inheritance.
2580
2581         * doc/dbus-tutorial.xml: change Python docs to reflect change
2582         in parameter ordering and fix the inheritance section.
2583
2584         * doc/TODO: remove sending message to oneself TODO item
2585
2586 2005-07-15  Ross Burton  <ross@openedhand.com>
2587
2588         * glib/dbus-gproxy.c:
2589         Fix a leak when calling methods via the proxy.
2590
2591 2005-07-15  Colin Walters  <walters@verbum.org>
2592
2593         * bus/selinux.c (bus_selinux_append_context): Wrap in
2594         HAVE_SELINUX.
2595
2596 2005-07-14  John (J5) Palmieri  <johnp@redhat.com>
2597
2598         * python/_dbus.py (Bus::remove_signal_receiver):
2599         don't add a callback to the match if none has been passed in
2600         
2601         * python/matchrules.py (SignalMatchTree::remove): if the rule
2602         being matched does not have a callback treat it as a wildcard
2603         fix matching logic
2604
2605         * doc/dbus-tutorial.xml: Add Python tutorial
2606
2607 2005-07-14  Colin Walters  <walters@verbum.org>
2608
2609         * bus/driver.c
2610         (bus_driver_handle_get_connection_unix_security_context): New function.
2611         (message_handlers): Add.
2612
2613         * bus/selinux.c (bus_selinux_append_context): New function; appends
2614         security context to message.
2615
2616         * bus/selinux.h: Prototype.
2617
2618         * dbus/dbus-protocol.h (DBUS_ERROR_UNIX_SECURITY_CONTEXT_UNKNOWN): New.
2619
2620 2005-07-14  John (J5) Palmieri  <johnp@redhat.com>
2621
2622         * bus/activation.c: clean up all tabs to be 8 spaces 
2623         (bus_activation_activate_service): make sure we clean up
2624         if activation fails
2625
2626         * bus/dispatch.c: clean up all tabs to be 8 spaces 
2627         (check_shell_fail_service_auto_start): New function
2628         tests to make sure we get fail properly when trying to auto start a service
2629         with a faulty command line
2630         (check_shell_service_success_auto_start): New function tests to make sure
2631         auto started services get the arguments on the command line
2632
2633         * test/test-shell-service.c: Added service for testing auto-starting with 
2634         command line arguments
2635
2636         * test/data/valid-service-files/debug-shell-echo-fail.service.in, 
2637         test/data/valid-service-files/debug-shell-echo-success.service.in:
2638         Added service files for testing auto-starting with command line arguments
2639
2640         * */.cvsignore: added a bunch of generated files to various .cvsignore files
2641
2642 2005-07-14  Rodrigo Moya  <rodrigo@novell.com>
2643
2644         * dbus/dbus-shell.[ch]: copy/pasted code from GLib.
2645         
2646         * dbus/Makefile.am: added new files to build.
2647
2648         * bus/activation.c (bus_activation_activate_service): support
2649         activation commands with parameters.
2650
2651         * test/shell-test.c: added test program for the shell parsing
2652         code.
2653
2654 2005-07-13  David Zeuthen  <davidz@redhat.com>
2655
2656         * tools/dbus-send.c (append_arg, type_from_name): Also support 16 and
2657         64 bit signed and unsigned parameters
2658
2659 2005-07-13  John (J5) Palmieri  <johnp@redhat.com>
2660
2661         * python/.cvsignore: remove dbus_bindings.pyx, add dbus_bindings.pxd
2662
2663         * python/service.py (class Name): renamed BusName to make it clearer
2664         what the object is for (a name on the bus)
2665
2666         * python/examples/example-service.py,
2667         python/examples/example-signal-emitter.py: change the Name object to
2668         BusName
2669
2670 2005-07-12  Colin Walters  <walters@verbum.org>
2671
2672         Patch from Jim Gettys <Jim.Gettys@hp.com>.
2673
2674         * tools/dbus-launch.c: Include sys/select.h.
2675
2676 2005-07-12  John (J5) Palmieri  <johnp@redhat.com>
2677         * python/dbus_bindings.pyx.in: removed
2678
2679         * python/dbus_bindings.pyx: Added.
2680         - Fixed some memleaks (patch from 
2681         Sean Meiners <sean.meiners@linspireinc.com>)
2682         - Broke out the #include "dbus_h_wrapper.h" and put it in its
2683         own pxd file (Pyrex definition)
2684         - Broke out glib dependancies into its own pyx module
2685         
2686         * python/dbus_bindings.pdx: Added.
2687         - Defines C class Connection for exporting to other modules
2688
2689         * python/dbus_glib_bindings.pyx: Added.
2690         - New module to handle lowlevel dbus-glib mainloop integration
2691
2692         * python/glib.py: Added.
2693         - Registers the glib mainloop when you import this module
2694
2695         * python/services.py: Removed (renamed to service.py)
2696         
2697         * python/service.py: Added.
2698         - (class Server): renamed Name
2699
2700         * python/__init__.py: Bump ro version (0,41,0)
2701         -don't import the decorators or service module
2702         by default.  These now reside in the dbus.service namespace
2703
2704         * python/_dbus.py (Bus::__init__): Add code run the main loop 
2705         setup function on creation 
2706
2707         * python/examples/example-service.py,
2708         python/examples/example-signal-emitter.py: update examples
2709
2710         * python/examples/gconf-proxy-service.py,
2711         python/examples/gconf-proxy-service2.py: TODO fix these up
2712
2713         * doc/TODO: Addition
2714         - Added a Python Bindings 1.0 section
2715         - added "Add match on args or match on details to match rules"
2716
2717
2718 2005-07-12  Colin Walters  <walters@verbum.org>
2719
2720         * glib/examples/statemachine/Makefile.am (statemachine-server-glue.h) 
2721         (statemachine-glue.h): 
2722         * glib/examples/Makefile.am (example-service-glue.h) 
2723         (example-signal-emitter-glue.h): 
2724         * glib/Makefile.am (dbus-glib-error-switch.h): 
2725         Add libtool --mode=execute so we use the built library instead
2726         of any installed one.
2727
2728 2005-07-11  Colin Walters  <walters@verbum.org>
2729
2730         * glib/dbus-gvalue.c (struct _DBusGValue): Delete.
2731         (dbus_g_value_types_init): Remove assertion.
2732         (dbus_g_value_get_g_type, dbus_g_value_open)
2733         (dbus_g_value_iterator_get_values, dbus_g_value_get_signature)
2734         (dbus_g_value_copy, dbus_g_value_free): Delete unimplemented
2735         functions related to DBusGValue.  Now we marshal/demarshal
2736         structures as GValueArray.
2737         (dbus_gtype_from_signature_iter): Return G_TYPE_VALUE_ARRAY for
2738         structures.
2739         (signature_iter_to_g_type_array): Don't call
2740         signature_iter_to_g_type_struct.
2741         (signature_iter_to_g_type_struct): Delete.
2742         (dbus_gvalue_to_signature): Delete.
2743         (dbus_gvalue_to_signature): New function with same name as other
2744         one; we can convert structures to signatures.
2745         (demarshal_valuearray): New function.
2746         (get_type_demarshaller): Use it.
2747         (demarshal_recurse): Delete.
2748         (marshal_proxy): New function.
2749         (marshal_map): Warn if we can't determine signature from type.
2750         (marshal_collection_ptrarray): Ditto.
2751         (marshal_collection_array): Ditto.
2752         (get_type_marshaller): Use marshal_valuearray.
2753         (marshal_recurse): Delete.
2754         (_dbus_gvalue_test): Add some tests.
2755
2756         * dbus/dbus-glib.h (struct _DBusGValueIterator): 
2757         (dbus_g_value_get_g_type, DBUS_TYPE_G_VALUE)
2758         (dbus_g_value_open, dbus_g_value_iterator_get_value)
2759         (dbus_g_value_iterator_get_values, dbus_g_value_iterator_recurse)
2760         (dbus_g_value_free): Remove prototypes.
2761
2762         * glib/dbus-binding-tool-glib.c (dbus_g_type_get_lookup_function): Handle
2763         G_TYPE_VALUE_ARRAY.
2764
2765         * glib/examples/example-service.c:
2766         * glib/examples/example-client.c: Implement GetTuple.
2767
2768         * test/glib/test-dbus-glib.c:
2769         * test/glib/test-service-glib.c:
2770         * test/glib/test-service-glib.xml: Add structure tests.
2771
2772 2005-07-10  Colin Walters  <walters@verbum.org>
2773
2774         * doc/TODO: Knock off some GLib items with this patch.
2775
2776         * glib/dbus-gvalue-utils.c (_dbus_gtype_can_signal_error) 
2777         (_dbus_gvalue_signals_error): New functions.
2778
2779         * glib/dbus-gvalue-utils.h: Prototype them.
2780
2781         * glib/dbus-gobject.c (arg_iterate): Update to handle return vals
2782         and change to not output const/retval flags for input args.  All
2783         callers updated.
2784         (invoke_object_method): Refactor to handle return values.  Add
2785         some more comments in various places.  Remove debug g_print.
2786
2787         * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_RETURNVAL): New.
2788
2789         * glib/dbus-binding-tool-glib.c (dbus_g_type_get_marshal_name):
2790         Handle G_TYPE_NONE.
2791         (compute_gsignature): New function; refactored from code from
2792         compute_marshaller and compute_marshaller_name.  Enhance to
2793         handle return values and async ops more cleanly.  Update for
2794         async ops returning NONE instead of BOOLEAN.
2795         (compute_marshaller, compute_marshaller_name): Call compute_gsignature
2796         and output appropriate string.
2797         (generate_glue): Handle return value annotation.  Also don't dump
2798         constness flag for input arguments.
2799
2800         * glib/Makefile.am (DBUS_GLIB_INTERNALS): New variable; contains
2801         files shared between installed library and utilities.
2802         (libdbus_glib_1_la_SOURCES): Move some stuf into DBUS_GLIB_INTERNALS.
2803         (libdbus_gtool_la_SOURCES): Suck in DBUS_GLIB_INTERNALS so the
2804         binding tool can access gtype utility functions.
2805
2806         * test/glib/test-service-glib.c: 
2807         * test/glib/test-service-glib.xml: 
2808         * test/glib/test-dbus-glib.c: Add some tests for return values.
2809
2810 2005-07-09  Colin Walters  <walters@verbum.org>
2811
2812         * glib/dbus-gparser.c (parse_annotation): Add annotations to
2813         argument if available, not method.
2814
2815         * glib/dbus-gobject.c (arg_iterate): More verbose warnings.
2816         (invoke_object_method): First, remove some redundant
2817         GValues (object_value, error_value) in favor of working on
2818         array directly.  Second, rework constness to be less buggy.
2819         Now we iterate directly over the argument metadata instead
2820         of parallel iterating over output signature and metadata.
2821
2822         * glib/dbus-glib-tool.h: Add INVALID_ANNOTATION error.
2823
2824         * glib/dbus-binding-tool-glib.c (generate_glue): Barf on const
2825         annotation on input args.
2826         
2827 2005-07-09  Colin Walters  <walters@verbum.org>
2828
2829         * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_CONST):
2830         Define.
2831
2832         * glib/dbus-binding-tool-glib.c (generate_glue): Handle Const
2833         annotation.
2834
2835         * glib/dbus-gobject.c (arg_iterate): Update to parse constval too.
2836         (method_dir_signature_from_object_info): Handle arg_iterate change.
2837         (write_interface): Ditto.
2838         (lookup_object_info): Don't barf if format_version is > 0.
2839         (invoke_object_method): Handle arg constness.
2840
2841         * glib/dbus-gidl.c (struct ArgInfo): Add annotations.
2842         (arg_info_new): Create.
2843         (arg_info_unref): Destroy.
2844         (arg_info_get_annotations, arg_info_get_annotation) 
2845         (arg_info_add_annotation): New functions.
2846
2847         * glib/dbus-gidl.h: Prototype them.
2848
2849         * glib/dbus-gparser.c (parse_annotation): Allow annotations in
2850         args, disallow them in properties.
2851         (parse_annotation): Handle arg annotations.
2852
2853         * test/glib/test-service-glib.xml: 
2854         * test/glib/test-service-glib.c: Update to make some methods
2855         const.
2856
2857 2005-07-08  Colin Walters  <walters@verbum.org>
2858
2859         * test/glib/test-service-glib.xml: 
2860         * test/glib/test-service-glib.c:
2861         * test/glib/test-dbus-glib.c: Test a{sv}.
2862
2863         * glib/examples/statemachine/statemachine.c:
2864         * glib/examples/statemachine/statemachine-server.c:
2865         * glib/examples/statemachine/statemachine-client.c: Fix some bugs,
2866         add progress bar, etc.
2867
2868         * glib/dbus-gvalue.c (register_array, register_dict): Delete; not
2869         needed anymore due to generic array/map marshalling.
2870         (dbus_g_value_types_init): Don't register basic arrays or the
2871         string/string hash.
2872         (dbus_gtype_from_signature_iter): Don't try to recurse into
2873         variants.
2874         (dbus_gtype_to_signature): Check collection/map before type
2875         metadata.
2876         (demarshal_garray_basic): Renamed to demarshal_collection_array.
2877         (demarshal_ghashtable): Renamed to demarshal_map; fix to use new
2878         generic map creation/append functions instead of hash table
2879         specifically.
2880         (get_type_demarshaller): Handle maps.
2881         (demarshal_collection): Dispatch on collection type to either
2882         demarshal_collection_ptrarray or demarshal_collection_array.
2883         (get_type_marshaller): Handle maps.
2884         (marshal_collection): Dispatch collection type to either
2885         marshal_collection_ptrarray or marshal_collection_array.
2886         (_dbus_gvalue_test): New test.
2887
2888         * glib/dbus-gvalue-utils.c (unset_and_free_g_value): New function.
2889         (hash_free_from_gtype): Use it to free GValues.
2890         (hashtable_append): New function.
2891         (ptrarray_append): Fix prototype.
2892         (slist_append): Ditto.
2893         (_dbus_gvalue_utils_test): Extend tests.
2894
2895         * glib/dbus-gtype-specialized.c
2896         (dbus_g_type_specialized_init_append): Renamed from
2897         dbus_g_type_specialized_collection_init_append.  Remove const from
2898         value, since we steal it.
2899         (dbus_g_type_specialized_map_append): New function.
2900
2901         * glib/dbus-gtype-specialized.h: Update prototypes.
2902         Add DBusGTypeSpecializedMapAppendFunc.
2903
2904         * glib/dbus-gtest.c (dbus_glib_internal_do_not_use_run_tests): Run
2905         _dbus_gvalue_test.
2906         
2907         * glib/dbus-gtest.h: Prototype it.
2908
2909 2005-07-08  Ross Burton  <ross@openedhand.com>
2910
2911         * dbus/dbus-glib.h:
2912         Add DBysGAsyncData for the async bindings.
2913
2914         * glib/dbus-binding-tool-glib.c:
2915         Re-enable the async bindings.
2916
2917         * test/glib/test-dbus-glib.c:
2918         Add a test for the generated async bindings.
2919
2920 2005-07-08  Colin Walters  <walters@verbum.org>
2921
2922         * doc/TODO: Update GLib todo bits, also add a post-1.0 TODO for a
2923         connection concept.
2924         
2925 2005-07-08  Colin Walters  <walters@verbum.org>
2926         
2927         * tools/Makefile.am: Kill of print-introspect in favor of using
2928         dbus-send --print-reply=literal.
2929
2930         * test/glib/test-service-glib.xml: 
2931         * test/glib/test-service-glib.c (my_object_get_objs): New test
2932         for "ao".
2933
2934         * test/glib/test-dbus-glib.c (echo_received_cb): Free echo data.
2935         (main): Test GetObjs.
2936
2937         * glib/examples/statemachine/Makefile.am:
2938         * glib/examples/statemachine/sm-marshal.list:
2939         * glib/examples/statemachine/statemachine-client.c:
2940         * glib/examples/statemachine/statemachine-server.c:
2941         * glib/examples/statemachine/statemachine-server.xml:
2942         * glib/examples/statemachine/statemachine.c:
2943         * glib/examples/statemachine/statemachine.h:
2944         * glib/examples/statemachine/statemachine.xml:
2945
2946         New example.
2947
2948         * glib/examples/example-service.c (main): Move invocation
2949         of dbus_g_object_type_install_info earlier, to emphasize it
2950         should only be done once.
2951
2952         * glib/examples/example-signal-emitter.c (main): Ditto.
2953
2954         * glib/examples/Makefile.am (SUBDIRS): Include statemachine.
2955
2956         * glib/dbus-gvalue.h (dbus_gtype_to_signature)
2957         (dbus_gvalue_marshal): Update prototypes.
2958
2959         * glib/dbus-gvalue.c: Update all marshalling functions to take
2960         const GValue instead of GValue.
2961         (signature_iter_to_g_type_array): Return a GPtrArray for nonfixed
2962         types.
2963         (dbus_gvalue_to_signature): Update for dbus_gtype_to_signature
2964         change.
2965         (dbus_gtype_to_signature): Handle generic collecitons and maps.
2966         Return a newly-allocated string.
2967         (demarshal_proxy, demarshal_object_path, demarshal_object)
2968         (demarshal_strv, demarshal_ghashtable): Set error, don't assert if
2969         we get the wrong types from message.
2970         (get_type_demarshaller): New function, extracted from
2971         dbus_gvalue_demarshal.
2972         (demarshal_collection): New function, demarshals generic
2973         collection.
2974         (dbus_gvalue_demarshal): Just invoke result of
2975         get_type_demarshaller.  Throw error if we don't have one.
2976         (marshal_garray_basic): Abort on OOM.
2977         (get_type_marshaller): New function, extracted from
2978         dbus_gvalue_marshal.
2979         (collection_marshal_iterator, marshal_collection): New functions;
2980         implements generic marshalling for an iteratable specialized
2981         collection.
2982         (dbus_gvalue_marshal): Just invoke result of get_type_marshaller.
2983
2984         * glib/dbus-gvalue-utils.c (gvalue_from_ptrarray_value): Handle
2985         G_TYPE_STRING.
2986         (ptrarray_value_from_gvalue): Ditto.
2987         (ptrarray_append, ptrarray_free): New functions.
2988         (slist_constructor, slist_iterator, slist_copy_elt, slist_copy) 
2989         (slist_append, slist_end_append, slist_free): New functions.
2990         (dbus_g_type_specialized_builtins_init): Add append fuctions
2991         for GPtrArray and GSList.  Register GSList.
2992         (test_specialized_hash, _dbus_gvalue_utils_test): New functions.
2993
2994         * glib/dbus-gtype-specialized.h (DBusGTypeSpecializedAppendContext):
2995         New.
2996         (dbus_g_type_specialized_collection_init_append)
2997         (dbus_g_type_specialized_collection_append)
2998         (dbus_g_type_specialized_collection_end_append): Prototype.
2999         (DBusGTypeSpecializedCollectionVtable): Add append_func and
3000         end_append_func.
3001
3002         * glib/dbus-gtype-specialized.c (dbus_g_type_specialized_collection_init_append) 
3003         (dbus_g_type_specialized_collection_append) 
3004         (dbus_g_type_specialized_collection_end_append): New functions.
3005         (dbus_g_type_map_value_iterate): Take const GValue.
3006         (dbus_g_type_collection_value_iterate): Ditto.
3007
3008         * glib/dbus-gtest.c (dbus_glib_internal_do_not_use_run_tests): Run
3009         _dbus_gvalue_utils_test.
3010         
3011         * glib/dbus-gtest.h: Prototype it.
3012
3013         * glib/dbus-gproxy.c (dbus_g_proxy_manager_filter): Avoid
3014         using uninitialized owner_list.
3015         (dbus_g_proxy_begin_call_internal): Move return_if_fail to
3016         public API.
3017         (dbus_g_proxy_end_call_internal): Update to use error set
3018         from dbus_gvalue_demarshal instead of setting it here.
3019         (dbus_g_proxy_begin_call): Move return_if_fail here.
3020
3021         * glib/dbus-gobject.c (write_interface): Update for
3022         dbus_gtype_to_signature returning new string.
3023
3024         * configure.in: Add glib/examples/statemachine.
3025
3026 2005-07-08  Joe Shaw  <joeshaw@novell.com>
3027
3028         * configure.in: Add a configure option, --with-console-auth-dir
3029         
3030         * dbus/dbus-sysdeps-util.c (_dbus_user_at_console): Use the
3031         new setting.  Patch from Kay Sievers.
3032
3033 2005-07-06  Colin Walters  <walters@verbum.org>
3034
3035         * dbus/dbus-glib.h (DBusGPendingCall, DBusGPendingCallNotify)
3036         (DBUS_TYPE_G_PENDING_CALL, dbus_g_pending_call_get_g_type)
3037         (dbus_g_pending_call_ref, dbus_g_pending_call_unref): Delete.
3038         (dbus_g_pending_call_set_notify, dbus_g_pending_call_cancel):
3039         Delete in favor of dbus_g_proxy_begin_call and
3040         dbus_g_proxy_cancel_call.
3041         (DBusGProxyCall, DBusGProxyCallNotify): New.
3042         (dbus_g_proxy_begin_call): Change prototype to take callback, user
3043         data, and destroy function.  This replaces
3044         dbus_g_pending_call_set_notify.
3045         (dbus_g_proxy_cancel_call): Prototype.
3046         (DBusGAsyncData): Delete, shouldn't be needed anymore.
3047
3048         * glib/dbus-gproxy.c (struct _DBusGProxy): Add call_id_counter and
3049         pending_calls map.
3050         (struct _DBusGProxyManager): Add bus_proxy member, which is an
3051         internal proxy for calls to the bus. Remove
3052         pending_nameowner_calls, now the internal proxy keeps track.
3053         (dbus_g_proxy_manager_unref): Unref bus proxy, remove reference to
3054         pending_nameowner_calls.
3055         (got_name_owner_cb): Update prototype, and use
3056         dbus_g_proxy_end_call.
3057         (got_name_owner_cb): Remove reference to pending_nameowner_calls.
3058         (dbus_g_proxy_manager_register): Delete directly libdbus code in
3059         favor of using internal proxy.
3060         (dbus_g_proxy_manager_unregister): Update to use
3061         dbus_g_proxy_cancel_call for any pending GetNameOwner call.
3062         (dbus_g_proxy_init): Initialize pending calls map.
3063         (dbus_g_proxy_constructor): New.
3064         (dbus_g_proxy_class_init): Add get/set property functions,
3065         constructor, and add NAME, PATH, and INTERFACE properties.
3066         (cancel_pending_call): New function.
3067         (dbus_g_proxy_dispose): Iterate over any outstanding calls and
3068         cancel them.
3069         (dbus_g_proxy_set_property, dbus_g_proxy_get_property): New.
3070         (GPendingNotifyClosure): New structure.
3071         (d_pending_call_notify, d_pending_call_free): Moved here from
3072         dbus-glib.c.
3073         (DBUS_G_VALUE_ARRAY_COLLECT_ALL): Moved around to satisfy function
3074         ordering.
3075         (manager_begin_bus_call): New internal function for talking to
3076         internal bus proxy.
3077         (dbus_g_proxy_new): Construct object using GObjet properties.
3078         (dbus_g_proxy_begin_call_internal): Update to take user data, etc.
3079         Create closure of same, and insert call into map of pending calls.
3080         (dbus_g_proxy_end_call_internal): Take call id instead of pending
3081         call.  Look up pending call in current set.  Remove it when we've
3082         completed.
3083         (dbus_g_pending_call_end, dbus_g_proxy_end_call_internal): Delete.
3084         (dbus_g_proxy_begin_call): Change API to take callback, user data,
3085         and destroy function directly.
3086         (dbus_g_proxy_end_call): Update to take DBusGProxyCall.
3087         (dbus_g_proxy_call): Invoke with NULL callback.
3088         (dbus_g_proxy_cancel_call): New function, replaces
3089         dbus_g_pending_call_cancel.
3090
3091         * glib/dbus-gparser.c (validate_signature): Fix call to
3092         dbus_set_g_error.
3093
3094         * glib/dbus-gobject.c (dbus_g_object_type_dbus_metadata_quark):
3095         New quark for attaching metadata to GType.
3096         (info_hash): Delete.
3097         (lookup_object_info): Look up using quark.
3098         (dbus_g_object_type_install_info): Check that a type is classed,
3099         not that it's an object.  Also just install type data using quark
3100         instead of using global hash.
3101
3102         * glib/dbus-glib.c (dbus_g_pending_call_ref) 
3103         (dbus_g_pending_call_unref, dbus_pending_call_get_g_type)
3104         (GPendingNotifyClosure): Delete.
3105         (d_pending_call_notify, d_pending_call_free): Move to dbus-gproxy.c.
3106         (dbus_g_pending_call_set_notify, dbus_g_pending_call_cancel): Delete.
3107
3108         * glib/dbus-binding-tool-glib.c (generate_client_glue): Disable async
3109         client method generation until we can fix it...
3110         
3111         * tools/dbus-viewer.c (load_child_nodes): Use dbus_g_proxy_call.
3112         (load_from_service_thread_func): Ditto.
3113
3114         * tools/dbus-names-model.c (struct NamesModel): Hold
3115         DBusGProxyCall.
3116         (have_names_notify): Update prototype, use
3117         dbus_g_proxy_cancel_call.
3118         (names_model_reload): Update for new dbus_g_proxy_begin_call API.
3119
3120         * tools/dbus-monitor.c (filter_func): Update for print_message
3121         API change.
3122
3123         * test/glib/test-dbus-glib.c: Add more tests for async
3124         invocations.  Update many begin_call/end_call pairs to just use
3125         dbus_g_proxy_call.
3126
3127         * tools/dbus-send.c (main): Add --print-reply=literal mode.  This
3128         allows us to dump print-introspect.c.
3129
3130         * tools/dbus-print-message.h (print_message): Add literal argument
3131         to print_message which is intended to allow printing arguments without
3132         metadata like "string=".
3133
3134         * tools/dbus-print-message.c (print_iter): Add literal argument.
3135         (print_message): Allow printing string messages literally.
3136
3137 2005-07-05  Colin Walters  <walters@verbum.org>
3138
3139         * glib/dbus-gproxy.c (marshal_dbus_message_to_g_marshaller):
3140         Remove value refcount leak, original patch from Jorn Baayen
3141         <jorn@openedhand.com>.  Also remove useless extra value in favor
3142         of prepending to value array directly.
3143
3144 2005-07-02  Colin Walters  <walters@verbum.org>
3145
3146         * glib/dbus-gmain.c (_dbus_gmain_test): Fix test.
3147
3148 2005-07-01  Colin Walters  <walters@verbum.org>
3149
3150         Patch from Jonathan Matthew <jonathan@kaolin.hn.org>
3151         
3152         * glib/dbus-gvalue.c (basic_typecode_to_gtype): Fix return type.
3153         (dbus_g_value_types_init): Marshal G_TYPE_CHAR as DBUS_TYPE_BYTE,
3154         G_TYPE_LONG as DBUS_TYPE_INT32, G_TYPE_ULONG as DBUS_TYPE_UINT32,
3155         and G_TYPE_FLOAT as DBUS_TYPE_DOUBLE.
3156
3157 2005-06-30  Colin Walters  <walters@verbum.org>
3158
3159         * test/glib/test-dbus-glib.c:
3160         * test/glib/test-service-glib.c:
3161         * test/glib/test-service-glib.xml: Update tests for new error
3162         setting bits, also add async tests (patch from Ross Burton).
3163
3164         * test/glib/Makefile.am (test_service_glib_LDADD): Add
3165         DBUS_GLIB_THREADS_LIBS.
3166
3167         * glib/dbus-gproxy.c (get_name_owner)
3168         (dbus_g_pending_call_end_valist): Ditto.
3169
3170         * glib/dbus-gobject.c (error_metadata): New mapping from GError
3171         domain (GQuark) to DBusGErrorInfo.  
3172         (gerror_domaincode_to_dbus_error_name): Attempt to look up error
3173         quark in error_metadata.  Take message interface as default
3174         error message interface.
3175         (gerror_to_dbus_error_message): Pass message interface.
3176         (dbus_set_g_error): Resurrected.
3177         (dbus_g_error_info_free): New function.
3178         (dbus_g_object_type_install_info): Use g_type_class_ref instead
3179         of _peek to actually create the object class if it hasn't been
3180         created yet.
3181         (dbus_g_error_domain_register): New function.
3182
3183         * glib/dbus-gmain.c (dbus_g_bus_get): Switch to dbus_set_g_error.
3184
3185         * glib/dbus-gparser.c (validate_signature): Ditto.
3186
3187         * dbus/dbus-glib.h (dbus_g_error_set): Delete.
3188         (dbus_g_error_domain_register): Prototype.
3189
3190         * glib/dbus-glib.c (dbus_g_error_set): Delete.
3191         Update tests.
3192
3193 2005-06-29  Colin Walters  <walters@verbum.org>
3194
3195         * dbus/dbus-glib.h: Delete DBUS_TYPE_G_PROXY_ARRAY.  Add
3196         DBUS_TYPE_G_OBJECT_PATH.
3197
3198         * glib/dbus-gvalue.c (dbus_g_value_types_init): Remove marshallers
3199         for G_TYPE_OBJECT and DBUS_TYPE_G_PROXY_ARRAY (the latter should
3200         be handled more generically).  Add DBUS_TYPE_G_OBJECT_PATH.
3201         (dbus_g_object_path_get_g_type): New function.
3202         (dbus_gtype_from_signature_iter): Map DBUS_TYPE_OBJECT_PATH
3203         to DBUS_TYPE_G_OBJECT_PATH by default.
3204         (demarshal_proxy): Remove unused name variable.
3205         (demarshal_object_path, marshal_object_path): New functions.
3206         (demarshal_proxy_array, marshal_proxy_array): Delete.
3207         
3208         * glib/dbus-binding-tool-glib.c (dbus_g_type_get_c_name): Map
3209         DBUS_TYPE_G_OBJECT_PATH to char *.
3210         (dbus_g_type_get_lookup_function): Map builtin
3211         DBUS_TYPE_G_OBJECT_PATH.
3212
3213         * test/glib/test-dbus-glib.c
3214         * test/glib/test-service-glib.c (my_object_objpath): 
3215         Adapt tests to new object path marshalling.
3216
3217 2005-06-29  John (J5) Palmieri  <johnp@redhat.com>
3218
3219         * configure.in: force check for Python >= 2.4
3220
3221 2005-06-29  Colin Walters  <walters@verbum.org>
3222         
3223         Patch from Ross Burton <ross@openedhand.com>
3224         
3225         * glib/dbus-gobject.c (invoke_object_method): Unset object
3226         value in all cases, not only in async case.
3227
3228 2005-06-29  Colin Walters  <walters@verbum.org>
3229
3230         * glib/dbus-gproxy.c (struct _DBusGProxy): Add new member
3231         name_call for keeping track of any outgoing GetNameOwner call.
3232         Also add for_owner and associated.
3233         (struct _DBusGProxyManager): Add owner_names, which is hash table
3234         that maps a base name to a list of names it owns (that we're
3235         interested in).  Add pending_nameowner_calls which is a list of
3236         all outstanding GetNameOwner; avoids us having to iterate over
3237         every proxy.  Add unassociated_proxies which keeps track of name
3238         proxies with no associated name owner.
3239         (dbus_g_proxy_manager_unref): Destroy owner_names.
3240         (struct DBusGProxyNameOwnerInfo): New struct for keeping track of
3241         name refcounts.
3242         (find_name_in_info, name_owner_foreach)
3243         (dbus_g_proxy_manager_lookup_name_owner, insert_nameinfo)
3244         (dbus_g_proxy_manager_monitor_name_owner)
3245         (dbus_g_proxy_manager_unmonitor_name_owner)
3246         (unassociate_proxies, dbus_g_proxy_manager_replace_name_owner):
3247         New functions; they manipulate the owner_names mapping.
3248         (got_name_owner_cb): New function.
3249         (get_name_owner): New function, extracted from
3250         dbus_g_proxy_new_for_name_owner.
3251         (dbus_g_proxy_manager_register): For now we need to keep track of
3252         all NameOwnerChanged.  Also if the proxy is for a name, if we
3253         don't already know the name owner, queue a new GetNameOwner
3254         request and add it to our list of unassociated proxies.  Otherwise
3255         inc the refcount.
3256         (dbus_g_proxy_manager_unregister): If this proxy is for a name,
3257         cancel any pending GetNameOwner call, etc.
3258         (dbus_g_proxy_manager_filter): Handle NameOwnerChanged.  Also use
3259         the owner_names mapping to look up the current names for the
3260         signal source, and dispatch to any proxies for that name.
3261         (dbus_g_proxy_new): Initialize new members.
3262         (dbus_g_proxy_new_for_name): Delete unused proxy variable.
3263         (dbus_g_proxy_new_for_name_owner): Use get_name_owner.
3264         (dbus_g_pending_call_end_valist): New function, extracted from
3265         dbus_g_proxy_end_call_internal.  Useful when we don't have a proxy
3266         but want to use the GLib infrastructure.  Also note how many
3267         arguments in reply were over.
3268         (dbus_g_pending_call_end): New function, just call
3269         dbus_g_pending_call_end_valist.
3270         (dbus_g_proxy_end_call_internal): Just call
3271         dbus_g_pending_call_end_valist.
3272
3273         * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller): Fix lookup
3274         of builtin marshaller for STRING_STRING_STRING.
3275
3276         * test/glib/test-dbus-glib.c: 
3277         * test/glib/test-service-glib.c:
3278         * test/glib/test-service-glib.xml:
3279         Extend tests to cover name proxies, destruction of owner proxies,
3280         etc.
3281         
3282         * glib/examples/example-signal-recipient.c
3283         (dbus_g_proxy_new_for_name_owner): Create a name proxy.
3284         
3285         * tools/dbus-send.c (main): Print D-BUS error name in addition
3286         to message.
3287
3288 2005-06-28  John (J5) Palmieri  <johnp@redhat.com>
3289
3290         * python/dbus_bindings.pyx.in (cunregister_function_handler,
3291         cmessage_function_handler): Patch from 
3292         Anthony Baxter <anthony@interlink.com.au> fixes threading problems
3293         by using the Py_GILState_Ensure/Release to synchronize with the
3294         python runtime.
3295         
3296 2005-06-28  Ray Strode  <rstrode@redhat.com>
3297
3298         *  dbus/dbus-spawn.c (_dbus_babysitter_unref): kill
3299         babysitter helper process on last unref, bug #2813.
3300
3301 2005-06-27  Colin Walters  <walters@verbum.org>
3302
3303         * test/glib/test-dbus-glib.c: 
3304         * test/glib/test-service-glib.c:
3305         * test/glib/test-service-glib.xml:
3306         Test hash table signal emitting.
3307
3308         * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller): Convert
3309         types to their fundamental basis types, since this is what
3310         marshallers operate on.  Also add an entry for VOID__BOXED.
3311         (dbus_g_object_register_marshaller_array): Convert to fundamental.
3312
3313 2005-06-26  Havoc Pennington  <hp@redhat.com>
3314
3315         * doc/dbus-tutorial.xml: fix names of interface/service/path, fix
3316         from Don Park
3317
3318 2005-06-26  Colin Walters  <walters@verbum.org>
3319
3320         * glib/dbus-glib.c (dbus_set_g_error): Delete.
3321         (dbus_g_error_set): New public function from its ashes; used by
3322         both service-side method implementation and GLib bindings
3323         internals.
3324         (dbus_g_error_has_name, dbus_g_error_get_name): New function.
3325         (_dbus_glib_test): Add some tests.
3326
3327         * test/glib/test-dbus-glib.c (main): Test dbus_g_error_has_name.
3328
3329         * test/glib/test-service-glib.c (my_object_throw_error): Use
3330         dbus_g_error_set.
3331
3332         * glib/dbus-gobject.c (gerror_to_dbus_error_message): Handle
3333         errors thrown by dbus_g_error_set.
3334
3335         * glib/dbus-gmain.c (dbus_g_bus_get): Change to dbus_g_error_set.
3336
3337         * glib/dbus-gparser.c (validate_signature): Ditto.
3338
3339         * glib/dbus-gproxy.c (dbus_g_proxy_new_for_name_owner) 
3340         (dbus_g_proxy_end_call_internal): Ditto.
3341
3342         * glib/Makefile.am: Generate dbus-glib-error-switch.h, which
3343         converts DBUS_ERROR_x to DBUS_GERROR_x.
3344         (libdbus_glib_1_la_SOURCES, BUILT_SOURCES, CLEANFILES): Add it.
3345
3346         * doc/TODO: Remove error TODO.
3347
3348         * doc/dbus-tutorial.xml: Update with documentation about error
3349         handling.
3350
3351         * dbus/make-dbus-glib-error-enum.sh: Tighten up regexp to make
3352         sure we only change DBUS_ERROR to DBUS_GERROR, not all ERROR to
3353         GERROR.  Also add DBUS_GERROR_REMOTE_EXCEPTION.
3354
3355 2005-06-22  Colin Walters  <walters@verbum.org>
3356         
3357         Patch from Ross Burton <ross@openedhand.com>
3358
3359         * glib/dbus-gobject.c (dbus_g_method_return): Free out_sig.
3360
3361 2005-06-20  Colin Walters  <walters@verbum.org>
3362
3363         * configure.in: Add glib/examples.
3364
3365         * glib/Makefile.am: Add examples/
3366
3367         * glib/examples/.cvsignore
3368         * glib/examples/Makefile.am
3369         * glib/examples/example-client.c
3370         * glib/examples/example-service.c
3371         * glib/examples/example-service.xml
3372         * glib/examples/example-signal-emitter.c
3373         * glib/examples/example-signal-emitter.xml
3374         * glib/examples/example-signal-recipient.c:
3375         New files; GLib binding examples, ported from
3376         python/examples.
3377
3378 2005-06-20  Colin Walters  <walters@verbum.org>
3379
3380         * dbus/dbus-glib.h: 
3381         * glib/dbus-gproxy.c: Rename dbus_g_proxy_invoke to
3382         dbus_g_proxy_call.
3383
3384         * glib/dbus-binding-tool-glib.c: 
3385         * doc/dbus-tutorial.xml: 
3386         * test/glib/test-dbus-glib.c: Update for rename.
3387         
3388 2005-06-20  Colin Walters  <walters@verbum.org>
3389
3390         Patch suggested by Ross Burton <ross@openedhand.com>
3391
3392         * glib/dbus-gobject.c (export_signals): Free signal name.
3393         (g_value_init): Use G_VALUE_NOCOPY_CONTENTS to plug
3394         memory leak.  Add a bit of documentation.
3395         (dbus_g_method_return_error): Free context, and note we do
3396         so.
3397
3398 2005-06-18  Murray Cumming  <murrayc@murrayc.com>
3399
3400         * dbus/dbus-glib.h:
3401         * glib/dbus-gobject.c:
3402         * glib/dbus-gproxy.c:
3403         * glib/dbus-gvalue.c: Predeclare structs as 
3404         typedef struct _Something Something instead of 
3405         typedef struct Something Something, so we can 
3406         redeclare the prototypes. Other GNOME libraries 
3407         do this already.
3408
3409 2005-06-17  Colin Walters  <walters@verbum.org>
3410
3411         * tools/dbus-names-model.c (have_names_notify): Fix call
3412         to dbus_g_proxy_end_call.
3413         
3414 2005-06-17  Colin Walters  <walters@verbum.org>
3415
3416         * glib/dbus-gproxy.c (dbus_g_proxy_emit_remote_signal): Don't
3417         spew warnings if we get malformed remote signals.
3418
3419         * glib/dbus-gobject.c (propsig_iterate): New function.
3420         (lookup_object_info): New function, extracted from
3421         lookup_object_and_method.
3422         (introspect_properties, introspect_signals): Delete; these
3423         are merged into write_interface.
3424         (write_interface): Write out signals and properties here;
3425         dump the org.gtk.object stuff and use the interface given
3426         in the introspection data blob.  Also fix up property XML.
3427         (lookup_values): New function.
3428         (introspect_interfaces): Gather a mapping from interface to a
3429         list of its methods, signals, and properties, then write out
3430         each interface.
3431         (lookup_object_and_method): Use lookup_object_info.
3432         (struct DBusGSignalClosure): Add interface.
3433         (dbus_g_signal_closure_new): Add interface. Don't dup signame;
3434         we can just use the constant data.
3435         (dbus_g_signal_closure_finalize): Don't free signal name.
3436         (signal_emitter_marshaller): Use interface from signal closure.
3437         (export_signals): Only export signals mentioned in introspection
3438         blob.
3439         (dbus_g_connection_register_g_object): Warn if we have no
3440         introspection data for an object.
3441         (funcsig_equal): Remove unused variable.
3442         (dbus_g_object_register_marshaller): Take varargs instead of
3443         list.
3444         (dbus_g_object_register_marshaller_array): New function,
3445         extracted from old dbus_g_object_register_marshaller.
3446
3447         * glib/dbus-binding-tool-glib.c (struct DBusBindingToolCData): Add
3448         signals and property data.
3449         (write_quoted_string): New function, extracted from generate_glue.
3450         (generate_glue): Write signals and properties to introspection
3451         blob.
3452
3453         * dbus/dbus-glib.h (struct DBusGObjectInfo): Include
3454         exported_signals and exported_properties.
3455         (dbus_g_object_register_marshaller): Update prototype.
3456         (dbus_g_object_register_marshaller_array): Prototype.
3457         
3458         * test/glib/test-dbus-glib.c: Extend testing to cover new signals.
3459
3460         * test/glib/test-service-glib.c: Add new test signals and method
3461         to emit them.
3462
3463         * test/glib/test-service-glib.xml: Add some test signals.
3464
3465         * test/glib/Makefile.am (BUILT_SOURCES): Add my-object-marshal.c
3466         and my-object-marshal.h
3467         (test_service_glib_SOURCES, test_dbus_glib_SOURCES): Add
3468         my-object-marshal.c.
3469         (my-object-marshal.c, my-object-marshal.h): Implement.
3470
3471         * test/glib/.cvsignore: Update.
3472
3473         * doc/TODO: Remove two GLib TODO items fixed by this
3474         patch.
3475
3476 2005-06-16  Colin Walters  <walters@verbum.org>
3477
3478         * doc/TODO: Update for GLib bindings.
3479         
3480 2005-06-16  Colin Walters  <walters@verbum.org>
3481
3482         * glib/dbus-binding-tool-glib.c:
3483         * glib/dbus-gobject.c:
3484         * glib/dbus-gproxy.c:  Add Nokia copyright; Patch
3485         from Ross Burton, for his GLib bindings work.
3486
3487 2005-06-16  Colin Walters  <walters@verbum.org>
3488
3489         * glib/dbus-gobject.c (funcsig_hash, funcsig_equal): Use n_params
3490         to iterate instead of walking to G_TYPE_INVALID.
3491
3492         Patch based on a patch from Ryan Gammon.
3493
3494 2005-06-16  Colin Walters  <walters@verbum.org>
3495
3496         * bus/bus.c (bus_context_new): Set parser to NULL
3497         after we unref it (Patch from Chris Boscolo, #2174).
3498         
3499 2005-06-16  Colin Walters  <walters@verbum.org>
3500
3501         * python/dbus_bindings.pyx.in: Import size_t,
3502         __int64_t, __uint64_t, and __signed.
3503
3504         * dbus/dbus-sysdeps.c <HAVE_CMSGCRED> (write_credentials_byte):
3505         Define cmsg struct, output it.
3506         (_dbus_read_credentials_unix_socket):
3507         Use cmsg struct.
3508         
3509         Patch from Joe Markus Clarke for FreeBSD support.
3510         
3511 2005-06-16  Colin Walters  <walters@verbum.org>
3512
3513         * tools/dbus-send.c (append_array): Use strtok.
3514         (append_dict): New function.
3515         (type_from_name): New function, extracted from main.
3516         (main): Handle sending dicts.
3517
3518         * tools/dbus-print-message.c (print_iter): Print dict
3519         entries.
3520         
3521 2005-06-16  Colin Walters  <walters@verbum.org>
3522
3523         * glib/dbus-gvalue.c (marshal_basic): Marshal NULL string
3524         values as the empty string (#2948).
3525         
3526 2005-06-16  Colin Walters  <walters@verbum.org>
3527
3528         * dbus/Makefile.am:
3529         * mono/doc/Makefile.am:
3530         * test/glib/Makefile.am:
3531
3532         Fix srcdir != builddir issues (Patch from Chris Wilson, #3477)
3533
3534 2005-06-16  Colin Walters  <walters@verbum.org>
3535
3536         * dbus/dbus-marshal-header.c (_dbus_header_load): Set
3537         header byte order from expected byte order (Patch from Chris Wilson, #3475).
3538
3539         * dbus/dbus-marshal-byteswap.c (byteswap_body_helper): 
3540         Increment pointer after swapping fixed array.  Add assertion
3541         for array length.
3542                 
3543 2005-06-15  Colin Walters  <walters@verbum.org>
3544
3545         * dbus/dbus-sysdeps.c <HAVE_CMSGCRED> (_dbus_read_credentials_unix_socket):
3546         Fix call to dbus_set_error.  (Patch from Michael Banck, #3461)
3547         
3548 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
3549
3550         * NEWS: Update to 0.34
3551
3552 2005-06-15  David Zeuthen  <davidz@redhat.com>
3553
3554         * configure.in (LT_CURRENT): Revert back to 1 as the library
3555         hasn't changed and we've certainly not committed to protocol
3556         stability yet.  All this does is to break ABI. See commit note
3557         from hp@redhat.com 2005-05-05 for details.
3558         
3559 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
3560
3561         * dbus/dbus-connection.c (_dbus_connection_peer_filter): New method 
3562         (_dbus_connection_run_builtin_filters): New method
3563         (dbus_connection_dispatch): Run the builtin filters which in turn
3564         runs the peer filter which handles Ping messages.
3565
3566         * doc/TODO: 
3567          - Ping isn't handled: This patch fixes it
3568          
3569          - Add a test case for the Ping message: added TODO item
3570
3571 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
3572
3573         * dbus/dbus-message.c:
3574         (dbus_message_has_path): New method
3575         (dbus_message_has_interface): New method
3576         (dbus_message_has_member): New method
3577
3578         * dbus/dbus/dbus-sysdeps.c (_dbus_check_dir_is_private_to_user):
3579         New method
3580
3581         * dbus/dbus-keyring.c (_dbus_keyring_reload): Check to see that 
3582         the keyring directory is private to the user
3583
3584         * doc/TODO:
3585          - The convenience functions in dbus-bus.h should perhaps have
3586          the signatures that they would have if they were autogenerated
3587          stubs. e.g. the acquire service function. We should also evaluate
3588          which of these functions to include, in light of the fact that
3589          GLib/Qt native stubs will probably also exist.: Punted
3590
3591          - add dbus_message_has_path(), maybe has_member/interface:
3592          fixed in this patch
3593
3594          - in dbus-keyring.c, enforce that the keyring dir is not
3595          world readable/writable: Fixed in this patch
3596
3597 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
3598
3599         * dbus/dbus-marshal-validate.h: Added a new validation
3600         error code DBUS_VALIDITY_UNKNOWN_OOM_ERROR = -4 for 
3601         out of memory errors when validating signitures
3602
3603         * dbus/dbus-marshal-header.c: use DBUS_VALIDITY_UNKNOWN_OOM_ERROR
3604         in places where we previously used DBUS_VALID and a FALSE return 
3605         value to indicate OOM
3606         
3607         * dbus/dbus-marshal-validate.c (_dbus_validate_signature_with_reason):
3608         Use a stack to track the number of elements inside containers.  The 
3609         stack values are then used to validate that dict entries have only two
3610         elements within them.
3611         (validate_body_helper): check the reason for failure when validating
3612         varients
3613         
3614         * dbus/dbus-message.c (load_message): use 
3615         DBUS_VALIDITY_UNKNOWN_OOM_ERROR in places where we previously used 
3616         DBUS_VALID and a FALSE return value to indicate OOM
3617
3618         * doc/TODO: remove "- validate dict entry number of fields" as this
3619         patch fixes it
3620
3621 2005-06-14  David Zeuthen  <davidz@redhat.com>
3622
3623         * bus/bus.c (process_config_every_time): Drop existing conf-dir
3624         watches (if applicable) and add new watches
3625
3626         * bus/main.c (signal_handler): Handle SIGIO if using D_NOTIFY
3627         (main): Setup SIGIO signal handler if using D_NOTIFY
3628
3629         * bus/config-parser.h: Add prototype bus_config_parser_get_conf_dirs
3630
3631         * bus/config-parser.c (struct BusConfigParser): Add conf_dirs list
3632         (merge_included): Also merge conf_dirs list
3633         (bus_config_parser_unref): Clear conf_dirs list
3634         (include_dir): Add directory to conf_dirs list
3635         (bus_config_parser_get_conf_dirs): New function
3636
3637         * bus/dir-watch.[ch]: New files
3638
3639         * bus/Makefile.am (BUS_SOURCES): Add dir-watch.[ch]
3640
3641         * configure.in: Add checks for D_NOTIFY on Linux
3642
3643 2005-06-14  Colin Walters  <walters@verbum.org>
3644
3645         * glib/dbus-binding-tool-glib.c:
3646         * glib/dbus-gobject.c:
3647         * glib/dbus-gvalue.c: Fix indentation and brace style.
3648         
3649 2005-06-14  Ross Burton <ross@openedhand.com>.
3650
3651         * glib/dbus-glib.h: Make DBusGMethodInvocation
3652         a private structure.  Rearrange prototypes a bit.
3653         
3654         * glib/dbus-gproxy.c (dbus_g_proxy_invoke): Add
3655         documentation for first_arg_type.
3656         
3657         * glib/dbus-gobject.c: Move DBusGMethodInvocation
3658         here, add documentation.  Move dbus_g_method_return
3659         and dbus_g_method_return_error into public API
3660         section.
3661
3662 2005-06-14  Colin Walters  <walters@verbum.org>
3663
3664         * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller):
3665         Add missing return statements, noticed by Ross Burton.
3666         
3667 2005-06-13  Ross Burton <ross@openedhand.com>.
3668
3669         * glib/dbus-gobject.c: Handle errors on message
3670         demarshalling by sending error message back.
3671         * glib/dbus-gvalue.c: Initialize return variables.
3672
3673 2005-06-13  Colin Walters  <walters@verbum.org>
3674
3675         * glib/Makefile.am: Fix thinko in last patch.
3676
3677 2005-06-13  Colin Walters  <walters@verbum.org>
3678
3679         * glib/Makefile.am: Move dbus-gtype-specialized.c
3680         and dbus-gtype-specialized.h into a _HEADERS variable,
3681         install them.
3682
3683 2005-06-12  Colin Walters  <walters@verbum.org>
3684
3685         Async signals and various bugfixes and testing by
3686         Ross Burton <ross@openedhand.com>.
3687
3688         * glib/dbus-gvalue.h: (struct DBusBasicGValue): Delete.
3689         (dbus_gvalue_genmarshal_name_from_type)
3690         (dbus_gvalue_ctype_from_type): Moved to dbus-binding-tool-glib.c.
3691         (dbus_gtype_to_dbus_type): Renamed to dbus_gtype_from_signature.
3692         (dbus_g_value_types_init, dbus_gtype_from_signature)
3693         (dbus_gtype_from_signature_iter, dbus_gtype_to_signature)
3694         (dbus_gtypes_from_arg_signature): New function prototypes.
3695         (dbus_gvalue_demarshal): Take context and error arguments.
3696         (dbus_gvalue_demarshal_variant): New function.
3697         (dbus_gvalue_demarshal_message): New function.
3698         (dbus_gvalue_store): Delete.
3699
3700         * glib/dbus-gvalue.c:
3701
3702         File has been almost entirely rewritten; now we special-case
3703         more types such as DBUS_TYPE_SIGNATURE, handle arrays and
3704         hash tables correctly, etc.  Full support for recursive values
3705         is not yet complete.
3706
3707         * glib/dbus-gproxy.c (dbus_g_proxy_class_init): Change last
3708         argument of signal to G_TYPE_POINTER since we now pass a
3709         structure.
3710         (lookup_g_marshaller): Delete in favor of
3711         _dbus_gobject_lookup_marshaller.
3712         (marshal_dbus_message_to_g_marshaller): Use
3713         _dbus_gobject_lookup_marshaller and dbus_gvalue_demarshal_message
3714         to handle remote signal callbacks.
3715         (dbus_g_proxy_new_from_proxy): New function; creates a new
3716         DBusGProxy by copying an existing one.
3717         (dbus_g_proxy_get_interface, dbus_g_proxy_set_interface)
3718         (dbus_g_proxy_get_path): New functions.
3719         (dbus_g_proxy_marshal_args_to_message): New function;
3720         factored out of existing code.
3721         (DBUS_G_VALUE_ARRAY_COLLECT_ALL): Collect all arguments
3722         from a varargs array.
3723         (dbus_g_proxy_begin_call_internal): New function.
3724         (dbus_g_proxy_end_call_internal): New function.
3725         (dbus_g_proxy_begin_call): Take GTypes instead of DBus types
3726         as arguments; simply invoke dbus_g_proxy_begin_call_internal
3727         after collecting args into value array.
3728         (dbus_g_proxy_end_call): Take GTypes instead of DBus types;
3729         invoke dbus_g_proxy_end_call_internal.
3730         (dbus_g_proxy_invoke): Simply invoke begin_call_interanl and
3731         end_call_internal.
3732         (dbus_g_proxy_call_no_reply): Take GTypes instead of DBus
3733         types.
3734         (array_free_all): New function.
3735         (dbus_g_proxy_add_signal): Take GTypes.
3736
3737         * glib/dbus-gobject.h:
3738         (_dbus_glib_marshal_dbus_message_to_gvalue_array): Delete.
3739         (_dbus_gobject_get_path, _dbus_gobject_lookup_marshaller):
3740         Prototype.
3741
3742         * glib/dbus-gobject.c: Add a global marshal_table hash which
3743         stores mappings from type signatures to marshallers.  Change lots
3744         of invocations of dbus_gtype_to_dbus_type to
3745         dbus_gtype_to_signature.
3746         (_dbus_glib_marshal_dbus_message_to_gvalue_array): Delete.
3747         (introspect_signals): Fix test for query.return_type.
3748         (set_object_property): Update invocation of dbus_gvalue_demarshal.
3749         (invoke_object_method): Many changes.  Handle asynchronous
3750         invocations.  Convert arguments with
3751         dbus_gvalue_demarshal_message.  Handle errors.  Use
3752         DBusSignatureIter instead of strlen on args. Handle all arguments
3753         generically.  Special-case variants.
3754         (dbus_g_method_return, dbus_g_method_return_error): New function.
3755         (DBusGSignalClosure): New structure, closes over signal
3756         information.
3757         (dbus_g_signal_closure_new): New function.
3758         (dbus_g_signal_closure_finalize): New function.
3759         (signal_emitter_marshaller): New function; is special marshaller
3760         which emits signals on bus.
3761         (export_signals): New function; introspects object signals and
3762         connects to them.
3763         (dbus_g_object_type_install_info): Take GType instead of
3764         GObjectClass.
3765         (dbus_g_connection_register_g_object): Invoke export_signals.
3766         (dbus_g_connection_lookup_g_object): New function.
3767         (DBusGFuncSignature) New structure; used for mapping type
3768         signatures to marshallers.
3769         (funcsig_hash): New function; hashes DBusGFuncSignature.
3770         (funcsig_equal): New function; compares DBusGFuncSignature.
3771         (_dbus_gobject_lookup_marshaller): New function.
3772         (dbus_g_object_register_marshaller): New function; used to
3773         register a marshaller at runtime for a particular signature.
3774
3775         * glib/dbus-gmain.c (_dbus_gmain_test): Add various tests.
3776
3777         * glib/dbus-binding-tool-glib.h: Add DBUS_GLIB_ANNOTATION_ASYNC
3778         which notes a server method implementation should be
3779         asynchronous.
3780
3781         * glib/dbus-binding-tool-glib.c
3782         (dbus_binding_tool_output_glib_server): Call
3783         dbus_g_value_types_init.
3784         (write_formal_parameters): Use dbus_gtype_from_signature.  Handle
3785         variants specially.
3786         (dbus_g_type_get_lookup_function): Turn GType into an invocation
3787         of a lookup function.
3788         (write_args_for_direction): Use dbus_g_type_get_lookup_function.
3789         (write_untyped_out_args): New method; write output arguments.
3790         (write_formal_declarations_for_direction): Function for
3791         writing prototypes.
3792         (write_formal_parameters_for_direction): Function for
3793         writing implementations.
3794         (write_typed_args_for_direction): Function for writing
3795         arguments prefixed with GTypes.
3796         (write_async_method_client): Write out async version
3797         of method.
3798
3799         * glib/dbus-binding-tool-glib.c: Include dbus-gvalue-utils.h.
3800         (dbus_g_type_get_marshal_name): Move mapping from GType
3801         to marshal name into here.
3802         (dbus_g_type_get_c_name): Move into here.
3803         (compute_marshaller): Convert signature to type with
3804         dbus_gtype_from_signature, use dbus_g_type_get_marshal_name.
3805         (compute_marshaller_name): Ditto.
3806         (compute_marshaller): Handle async signal annotations.
3807         (gather_marshallers): Return if we don't have a known
3808         prefix.
3809         (generate_glue): Collect introspection blob here, and
3810         write all of the blob at the end.  This allows an object
3811         with multiple interfaces to work.
3812         Mark async methods in introspection blob.
3813
3814         * glib/Makefile.am (libdbus_glib_1_la_SOURCES): Add
3815         dbus-gtype-specialized.c, dbus-gtype-specialized.h,
3816         dbus-gvalue-utils.h, dbus-gvalue-utils.c.
3817
3818         * dbus/dbus-glib.h: Don't include dbus-protocol.h; this
3819         avoids people accidentally using DBUS_TYPE_* which should
3820         not be necessary anymore.
3821         Do include dbus-gtype-specialized.h, which are utilities
3822         for GLib container types.
3823         Add various #defines for types such as
3824         DBUS_TYPE_G_BOOLEAN_ARRAY.
3825         (DBusGValueIterator, DBusGValue): Define, not fully used
3826         yet.
3827         (dbus_g_value_get_g_type): Type for recursive value.
3828         (dbus_g_value_open, dbus_g_value_iterator_get_value)
3829         (dbus_g_value_iterator_get_values, dbus_g_value_iterator_recurse)
3830         (dbus_g_value_free): Prototypes.
3831         (dbus_g_object_register_marshaller, dbus_g_proxy_new_from_proxy): Prototype.
3832         (dbus_g_proxy_set_interface): Prototype.
3833         (dbus_g_proxy_begin_call, dbus_g_proxy_end_call)
3834         (dbus_g_proxy_call_no_reply): Take GLib types instead of DBus
3835         types.
3836         (dbus_g_proxy_get_path, dbus_g_proxy_get_interface):
3837         Accessors.
3838         (DBusGAsyncData, DBusGMethodInvocation): Structures for
3839         doing async invocations.
3840         (dbus_g_method_return, dbus_g_method_return_error):
3841         Prototypes.
3842         * doc/dbus-tutorial.xml: Update GLib section.
3843         
3844         * tools/dbus-viewer.c (load_child_nodes): Update
3845         for new invocation type of dbus_g_proxy_end_call.
3846         (load_from_service_thread_func): Ditto.
3847
3848         * tools/print-introspect.c (main): Ditto.
3849
3850         * tools/dbus-names-model.c (have_names_notify)
3851         (names_model_reload, names_model_set_connection)
3852         Use GTypes.
3853
3854         * python/Makefile.am (INCLUDES): Define DBUS_COMPILATION,
3855         needed since Python bindings use GLib bindings.
3856
3857         * test/glib/Makefile.am (INCLUDES): Define DBUS_COMPILATION.
3858         Add --prefix argument.
3859
3860         * tools/Makefile.am: Define DBUS_COMPILATION.  Remove
3861         unneeded --ignore-unsupported arg.
3862         
3863         * test/glib/test-service-glib.c: 
3864         * test/glib/test-service-glib.xml:
3865         * test/glib/test-dbus-glib.c: Add many more tests.
3866
3867 2005-06-06  David Zeuthen  <davidz@redhat.com>
3868
3869         * doc/TODO: Add item about need to remove deprecated functions.
3870
3871         * dbus/dbus-connection.h: Add prototype for dbus_connection_disconnect
3872
3873         * dbus/dbus-connection.c (dbus_connection_disconnect): New function
3874         to repair the ABI which was broken with the last commit.
3875
3876 2005-06-02  John (J5) Palmieri <johnp@redhat.com>
3877
3878         *  dbus/dbus-connection.c, dbus/dbus-connection.h 
3879         (dbus_connection_disconnect): renamed to dbus_connection_close 
3880         for API symmetry with dbus_connection_open
3881         (_dbus_connection_open_internal): 
3882         s/dbus_connection_disconnect/dbus_connection_close
3883
3884         * dbus/dbus-bus.c (dbus_bus_get):
3885         s/dbus_connection_disconnect/dbus_connection_close
3886
3887         * bus/connection.c (bus_connections_unref, 
3888         bus_connections_setup_connection, bus_connections_expire_incomplete):
3889         s/dbus_connection_disconnect/dbus_connection_close
3890
3891         * bus/dispatch.c (bus_dispatch, kill_client_connection, 
3892         kill_client_connection_unchecked, check_hello_connection):
3893         s/dbus_connection_disconnect/dbus_connection_close
3894
3895         * bus/bus.c (new_connection_callback):
3896         s/dbus_connection_disconnect/dbus_connection_close
3897
3898         * tools/dbus-send.c (main):
3899         s/dbus_connection_disconnect/dbus_connection_close
3900
3901         * test/glib/test-profile.c (no_bus_thread_func, with_bus_thread_func):
3902         s/dbus_connection_disconnect/dbus_connection_close
3903         
3904         * test/test-service.c (path_message_func, filter_func):
3905         s/dbus_connection_disconnect/dbus_connection_close
3906         
3907         * doc/TODO: remove connection_open/connection_disconnect lacks symmetry         item that was just fixed
3908         
3909 2005-05-25  Colin Walters  <walters@verbum.org>
3910
3911         * dbus/dbus-protocol.h: Move various bus service #defines such
3912           as DBUS_SERVICE_DBUS and DBUS_NAME_FLAG_PROHIBIT_REPLACEMENT to
3913           dbus/dbus-shared.h.
3914         * dbus/dbus-shared.h: Various defines moved here.
3915         * dbus/dbus-marshal-header.c: Include dbus-shared.h.
3916
3917 2005-05-25  John (J5) Palmieri  <johnp@redhat.com>
3918
3919         * python/__init__.py: Python bindings deserve a minor version
3920         update.  Upped to (0, 40, 2)
3921
3922 2005-05-24  John (J5) Palmieri  <johnp@redhat.com>
3923
3924         * python/decorators.py: add explicitly_pass_message decorator
3925         for passing in the dbus message as keyword for edge case signal
3926         handling
3927
3928         * python/matchrules.py (SignalMatchRule.__repr__): fix output
3929         to conform with what dbus expects for match rules
3930         (SignalMatchRule.execute): add the dbus message as a keyword
3931         if the signal handler has requested it
3932
3933         * python/examples/example/signal-recipient.py: added some more
3934         examples on how to hook up to signals
3935
3936 2005-05-23  John (J5) Palmieri  <johnp@redhat.com>
3937
3938         * python/decorators.py: import dbus_bindings
3939
3940         * python/matchrules.py (SignalMatchRule, SignalMatchTree, 
3941         SignalMatchNode): new classes that implement wildcard signal
3942         callback matching using a tree lookup. Heavily modified from a
3943         patch sent by Celso Pinto (fd.o bug #3241)
3944
3945         * _dbus.py (add_signal_receiver, remove_signal_receiver, _signal_func):
3946         use new match classes to handle signals.
3947
3948 2005-05-19  John (J5) Palmieri  <johnp@redhat.com>
3949         
3950         * python/dbus_bindings.pyx.in: s/TYPE_PATH/TYPE_OBJECT_PATH
3951
3952 2005-05-18  Havoc Pennington  <hp@redhat.com>
3953
3954         * configure.in: use GLIB_GNU_GETTEXT to get INTLLIBS and require
3955         gettext. Not really worth requiring yet perhaps, but any
3956         production quality 1.0 would require it so we should go ahead and
3957         get things set up. We do have a couple token calls to
3958         bindtextdomain in the code already.
3959
3960 2005-05-16  John (J5) Palmieri  <johnp@redhat.com>
3961
3962         * glib/dbus-gmain.c (io_handler_dispatch): fix deadlock
3963         when using recursive g_main_loops
3964
3965         * python/_dbus.py (class Bus): add the ProxyObjectClass
3966         alias for ProxyObject to make it easier for the Twisted 
3967         networking framework to integrate dbus.
3968
3969         * python/proxies.py (class ProxyObject): add the ProxyMethodClass
3970         alias for ProxyMethod to make it easier for the Twisted 
3971         networking framework to integrate dbus. 
3972
3973 2005-05-11  Ross Burton  <ross@openedhand.com>
3974
3975         * glib/dbus-glib-tool.c: Add --prefix argument.
3976         * glib/dbus-binding-tool-glib.h: Add prefix argument.
3977         * glib/dbus-binding-tool-glib.c (compute_marshaller_name):
3978         Add prefix argument.
3979         (generate_glue): Pass prefix argument down.
3980         (dbus_binding_tool_output_glib_server): Pass prefix to
3981         glib-genmarshal.
3982         
3983 2005-05-11  Colin Walters  <walters@verbum.org>
3984
3985         * tools/dbus-send.c (append_array): New function.
3986         (append_arg): Broken out from main.
3987         (main): Add cheesy hack to send arrays and variants.
3988         (usage): Update.
3989         * tools/dbus-print-message.c (print_iter): Broken out
3990         from main.
3991
3992 2005-05-11  Colin Walters  <walters@verbum.org>
3993
3994         * dbus/dbus-signature.c (dbus_signature_iter_get_signature):
3995         New function, returns signature string for signature iter.
3996         * dbus/dbus-signature.h: Prototype it.
3997         * dbus/dbus-message.c (dbus_message_iter_get_signature):
3998         New function, returns signature string for message iter.
3999         (dbus_message_iter_get_array_len): New function, returns
4000         length of array.
4001         (dbus_message_iter_get_fixed_array): Fix assertion; this
4002         function should be used when the iter is pointing to the
4003         contents of an array
4004         * dbus/dbus-message.h: Prototypes.
4005         * dbus/dbus-marshal-recursive.c (_dbus_type_reader_get_array_length):
4006         New function; returns length of an array.
4007         * dbus/dbus-marshal-recursive.h: Prototype it.
4008         
4009 2005-05-11  Colin Walters  <walters@verbum.org>
4010
4011         * dbus/dbus-sysdeps-util.c <!HAVE_POSIX_GETPWNAM_R>: Fix
4012         compilation error.
4013         
4014 2005-05-08  Havoc Pennington  <hp@redhat.com>
4015
4016         * dbus/dbus-sysdeps-util.c (_dbus_become_daemon): write the
4017         daemon's pid, not the parent's pid, to the file descriptor.
4018         Reported by Taj Morton.
4019
4020 2005-05-05  Havoc Pennington  <hp@redhat.com>
4021
4022         * configure.in (LT_*): add notes on how the libtool versioning
4023         works to save thinking. Increment soname to indicate protocol
4024         breakage (though really the library interface hasn't changed I
4025         guess)
4026
4027         * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated):
4028         verify the GUID received from server matches what we were
4029         expecting, if we had an expectation
4030
4031         * dbus/dbus-auth.c (send_ok): send GUID along with the OK command
4032         (_dbus_auth_get_guid_from_server): new function
4033         (send_begin): parse the OK args
4034
4035         * doc/dbus-specification.xml: add GUID to the auth protocol
4036
4037 2005-05-05  John (J5) Palmieri  <johnp@redhat.com>
4038
4039         * Fix my name in previous changelog ;)
4040
4041         * python/proxies.py (ProxyObject.__getattr__): add further patch
4042         from Anthony Baxter to throw an AttributeError when python 
4043         __special__ functions are called instead of marshling them over 
4044         the bus (Bug#1685 comment 3).
4045
4046 2005-05-04  John (J5) Palmieri  <johnp@redhat.com>
4047
4048         * python/Makefile.am: changed to use pyexecdir for the binding
4049         shared libraries (Bug#2494)
4050
4051         * python/exceptions.py: bring exceptions over from the bindings
4052         so they can be used in applications (Bug#2036)
4053         Make all exceptions derive from DBusException
4054
4055         * python/_dbus.py, python/proxies.py: implement __repr__ in a couple
4056         of classes so that print obj doesn't throw an exception (Bug #1685)
4057
4058 2005-05-03  Ross Burton  <ross@openedhand.com>
4059
4060         * glib/dbus-gobject.c (dbus_g_connection_register_g_object):
4061         Return if we get an error during registration.  Set up a
4062         weak reference on object to unregister if object is destroyed.
4063         (unregister_gobject): New function.
4064         
4065 2005-05-01  John (J5) Palmieri  <johnp@redhat.com>
4066
4067         * python/dbus_bindings.pyx.in: 
4068         - added new type classes for hinting to the marashaler what type 
4069         to send over the wire
4070         - added int16 and uint16 marshalers
4071         - Fixed a bug in the type constants that caused int32 to go out
4072         as uint16 over the wire
4073         * python/dbus.py: split up into different files and renamed _dbus.py
4074         * python/__init__.py, python/_util.py, python/decorators.py, 
4075         python/exceptions.py, python/proxies.py, python/services.py,
4076         python/types.py: new files split off from dbus.py
4077         * python/Makefile.am: Add new files, remove dbus.py and 
4078         install all python files to <python module dir>/dbus
4079         * python/examples/*: Added #!/usr/bin/env python to the top of
4080         every example.  Patch provided by Tatavarty Kalyan
4081
4082 2005-04-25  John (J5) Palmieri  <johnp@redhat.com>
4083
4084         * NEWS: Update to 0.33
4085
4086 2005-04-25  John (J5) Palmieri  <johnp@redhat.com>
4087
4088         * python/dbus_bindings.pyx.in (send_with_reply_handlers): New send
4089         method for doing async calls
4090         (_pending_call_notification): New C function for handling pendning call
4091         callbacks
4092         (set_notify): New method for setting pending call notification
4093         
4094         * python/dbus.py: new version tuple "version" is set at (0, 40, 0)
4095         Async capabilities added to remote method calls
4096         (Sender): class removed
4097         (RemoteService): class removed
4098         (ObjectTree): class removed for now
4099         (RemoteObject): Renamed to ProxyObject
4100         (RemoteMethod): Renamed to ProxyMethod
4101         (method): Decorator added for decorating python methods as dbus methods
4102         (signal): Decorator added for decorating python methods as signal emitters
4103         (ObjectType): Metaclass added for generating introspection data and the
4104         method callback vtable
4105         (Interface): Wrapper class added to wrap objects in a dbus interface
4106         (Object): Uses ObjectType as its metaclass and exports Introspect
4107         of the org.freedesktop.DBus.Introspectable interface
4108         (ValidationException, UnknownMethodException): new exceptions
4109
4110         * python/examples/*: Modified to fit with the new bindings
4111
4112 2005-04-23  Havoc Pennington  <hp@redhat.com>
4113
4114         * dbus/dbus-message.c (dbus_message_append_args): fix doc comment,
4115         reported by Tony Houghton
4116
4117         * test/test-service.c (main): test
4118         dbus_connection_get_object_path_data()
4119
4120         * dbus/dbus-object-tree.c (find_handler): be sure we always init
4121         the exact_match
4122         (_dbus_object_tree_get_user_data_unlocked): new function used by
4123         dbus_connection_get_object_path_data()
4124         (do_register): add assertion test for get_user_data_unlocked
4125         (object_tree_test_iteration): more tests
4126
4127         * dbus/dbus-connection.c (dbus_connection_get_object_path_data):
4128         new function from Dan Reed to let you get the user data from 
4129         dbus_connection_register_object_path()
4130
4131 2005-04-23  John (J5) Palmieri  <johnp@redhat.com>
4132
4133         * dbus/dbus-marshal-recursive-util.c: Fixed buffer overflow
4134         in numerous places that did not account for the NULL terminator
4135         (signature_from_seed): changed the manual string copy loop to 
4136         just use strcpy instead
4137         make check should now pass
4138
4139 2005-04-19  John (J5) Palmieri  <johnp@redhat.com>
4140
4141         * dbus/dbus-marshal-header.c (_dbus_header_create): Fix assert
4142         so that it allows messages that are not signals to pass in 
4143         NULL as the interface.
4144
4145 2005-04-18  David Zeuthen  <davidz@redhat.com>
4146
4147         * glib/dbus-gmain.c (io_handler_destroy_source): 
4148         (timeout_handler_destroy_source, connection_setup_free): 
4149         Also unref the source to avoid memory leaks.
4150
4151 2005-04-13  David Zeuthen  <davidz@redhat.com>
4152
4153         * bus/config-parser.c (bus_config_parser_new): Bump this to a
4154         more reasonable, yet still totally arbitrary, value :-). 
4155
4156 2005-04-13  David Zeuthen  <davidz@redhat.com>
4157
4158         * doc/TODO: Added an "important for 1.0" item about selinux
4159         allow/deny messages
4160
4161 2005-04-13  David Zeuthen  <davidz@redhat.com>
4162
4163         * bus/selinux.c: Add c-file-style to top of file
4164         (log_audit_callback): Don't free the data here anymore
4165         (bus_selinux_check): Don't take spid and tpid since appending
4166         that to auxdata may OOM.
4167         (bus_selinux_allows_acquire_service): Handle OOM and signal back
4168         to the caller if we are OOM by taking an error object.
4169         (bus_selinux_allows_send): -do-
4170
4171         * bus/selinux.h: Fix prototypes for bus_selinux_allows_acquire_service
4172         and bus_selinux_allows_send
4173
4174         * bus/bus.c (bus_context_check_security_policy): Pass error and
4175         pass on OOM thrown by bus_selinux_allows_send()
4176
4177         * bus/services.c (bus_registry_acquire_service): Pass error and
4178         pass on OOM thrown by bus_selinux_allows_acquire_service()
4179
4180 2005-04-13  Havoc Pennington  <hp@redhat.com>
4181
4182         * glib/dbus-gmain.c (message_queue_dispatch): only dispatch one
4183         message at a time to avoid monopolizing the main loop, bug 
4184         #2953 from Benjamin Otte
4185
4186 2005-04-09  Havoc Pennington  <hp@redhat.com>
4187
4188         * dbus/dbus-string.c (copy): change a memcpy to memmove due to
4189         possible overlap, fix from Daniel Reed
4190         (fixup_alignment): fix signedness warnings
4191         (_dbus_string_append_unichar): ditto
4192
4193 2005-04-09  Havoc Pennington  <hp@redhat.com>
4194
4195         * dbus/dbus-message-util.c (_dbus_message_test): fix signedness warning
4196
4197         * glib/dbus-glib-tool.c (main): fix warning
4198
4199         * glib/dbus-binding-tool-glib.c (generate_glue): fix warning
4200
4201         * dbus/dbus-connection.c (dbus_connection_read_write_dispatch):
4202         add a new function that can be used in simple applications that
4203         don't have a main loop and are willing to block
4204
4205 2005-04-05  David Zeuthen  <davidz@redhat.com>
4206
4207         Fix https://bugs.freedesktop.org/show_bug.cgi?id=2889
4208
4209         * glib/dbus-gmain.c:
4210         (io_handler_destroy_source): Remove from list of IO handlers
4211         of the ConnectionSetup object
4212         (timeout_handler_destroy_source): -do- for timeout handlers
4213         (io_handler_source_finalized): Don't remove from list since
4214         we now do that in io_handler_destroy_source(). Renamed from
4215         io_handler_source_destroyed
4216         (timeout_handler_source_destroyed): -do- for timeout handlers
4217         (connection_setup_free): It is now safe to iterate over all
4218         IO and timeout handlers as the _destroy_source removes them
4219         from the list synchronously
4220
4221 2005-03-30  Havoc Pennington  <hp@redhat.com>
4222
4223         * configure.in: change check to gtk 2.4
4224
4225         * tools/dbus-viewer.c (name_combo_changed_callback): remove
4226         gtk_combo_box_get_active_text() usage to decrement GTK requirement
4227         to 2.4
4228
4229 2005-03-29  John (J5) Palmieri  <johnp@redhat.com>
4230
4231         * News: Update 0.32
4232
4233         * HACKING: Fixed realease instructions.  configure.in should be updated to
4234           the next release by the person who made the last release.
4235
4236 2005-03-29  John (J5) Palmieri  <johnp@redhat.com>
4237
4238         * python/lvalue_cast_post_process.py - removed.  Patch has been
4239           submitted to Pyrex maintainers that fixes gcc4.0 errors
4240
4241         * python/Makefile.am: removed refrences to lvalue_cast_post_process.py
4242
4243 2005-03-24  Daniel Reed  <n@ml.org>
4244
4245         * tools/Makefile.am: Make print-introspect and
4246         dbus-bus-introspect.xml building conditional on HAVE_GLIB.
4247
4248 2005-03-22  John (J5) Palmieri  <johnp@redhat.com>
4249
4250         * tools/Makefile.am: Patch by Colin Walters that fixes distcheck
4251
4252         * dbus/dbus-userdb.c, dbus/dbus-userdb-util.c: Add patch we have 
4253           had in Red Hat packages for a while but for some reason never 
4254           got merged upstream
4255           (_dbus_is_a_number): New checks if a string
4256           can be converted to a number and does the conversion if it can
4257           (_dbus_user_database_lookup): Add check to see if the given username
4258           is a udi.  This allows udi's to be used instead of usernames in the
4259           config file.
4260           (_dbus_user_database_lookup_group): Add check to see if the given groupname
4261           is a gdi.  This allows gdi's to be used instead of groupnames in the
4262           config file.
4263
4264 2005-03-21  John (J5) Palmieri  <johnp@redhat.com>
4265
4266         * python/lvalue_cast_post_process.py - added post processor to fix Pyrex
4267           code so that it compiles with gcc4.0
4268
4269         * python/Makefile.am: Added lvalue_cast_post_process.py to EXTRA_DIST
4270           run dbus_bindings.c through lvalue_cast_post_process.py and copy the
4271           results back to dbus_binding.c
4272
4273 2005-03-20  Colin Walters  <walters@verbum.org>
4274
4275         Patch suggested by Inguva Rajasekhar <ringuva@novell.com>.
4276
4277         * configure.in: Require GTK+ 2.6.
4278         
4279 2005-03-20  Colin Walters  <walters@verbum.org>
4280
4281         * Makefile.am (SUBDIRS, DIST_SUBDIRS): Build tools before test.
4282
4283 2005-03-17  Tom Parker  <palfrey@tevp.net>
4284
4285         * dbus/dbus-userdb.c (_dbus_user_database_lookup): Don't
4286         print DBUS_UID_UNSET; instead print passed username.  Also
4287         be sure to actually use gid looked up in cache.
4288         
4289         * dbus/dbus-userdb-util.c (_dbus_user_database_lookup_group): Ditto
4290         for DBUS_GID_UNSET and groupname.
4291
4292 2005-03-17  Colin Walters  <walters@verbum.org>
4293
4294         * bus/print-introspect.c: Move to tools/.
4295         * bus/run-with-tmp-session-bus.sh: Ditto.
4296         
4297         * glib/Makefile.am (dbus-glib-bindings.h): Move
4298         generation to tools/Makefile.am.
4299
4300         * test/glib/run-test.sh: Update to handle move
4301         of run-with-tmp-session-bus.sh.
4302
4303         * test/glib/test-service-glib.c: Update to handle
4304         move of dbus-glib-bindings.h.
4305
4306         * tools/print-introspect.c: Moved here
4307         from bus/, and ported to GLib bindings.
4308
4309         * tools/run-with-tmp-session-bus.sh: Moved here
4310         from bus/.
4311
4312         * tools/Makefile.am: Generate dbus-glib-bindings.h
4313         and dbus-bus-introspect.xml here.
4314
4315         * tools/.cvsignore, glib/.cvsignore, bus/.cvsignore:
4316         Update.
4317
4318 2005-03-17  Colin Walters  <walters@verbum.org>
4319
4320         * bus/driver.c (write_args_for_direction): Use
4321         _dbus_string_get_const_data to retrieve string;
4322         _dbus_string_get_const_data_len doesn't actually return
4323         a NULL-terminated substring.
4324
4325         * test/glib/test-service-glib.c: Include dbus-glib-bindings.h.
4326         (main): Change to use org_freedesktop_DBus_request_name
4327         instead of using g_proxy_begin_call/end_call.
4328
4329 2005-03-15  Joe Shaw  <joeshaw@novell.com>
4330
4331         * mono/ProxyBuilder.cs (BuildFinalizer): Fix some invalid IL when
4332         generating the finalizer.  Fixes from Ben Maurer.
4333
4334 2005-03-12  Joe Shaw  <joeshaw@novell.com>
4335
4336         * mono/BusDriver.cs: Update method names: ListServices
4337         becomes ListNames; GetOwner becomes GetNameOwner.
4338
4339         * mono/ProxyBuilder.cs (BuildFinalizer): Need to load arg 0
4340         onto the eval stack when removing the delegate.
4341
4342 2005-03-12  Joe Shaw  <joeshaw@novell.com>
4343
4344         * mono/dbus-sharp.dll.config.in: Don't hardcode 0 for
4345         LT_CURRENT.  Set it to the autoconf variable.
4346                                                                                 
4347         * mono/ProxyBuilder.cs: Add a finalizer to the generated proxy
4348         classes that disconnects the signal handler delegate from the
4349         service object.  Fixes a big leak of proxy objects on the
4350         client side of things.  Patch from Ben Maurer
4351         <bmaurer@ximian.com>
4352
4353 2005-03-12  Colin Walters  <walters@verbum.org>
4354
4355         * bus/driver.c (write_args_for_direction): New function,
4356         parses a type signature into arguments and outputs to
4357         XML.
4358         (bus_driver_handle_introspect): Use it instead of
4359         hardcoding XML for certain signatures.
4360         
4361         * bus/Makefile.am (dbus-bus-introspect.xml): Add
4362         dependency on dbus-daemon.
4363
4364         * glib/dbus-glib-tool.c (main): Parse ignore_unsupported
4365         argument, pass it to dbus_binding_tool_output_glib_client.
4366
4367         * glib/dbus-binding-tool-glib.c
4368         (generate_client_glue): Protect against multiple inclusion.
4369         (dbus_binding_tool_output_glib_client): Add
4370         G_BEGIN_DECLS/G_END_DECLS.
4371
4372         * glib/dbus-binding-tool-glib.c (compute_client_method_name):
4373         Change to just take iface prefix directly.
4374         (write_formal_parameters): Clarify error message.
4375         (check_supported_parameters): New function; checks to see type
4376         signatures of method parameters are supported.
4377         (generate_client_glue): Handle ignore_unsupported flag.
4378         (dbus_binding_tool_output_glib_client): Handle ignore_unsupported
4379         parameter.
4380
4381         * glib/Makefile.am (dbus-glib-bindings.h): Pass
4382         --ignore-unsupported by default until glib bindings
4383         support arrays.
4384
4385 2005-03-11  Colin Walters  <walters@verbum.org>
4386
4387         * glib/Makefile.am: Generate dbus-glib-bindings.h and
4388         install it.
4389
4390         * bus/print-introspect.c: New file; prints introspection
4391         data for a given name and object path.
4392
4393         * bus/run-with-tmp-session-bus.sh: New file, refactored
4394         from test/glib/run-test.sh.  Creates a temporary session
4395         bus and runs another program.
4396
4397         * test/glib/run-test.sh: Refactor to invoke
4398         run-with-tmp-session-bus.sh.
4399
4400         * bus/driver.c (bus_driver_handle_introspect): Fix to print new
4401         introspection format.  Also change to use DBUS_TYPE_x_AS_STRING
4402         macros instead of hardcoding.
4403
4404         * glib/.cvsignore, bus/.cvsignore, test/glib/.cvsignore: Update.
4405
4406 2005-03-11  Joe Shaw  <joeshaw@novell.com>
4407
4408         * dbus/dbus-connection.c (dbus_connection_send_with_reply): Remove
4409         this unref; it doesn't match up evenly in some codepaths.
4410         (_dbus_connection_block_pending_call): Unref at every exitpoint;
4411         this evenly matches with the ref near the top of this function.
4412
4413 2005-03-09  Joe Shaw  <joeshaw@novell.com>
4414
4415         * dbus/dbus-object-tree.c
4416         (_dbus_object_tree_unregister_and_unlock): If checks are enabled
4417         and we try to unregister a path that's not registered, still go
4418         through the process of unlocking and don't just return.
4419
4420 2005-03-09  Colin Walters  <walters@verbum.org>
4421
4422         * glib/dbus-gproxy.c (dbus_g_proxy_invoke): New method; calls
4423         to this are generated for client-side wrappers.  Invokes a
4424         D-BUS method and returns reply values.  
4425
4426         * glib/dbus-binding-tool-glib.c (write_args_sig_for_direction): New
4427         function; writes signature string for argument direction.
4428         (write_args_for_direction): Change to pass input values directly
4429         instead of via address, and fix indentation.
4430         (generate_client_glue): Change to invoke dbus_g_proxy_invoke.  Also
4431         make generated wrappers inlineable.
4432
4433         * dbus/dbus-message.c (dbus_message_iter_get_fixed_array): Add
4434         note about using dbus_type_is_fixed.
4435
4436         * dbus/dbus-marshal-basic.c (_dbus_type_is_fixed): Moved to
4437         dbus/dbus-signature.c as dbus_type_is_fixed.
4438
4439         All callers updated.
4440
4441         * dbus/dbus-signature.c (dbus_type_is_fixed): Moved here
4442         from dbus/dbus-marshal-basic.c:_dbus_type_is_fixed.
4443
4444         * dbus/dbus-signature.h: Prototype.
4445
4446         * glib/dbus-binding-tool-glib.c (compute_marshaller_name): Fix
4447         error printf code.
4448
4449         * test/glib/test-dbus-glib.c (main): Be sure to clear error as
4450         appropriate instead of just freeing it.
4451         (main): Free returned strings using g_free.
4452
4453         * test/glib/Makefile.am (test-service-glib-glue.h)
4454         (test-service-glib-bindings.h): Add dependency on dbus-binding-tool.
4455
4456         * glib/dbus-gvalue.c (MAP_BASIC): Refactored from MAP_BASIC_INIT;
4457         simply maps a simple D-BUS type to GType.
4458         (dbus_dbus_type_to_gtype): Function which maps D-BUS type to
4459         GType.
4460         (dbus_gvalue_init): Just invoke dbus_dbus_type_to_gtype and
4461         initialize the value with it.
4462         (dbus_gvalue_binding_type_from_type): Unused, delete.
4463         (dbus_gvalue_demarshal): Switch to hardcoding demarshalling for
4464         various types instead of unmarshalling to value data directly.
4465         Remove can_convert boolean.
4466         (dbus_gvalue_marshal): Remove duplicate initialization; switch to
4467         returning directly instead of using can_convert boolean.
4468         (dbus_gvalue_store): New function; not related to D-BUS per-se.
4469         Stores a GValue in a pointer to a value of its corresponding C
4470         type.
4471
4472         * glib/dbus-gvalue.h: Remove dbus_gvalue_binding_type_from_type,
4473         add dbus_gvalue_store.
4474
4475 2005-03-08  Joe Shaw  <joeshaw@novell.com>
4476
4477         Fix a bunch of lifecycle and memory management problems
4478         in the mono bindings.
4479
4480         * mono/Arguments.cs (Arguments): Implement IDisposable
4481
4482         * mono/Bus.cs (Bus): Don't allow public instantiation.  This is
4483         strictly a static class.
4484
4485         * mono/Connection.cs: Move the DBusObjectPathVTable and associated
4486         delegates into this file.
4487         (Connection): Implement IDisposable.
4488         (Dispose): Disconnect the connection and set the raw connection
4489         pointer to IntPtr.Zero.
4490         (~Connection): Call Dispose().
4491         (RegisterObjectPath): Added.  Manages the registration of object
4492         paths so we can cleanly disconnect them at dispose/finalize time.
4493         (UnregisterObjectPath): Ditto.
4494         (set_RawConnection): Unregister all of the object paths when
4495         changing the underlying DBusConnection.  Add them back onto the
4496         new connection, if any.
4497
4498         * mono/Handler.cs: Don't implement IDisposable; it doesn't use any
4499         more unmanaged resources anymore, so it's not necessary.  Move all
4500         the DBusObjectPathVTable stuff out of here.
4501         (Handler): Save references to our delegates so that they don't get
4502         finalized.  Call Connection.RegisterObjectPath() instead of
4503         dbus_connection_register_object_path() directly.
4504         (Message_Called): Dispose the message after we're finished with
4505         it.
4506
4507         * mono/Message.cs (Message): Implement IDisposable.
4508         (Dispose): Dispose the Arguments, and set the RawMessage to
4509         IntPtr.Zero.
4510         (SendWithReplyAndBlock): We own the ref to the reply that comes
4511         back from dbus_connection_send_with_reply_and_block() so add a
4512         comment about that and unref it after we've constructed a managed
4513         MethodReturn class around it.  Fixes a big, big leak.
4514
4515         * mono/ProxyBuilder.cs: Reflect into Message to get the Dispose
4516         method.
4517         (BuildSignalHandler): After we've sent the Signal message, dispose
4518         of it.
4519         (BuildMethod): Dispose of the method call and reply messages after
4520         we've sent the message and extracted the data we want from the
4521         reply.
4522
4523         * mono/Service.cs (UnregisterObject): Don't call handler.Dispose()
4524         anymore.
4525         (Service_FilterCalled): Dispose of the message after we're
4526         finished with it.
4527
4528 2005-03-08  Joe Shaw  <joeshaw@novell.com>
4529
4530         * dbus/dbus-connection.c (dbus_connection_send_with_reply):
4531         After we attach our pending call to the connection, unref
4532         it.  Fixes a leak.
4533  
4534         * mono/Connection.cs (set_RawConnection): Disconnect our
4535         filter and match callbacks from the old connection and
4536         reconnect them to the new connection, if any.
4537
4538         * mono/DBusType/Array.cs: "Code" is a static member, so
4539         don't use "this" to refer to it.  Fix for stricter checking
4540         in Mono 1.1.4.
4541  
4542         * mono/DBusType/ObjectPath.cs (Append): Don't leak the
4543         object path that we pass into unmanaged code.
4544  
4545         * mono/DBusType/String.cs (Append): Don't leak the string
4546         that we pass into unmanged code.
4547
4548 2005-03-07  John (J5) Palmieri  <johnp@redhat.com>
4549         * NEWS: Update for 0.31
4550
4551         * configure.in: Release 0.31
4552         add LT_CURRENT, LT_REVISION, LT_AGE for easy soname bumping
4553
4554         * qt/Makefile.am: fixed build
4555
4556         * dbus/Makefile.am: soname bump for libdbus
4557
4558         * glib/Makefile.am: soname bump for libdbus-glib
4559
4560 2005-03-05  Havoc Pennington  <hp@redhat.com>
4561
4562         * dbus/dbus-sysdeps.c:
4563         (pseudorandom_generate_random_bytes_buffer): fix to have no return
4564         value
4565         (_dbus_generate_random_bytes_buffer): fix return value
4566
4567         * dbus/dbus-sysdeps-util.c: s/GETPWNAME/GETPWNAM/ so configure
4568         checks actually work, from Tom Parker <fdo@tevp.net>
4569
4570 2005-03-01  Colin Walters  <walters@verbum.org>
4571
4572         * test/glib/test-dbus-glib.c (lose, lose_gerror): Utility
4573         functions copied from dbus-glib-tool.c.
4574         (main): Convert lots of error code to use them.
4575         Also add some testing for introspection bits.
4576
4577 2005-03-01  Colin Walters  <walters@verbum.org>
4578         
4579         * doc/TODO: Remove introspection signature TODO.
4580
4581 2005-02-27  Colin Walters  <walters@verbum.org>
4582
4583         * glib/dbus-gidl.c (property_info_get_type, arg_info_get_type):
4584         Change return value to const char * instead of int so we can do
4585         full signatures.
4586         (struct PropertyInfo, struct ArgInfo): Store char *.
4587         (property_info_new, arg_info_new): Update parameters, strdup.
4588         (property_info_unref, arg_info_unref): Free.
4589
4590         * glib/dbus-gidl.h: Update prototypes.
4591
4592         * glib/dbus-gparser.c (basic_type_from_string): Delete.
4593         (validate_signature): New function, just validates signature and
4594         sets GError.
4595         (parse_property, parse_arg): Invoke validate_signature.  Store
4596         signature instead of just type code.
4597
4598         * glib/dbus-gvalue.c (base_type_from_signature): New utility
4599         function to return a primary type for a signature, dropping
4600         information about types in container types.
4601         (dbus_gvalue_genmarshal_name_from_type)
4602         (dbus_gvalue_binding_type_from_type)
4603         (dbus_gvalue_ctype_from_type): Update to take full signature
4604          instead of type code.
4605         (dbus_gtype_to_dbus_type): Moved here from glib/dbus-gobject.c.
4606
4607         * glib/dbus-gvalue.h: Update prototypes for above.
4608
4609         * glib/dbus-gobject.c (gtype_to_dbus_type): Moved to
4610         glib/dbus-gvalue.c as dbus_gtype_to_dbus_type.
4611         (introspect_properties, introspect_signals, write_interface):
4612         Update to handle signatures, and remove usage of
4613         _dbus_gutils_type_to_string.
4614         (handle_introspect): Print out type codes instead of e.g. "string"
4615         in hardcoded introspection XML; also use x_AS_STRING constants
4616         instead of hardcoding in string.
4617
4618         * glib/dbus-glib-tool.c (pretty_print): Handle signature change
4619         to string.  Remove usage of _dbus_gutils_type_to_string.
4620
4621         * glib/dbus-gutils.c (_dbus_gutils_type_to_string): Delete.
4622
4623         * glib/dbus-gutils.h (_dbus_gutils_type_to_string): Update for
4624         deletion.
4625         
4626         * glib/dbus-binding-tool-glib.c (compute_marshaller)
4627         (compute_marshaller_name, generate_glue): Handle signature change
4628         to string.
4629         (write_formal_parameters, write_args_for_direction): Ditto, and
4630         remove FIXME.
4631
4632         * tools/dbus-tree-view.c (type_to_string): Delete.
4633         (info_set_func_text): Update to print full signatures.
4634
4635         * test/glib/test-service-glib.xml: Change types to new
4636         introspection format.
4637
4638 2005-02-26  Havoc Pennington  <hp@redhat.com>
4639
4640         * doc/TODO: remove the "guid" item
4641
4642         * test/glib/test-profile.c (no_bus_thread_func): use open_private
4643         (with_bus_thread_func): use open_private
4644
4645         * dbus/dbus-connection.c (dbus_connection_open_private): new
4646         function that works like the old dbus_connection_open()
4647         (dbus_connection_open): now returns an existing connection if
4648         possible
4649
4650         * dbus/dbus-server-unix.c (handle_new_client_fd_and_unlock): pass
4651         through the GUID to the transport
4652
4653         * dbus/dbus-server.c (_dbus_server_init_base): keep around the
4654         GUID in hex-encoded form.
4655
4656         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
4657         pass GUID argument in to the transport
4658
4659         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd): add
4660         guid argument
4661
4662         * dbus/dbus-transport.c (_dbus_transport_init_base): add guid argument
4663
4664         * dbus/dbus-auth.c (_dbus_auth_server_new): add guid argument
4665
4666 2005-02-25  Havoc Pennington  <hp@redhat.com>
4667
4668         * doc/dbus-specification.xml: document the GUID thing
4669
4670         * dbus/dbus-server.c (_dbus_server_init_base): initialize a
4671         globally unique ID for the server, and put a "guid=hexencoded"
4672         field in the address
4673
4674         * dbus/dbus-bus.c: fix missing #include of dbus-threads-internal.h
4675
4676         * dbus/dbus-message.c: ditto
4677
4678         * dbus/dbus-dataslot.c: ditto
4679
4680         * dbus/dbus-list.c: ditto
4681
4682         * dbus/dbus-internals.h: wait, just include
4683         dbus-threads-internal.h here
4684         
4685         * dbus/dbus-string.c (_dbus_string_copy_to_buffer): move back for
4686         use in main library
4687
4688         * dbus/dbus-sysdeps.c (_dbus_generate_random_bytes_buffer): new function
4689
4690 2005-02-24  Colin Walters  <walters@verbum.org>
4691
4692         * test/glib/Makefile.am (EXTRA_DIST): Add test-service-glib.xml
4693
4694 2005-02-24  John (J5) Palmieir  <johnp@redhat.com>
4695
4696         * glib/Makefile.am: added dbus-gobject.h to sources list
4697         so distcheck doesn't fail
4698         
4699 2005-02-24  Havoc Pennington  <hp@redhat.com>
4700
4701         * dbus/dbus-server.c, dbus/dbus-server-unix.c: change semantics so
4702         you must disconnect before unref, since locking and other things
4703         are screwed up otherwise. Fix assorted other locking stuff.
4704
4705         * dbus/dbus-signature.c (dbus_signature_iter_get_element_type):
4706         fix compilation
4707
4708         * dbus/dbus-threads-internal.h: move the mutex/condvar wrappers
4709         into a private header and don't export from the library
4710
4711         * throughout - call _dbus_thread_stuff vs. dbus_thread_stuff
4712
4713 2005-02-24  Colin Walters  <walters@verbum.org>
4714         
4715         * dbus/dbus-signature.c: New file; implements various functions
4716         related to type signatures.  Includes an interator for parsing,
4717         validation functions.
4718         (dbus_type_is_basic): Moved here from
4719         dbus-marshal-basic.c:_dbus_type_is_basic.
4720         (dbus_type_is_container): Moved here from
4721         dbus-marshal-basic.c:_dbus_type_is_container.
4722
4723         All callers of _dbus_type_is_container and _dbus_type_is_basic
4724         updated, and include dbus-signature.h.
4725
4726         * dbus/dbus-signature.h: New file; prototypes for the above.
4727
4728         * dbus/Makefile.am (DBUS_LIB_SOURCES): Add dbus-signature.c,
4729         dbus-signature.h.
4730
4731         * dbus/dbus-marshal-basic.c (map_type_char_to_type): New utility
4732         function factored out of _dbus_first_type_in_signature.
4733         (_dbus_first_type_in_signature_c_str): New function; returns first
4734         type code for a type signature character.
4735
4736         * dbus/dbus-marshal-basic.h: Prototype _dbus_first_type_in_signature_c_str,
4737         handle function moves.
4738
4739         * dbus/dbus-marshal-recursive.h: Export _dbus_type_signature_next.
4740
4741         * dbus/dbus-marshal-recursive.c (_dbus_type_signature_next): New
4742         function; skips to next complete type in type signature.
4743         Implemented using previous skip_one_complete_type.  Now
4744         skip_one_complete_type just delegates to
4745         _dbus_type_signature_next.
4746
4747         * dbus/dbus-marshal-basic.c (_dbus_type_is_basic): Moved
4748         to dbus-signature.c
4749         (_dbus_type_is_container): Ditto.
4750
4751         * doc/dbus-specification.xml: Update introspection sample to
4752         use real type signatures.
4753
4754         * dbus/dbus-test.h: Prototype signature test.
4755
4756         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): Run
4757         signature tests.
4758
4759         * dbus/dbus-protocol.h (DBUS_ERROR_INVALID_SIGNATURE): New error.
4760
4761 2005-02-23  John (J5) Palmieri  <johnp@redhat.com>
4762
4763         * python/dbus_bindings.pyx.in (PendingCall::get_reply):
4764         s/dbus_pending_call_get_reply/dbus_pending_call_steal_reply
4765
4766 2005-02-21  Colin Walters  <walters@verbum.org>
4767
4768         * dbus/dbus-test-main.c (main): Take optional specific test
4769         argument.
4770
4771         * dbus/dbus-test.c (run_test): New function, runs a test function
4772         with no data directory.
4773         (run_data_test): Like above, but takes data directory.
4774         (dbus_internal_do_not_use_run_tests): Take
4775         specific test argument.  Replace lots of cut n' paste code
4776         with run_test and run_data_test.
4777
4778         * dbus/dbus-test.h: Update prototype for
4779         dbus_internal_do_not_use_run_tests.
4780
4781 2005-02-20  Havoc Pennington  <hp@redhat.com>
4782
4783         Fix bugs reported by Daniel P. Berrange
4784         
4785         * dbus/dbus-server.c (_dbus_server_unref_unlocked): new function
4786         (protected_change_watch): new function
4787         (_dbus_server_toggle_watch, _dbus_server_remove_watch)
4788         (_dbus_server_add_watch): change to work like the
4789         dbus-connection.c equivalents; like those, probably kind of
4790         busted, but should at least mostly work for now
4791         (dbus_server_disconnect): drop the lock if we were already
4792         disconnected, patch from Daniel P. Berrange
4793
4794         * dbus/dbus-server.c (_dbus_server_toggle_timeout) 
4795         (_dbus_server_remove_timeout, _dbus_server_add_timeout): all the
4796         same stuff
4797
4798         * doc/TODO: todo about unscrewing this mess
4799
4800 2005-02-19  Colin Walters  <walters@verbum.org>
4801
4802         * glib/dbus-binding-tool-glib.c
4803         (dbus_binding_tool_output_glib_server): Fix iochannel refcounting.
4804
4805         * glib/dbus-glib-tool.c: Include dbus-glib-tool.h, as well
4806         as errno.h and sys/stat.h.
4807         (lose): New function, prints error with
4808         newline and exits.
4809         (lose_gerror): Similar, but takes GError for message.
4810         (main): Add --output argument to specify output file to write to,
4811         instead of always printing to stdout.  In this mode, determine
4812         timestamps on source files to see whether any are newer than the
4813         target file.  If not, exit.  Also convert a number of error
4814         messages to use lose (since it's shorter), and switch to using
4815         g_io_channel_shutdown.
4816
4817 2005-02-19  Havoc Pennington  <hp@redhat.com>
4818
4819         * glib/dbus-gobject.c
4820         (_dbus_glib_marshal_dbus_message_to_gvalue_array): add docs
4821
4822         * glib/dbus-glib.c: fix doxygen warnings
4823
4824         * glib/dbus-gparser.c (parse_annotation): error if an annotation
4825         is found on an <arg>
4826
4827 2005-02-17  Colin Walters  <walters@verbum.org>
4828
4829         * glib/dbus-gobject.h: Don't export
4830         _dbus_glib_marshal_dbus_message_to_gvalue_array.
4831         
4832         * glib/dbus-gobject.c (_dbus_glib_marshal_dbus_message_to_gvalue_array): Do rename.
4833         (invoke_object_method): Handle it.
4834
4835         * glib/dbus-gproxy.c (marshal_dbus_message_to_g_marshaller):
4836         Handle rename.
4837         
4838 2005-02-17  Colin Walters  <walters@verbum.org>
4839
4840         * bus/.cvsignore, doc/.cvsignore
4841         * test/data/valid-service-files/.cvsignore, test/glib/.cvsignore:
4842         Update.
4843
4844 2005-02-17  Colin Walters  <walters@verbum.org>
4845         
4846         * dbus/dbus-protocol.h (DBUS_SERVICE_ORG_FREEDESKTOP_DBUS):
4847         Rename to DBUS_SERVICE_DBUS.
4848         (DBUS_PATH_ORG_FREEDESKTOP_DBUS): Rename to DBUS_PATH_DBUS.
4849         (DBUS_PATH_ORG_FREEDESKTOP_LOCAL): Rename to DBUS_PATH_LOCAL.
4850         Change the value from "org.freedesktop.Local"
4851         to "org.freedesktop.DBus.Local".
4852         (DBUS_INTERFACE_ORG_FREEDESKTOP_DBUS): Rename to DBUS_INTERFACE_DBUS.
4853         (DBUS_INTERFACE_ORG_FREEDESKTOP_INTROSPECTABLE): Rename to
4854         DBUS_INTERFACE_INTROSPECTABLE.
4855         Change the value from "org.freedesktop.Introspectable"
4856         to "org.freedesktop.DBus.Introspectable".
4857         (DBUS_INTERFACE_ORG_FREEDESKTOP_PROPERTIES): Rename to
4858         DBUS_INTERFACE_PROPERTIES.
4859         Change the value from "org.freedesktop.Properties"
4860         to "org.freedesktop.DBus.Properties".
4861         (DBUS_INTERFACE_ORG_FREEDESKTOP_PEER): Rename to
4862         DBUS_INTERFACE_PEER.
4863         Change the value from "org.freedesktop.Peer"
4864         to "org.freedesktop.DBus.Peer".
4865         (DBUS_INTERFACE_ORG_FREEDESKTOP_LOCAL): 
4866         DBUS_INTERFACE_LOCAL.
4867         Change the value from "org.freedesktop.Local"
4868         to "org.freedesktop.DBus.Local".
4869
4870         All other users of those constants have been changed.
4871
4872         * bus/driver.c (bus_driver_handle_introspect): Use constants.
4873
4874         * glib/dbus-gobject.c (handle_introspect): Use constants.
4875
4876         * doc/dbus-faq.xml, doc/dbus-specification.xml: Update for rename.
4877
4878 2005-02-17  Colin Walters  <walters@verbum.org>
4879
4880         * glib/dbus-gparser.c (struct Parser): Add in_annotation boolean.
4881         (parse_node, parse_interface, parse_method, parse_signal)
4882         (parse_property, parse_annotation): Lose if we're currently in an
4883         annotation.
4884         (parse_annotation): New function.
4885         (parser_start_element, parser_end_element): Handle annotation.
4886         (parse_method, parse_interface): Remove support for c_name attribute,
4887         switch to annotations.
4888
4889         * glib/dbus-gidl.h (interface_info_get_binding_names)
4890         (method_info_get_binding_names)
4891         (interface_info_get_binding_name, method_info_get_binding_name)
4892         (interface_info_set_binding_name, method_info_set_binding_name):
4893         Remove.
4894         (interface_info_get_annotations, method_info_get_annotations)
4895         (interface_info_get_annotation, method_info_get_annotation)
4896         (interface_info_add_annotation, method_info_add_annotation):
4897         Prototype.
4898
4899         * glib/dbus-gidl.c (struct InterfaceInfo): Substitute "annotations"
4900         for "bindings".
4901         (struct MethodInfo): Ditto.
4902         Straightfoward conversion of binding methods into annotation methods
4903         as prototyped.
4904
4905         * glib/dbus-glib-tool.c (pretty_print): Print annotations.
4906
4907         * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_C_SYMBOL): Define.
4908
4909         * glib/dbus-binding-tool-glib.c (gather_marshallers, generate_glue):
4910         Use new annotation API.
4911
4912         * doc/introspect.dtd: Fix a number of DTD syntax errors.  Add
4913         annotation element.
4914         
4915         * doc/dbus-specification.xml: Discuss introspection annotations,
4916         include list of well-known annotations.
4917
4918         * test/glib/test-service-glib.xml: Make validate against new DTD.
4919
4920 2005-02-17  Colin Walters  <walters@verbum.org>
4921
4922         This patch is based on initial work from
4923         Paul Kuliniewicz <kuliniew@purdue.edu>.
4924
4925         * glib/dbus-gvalue.c (dbus_gvalue_init): New function; move
4926         initialization of GValue from dbus type to here.
4927         (dbus_gvalue_genmarshal_name_from_type): New function; generates a string
4928         for the "glib-genmarshal" program from a DBus type.
4929         (dbus_gvalue_binding_type_from_type): New function; turns a DBus type
4930         into the C name for it we use in the glib bindings.
4931         (dbus_gvalue_ctype_from_type): New function; maps a DBus type into a
4932         glib C type (not GValue).
4933         (dbus_gvalue_demarshal): invoke dbus_gvalue_init.
4934
4935         * glib/dbus-gutils.c (_dbus_gutils_wincaps_to_uscore): Moved here
4936         from dbus-gobject.c.
4937
4938         * glib/dbus-gutils.h: Prototype it.
4939
4940         * glib/dbus-gproxy.c: Include new dbus-gobject.h.
4941         (marshal_dbus_message_to_g_marshaller): Use new shared function
4942         dbus_glib_marshal_dbus_message_to_gvalue_array.
4943
4944         * glib/dbus-gparser.c (parse_interface, parse_method): Handle c_name attribute.
4945         Will be changed once we have annotations.
4946
4947         * glib/dbus-gobject.c: Change info_hash_mutex from GStaticMutex to
4948         GStaticRWLock.  Callers updated.
4949         (wincaps_to_uscore): Move to dbus-gutils.c.  Callers updated.
4950         (string_table_next): New function for iterating over zero-terminated
4951         string value array.
4952         (string_table_lookup): New function; retrieves specific entry in
4953         array.
4954         (get_method_data): New function; look up method data in object data chunk.
4955         (object_error_domain_prefix_from_object_info)
4956         (object_error_code_from_object_info): New functions, but not implemented yet.
4957         (method_interface_from_object_info): New function; retrieve interface name.
4958         (method_name_from_object_info): New function; retrieve method name.
4959         (method_arg_info_from_object_info): New function; retrieve argument data.
4960         (arg_iterate): New function; iterates over serialized argument data.
4961         (method_dir_signature_from_object_info): New function; returns a
4962         GString holding type signature for arguments for just one
4963         direction (input or output).
4964         (method_input_signature_from_object_info)
4965         (method_output_signature_from_object_info): New functions.
4966         (dbus_glib_marshal_dbus_message_to_gvalue_array): New shared function;
4967         converts dbus message arguments into a GValue array.  Used for both
4968         signal handling and method invocation.
4969         (struct DBusGlibWriteIterfaceData): New utility structure.
4970         (write_interface): New function; generate introspection XML for
4971         an interface.
4972         (introspect_interfaces): New function; gathers all interface->methods,
4973         generates introspection XML for them.
4974         (handle_introspect): Invoke introspect_interfaces.
4975         (get_object_property): Be sure to zero-initalize stack-allocated GValue.
4976         (lookup_object_and_method): New function; examines an incoming message
4977         and attempts to match it up (via interface, method name, and argument
4978         signature) with a known object and method.
4979         (gerror_domaincode_to_dbus_error_name): New function; converts a
4980         GError domain and code into a DBus error name.  Needs GError data
4981         added to object introspection to work well.
4982         (gerror_to_dbus_error_message): Creates a DBusMessage error return from
4983         GError.
4984         (invoke_object_method): New function to invoke an object method
4985         looked up via lookup_object_and_method.  Parses the incoming
4986         message, turns it into a GValue array, then invokes the marshaller
4987         specified in the DBusGMethodInfo.  Creates a new message with
4988         either return values or error message as appropriate.
4989         (gobject_message_function): Invoke lookup_object_and_method and
4990         invoke_object_method.
4991
4992         * glib/dbus-glib-tool.c: Include dbus-binding-tool-glib.h.
4993         (enum DBusBindingOutputMode): New enum for binding output modes.
4994         (pretty_print): Print binding names.
4995         (dbus_binding_tool_error_quark): GError bits.
4996         (version): Fix typo.
4997         (main): Create GIOChannel for output.  Parse new --mode argument,
4998         possible values are "pretty-print", "glib-server", "glib-client".
4999         Use mode to invoke appropriate function.
5000         
5001         * glib/dbus-gobject.h: Prototype dbus_glib_marshal_dbus_message_to_gvalue_array.
5002
5003         * glib/dbus-glib-tool.h: New header, just includes GError bits
5004         for now.
5005
5006         * glib/dbus-gidl.c (struct InterfaceInfo): Add bindings hashtable;
5007         maps binding style to name.
5008         (struct MethodInfo): Ditto.
5009         (get_hash_keys, get_hash_key): Utility function, returns keys for
5010         a GHashTable.
5011         (interface_info_new, method_info_new): Initialize bindings.
5012         (interface_info_unref, method_info_unref): Destroy bindings.
5013         (method_info_get_binding_names, method_info_get_binding_name)
5014         (interface_info_get_binding_names, interface_info_get_binding_name):
5015         Functions for retrieving binding names.
5016         (method_info_set_binding_name, interface_info_set_binding_name):
5017         Functions for setting binding names.
5018
5019         * glib/dbus-binding-tool-glib.h: New file, has prototypes
5020         for glib binding generation.
5021
5022         * glib/dbus-binding-tool-glib.c: New file, implements server-side
5023         and client-side glib glue generation.
5024
5025         * glib/Makefile.am (dbus_binding_tool_SOURCES): Add
5026         dbus-binding-tool-glib.c, dbus-binding-tool-glib.h,
5027         dbus-glib-tool.h.
5028
5029         * dbus/dbus-glib.h (struct DBusGMethodMarshaller): Remove in favor
5030         of using GClosureMarshal directly.
5031         (struct DBusGObjectInfo): Add n_infos member.
5032
5033         * test/glib/test-service-glib.xml: New file; contains introspection data
5034         for MyTestObject used in test-service-glib.c.
5035
5036         * test/glib/test-service-glib.c (enum MyObjectError): New GError enum.
5037         (my_object_do_nothing, my_object_increment, my_object_throw_error)
5038         (my_object_uppercase, my_object_many_args): New test methods.
5039         (main): Use dbus_g_object_class_install_info to include generated object
5040         info.
5041
5042         * test/glib/Makefile.am: Generate server-side glue for test-service-glib.c,
5043         as well as client-side bindings.
5044
5045         * test/glib/test-dbus-glib.c: Include test-service-glib-bindings.h.
5046         (main): Activate TestSuiteGLibService; test invoke a bunch of its methods
5047         using both the dbus_gproxy stuff directly as well as the generated bindings.
5048
5049 2005-02-15  Havoc Pennington  <hp@redhat.com>
5050
5051         * dbus/dbus-connection.c (dbus_connection_dispatch): always
5052         complete a pending call, don't run filters first.
5053
5054         * glib/dbus-gproxy.c (dbus_g_proxy_end_call): change to use
5055         dbus_pending_call_steal_reply
5056
5057         * dbus/dbus-pending-call.c (dbus_pending_call_block): just call
5058         _dbus_connection_block_pending_call
5059         (dbus_pending_call_get_reply): change to steal_reply and return a
5060         ref
5061
5062         * dbus/dbus-connection.c
5063         (dbus_connection_send_with_reply_and_block): port to work in terms
5064         of DBusPendingCall
5065         (_dbus_connection_block_pending_call): replace block_for_reply
5066         with this
5067
5068 2005-02-14  Havoc Pennington  <hp@redhat.com>
5069
5070         * dbus/dbus-userdb-util.c (_dbus_user_database_lookup_group):
5071         properly handle looking up group information by name; fix 
5072         from j@bootlab.org
5073
5074 2005-02-13  Havoc Pennington  <hp@redhat.com>
5075
5076         * dbus/dbus-connection.c (dbus_connection_return_message) 
5077         (dbus_connection_borrow_message): hold dispatch lock while message
5078         is outstanding
5079         (_dbus_connection_block_for_reply): hold dispatch lock while we
5080         block for the reply, so nobody steals our reply
5081         (dbus_connection_pop_message): hold the dispatch lock while we
5082         pluck the message
5083
5084 2005-02-13  Havoc Pennington  <hp@redhat.com>
5085
5086         * dbus/dbus-connection.c (_dbus_connection_acquire_dispatch)
5087         (_dbus_connection_release_dispatch)
5088         (_dbus_connection_acquire_io_path)
5089         (_dbus_connection_release_io_path): make the mutex and condvar
5090         control access to the "acquired" flag. Drop the connection lock
5091         while waiting on the condvar. Hopefully these are baby steps in
5092         roughly the right direction.
5093
5094 2005-02-13  Havoc Pennington  <hp@redhat.com>
5095
5096         * dbus/dbus-connection.c: use separate mutexes for the condition
5097         variables; this is some kind of baseline for sanity, but the
5098         condition variables still aren't used correctly afaict
5099
5100 2005-02-13  Havoc Pennington  <hp@redhat.com>
5101
5102         * dbus/dbus-object-tree.c (handle_default_introspect_and_unlock):
5103         fix a double-unlock
5104
5105         * dbus/dbus-connection.c
5106         (_dbus_connection_detach_pending_call_unlocked): add this
5107
5108         Initial semi-correct pass through to fix thread locking; there are
5109         still some issues with the condition variable paths I'm pretty
5110         sure
5111         
5112         * dbus/dbus-server.c: add a mutex on DBusServer and appropriate
5113         lock/unlock calls
5114
5115         * dbus/dbus-connection.c (_dbus_connection_do_iteration_unlocked):
5116         rename to add _unlocked
5117         (struct DBusConnection): move "dispatch_acquired" and
5118         "io_path_acquired" to use only one bit each.
5119         (CONNECTION_LOCK, CONNECTION_UNLOCK): add checks with !DBUS_DISABLE_CHECKS
5120         (dbus_connection_set_watch_functions): hacky fix to reentrancy
5121         (_dbus_connection_add_watch, _dbus_connection_remove_watch) 
5122         (_dbus_connection_toggle_watch, _dbus_connection_add_timeout) 
5123         (_dbus_connection_remove_timeout) 
5124         (_dbus_connection_toggle_timeout): drop lock when calling out to
5125         user functions; done in a hacky/bad way.
5126         (_dbus_connection_send_and_unlock): add a missing unlock
5127         (_dbus_connection_block_for_reply): add a missing unlock
5128
5129         * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated):
5130         drop lock in a hacky probably unsafe way to call out to user
5131         function
5132
5133 2005-02-12  Havoc Pennington  <hp@redhat.com>
5134
5135         * tools/dbus-tree-view.c (info_set_func_text): display more
5136         details on args
5137
5138         * bus/driver.c (bus_driver_handle_list_services): list the bus
5139         driver
5140
5141         * glib/dbus-gparser.c (parse_arg): generate an arg name if none is supplied
5142
5143         * glib/dbus-gidl.c (signal_info_get_n_args): new function
5144         (method_info_get_n_args): new function
5145
5146 2005-02-12  Havoc Pennington  <hp@redhat.com>
5147
5148         * bus/driver.c (bus_driver_handle_introspect): add introspection
5149         for bus driver
5150
5151 2005-02-12  Havoc Pennington  <hp@redhat.com>
5152
5153         * bus/driver.c: put the signature of each bus driver method in the
5154         table of handlers and check it on incoming calls; this isn't
5155         really useful, but going to add introspect support in a minute.
5156
5157 2005-02-11  Joe Shaw  <joeshaw@novell.com>
5158
5159         * mono/Connection.cs: The unpredictability of finalizers in mono
5160         prevents us from deterministically disconnecting the filters from
5161         the Service class's finalizer, so move tracking of filters and
5162         matches here.  Add API for that.
5163
5164         * mono/Service.cs: Remove the code, add code which calls the
5165         methods now on the Connection class.
5166
5167 2005-02-11  John (J5) Palmieri  <johnp@redhat.com>
5168
5169         * python/dbus.py (class Sender): added to support dbus signals better
5170         (Bus::add_signal_receiver): added expand_args parameter which defaults
5171         to True.  When expand args is True the signal handler will pass the 
5172         message arguments as parameters to the signal handler.  If False
5173         revert to previous behavior where the signal handler must get the
5174         argument list from the message.  This is to help port applications
5175         like HAL that have a tendancy to send variable length argument lists.
5176         self._match_rule_to_receivers is now a dict of dicts.
5177         (Bus::remove_signal_receiver): pop handler off the dict intead of 
5178         removing it from a list
5179         (Bus::_signal_func): change signal handlers so that interface,
5180         signal_name, service, path and message are packed into a Sender
5181         object and that is passed to the handler.  If expand_args is True
5182         extract the args list from the message and append it to the parameter
5183         list
5184         
5185         * python/dbus_bindings.pyx.in (class Signature): added to support 
5186         signiature types
5187         (MessageIter::__init__): changed iteration limit to match D-BUS
5188         (MessageIter::get*): added INT16, UINT16, SIGNATURE, DICT_ENTRY, 
5189         STRUCT and VARIENT type support
5190         (MessageIter::python_value_to_dbus_sig): made recursive to support
5191         recursive types
5192         (MessageIter::append*): added Signature, dict, tuple 
5193         support
5194
5195         * python/examples/example-client.py: added examples of getting tuples
5196         and dicts
5197
5198         * python/examples/example-service.py: added examples of sending tuples
5199         and dicts
5200
5201         * python/examples/example-signal-recipient.py: Fixed to handle new
5202         signal callback format
5203
5204 2005-02-10  Havoc Pennington  <hp@redhat.com>
5205
5206         * test/glib/test-dbus-glib.c (main): fix so this test doesn't fail
5207         (call dbus_g_proxy_add_signal)
5208
5209         * dbus/dbus-server-unix.c (_dbus_server_new_for_tcp_socket):
5210         escape the hostname
5211         (_dbus_server_new_for_domain_socket): escape the path
5212
5213         * dbus/dbus-address.c (dbus_address_escape_value): new
5214         (dbus_address_unescape_value): new
5215         (dbus_parse_address): unescape values
5216
5217         * dbus/dbus-string.c (_dbus_string_append_byte_as_hex): new function
5218
5219         * doc/dbus-specification.xml: explain how to escape values in
5220         addresses
5221
5222 2005-02-10  Havoc Pennington  <hp@redhat.com>
5223
5224         * dbus/dbus-message-factory.c (generate_special): modify test to
5225         avoid using a non-basic dict key
5226
5227         * dbus/dbus-marshal-validate-util.c: add test for the below
5228
5229         * doc/dbus-specification.xml: require that dict keys are a basic
5230         type
5231
5232         * dbus/dbus-marshal-validate.c
5233         (_dbus_validate_signature_with_reason): require that dict key is a
5234         basic type
5235
5236 2005-02-10  Havoc Pennington  <hp@redhat.com>
5237
5238         * dbus/dbus-object-tree.c (handle_default_introspect_and_unlock):
5239         change to be _and_unlock instead of _unlocked
5240
5241         * dbus/dbus-connection.c
5242         (_dbus_connection_send_preallocated_unlocked_no_update): rename to
5243         have no_update so we can find this bug quickly in future
5244
5245 2005-02-10  Havoc Pennington  <hp@redhat.com>
5246
5247         * dbus/dbus-message-util.c (verify_test_message): tests for string
5248         array
5249
5250         * dbus/dbus-message.c (dbus_message_append_args_valist): add
5251         support for arrays of string/signature/path
5252
5253 2005-02-10  Joe Shaw  <joeshaw@novell.com>
5254
5255         * dbus/dbus-connection.c
5256         (_dbus_connection_queue_received_message_link,
5257         _dbus_connection_message_sent): Add the path to
5258         the verbose output.
5259         (_dbus_connection_send_preallocated_and_unlock): Added.  Calls
5260         _dbus_connection_send_preallocated_unlocked(), updated the
5261         dispatch status, and unlocks.  Fixes a bug where certain
5262         situations (like a broken pipe) could cause a Disconnect message
5263         to not be sent, tricking the bus into thinking a service was still
5264         there when the process had quit.
5265         (_dbus_connection_send_preallocated): Call
5266         _dbus_connection_send_preallocated_and_unlock().
5267         (_dbus_connection_send_and_unlock): Added.  Calls
5268         _dbus_connection_send_preallocated_and_unlock().
5269         (dbus_connection_send): Call _dbus_connection_send_and_unlock().
5270         (dbus_connection_send_with_reply): Update the dispatch status and
5271         unlock.
5272
5273         * mono/Service.cs (~Service): Added.  Removes the filter so that
5274         we don't get unmanaged code calling back into a GCed delegate.
5275         (RemoveFilter); Added.
5276
5277 2005-02-09  John (J5) Palmieri  <johnp@redhat.com>
5278
5279         * dbus/dbus-message.c (dbus_message_iter_open_container):
5280         - Removed check for iterator type being an array because
5281         get_arg_type does not work with writer iterators
5282         - Pass NULL to _dbus_type_writer_recurse if signiture is NULL
5283
5284 2005-02-07  Havoc Pennington  <hp@redhat.com>
5285
5286         * doc/dbus-specification.xml: some more language cleanups; add
5287         stuff about how to deal with invalid protocol and extension
5288         points; add _ to allowed chars in auth commands; add EXTENSION_
5289         auth command prefix
5290
5291 2005-02-06  Havoc Pennington  <hp@redhat.com>
5292
5293         * s/expected/required/ in a couple places for clarity
5294
5295 2005-02-07  Colin Walters  <walters@verbum.org>
5296
5297         * bus/selinux.c (bus_selinux_allows_send): Handle NULL for
5298         sender or proposed_recipient.
5299
5300 2005-02-06  Havoc Pennington  <hp@redhat.com>
5301
5302         * dbus/dbus-message-factory.c (generate_special): more tests
5303
5304         * dbus/dbus-marshal-validate.c (validate_body_helper): detect
5305         array length that exceeds the maximum
5306
5307 2005-02-05  Havoc Pennington  <hp@redhat.com>
5308
5309         * dbus/dbus-message-factory.c (generate_special): more test cases,
5310         increasing coverage
5311
5312         * dbus/dbus-marshal-validate.c (validate_body_helper): return the
5313         reason why a signature was invalid
5314
5315         * dbus/dbus-marshal-header.c (load_and_validate_field): fix to
5316         skip the length of the string before we look at it in validation
5317
5318         * dbus/dbus-string-util.c (_dbus_string_test): add tests for
5319         equal_substring
5320
5321         * dbus/dbus-message.c (_dbus_message_loader_new): default
5322         max_message_length to DBUS_MAXIMUM_MESSAGE_LENGTH
5323
5324 2005-02-05  Havoc Pennington  <hp@redhat.com>
5325
5326         * dbus/dbus-marshal-validate.c (validate_body_helper): fix crash
5327         if the signature of a variant was empty
5328         (_dbus_validate_signature_with_reason): catch "(a)" (array inside
5329         struct with no element type)
5330
5331         * dbus/dbus-message-factory.c (generate_uint32_changed): add more
5332         mangled messages to break things
5333
5334 2005-02-04  Havoc Pennington  <hp@redhat.com>
5335
5336         * glib/dbus-gproxy.c (dbus_g_proxy_disconnect_signal): use
5337         g_quark_try_string() so it actually can return 0
5338         (dbus_g_proxy_connect_signal): ditto
5339
5340 2005-02-04  Havoc Pennington  <hp@redhat.com>
5341
5342         * glib/dbus-gproxy.c (dbus_g_proxy_emit_remote_signal): fix a
5343         bogus warning
5344         (tristring_from_message): assert cleanly on null path/interface
5345         (should not be possible though I decided later)
5346         (dbus_g_proxy_dispose): move proxy manager unregistration here
5347         (DBUS_G_PROXY_DESTROYED): add this macro, and use it in a bunch of
5348         g_return_if_fail() checks
5349
5350 2005-02-04  Havoc Pennington  <hp@redhat.com>
5351
5352         * doc/Makefile.am (EXTRA_DIST): add DTDs to makefile
5353
5354         * doc/introspect.dtd: add introspect.dtd from David A. Wheeler
5355         (with some minor changes)
5356
5357         * doc/dbus-specification.xml: add deprecated attribute to
5358         introspection format
5359
5360 2005-01-31  Havoc Pennington  <hp@redhat.com>
5361
5362         * glib/dbus-gproxy.c: rewrite how signals work again, this time I
5363         think it's sort of right
5364
5365 2005-01-30  Havoc Pennington  <hp@redhat.com>
5366
5367         * tools/dbus-viewer.c: kind of half-ass hook up the option menu.
5368
5369 2005-01-30  Havoc Pennington  <hp@redhat.com>
5370
5371         * tools/dbus-names-model.c: dynamically watch NameOwnerChanged
5372
5373         * autogen.sh: change to autotools 1.9
5374
5375         * glib/dbus-gproxy.c: completely change how signals work
5376         (dbus_g_proxy_add_signal): new function to specify signature of a
5377         signal
5378         (dbus_g_proxy_emit_received): marshal the dbus message to GValues,
5379         and g_warning if the incoming message has the wrong signature.
5380
5381 2005-01-30  Havoc Pennington  <hp@redhat.com>
5382
5383         * tools/dbus-names-model.c (have_names_notify): fix this
5384
5385         * dbus/dbus-message.c (_dbus_message_iter_get_args_valist): clean
5386         up the string array handling a bit 
5387
5388 2005-01-30  Havoc Pennington  <hp@redhat.com>
5389
5390         * glib/dbus-glib.c (dbus_g_pending_call_set_notify): new function
5391         (dbus_g_pending_call_cancel): new function
5392
5393         * dbus/dbus-glib.h: move GType decls for connection/message here;
5394         * dbus/dbus-glib.c: move all the g_type and ref/unref stuff in
5395         here, just kind of rationalizing how we handle all that
5396
5397         * tools/dbus-names-model.c: new file for a tree model listing the
5398         services on a bus
5399
5400         * tools/dbus-tree-view.c (model_new): use proper typing on the
5401         model rows
5402
5403 2005-01-30  Havoc Pennington  <hp@redhat.com>
5404
5405         * glib/dbus-gmain.c: add a custom GSource back that just checks
5406         whether the message queue has anything in it; otherwise, there are 
5407         cases where we won't see messages in the queue since there was no 
5408         IO visible to the glib main loop
5409
5410         * dbus/dbus-connection-internal.h (_DBUS_DEFAULT_TIMEOUT_VALUE):
5411         increase default message timeout to 25 seconds
5412
5413 2005-01-30  Havoc Pennington  <hp@redhat.com>
5414
5415         * test/glib/test-profile.c (no_bus_stop_server): remove the
5416         warning about the g_warning that I just fixed
5417
5418         * glib/dbus-gmain.c: rewrite the main loop stuff to avoid the
5419         custom source, seems to be a lot easier to understand and work
5420         better.
5421
5422 2005-01-30  Havoc Pennington  <hp@redhat.com>
5423
5424         I think this main loop thing is conceptually broken, but here are 
5425         some band aids. I'll maybe rewrite it in a minute.
5426         
5427         * glib/dbus-gmain.c (add_timeout): timeout stuff doesn't use the
5428         custom GSource, so don't pass it in; confusing
5429         (gsource_server_finalize, gsource_connection_finalize): add
5430         finalize handlers that remove all the watches.  
5431
5432 2005-01-30  Havoc Pennington  <hp@redhat.com>
5433
5434         * glib/dbus-gobject.c (introspect_properties): fix the XML
5435         generated
5436
5437         * dbus/dbus-message.c (dbus_message_unref): add an in_cache flag
5438         which effectively detects the use of freed messages
5439
5440         * glib/dbus-gobject.c (handle_introspect): modify and return the
5441         reply message instead of the incoming message
5442
5443         * dbus/dbus-object-tree.c (handle_default_introspect_unlocked):
5444         gee, maybe it should SEND THE XML instead of just making a string
5445         and freeing it again ;-)
5446
5447         * tools/dbus-print-message.c (print_message): improve printing of
5448         messages
5449
5450         * configure.in: add debug-glib.service to the output
5451
5452 2005-01-30  Havoc Pennington  <hp@redhat.com>
5453
5454         dbus-viewer introspected and displayed the bus driver
5455         
5456         * dbus/dbus-object-tree.c 
5457         (object_tree_test_iteration): add tests for a handler registered on "/"
5458
5459         * dbus/dbus-object-tree.c
5460         (_dbus_decompose_path): fix to handle path "/" properly
5461         (run_decompose_tests): add tests for path decomposition
5462         
5463         * glib/dbus-gutils.c (_dbus_gutils_split_path): fix to handle "/"
5464         properly
5465
5466         * glib/dbus-gobject.c (handle_introspect): fix quotes
5467
5468         * test/glib/run-test.sh: support launching the bus, then running
5469         dbus-viewer
5470
5471         * test/glib/test-service-glib.c (main): put in a trivial gobject
5472         subclass and register it on the connection
5473
5474         * bus/driver.c (bus_driver_handle_introspect): implement
5475         introspection of the bus driver service
5476
5477         * dbus/dbus-protocol.h: add #defines for the XML namespace,
5478         identifiers, doctype decl
5479
5480         * bus/driver.c (bus_driver_handle_get_service_owner): handle
5481         attempts to get owner of DBUS_SERVICE_ORG_FREEDESKTOP_DBUS by 
5482         returning the service unchanged.
5483         (bus_driver_handle_message): remove old check for reply_serial in
5484         method calls, now the message type deals with that
5485         (bus_driver_handle_message): handle NULL interface
5486
5487         * glib/dbus-gproxy.c (dbus_g_proxy_get_bus_name): new function
5488
5489         * glib/dbus-gloader-expat.c (description_load_from_string): allow
5490         -1 for len
5491
5492         * tools/dbus-viewer.c: add support for introspecting a service on
5493         a bus
5494
5495         * glib/dbus-gproxy.c (dbus_g_pending_call_ref): add
5496         (dbus_g_pending_call_unref): add
5497
5498 2005-01-29  Havoc Pennington  <hp@redhat.com>
5499
5500         * tools/dbus-tree-view.c: add support for displaying properties.
5501         (run dbus-viewer with an introspect xml file as arg, then resize
5502         the window so the tree elements show up, not sure what that is)
5503
5504         * glib/dbus-gobject.c (handle_introspect): return
5505         org.freedesktop.Properties and org.freedesktop.Introspectable
5506         interfaces when we are introspected.
5507
5508         * doc/dbus-specification.xml: allow empty interface name when 
5509         Get/Set a property
5510
5511 2005-01-29  Havoc Pennington  <hp@redhat.com>
5512
5513         * glib/Makefile.am: rename dbus-glib-tool to dbus-binding-tool;
5514         though it uses glib, it could be extended for any binding in
5515         principle
5516
5517         * glib/dbus-gobject.c (gobject_message_function): change to the
5518         new way properties work
5519
5520         * dbus/dbus-protocol.h: add the new interfaces
5521
5522         * doc/dbus-specification.xml: document the introspection format,
5523         Introspectable interface, and add an org.freedesktop.Properties
5524         interface.
5525
5526         * glib/dbus-gparser.c: add support for a <property> element
5527
5528         * glib/dbus-gidl.c: add PropertyInfo
5529
5530         * glib/dbus-gobject.c (handle_introspect): put the outermost
5531         <node> outside the signal and property descriptions.
5532         (introspect_properties): export properties as <property> rather
5533         than as method calls
5534
5535 2005-01-28  Havoc Pennington  <hp@redhat.com>
5536
5537         * doc/TODO, doc/dbus-specification.xml: spec and TODO tweaks
5538         related to authentication protocol
5539
5540 2005-01-28  John (J5) Palmieri  <johnp@redhat.com>
5541
5542         * python/dbus_bindings.pyx.in: Updated to handle new D-BUS type system
5543                 - BUS_ACTIVATION -> BUS_STARTER
5544                 - DBUS_BUS_ACTIVATION -> DBUS_BUS_STARTER
5545                 - class MessageIter (__init__): Added recursion checking 
5546                 so we throw a nice error instead of just disconnecting from the
5547                 bus.
5548                 (get): Added arg_type parameter for recursion.
5549                 Removed the nil type
5550                 Added signiture type placeholder (not implemented)
5551                 Added struct type placeholder (not implemented)
5552                 Added varient type placeholder (not implemented)
5553                 Commented out dict type for now     
5554                 (get_element_type): renamed from get_array_type
5555                 (get_*): changed to use the dbus_message_iter_get_basic API
5556                 (get_*_array): removed in favor of recursive get_array method
5557                 (get_array): new recursive method which calls get to marshal
5558                 the elements of the array
5559                 (value_to_dbus_sig): New method returns the corrasponding
5560                 dbus signiture to a python value
5561                 (append): Comment out dict handling for now
5562                 Handle lists with the new recursive API
5563                 Comment out None handling for now
5564                 (append_nil): removed
5565                 (append_*): changed to use dbus_message_iter_append_basic API
5566                 (append_*_array): removed in favor of recursive append_array 
5567                 method
5568                 (__str__): Make it easier to print out recursive iterators
5569                 for debugging
5570                 - class Message (__str__): moved type inspection to the
5571                 MessageIter class' __str__ method
5572                 (get_iter): Added an append parameter wich defaults to False
5573                 If True use the new API's to create an append iterator
5574
5575         * python/dbus.py: Update to use new bindings API
5576                 - TYPE_ACTIVATION -> TYPE_STARTER
5577                 - class Bus (_get_match_rule): GetServiceOwner -> GetNameOwner
5578                 - class ActivationBus -> class StarterBus
5579                 - class RemoteObject (__call__): get an append iterator
5580                 - (_dispatch_dbus_method_call): get an append iterator
5581                 - class Object (emit_signal): get an append iterator
5582
5583         * python/examples/: Fixed up the examples to work with the new API
5584                 
5585 2005-01-28  Joe Shaw  <joeshaw@novell.com>
5586
5587         * configure.in: Bump version up to 0.30.
5588
5589         * HACKING: Add a release item to bump the version number up after 
5590         a release.
5591
5592 2005-01-28  Havoc Pennington  <hp@redhat.com>
5593
5594         * doc/dbus-specification.xml: update to describe 16-bit types and
5595         dict entries
5596
5597         * dbus/dbus-marshal-basic.c (_dbus_unpack_uint16): fix broken
5598         assertion
5599
5600         * dbus/dbus-protocol.h (DBUS_TYPE_DICT_ENTRY): add DICT_ENTRY as a
5601         type
5602
5603         * dbus/dbus-marshal-recursive.c: implement
5604
5605 2005-01-27  Havoc Pennington  <hp@redhat.com>
5606
5607         * dbus/dbus-arch-deps.h.in: add 16/32-bit types
5608
5609         * configure.in: find the right type for 16 and 32 bit ints as well
5610         as 64
5611
5612         * dbus/dbus-protocol.h (DBUS_TYPE_INT16, DBUS_TYPE_UINT16): add
5613         the 16-bit types so people don't have to stuff them in 32-bit or
5614         byte arrays.
5615
5616 2005-01-27  Havoc Pennington  <hp@redhat.com>
5617
5618         * dbus/dbus-message.c: byteswap the message if you init an
5619         iterator to read/write from it
5620         
5621         * dbus/dbus-marshal-byteswap.c: new file implementing 
5622         _dbus_marshal_byteswap()
5623
5624         * dbus/dbus-marshal-basic.c: add _dbus_swap_array()
5625
5626 2005-01-26  Havoc Pennington  <hp@redhat.com>
5627         
5628         * dbus/dbus-marshal-validate-util.c: break this out (and fix
5629         build, apparently - nobody noticed?)
5630         
5631 2005-01-26  Havoc Pennington  <hp@redhat.com>
5632
5633         * dbus/dbus-marshal-recursive.h: remove todo comment
5634
5635 2005-01-25  Joe Shaw  <joeshaw@novell.com>
5636
5637         * Land the mono binding changes to conform to the new APIs.
5638
5639         * mono/Makefile.am: Remove Custom.cs, DBusType/Custom.cs,
5640         DBusType/Dict.cs, and DBusType/Nil.cs from the build.
5641
5642         * mono/Arguments.cs (GetCodeAsString): Added.  Returns the dbus
5643         type code as a string.
5644         (InitAppending): Rename dbus_message_append_iter_init() to
5645         dbus_message_iter_init_append().
5646
5647         * mono/BusDriver.cs: Rename ServiceEventHandler to
5648         NameOwnerChangedHandler.  Rename GetServiceOwner to GetOwner.
5649         Rename ServiceOwnerChanged to NameOwnerChanged.
5650
5651         * mono/Connection.cs: Rename BaseService to UniqueName, and the
5652         underlying C call.
5653
5654         * mono/Custom.cs: Removed.  The CUSTOM type has been removed.
5655
5656         * mono/Service.cs: Rename Exists to HasOwner, internally rename
5657         dbus_bus_acquire_service() to dbus_bus_request_name().
5658
5659         * mono/DBusType/Array.cs (ctor): Use Type.GetElementType() instead
5660         of Type.UnderlyingSystemType to get the correct element type for
5661         the array.
5662         (ctor): Update code for new APIs: use dbus_message_iter_recurse(),
5663         dbus_message_get_{element|arg}_type() instead of
5664         dbus_message_iter_init_array_iterator().
5665         (Append): Replace dbus_message_iter_append_array() with
5666         dbus_message_iter_open_container() and
5667         dbus_message_iter_close_container().
5668
5669         * mono/DBusType/Custom.cs, mono/DBusType/Nil.cs: Removed.  These
5670         types have been removed.
5671         
5672         * mono/DBusType/*.cs: Replace calls of
5673         dbus_message_iter_get_[type]() to dbus_message_iter_get_basic(),
5674         but specify the type in the DllImport extern declaration.  Ditto
5675         for dbus_message_iter_append_[type]() ->
5676         dbus_message_iter_append_basic().
5677
5678         * mono/example/BusListener.cs: Update for ServiceEventHandler ->
5679         NameOwnerChangedHandler.
5680
5681 2005-01-25  John (J5) Palmieri  <johnp@redhat.com>
5682
5683         * python/dbus_bindings.pyx.in: Rename of methods and bindings
5684                 - get_base_service -> get_unique_name
5685                 - bus_get_base_service -> bus_get_unique_name
5686                 - dbus_bus_get_base_service -> dbus_bus_get_unique_name
5687                 - ACTIVATION_REPLY_ACTIVATED -> DBUS_START_REPLY_SUCCESS 
5688                 - ACTIVATION_REPLY_ALREADY_ACTIVE -> DBUS_START_REPLY_ALREADY_RUNNING
5689                 - bus_activate_service -> bus_start_service_by_name
5690                 - dbus_bus_activate_service -> dbus_bus_start_service_by_name
5691                 - bus_acquire_service -> bus_request_name
5692                 - dbus_bus_acquire_service -> dbus_bus_request_name
5693                 - bus_service_exists -> bus_name_has_owner
5694                 - dbus_bus_service_exists -> dbus_bus_name_has_owner
5695
5696         * python/dbus.py: Rename of methods
5697                 - activate_service -> start_service_by_name
5698                 - bus_acquire_service -> bus_request_name
5699                 - ACTIVATION_REPLY_ACTIVATED -> START_REPLY_SUCCESS 
5700                 - ACTIVATION_REPLY_ALREADY_ACTIVE -> START_REPLY_ALREADY_RUNNING
5701
5702         
5703 2005-01-24  Joe Shaw  <joeshaw@novell.com>
5704
5705         * dbus/dbus-connection.c (dbus_connection_dispatch): Print out the
5706         signature for the method that can't be found.
5707
5708         * dbus/dbus-message.c (dbus_message_iter_init): To check to see if
5709         the message has any arguments, we need to call
5710         _dbus_type_reader_get_current_type(), not
5711         _dbus_type_reader_has_next().
5712
5713 2005-01-24  Havoc Pennington  <hp@redhat.com>
5714
5715         * dbus/dbus-message-factory.c: more testing of message validation
5716
5717         * dbus/dbus-protocol.h (DBUS_MINIMUM_HEADER_SIZE): move to this
5718         header
5719
5720 2005-01-23  Havoc Pennington  <hp@redhat.com>
5721
5722         * dbus/dbus-message-factory.c, dbus/dbus-message-util.c: 
5723         get this all working, not many tests in the framework yet though
5724
5725 2005-01-22  Havoc Pennington  <hp@redhat.com>
5726
5727         * doc/dbus-faq.xml, doc/dbus-tutorial: add a FAQ and update
5728         tutorial, based on work from David Wheeler.
5729
5730 2005-01-21  Havoc Pennington  <hp@redhat.com>
5731
5732         * dbus/dbus-bus.c: add more return_if_fail checks
5733
5734         * dbus/dbus-message.c (load_message): have the "no validation"
5735         mode (have to edit the code to toggle the mode for now though)
5736
5737         * dbus/dbus-marshal-header.c (_dbus_header_load): have a mode that
5738         skips all validation; I want to use this at least for benchmark
5739         baseline, I'm not sure if it should be a publicly-available switch.
5740
5741 2005-01-21  Havoc Pennington  <hp@redhat.com>
5742
5743         * glib/dbus-gmain.c: don't put the GLib bindings in the same
5744         toplevel doxygen group as the low-level API stuff
5745
5746         * dbus/dbus.h: note that libdbus is the low-level API
5747
5748 2005-01-20  Havoc Pennington  <hp@redhat.com>
5749
5750         * update-dbus-docs.sh: script to update docs on the web site, only
5751         works for me though. neener.
5752
5753 2005-01-20  Havoc Pennington  <hp@redhat.com>
5754
5755         * dbus/dbus-sysdeps.c (_dbus_poll): amazingly, trying to compile
5756         code can reveal bugs in it
5757
5758 2005-01-20  Havoc Pennington  <hp@redhat.com>
5759
5760         * dbus/dbus-sysdeps.c (_dbus_poll): fix several bugs in the
5761         select() version, patches from Tor Lillqvist
5762
5763 2005-01-20  Havoc Pennington  <hp@redhat.com>
5764
5765         * doc/dbus-tutorial.xml: replace > with &gt;
5766
5767         * bus/services.c (bus_registry_acquire_service): validate the name
5768         and return a better error if it's no good.
5769
5770         * doc/dbus-specification.xml: note NO_AUTO_START change
5771
5772         * dbus/dbus-protocol.h (DBUS_HEADER_FLAG_NO_AUTO_START): change
5773         from AUTO_START, we're toggling the default
5774
5775         * bus/dispatch.c: adapt the tests to change of auto-start default
5776
5777 2005-01-18  Havoc Pennington  <hp@redhat.com>
5778
5779         * rename dbus-daemon-1 to dbus-daemon throughout
5780
5781 2005-01-18  Havoc Pennington  <hp@redhat.com>
5782
5783         * Throughout, grand renaming to strip out the use of "service",
5784         just say "name" instead (or "bus name" when ambiguous).  Did not
5785         change the internal code of the message bus itself, only the
5786         programmer-facing API and messages.
5787         
5788         * doc/dbus-specification.xml: further update the message bus section
5789         
5790         * bus/config-parser.c (all_are_equiv): fix bug using freed string
5791         in error case
5792
5793 2005-01-17  Havoc Pennington  <hp@redhat.com>
5794
5795         * dbus/dbus-types.h: remove 16-bit types since we don't use them
5796         ever
5797
5798         * dbus/dbus-marshal-validate.c (_dbus_validate_path): disallow any
5799         "invalid name character" not only non-ASCII
5800
5801         * doc/dbus-specification.xml: further update spec, message bus 
5802         parts are still out-of-date but the marshaling etc. stuff is now
5803         accurate-ish
5804
5805 2005-01-17  Havoc Pennington  <hp@redhat.com>
5806
5807         * doc/dbus-specification.xml: partially update spec
5808
5809 2005-01-17  Havoc Pennington  <hp@redhat.com>
5810
5811         * Throughout, align variant bodies according to the contained
5812         type, rather than always to 8. Should save a fair bit of space in
5813         message headers.
5814         
5815         * dbus/dbus-marshal-validate.c (_dbus_validate_body_with_reason):
5816         fix handling of case where p == end
5817
5818         * doc/TODO: remove the dbus_bool_t item and variant alignment items
5819
5820 2005-01-17  Havoc Pennington  <hp@redhat.com>
5821
5822         * dbus/dbus-types.h: hardcode dbus_bool_t to 32 bits
5823
5824         * Throughout: modify DBUS_TYPE_BOOLEAN to be a 32-bit type instead
5825         of an 8-bit type. Now dbus_bool_t is the type to use whenever you 
5826         are marshaling/unmarshaling a boolean.
5827
5828 2005-01-16  Havoc Pennington  <hp@redhat.com>
5829
5830         This is about it on what can be disabled/deleted from libdbus
5831         easily, back below 150K anyhow. Deeper cuts are more work than 
5832         just turning the code off as I've done here.
5833         
5834         * dbus/dbus-marshal-basic.c (_dbus_pack_int32): we don't need the
5835         signed int convenience funcs
5836
5837         * dbus/dbus-internals.c (_dbus_verbose_real): omit when not in
5838         verbose mode
5839
5840         * dbus/dbus-string-util.c, dbus/dbus-string.c: more breaking
5841         things out of libdbus
5842
5843         * dbus/dbus-sysdeps.c, dbus/dbus-sysdeps-util.c: same
5844         
5845         * dbus/dbus-hash.c: purge the TWO_STRINGS crap (well, make it
5846         tests-enabled-only, though it should probably be deleted)
5847
5848         * dbus/dbus-message-util.c: same stuff
5849
5850         * dbus/dbus-auth-util.c: same stuff
5851
5852 2005-01-16  Havoc Pennington  <hp@redhat.com>
5853
5854         * dbus/dbus-userdb-util.c: split out part of dbus-userdb.c
5855
5856         * dbus/dbus-sysdeps.c (_dbus_uid_from_string): move here to pave
5857         way for stripping down dbus-userdb.c stuff included in libdbus.
5858         Rename _dbus_parse_uid for consistency.
5859
5860 2005-01-16  Havoc Pennington  <hp@redhat.com>
5861
5862         * dbus/dbus-internals.c (_dbus_real_assert): print the function
5863         name the assertion failed in
5864
5865         * dbus/dbus-internals.h (_dbus_return_if_fail) 
5866         (_dbus_return_val_if_fail): assert that the name of the function
5867         containing the check doesn't start with '_', since we only want to 
5868         use checks on public functions
5869         
5870         * dbus/dbus-connection.c (_dbus_connection_ref_unlocked): change
5871         checks to assertions
5872
5873         * dbus/dbus-marshal-header.c (_dbus_header_set_field_basic):
5874         change checks to asserts for private function
5875
5876         * dbus/dbus-message.c (_dbus_message_set_serial): checks
5877         to asserts for private function
5878
5879         * dbus/dbus-marshal-recursive.c (skip_one_complete_type): remove
5880         broken assertion that was breaking make check
5881         (_dbus_type_reader_array_is_empty): remove this rather than fix
5882         it, was only used in assertions
5883
5884 2005-01-16  Havoc Pennington  <hp@redhat.com>
5885
5886         * test/unused-code-gc.py: hacky script to find code that's used
5887         only by the bus (not libdbus) or used only by tests or not used at
5888         all. It has some false alarms, but looks like we can clean up a
5889         lot of size from libdbus.
5890
5891         * dbus/dbus-sysdeps.c, dbus/dbus-sysdeps-utils.c,
5892         dbus/Makefile.am: initially move 10K of binary size out of libdbus
5893         
5894 2005-01-16  Havoc Pennington  <hp@redhat.com>
5895
5896         * Add and fix docs according to Doxygen warnings throughout
5897         source.
5898         
5899         * dbus/dbus-marshal-recursive.c
5900         (_dbus_type_reader_array_is_empty): change this to just call
5901         array_reader_get_array_len() and make it static
5902
5903         * dbus/dbus-message.c (dbus_message_iter_get_element_type): rename
5904         from get_array_type
5905         (dbus_message_iter_init_append): rename from append_iter_init
5906
5907         * dbus/dbus-marshal-recursive.c
5908         (_dbus_type_reader_get_element_type): rename from
5909         _dbus_type_reader_get_array_type
5910
5911 2005-01-15  Havoc Pennington  <hp@redhat.com>
5912
5913         * test/glib/test-profile.c (with_bus_server_filter): fix crash
5914
5915         * dbus/dbus-marshal-basic.c (_dbus_unpack_uint32): inline as macro
5916         when DBUS_DISABLE_ASSERT
5917         (_dbus_marshal_set_basic): be sure we align for the string length
5918
5919         * dbus/dbus-marshal-recursive.c (skip_one_complete_type): make
5920         this look faster
5921
5922         * dbus/dbus-string.c (_dbus_string_get_const_data_len): add an
5923         inline macro version
5924         (_dbus_string_set_byte): provide inline macro version
5925
5926 2005-01-15  Havoc Pennington  <hp@redhat.com>
5927
5928         * Land the new message args API and type system.
5929
5930         This patch is huge, but the public API change is not 
5931         really large. The set of D-BUS types has changed somewhat, 
5932         and the arg "getters" are more geared toward language bindings;
5933         they don't make a copy, etc.
5934
5935         There are also some known issues. See these emails for details
5936         on this huge patch:
5937         http://lists.freedesktop.org/archives/dbus/2004-December/001836.html
5938         http://lists.freedesktop.org/archives/dbus/2005-January/001922.html
5939         
5940         * dbus/dbus-marshal-*: all the new stuff
5941
5942         * dbus/dbus-message.c: basically rewritten
5943
5944         * dbus/dbus-memory.c (check_guards): with "guards" enabled, init
5945         freed blocks to be all non-nul bytes so using freed memory is less
5946         likely to work right
5947
5948         * dbus/dbus-internals.c (_dbus_test_oom_handling): add
5949         DBUS_FAIL_MALLOC=N environment variable, so you can do
5950         DBUS_FAIL_MALLOC=0 to skip the out-of-memory checking, or
5951         DBUS_FAIL_MALLOC=10 to make it really, really, really slow and
5952         thorough.
5953
5954         * qt/message.cpp: port to the new message args API
5955         (operator<<): use str.utf8() rather than str.unicode()
5956         (pretty sure this is right from the Qt docs?)
5957
5958         * glib/dbus-gvalue.c: port to the new message args API
5959
5960         * bus/dispatch.c, bus/driver.c: port to the new message args API
5961
5962         * dbus/dbus-string.c (_dbus_string_init_const_len): initialize the
5963         "locked" flag to TRUE and align_offset to 0; I guess we never
5964         looked at these anyhow, but seems cleaner.
5965
5966         * dbus/dbus-string.h (_DBUS_STRING_ALLOCATION_PADDING):
5967         move allocation padding macro to this header; use it to implement
5968         (_DBUS_STRING_STATIC): ability to declare a static string.
5969
5970         * dbus/dbus-message.c (_dbus_message_has_type_interface_member):
5971         change to return TRUE if the interface is not set.
5972
5973         * dbus/dbus-string.[hc]: move the D-BUS specific validation stuff
5974         to dbus-marshal-validate.[hc]
5975
5976         * dbus/dbus-marshal-basic.c (_dbus_type_to_string): move here from
5977         dbus-internals.c
5978
5979         * dbus/Makefile.am: cut over from dbus-marshal.[hc]
5980         to dbus-marshal-*.[hc]
5981
5982         * dbus/dbus-object-tree.c (_dbus_decompose_path): move this
5983         function here from dbus-marshal.c
5984
5985 2005-01-12  Joe Shaw  <joeshaw@novell.com>
5986
5987         * NEWS: Update for 0.23.
5988
5989         * configure.in: Release 0.23.
5990
5991 2005-01-12  Joe Shaw  <joeshaw@novell.com>
5992
5993         * mono/Makefile.am, mono/example/Makefile.am: Always build the 
5994         dbus DLL with --debug.  Clean up after the .mdb files this leaves
5995         behind.
5996
5997         * mono/doc/Makefile.am: Need to uninstall the docs on "make
5998         uninstall"
5999
6000         * mono/Arguments.cs (GetDBusTypeConstructor): If the type
6001         is an enum, get the enum's underlying type.  Another mono
6002         1.1.3 fix.
6003
6004 2005-01-11  Joe Shaw  <joeshaw@novell.com>
6005
6006         Patch from Sjoerd Simons <sjoerd@luon.net>
6007
6008         * mono/Makefile.am, mono/example/Makefile.am: Don't redefine
6009         DESTDIR.  It breaks stuff.
6010
6011 2005-01-11  Joe Shaw  <joeshaw@novell.com>
6012
6013         Patch from Tambet Ingo <tambet@ximian.com>
6014
6015         * mono/DBusType/Array.cs (Get): Get the underlying element type by
6016         calling type.GetElementType().  The code previously depended on
6017         broken Mono behavior, which was fixed in Mono 1.1.3.
6018
6019         * mono/DBusType/Dict.cs (constructor): Fix the parameters for
6020         Activator.CreateInstance() so that the class's constructor is
6021         called with the right parameters.
6022
6023 2005-01-11  Joe Shaw  <joeshaw@novell.com>
6024
6025         Patch from Timo Teräs <ext-timo.teras@nokia.com>
6026
6027         * dbus/dbus-connection.c
6028         (_dbus_connection_queue_received_message_link): Call
6029         _dbus_connection_remove_timeout() instead of the _locked()
6030         variant, since it's always called from
6031         _dbus_connection_handle_watch(), which handles the locking.
6032         Removed the _locked() variant since it's no longer used.
6033
6034 2005-01-03  Havoc Pennington  <hp@redhat.com>
6035
6036         * dbus/dbus-internals.h: I'm an idiot, _dbus_assert certainly can
6037         return
6038         
6039 2004-12-26  Havoc Pennington  <hp@redhat.com>
6040
6041         * dbus/dbus-internals.h: add _DBUS_GNUC_NORETURN to _dbus_assert
6042
6043 2005-01-03  Havoc Pennington  <hp@redhat.com>
6044
6045         * dbus/dbus-sysdeps.c (_dbus_sysdeps_test): fix using == on
6046         floating point
6047
6048         * dbus/dbus-string.c (_dbus_string_insert_alignment): new function
6049
6050 2005-01-02  Havoc Pennington  <hp@redhat.com>
6051
6052         * dbus/dbus-internals.h (_DBUS_ALIGN_OFFSET): new macro
6053
6054 2005-01-01  Havoc Pennington  <hp@redhat.com>
6055
6056         * configure.in: add -Wfloat-equal
6057
6058 2005-01-01  Havoc Pennington  <hp@redhat.com>
6059
6060         * dbus/dbus-sysdeps.h: add _DBUS_DOUBLES_BITWISE_EQUAL macro, 
6061         for a variety of reasons '==' doesn't do this.
6062
6063 2004-12-31  Havoc Pennington  <hp@redhat.com>
6064
6065         * dbus/dbus-string.c (_dbus_string_equal_substrings): new function
6066         I keep wishing I had
6067
6068 2004-12-30  John (J5) Palmieri  <johnp@redhat.com>
6069
6070         * python/dbus.py: s/ACTIVATION_REPLY_ACTIVE/ACTIVATION_REPLY_ACTIVATED
6071
6072 2004-12-30  John (J5) Palmieri  <johnp@redhat.com>
6073
6074         * python/dbus_bindings.pyx.in: Change DBUS_ACTIVATION_REPLY_ACTIVATED
6075         and DBUS_ACTIVATION_REPLY_ALREADY_ACTIVE to match the values in
6076         dbus-protocol.h.  Because they are defines and not enums they are not
6077         autogenerated.
6078
6079 2004-12-26  John (J5) Palmieri  <johnp@redhat.com>
6080
6081         * python/dbus_bindings.pyx.in (bus_activate_service): Bind
6082         dbus_bus_activate_service
6083
6084         * python/dbus.py (Bus.activate_service): activate a service on the
6085         bus.
6086
6087 2004-12-24  Havoc Pennington  <hp@redhat.com>
6088
6089         * test/decode-gcov.c: change to use .gcno and .gcda files, but the
6090         file format has also changed and I haven't adapted to that yet
6091         
6092         * Makefile.am: load .gcno files from latest gcc
6093
6094 2004-12-23  John (J5) Palmieri  <johnp@redhat.com>
6095         * Patch from Rob Taylor <robtaylor@fastmail.fm>
6096
6097         * python/dbus_bindings.pyx.in (bus_get_unix_user): New
6098         lowlevel binding
6099
6100         * python/dbus.py (get_unix_user): Added binding to 
6101         call dbus_bindings.bus_get_unix_user
6102
6103         * python/extract.py: Modified the proto_pat regex to
6104         handle unsigned long
6105
6106 2004-12-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6107
6108         * dbus/make-dbus-glib-error-enum.sh: omit the function keyword for
6109         better POSIX compliance.
6110
6111 2004-12-19  Havoc Pennington  <hp@redhat.com>
6112
6113         * dbus/dbus-string.c (_dbus_string_insert_4_aligned) 
6114         (_dbus_string_insert_8_aligned): new functions
6115
6116         * dbus/dbus-string.c (_dbus_string_alloc_space): new function
6117
6118 2004-12-18  Havoc Pennington  <hp@redhat.com>
6119
6120         * dbus/dbus-string.c (_dbus_string_validate_ascii): use ISASCII
6121         macro
6122
6123         * dbus/dbus-message.c: fix a comment, and add a still-unused
6124         not-implemented function
6125
6126         * dbus/dbus-marshal.h: fix comment
6127
6128         * dbus/dbus-internals.h (_DBUS_ISASCII): new macro
6129
6130 2004-12-17  Joe Shaw  <joeshaw@novell.com>
6131
6132         * mono/DBusType/Byte.cs, mono/DBusType/Int32.cs,
6133         mono/DBusType/Int64.cs, mono/DBusType/UInt32.cs,
6134         mono/DBusType/UInt64.cs: Use Enum.GetUnderlyingType() instead of
6135         Type.UnderlyingSystemType to get the actual system type
6136         underneath.  This code previously depended on the broken Mono
6137         behavior, which was fixed in 1.1.3.
6138
6139 2004-11-27  Havoc Pennington  <hp@redhat.com>
6140
6141         * dbus/dbus-string.h (_dbus_string_get_byte): inline when asserts
6142         are disabled
6143         (_dbus_string_get_const_data): inline when asserts are disabled
6144
6145         * dbus/dbus-message.c: record the _dbus_current_generation of
6146         creation so we can complain if dbus_shutdown() is used improperly.
6147         Do this only if checks are enabled.
6148
6149         * dbus/dbus-connection.c: ditto
6150         
6151 2004-11-26  Havoc Pennington  <hp@redhat.com>
6152
6153         * test/glib/test-profile.c: add with_bus mode to profile echoes
6154         that go through the bus.
6155
6156         * test/glib/run-test.sh: add ability to run test-profile
6157
6158         * bus/dbus-daemon-1.1.in: fix to say that SIGHUP causes partial
6159         config file reload.
6160
6161 2004-11-26  Havoc Pennington  <hp@redhat.com>
6162
6163         * test/glib/test-profile.c: clean up how the fake_malloc_overhead
6164         thing was implemented
6165
6166 2004-11-26  Havoc Pennington  <hp@redhat.com>
6167
6168         * test/glib/test-profile.c: tweak a bit, add support for some
6169         made-up minimal malloc overhead with plain sockets, since in 
6170         real life some sort of buffers are unavoidable thus we could 
6171         count them in the theoretical best case
6172
6173 2004-11-26  Havoc Pennington  <hp@redhat.com>
6174
6175         * dbus/dbus-message.c (dbus_message_cache_or_finalize): fix bug
6176         where I was trying to cache one too many messages
6177
6178 2004-11-26  Havoc Pennington  <hp@redhat.com>
6179
6180         * dbus/dbus-message.c: reimplement message cache as an array which 
6181         makes the cache about twice as fast and saves maybe 1.5% overall
6182
6183 2004-11-26  Havoc Pennington  <hp@redhat.com>
6184
6185         * dbus/dbus-threads.c (init_global_locks): forgot to put the
6186         message cache lock here
6187
6188 2004-11-26  Havoc Pennington  <hp@redhat.com>
6189
6190         * dbus/dbus-message.c (struct DBusMessage): put the locked bit and
6191         the "char byte_order" next to each other to save 4 bytes
6192         (dbus_message_new_empty_header): reduce preallocation, since the
6193         message cache should achieve a similar effect
6194         (dbus_message_cache_or_finalize, dbus_message_get_cached): add a
6195         message cache that keeps a few DBusMessage around in a pool,
6196         another 8% speedup or so.
6197
6198         * dbus/dbus-dataslot.c (_dbus_data_slot_list_clear): new function
6199
6200 2004-11-25  Havoc Pennington  <hp@redhat.com>
6201
6202         * dbus/dbus-transport-unix.c (unix_do_iteration): if we're going
6203         to write, without reading or blocking, try it before the poll()
6204         and skip the poll() if nothing remains to write. This is about a
6205         3% speedup in the echo client/server
6206
6207 2004-11-25  Havoc Pennington  <hp@redhat.com>
6208
6209         The primary change here is to always write() once before adding
6210         the write watch, which gives us about a 10% performance increase.
6211         
6212         * dbus/dbus-transport-unix.c: a number of modifications to cope
6213         with removing messages_pending
6214         (check_write_watch): properly handle
6215         DBUS_AUTH_STATE_WAITING_FOR_MEMORY; adapt to removal of
6216         messages_pending stuff
6217         (check_read_watch): properly handle WAITING_FOR_MEMORY and
6218         AUTHENTICATED cases
6219         (unix_handle_watch): after writing, see if the write watch can be
6220         removed
6221         (unix_do_iteration): assert that write_watch/read_watch are
6222         non-NULL rather than testing that they aren't, since they 
6223         aren't allowed to be NULL. check_write_watch() at the end so 
6224         we add the watch if we did not finish writing (e.g. got EAGAIN)
6225
6226         * dbus/dbus-transport-protected.h: remove messages_pending call,
6227         since it resulted in too much inefficient watch adding/removing; 
6228         instead we now require that the transport user does an iteration 
6229         after queueing outgoing messages, and after trying the first
6230         write() we add a write watch if we got EAGAIN or exceeded our 
6231         max bytes to write per iteration setting
6232
6233         * dbus/dbus-string.c (_dbus_string_validate_signature): add this
6234         function
6235
6236         * dbus/dbus-server-unix.c (unix_finalize): the socket name was
6237         freed and then accessed, valgrind flagged this bug, fix it
6238
6239         * dbus/dbus-message.c: fix several bugs where HEADER_FIELD_LAST was taken
6240         as the last valid field plus 1, where really it is equal to the
6241         last valid field. Corrects some message corruption issues.
6242
6243         * dbus/dbus-mainloop.c: verbosity changes
6244
6245         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): handle OOM
6246         instead of aborting in one of the test codepaths
6247
6248         * dbus/dbus-internals.c (_dbus_verbose_real): fix a bug that
6249         caused not printing the pid ever again if a verbose was missing
6250         the newline at the end
6251         (_dbus_header_field_to_string): add HEADER_FIELD_SIGNATURE
6252
6253         * dbus/dbus-connection.c: verbosity changes; 
6254         (dbus_connection_has_messages_to_send): new function
6255         (_dbus_connection_message_sent): no longer call transport->messages_pending
6256         (_dbus_connection_send_preallocated_unlocked): do one iteration to
6257         try to write() immediately, so we can avoid the write watch. This
6258         is the core purpose of this patchset
6259         (_dbus_connection_get_dispatch_status_unlocked): if disconnected,
6260         dump the outgoing message queue, so nobody will get confused
6261         trying to send them or thinking stuff is pending to be sent
6262
6263         * bus/test.c: verbosity changes
6264
6265         * bus/driver.c: verbosity/assertion changes
6266
6267         * bus/dispatch.c: a bunch of little tweaks to get it working again
6268         because this patchset changes when/where you need to block.
6269
6270 2004-11-23  Havoc Pennington  <hp@redhat.com>
6271
6272         * test/glib/test-profile.c: modify to accept a plain_sockets
6273         argument in which case it will bench plain sockets instead of
6274         libdbus, for comparison purposes.
6275
6276 2004-11-22  Havoc Pennington  <hp@redhat.com>
6277
6278         * test/glib/test-profile.c (N_CLIENT_THREADS): run multiple
6279         threads for more time, so sysprof can get a grip on it.
6280
6281         * dbus/dbus-string.c (_dbus_string_validate_utf8): remove
6282         pointless variable
6283
6284 2004-11-13  Havoc Pennington  <hp@redhat.com>
6285
6286         * test/glib/test-profile.c: fix this thing up a bit
6287
6288         * dbus/dbus-message.c (dbus_message_new_empty_header): increase
6289         preallocation sizes by a fair bit; not sure if this will be an
6290         overall performance win or not, but it does reduce reallocs.
6291
6292         * dbus/dbus-string.c (set_length, reallocate_for_length): ignore
6293         the test hack that forced constant realloc if asserts are
6294         disabled, so we can profile sanely. Sprinkle in some
6295         _DBUS_UNLIKELY() which are probably pointless, but before I
6296         noticed the real performance problem I put them in.
6297         (_dbus_string_validate_utf8): micro-optimize this thing a little
6298         bit, though callgrind says it didn't help; then special-case
6299         ascii, which did help a lot; then be sure we detect nul bytes as
6300         invalid, which is a bugfix.
6301         (align_length_then_lengthen): add some more _DBUS_UNLIKELY
6302         superstition; use memset to nul the padding instead of a manual
6303         loop.
6304         (_dbus_string_get_length): inline this as a
6305         macro; it showed up in the profile because it's used for loop
6306         tests and so forth
6307
6308 2004-11-10  Colin Walters  <walters@verbum.org>
6309
6310         * dbus/dbus-spawn.c (check_babysit_events): Handle EINTR,
6311         for extra paranoia.
6312
6313 2004-11-09  Colin Walters  <walters@verbum.org>
6314
6315         * dbus/dbus-string.c (_dbus_string_get_length): New
6316         function, writes DBusString to C buffer.
6317
6318         * dbus/dbus-string.h: Prototype it.
6319
6320         * dbus/dbus-message.c (dbus_message_type_to_string): New
6321         function, converts message type into C string.
6322
6323         * dbus/dbus-message.h: Prototype it.
6324
6325         * bus/selinux.c (bus_selinux_check): Take source pid,
6326         target pid, and audit data.  Pass audit data to
6327         avc_has_perm.
6328         (log_audit_callback): New function, appends extra
6329         audit information.
6330         (bus_selinux_allows_acquire_service): Also take
6331         service name, add it to audit data.
6332         (bus_selinux_allows_send): Also take message
6333         type, interface, method member, error name,
6334         and destination, and add them to audit data.
6335         (log_cb): Initialize func_audit.
6336         
6337         * bus/selinux.h (bus_selinux_allows_acquire_service)
6338         (bus_selinux_allows_send): Update prototypes 
6339
6340         * bus/services.c (bus_registry_acquire_service): Pass
6341         service name to bus_selinux_allows_acquire_service.
6342
6343         * bus/bus.c (bus_context_check_security_policy): Pass
6344         additional audit data.  Move assignment of dest
6345         to its own line.
6346
6347 2004-11-07  Colin Walters  <walters@verbum.org>
6348
6349         * dbus/dbus-transport-unix.c (do_authentication): Always
6350         initialize auth_completed.
6351         
6352 2004-11-07  Colin Walters  <walters@verbum.org>
6353
6354         * bus/bus.c (load_config): Break into three
6355         separate functions: process_config_first_time_only,
6356         process_config_every_time, and process_config_postinit.
6357         (process_config_every_time): Move call of
6358         bus_registry_set_service_context_table into
6359         process_config_postinit.
6360         (process_config_postinit): New function, does
6361         any processing that needs to happen late
6362         in initialization (and also on reload).
6363         (bus_context_new): Instead of calling load_config,
6364         open config parser here and call process_config_first_time_only
6365         and process_config_every_time directly.  Later, after
6366         we have forked but before changing UID,
6367         invoke bus_selinux_full_init, and then call
6368         process_config_postinit.
6369         (bus_context_reload_config): As in bus_context_new,
6370         load parse file inside here, and call process_config_every_time
6371         and process_config_postinit.
6372
6373         * bus/services.h, bus/services.c
6374         (bus_registry_set_service_context_table): Rename
6375         from bus_registry_set_sid_table.  Take string hash from config
6376         parser, and convert them here into SIDs.
6377
6378         * bus/config-parser.c (struct BusConfigParser): Have
6379         config parser only store a mapping of service->context
6380         string.
6381         (merge_service_context_hash): New function.
6382         (merge_included): Merge context string hashes instead
6383         of using bus_selinux_id_table_union.
6384         (bus_config_parser_new): Don't use bus_selinux_id_table_new;
6385         simply create a new string hash.
6386         (bus_config_parser_unref): Unref it.
6387         (start_selinux_child): Simply insert strings into hash,
6388         don't call bus_selinux_id_table_copy_over.
6389
6390         * bus/selinux.h, bus/selinux.c (bus_selinux_id_table_union)
6391         (bus_selinux_id_table_copy_over): Delete.
6392
6393 2004-11-03  Colin Walters  <walters@verbum.org>
6394
6395         * bus/selinux.c (bus_selinux_pre_init): Kill some unused
6396         variables.
6397         
6398 2004-11-03  Colin Walters  <walters@verbum.org>
6399
6400         * bus/test-main.c (test_pre_hook): Fix test logic,
6401         thanks Joerg Barfurth <Joerg.Barfurth@Sun.COM>.
6402
6403 2004-11-02  Colin Walters  <walters@redhat.com>
6404
6405         * bus/selinux.c (bus_selinux_init): Split into two functions,
6406         bus_selinux_pre_init and bus_selinux_post_init.
6407         (bus_selinux_pre_init): Just determine whether SELinux is
6408         enabled.
6409         (bus_selinux_post_init): Do everything else.
6410
6411         * bus/main.c (main): Call bus_selinux_pre_init before parsing
6412         config file, and bus_selinux_post_init after.  This ensures that
6413         we don't lose the policyreload notification thread that
6414         bus_selinux_init created before forking previously.
6415         
6416         * bus/test-main.c (test_pre_hook): Update for split.
6417
6418 2004-10-31  Owen Fraser-Green  <owen@discobabe.net>
6419
6420         Patch from Johan Fischer <linux@fischaz.com>
6421         
6422         * mono/doc/Makefile.am (install-data-local): Added directory
6423         install for DESTDIR
6424
6425 2004-10-29  Colin Walters  <walters@redhat.com>
6426
6427         * dbus/dbus-sysdeps.h (_dbus_become_daemon): Also take
6428         parameter for fd to write pid to.       
6429
6430         * dbus/dbus-sysdeps.c (_dbus_become_daemon): Implement it.
6431         
6432         * bus/bus.c (bus_context_new): Pass print_pid_fd
6433         to _dbus_become_daemon (bug #1720)
6434
6435 2004-10-29  Colin Walters  <walters@redhat.com>
6436
6437         Patch from Ed Catmur <ed@catmur.co.uk>
6438
6439         * mono/doc/Makefile.am (install-data-local): Handle
6440         DESTDIR.
6441
6442 2004-10-29  Colin Walters  <walters@redhat.com>
6443
6444         * bus/.cvsignore, qt/.cvsignore: Update.
6445
6446 2004-10-29  Colin Walters  <walters@redhat.com>
6447
6448         Patch from Kristof Vansant <de_lupus@pandora.be>
6449
6450         * configure.in: Detect Slackware.
6451         * bus/Makefile.am (SCRIPT_IN_FILES): Add rc.messagebus.in.
6452         * bus/rc.messagebus.in: New file.
6453
6454 2004-10-29  Colin Walters  <walters@redhat.com>
6455
6456         * tools/dbus-monitor.c (filter_func): Return
6457         DBUS_HANDLER_RESULT_HANDLED in filter function
6458         for now.  See:
6459         http://freedesktop.org/pipermail/dbus/2004-August/001433.html
6460
6461 2004-10-29  Colin Walters  <walters@redhat.com>
6462
6463         Patch from Matthew Rickard <mjricka@epoch.ncsc.mil>
6464
6465         * bus/services.c (bus_registry_acquire_service): 
6466         Correctly retrieve service name from DBusString
6467         for printing.
6468
6469 2004-10-29  Colin Walters  <walters@redhat.com>
6470
6471         * dbus/dbus-glib.h: Update documentation to not
6472         refer to internal APIs.
6473
6474 2004-10-27  Joe Shaw  <joeshaw@novell.com>
6475
6476         * mono/Arguments.cs (GetDBusTypeConstructor):
6477         type.UnderlyingSystemType will return "System.Byte" if you do it
6478         on "byte[]", which is not what we want.  So check the type.IsArray
6479         property and use System.Array instead.
6480
6481 2004-10-25  John (J5) Palmieri  <johnp@redhat.com>
6482
6483         * dbus/dbus-sysdeps.c (fill_user_info): On errors do not free
6484         the DBusUserInfo structure since this is passed into the function.
6485         This would cause a double free when the function that allocated
6486         the structure would try to free it when an error occured.
6487
6488         * (bus/session.conf.in, bus/Makefile.am, dbus/configure.in):
6489         use /usr/share/dbus-1/services instead of /usr/lib/dbus-1.0/services
6490         for service activation to avoid 32bit/64bit parallel install issues
6491
6492 2004-10-21  Colin Walters  <walters@verbum.org>
6493
6494         * AUTHORS: Fix my email address, the @gnu.org one
6495         has been bouncing for some time.  Also add J5.
6496         
6497 2004-10-21  Colin Walters  <walters@verbum.org>
6498
6499         * dbus/dbus-transport-unix.c (do_authentication): Return
6500         authentication status to callers.
6501         (unix_handle_watch): If we completed authentication this round,
6502         don't do another read.  Instead wait until the next iteration,
6503         after we've read any pending data in the auth buffer.
6504         (unix_do_iteration): Ditto.
6505         (unix_handle_watch): Updated for new do_authentication prototype.
6506
6507 2004-10-18  Colin Walters  <walters@verbum.org>
6508
6509         * bus/selinux.c (bus_selinux_enabled): Handle
6510         --disable-selinux case.
6511         
6512 2004-10-18  Colin Walters  <walters@verbum.org>
6513
6514         * bus/selinux.h: Add bus_selinux_enabled.
6515         
6516         * bus/selinux.c (bus_selinux_enabled): Implement it.
6517         
6518         * bus/config-parser.c (struct include): Add
6519         if_selinux_enabled member.
6520         (start_busconfig_child): Parse if_selinux_enabled
6521         attribute for include.
6522         (bus_config_parser_content): Handle it.
6523
6524         * bus/session.conf.in, bus/system.conf.in: Add
6525         inclusion of context mapping to default config files;
6526         conditional on SELinux being enabled.
6527         
6528         * doc/busconfig.dtd: Add to if_selinux_enabled to default DTD.
6529         
6530         * test/data/invalid-config-files/badselinux-1.conf, 
6531         test/data/invalid-config-files/badselinux-2.conf:
6532         Test files for bad syntax.
6533         
6534 2004-10-17  Colin Walters  <walters@verbum.org>
6535
6536         * dbus/dbus-memory.c (_dbus_initialize_malloc_debug, check_guards)
6537         (dbus_malloc, dbus_malloc0, dbus_realloc): Fix up printf
6538         format specifier mismatches.
6539
6540 2004-10-07  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6541
6542         * dbus/dbus-sysdeps.c (_dbus_file_get_contents): fix an incorrect
6543         format string.
6544
6545         * glib/dbus-dbus-gmain.c (dbus_g_bus_get): do not mangle NULL
6546         pointer (bug #1540, Leonardo Boiko).
6547
6548 2004-09-28  Jon Trowbridge  <trow@ximian.com>
6549
6550         * mono/BusDriver.cs: Changed BusDriver struct to remove
6551         the ServiceCreated and ServiceDeleted events and replace them
6552         with the new ServiceOwnerChanged event.
6553
6554         * mono/example/BusListener.cs: Added a new example program,
6555         which listens for and reports any ServiceOwnerChanged events
6556         on the bus driver.
6557
6558         * mono/example/Makefile.am (DESTDIR): Build changes for the
6559         new BusListener.cs example.
6560
6561 2004-09-27  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6562
6563         * bus/signals.c (bus_match_rule_parse): validate the components of
6564         match rules (bug #1439).
6565
6566         * dbus/dbus-bus.c (dbus_bus_add_match): add a missing OOM test.
6567
6568 2004-09-24  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6569
6570         * doc/dbus-specification.xml: document ServiceOwnerChanged
6571         signal.
6572         
6573         * bus/driver.c, bus/driver.h, bus/services.c: Use
6574         ServiceOwnerChanged signal instead of ServiceCreated and
6575         ServiceDeleted.
6576         
6577         * bus/dispatch.c: update testcase for the new signal.
6578
6579 2004-09-20  Jon Trowbridge  <trow@ximian.com>
6580
6581         Patch from Nat Friedman <nat@novell.com>
6582
6583         * mono/Makefile.am: A number of small build fixes to allow "make
6584         distcheck" to succeed.
6585
6586         * mono/example/Makefile.am: "make distcheck" fixes.
6587
6588         * mono/AssemblyInfo.cs.in: When signing the assembly, look for the
6589         key in @srcdir@.
6590
6591         * test/Makefile.am: "make distcheck" fixes.
6592
6593 2004-09-17  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6594
6595         * dbus/dbus-sysdeps.c (_dbus_user_at_console): fix memleak in OOM.
6596
6597         * doc/busconfig.dtd: update the DTD for the at_console attribute.
6598
6599         * bus/driver.c (bus_driver_handle_hello): correctly handle Hello
6600         messages after the first one (bug #1389).
6601         
6602         * bus/dispatch.c (check_double_hello_message): add a test case for
6603         the double hello message bug.
6604         (check_existent_service_activation): fix check of spawning error.
6605         
6606 2004-09-16  David Zeuthen  <david@fubar.dk>
6607
6608         * python/dbus_bindings.pyx.in: Add support for int64 and uint64
6609
6610 2004-09-12  David Zeuthen  <david@fubar.dk>
6611
6612         Patch from Kay Sievers <kay.sievers@vrfy.org>
6613
6614         * bus/bus.c (bus_context_new):
6615         * bus/bus.h:
6616         * bus/main.c (usage)
6617         (main):
6618         Add commandline option --nofork to override configuration file
6619         setting.
6620
6621 2004-09-09  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6622
6623         * dbus/dbus-*.h: remove the ; after DBUS_(BEGIN|END)_DECLS. Some C
6624         compilers don't like it (bug #974).
6625
6626 2004-09-04  Harald Fernengel  <harry@kdevelop.org>
6627
6628         * qt/connection.*: Applied patch by Jérôme Lodewyck
6629         <lodewyck@clipper.ens.fr> to integrate an existing
6630         connection into the Qt eventloop
6631
6632 2004-08-30  Jon Trowbridge  <trow@ximian.com>
6633
6634         * mono/BusDriver.cs: Added.  This is a class for interacting with
6635         the org.freedesktop.DBus service.
6636
6637         * mono/Message.cs: Added a mechanism to expose the message that is
6638         currently being dispatched via the static Message.Current
6639         property.  Added Message.Sender and Message.Destination
6640         properties.
6641
6642         * mono/Handler.cs: Expose the dispatched message via
6643         Message.Current when handling method calls.
6644
6645         * mono/Service.cs: Expose the dispatched message via
6646         Message.Current when handling signal emissions.
6647         
6648         * mono/Connection.cs: Bind dbus_bus_get_base_service via the
6649         Connection.BaseService property.
6650
6651 2004-08-28  Havoc Pennington  <hp@redhat.com>
6652
6653         * dbus/dbus-userdb.c (_dbus_is_console_user): remove unused variable
6654
6655         More fixes from Steve Grubb
6656         
6657         * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): fix fd leak
6658         (_dbus_listen_tcp_socket): fix fd leak
6659
6660         * dbus/dbus-spawn.c (read_pid, read_ints): move the "again:" for
6661         EINTR to a bit lower in the code
6662
6663 2004-08-26  Jon Trowbridge  <trow@ximian.com>
6664
6665         * bus/driver.c (bus_driver_handle_service_exists): Respond with
6666         TRUE if we are inquiring about the existence of the built-in
6667         org.freedesktop.DBus service.
6668
6669 2004-08-25  John Palmieri  <johnp@redhat.com>
6670         * bus/config-parser.c:
6671         (struct PolicyType): Add POLICY_CONSOLE
6672         (struct Element.d.policy): s/gid_or_uid/gid_uid_or_at_console
6673         (start_busconfig_child): Sets up console element when
6674         <policy at_console=""> is encountered in a policy file
6675         (append_rule_from_element): Convert console elements to console
6676         rules.
6677
6678         * bus/policy.c: 
6679         (bus_policy_create_client_policy): Add console rules to the client
6680         policy based on if the client is at the console
6681         (bus_policy_append_console_rule): New function for adding a
6682         console rule to a policy
6683         (bus_policy_merge): Handle console rule merging
6684
6685         * dbus/dbus-sysdeps.h: Added the DBUS_CONSOLE_DIR constant
6686         where we check for console user files
6687         
6688         * dbus/dbus-sysdeps.c:
6689         (_dbus_file_exists): New function which checks if the given
6690         file exists
6691         (_dbus_user_at_console): New function which does the system
6692         specific process of checking if the user is at the console
6693
6694         * dbus/dbus-userdb.c:
6695         (_dbus_is_console_user): New function converts a UID to user name
6696         and then calls the system specific _dbus_user_at_console to 
6697         see if the user is at the console and therefor a console user
6698
6699 2004-08-25  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6700
6701         * bus/config-parser.c (set_limit):
6702         * bus/dbus-daemon-1.1.in:
6703         * test/data/valid-config-files/many-rules.conf: set the
6704         max_match_rules_per_connection limt from the config file. 
6705
6706         * doc/busconfig.dtd: update the DTD.
6707
6708         * bus/driver.c: remove some unused variables.
6709
6710 2004-08-24  Mikael Hallendal  <micke@imendio.com>
6711
6712         * dbus/dbus-glib-lowlevel.h: Removed dbus_bus_get_with_g_main since 
6713         it's been replaced by dbus_g_bus_get
6714
6715 2004-08-23  Colin Walters  <walters@redhat.com>
6716
6717         Updated SELinux support from Matthew Rickard <mjricka@epoch.ncsc.mil>
6718
6719         * bus/selinux.h: Prototype bus_selinux_get_policy_root.
6720
6721         * bus/selinux.c: Create a thread for policy reload notification.
6722         (bus_selinux_get_policy_root): Implement.
6723
6724         * bus/config-parser.c (start_busconfig_child)
6725         (bus_config_parser_content): Support SELinux-root relative
6726         inclusion.
6727
6728         * configure.in <HAVE_SELINUX>: Add -lpthread.
6729         
6730         * bus/test-main.c (test_pre_hook, test_post_hook): New.
6731         (test_post_hook): Move memory checking into here.
6732         (test_pre_hook, test_post_hook): Move SELinux checks in
6733         here, but conditional on a DBUS_TEST_SELINUX environment
6734         variable.  Unfortunately we can't run the SELinux checks
6735         as a normal user, since they won't have any permissions
6736         for /selinux.  So this will have to be tested manually
6737         for now, until we have virtualization for most of
6738         libselinux.
6739         
6740 2004-08-23  Havoc Pennington  <hp@redhat.com>
6741
6742         * dbus/dbus-sysdeps.c (_dbus_change_identity): add setgroups() to
6743         drop supplementary groups, suggested by Steve Grubb
6744
6745 2004-08-20  Colin Walters  <walters@redhat.com>
6746
6747         * bus/config-parser.c (start_busconfig_child): Remove some unused
6748         variables.
6749         
6750         * bus/selinux.c (bus_selinux_id_table_insert): Avoid compiler
6751         warning.
6752
6753 2004-08-17  Joe Shaw  <joeshaw@novell.com>
6754
6755         * configure.in: If --enable-mono is passed in, if we can't find
6756         mono error out.
6757
6758         * mono/Makefile.am: Use /gacutil to install assemblies into the
6759         GAC and not /root.
6760
6761 2004-08-12  Havoc Pennington  <hp@redhat.com>
6762
6763         * NEWS: update for 0.22
6764
6765         * configure.in: release 0.22
6766
6767 2004-08-11  Colin Walters  <walters@redhat.com>
6768
6769         * tools/dbus-send.c (main, usage): Add --reply-timeout
6770         argument.
6771
6772 2004-08-10  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6773
6774         * bus/bus.c (process_config_first_time_only): get rid of an unused
6775         DBusError that was causing a memoy leak (bug #989).
6776
6777         * dbus/dbus-keyring.c, dbus/dbus-message.c:
6778         fix compilation on Solaris/Forte C (bug #974)
6779
6780         * bus/main.c (main): plug two minuscule memleaks.
6781
6782 2004-08-10  Havoc Pennington  <hp@redhat.com>
6783
6784         * doc/dbus-tutorial.xml: add some more info on GLib bindings
6785
6786 2004-08-09  Havoc Pennington  <hp@redhat.com>
6787
6788         * COPYING: switch to Academic Free License version 2.1 instead of
6789         2.0, to resolve complaints about patent termination clause.
6790
6791 2004-07-31  John (J5) Palmieri  <johnp@redhat.com>
6792
6793         * README: added documentation for the --enable-python 
6794         configure switch.
6795
6796 2004-07-31  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6797
6798         * bus/config-parser.c (bus_config_parser_new): fix an invalid
6799         _unref in the SELinux support.
6800
6801         * doc/busconfig.dtd: update DTD for SELinux support.
6802
6803         * bus/config-loader-libxml.c: fix error handler and parser
6804         initialisation/cleanup. OOM test now works with libxml2 HEAD.
6805
6806         * configure.in: remove the warning about libxml2.
6807
6808         * dbus/dbus-bus.c: silence doxygen warning.
6809
6810 2004-07-31  Colin Walters  <walters@redhat.com>
6811
6812         * configure.in: Move #error in SELinux check to its own line.
6813
6814 2004-07-31  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6815
6816         * dbus/dbus-internals.h (_DBUS_SET_OOM):
6817         * bus/utils.h (BUS_SET_OOM): use dbus_error_set_const instead of
6818         dbus_error_set.
6819
6820         * bus/dispatch.c (check_send_exit_to_service): fix the test case,
6821         broken by the change in the _SET_OOM macros.
6822
6823 2004-07-31  Colin Walters  <walters@redhat.com>
6824
6825         * bus/selinux.c <HAVE_SELINUX>: Include utils.h to get
6826         BUS_SET_OOM.
6827
6828 2004-07-31  Colin Walters  <walters@redhat.com>
6829
6830         * configure.in: Use AC_TRY_COMPILE instead of AC_EGREP_HEADER
6831         to correctly detect DBUS__ACQUIRE_SVC.  Also add an
6832         AC_MSG_CHECKING.
6833
6834 2004-07-24  Havoc Pennington  <hp@redhat.com>
6835
6836         SELinux support from Matthew Rickard <mjricka@epoch.ncsc.mil>
6837
6838         * bus/selinux.c, bus/selinux.h: new file encapsulating selinux
6839         functionality
6840
6841         * configure.in: add --enable-selinux
6842         
6843         * bus/policy.c (bus_policy_merge): add FIXME to a comment
6844
6845         * bus/main.c (main): initialize and shut down selinux
6846
6847         * bus/connection.c: store SELinux ID on each connection, to avoid 
6848         repeated getting of the string context and converting it into 
6849         an ID
6850
6851         * bus/bus.c (bus_context_get_policy): new accessor, though it
6852         isn't used
6853         (bus_context_check_security_policy): check whether the security
6854         context of sender connection can send to the security context of
6855         recipient connection
6856
6857         * bus/config-parser.c: add parsing for <selinux> and <associate>
6858         
6859         * dbus/dbus-transport.c (_dbus_transport_get_unix_fd): to
6860         implement dbus_connection_get_unix_fd()
6861
6862         * dbus/dbus-connection.c (dbus_connection_get_unix_fd): new
6863         function, used by the selinux stuff
6864         
6865 2004-07-29  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6866
6867         * bus/config-loader-libxml.c: complete the implementation of
6868         libxml backend for config file loader. Doesn't work with full OOM
6869         test yet. 
6870         
6871         * configure.in: change error when selecting libxml into a warning.
6872         
6873         * test/data/invalid-config-files: add two non-well-formed XML
6874         files. 
6875         
6876         * glib/Makefile.am: libdbus_gtool always uses expat, not libxml.
6877         
6878         * dbus/dbus-transport-unix.c (unix_handle_watch): do not
6879         disconnect in case of DBUS_WATCH_HANGUP, several do_reading() may
6880         be necessary to read all the buffer. (bug #894)
6881
6882         * bus/activation.c (bus_activation_activate_service): fix a
6883         potential assertion failure (bug #896). Small optimization in the
6884         case of auto-activation messages.
6885
6886         * dbus/dbus-message.c (verify_test_message, _dbus_message_test):
6887         add test case for byte-through-vararg bug (#901). patch by Kimmo
6888         Hämäläinen. 
6889
6890 2004-07-28  Anders Carlsson  <andersca@gnome.org>
6891
6892         * python/dbus.py:
6893         * python/dbus_bindings.pyx.in:
6894         Add dbus.init_gthreads (), allow emit_signal to pass
6895         arguments to the signal.
6896         
6897 2004-07-24  Havoc Pennington  <hp@redhat.com>
6898
6899         * AUTHORS: add some people, not really comprehensively, let me
6900         know if I missed you
6901
6902 2004-07-24  Havoc Pennington  <hp@redhat.com>
6903
6904         * Makefile.am (DIST_SUBDIRS): add DIST_SUBDIRS, problem solved by
6905         Owen
6906
6907         * test/Makefile.am (DIST_SUBDIRS): here also
6908
6909 2004-07-22  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6910
6911         * dbus/dbus-sysdeps.c (fill_user_info): fix inexistent label name,
6912         breaking build on Solaris, reported by Farhad Saberi on the ML.
6913
6914         * dbus/dbus-message.c (dbus_message_append_args_valist): fix the
6915         va_arg invocation to account for integer promotion in the case of
6916         DBUS_TYPE_BYTE (unsigned char is promoted to int). (bug #901)
6917
6918         * bus/services.c (bus_service_remove_owner): fix bug #902, use
6919         _dbus_list_get_first_link, not _dbus_list_get_first.
6920
6921         * dbus/dbus-bus.c (dbus_bus_service_exists): plug a memory leak.
6922
6923         * dbus/dbus-object-tree.c (free_subtree_recurse): always null
6924         handler functions so that the asserts in _dbus_object_subtree_unref
6925         do not fail.
6926
6927         * dbus/dbus-transport-unix.c (do_reading):
6928         _dbus_transport_queue_messages return value is of type
6929         dbus_bool_t, not DBusDispatchStatus.
6930         
6931 2004-07-19  David Zeuthen  <david@fubar.dk>
6932
6933         * dbus/dbus-protocol.h: Add DBUS_ERROR_UNIX_PROCESS_ID_UNKNOWN
6934
6935         * bus/dispatch.c:
6936         (check_get_connection_unix_user): Debug says GetProperty; but the
6937         method is called GetConnectionUnixUser
6938         (check_get_connection_unix_process_id): New function
6939         (bus_dispatch_test): Actually call check_get_connection_unix_user();
6940         also call check_get_connection_unix_process_id()
6941         
6942         * bus/driver.c:
6943         (bus_driver_handle_get_connection_unix_process_id): New function,
6944         handles GetConnectionUnixProcessID on the org.freedesktop.DBus
6945         interface
6946         
6947         * dbus/dbus-auth.c:
6948         (handle_server_data_external_mech): Set pid from the credentials
6949         obtained from the socket
6950         
6951         * dbus/dbus-connection.c:
6952         (dbus_connection_get_unix_process_id): New function
6953         
6954         * dbus/dbus-connection.h: 
6955         Add prototype for dbus_connection_get_unix_process_id
6956         
6957         * dbus/dbus-transport.c:
6958         (_dbus_transport_get_unix_process_id): New function
6959         
6960         * dbus/dbus-transport.h:
6961         Add prototype for _dbus_transport_get_unix_process_id
6962         
6963 2004-07-19  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6964
6965         * dbus/dbus-message.c: Message counter fix, patch by Christian
6966         Hammond <chipx86@gnupdate.org>
6967
6968 2004-07-18  Seth Nickell  <seth@gnome.org>
6969
6970         * python/dbus.py:
6971         * python/dbus_bindings.pyx.in:
6972         * python/tests/test-client.py:
6973
6974         Add dbus.ByteArray and dbus_bindings.ByteArray
6975         types so that byte streams can be passed back.
6976
6977         Give jdahlin the heaps of credit that are so
6978         rightfully his.
6979         
6980 2004-07-12  Seth Nickell  <seth@gnome.org>
6981
6982         * python/dbus.py:
6983
6984         Add message argument to the default object_method_handler
6985         function.
6986         
6987         * python/dbus_bindings.pyx.in:
6988
6989         Automatically return NIL when passed an empty list
6990         (we can't pass back a list since lists are typed
6991         and we don't have any idea what type the the client
6992         intended the list to be... :-( )
6993         
6994 2004-07-10  Seth Nickell  <seth@gnome.org>
6995
6996         * python/examples/Makefile.am:
6997
6998         Fix distcheck breakage caused by new examples.
6999
7000 2004-07-10  Seth Nickell  <seth@gnome.org>
7001
7002         * python/dbus.py:
7003
7004         Add "message" argument to service-side dbus.Object
7005         methods. This will break existing services written
7006         using the python bindings, but will allow extraction
7007         of all the message information (e.g. who its from).
7008
7009         Add improved "object oriented" signal handling/emission.
7010         
7011         * python/examples/example-service.py:
7012
7013         Nix this example.
7014         
7015         * python/examples/example-signal-emitter.py:
7016         * python/examples/example-signal-recipient.py:
7017
7018         Two new examples that show how to emit and receive
7019         signals using the new APIs.
7020         
7021         * python/examples/example-signals.py:
7022         * python/examples/gconf-proxy-service.py:
7023         * python/examples/gconf-proxy-service2.py:
7024
7025         Add "message" argument to service methods.
7026
7027 2004-06-28  Kay Sievers <kay.sievers@vrfy.org>
7028
7029         * bus/driver.c (bus_driver_handle_get_connection_unix_user)
7030         * dbus/bus.c (dbus_bus_get_unix_user)
7031         * doc/dbus-specification.xml: implement GetConnectionUnixUser
7032         method of org.freedesktop.DBus interface.
7033
7034         * bus/dispatch.c: test case
7035
7036 2004-06-23  John (J5) Palmieri  <johnp@redhat.com>
7037
7038         * python/Makefile.am: switched include directory from glib/ to dbus/
7039         since dbus-glib.h moved
7040  
7041 2004-06-22  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7042
7043         * configure.in: prevent building the gcj stuff and libxml loader
7044         since they are broken.
7045
7046 2004-06-20  Havoc Pennington  <hp@redhat.com>
7047
7048         * dbus/dbus-glib-error-enum.h: autogenerate the GError enum 
7049         codes from the dbus error names
7050         
7051         * glib/dbus-glib.h: move to subdir dbus/ since it's included 
7052         as dbus/dbus-glib.h and that breakage is now visible due to 
7053         including dbus/dbus-glib.h in dbus-glib-lowlevel.h
7054         
7055         * glib/dbus-glib.h: s/gproxy/g_proxy/
7056
7057         * dbus/dbus-shared.h: new header to hold stuff shared with
7058         binding APIs
7059         
7060         * dbus/dbus-protocol.h (DBUS_ERROR_*): move errors here rather
7061         than dbus-errors.h
7062
7063         * glib/dbus-glib.h (dbus_set_g_error): move to
7064         dbus-glib-lowlevel.h
7065
7066         * glib/dbus-glib.h: remove dbus/dbus.h from here; change a bunch
7067         of stuff to enable this
7068
7069         * dbus/dbus-glib-lowlevel.h: put dbus/dbus.h here
7070
7071         * a bunch of other changes with the same basic "separate glib 
7072         bindings from dbus.h" theme
7073         
7074 2004-06-10  Owen Fraser-Green  <owen@discobabe.net>
7075
7076         * dbus-sharp.pc.in: Removed glib-sharp inclusion in Libs.
7077
7078         * python/examples/Makefile.am: Fixed typo in EXTRA_DIST.
7079
7080 2004-06-09  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7081
7082         * bus/driver.c, dbus/dbus-bus.c: use BOOLEAN instead of UINT32 for
7083         the reply value of the ServiceExists message.
7084
7085 2004-06-07  John (J5) Palmieri  <johnp@redhat.com>
7086
7087         * python/dbus_bindings.pyx.in: No longer need to parse path
7088         elements and pass them as arrays of strings.  The C API now
7089         accepts plain path strings.
7090         (_build_parsed_path): removed 
7091
7092 2004-06-07  Havoc Pennington  <hp@redhat.com>
7093
7094         * doc/TODO: remove auto-activation item since it's done; sort
7095         items by importance/milestone
7096
7097 2004-06-07  Havoc Pennington  <hp@redhat.com>
7098
7099         * dbus/dbus-message-builder.c (_dbus_message_data_load): append
7100         random signature when using REQUIRED_FIELDS (this hack won't work
7101         in the long term)
7102
7103         * dbus/dbus-message.c: change the signature to be a header field,
7104         instead of message->signature special-case string. Incremental
7105         step forward. Then we can fix up code to send the signature in the
7106         message, then fix up code to validate said signature, then fix up
7107         code to not put the typecodes inline, etc.
7108         (load_one_message): don't make up the signature after the fact
7109         (decode_header_data): require signature field for the known
7110         message types
7111
7112         * dbus/dbus-marshal.c (_dbus_marshal_string_len): new
7113
7114         * dbus/dbus-protocol.h: add DBUS_HEADER_FIELD_SIGNATURE
7115
7116 2004-06-07  Owen Fraser-Green  <owen@discobabe.net>
7117
7118         * mono/DBusType/ObjectPath.cs: Renamed PathName argument to Path
7119
7120         * mono/Handler.cs: Updated to follow new path argument for
7121         (un-)registering objects.
7122
7123         * mono/example/Makefile.am:
7124         * mono/Makefile.am:
7125         * configure.in: Bumped required version for mono and use new -pkg
7126         syntax for deps
7127
7128 2004-06-05  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7129
7130         * dbus/dbus-connection.h, dbus/dbus-connection.c: have object path
7131         registration functions take the path argument as char* instead of
7132         char**.
7133
7134         * dbus/dbus-marshal.h, dbus/dbus-marshal.c (_dbus_decompose_path):
7135         split off the path decompostion part of
7136         _dbus_demarshal_object_path. Some misc. fixes to silence compiler
7137         warnings. 
7138
7139         * glib/dbus-gobject.c, test/test-service.c: update accordingly.
7140         
7141 2004-06-02  Kristian Høgsberg  <krh@redhat.com>
7142  
7143         * dbus/dbus-auth.c: Rewrite auth protocol handling to use a state
7144         machine approach.  A state is implemented as a function that
7145         handles incoming events as specified for that state.
7146         
7147         * doc/dbus-specification.xml: Update auth protocol state machine
7148         specification to match implementation.  Remove some leftover
7149         base64 examples.
7150
7151 2004-06-02  Kristian Høgsberg  <krh@redhat.com>
7152
7153         * glib/dbus-gproxy.c, glib/dbus-gmain.c, dbus/dbus-string.c,
7154         dbus/dbus-object-tree.c, dbus/dbus-message.c: add comments to
7155         quiet doxygen.
7156
7157         * Doxyfile.in: remove deprecated options.
7158
7159         * dbus/dbus-message-handler.c, dbus/dbus-message-handler.h,
7160         glib/test-thread.h, glib/test-thread-client.c,
7161         glib/test-thread-server.c, glib/test-profile.c,
7162         glib/test-dbus-glib.c: remove these unused files.
7163
7164 2004-06-01  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7165
7166         * dbus/dbus-object-tree.c
7167         (_dbus_object_tree_dispatch_and_unlock): fix dispatch for
7168         non-fallback handlers (bug #684).
7169         (_dbus_object_subtree_new): initialize invoke_as_fallback field.
7170         (find_subtree_recurse): report wether the returned subtree is an
7171         exact match or a "fallback" match higher up in the tree.
7172         (object_tree_test_iteration): update test case.
7173
7174 2004-06-01  Seth Nickell  <seth@gnome.org>
7175
7176         * python/dbus_bindings.pyx.in:
7177         * python/tests/test-client.py:
7178
7179         Round off basic type support. Add dicts (yay!), and 
7180         remaining array types.
7181
7182         Make MessageIter more general so it works for dicts too.
7183
7184         Mark all loop variables as C integers.
7185         
7186 2004-05-31  Havoc Pennington  <hp@redhat.com>
7187
7188         * glib/dbus-gidl.c (method_info_add_arg): keep args sorted with
7189         "in" before "out"
7190
7191         * glib/dbus-gobject.c (dbus_type_to_string): move to dbus-gutils.c
7192
7193         * glib/dbus-glib-tool.c (main): set up to have a --self-test
7194         option that runs the tests, and start filling in some code
7195         including for starters just dumping the interfaces to stdout
7196
7197         * glib/Makefile.am (INCLUDES): define DBUS_LOCALEDIR
7198
7199         * test/data/valid-introspection-files/lots-of-types.xml: test of
7200         an example introspection file
7201
7202         * glib/dbus-gparser.c (parser_check_doctype): doctype should be
7203         "node" (I think...)
7204
7205 2004-05-31  Seth Nickell  <seth@gnome.org>
7206
7207         * python/dbus_bindings.pyx.in:
7208         * python/tests/test-client.py:
7209
7210         Test Suite: 1
7211         Python Bindings: 0
7212
7213         Fix string array memory trashing bug... oops...
7214
7215 2004-05-30  Seth Nickell  <seth@gnome.org>
7216
7217         * python/dbus.py:
7218
7219         Add a nicer-but-less-flexible alternate API for handling 
7220         calls to virtual objects in dbus.ObjectTree.
7221
7222         Screw up the argument order to the dbus.Object constructor
7223         for consistency with dbus.ObjectTree (and to make dbus_methods
7224         optional for future extension)
7225         
7226         * python/examples/Makefile.am:
7227         * python/examples/gconf-proxy-service.py:
7228         * python/examples/gconf-proxy-service2.py:
7229
7230         Alternate implementation of gconf-proxy-service using the
7231         nicer dbus.ObjectTree API.
7232         
7233         * python/examples/example-service.py:
7234         * python/tests/test-server.py
7235
7236         Reverse the argument order to deal with dbus.Object constructor
7237         changes.
7238         
7239 2004-05-30  Seth Nickell  <seth@gnome.org>
7240
7241         * python/examples/example-client.py:
7242         * python/examples/example-service.py:
7243
7244         Take it back. Lists seem to work but they're broken
7245         in the test suite. Make the base examples use
7246         lists (works fine).
7247
7248 2004-05-30  Seth Nickell  <seth@gnome.org>
7249
7250         * python/dbus_bindings.pyx.in:
7251         * python/tests/test-client.py:
7252
7253         Add some more tests and fix errors that crop up.
7254         Unfortunately, currently it seems like marshalling
7255         and unmarshalling of lists is completely broken :-(
7256
7257 2004-05-30  Seth Nickell  <seth@gnome.org>
7258
7259         * python/dbus_bindings.pyx.in:
7260
7261         Add support for ObjectPath type.
7262
7263         * python/dbus.py:
7264
7265         Refactor message handling code to a common function.
7266         
7267         * python/tests/test-client.py:
7268         * python/tests/test-server.py:
7269
7270         Add tests that check to make sure values of all types
7271         can be echoed from a service w/o mangling.
7272         
7273 2004-05-29  Seth Nickell  <seth@gnome.org>
7274
7275         * python/dbus.py:
7276
7277         Add ObjectTree class which allows implementation
7278         of trees of "virtual" objects. Basically the python
7279         wrapper for "register_fallback".
7280         
7281         * python/examples/Makefile.am
7282         * python/examples/gconf-proxy-client.py:
7283         * python/examples/gconf-proxy-service.py:
7284
7285         Implement a simple GConf proxy service that supports
7286         get/set on string and int GConf keys using the ObjectTree.
7287         
7288 2004-05-29  Seth Nickell  <seth@gnome.org>
7289
7290         * python/dbus.py:
7291         * python/examples/example-client.py:
7292         * python/examples/example-service.py:
7293         * python/examples/list-system-services.py:
7294
7295         Add SessionBus, SystemBus and ActivationBus classes
7296         so you don't need to know the special little BUS_TYPE
7297         flag.
7298         
7299 2004-05-29  Havoc Pennington  <hp@redhat.com>
7300
7301         * bus/config-parser.c (process_test_valid_subdir): temporarily
7302         stop testing config parser OOM handling, since expat has issues
7303         http://freedesktop.org/pipermail/dbus/2004-May/001153.html
7304
7305         * bus/dbus-daemon-1.1.in: change requested_reply to
7306         send_requested_reply/receive_requested_reply so we can send the
7307         replies, not just receive them.
7308
7309         * bus/config-parser.c: parse the new
7310         send_requested_reply/receive_requested_reply
7311
7312         * bus/policy.c (bus_client_policy_check_can_send): add
7313         requested_reply argument and use it
7314
7315         * bus/bus.c (bus_context_check_security_policy): pass through
7316         requested_reply status to message send check
7317
7318         * bus/system.conf.in: adapt to requested_reply change
7319         
7320 2004-05-28  Havoc Pennington  <hp@redhat.com>
7321
7322         * test/glib/test-service-glib.c (main): remove unused variable
7323
7324         * glib/dbus-gidl.c (base_info_ref): fix a silly compiler warning
7325
7326         * dbus/dbus-auth.h (enum): remove AUTHENTICATED_WITH_UNUSED_BYTES
7327         from the enum, no longer in use.
7328
7329         * dbus/dbus-sysdeps.h: include config.h so DBUS_VA_COPY actually
7330         works right.
7331
7332         * dbus/dbus-message.c: add various _dbus_return_val_if_fail for
7333         whether error_name passed in is a valid error name.
7334
7335 2004-05-28  John (J5) Palmieri  <johnp@redhat.com>
7336
7337         * dbus/dbus-message.c (dbus_message_get_args): Added support for
7338         OBJECT_PATH and OBJECT_PATH_ARRAY
7339
7340 2004-05-28  Seth Nickell  <seth@gnome.org>
7341
7342         * python/examples/Makefile.am:
7343
7344         Forget to add Makefile.am. Do not pass go.
7345
7346 2004-05-28  Michael Meeks  <michael@ximian.com>
7347
7348         * glib/dbus-gvalue.c (dbus_gvalue_marshal, dbus_gvalue_demarshal): 
7349         fix no int64 case.
7350
7351         * dbus/dbus-string.c (_dbus_string_parse_basic_type): impl.
7352
7353         * dbus/dbus-message.c (_dbus_message_iter_get_basic_type),
7354         (_dbus_message_iter_get_basic_type_array): impl.
7355         drastically simplify ~all relevant _get methods to use these.
7356         (_dbus_message_iter_append_basic_array),
7357         (dbus_message_iter_append_basic): impl
7358         drastically simplify ~all relevant _append methods to use these.
7359
7360         * dbus/dbus-message-builder.c (parse_basic_type) 
7361         (parse_basic_array, lookup_basic_type): impl.
7362         (_dbus_message_data_load): prune scads of duplicate /
7363         cut & paste coding.
7364
7365         * dbus/dbus-marshal.c (_dbus_demarshal_basic_type_array) 
7366         (_dbus_demarshal_basic_type): implement,
7367         (demarshal_and_validate_len/arg): beef up debug.
7368         (_dbus_marshal_basic_type, _dbus_marshal_basic_type_array): impl.
7369
7370 2004-05-27  Seth Nickell  <seth@gnome.org>
7371
7372         * configure.in:
7373         * python/Makefile.am:
7374
7375         Include the example python apps in the tarball.
7376         
7377         * python/examples/list-system-services.py
7378
7379         Add a python new example that fetches the list of services
7380         from the system bus.
7381         
7382 2004-05-27  Seth Nickell  <seth@gnome.org>
7383
7384         * python/dbus.py:
7385         * python/dbus_bindings.pyx.in:
7386
7387         Fix failure to notify that a signal was not handled,
7388         resulted in hung functions.
7389         
7390 2004-05-25  Colin Walters  <walters@redhat.com>
7391
7392         * tools/dbus-monitor.c (main): Monitor all types of messages.
7393
7394 2004-05-23  Owen Fraser-Green  <owen@discobabe.net>
7395
7396         * mono/Handler.cs, mono/Service.cs: Added UnregisterObject method
7397         which unregisters the object path and disposes the handler.
7398
7399 2004-05-23  Kristian Høgsberg  <krh@redhat.com>
7400  
7401         Patch from Timo Teräs <ext-timo.teras@nokia.com> (#614):
7402          
7403         * dbus/dbus-message.c (dbus_message_iter_get_args_valist): Swap
7404         operands to && so we call dbus_message_iter_next () for the last
7405         argument also.
7406
7407 2004-05-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7408
7409         * dbus/dbus-object-tree.c
7410         (_dbus_object_tree_list_registered_unlock, lookup_subtree): return
7411         children even if the requested path isn't registered.
7412         (object_tree_test_iteration): test object_tree_list_registered.
7413
7414         * configure.in: undefine HAVE_ABSTRACT_SOCKETS instead of defining
7415         it to 0.
7416         
7417 2004-05-20  Kristian Høgsberg  <krh@redhat.com>
7418
7419         * doc/TODO: Remove resolved items.
7420
7421         * bus/expirelist.h (struct BusExpireList): remove unused n_items
7422         field.
7423         
7424         * bus/connection.c (bus_connections_expect_reply): Enforce the
7425         per-connection limit on pending replies.
7426         
7427         Patch from Jon Trowbridge <trow@ximian.com>:
7428  
7429         * bus/main.c (setup_reload_pipe): Added.  Creates a pipe and sets
7430         up a watch that triggers a config reload when one end of the pipe
7431         becomes readable.
7432         (signal_handler): Instead of doing the config reload in our SIGHUP
7433         handler, just write to the reload pipe and let the associated
7434         watch handle the reload when control returns to the main loop.
7435  
7436         * bus/driver.c (bus_driver_handle_reload_config): Added.
7437         Implements a ReloadConfig method for requesting a configuration
7438         file reload via the bus driver.
7439  
7440 2004-05-19  Owen Fraser-Green  <owen@discobabe.net>
7441
7442         * HACKING: Updated release instructions concerning the wiki page.
7443
7444 2004-05-18  Kristian Høgsberg  <krh@redhat.com>
7445
7446         * dbus/dbus-auth.c (client_try_next_mechanism): Remove logic to
7447         filter against auth->allowed_mechs; we only add allowed mechs in
7448         record_mechanisms().
7449  
7450         * dbus/dbus-auth-script.c (_dbus_auth_script_run): Add an
7451         ALLOWED_MECHS to auth-script format so we can set the list of
7452         allowed mechanisms.
7453  
7454         * data/auth/client-out-of-mechanisms.auth-script: New test to
7455         check client disconnects when it is out of mechanisms to try.
7456  
7457         * dbus/dbus-auth.c (process_command): Remove check for lines
7458         longer that 1 MB; we only buffer up maximum 16 kB.
7459  
7460         * dbus/dbus-transport.c, dbus/dbus-transport-unix.c,
7461         dbus/dbus-auth-script.c, dbus/dbus-auth.c, dbus/dbus-auth.h:
7462         Remove auth state AUTHENTICATED_WITH_UNUSED_BYTES, instead always
7463         assume there might be unused bytes.
7464  
7465         * dbus/dbus-auth.c (_dbus_auth_do_work): Remove check for
7466         client-out-of-mechs, it is handled in process_reject(). Move check
7467         for max failures to send_rejected(), as it's a server-only thing.
7468
7469         * dbus/dbus-auth.c: Factor out protocol reply code into functions
7470         send_auth(), send_data(), send_rejected(), send_error(),
7471         send_ok(), send_begin() and send_cancel().
7472
7473 2004-05-17  Kristian Høgsberg  <krh@redhat.com>
7474
7475         Remove base64 encoding, replace with hex encoding. Original patch
7476         from trow@ximian.com, added error handling.
7477
7478         * dbus/dbus-string.c (_dbus_string_base64_encode)
7479         (_dbus_string_base64_decode): Remove.
7480         (_dbus_string_hex_decode): Add end_return argument so we can
7481         distinguish between OOM and invalid hex encoding.
7482         (_dbus_string_test): Remove base64 tests and add test case for
7483         invalid hex.
7484
7485         * dbus/dbus-keyring.c, dbus/dbus-auth-script.c, dbus/dbus-auth.c:
7486         Replace base64 with hex.
7487
7488         * test/data/auth/invalid-hex-encoding.auth-script: New test case
7489         for invalid hex encoded data in auth protocol.
7490
7491 2004-05-17  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7492
7493         * dbus/dbus-connection.c (check_for_reply_unlocked): plug a memory
7494         leak.
7495
7496 2004-05-15  Owen Fraser-Green  <owen@discobabe.net>
7497
7498         * mono/dbus-sharp.dll.config.in: Added for GAC
7499         * mono/dbus-sharp.snk: Added for GAC
7500         * mono/Assembly.cs.in: Added for GAC
7501         * mono/Makefile.am: Changes for GAC installation        
7502         * configure.in: Added refs for dbus-sharp.dll.config.in and
7503         Assembly.cs.in. More fixes for mono testing
7504         * mono/example/Makefile.am: Changed var to CSC
7505         * Makefile.am: Changed flag name to DBUS_USE_CSC
7506
7507 2004-05-15  Owen Fraser-Green  <owen@discobabe.net>
7508
7509         * mono/Makefile.am: Added SUBDIRS for docs. Changed SUBDIRS order
7510         * mono/doc/*: Added documentation framework
7511         * configure.in: Added monodoc check
7512         * README: Added description of mono configure flags
7513
7514 2004-05-11  John (J5) Palmieri  <johnp@redhat.com>:
7515
7516         * doc/dbus-specification.xml: Added a "Required" column to the 
7517         header fields table and changed the "zero or more" verbage in
7518         the above paragraph to read "The header must contain the required 
7519         named header fields and zero or more of the optional named header 
7520         fields".
7521         * test/data/invalid-messages/*.message: Added the required PATH 
7522         named header field to the tests so that they don't fail on 
7523         'Missing path field'
7524
7525 2004-05-07  John (J5) Palmieri  <johnp@redhat.com>
7526
7527         * python/dbus-bindings.pyx.in: Stopped the bindings from trashing
7528         the stack by implicitly defining variable and parameter types and
7529         removing the hack of defining C pointers as python objects and later
7530         casting them.
7531
7532 2004-05-02  Owen Fraser-Green  <owen@discobabe.net>
7533
7534         * mono/Makefile.am: Removed test-dbus-sharp.exe from all target
7535
7536 2004-05-01  Owen Fraser-Green  <owen@discobabe.net>
7537
7538         * mono/DBusType/Dict.cs: Handle empty dicts
7539         * mono/DBusType/Array.cs: Handle empty arrays
7540         * mono/Arguments.cs: Handle empty arguments
7541
7542 2004-04-30  Owen Fraser-Green  <owen@discobabe.net>
7543
7544         * dbus-sharp.pc.in: Modified to include include Libs and Requires
7545         field
7546
7547 2004-04-25  Kristian Høgsberg  <krh@redhat.com>
7548
7549         * test/data/valid-messages/standard-*.message: Update message
7550         test scripts to new header field names.
7551
7552 2004-04-22  John (J5) Palmieri  <johnp@redhat.com>
7553
7554         * test/break-loader.c (randomly_do_n_things): tracked down buffer
7555         overflow to times_we_did_each_thing array which would chop off the
7556         first character of the failure_dir string. Increased the size of
7557         the array to 7 to reflect the number of random mutation functions
7558         we have.
7559
7560 2004-04-21  Kristian Høgsberg  <krh@redhat.com>
7561
7562         * dbus/dbus-server-unix.c (unix_finalize): Don't unref
7563         unix_server->watch here, it is unreffed in disconnect.
7564         (_dbus_server_new_for_tcp_socket): convert NULL host to
7565         "localhost" here so we don't append NULL to address.
7566         
7567         * dbus/dbus-server.c (_dbus_server_test): Add test case for
7568         various addresses, including tcp with no explicit host.
7569
7570 2004-04-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7571
7572         * dbus/dbus-message.c (decode_header_data, decode_string_field):
7573         fix incorrect setting of .name_offset in the HeaderField (it was
7574         off by two bytes, positioned right after the name and typecode)
7575
7576         * bus/bus.c (bus_context_new, bus_context_unref): test before
7577         calling dbus_server_free_data_slot and _dbus_user_database_unref
7578         in case of an error.
7579
7580         * tools/Makefile.am: add $(DBUS_GLIB_TOOL_LIBS), xml libs needed
7581         by libdbus-gtool.
7582
7583 2004-04-19  Kristian Høgsberg  <krh@redhat.com>
7584
7585         * dbus/dbus-transport-unix.c (unix_do_iteration): Rewrite to use
7586         _dbus_poll() instead of select().
7587
7588 2004-04-15  Jon Trowbridge  <trow@ximian.com>
7589
7590         * bus/main.c (signal_handler): Reload the configuration files
7591         on SIGHUP.
7592         (main): Set up our SIGHUP handler.
7593
7594         * bus/bus.c (struct BusContext): Store the config file, user and
7595         fork flag in the BusContext.
7596         (process_config_first_time_only): Added.  Contains the code
7597         (previously in bus_context_new) for setting up the BusContext from
7598         the BusConfigParser that should only be run the first time the
7599         config files are read.
7600         (process_config_every_time): Added.  Contains the code (previously
7601         in bus_context_new) for setting up the BusContext from the
7602         BusConfigParser that should be run every time the config files are
7603         read.
7604         (load_config): Added.  Builds a BusConfigParser from the config
7605         files and passes the resulting structure off to
7606         process_config_first_time_only (assuming this is the first time)
7607         and process_config_every_time.
7608         (bus_context_new): All of the config-related code has been moved
7609         to process_config_first_time_only and process_config_every_time.
7610         Now this function just does the non-config-related initializations
7611         and calls load_config.
7612         (bus_context_reload_config): Added.
7613
7614 2004-04-15  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7615
7616         * bus/driver.c (bus_driver_handle_get_service_owner):
7617         implement a GetServiceOwner method.
7618         * doc/dbus-specification.xml: document it.
7619         * dbus/dbus-errors.h: add a 'ServiceHasNoOwner' error.
7620         
7621         * glib/dbus-gproxy.c (dbus_gproxy_new_for_service_owner):
7622         implement, using the bus GetServiceOwner method.
7623
7624         * test/glib/test-dbus-glib.c:
7625         use dbus_gproxy_new_for_service_owner so that we can receive the
7626         signal. 
7627
7628 2004-04-15  John (J5) Palmieri  <johnp@redhat.com>
7629
7630         * dbus/dbus-internals.c, dbus/dbus-message-builder.c,
7631         dbus/dbus-message.c, dbus/dbus-protocol.h
7632         (DBUS_HEADER_FIELD_SERVICE): renamed DBUS_HEADER_FIELD_DESTINATION
7633
7634         * dbus/dbus-internals.c, dbus/dbus-message-builder.c,
7635         dbus/dbus-message.c, dbus/dbus-protocol.h
7636         (DBUS_HEADER_FIELD_SENDER_SERVICE): renamed DBUS_HEADER_FIELD_SENDER
7637
7638         * dbus/dbus-internals.c (_dbus_header_field_to_string):
7639         DBUS_HEADER_FIELD_DESTINATION resolves to "destination"
7640         DBUS_HEADER_FIELD_SENDER resolves to "sender"
7641
7642         * doc/dbus-specification.xml (Header Fields Table):
7643         s/SERVICE/DESTINATION
7644         s/SENDER_SERVICE/SENDER
7645
7646
7647 2004-04-14  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7648
7649         * test/glib/test-dbus-glib.c (timed_exit): fail the test after
7650         a few seconds.
7651
7652 2004-04-13  Michael Meeks  <michael@ximian.com>
7653
7654         * glib/dbus-gobject.c (handle_introspect): split out
7655         (introspect_properties): this.
7656         (handle_introspect): implement this.
7657
7658         * test/glib/Makefile.am: use the absolute path so the bus
7659         daemon's chdir ("/") doesn't kill us dead.
7660
7661         * configure.in: subst ABSOLUTE_TOP_BUILDDIR
7662
7663 2004-04-12  Jon Trowbridge  <trow@ximian.com>
7664
7665         * bus/config-parser.c (struct BusConfigParser): Added
7666         included_files field.
7667         (seen_include): Added.  Checks whether or not a file has already
7668         been included by any parent BusConfigParser.
7669         (bus_config_parser_new): Copy the parent's included_files.
7670         (include_file): Track which files have been included, and fail on
7671         circular inclusions.
7672         (process_test_valid_subdir): Changed printf to report if we are
7673         testing valid or invalid conf files.
7674         (all_are_equiv): Changed printf to be a bit clearer about
7675         what we are actually doing.
7676         (bus_config_parser_test): Test invalid configuration files.
7677
7678 2004-04-09  Jon Trowbridge  <trow@ximian.com>
7679
7680         * bus/config-parser.c (bus_config_parser_new): Added a 'parent'
7681         argument.  If non-null, the newly-constructed BusConfigParser will
7682         be initialized with the parent's BusLimits instead of the default
7683         values.
7684         (include_file): When including a config file, pass in
7685         the current parser as the parent and then copy the BusLimits
7686         from the included BusConfigParser pack to the current parser.
7687         (process_test_valid_subdir): Renamed from process_test_subdir.
7688         (process_test_equiv_subdir): Added.  Walks through a directory,
7689         descending into each subdirectory and loading the config files
7690         it finds there.  If any subdirectory contains two config files
7691         that don't produce identical BusConfigParser structs, fail.
7692         For now, the BusConfigParser's BusPolicies are not compared.
7693         (bus_config_parser_test): Call both process_test_valid_subdir and
7694         process_test_equiv_subdir.
7695
7696         * bus/config-loader-libxml.c (bus_config_load): Take a parent
7697         argument and pass it along to the call to bus_config_parser_new.
7698         Also made a few small changes to allow this code to compile.
7699
7700         * bus/config-loader-expat.c (bus_config_load): Take a parent
7701         argument and pass it along to the call to bus_config_parser_new.
7702
7703         * bus/bus.c (bus_context_new): Load the config file
7704         with a NULL parent argument.
7705
7706 2004-03-29  Michael Meeks  <michael@ximian.com>
7707
7708         * glib/dbus-gobject.c (introspect_properties): split
7709         out, fix mangled 'while' flow control.
7710         (introspect_signals): implement.
7711         (handle_introspect): update.
7712
7713 2004-03-29  Michael Meeks  <michael@ximian.com>
7714
7715         * glib/dbus-gobject.c (set_object_property): split out / 
7716         re-work, use the property type, and not the message type(!)
7717         (get_object_property): ditto.
7718
7719         * glib/dbus-gvalue.c (dbus_gvalue_demarshal),
7720         (dbus_gvalue_marshal): make this code re-usable, needed
7721         for signals too, also on both proxy and server side.
7722         Re-write for more efficiency / readability.
7723
7724 2004-03-29  Michael Meeks  <michael@ximian.com>
7725
7726         * dbus/dbus-message.c
7727         (dbus_message_new_error_printf): impl.
7728
7729         * dbus/dbus-connection.c
7730         (dbus_connection_unregister_object_path): fix warning.
7731
7732         * configure.in: fix no-mono-installed situation.
7733
7734 2004-03-27  Havoc Pennington  <hp@redhat.com>
7735
7736         Patch from Timo Teräs:
7737         
7738         * tools/dbus-send.c (main): if --print-reply, assume type is
7739         method call; support boolean type args
7740         
7741         * dbus/dbus-connection.c (dbus_connection_send_with_reply): fix a
7742         bunch of memleak and logic bugs
7743         
7744 2004-03-23  Owen Fraser-Green  <owen@discobabe.net>
7745
7746         * mono/Arguments.cs:
7747         * mono/Introspector.cs:
7748         * mono/Handler.cs:
7749         * mono/InterfaceProxy.cs:
7750         * mono/Message.cs
7751         * mono/ProxyBuilder.cs:
7752         * mono/Service.cs:
7753         Added InterfaceProxy class to avoid building proxies for every
7754         object.
7755
7756         * dbus-message.h:
7757         * dbus-message.c (dbus_message_append_args_valist)
7758         (dbus_message_iter_get_object_path)
7759         (dbus_message_iter_get_object_path_array)
7760         (dbus_message_iter_append_object_path)
7761         (dbus_message_iter_append_object_path_array):
7762         Added object_path iter functions to handle OBJECT_PATH arguments
7763         
7764 2004-03-23  Owen Fraser-Green  <owen@discobabe.net>
7765
7766         First checkin of mono bindings.
7767         * configure.in:
7768         * Makefile.am:
7769         Build stuff for the bindings
7770         * dbus-sharp.pc.in: Added for pkgconfig
7771         
7772 2004-03-21  Havoc Pennington  <hp@redhat.com>
7773
7774         * test/test-service.c (main): remove debug spew
7775
7776 2004-03-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7777
7778         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): accept empty
7779         arrays
7780
7781         * dbus/dbus-message.h, bus/dbus-message.c (dbus_message_iter_init)
7782         (dbus_message_iter_init_array_iterator)
7783         (dbus_message_iter_init_dict_iterator): return a dbus_bool_t to
7784         indicate whether the iterator is empty
7785
7786         * dbus/dbus-pending-call.c, dbus/dbus-server.c: silence compiler
7787         warnings
7788
7789 2004-03-19  Havoc Pennington  <hp@redhat.com>
7790
7791         * NEWS: 0.21 updates
7792
7793         * configure.in: 0.21
7794
7795         * doc/Makefile.am: add all XMLTO usage to DBUS_XML_DOCS_ENABLED
7796         
7797         * python/Makefile.am: change to avoid dist of dbus_bindings.c so
7798         you don't need pyrex to make dist
7799
7800         * qt/Makefile.am (libdbus_qt_1_la_SOURCES): add integrator.h to
7801         sources; run moc
7802         
7803 2004-03-18  Richard Hult  <richard@imendio.com>
7804
7805         * dbus/dbus-message.c (dbus_message_get_auto_activation) 
7806         (dbus_message_set_auto_activation): Add doxygen docs.
7807
7808 2004-03-16  Richard Hult  <richard@imendio.com>
7809
7810         * bus/activation.c: (bus_activation_service_created),
7811         (bus_activation_send_pending_auto_activation_messages),
7812         (bus_activation_activate_service):
7813         * bus/activation.h:
7814         * bus/dispatch.c: (bus_dispatch),
7815         (check_nonexistent_service_auto_activation),
7816         (check_service_auto_activated),
7817         (check_segfault_service_auto_activation),
7818         (check_existent_service_auto_activation), (bus_dispatch_test):
7819         * bus/driver.c: (bus_driver_handle_activate_service):
7820         * bus/services.c: (bus_registry_acquire_service):
7821         * dbus/dbus-message.c: (dbus_message_set_auto_activation),
7822         (dbus_message_get_auto_activation):
7823         * dbus/dbus-message.h:
7824         * dbus/dbus-protocol.h: Implement auto-activation.
7825         
7826         * doc/dbus-specification.xml: Add auto-activation to the spec.
7827
7828 2004-03-12  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7829
7830         * dbus/dbus-marshal.c (_dbus_marshal_get_arg_end_pos):
7831         fix a bug with CUSTOM types.
7832
7833         * dbus/dbus-message.c (message_iter_test, _dbus_message_test): add
7834         a unit test for this bug (used to fail).
7835
7836 2004-03-12  Mikael Hallendal  <micke@imendio.com>
7837
7838         * bus/activation.c:
7839         (babysitter_watch_callback): notify all pending activations waiting for
7840           the same exec that the activation failed.
7841         (bus_activation_activate_service): shortcut the activation if we 
7842           already waiting for the same executable to start up.
7843
7844 2004-03-12  Mikael Hallendal  <micke@imendio.com>
7845
7846         * bus/activation.c: 
7847         - Added service file reloading. 
7848           Each service files directory is kept in an hash table in 
7849           BusActivation and each BusActivationEntry knows what .service-file it
7850           was read from. So when you try to activate a service the bus will 
7851           check if it's been updated, removed or if new .service-files has 
7852           been installed.
7853         - Test code at the bottom for the service file reloading.
7854         * bus/test-main.c: (main):
7855         * bus/test.h:
7856         - added service reloading test.
7857         * dbus/dbus-sysdeps.c: 
7858         * dbus/dbus-sysdeps.h: (_dbus_delete_directory): Added.
7859
7860 2004-03-08  Michael Meeks  <michael@ximian.com>
7861
7862         * dbus/dbus-connection.c (_dbus_connection_block_for_reply): 
7863         bail immediately if disconnected, to avoid busy loop.
7864
7865         * dbus/dbus-message.c (dbus_message_iter_get_args_valist):
7866         cleanup cut/paste/inefficiency.
7867
7868 2004-03-01  David Zeuthen  <david@fubar.dk>
7869
7870         * dbus/dbus-string.c (_dbus_string_append_printf_valist): Fix a
7871         bug where args were used twice. This bug resulted in a segfault
7872         on a Debian/PPC system when starting the messagebus daemon. Include
7873         dbus-sysdeps.h for DBUS_VA_COPY
7874
7875         * dbus/dbus-sysdeps.h: Define DBUS_VA_COPY if neccessary. From GLib
7876
7877         * configure.in: Check for va_copy; define DBUS_VA_COPY to the
7878         appropriate va_copy implementation. From GLib
7879         
7880 2004-02-24  Joe Shaw  <joe@ximian.com>
7881
7882         * bus/services.c (bus_registry_acquire_service): We need to pass
7883         in the service name to dbus_set_error() to prevent a crash.
7884
7885 2003-12-26  Anders Carlsson  <andersca@gnome.org>
7886
7887         * AUTHORS: Reveal my True identity.
7888
7889 2003-12-17  Mikael Hallendal  <micke@imendio.com>
7890
7891         * dbus/dbus-message.c: (dbus_message_append_args_valist): 
7892         - Added case for DBUS_TYPE_BYTE, patch from Johan Hedberg.
7893
7894 2003-12-13  Mikael Hallendal  <micke@imendio.com>
7895
7896         * doc/TODO: Added not about better error check of configuration files.
7897
7898 2003-12-02  Richard Hult  <richard@imendio.com>
7899
7900         * Update AFL version to 2.0 throughout the source files to reflect
7901         the update that was done a while ago.
7902
7903 2003-12-02  Richard Hult  <richard@imendio.com>
7904
7905         * dbus/dbus-message.c (dbus_message_iter_append_dict): Set
7906         wrote_dict_key to FALSE on the iter that the dict is appended to,
7907         just like when appending other types. Fixes a bug where a dict
7908         couldn't be put inside a dict.
7909         (dbus_message_iter_append_dict_key): Fix typo in warning message.
7910         (message_iter_test, _dbus_message_test): Add test case for dict
7911         inside dict.
7912
7913 2003-12-01  David Zeuthen  <david@fubar.dk>
7914
7915         * python/dbus.py: Add the actual message when calling the reciever
7916         of a signal such that parameters can be inspected. Add the method
7917         remove_signal_receiver
7918         
7919 2003-11-26  Mikael Hallendal  <micke@imendio.com>
7920
7921         * bus/*.[ch]:
7922         * dbus/*.[ch]:
7923         * glib/*.[ch]: Made ref functions return the pointer
7924
7925 2003-11-25  Zack Rusin  <zack@kde.org>
7926
7927         * qt/integrator.h, qt/integrator.cpp: Adding handling of DBusServer,
7928
7929         * qt/server.h, qt/server.cpp, qt/Makefile.am: Adding DBusServer 
7930         wrappers,
7931
7932         * qt/connection.h, qt/connection.cpp: Adjusting to changes in 
7933         the Integrator and to better fit with the server,
7934
7935 2003-11-24  Zack Rusin  <zack@kde.org>
7936
7937         * qt/connection.h, qt/connection.cpp: removing initDbus method since
7938         the integrator handles it now
7939
7940         * qt/integrator.h, qt/integrator.cpp: reworking handling of timeouts,
7941         since QTimer wasn't really meant to be used the way DBusTimeout is
7942
7943 2003-11-24  Zack Rusin  <zack@kde.org>
7944
7945         * qt/integrator.h, qt/integrator.cpp, Makefile.am: Adding 
7946         Integrator class which integrates D-BUS with the Qt event loop,
7947
7948         * qt/connection.h, qt/connection.cpp: Move all the code which
7949         was dealing with D-BUS integration to the Integrator class,
7950         and start using Integrator,
7951
7952 2003-11-23  Zack Rusin  <zack@kde.org>
7953
7954         * qt/connection.h, qt/connection.cpp: Adding the DBusConnection 
7955         wrapper
7956
7957         * qt/message.h, qt/message.cpp: updating to the current D-BUS api,
7958         switching namespaces to DBusQt, reworking the class,
7959
7960         * Makefile.cvs: switching dependencies so that it matches KDE 
7961         schematics,
7962         
7963         * qt/Makefile.am: adding connection.{h,cpp} and message.{h,cpp} to 
7964         the library
7965
7966 2003-11-19  Havoc Pennington  <hp@redhat.com>
7967
7968         * NEWS: update
7969
7970         * configure.in: bump version to 0.20
7971
7972         * configure.in (have_qt): add yet another place to look for qt
7973         (someone hand trolltech a .pc file...)
7974
7975 2003-11-01  Havoc Pennington  <hp@redhat.com>
7976
7977         * doc/dbus-specification.xml: add state machine docs on the auth
7978         protocol; just a first draft, I'm sure it's wrong.      
7979
7980 2003-10-28  David Zeuthen  <david@fubar.dk>
7981
7982         * python/dbus_bindings.pyx.in: add get_dict to handle dictionaries
7983         return types. Fixup TYPE_* to reflect changes in dbus/dbus-protocol.h
7984         
7985 2003-10-28  Havoc Pennington  <hp@redhat.com>
7986
7987         * dbus/dbus-message.c (get_next_field): delete unused function
7988
7989 2003-10-28  Havoc Pennington  <hp@redhat.com>
7990
7991         * bus/expirelist.c (do_expiration_with_current_time): detect
7992         failure of the expire_func due to OOM
7993
7994         * bus/connection.c (bus_pending_reply_expired): return FALSE on OOM
7995
7996         * bus/dispatch.c (check_send_exit_to_service): fix to handle the
7997         NoReply error that's now created by the bus when the service exits
7998
7999 2003-10-28  Havoc Pennington  <hp@redhat.com>
8000
8001         * dbus/dbus-message.c (_dbus_message_test): enable and fix the
8002         tests for set_path, set_interface, set_member, etc.
8003
8004         * dbus/dbus-string.c (_dbus_string_insert_bytes): allow 0 bytes
8005
8006         * dbus/dbus-message.c (set_string_field): always just delete and
8007         re-append the field; accept NULL for deletion
8008         (re_align_fields_recurse): reimplement
8009         
8010 2003-10-26  Havoc Pennington  <hp@redhat.com>
8011
8012         * dbus/dbus-connection.c: fix docs to properly describe the
8013         disconnected message
8014         (_dbus_connection_notify_disconnected): remove this function; 
8015         we can't synchronously add the disconnected message, we have to 
8016         do it after we've queued any remaining real messages
8017         (_dbus_connection_get_dispatch_status_unlocked): queue the
8018         disconnect message only if the transport has finished queueing all
8019         its real messages and is disconnected.
8020         (dbus_connection_disconnect): update the dispatch status here
8021
8022 2003-10-22  Havoc Pennington  <hp@redhat.com>
8023
8024         * bus/bus.c (bus_context_check_security_policy): fix up assertion
8025
8026         * bus/connection.c (bus_transaction_send_from_driver): set the
8027         destination to the connection's base service
8028
8029 2003-10-20  Havoc Pennington  <hp@redhat.com>
8030
8031         hmm, make check is currently not passing.
8032         
8033         * doc/dbus-specification.xml: add requirement that custom type
8034         names follow the same rules as interface names.
8035
8036         * dbus/dbus-protocol.h: change some of the byte codes, to avoid
8037         duplication and allow 'c' to be 'custom'; dict is now 'm' for
8038         'map'
8039
8040         * doc/dbus-specification.xml: update type codes to match
8041         dbus-protocol.h, using the ASCII byte values. Rename type NAMED to
8042         CUSTOM. Add type OBJECT_PATH to the spec.
8043
8044 2003-10-17  Havoc Pennington  <hp@redhat.com>
8045
8046         * bus/driver.c (create_unique_client_name): use "." as separator
8047         in base service names instead of '-'
8048
8049         * dbus/dbus-string.c (_dbus_string_get_byte): allow getting nul
8050         byte at the end of the string
8051
8052         * dbus/dbus-internals.h (_DBUS_LIKELY, _DBUS_UNLIKELY): add
8053         optimization macros since string validation seems to be a slow
8054         point.
8055         
8056         * doc/dbus-specification.xml: restrict valid
8057         service/interface/member/error names. Add test suite code for the
8058         name validation.
8059
8060         * dbus/dbus-string.c: limit service/interface/member/error names 
8061         to [0-9][A-Z][a-z]_
8062
8063         * dbus/dbus-connection.c (dbus_connection_dispatch): add missing
8064         format arg to verbose spew
8065
8066         * glib/dbus-gproxy.c (dbus_gproxy_call_no_reply): if not out of
8067         memory, return instead of g_error
8068
8069         * test/test-service.c (path_message_func): support emitting a
8070         signal on request
8071
8072         * dbus/dbus-bus.c (init_connections_unlocked): only fill in
8073         activation bus type if DBUS_BUS_ACTIVATION was set; default to
8074         assuming the activation bus was the session bus so that services
8075         started manually will still register.
8076         (init_connections_unlocked): fix so that in OOM situation we get
8077         the same semantics when retrying the function
8078         
8079         * test/test-service.c (main): change to use path registration, to
8080         test those codepaths; register with DBUS_BUS_ACTIVATION rather
8081         than DBUS_BUS_SESSION
8082
8083 2003-10-16  Havoc Pennington  <hp@redhat.com>
8084
8085         * glib/dbus-gtest-main.c: bracket with #ifdef DBUS_BUILD_TESTS
8086
8087         * Makefile.am (GCOV_DIRS): remove "test", we don't care about test
8088         coverage of the tests
8089         (coverage-report.txt): don't move the .da and .bbg files around
8090
8091 2003-10-16  Havoc Pennington  <hp@redhat.com>
8092
8093         * bus/bus.c (struct BusContext): remove struct field I didn't mean
8094         to put there
8095
8096 2003-10-16  Havoc Pennington  <hp@redhat.com>
8097
8098         * bus/connection.c (bus_pending_reply_expired): either cancel or
8099         execute, not both
8100         (bus_connections_check_reply): use unlink, not remove_link, as we
8101         don't want to free the link; fixes double free mess
8102
8103         * dbus/dbus-pending-call.c (dbus_pending_call_block): fix in case
8104         where no reply was received
8105
8106         * dbus/dbus-connection.c (_dbus_pending_call_complete_and_unlock):
8107         fix a refcount leak
8108
8109         * bus/signals.c (match_rule_matches): add special cases for the
8110         bus driver, so you can match on sender/destination for it.
8111
8112         * dbus/dbus-sysdeps.c (_dbus_abort): print backtrace if
8113         DBUS_PRINT_BACKTRACE is set
8114
8115         * dbus/dbus-internals.c: add pid to assertion failure messages
8116
8117         * dbus/dbus-connection.c: add message type code to the debug spew
8118
8119         * glib/dbus-gproxy.c (gproxy_get_match_rule): match rules want
8120         sender=foo not service=foo
8121
8122         * dbus/dbus-bus.c (dbus_bus_get): if the activation bus is the
8123         session bus but DBUS_SESSION_BUS_ADDRESS isn't set, use 
8124         DBUS_ACTIVATION_ADDRESS instead
8125
8126         * bus/activation.c: set DBUS_SESSION_BUS_ADDRESS,
8127         DBUS_SYSTEM_BUS_ADDRESS if appropriate
8128
8129         * bus/bus.c (bus_context_new): handle OOM copying bus type into
8130         context struct
8131
8132         * dbus/dbus-message.c (dbus_message_iter_get_object_path): new function
8133         (dbus_message_iter_get_object_path_array): new function (half
8134         finished, disabled for the moment)
8135         
8136         * glib/dbus-gproxy.c (dbus_gproxy_end_call): properly handle
8137         DBUS_MESSAGE_TYPE_ERROR
8138
8139         * tools/dbus-launch.c (babysit): support DBUS_DEBUG_OUTPUT to
8140         avoid redirecting stderr to /dev/null
8141         (babysit): close stdin if not doing the "exit_with_session" thing
8142
8143         * dbus/dbus-sysdeps.c (_dbus_become_daemon): delete some leftover
8144         debug code; change DBUS_DEBUG_OUTPUT to only enable stderr, not
8145         stdout/stdin, so things don't get confused
8146         
8147         * bus/system.conf.in: fix to allow replies, I modified .conf
8148         instead of .conf.in again.
8149
8150 2003-10-14  David Zeuthen  <david@fubar.dk>
8151
8152         * python/dbus_bindings.pyx.in (MessageIter.get): fixed typo in
8153         argtype to arg_type when raising unknown arg type exception.
8154         Changed type list to reflect the changes in dbus-protocol.h so 
8155         the bindings actually work.
8156
8157 2003-10-14  Havoc Pennington  <hp@redhat.com>
8158
8159         * test/decode-gcov.c: support gcc 3.3 also, though gcc 3.3 seems
8160         to have a bug keeping it from outputting the .da files sometimes
8161         (string_get_string): don't append garbage nul bytes to the string.
8162
8163 2003-10-15  Seth Nickell  <seth@gnome.org>
8164
8165         * python/Makefile.am:
8166
8167         Include dbus_h_wrapper.h in the dist tarball.
8168
8169 2003-10-14  Havoc Pennington  <hp@redhat.com>
8170
8171         * bus/bus.c (bus_context_check_security_policy): revamp this to
8172         work more sanely with new policy-based requested reply setup
8173
8174         * bus/connection.c (bus_transaction_send_from_driver): set bus
8175         driver messages as no reply
8176
8177         * bus/policy.c (bus_client_policy_check_can_receive): handle a
8178         requested_reply attribute on allow/deny rules
8179
8180         * bus/system.conf: add <allow requested_reply="true"/>
8181
8182         * bus/driver.c (bus_driver_handle_message): fix check for replies
8183         sent to the bus driver, which was backward. How did this ever work
8184         at all though? I think I'm missing something.
8185
8186         * dbus/dbus-message.c (decode_header_data): require error and
8187         method return messages to have a reply serial field to be valid
8188         (_dbus_message_loader_queue_messages): break up this function;
8189         validate that reply serial and plain serial are nonzero; 
8190         clean up the OOM/error handling.
8191         (get_uint_field): don't return -1 from this
8192         (dbus_message_create_header): fix signed/unsigned bug
8193
8194         * bus/connection.c (bus_connections_expect_reply): save serial of
8195         the incoming message, not reply serial
8196
8197 2003-10-14  Havoc Pennington  <hp@redhat.com>
8198
8199         * bus/connection.c: implement pending reply tracking using
8200         BusExpireList
8201
8202         * bus/bus.c (bus_context_check_security_policy): verify that a
8203         reply is pending in order to allow a reply to be sent. Deny 
8204         messages of unknown type.
8205
8206         * bus/dbus-daemon-1.1.in: update to mention new resource limits
8207
8208         * bus/bus.c (bus_context_get_max_replies_per_connection): new
8209         (bus_context_get_reply_timeout): new
8210
8211 2003-10-13  Seth Nickell  <seth@gnome.org>
8212
8213         * python/Makefile.am:
8214
8215         Pass "make distcheck": remove a couple files from DIST_FILES
8216         that weren't included in the final version.
8217
8218 2003-10-12  Havoc Pennington  <hp@pobox.com>
8219
8220         Added test code that 1) starts an actual bus daemon and 2) uses
8221         DBusGProxy; fixed bugs that were revealed by the test. Lots 
8222         more testing possible, but this is the basic framework.
8223         
8224         * glib/dbus-gproxy.c (dbus_gproxy_manager_unregister): remove
8225         empty proxy lists from the proxy list hash
8226
8227         * dbus/dbus-message.c (dbus_message_iter_get_args_valist): add a
8228         couple of return_if_fail checks
8229
8230         * dbus/dbus-pending-call.c (_dbus_pending_call_new): use dbus_new0
8231         to allocate, so everything is cleared to NULL as it should be.
8232
8233         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): pass
8234         source as data to dbus_connection_set_timeout_functions() as the 
8235         timeout functions expected
8236
8237         * test/glib/run-test.sh: add a little script to start up a message
8238         bus and run tests using it
8239
8240         * tools/dbus-launch.1: updates
8241
8242         * tools/dbus-launch.c (main): add --config-file option
8243
8244         * tools/dbus-launch.c (main): remove confusing else if (runprog)
8245         that could never be reached.
8246
8247         * dbus/dbus-message.c (dbus_message_new_method_return) 
8248         (dbus_message_new_error, dbus_message_new_signal): set the
8249         no-reply-expected flag on all these. Redundant, but may
8250         as well be consistent.
8251
8252 2003-10-11  Havoc Pennington  <hp@pobox.com>
8253
8254         * test/decode-gcov.c (function_solve_graph): make broken block
8255         graph a nonfatal error since it seems to be broken. Need to debug
8256         this.
8257
8258         * dbus/dbus-marshal.c (_dbus_type_is_valid): new function since we
8259         can't just check type > INVALID < LAST anymore
8260
8261         * dbus/dbus-message.c (dbus_message_get_signature): new function
8262         (dbus_message_has_signature): new function
8263         (struct DBusMessage): add signature field (right now it isn't sent
8264         over the wire, just generated on the fly)
8265         (dbus_message_copy): copy the signature, and init strings to
8266         proper length to avoid some reallocs
8267         (dbus_message_iter_init_array_iterator): return void, since it
8268         can't fail
8269         (dbus_message_iter_init_dict_iterator): return void since it can't fail
8270         (_dbus_message_loader_queue_messages): add silly temporary hack to
8271         fill in message->signature on load
8272
8273         * dbus/dbus-protocol.h: change DBUS_TYPE_* values to be ASCII
8274         characters, so they are relatively human-readable.
8275
8276 2003-10-11  Havoc Pennington  <hp@pobox.com>
8277
8278         * dbus/dbus-message.c (_dbus_message_test): add more test
8279         coverage, but #if 0 for now since they uncover a bug 
8280         not fixed yet; I think in re_align_field_recurse()
8281         (re_align_field_recurse): add FIXME about broken assertion
8282
8283         * dbus/dbus-sysdeps.c (_dbus_sysdeps_test): add more test coverage
8284
8285         * bus/connection.c: share a couple code bits with expirelist.c
8286
8287         * bus/expirelist.h, bus/expirelist.c: implement a generic
8288         expire-items-after-N-seconds facility, was going to share between
8289         expiring connections and replies, decided not to use for expiring
8290         connections for now.
8291
8292         * COPYING: include AFL 2.0 (still need to change all the file headers)
8293
8294 2003-10-09  Havoc Pennington  <hp@redhat.com>
8295
8296         * configure.in: define DBUS_HAVE_GCC33_GCOV if we have
8297         gcc 3.3. Not that we do anything about it yet.
8298
8299         * bus/signals.c (bus_match_rule_parse): impose max length on the
8300         match rule text
8301
8302         * dbus/dbus-protocol.h: add DBUS_MAXIMUM_MATCH_RULE_LENGTH
8303
8304 2003-10-09  Havoc Pennington  <hp@redhat.com>
8305
8306         Make matching rules theoretically work (add parser).
8307         
8308         * bus/bus.c (bus_context_check_security_policy): fix up to handle
8309         the case where destination is explicitly specified as bus driver
8310         and someone else is eavesdropping.
8311         
8312         * bus/policy.c (bus_client_policy_check_can_receive): fix up
8313         definition of eavesdropping and assertion
8314
8315         * tools/dbus-send.c (main): use dbus_message_type_from_string
8316
8317         * bus/signals.c (bus_match_rule_parse): implement
8318
8319         * dbus/dbus-message.c (dbus_message_type_from_string): new
8320
8321         * dbus/dbus-errors.h (DBUS_ERROR_MATCH_RULE_INVALID): add
8322
8323 2003-10-02  Havoc Pennington  <hp@pobox.com>
8324
8325         * glib/dbus-gproxy.c (dbus_gproxy_call_no_reply): rename from
8326         dbus_gproxy_oneway_call
8327
8328         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main) 
8329         (dbus_server_setup_with_g_main): fix to allow calling them more
8330         than once on the same args
8331         (dbus_bus_get_with_g_main): new function
8332
8333 2003-10-02  Havoc Pennington  <hp@redhat.com>
8334
8335         * doc/dbus-tutorial.xml: write some stuff
8336
8337 2003-09-29  Havoc Pennington  <hp@pobox.com>
8338
8339         * configure.in: split checks for Doxygen from XML docs, check for
8340         xmlto
8341
8342         * doc/Makefile.am: XML-ify all the docs, and add a blank
8343         dbus-tutorial.xml
8344
8345 2003-09-29  Havoc Pennington  <hp@pobox.com>
8346
8347         * Merge dbus-object-names branch. To see the entire patch 
8348         do cvs diff -r DBUS_OBJECT_NAMES_BRANCHPOINT -r dbus-object-names,
8349         it's huuuuge though.
8350         To revert, I tagged DBUS_BEFORE_OBJECT_NAMES_MERGE.
8351         
8352 2003-09-28  Havoc Pennington  <hp@pobox.com>
8353
8354         * HACKING: update to reflect new server
8355
8356 2003-09-26  Seth Nickell  <seth@gnome.org>
8357
8358         * python/dbus.py:
8359         * python/examples/example-signals.py:
8360
8361         Start implementing some notions of signals. The API
8362         is really terrible, but they sort of work (with the
8363         exception of being able to filter by service, and to
8364         transmit signals *as* a particular service). Need to
8365         figure out how to make messages come from the service
8366         we registered :-(
8367         
8368         * python/dbus_bindings.pyx.in:
8369
8370         Removed duplicate message_handler callbacks.
8371         
8372 2003-09-25  Havoc Pennington  <hp@redhat.com>
8373
8374         * bus/session.conf.in: fix my mess
8375
8376 2003-09-25  Havoc Pennington  <hp@pobox.com>
8377
8378         * bus/session.conf.in: fix security policy, reported by Seth Nickell
8379
8380 2003-09-25  Seth Nickell  <seth@gnome.org>
8381
8382         * python/examples/example-service.py:
8383
8384         Johan notices complete wrong code in example-service, but
8385         completely wrong in a way that works exactly the same (!).
8386         Johan is confused, how could this possibly work? Example
8387         code fails to serve purpose of making things clear.
8388         Seth fixes.
8389
8390 2003-09-25  Mark McLoughlin  <mark@skynet.ie>
8391
8392         * doc/dbus-specification.sgml: don't require header fields
8393         to be 4-byte aligned and specify that fields should be
8394         distinguished from padding by the fact that zero is not
8395         a valid field name.
8396         
8397         * doc/TODO: remove re-alignment item and add item to doc
8398         the OBJECT_PATH type.
8399         
8400         * dbus/dbus-message.c:
8401         (HeaderField): rename the original member to value_offset
8402         and introduce a name_offset member to keep track of where
8403         the field actually begins.
8404         (adjust_field_offsets): remove.
8405         (append_int_field), (append_uint_field),
8406         (append_string_field): don't align the start of the header
8407         field to a 4-byte boundary.
8408         (get_next_field): impl finding the next marhsalled field
8409         after a given field.
8410         (re_align_field_recurse): impl re-aligning a number of
8411         already marshalled fields.
8412         (delete_field): impl deleting a field of any type and
8413         re-aligning any following fields.
8414         (delete_int_or_uint_field), (delete_string_field): remove.
8415         (set_int_field), (set_uint_field): no need to re-check
8416         that we have the correct type for the field.
8417         (set_string_field): ditto and impl re-aligning any
8418         following fields.
8419         (decode_header_data): update to take into account that
8420         the fields aren't 4-byte aligned any more and the new
8421         way to distinguish padding from header fields. Also,
8422         don't exit when there is too much header padding.
8423         (process_test_subdir): print the directory.
8424         (_dbus_message_test): add test to make sure a following
8425         field is re-aligned correctly after field deletion.
8426         
8427         * dbus/dbus-string.[ch]:
8428         (_dbus_string_insert_bytes): rename from insert_byte and
8429         allow the insert of multiple bytes.
8430         (_dbus_string_test): test inserting multiple bytes.
8431
8432         * dbus/dbus-marshal.c: (_dbus_marshal_set_string): add
8433         warning note to docs about having to re-align any
8434         marshalled values following the string.
8435         
8436         * dbus/dbus-message-builder.c:
8437         (append_string_field), (_dbus_message_data_load):
8438         don't align the header field.
8439         
8440         * dbus/dbus-auth.c: (process_test_subdir): print the
8441         directory.
8442         
8443         * test/break-loader.c: (randomly_add_one_byte): upd. for
8444         insert_byte change.
8445         
8446         * test/data/invalid-messages/bad-header-field-alignment.message:
8447         new test case.
8448         
8449         * test/data/valid-messages/unknown-header-field.message: shove
8450         a dict in the unknown field.
8451
8452 2003-09-25  Seth Nickell  <seth@gnome.org>
8453
8454         * python/dbus.py:
8455         * python/dbus_bindings.pyx.in:
8456
8457         Handle return values.
8458         
8459         * python/examples/example-client.py:
8460         * python/examples/example-service.py:
8461
8462         Pass back return values from the service to the client.
8463         
8464 2003-09-24  Seth Nickell  <seth@gnome.org>
8465
8466         * python/dbus.py:
8467
8468         Connect Object methods (when you are sharing an object) up... pass
8469         in a list of methods to be shared. Sharing all the methods just
8470         worked out too weird. You can now create nice Services over the
8471         DBus in Python. :-)
8472         
8473         * python/dbus_bindings.pyx.in:
8474
8475         Keep references to user_data tuples passed into C functions so 
8476         Python doesn't garbage collect on us.
8477
8478         Implement MethodReturn and Error subclasses of Message for creating
8479         DBusMessage's of those types.
8480         
8481         * python/examples/example-client.py:
8482         * python/examples/example-service.py:
8483
8484         Simple example code showing both how create DBus services and objects,
8485         and how to use them.
8486
8487 2003-09-23  Havoc Pennington  <hp@pobox.com>
8488
8489         * glib/dbus-gproxy.c (dbus_gproxy_manager_filter): implement
8490
8491 2003-09-23  Havoc Pennington  <hp@redhat.com>
8492
8493         * glib/dbus-gproxy.c (dbus_gproxy_connect_signal): implement
8494         (dbus_gproxy_disconnect_signal): implement
8495         (dbus_gproxy_manager_remove_signal_match): implement
8496         (dbus_gproxy_manager_add_signal_match): implement
8497         (dbus_gproxy_oneway_call): implement
8498
8499 2003-09-23  Havoc Pennington  <hp@pobox.com>
8500
8501         * glib/dbus-gproxy.c (struct DBusGProxy): convert to a GObject
8502         subclass. This means dropping the transparent thread safety of the
8503         proxy; you now need a separate proxy per-thread, or your own
8504         locking on the proxy. Probably right anyway.
8505         (dbus_gproxy_ref, dbus_gproxy_unref): nuke, just use g_object_ref
8506
8507 2003-09-22  Havoc Pennington  <hp@redhat.com>
8508
8509         * glib/dbus-gproxy.c (dbus_gproxy_manager_get): implement
8510
8511 2003-09-21  Seth Nickell  <seth@gnome.org>
8512
8513         First checkin of the Python bindings.
8514         
8515         * python/.cvsignore:
8516         * python/Makefile.am:
8517         * python/dbus_bindings.pyx.in:
8518         * python/dbus_h_wrapper.h:
8519
8520         Pieces for Pyrex to operate on, building a dbus_bindings.so
8521         python module for low-level access to the DBus APIs.
8522         
8523         * python/dbus.py:
8524
8525         High-level Python module for accessing DBus objects.
8526
8527         * configure.in:
8528         * Makefile.am:
8529
8530         Build stuff for the python bindings.
8531
8532         * acinclude.m4:
8533
8534         Extra macro needed for finding the Python C header files.
8535
8536 2003-09-21  Havoc Pennington  <hp@pobox.com>
8537
8538         * glib/dbus-gproxy.c (dbus_gproxy_manager_new): start
8539         implementing the proxy manager, didn't get very far.
8540
8541         * dbus/dbus-bus.c (dbus_bus_add_match): new
8542         (dbus_bus_remove_match): new
8543
8544         * glib/dbus-gproxy.c (dbus_gproxy_new_for_service): add a
8545         path_name argument; adjust the other not-yet-implemented 
8546         gproxy constructors to be what I think they should be.
8547
8548 2003-09-21  Havoc Pennington  <hp@pobox.com>
8549
8550         * dbus/dbus-bus.c (dbus_bus_get): set exit_on_disconnect to TRUE
8551         by default for message bus connections.
8552
8553         * dbus/dbus-connection.c (dbus_connection_dispatch): exit if
8554         exit_on_disconnect flag is set and we process the disconnected
8555         signal.
8556         (dbus_connection_set_exit_on_disconnect): new function
8557
8558 2003-09-21  Havoc Pennington  <hp@pobox.com>
8559
8560         Get matching rules mostly working in the bus; only actually
8561         parsing the rule text remains. However, the client side of
8562         "signal connections" hasn't been started, this patch is only the
8563         bus side.
8564         
8565         * dbus/dispatch.c: fix for the matching rules changes
8566         
8567         * bus/driver.c (bus_driver_handle_remove_match)
8568         (bus_driver_handle_add_match): send an ack reply from these
8569         method calls
8570
8571         * glib/dbus-gproxy.c (dbus_gproxy_begin_call): fix order of
8572         arguments, reported by Seth Nickell
8573
8574         * bus/config-parser.c (append_rule_from_element): support
8575         eavesdrop=true|false attribute on policies so match rules 
8576         can be prevented from snooping on the system bus.
8577
8578         * bus/dbus-daemon-1.1.in: consistently use terminology "sender"
8579         and "destination" in attribute names; fix some docs bugs; 
8580         add eavesdrop=true|false attribute
8581
8582         * bus/driver.c (bus_driver_handle_add_match)
8583         (bus_driver_handle_remove_match): handle AddMatch, RemoveMatch
8584         messages
8585
8586         * dbus/dbus-protocol.h (DBUS_SERVICE_ORG_FREEDESKTOP_BROADCAST): get
8587         rid of broadcast service concept, signals are just always broadcast
8588
8589         * bus/signals.c, bus/dispatch.c, bus/connection.c, bus/bus.c:
8590         mostly implement matching rules stuff (currently only exposed as signal
8591         connections)
8592
8593 2003-09-21  Mark McLoughlin  <mark@skynet.ie>
8594
8595         * doc/dbus-specification.sgml: Change the header field name
8596         to be an enum and update the rest of the spec to reference
8597         the fields using the conventinal name.
8598
8599         * dbus/dbus-protocol.h: update to reflect the spec.
8600
8601         * doc/TODO: add item to remove the 4 byte alignment requirement.
8602         
8603         * dbus/dbus-message.c: Remove the code to generalise the
8604         header/body length and serial number header fields as named
8605         header fields so we can reference field names using the 
8606         protocol values.
8607         (append_int_field), (append_uint_field), (append_string_field):
8608         Append the field name as a byte rather than four chars.
8609         (delete_int_or_uint_field), (delete_string_field): reflect the
8610         fact that the field name and typecode now occupy 4 bytes instead
8611         of 8.
8612         (decode_string_field), (decode_header_data): update to reflect
8613         protocol changes and move the field specific encoding from
8614         decode_string_field() back into decode_header_data().
8615         
8616         * dbus/dbus-internals.[ch]: (_dbus_header_field_to_string):
8617         Add utility to aid debugging.
8618         
8619         * dbus/dbus-message-builder.c:
8620         (append_string_field), (_dbus_message_data_load): Update to
8621         reflect protocol changes; Change the FIELD_NAME directive
8622         to HEADER_FIELD and allow it to take the field's conventional
8623         name rather than the actual value.
8624         
8625         * test/data/*/*.message: Update to use HEADER_FIELD instead
8626         of FIELD_NAME; Always align the header on an 8 byte boundary
8627         *before* updating the header length.
8628
8629 2003-09-15  Havoc Pennington  <hp@pobox.com>
8630
8631         * dbus/dbus-pending-call.c: add the get/set object data
8632         boilerplate as for DBusConnection, etc. Use generic object data
8633         for the notify callback.
8634
8635         * glib/dbus-gparser.c (parse_node): parse child nodes
8636
8637         * tools/dbus-viewer.c: more hacking on the dbus-viewer
8638         
8639         * glib/dbus-gutils.c (_dbus_gutils_split_path): add a file to
8640         contain functions shared between the convenience lib and the
8641         installed lib
8642
8643         * glib/Makefile.am (libdbus_glib_1_la_LDFLAGS): add
8644         -export-symbols-regex to the GLib library
8645
8646         * dbus/dbus-object-tree.c (_dbus_object_tree_dispatch_and_unlock):
8647         fix the locking in here, and add a default handler for
8648         Introspect() that just returns sub-nodes.
8649
8650 2003-09-14  Havoc Pennington  <hp@pobox.com>
8651
8652         * glib/dbus-gthread.c (dbus_g_thread_init): rename to make g_foo
8653         rather than gfoo consistent
8654
8655         * glib/dbus-gproxy.h: delete for now, move contents to
8656         dbus-glib.h, because the include files don't work right since we
8657         aren't in the dbus/ subdir.
8658         
8659         * glib/dbus-gproxy.c (dbus_gproxy_send): finish implementing
8660         (dbus_gproxy_end_call): finish
8661         (dbus_gproxy_begin_call): finish
8662
8663         * glib/dbus-gmain.c (dbus_set_g_error): new
8664
8665         * glib/dbus-gobject.c (handle_introspect): include information
8666         about child nodes in the introspection
8667
8668         * dbus/dbus-connection.c (dbus_connection_list_registered): new
8669         function to help in implementation of introspection
8670
8671         * dbus/dbus-object-tree.c
8672         (_dbus_object_tree_list_registered_and_unlock): new function
8673
8674 2003-09-12  Havoc Pennington  <hp@pobox.com>
8675
8676         * glib/dbus-gidl.h: add common base class for all the foo_info
8677         types
8678
8679         * tools/dbus-viewer.c: add GTK-based introspection UI thingy
8680         similar to kdcop
8681
8682         * test/Makefile.am: try test srcdir -ef . in addition to test
8683         srcdir = ., one of them should work (yeah lame)
8684         
8685         * glib/Makefile.am: build the "idl" parser stuff as a convenience
8686         library
8687         
8688         * glib/dbus-gparser.h: make description_load routines return
8689         NodeInfo* not Parser*
8690
8691         * Makefile.am (SUBDIRS): build test dir after all library dirs
8692
8693         * configure.in: add GTK+ detection
8694
8695 2003-09-07  Havoc Pennington  <hp@pobox.com>
8696
8697         * Make Doxygen contented.
8698
8699 2003-09-07  Havoc Pennington  <hp@pobox.com>
8700
8701         * doc/dbus-specification.sgml: more updates
8702
8703 2003-09-06  Havoc Pennington  <hp@pobox.com>
8704
8705         * doc/dbus-specification.sgml: partial updates
8706
8707         * bus/dbus-daemon-1.1.in: fix the config file docs for the
8708         zillionth time; hopefully I edited the right file this time.
8709
8710         * bus/config-parser.c (append_rule_from_element): support
8711         send_type, send_path, receive_type, receive_path
8712
8713         * bus/policy.c: add message type and path to the list of things
8714         that can be "firewalled"
8715
8716 2003-09-06  Havoc Pennington  <hp@pobox.com>
8717
8718         * dbus/dbus-connection.c (dbus_connection_register_fallback): add this
8719         (dbus_connection_register_object_path): make this not handle
8720         messages to paths below the given path
8721
8722 2003-09-03  Havoc Pennington  <hp@pobox.com>
8723
8724         * test/glib/Makefile.am: add this with random glib-linked test
8725         programs
8726
8727         * glib/Makefile.am: remove the random test programs from here,
8728         leave only the unit tests
8729
8730         * glib/dbus-gobject.c (_dbus_gobject_test): add test for 
8731         uscore/javacaps conversion, and fix     
8732         (get_object_property, set_object_property): change to .NET
8733         convention for mapping props to methods, set_FooBar/get_FooBar, 
8734         since one language has such a convention we may as well copy it. 
8735         Plus real methods in either getFooBar or get_foo_bar style won't 
8736         collide with this convention.
8737
8738 2003-09-01  Havoc Pennington  <hp@pobox.com>
8739
8740         * glib/dbus-gparser.c: implement
8741
8742         * glib/dbus-gobject.c: start implementing skeletons support
8743
8744         * configure.in: when disabling checks/assert, also define
8745         G_DISABLE_ASSERT and G_DISABLE_CHECKS
8746
8747 2003-09-01  Havoc Pennington  <hp@pobox.com>
8748
8749         * glib/Makefile.am: rearrange a bunch of files and get "make
8750         check" framework set up
8751
8752 2003-08-31  Havoc Pennington  <hp@pobox.com>
8753
8754         * fix build with --disable-tests
8755
8756 2003-08-30  Havoc Pennington  <hp@pobox.com>
8757
8758         * dbus/dbus-connection.c: purge DBusMessageHandler
8759
8760         * dbus/dbus-message-handler.c: remove DBusMessageHandler, just 
8761         use callbacks everywhere
8762
8763 2003-08-30  Havoc Pennington  <hp@pobox.com>
8764
8765         * test/data/valid-config-files/system.d/test.conf: change to 
8766         root for the user so warnings don't get printed
8767
8768         * dbus/dbus-message.c: add dbus_message_get_path,
8769         dbus_message_set_path
8770         
8771         * dbus/dbus-object-tree.c (do_test_dispatch): add test of
8772         dispatching to a path
8773
8774         * dbus/dbus-string.c (_dbus_string_validate_path): add
8775
8776         * dbus/dbus-marshal.c (_dbus_demarshal_object_path): implement
8777         (_dbus_marshal_object_path): implement
8778
8779         * dbus/dbus-protocol.h (DBUS_HEADER_FIELD_PATH): new header field 
8780         to contain the path to the target object
8781         (DBUS_HEADER_FIELD_SENDER_SERVICE): rename
8782         DBUS_HEADER_FIELD_SENDER to explicitly say it's the sender service
8783
8784 2003-08-30  Havoc Pennington  <hp@pobox.com>
8785
8786         * dbus/dbus-object-tree.c: write tests and fix the discovered bugs
8787
8788 2003-08-29  Havoc Pennington  <hp@pobox.com>
8789
8790         * dbus/dbus-object-tree.c: modify to allow overlapping paths to be
8791         registered
8792         (struct DBusObjectSubtree): shrink this
8793         a lot, since we may have a lot of them
8794         (_dbus_object_tree_free_all_unlocked): implement
8795         (_dbus_object_tree_dispatch_and_unlock): implement
8796
8797 2003-08-29  Havoc Pennington  <hp@pobox.com>
8798
8799         * dbus/dbus-internals.h: fix _DBUS_N_GLOBAL_LOCKS
8800
8801 2003-08-28  Havoc Pennington  <hp@pobox.com>
8802
8803         purge DBusObjectID
8804         
8805         * dbus/dbus-connection.c: port to no ObjectID, create a
8806         DBusObjectTree, rename ObjectTree to ObjectPath in public API
8807
8808         * dbus/dbus-connection.h (struct DBusObjectTreeVTable): delete 
8809         everything except UnregisterFunction and MessageFunction
8810         
8811         * dbus/dbus-marshal.c: port away from DBusObjectID, 
8812         add DBUS_TYPE_OBJECT_PATH
8813         
8814         * dbus/dbus-object-registry.[hc], dbus/dbus-object.[hc], 
8815         dbus/dbus-objectid.[hc]: remove these, we are moving to 
8816         path-based object IDs
8817
8818 2003-08-25  Havoc Pennington  <hp@pobox.com>
8819
8820         Just noticed that dbus_message_test is hosed, I wonder when I
8821         broke that. I thought make check was passing earlier...
8822         
8823         * dbus/dbus-object-tree.c: add new "object tree" to match DCOP 
8824         container tree, will replace most of dbus-object-registry
8825
8826         * dbus/dbus-string.c (_dbus_string_append_printf_valist): fix C99
8827         screwup
8828
8829 2003-08-19  Havoc Pennington  <hp@pobox.com>
8830
8831         * dbus/dbus-message.c (decode_string_field): support FIELD_SENDER
8832         (dbus_message_is_error): fix this function
8833
8834         * bus/dbus-daemon-1.1: clarify logic on when <deny>/<allow> rules
8835         match
8836
8837         * bus/policy.c (bus_client_policy_check_can_receive): fix code to
8838         reflect clarified man page
8839         (bus_client_policy_check_can_send): ditto
8840         
8841         * bus/session.conf.in: fixup
8842
8843         * bus/system.conf.in: fixup
8844
8845 2003-08-18  Havoc Pennington  <hp@redhat.com>
8846
8847         * dbus/dbus-hash.c (_dbus_hash_table_insert_two_strings): fix
8848
8849         * dbus/dbus-message.c (_dbus_message_loader_queue_messages): fix
8850         dumb bug created earlier (wrong order of args to
8851         decode_header_data())
8852         
8853         * tools/dbus-send.c: port
8854
8855         * tools/dbus-print-message.c (print_message): port
8856
8857         * test/data/*messages: port all messages over
8858         
8859         * dbus/dbus-message-builder.c: support including 
8860         message type
8861         
8862         * bus/driver.c: port over
8863         
8864         * bus/dispatch.c: port over to new stuff
8865
8866         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
8867         rename disconnect signal to "Disconnected"
8868
8869 2003-08-17  Havoc Pennington  <hp@pobox.com>
8870
8871         This doesn't compile yet, but syncing up so I can hack on it from
8872         work. What are branches for if not broken code? ;-)
8873         
8874         * dbus/dbus-protocol.h: remove DBUS_HEADER_FIELD_NAME, add
8875         DBUS_HEADER_FIELD_INTERFACE, DBUS_HEADER_FIELD_MEMBER,
8876         DBUS_HEADER_FIELD_ERROR_NAME
8877         
8878         * dbus/dbus-hash.c: Introduce DBUS_HASH_TWO_STRINGS as hack to use
8879         for the interface+member pairs
8880         (string_hash): change to use g_str_hash algorithm
8881         (find_direct_function, find_string_function): refactor these to
8882         share most code.
8883         
8884         * dbus/dbus-message.c: port all of this over to support 
8885         interface/member fields instead of name field
8886
8887         * dbus/dbus-object-registry.c: port over
8888         
8889         * dbus/dbus-string.c (_dbus_string_validate_interface): rename
8890         from _dbus_string_validate_name
8891
8892         * bus/dbus-daemon-1.1: change file format for the 
8893         <deny>/<allow> stuff to match new message naming scheme
8894
8895         * bus/policy.c: port over
8896
8897         * bus/config-parser.c: parse new format
8898         
8899 2003-08-16  Havoc Pennington  <hp@pobox.com>
8900
8901         * dbus/dbus-object-registry.c (add_and_remove_objects): remove
8902         broken assertion
8903
8904         * glib/dbus-gproxy.c: some hacking
8905
8906 2003-08-15  Havoc Pennington  <hp@redhat.com>
8907
8908         * dbus/dbus-pending-call.c (dbus_pending_call_block): implement
8909
8910         * dbus/dbus-connection.c
8911         (dbus_connection_send_with_reply_and_block): factor out internals;
8912         change to convert any error replies to DBusError instead of 
8913         returning them as a message
8914
8915 2003-08-15  Havoc Pennington  <hp@pobox.com>
8916
8917         * dbus/dbus-connection.c, 
8918         dbus/dbus-pending-call.c: Finish the pending call stuff
8919
8920 2003-08-14  Havoc Pennington  <hp@redhat.com>
8921
8922         * dbus/dbus-pending-call.c: start on new object that will replace
8923         DBusMessageHandler and ReplyHandlerData for tracking outstanding
8924         replies
8925
8926         * dbus/dbus-gproxy.c: start on proxy object used to communicate
8927         with remote interfaces
8928
8929         * dbus/dbus-gidl.c: do the boring boilerplate in here
8930         
8931 2003-08-12  Havoc Pennington  <hp@pobox.com>
8932
8933         * bus/dispatch.c (bus_dispatch): make this return proper 
8934         DBusHandlerResult to avoid DBUS_ERROR_UNKNOWN_METHOD
8935
8936         * dbus/dbus-errors.c (dbus_set_error): use
8937         _dbus_string_append_printf_valist
8938
8939         * dbus/dbus-string.c (_dbus_string_append_printf_valist)
8940         (_dbus_string_append_printf): new
8941
8942         * dbus/dbus-errors.h (DBUS_ERROR_UNKNOWN_MESSAGE): change to
8943         UNKNOWN_METHOD
8944
8945         * dbus/dbus-connection.c (dbus_connection_dispatch): handle
8946         DBUS_HANDLER_RESULT_NEED_MEMORY; send default error reply if a
8947         message is unhandled.
8948
8949 2003-08-11  Havoc Pennington  <hp@pobox.com>
8950
8951         * bus/test.c (client_disconnect_handler): change to return
8952         HANDLED (would have been REMOVE_MESSAGE)
8953
8954         * dbus/dbus-object.h (enum DBusHandlerResult): rename to
8955         HANDLED/NOT_YET_HANDLED instead of
8956         REMOVE_MESSAGE/ALLOW_MORE_HANDLERS to make it clearer how it 
8957         should be used.
8958
8959 2003-08-10  Havoc Pennington  <hp@pobox.com>
8960
8961         * tools/dbus-send.c (main): add --type argument, for now
8962         supporting only method_call and signal types.
8963
8964         * tools/dbus-print-message.c: print message type
8965
8966         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
8967         init connection->objects
8968
8969         * doc/dbus-specification.sgml: fix sgml
8970
8971         * bus/*.c: port over to object-instance API changes
8972
8973         * test/test-service.c: ditto
8974         
8975         * dbus/dbus-message.c (dbus_message_create_header): allow #NULL
8976         name, we will have to fix up the rest of the code to also handle
8977         this
8978         (dbus_message_new): generic message-creation call
8979         (set_string_field): allow appending name field
8980
8981 2003-08-06  Havoc Pennington  <hp@pobox.com>
8982
8983         * dbus/dbus-object-registry.c: implement signal connection 
8984         and dispatch
8985
8986         * dbus/dbus-connection.c (_dbus_connection_unref_unlocked): new
8987
8988         * dbus/dbus-internals.c (_dbus_memdup): new function
8989
8990 2003-08-02  Havoc Pennington  <hp@pobox.com>
8991
8992         * dbus/dbus-message.c (dbus_message_get_no_reply)
8993         (dbus_message_set_no_reply): add these and remove
8994         set_is_error/get_is_error
8995
8996         * dbus/dbus-protocol.h, doc/dbus-specification.sgml: 
8997         remove the ERROR flag, since there's now an ERROR type
8998
8999 2003-08-01  Havoc Pennington  <hp@pobox.com>
9000
9001         * dbus/dbus-object-registry.c (_dbus_object_registry_handle_and_unlock):
9002         implement
9003
9004         * dbus/dbus-message.c (dbus_message_get_type): new function
9005
9006         * doc/dbus-specification.sgml: add "type" byte to messages
9007
9008 2003-08-01  Havoc Pennington  <hp@pobox.com>
9009
9010         * dbus/dbus-protocol.h (DBUS_MESSAGE_TYPE_*): introduce
9011         a message type enum to distinguish kinds of message
9012         (DBUS_HEADER_FLAG_NO_REPLY_EXPECTED): flag for a message 
9013         that need not be replied to
9014
9015 2003-08-01  Havoc Pennington  <hp@pobox.com>
9016
9017         * dbus/dbus-marshal.c: adapt to DBusObjectID changes
9018         (unpack_8_octets): fix no-64-bit-int bug
9019
9020         * dbus/dbus-object-registry.c (validate_id): validate the 
9021         connection ID bits, not just the instance ID.
9022
9023         * dbus/dbus-connection.c (_dbus_connection_init_id): initialize
9024         the connection-global 33 bits of the object ID
9025
9026         * dbus/dbus-object-registry.c (info_from_entry): fill in 
9027         object ID in the new way
9028
9029         * dbus/dbus-objectid.h: rather than high/low bits, specifically 
9030         define server/client/instance bits.
9031
9032 2003-07-30  Havoc Pennington  <hp@pobox.com>
9033
9034         * dbus/dbus-connection.c (dbus_connection_register_object): fix
9035         build
9036
9037 2003-07-13  Havoc Pennington  <hp@pobox.com>
9038
9039         * dbus/dbus-object.h (struct DBusObjectVTable): add padding
9040         fields to DBusObjectVTable and DBusObjectInfo
9041
9042 2003-07-12  Havoc Pennington  <hp@pobox.com>
9043
9044         * dbus/dbus-object-registry.c: implement unit test,
9045         fix bugs discovered in process
9046
9047         * dbus/dbus-connection.c: remove handler_table and
9048         register_handler(), add DBusObjectRegistry usage
9049
9050         * dbus/dbus-objectid.c (dbus_object_id_is_null)
9051         (dbus_object_id_set_null): new functions
9052
9053 2003-07-08  Havoc Pennington  <hp@pobox.com>
9054
9055         * dbus/dbus-object.c: implement some of this
9056
9057         * dbus/dbus-object-registry.c
9058         (_dbus_object_registry_add_and_unlock): fill in the object_id out
9059         param
9060         (_dbus_object_registry_new): handle OOM
9061
9062 2003-07-08  Havoc Pennington  <hp@pobox.com>
9063
9064         * dbus/dbus-object.h: sketch out an API for registering objects
9065         with a connection, that allows us to use as little as 24 bytes
9066         per object and lets application code represent an object in 
9067         any conceivable way.
9068
9069         * dbus/dbus-object-registry.c: implement the hard bits of the
9070         DBusConnection aspect of object API. Not yet wired up.
9071         
9072 2003-07-06  Havoc Pennington  <hp@pobox.com>
9073
9074         * dbus/dbus-marshal.c (_dbus_marshal_set_object_id): new function
9075         (_dbus_marshal_object_id): new
9076         (_dbus_demarshal_object_id): new
9077         (_dbus_marshal_get_arg_end_pos): support object ID type, and
9078         consolidate identical switch cases. Don't conditionalize handling
9079         of DBUS_TYPE_UINT64, need to handle the type always.
9080         (_dbus_marshal_validate_arg): consolidate identical cases, and
9081         handle DBUS_TYPE_OBJECT_ID
9082
9083         * dbus/dbus-objectid.c: new file with DBusObjectID data type.
9084
9085         * dbus/dbus-protocol.h: add DBUS_TYPE_OBJECT_ID
9086
9087 2003-09-28  Havoc Pennington  <hp@pobox.com>
9088
9089         * real 0.13 release
9090
9091 2003-09-28  Havoc Pennington  <hp@pobox.com>
9092
9093         * doc/Makefile.am (dbus-specification.html): testing a funky hack
9094         to work with Debian db2html
9095
9096 2003-09-28  Havoc Pennington  <hp@pobox.com>
9097
9098         * configure.in: 0.13
9099
9100         * doc/Makefile.am (dbus-test-plan.html): accept nonexistence of
9101         stylesheet-images for benefit of Debian
9102         
9103         Change back to using filesystem-linked sockets for the system
9104         bus, so only root can create the default system bus address.
9105         
9106         * bus/system.conf.in: change to use
9107         DBUS_SYSTEM_BUS_DEFAULT_ADDRESS
9108
9109         * dbus/Makefile.am (INCLUDES): remove DBUS_SYSTEM_BUS_PATH define
9110         from here.
9111
9112         * configure.in: define DBUS_SYSTEM_BUS_DEFAULT_ADDRESS
9113         here, and AC_DEFINE DBUS_SYSTEM_PATH
9114
9115 2003-08-09  Anders Carlsson  <andersca@codefactory.se>
9116
9117         * doc/TODO:
9118         * doc/busconfig.dtd:
9119         Add busconfig DTD.
9120         
9121 2003-08-09  Anders Carlsson  <andersca@codefactory.se>
9122
9123         * doc/dbus-specification.sgml:
9124         Add activation reply values.
9125         
9126 2003-08-05  Havoc Pennington  <hp@redhat.com>
9127
9128         * configure.in: 0.12
9129
9130 2003-08-05  Anders Carlsson  <andersca@codefactory.se>
9131
9132         * glib/dbus-gmain.c: (watch_fd_new), (watch_fd_ref),
9133         (watch_fd_unref), (dbus_gsource_check), (dbus_gsource_dispatch),
9134         (add_watch), (remove_watch), (create_source):
9135         Refcount fds, fixes some reentrancy issues.
9136         
9137 2003-07-30  Havoc Pennington  <hp@redhat.com>
9138
9139         * dbus/dbus-bus.c (init_connections_unlocked): fix default system
9140         bus address to be abstract if we have abstract sockets
9141
9142         * NEWS: update
9143
9144 2003-07-28  Havoc Pennington  <hp@redhat.com>
9145
9146         * bus/messagebus.in: fix to avoid processname/servicename 
9147         confusion, from Michael Kearey
9148         https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=100965
9149         
9150 2003-07-23  Havoc Pennington  <hp@pobox.com>
9151
9152         * dbus/dbus-message.c (dbus_message_iter_get_named): 
9153         fix from Andy Hanton to remove broken "+1"
9154
9155 2003-07-16  Havoc Pennington  <hp@pobox.com>
9156
9157         * tools/dbus-launch.c (babysit): close stdout/stderr in the
9158         babysitter process, as suggested by Thomas Leonard, so 
9159         an "eval `dbus-launch --exit-with-session`" will actually 
9160         return
9161
9162 2003-07-16  Havoc Pennington  <hp@pobox.com>
9163
9164         * configure.in: print out EXPANDED_* variables in the summary at
9165         the end; clean up the code that computes EXPANDED_ variables and
9166         get the ones using exec_prefix right. Should make things work
9167         when you build without --prefix
9168
9169 2003-06-29  Havoc Pennington  <hp@pobox.com>
9170
9171         * mono/Test.cs (class Test): fire up a main loop and run it
9172
9173         * mono/DBus.cs (DBus): don't g_thread_init since it can only be
9174         done once, the app has to do it
9175
9176 2003-06-26  Havoc Pennington  <hp@pobox.com>
9177
9178         * mono/Connection.cs: set up connection with the glib main loop
9179
9180 2003-07-01  Havoc Pennington  <hp@redhat.com>
9181
9182         * doc/dbus-specification.sgml: clarify the format of a type code,
9183         change suggested by Jim Blandy
9184
9185 2003-06-29  Miloslav Trmac  <mitr@volny.cz>
9186
9187         * doc/Makefile.am:
9188         * tools/Makefile.am: Don't assume srcdir == builddir.
9189
9190         * dbus/dbus-memory.c (dbus_realloc): Don't check guards after shrinking
9191         the allocated block.
9192         (_dbus_memory_test): New function.
9193         * dbus/dbus-test.h: Add _dbus_memory_test ().
9194         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): Call it.
9195
9196         * dbus/dbus-message.c (decode_header_data): Use %.4s instead
9197         of %c%c%c%c.
9198         (dbus_message_new): Remove obsolete @todo.
9199
9200         * dbus/dbus-marshal.c (_dbus_marshal_set_int64)
9201         (_dbus_marshal_set_uint64): Fix comment.
9202
9203         * dbus/dbus-message.c (append_int_field, append_uint_field): Don't
9204         hardcode FIELD_REPLY_SERIAL.
9205
9206         * dbus/dbus-mainloop.c (_dbus_loop_remove_watch)
9207         (_dbus_loop_remove_timeout): Cast function pointers to (void *) for %p
9208
9209         * configure.in: Add -D_POSIX_C_SOURCE=199309L -DBSD_SOURCE to CFLAGS
9210         and disable DBUS_USE_ATOMIC_INT_486 when --enable-ansi is used
9211
9212 2003-06-24  Havoc Pennington  <hp@pobox.com>
9213
9214         * mono/*.cs: Use IntPtr.Zero instead of ((IntPtr) 0)
9215
9216 2003-06-23  Anders Carlsson  <andersca@codefactory.se>
9217
9218         * configure.in:
9219         * gcj/.cvsignore:
9220         * gcj/Hello.java:
9221         * gcj/Makefile.am:
9222         * gcj/TestMessage.java: (TestMessage), (TestMessage.main):
9223         * gcj/org/.cvsignore:
9224         * gcj/org/Makefile.am:
9225         * gcj/org/freedesktop/.cvsignore:
9226         * gcj/org/freedesktop/Makefile.am:
9227         * gcj/org/freedesktop/dbus/.cvsignore:
9228         * gcj/org/freedesktop/dbus/Makefile.am:
9229         * gcj/org/freedesktop/dbus/Message.java: (Message),
9230         (Message.Message):
9231         * gcj/org/freedesktop/dbus/natMessage.cc:
9232         Fix the build system.
9233
9234 2003-06-22  Havoc Pennington  <hp@pobox.com>
9235
9236         * mono/Connection.cs: add more bindings
9237
9238         * dbus/dbus-threads.c (dbus_threads_init): allow calling this
9239         more than once.
9240
9241 2003-06-22  Havoc Pennington  <hp@pobox.com>
9242
9243         * mono/Connection.cs, mono/DBus.cs, mono/Error.cs:
9244         Start wrapping more stuff.
9245
9246 2003-06-22  Havoc Pennington  <hp@pobox.com>
9247
9248         * mono/Message.cs: implement Message.Wrap() that ensures we only
9249         have a single C# wrapper per DBusMessage, assuming it works which
9250         it probably doesn't.
9251
9252         * dbus/dbus-message.c (dbus_message_allocate_data_slot): new
9253         (dbus_message_free_data_slot): new
9254         (dbus_message_set_data): new
9255         (dbus_message_get_data): new
9256
9257 2003-06-22  Havoc Pennington  <hp@pobox.com>
9258
9259         * dbus/dbus-dataslot.c (_dbus_data_slot_allocator_unref)
9260         (_dbus_data_slot_allocator_alloc): rework these to keep a
9261         reference count on each slot and automatically manage a global
9262         slot ID variable passed in by address
9263
9264         * bus/bus.c: convert to new dataslot API
9265
9266         * dbus/dbus-bus.c: convert to new dataslot API
9267
9268         * dbus/dbus-connection.c: convert to new dataslot API
9269
9270         * dbus/dbus-server.c: convert to new dataslot API
9271
9272         * glib/dbus-gmain.c: ditto
9273
9274         * bus/test.c: ditto
9275
9276         * bus/connection.c: ditto
9277
9278 2003-06-22  Anders Carlsson  <andersca@codefactory.se>
9279
9280         * configure.in: Add AM_PROG_GCJ and move AM_PROG_LIBTOOL
9281         after the gcj checks so that the correct configuration tags
9282         will be added to libtool.
9283
9284         * dbus-glib-1.pc.in: No need to specify any includes since
9285         dbus-1.pc.in has those.
9286
9287 2003-06-22  Havoc Pennington  <hp@pobox.com>
9288
9289         * mono/*, gcj/*, configure.in, Makefile.am:
9290         Check in makefiles and subdirs for mono and gcj bindings.
9291         Neither binding actually exists, just trying to get through
9292         all the build and other boring bits.
9293
9294 2003-06-21  Philip Blundell  <philb@gnu.org>
9295
9296         * tools/dbus-monitor.1: Updated.
9297
9298         * tools/dbus-send.1: Likewise.
9299
9300 2003-06-20  Anders Carlsson  <andersca@codefactory.se>
9301
9302         * dbus/dbus-transport-unix.c (unix_handle_watch): Check
9303         for hangup and error after checking read so we won't discard
9304         pending data if both hangup and read are set.
9305
9306 2003-06-19  Philip Blundell  <philb@gnu.org>
9307
9308         * tools/dbus-print-message.c (print_message): Handle BOOLEAN.
9309
9310         * tools/dbus-send.c: Accept both --system and --session.
9311
9312         * tools/dbus-monitor.c: Same here.
9313
9314 2003-06-19  Anders Carlsson  <andersca@codefactory.se>
9315
9316         * glib/dbus-glib.h: Fix so that dbus-glib.h can be used
9317         from C++ (Patch by Miloslav Trmac).
9318
9319 2003-06-15  Joe Shaw  <joe@assbarn.com>
9320
9321         * configure.in: Check for socklen_t.
9322
9323         * dbus/dbus-sysdeps.c: Define socklen_t if it's not defined.
9324
9325         * test/test-segfault.c: Add #include <sys/time.h>
9326
9327         * tools/Makefile.am: Add DBUS_X_CFLAGS to the INCLUDES since
9328         dbus-launch needs it.
9329
9330 2003-06-09  Havoc Pennington  <hp@redhat.com>
9331
9332         * dbus/dbus-sysdeps.c (_dbus_listen_unix_socket): don't use
9333         SUN_LEN, it breaks abstract socket usage
9334
9335         * dbus/dbus-internals.c (_dbus_verbose_real): only print PID at
9336         starts of lines.
9337
9338 2003-06-04  Havoc Pennington  <hp@pobox.com>
9339
9340         * dbus/dbus-server.c (dbus_server_listen): allow abstract sockets
9341         using unix:abstract=/foo, and when listening in a tmpdir
9342         i.e. unix:tmpdir=/tmp, always use abstract sockets if we can.
9343
9344         * dbus/dbus-transport.c (_dbus_transport_open): support
9345         unix:abstract=/foo
9346
9347         * dbus/dbus-server-unix.c (_dbus_server_new_for_domain_socket):
9348         support abstract sockets
9349
9350         * dbus/dbus-transport-unix.c
9351         (_dbus_transport_new_for_domain_socket): support abstract sockets
9352
9353         * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket): add "abstract"
9354         toggle as an argument, implement abstract namespace support
9355         (_dbus_listen_unix_socket): ditto
9356
9357         * configure.in: add --enable-abstract-sockets and implement
9358         a configure check for autodetection of the right value.
9359
9360 2003-06-01  Havoc Pennington  <hp@pobox.com>
9361
9362         * tools/dbus-cleanup-sockets.c: add utility to clean up sockets
9363         in /tmp (though on Linux this will end up being useless,
9364         when we add abstract namespace support)
9365
9366         * configure.in: define DBUS_SESSION_SOCKET_DIR in addition to
9367         subst'ing it
9368
9369 2003-05-28  Colin Walters  <walters@verbum.org>
9370
9371         * tools/dbus-monitor.c (main): Fix silly typo (s/--session/--system/).
9372
9373 2003-05-18  Anders Carlsson  <andersca@codefactory.se>
9374
9375         * dbus/dbus-message.c (dbus_message_new): Remove @todo.
9376
9377 2003-05-17  Colin Walters  <walters@gnu.org>
9378
9379         * tools/dbus-send.c: Don't exit with an error code if --help was
9380         passed.  Default to using the session bus instead of the system
9381         one.
9382
9383         * tools/dbus-launch.c: Ditto.
9384
9385         * tools/dbus-monitor.c: Ditto.
9386
9387         * tools/dbus-send.1: Update with new arguments.
9388
9389         * tools/dbus-launch.c: Emit code to export variables.  New
9390         arguments -s and -c to specify shell syntax, and a bit of code to
9391         autodetect syntax.  Also, allow specifying a program to run.
9392
9393         * tools/dbus-launch.1: Update with new arguments.
9394
9395         * tools/dbus-send.1: Ditto.
9396
9397         * tools/dbus-monitor.1: Ditto.
9398
9399 2003-05-17  Havoc Pennington  <hp@pobox.com>
9400
9401         * bus/config-parser.c (merge_included): merge in policies from
9402         child configuration file.
9403
9404         * bus/policy.c (bus_policy_merge): function to merge two policies
9405         together
9406
9407 2003-05-16  Havoc Pennington  <hp@redhat.com>
9408
9409         * dbus/dbus-connection.c: disable verbose lock spew
9410
9411         * tools/dbus-send.c: add --print-reply command line option
9412
9413         * tools/dbus-print-message.h (print_message): new util function
9414         shared by dbus-send and dbus-monitor
9415
9416         * tools/dbus-monitor.c (handler_func): exit on disconnect
9417
9418         * dbus/dbus-transport-unix.c (do_reading): if the transport is
9419         disconnected, don't try to use the read_watch
9420
9421         * dbus/dbus-watch.c (dbus_watch_get_enabled): assert watch != NULL
9422         so we can find this bug more easily
9423
9424 2003-05-16  Havoc Pennington  <hp@redhat.com>
9425
9426         * bus/policy.c (free_rule_list_func): avoid a crash when passed
9427         NULL as DBusHashTable is annoyingly likely to do.
9428
9429 2003-05-16  Colin Walters  <walters@verbum.org>
9430
9431         * tools/dbus-monitor.c: Add --session argument and usage()
9432         function.
9433
9434         * tools/dbus-monitor.1: Update with new --session arg.
9435
9436         * bus/Makefile.am (install-data-hook): Create
9437         $(libdir)/dbus-1.0/services so that the session bus is happy.
9438
9439 2003-05-15  Havoc Pennington  <hp@redhat.com>
9440
9441         * dbus/dbus-sysdeps.c (_dbus_atomic_dec, _dbus_atomic_inc): work
9442         on non-x86. ifdef's are evil.
9443
9444 2003-05-15  Havoc Pennington  <hp@redhat.com>
9445
9446         * configure.in: 0.11
9447
9448         * NEWS: update
9449
9450         * bus/Makefile.am (initddir): apparently we are supposed to put
9451         init scripts in /etc/rc.d/init.d not /etc/init.d
9452
9453         * bus/Makefile.am: remove the "you must --enable-tests to make
9454         check" as it broke distcheck
9455
9456         * bus/Makefile.am (install-data-hook): create /etc/dbus-1/system.d
9457
9458 2003-05-13  James Willcox  <jwillcox@gnome.org>
9459
9460         * configure.in:
9461         * bus/activation.c: (bus_activation_service_created),
9462         (bus_activation_activate_service):
9463         * bus/driver.c: (bus_driver_send_service_deleted),
9464         (bus_driver_send_service_created), (bus_driver_send_service_lost),
9465         (bus_driver_send_service_acquired),
9466         (bus_driver_send_welcome_message),
9467         (bus_driver_handle_list_services):
9468         * bus/session.conf.in:
9469         * dbus/dbus-bus.c: (dbus_bus_acquire_service),
9470         (dbus_bus_service_exists), (dbus_bus_activate_service):
9471         * dbus/dbus-bus.h:
9472
9473         Add some convenience API which lets you activate a service, and did a
9474         bunch of s/0/DBUS_TYPE_INVALID/ in calls to dbus_message_append_args()
9475         and dbus_message_get_args()
9476
9477 2003-05-11  Havoc Pennington  <hp@pobox.com>
9478
9479         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): fix to avoid
9480         calling _dbus_marshal_validate_arg() for every byte in a byte
9481         array, etc.
9482
9483         * dbus/dbus-message-handler.c: use atomic reference counting to
9484         reduce number of locks slightly; the global lock in here sucks
9485
9486         * dbus/dbus-connection.c
9487         (_dbus_connection_update_dispatch_status_and_unlock): variant of
9488         update_dispatch_status that can be called with lock held; then use
9489         in a couple places to reduce locking/unlocking
9490         (dbus_connection_send): hold the lock over the whole function
9491         instead of acquiring it twice.
9492
9493         * dbus/dbus-timeout.c (_dbus_timeout_new): handle OOM
9494
9495         * bus/connection.c (bus_connections_setup_connection): fix access
9496         to already-freed memory.
9497
9498         * dbus/dbus-connection.c: keep a little cache of linked list
9499         nodes, to avoid using the global linked list alloc lock in the
9500         normal send-message case. Instead we just use the connection lock
9501         that we already have to take.
9502
9503         * dbus/dbus-list.c (_dbus_list_find_last): new function
9504
9505         * dbus/dbus-sysdeps.c (_dbus_atomic_inc, _dbus_atomic_dec):
9506         change to use a struct for the atomic type; fix docs,
9507         they return value before increment, not after increment.
9508
9509         * dbus/dbus-string.c (_dbus_string_append_4_aligned)
9510         (_dbus_string_append_8_aligned): new functions to try to
9511         microoptimize this operation.
9512         (reallocate_for_length): break this out of set_length(), to
9513         improve profile info, and also so we can consider inlining the
9514         set_length() part.
9515
9516         * dbus/dbus-message.c (dbus_message_new_empty_header): init data
9517         strings with some preallocation, cuts down on our calls to realloc
9518         a fair bit. Though if we can get the "move entire string to empty
9519         string" optimization below to kick in here, it would be better.
9520
9521         * dbus/dbus-string.c (_dbus_string_move): just call
9522         _dbus_string_move_len
9523         (_dbus_string_move_len): add a special case for moving
9524         an entire string into an empty string; we can just
9525         swap the string data instead of doing any reallocs.
9526         (_dbus_string_init_preallocated): new function
9527
9528 2003-05-11  Havoc Pennington  <hp@pobox.com>
9529
9530         Write a "test-profile" that does echo client-server with threads;
9531         profile reveals lock contention, memcpy/realloc of buffers, and
9532         UTF-8 validation as hot spots. 20% of lock contention eliminated
9533         with dbus_atomic_inc/dec implementation on x86.  Much remaining
9534         contention is global mempool locks for GList and DBusList.
9535
9536         * dbus/dbus-sysdeps.c (_dbus_atomic_inc, _dbus_atomic_dec): add
9537         x86 implementation
9538
9539         * dbus/dbus-connection.c (struct DBusConnection): use
9540         dbus_atomic_t for the reference count
9541
9542         * dbus/dbus-message.c (struct DBusMessage): declare
9543         dbus_atomic_t values as volatile
9544
9545         * configure.in: code to detect ability to use atomic integer
9546         operations in assembly, from GLib patch
9547
9548         * dbus/dbus-internals.c (_dbus_verbose_real): call getpid every
9549         time, tired of it being wrong in threads and forked processes
9550
9551         * glib/test-profile.c: a little program to bounce messages back
9552         and forth between threads and eat CPU
9553
9554         * dbus/dbus-connection.c: add debug spew macros for debugging
9555         thread locks; include config.h at top; fix deadlock in
9556         dbus_connection_flush()
9557
9558 2003-05-08  Havoc Pennington  <hp@pobox.com>
9559
9560         * dbus/dbus-spawn.c: s/_exit/exit/ because it was keeping gcov
9561         data from getting written, and there wasn't a good reason to
9562         use _exit really.
9563
9564         * test/decode-gcov.c (mark_inside_dbus_build_tests): don't count
9565         dbus_verbose lines in test coverage
9566         (main): add list of functions sorted by # of untested blocks
9567         to the coverage report
9568
9569         * dbus/dbus-mempool.c: put some test-only code in DBUS_BUILD_TESTS
9570
9571         * dbus/dbus-marshal.c (_dbus_marshal_test): extend test coverage
9572
9573         * dbus/dbus-message-handler.c (_dbus_message_handler_test):
9574         extend test coverage
9575
9576         * test/data/auth/cancel.auth-script: test canceling an
9577         authentication
9578
9579         * dbus/Makefile.am: remove dbus-server-debug.[hc] for now, as they
9580         aren't used. in CVS history if we end up needing them.
9581
9582 2003-05-04  Havoc Pennington  <hp@pobox.com>
9583
9584         * dbus/dbus-message-handler.c (_dbus_message_handler_test): add
9585         unit test
9586
9587         * dbus/dbus-marshal.c (_dbus_demarshal_string_array): fix this
9588         function, which assumed length was in # of strings, not bytes
9589
9590         * dbus/dbus-message.c (_dbus_message_test): add tests for some
9591         missing coverage
9592
9593         * dbus/dbus-connection.c
9594         (_dbus_connection_queue_received_message): disable function for
9595         now, we are only using it in test mode
9596
9597         * dbus/dbus-message.c (_dbus_message_loader_queue_messages):
9598         remove a mistaken FIXME
9599
9600 2003-05-04  Havoc Pennington  <hp@pobox.com>
9601
9602         * dbus/dbus-connection.c (dbus_connection_preallocate_send):
9603         unlock mutex on successful return, patch from Anders Gustafsson
9604
9605 2003-05-04  Havoc Pennington  <hp@pobox.com>
9606
9607         * dbus-glib-1.pc.in (Requires): fix dependencies, from
9608         Anders Gustafsson
9609
9610 2003-05-04  Havoc Pennington  <hp@pobox.com>
9611
9612         * tools/dbus-launch.c: implement
9613
9614         * bus/main.c (main), bus/bus.c (bus_context_new):
9615         implement --print-pid and --fork
9616
9617 2003-05-03  Havoc Pennington  <hp@redhat.com>
9618
9619         * dbus/dbus-address.c (dbus_parse_address): fix bug when a key in
9620         the address had no value, and add to test suite. Fix and
9621         regression test from Miloslav Trmac
9622
9623 2003-05-03  Havoc Pennington  <hp@pobox.com>
9624
9625         * dbus/dbus-watch.c (dbus_watch_handle): warn and return if a
9626         watch is invalid when handled
9627
9628         * tools/Makefile.am, tools/dbus-launch.c, tools/dbus-launch.1: add
9629         dbus-launch utility to launch the bus from a shell script.  Didn't
9630         actually implement dbus-launch yet, it's just a placeholder still.
9631
9632 2003-05-03  Havoc Pennington  <hp@pobox.com>
9633
9634         * bus/Makefile.am, bus/dbus-daemon-1.1.in: man page for the
9635         daemon; also documents daemon config file, so replaces
9636         doc/config-file.txt. Corrected some stuff from config-file.txt in
9637         the process of moving it.
9638
9639 2003-05-03  Havoc Pennington  <hp@pobox.com>
9640
9641         * tools/Makefile.am, tools/dbus-send.1, tools/dbus-monitor.1:
9642         add some man pages
9643
9644 2003-05-03  Colin Walters  <walters@verbum.org>
9645
9646         * dbus/dbus-sysdeps.c (fill_user_info): Test against
9647         DBUS_UID_UNSET to determine whether to do a uid lookup or not.
9648
9649         * Makefile.am: Update to use new .pc versioning scheme.
9650
9651 2003-05-02  Havoc Pennington  <hp@redhat.com>
9652
9653         * bus/system.conf.in: allow send/receive to/from message bus
9654         service
9655
9656 2003-04-30  Havoc Pennington  <hp@redhat.com>
9657
9658         * configure.in: print a note when building with unit tests and
9659         without assertions
9660
9661 2003-04-30  Havoc Pennington  <hp@redhat.com>
9662
9663         * Makefile.am: add a check-local that complains if you didn't
9664         configure with --enable-tests
9665
9666 2003-04-29  Havoc Pennington  <hp@redhat.com>
9667
9668         * glib/dbus-gmain.c: docs cleanups
9669
9670         * dbus/dbus-types.h: add docs on int64 types
9671
9672         * dbus/dbus-memory.c: fix docs to avoid putting private API in
9673         public API docs section
9674
9675 2003-04-29  Havoc Pennington  <hp@redhat.com>
9676
9677         * dbus-1.pc.in, dbus-glib-1.pc.in: rename these from
9678         dbus-1.0.pc.in, dbus-glib-1.0.pc.in. As these change with the
9679         parallel install API version, not with the D-BUS package version.
9680
9681         * HACKING: move some of README over here
9682
9683         * README: updates, and document API/ABI policy
9684
9685         * configure.in: reindentation
9686
9687 2003-04-29  Havoc Pennington  <hp@redhat.com>
9688
9689         * dbus/dbus.h: add "you have to define DBUS_API_SUBJECT_TO_CHANGE
9690         to use this library" to be sure people have the right
9691         expectations.
9692
9693 2003-04-28  Havoc Pennington  <hp@redhat.com>
9694
9695         * configure.in: add --enable-docs which by default is auto yes if
9696         doxygen and db2html found, no otherwise; but can be forced on/off
9697
9698         * doc/Makefile.am: conditionalize whether to build docs on
9699         --enable-docs
9700
9701 2003-04-28  Havoc Pennington  <hp@redhat.com>
9702
9703         * configure.in: 0.10
9704
9705         * NEWS: update
9706
9707         * bus/system.conf.in: add <includedir>system.d</includedir>
9708
9709         * dbus/dbus-userdb.c (_dbus_user_database_lookup): fix bug when
9710         username was provided but not uid
9711
9712         * bus/config-parser.c (struct BusConfigParser): keep track of
9713         whether the parser is toplevel or was included; change some
9714         of the error handling if it's included.
9715
9716 2003-04-27  Havoc Pennington  <hp@pobox.com>
9717
9718         Unbreak my code...
9719
9720         * dbus/dbus-transport.c (_dbus_transport_get_dispatch_status):
9721         report correct status if we finish processing authentication
9722         inside this function.
9723
9724         * bus/activation.c (try_send_activation_failure): use
9725         bus_transaction_send_error_reply
9726
9727         * bus/connection.c (bus_connection_get_groups): return an error
9728         explaining the problem
9729
9730         * bus/bus.c (bus_context_check_security_policy): implement
9731         restriction here that inactive connections can only send the
9732         hello message. Also, allow bus driver to send anything to
9733         any recipient.
9734
9735         * bus/connection.c (bus_connection_complete): create the
9736         BusClientPolicy here instead of on-demand.
9737         (bus_connection_get_policy): don't return an error
9738
9739         * dbus/dbus-message.c (dbus_message_new_error_reply): allow NULL
9740         sender field in message being replied to
9741
9742         * bus/bus.c (bus_context_check_security_policy): fix silly typo
9743         causing it to return FALSE always
9744
9745         * bus/policy.c (bus_client_policy_check_can_send): fix bug where
9746         we checked sender rather than destination
9747
9748 2003-04-25  Havoc Pennington  <hp@redhat.com>
9749
9750         test suite is slightly hosed at the moment, will fix soon
9751
9752         * bus/connection.c (bus_connections_expire_incomplete): fix to
9753         properly disable the timeout when required
9754         (bus_connection_set_name): check whether we can remove incomplete
9755         connections timeout after we complete each connection.
9756
9757         * dbus/dbus-mainloop.c (check_timeout): fix this up a bit,
9758         probably still broken.
9759
9760         * bus/services.c (bus_registry_acquire_service): implement max
9761         number of services owned, and honor allow/deny rules on which
9762         services a connection can own.
9763
9764         * bus/connection.c (bus_connection_get_policy): report errors here
9765
9766         * bus/activation.c: implement limit on number of pending
9767         activations
9768
9769 2003-04-25  Havoc Pennington  <hp@redhat.com>
9770
9771         * dbus/dbus-transport.c (_dbus_transport_get_unix_user): fix bug
9772         where we used >= 0 instead of != DBUS_UID_UNSET.
9773
9774 2003-04-25  Havoc Pennington  <hp@redhat.com>
9775
9776         * glib/dbus-gmain.c (remove_watch): fix for a crash when watches
9777         were toggled without add/remove, fix from Anders Gustafsson
9778
9779 2003-04-24  Havoc Pennington  <hp@redhat.com>
9780
9781         * test/data/valid-config-files/basic.conf: add <limit> tags to
9782         this test
9783
9784         * bus/config-parser.h, bus/config-parser.c, bus/bus.c: Implement
9785         <limit> tag in configuration file.
9786
9787 2003-04-24  Havoc Pennington  <hp@redhat.com>
9788
9789         * bus/dispatch.c: somehow missed some name_is
9790
9791         * dbus/dbus-timeout.c (_dbus_timeout_set_enabled)
9792         (_dbus_timeout_set_interval): new
9793
9794         * bus/connection.c (bus_connections_setup_connection): record time
9795         when each connection is first set up, and expire them after the
9796         auth timeout passes.
9797
9798 2003-04-24  Havoc Pennington  <hp@redhat.com>
9799
9800         * dbus/dbus-message.c (dbus_message_name_is): rename
9801         (dbus_message_service_is): rename
9802         (dbus_message_sender_is): rename
9803         (dbus_message_get_service): rename
9804
9805 2003-04-24  Havoc Pennington  <hp@redhat.com>
9806
9807         * configure.in: add --enable-checks
9808
9809         * dbus/dbus-message.c (dbus_message_new): reverse name/service arguments
9810
9811         * dbus/dbus-connection.c (dbus_connection_preallocate_send): fix
9812         to use thread locks.
9813         (_dbus_connection_handler_destroyed_locked): move some private
9814         functions into proper docs group
9815
9816         * dbus/dbus-internals.h: add _dbus_return_if_fail,
9817         _dbus_return_val_if_fail
9818
9819         Throughout: use dbus_return_if_fail
9820
9821 2003-04-23  James Willcox  <jwillcox@gnome.org>
9822
9823         * glib/dbus-glib.h:
9824         * glib/dbus-gmain.c: (add_timeout), (wakeup_main), (create_source),
9825         (dbus_connection_setup_with_g_main),
9826         (dbus_server_setup_with_g_main):
9827         * glib/test-dbus-glib.c: (main):
9828         * glib/test-thread-client.c: (main):
9829         * glib/test-thread-server.c: (new_connection_callback), (main):
9830         * tools/dbus-monitor.c: (main):
9831
9832         Added a GMainContext argument to dbus_connection_setup_with_g_main()
9833         and dbus_server_setup_with_g_main().
9834
9835 2003-04-20  Havoc Pennington  <hp@pobox.com>
9836
9837         * doc/dbus-specification.sgml: document the restrictions on
9838         message and service names
9839
9840 2003-04-22  Havoc Pennington  <hp@redhat.com>
9841
9842         * dbus/dbus-message.c, dbus/dbus-marshal.c: add 64-bit integer
9843         support, and do some code cleanups to share more code and
9844         speed up array marshal/demarshal.
9845
9846         * dbus-1.0.pc.in (Cflags): put libdir include file in cflags
9847
9848         * configure.in: generate dbus-arch-deps.h
9849
9850         * dbus/dbus-protocol.h (DBUS_TYPE_INT64, DBUS_TYPE_UINT64): add
9851         64-bit typecodes
9852
9853 2003-04-22  Havoc Pennington  <hp@redhat.com>
9854
9855         * test/data/valid-messages/opposite-endian.message: fix test
9856         to use proper type for rply field
9857
9858         * test/data/invalid-messages: add tests for below validation
9859
9860         * dbus/dbus-message.c (decode_header_data): validate field types,
9861         and validate that named fields are valid names
9862         (decode_name_field): consider messages in the
9863         org.freedesktop.Local. namespace to be invalid.
9864
9865         * dbus/dbus-string.c (_dbus_string_validate_name): new
9866
9867 2003-04-19  Havoc Pennington  <hp@pobox.com>
9868
9869         * bus/driver.c (bus_driver_handle_hello): check limits and
9870         return an error if they are exceeded.
9871
9872         * bus/connection.c: maintain separate lists of active and inactive
9873         connections, and a count of each. Maintain count of completed
9874         connections per user. Implement code to check connection limits.
9875
9876         * dbus/dbus-list.c (_dbus_list_unlink): export
9877
9878         * bus/bus.c (bus_context_check_security_policy): enforce a maximum
9879         number of bytes in the message queue for a connection
9880
9881 2003-04-18  Havoc Pennington  <hp@pobox.com>
9882
9883         * dbus/dbus-auth.c (record_mechanisms): memleak fixes
9884
9885         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): fix some
9886         memleaks
9887
9888         * dbus/dbus-keyring.c (add_new_key): fix a memleak, and
9889         on realloc be sure to update the pointer in the keyring
9890
9891         * dbus/dbus-string.c (_dbus_string_zero): compensate for align
9892         offset to avoid writing to unallocated memory
9893
9894         * dbus/dbus-auth.c (process_rejected): return FALSE if we fail to
9895         try the next mechanism, so we properly handle OOM
9896
9897         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): fix double-free
9898         on OOM.
9899         (_dbus_keyring_new): fix OOM bug
9900         (_dbus_keyring_new_homedir): always set error; impose a maximum
9901         number of keys we'll load from the file, mostly to speed up the
9902         test suite and make its OOM checks more useful, but also for
9903         general sanity.
9904
9905         * dbus/dbus-auth.c (process_error_server): reject authentication
9906         if we get an error from the client
9907         (process_cancel): on cancel, send REJECTED, per the spec
9908         (process_error_client): send CANCEL if we get an error from the
9909         server.
9910
9911 2003-04-18  Havoc Pennington  <hp@pobox.com>
9912
9913         * dbus/dbus-mainloop.c (_dbus_loop_iterate): fix UMR in verbose
9914         debug spew
9915
9916         * dbus/dbus-auth.c (handle_client_data_cookie_sha1_mech): fix OOM
9917         handling problem
9918
9919         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): only whine
9920         about DBUS_TEST_HOMEDIR once
9921
9922         * bus/Makefile.am (TESTS_ENVIRONMENT): put DBUS_TEST_HOMEDIR in
9923         the environment
9924
9925         * bus/dispatch.c (bus_dispatch_sha1_test): actually load sha1
9926         config file so we test the right thing
9927
9928         Throughout: assorted docs improvements
9929
9930 2003-04-18  Havoc Pennington  <hp@pobox.com>
9931
9932         * glib/dbus-gmain.c: adapt to watch changes
9933
9934         * bus/bus.c, bus/activation.c, etc.: adjust to watch changes
9935
9936         * dbus/dbus-server.h: remove dbus_server_handle_watch
9937
9938         * dbus/dbus-connection.h: remove dbus_connection_handle_watch
9939
9940         * dbus/dbus-watch.c (dbus_watch_handle): change DBusWatch to work
9941         like DBusTimeout, so we don't need dbus_connection_handle_watch
9942         etc.
9943
9944 2003-04-17  Havoc Pennington  <hp@redhat.com>
9945
9946         * dbus/dbus-userdb.c, dbus/dbus-sysdeps.c: redo all the passwd
9947         database usage so it all goes via the DBusUserDatabase cache.
9948
9949 2003-04-17  Havoc Pennington  <hp@redhat.com>
9950
9951         * dbus/dbus-mainloop.c (_dbus_loop_iterate): fix logic so that if
9952         there was an OOM watch we skipped, we always return TRUE so we
9953         iterate again to have a look at it again. Fixes test suite hang.
9954         Code rearrangement also lets us lose some memset and only iterate
9955         over callbacks once.
9956
9957         * bus/driver.c (bus_driver_handle_message): sense of test for
9958         reply was backward
9959
9960 2003-04-16  Havoc Pennington  <hp@pobox.com>
9961
9962         * doc/dbus-specification.sgml: make spec say serials are unsigned
9963
9964         * dbus/dbus-message.h: change message serials to unsigned
9965
9966         * dbus/dbus-connection.c: adapt to message serials being unsigned
9967
9968 2003-04-15  Havoc Pennington  <hp@pobox.com>
9969
9970         * bus/bus.c: create and keep around a shared DBusUserDatabase
9971         object.
9972
9973         * bus/connection.c (bus_connection_get_groups): don't cache
9974         groups for user in the connection object, since user database
9975         object now does that.
9976
9977 2003-04-16  Havoc Pennington  <hp@redhat.com>
9978
9979         * dbus/dbus-message.c (_dbus_message_add_size_counter): keep a
9980         list of size counters
9981         (_dbus_message_loader_putback_message_link): put back a popped link
9982
9983         * dbus/dbus-connection.c
9984         (dbus_connection_set_max_live_messages_size): rename
9985         max_received_size
9986         (dbus_connection_get_outgoing_size): get size of outgoing
9987         queue
9988         (_dbus_connection_set_connection_counter): remove this cruft
9989
9990 2003-04-14  Havoc Pennington  <hp@redhat.com>
9991
9992         * dbus/dbus-userdb.c: user database abstraction, mostly to get
9993         caching, but at some point we might want to be able to use a
9994         different database.
9995
9996         * bus/dispatch.c (bus_dispatch_sha1_test): add a test that uses
9997         SHA1 conf file to test the sha1 auth mechanism, since the regular
9998         test always uses EXTERNAL when available.
9999
10000         * configure.in,
10001         test/data/valid-config-files/debug-allow-all-sha1.conf.in:
10002         add conf file that requires use of sha1 auth
10003
10004 2003-04-13  Havoc Pennington  <hp@pobox.com>
10005
10006         * tools/dbus-send.c, tools/dbus-monitor.c: two utility programs
10007         from Philip Blundell to send messages and monitor them.
10008
10009 2003-04-13  Havoc Pennington  <hp@pobox.com>
10010
10011         * dbus/dbus-mainloop.c: fix some reentrancy issues by refcounting
10012         callbacks
10013
10014         * test/data/valid-config-files/debug-allow-all.conf.in: allow all
10015         users
10016
10017         * dbus/dbus-transport.c (_dbus_transport_get_dispatch_status):
10018         fix to only recover unused bytes if we're already authenticated
10019         (_dbus_transport_get_is_authenticated): fix to still mark us
10020         authenticated if there are unused bytes.
10021
10022         * bus/dispatch.c: implement security policy checking
10023
10024         * bus/connection.c (bus_transaction_send_from_driver): new
10025
10026         * bus/bus.c (bus_context_check_security_policy): new
10027
10028         * bus/dispatch.c (send_service_nonexistent_error): delete this,
10029         now we just set the DBusError and it gets converted to an error
10030         reply.
10031
10032         * bus/connection.c (allow_user_function): enable code using actual
10033         data from the config file
10034
10035         * bus/policy.c (list_allows_user): handle wildcard rules for
10036         user/group connection perms
10037
10038 2003-04-13  Havoc Pennington  <hp@pobox.com>
10039
10040         * bus/config-parser.c: Load up the BusPolicy and BusPolicyRules
10041
10042         * dbus/dbus-sysdeps.c (_dbus_get_user_id): new function
10043
10044         * bus/policy.c (bus_policy_append_mandatory_rule)
10045         (bus_policy_append_default_rule, bus_policy_append_user_rule)
10046         (bus_policy_append_group_rule): new functions
10047
10048 2003-04-12  Havoc Pennington  <hp@pobox.com>
10049
10050         * bus/config-parser.c (bus_config_parser_new): fix a memleak
10051
10052         * dbus/dbus-sysdeps.c: change DBusCredentials to use longs for
10053         the pid/gid/uid, just for paranoia.
10054
10055         * test/break-loader.c (randomly_do_n_things): find a byte
10056         containing a type code, and randomly change it to a different
10057         type code.
10058
10059 2003-04-12  Havoc Pennington  <hp@pobox.com>
10060
10061         * bus/policy.h: change BusPolicy to be the thing from the config
10062         file, and rename old BusPolicy to BusClientPolicy
10063
10064         * bus/bus.c, bus/connection.c, bus/config-parser.c: change to
10065         match change in how policy works
10066
10067         * dbus/dbus-internals.h: mark assert_not_reached as
10068         __attribute((noreturn))__
10069
10070 2003-04-11  Havoc Pennington  <hp@redhat.com>
10071
10072         * doc/dbus-specification.sgml: fix a spot with the wrong name for
10073         the broadcast service. Use boolean return for ServiceExists.
10074
10075 2003-04-11  Havoc Pennington  <hp@redhat.com>
10076
10077         * configure.in: add another directory to look for qt in.
10078
10079 2003-04-11  Havoc Pennington  <hp@redhat.com>
10080
10081         * AUTHORS: add Colin Walters
10082
10083 2003-04-11  Havoc Pennington  <hp@redhat.com>
10084
10085         * NEWS: update
10086
10087         * configure.in: 0.9
10088
10089 2003-04-11  Havoc Pennington  <hp@redhat.com>
10090
10091         * bus/messagebus.in: remove pid file when stopping the
10092         message bus, since the bus won't have privileges to remove it
10093         itself.
10094
10095 2003-04-11  Havoc Pennington  <hp@redhat.com>
10096
10097         * bus/bus.c (bus_context_new): move credentials change after
10098         creating pidfile
10099
10100 2003-04-11  Havoc Pennington  <hp@pobox.com>
10101
10102         * test/decode-gcov.c: add "below average functions" to the
10103         coverage report, and change how some of the code works.
10104
10105         * bus/test-main.c: bracket some stuff in DBUS_BUILD_TESTS so it's
10106         not in the coverage stats.
10107
10108         * test/test-service.c (main): use _dbus_verbose not fprintf in a
10109         couple places so running the test suite doesn't result in megaspam.
10110
10111 2003-04-11  Havoc Pennington  <hp@pobox.com>
10112
10113         * bus/dispatch.c (check_existent_service_activation): accept a no
10114         memory error in a place we didn't before
10115
10116         * bus/test.c (bus_test_run_everything): remove hacky "do it twice
10117         in case the first one failed," since the test suite is less
10118         broken now.
10119
10120 2003-04-10  Havoc Pennington  <hp@pobox.com>
10121
10122         * bus/dispatch.c (check_segfault_service_activation): add test
10123         for launching an executable that just crashes.
10124
10125         * test/test-segfault.c (main): try setting coredumpsize to 0 so we
10126         don't leave a million cores. We'll see how portable this is.
10127
10128 2003-04-10  Havoc Pennington  <hp@pobox.com>
10129
10130         * dbus/dbus-spawn.c (_dbus_spawn_async_with_babysitter): move all
10131         the possible parent failures before we fork, so that we don't
10132         fail to create a babysitter after creating the child.
10133
10134         * bus/activation.c (bus_activation_activate_service): kill child
10135         if we don't successfully complete the activation.
10136
10137 2003-04-10  Havoc Pennington  <hp@redhat.com>
10138
10139         * dbus/dbus-connection.c (dbus_connection_flush): don't spin on
10140         the connection if it's disconnected
10141
10142         * bus/activation.c (bus_activation_service_created): use new
10143         transaction features to roll back removal of pending activation if
10144         we don't successfully create the service after all. Don't remove
10145         pending activation if the function fails.
10146
10147         * dbus/dbus-list.c (_dbus_list_insert_before_link)
10148         (_dbus_list_insert_after_link): new code to facilitate
10149         services.c fixes
10150
10151         * dbus/dbus-hash.c (_dbus_hash_table_insert_string_preallocated):
10152         new functionality, so we can preallocate the ability to insert
10153         into a hash table.
10154
10155         * bus/connection.c (bus_transaction_add_cancel_hook): new function
10156         allowing us to put custom hooks in a transaction to be used for
10157         cancelling said transaction
10158
10159         * doc/dbus-specification.sgml: add some discussion of secondary
10160         service owners, and disallow zero-length service names
10161
10162         * bus/services.c (bus_registry_acquire_service): new function,
10163         splits out part of bus_driver_handle_acquire_service() and fixes
10164         a bug where we didn't remove the service doing the acquiring
10165         from the secondary queue if we failed to remove the current owner
10166         from the front of the queue.
10167
10168 2003-04-10  Alexander Larsson  <alexl@redhat.com>
10169
10170         * doc/dbus-specification.sgml:
10171         s/org.freedesktop.Broadcast/org.freedesktop.DBus.Broadcast/
10172
10173 2003-04-10  Alexander Larsson  <alexl@redhat.com>
10174
10175         * bus/.cvsignore:
10176         * glib/.cvsignore:
10177         * test/.cvsignore:
10178         Added files to cvsignore
10179
10180         * dbus/dbus-message.h:
10181         * dbus/dbus-message.c: (dbus_message_iter_get_named):
10182         Make get_named() take two out argument and return a boolean.
10183         (dbus_message_iter_get_args_valist):
10184         Update usage of get_named().
10185         (dbus_message_iter_append_byte):
10186         Fix typo
10187         (dbus_message_iter_append_named)
10188         Fix typo
10189         (message_iter_test), (check_message_handling_type), (_dbus_message_test):
10190         More tests.
10191
10192 2003-04-10  Alexander Larsson  <alexl@redhat.com>
10193
10194         * dbus/dbus-marshal.[ch]:
10195         Add array_type_pos argument to _dbus_marshal_validate_arg.
10196         Let you pass a NULL end_pos to _dbus_marshal_validate_type.
10197
10198         * dbus/dbus-message.[ch]:
10199         Multi-dimensional arrays have full type specification in the
10200         outermost array. Iter code re-arranged to handle this.
10201         Added some more iter tests.
10202
10203         * doc/dbus-specification.sgml:
10204         Add me to authors.
10205         Remove old FIXME.
10206         Update new array encoding description.
10207         Correct DBUS_SERVICE_FLAGS_REPLACE_EXISTING description.
10208
10209         * test/data/invalid-messages/array-with-mixed-types.message:
10210         * test/data/valid-messages/array-of-array-of-uint32.message:
10211         Change to the new array format.
10212
10213         * test/data/invalid-messages/too-short-dict.message:
10214         Fix bug in test.
10215
10216         * test/data/valid-messages/recursive-types.message:
10217         Fix up and extend test.
10218
10219 2003-04-10  Havoc Pennington  <hp@pobox.com>
10220
10221         * bus/dispatch.c: lots of fixes
10222
10223         * dbus/dbus-mainloop.c (_dbus_loop_dispatch): export
10224         (_dbus_loop_iterate): remove old "quit if no callbacks" code,
10225         that was crack, broke the test service.
10226
10227         * dbus/dbus-transport.c (_dbus_transport_open): fix error
10228         handling to avoid piling up errors if we get a failure on the
10229         first address.
10230
10231         * dbus/dbus-internals.c (_dbus_real_assert_not_reached): include
10232         pid in assertion failures.
10233
10234         * dbus/dbus-mainloop.c (_dbus_loop_iterate): use static arrays up
10235         to some fixed size of file descriptor array. Don't return TRUE
10236         anytime a timeout exists, that led to lots of busy loop silliness
10237         in the tests.
10238
10239 2003-04-09  Havoc Pennington  <hp@redhat.com>
10240
10241         * dbus/dbus-mainloop.c (check_timeout): fix timeouts, I thought
10242         I'd checked this in earlier but hadn't.
10243
10244 2003-04-09  Havoc Pennington  <hp@redhat.com>
10245
10246         * bus/dispatch.c (bus_dispatch_test): get a bit further through
10247         the activation test (man this is getting old!)
10248
10249 2003-04-09  Havoc Pennington  <hp@redhat.com>
10250
10251         * test/test-utils.c: use dispatch status function to fix this up
10252
10253         * bus/connection.c (connection_watch_callback): don't dispatch
10254         from here
10255         (connection_timeout_callback): don't dispatch from here
10256         (bus_connections_setup_connection): set the dispatch status function
10257         (bus_connection_disconnected): unset it
10258
10259         * dbus/dbus-mainloop.c (_dbus_loop_queue_dispatch): new function
10260         used to add a connection to be dispatched
10261         (_dbus_loop_iterate): do the dispatching at the end of each
10262         iteration
10263
10264         * dbus/dbus-connection.c
10265         (dbus_connection_set_dispatch_status_function): new function
10266         allowing us to fix up main loop usage
10267         (_dbus_connection_last_unref): free all the various function
10268         user data
10269         (dbus_connection_dispatch): call the DispatchStatusFunction
10270         whenever this function returns
10271         (dbus_connection_handle_watch): call DispatchStatusFunction
10272         (dbus_connection_send_with_reply_and_block): call DispatchStatusFunction
10273         (reply_handler_timeout): call DispatchStatusFunction
10274         (dbus_connection_flush): call DispatchStatusFunction
10275
10276 2003-04-09  Havoc Pennington  <hp@redhat.com>
10277
10278         * dbus/dbus-bus.c (dbus_bus_register): fix up error handling and
10279         a memory leak
10280
10281         * bus/dispatch.c (check_service_activated): fix bug in test
10282
10283         * dbus/dbus-mainloop.c (check_timeout): fix this up
10284
10285         * dbus/dbus-internals.c (_dbus_verbose_real): include PID in
10286         verbose output so we can sort out output from different processes,
10287         e.g. in the activation case.
10288
10289 2003-04-08  Colin Walters  <walters@gnu.org>
10290
10291         * bus/bus.c (struct BusContext) [pidfile]: New member, to store
10292         the pid file.
10293         (bus_context_new): Set it.
10294         (bus_context_unref): Use it to delete the pid file.
10295
10296 2003-04-08  Havoc Pennington  <hp@redhat.com>
10297
10298         * test/data/invalid-messages/array-with-mixed-types.message:
10299         regression test that fails for the moment
10300
10301         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): reorder
10302         tests for convenience
10303
10304         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): don't allow
10305         array of nil, it broke things.
10306
10307         * test/data/invalid-messages/array-of-nil.message: regression test
10308
10309         * test/data/valid-messages/array-of-array-of-uint32.message:
10310         happened to write this so added it to suite
10311
10312 2003-04-08  Havoc Pennington  <hp@redhat.com>
10313
10314         * bus/driver.c (bus_driver_handle_acquire_service): init
10315         retval/reply before checking name
10316
10317         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): add a
10318         recursion depth argument
10319
10320         * dbus/dbus-message.h (struct DBusMessageIter): put some padding
10321         in the public struct for future extension
10322
10323         * dbus/dbus-message-builder.c (_dbus_message_data_load): fix
10324         typo
10325
10326         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): fix a verbose
10327         message
10328
10329         * doc/dbus-specification.sgml: fix typo
10330
10331 2003-04-08  Alexander Larsson  <alexl@redhat.com>
10332
10333         Implemented recursive types, named types and new-style iters
10334
10335         * bus/driver.c:
10336         * glib/test-thread-client.c: (thread_func):
10337         * glib/test-thread-server.c: (handle_test_message):
10338         * test/test-service.c: (handle_echo):
10339         Update to new api
10340
10341         * dbus/Makefile.am:
10342         * dbus/dbus-dict.c:
10343         * dbus/dbus-dict.h:
10344         * dbus/dbus.h
10345         Remove DBusDict
10346
10347         * dbus/dbus-internals.c: (_dbus_type_to_string):
10348         Update for new types.
10349
10350         * dbus/dbus-marshal.[ch]:
10351         Implement recursive types and the new marshalling format.
10352         Remove hardcoded dict marshalling.
10353         Marshal named types.
10354
10355         * dbus/dbus-message-builder.c:
10356         Add BYTE_ARRAY.
10357         Remove references to old types
10358
10359         * dbus/dbus-message.[ch]:
10360         New non-refcounted iter API that supports recursive iters.
10361         Use iters for appending, including support for recursive
10362         iters.
10363         Add byte and named type support.
10364         Update everything to new marshalling formats.
10365         Add tests for new API.
10366
10367         * dbus/dbus-protocol.h:
10368         Remove old array types.
10369         Add types: BYTE, ARRAY, DICT, NAMED
10370
10371         * dbus/dbus-string.c:
10372         * dbus/dbus-sysdeps.c:
10373         Make parse_double locale safe.
10374
10375         * dbus/dbus-test-main.c:
10376         Call setlocale.
10377
10378         * dbus/dbus-test.c:
10379         Kill dict test
10380
10381         * doc/dbus-specification.sgml:
10382         Update spec
10383
10384         * test/data/incomplete-messages/missing-body.message:
10385         * test/data/invalid-messages/bad-boolean.message:
10386         * test/data/invalid-messages/bad-boolean-array.message:
10387         * test/data/invalid-messages/boolean-array-length-too-long.message-raw:
10388         * test/data/invalid-messages/boolean-has-no-value.message-raw:
10389         * test/data/invalid-messages/too-short-dict.message:
10390         * test/data/valid-messages/dict-simple.message:
10391         * test/data/valid-messages/dict.message:
10392         * test/data/valid-messages/emptiness.message:
10393         * test/data/valid-messages/lots-of-arguments.message:
10394         * test/data/valid-messages/no-padding.message:
10395         * test/data/valid-messages/recursive-types.message:
10396         Add missing NAME fields
10397         Fix up dicts & arrays
10398
10399         * test/data/invalid-messages/dict-with-nil-value.message:
10400         Removed, this is not invalid anymore.
10401
10402         * test/data/valid-messages/recursive-types.message:
10403         Add new test for deeply recursive types.
10404
10405 2003-04-07  Havoc Pennington  <hp@pobox.com>
10406
10407         * bus/driver.c (bus_driver_handle_acquire_service): return an
10408         error if you try to acquire a service that starts with ':'
10409
10410 2003-04-07  Havoc Pennington  <hp@redhat.com>
10411
10412         * doc/dbus-specification.sgml: require that base service names
10413         start with ':' and that the base service is created/deleted
10414         as first and last things a connection does on the bus
10415
10416         * bus/dispatch.c (check_existent_service_activation): lots more
10417         work on the activation test; it doesn't fully pass yet...
10418
10419         * test/test-service.c (main): fix so we don't memleak the
10420         connection to the message bus
10421         (filter_func): accept a message asking us to exit
10422
10423 2003-04-06  Havoc Pennington  <hp@pobox.com>
10424
10425         * qt/Makefile.am (dbusinclude_HEADERS): install dbus-qt.h,
10426         from Colin Walters
10427
10428         * configure.in: fixes to Qt detection from Colin Walters
10429
10430         * doc/Makefile.am: Only remove generated docbook dirs if they
10431         exist, from Colin Walters
10432
10433         * dbus/dbus-bus.c: change how we set well-known connections to
10434         NULL, so that it works if a single connection is stored in
10435         two well-known array slots.
10436
10437         * test/Makefile.am: remove a lot of stuff that isn't immediately
10438         useful, it's in CVS history if we want it.
10439
10440         * test/test-service.c: use dbus-mainloop instead of that
10441         watch.[hc] crack
10442
10443 2003-04-06  Havoc Pennington  <hp@pobox.com>
10444
10445         * dbus/Makefile.am: split lists of sources into stuff that goes in
10446         the library, util functions that go in the lib and are also used
10447         elsewhere, and util functions that are used in tests/daemon but
10448         don't go in the lib.
10449
10450         * dbus/dbus-mainloop.h, dbus/dbus-mainloop.c: move bus/loop.[hc]
10451         here so it can be used in test binaries also
10452
10453 2003-04-06  Havoc Pennington  <hp@pobox.com>
10454
10455         * dbus/dbus-sysdeps.c (_dbus_become_daemon): write the pidfile
10456         here in the parent process, so we can return an error if it
10457         fails. Also, move some of the code into the child so the parent
10458         is less hosed if we fail midway through.
10459
10460         * bus/bus.c (bus_context_new): move pidfile detection further up
10461         in the function, before we start overwriting sockets and such.
10462
10463         * bus/messagebus.in: adjust this a bit, not sure if it will work.
10464
10465         * configure.in: add --with-system-pid-file and --with-system-socket
10466
10467 2003-04-06  Colin Walters  <walters@verbum.org>
10468
10469         * configure.in (DBUS_SYSTEM_PID_FILE): New variable.
10470
10471         * bus/system.conf.in: Declare a pidfile.
10472
10473         * bus/bus.c (bus_context_new): Test for an existing pid file, and
10474         create one (if appropriate).
10475
10476         * bus/config-parser.c (enum ElementType) [ELEMENT_PIDFILE]: New.
10477         (struct BusConfigParser) [pidfile]: New.
10478         (element_type_to_name, merge_included, start_busconfig_child)
10479         (bus_config_parser_end_element, bus_config_parser_content): Handle it.
10480         (bus_config_parser_unref): Free it.
10481         (bus_config_parser_get_pidfile): New function.
10482
10483         * bus/config-parser.h (_dbus_write_pid_file): Prototype.
10484
10485         * dbus/dbus-errors.h (DBUS_ERROR_PIDFILE_EXISTS): New error.
10486
10487         * dbus/dbus-sysdeps.c (_dbus_write_pid_file): New function.
10488
10489         * dbus/dbus-sysdeps.h: Prototype it.
10490
10491 2003-04-06  Havoc Pennington  <hp@pobox.com>
10492
10493         * bus/bus.c (bus_context_new): print the address in here, rather
10494         than in main(), because we need to do it before forking the daemon
10495
10496         * bus/dispatch.c (send_service_nonexistent_error): set the sender
10497         on the service nonexistent error
10498
10499         * bus/driver.c (bus_driver_handle_acquire_service): set the
10500         sender on the AcquireService reply
10501
10502         * test/data/valid-config-files/debug-allow-all.conf.in: Make test
10503         server also listen on a UNIX socket so services can connect to it.
10504
10505 2003-04-06  Havoc Pennington  <hp@pobox.com>
10506
10507         * dbus/dbus-threads.c: Redo how the fake debug mutexes are done
10508         so it detects deadlocks and also we actually init threads when
10509         debugging.
10510
10511 2003-04-06  Havoc Pennington  <hp@pobox.com>
10512
10513         * dbus/dbus-server-unix.c (_dbus_server_new_for_domain_socket):
10514         save the domain socket name, and unlink it when we disconnect the
10515         server. Means that at least when we exit normally, we won't leave
10516         a bunch of junk in /tmp
10517
10518         * dbus/dbus-transport-unix.c
10519         (_dbus_transport_new_for_domain_socket): code cleanup (nicer
10520         memory management). (I was making a real change here but then
10521         didn't)
10522
10523 2003-04-06  Havoc Pennington  <hp@pobox.com>
10524
10525         * bus/bus.c (bus_context_new): fix wrong handling of
10526         server_data_slot_unref() in the error case.
10527
10528         * dbus/dbus-internals.h (_dbus_assert): change so it passes
10529         "(condition) != 0" to _dbus_real_assert so that
10530         "_dbus_assert (pointer)" doesn't cause a warning
10531
10532         * bus/main.c (main): accept --print-address option to print out
10533         the message bus address
10534
10535         * dbus/dbus-sysdeps.c (_dbus_generate_random_ascii): export this
10536
10537         * dbus/dbus-transport.c (_dbus_transport_open): special error for
10538         "tmpdir" option to unix: address on client side
10539
10540         * dbus/dbus-server.c (dbus_server_listen): handle "tmpdir" option
10541         to unix: address
10542
10543         * configure.in (TEST_SOCKET_DIR): locate a temporary directory
10544         we can use to create sockets in the test suite.
10545
10546         * bus/main.c (signal_handler): on SIGTERM, exit the daemon
10547         cleanly. To be used for testing.
10548
10549         * dbus/dbus-spawn.c (babysit): use _dbus_set_signal_handler()
10550
10551         * dbus/dbus-sysdeps.c (_dbus_set_signal_handler): new
10552
10553         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
10554         handle trying to call this when there's no servers active
10555
10556 2003-04-05  Havoc Pennington  <hp@pobox.com>
10557
10558         * NEWS: update
10559
10560         * configure.in: 0.8
10561
10562 2003-04-05  Havoc Pennington  <hp@pobox.com>
10563
10564         * bus/bus.c (setup_server): fix this so dbus-daemon-1 doesn't
10565         crash on startup. Need to get "try starting the daemon"
10566         in the test suite I guess. ;-)
10567
10568         * dbus/dbus-server.h, dbus/dbus-server.c: remove the stuff that
10569         tracked the number of open connections; it's better done in
10570         application-specific code as you want it to span all servers etc.
10571
10572 2003-04-05  Havoc Pennington  <hp@pobox.com>
10573
10574         * bus/Makefile.am (install-data-hook): add missing DESTDIR,
10575         patch from Colin Walters
10576
10577 2003-04-05  Havoc Pennington  <hp@pobox.com>
10578
10579         * doc/config-file.txt (Elements): fix docs of <auth> to reflect
10580         reality; in fact multiple mechanisms are allowed.
10581
10582         * dbus/dbus-internals.c (_dbus_real_assert)
10583         (_dbus_real_assert_not_reached): move guts of _dbus_assert() and
10584         _dbus_assert_not_reached() into functions, so that they don't show
10585         up in basic block counts for test coverage, and don't use up as
10586         much disk space. Does mean slower execution speed though, so
10587         assumes --disable-asserts is the normal production case.
10588
10589 2003-04-05  Havoc Pennington  <hp@pobox.com>
10590
10591         * test/Makefile.am (dist-hook): also dist *.in files
10592
10593         * NEWS: update
10594
10595         * configure.in: 0.7
10596
10597 2003-04-05  Havoc Pennington  <hp@pobox.com>
10598
10599         * dbus/dbus-string.c: docs warning
10600
10601         * dbus/dbus-spawn.c: missing docs
10602
10603         * dbus/dbus-memory.c (struct ShutdownClosure): missing docs
10604
10605 2003-04-05  Havoc Pennington  <hp@pobox.com>
10606
10607         * bus/loop.c (bus_loop_iterate): fix the timeout code, using
10608         magic from GLib
10609
10610         * dbus/dbus-spawn.c (_dbus_babysitter_unref): set sitter_pid
10611         to -1 once we've reaped the babysitter
10612         (_dbus_babysitter_handle_watch): do as much work as we can, not
10613         just one go of it
10614
10615         * bus/activation.c: add code using DBusBabysitter so that we
10616         handle it when a service fails to start up properly.
10617         (bus_activation_service_created): don't remove the activation
10618         entries as we go, just let them get removed when we free the pending
10619         activation. Unref reply messages after sending them.
10620
10621 2003-04-05  Havoc Pennington  <hp@pobox.com>
10622
10623         * test/decode-gcov.c (main): print per-directory stats in the report
10624
10625         * Makefile.am (coverage-report.txt): don't include test/* in gcov stats
10626
10627 2003-04-05  Havoc Pennington  <hp@pobox.com>
10628
10629         * Makefile.am (coverage-report.txt): add target "coverage-report.txt"
10630
10631         * test/decode-gcov.c: hack up a little program to suck data
10632         out of gcov files. Yes this is sort of silly.
10633
10634         * configure.in: define something in config.h and do an
10635         AM_CONDITIONAL when gcov is enabled
10636
10637 2003-04-04  Havoc Pennington  <hp@redhat.com>
10638
10639         * dbus/dbus-spawn.c, dbus/dbus-spawn.h: Change dbus_spawn to
10640         return a "babysitter" object that is used to monitor the status of
10641         the spawned process and reap it when required.
10642
10643         * test/test-segfault.c, test/test-exit.c,
10644         test/test-sleep-forever.c: binaries that do various lame things,
10645         used in the test suite.
10646
10647         * dbus/dbus-sysdeps.c: kill _dbus_errno_to_string()
10648
10649 2003-04-03  Havoc Pennington  <hp@pobox.com>
10650
10651         * dbus/dbus-spawn.c: Move dbus-spawn into a separate file
10652         in preparation for modifying it, dbus-sysdeps is getting
10653         a bit unmanageable.
10654
10655 2003-04-03  Havoc Pennington  <hp@redhat.com>
10656
10657         * bus/loop.h, bus/loop.c: make the mainloop an object so we can
10658         have multiple ones
10659
10660         * bus/*.[hc]: adapt to mainloop change
10661
10662 2003-04-03  Havoc Pennington  <hp@redhat.com>
10663
10664         * bus/activation.c (load_directory): fix up memleaks
10665         (bus_activation_entry_free): free the entry
10666
10667         * dbus/dbus-bus.c (dbus_bus_acquire_service): return an error if
10668         we get one from the message bus; fix memleaks.
10669
10670         * dbus/dbus-message.c (dbus_set_error_from_message): new function
10671
10672 2003-04-03  Havoc Pennington  <hp@pobox.com>
10673
10674         * bus/config-parser.c (bus_config_parser_unref): free
10675         list of mechanisms, bug discovered by test suite enhancements
10676         (putting system.conf and session.conf into suite)
10677
10678         * test/Makefile.am, test/test-service.c: add placeholder for a
10679         test service that we'll activate as part of test suite. Doesn't
10680         do anything yet.
10681
10682         * dbus/dbus-sysdeps.c (_dbus_setenv): support unsetenv by
10683         setting NULL value, and use system malloc not dbus_malloc()
10684         when we have unavoidable memleakage.
10685
10686         * dbus/dbus-bus.c (dbus_bus_get): fix bug where bus type of 0
10687         didn't work, and support DBUS_BUS_ACTIVATION.
10688
10689         * bus/activation.c (child_setup): pass our well-known bus type to
10690         the child
10691
10692         * bus/config-parser.c: support <type> to specify well-known type
10693
10694         * doc/dbus-specification.sgml: document the env variables to
10695         locate well-known buses and find service activator
10696
10697 2003-04-02  Havoc Pennington  <hp@redhat.com>
10698
10699         * test/Makefile.am (all-local): add a rule to copy tests to
10700         builddir, so we can have generated tests. Use this to remove the
10701         silly hack for testing system.conf and session.conf. Will use this
10702         shortly to generate .service files pointing to test binaries.
10703
10704 2003-04-02  Havoc Pennington  <hp@redhat.com>
10705
10706         * dbus/dbus-string.c (set_length): fix a bug - we allocated max of
10707         current alloc and needed new length, not max of the doubled
10708         allocation and needed new length. Also, when building tests,
10709         don't do the double-allocation stuff, just realloc every time.
10710
10711 2003-04-02  Havoc Pennington  <hp@redhat.com>
10712
10713         * dbus/dbus-sysdeps.c (_dbus_file_get_contents): include filenames
10714         in error messages
10715         (_dbus_string_get_dirname): new
10716         (_dbus_sysdeps_test): new
10717         (_dbus_directory_open): include dirnames in error messages
10718
10719         * bus/config-parser.c: interpret <include> and <includedir> and
10720         <servicedir> relative to config file location if the given
10721         filename is not absolute.
10722
10723         * dbus/dbus-string.c (_dbus_string_find_byte_backward): new
10724
10725 2003-04-02  Havoc Pennington  <hp@redhat.com>
10726
10727         * bus/connection.c (bus_transaction_send_error_reply): set sender
10728         service for the error, and unref the reply on success
10729
10730         * bus/activation.c: convert to use BusTransaction so OOM can be
10731         handled correctly
10732         (bus_activation_service_created): set sender of the message
10733
10734 2003-04-01  Havoc Pennington  <hp@redhat.com>
10735
10736         * bus/config-parser.c, bus/bus.c: implement <servicedir> and
10737         <includedir> (at least mostly)
10738
10739         * dbus/dbus-sysdeps.c (_dbus_change_identity): set the group ID
10740         first, then the user ID
10741
10742 2003-04-01  Havoc Pennington  <hp@pobox.com>
10743
10744         * dbus/dbus-server.c (dbus_server_set_auth_mechanisms): new
10745         function
10746
10747         * dbus/dbus-auth.c (_dbus_auth_set_mechanisms): new
10748
10749         * dbus/dbus-internals.c (_dbus_dup_string_array): new function
10750
10751         * dbus/dbus-sysdeps.c (_dbus_listen_unix_socket): chmod the
10752         socket 0777, and unlink any existing socket.
10753
10754         * bus/bus.c (bus_context_new): change our UID/GID and fork if
10755         the configuration file so specifies; set up auth mechanism
10756         restrictions
10757
10758         * bus/config-parser.c (bus_config_parser_content): add support
10759         for <fork> option and fill in code for <auth>
10760
10761         * bus/system.conf.in: add <fork/> to default configuration,
10762         and limit auth mechanisms to EXTERNAL
10763
10764         * doc/config-file.txt (Elements): add <fork>
10765
10766         * dbus/dbus-sysdeps.c (_dbus_become_daemon): new function
10767         (_dbus_change_identity): new function
10768
10769 2003-03-31  Havoc Pennington  <hp@redhat.com>
10770
10771         * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket)
10772         (_dbus_listen_unix_socket): fix off-by-one error in null
10773         termination spotted by Nalin
10774
10775 2003-03-31  Havoc Pennington  <hp@redhat.com>
10776
10777         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): allow setting
10778         DBUS_TEST_HOMEDIR when tests are enabled, so we can test without
10779         having a real home directory available.
10780
10781 2003-03-31  Havoc Pennington  <hp@redhat.com>
10782
10783         * bus/Makefile.am (install-data-hook): create /var/run/dbus
10784
10785         * bus/messagebus.in: add init script for Red Hat /etc/init.d
10786
10787         * configure.in: add support for specifying a style of init script
10788         to install
10789
10790 2003-03-31  Havoc Pennington  <hp@redhat.com>
10791
10792         Fix some annoying DBusString API and fix all affected code.
10793
10794         * dbus/dbus-string.c (_dbus_string_init): get rid of annoying
10795         max_length argument
10796         (_dbus_string_get_data): change to return string instead of using
10797         an out param
10798         (_dbus_string_get_const_data): ditto
10799         (_dbus_string_get_data_len): ditto
10800         (_dbus_string_get_const_data_len): ditto
10801
10802 2003-03-31  Havoc Pennington  <hp@redhat.com>
10803
10804         * bus/main.c (main): fix up the command line arguments to be nicer
10805
10806 2003-03-31  Havoc Pennington  <hp@redhat.com>
10807
10808         * dbus/Makefile.am (INCLUDES): use EXPANDED_LOCALSTATEDIR to
10809         define DBUS_SYSTEM_BUS_PATH as we want to compile in the same
10810         final location that lands in the config file
10811
10812         * bus/config-loader-expat.c (bus_config_load): fix type of
10813         XML_Parser variable
10814
10815         * doc/TODO: remove TODO item for dbus_bus_get()
10816
10817         * dbus/dbus-bus.c (bus_data_free): add missing lock/unlock
10818
10819 2003-03-31  Havoc Pennington  <hp@pobox.com>
10820
10821         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_domain_socket)
10822         (_dbus_transport_new_for_tcp_socket): these didn't need the "server"
10823         argument since they are always client side
10824
10825         * dbus/dbus-server.c (dbus_server_get_address): new function
10826
10827         * bus/main.c (main): take the configuration file as an argument.
10828
10829         * test/data/valid-config-files/debug-allow-all.conf: new file to
10830         use with dispatch.c tests for example
10831
10832         * bus/test-main.c (main): require test data dir
10833
10834         * bus/bus.c (bus_context_new): change this to take a
10835         configuration file name as argument
10836
10837         * doc/config-file.txt (Elements): add <servicedir>
10838
10839         * bus/system.conf, bus/session.conf: new files
10840
10841         * dbus/dbus-bus.c (dbus_bus_get): look for system bus on
10842         well-known socket if none set
10843
10844         * configure.in: create system.conf and session.conf
10845
10846 2003-03-30  Havoc Pennington  <hp@pobox.com>
10847
10848         * bus/config-parser.c: hacking
10849
10850         * dbus/dbus-memory.c: don't use DBusList for the list of stuff
10851         to shut down, since it could cause weirdness with the DBusList
10852         lock
10853
10854         * dbus/dbus-list.c (_dbus_list_test): add tests for the
10855         link-oriented stack routines
10856         (alloc_link): free the mempool if the first alloc from it fails
10857
10858         * dbus/dbus-mempool.c (struct DBusMemBlock): fix alignment issue
10859
10860         * dbus/dbus-string.c (UNICODE_VALID): sync new version of this
10861         from GLib
10862         (_dbus_string_skip_white): new
10863
10864         * doc/config-file.txt (Elements): add <includedir>
10865
10866 2003-03-28  Havoc Pennington  <hp@pobox.com>
10867
10868         * dbus/dbus-string.c (_dbus_string_copy_data_len)
10869         (_dbus_string_copy_data): new functions
10870
10871 2003-03-28  Anders Carlsson  <andersca@codefactory.se>
10872
10873         * dbus/dbus-bus.c: (bus_data_free), (dbus_bus_get):
10874         * dbus/dbus-bus.h:
10875         Add dbus_bus_get.
10876
10877         * dbus/dbus-memory.c:
10878         Fix a doc comment.
10879
10880 2003-03-28  Havoc Pennington  <hp@pobox.com>
10881
10882         * bus/test.c (bus_test_flush_bus): remove the sleep from here,
10883         I think it may have just been superstition. Not sure.
10884
10885         * dbus/dbus-string.c (_dbus_string_base64_decode): catch some OOM
10886         failures that were not being handled.
10887
10888         * dbus/dbus-auth.c (process_auth): fix a memleak in OOM handling
10889
10890         * dbus/dbus-memory.c: add ability to set number of mallocs in a
10891         row that will fail on out-of-memory.
10892
10893         * dbus/dbus-internals.c (_dbus_test_oom_handling): convenience
10894         function for testing out-of-memory handling.
10895
10896         * bus/config-loader-expat.c (memsuite): don't wrap the dbus
10897         allocation functions, they do map exactly to the expat ones.
10898
10899 2003-03-27  Havoc Pennington  <hp@redhat.com>
10900
10901         * bus/config-loader-libxml.c (bus_config_load): add another error
10902         check
10903
10904 2003-03-26  Anders Carlsson  <andersca@codefactory.se>
10905
10906         * doc/TODO:
10907         Add note about automatic service activation.
10908
10909         * doc/dbus-specification.sgml:
10910         Rename the specification and clarify a few things.
10911
10912 2003-03-26  Anders Carlsson  <andersca@codefactory.se>
10913
10914         * Doxyfile.in:
10915         * dbus/dbus-address.c:
10916         * dbus/dbus-dict.c:
10917         * dbus/dbus-marshal.c:
10918         * dbus/dbus-server-debug-pipe.c:
10919         * dbus/dbus-transport-unix.c:
10920         Fix documentation warnings.
10921
10922 2003-03-26  Havoc Pennington  <hp@pobox.com>
10923
10924         * bus/test-main.c, dbus/dbus-test.c (main): check memleaks
10925         after every test so it's quick and easy to see which leaked, and
10926         so we test multiple dbus_shutdown() calls
10927
10928         * configure.in: change configure.in XML stuff to also support
10929         expat
10930
10931         * config-loader-libxml.c: some hacking
10932
10933         * config-loader-expat.c: some hacking
10934
10935         * config-parser.c: some hacking, plus tests
10936
10937 2003-03-25  Havoc Pennington  <hp@redhat.com>
10938
10939         * throughout - add more _DBUS_ASSERT_ERROR_IS_CLEAR
10940
10941         * configure.in: add --with-xml option to specify XML library,
10942         right now only libxml is supported.
10943
10944         * bus/config-loader-libxml.c, config-parser.c: sync some minor
10945         nonworking code between home and work, still just stubs
10946
10947 2003-03-24  Havoc Pennington  <hp@redhat.com>
10948
10949         * dbus/dbus-sysdeps.c (_dbus_set_fd_nonblocking): move to this
10950         file
10951
10952         * dbus/dbus-errors.c (dbus_set_error, dbus_set_error_const): allow
10953         NULL argument for "message" if the error is a well-known one,
10954         fill in a generic message in this case.
10955
10956         * dbus/dbus-errors.h (DBusResultCode): Kill DBusResultCode in
10957         favor of DBusError
10958
10959         * bus/test.c (bus_test_flush_bus): add
10960
10961         * bus/policy.c (bus_policy_test): test code stub
10962
10963 2003-03-24  Havoc Pennington  <hp@pobox.com>
10964
10965         * bus/connection.c (bus_connections_setup_connection): set up
10966         the "can this user connect" function, but it always returns
10967         TRUE until we have a config file parser so we can have a config
10968         file that allows connections.
10969
10970 2003-03-23  Havoc Pennington  <hp@pobox.com>
10971
10972         * dbus/dbus-threads.c (dbus_mutex_new, dbus_condvar_new): with
10973         DBUS_BUILD_TESTS, actually alloc/free a block of memory for
10974         the mutex, so we can check for proper memory management
10975         and OOM handling.
10976
10977         * dbus/dbus-dataslot.c: remove the mutex from
10978         DBusDataSlotAllocator and lock it manually when using it,
10979         to simplify fitting it into the global slots framework.
10980
10981         * dbus/dbus-threads.c (init_static_locks): rework how we're
10982         handling global locks so they are easily shut down.
10983
10984         * bus/policy.c (bus_policy_append_rule): fix
10985
10986         * bus/test-main.c (main): check for memleaks
10987
10988         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): make
10989         test suite check for memleaks
10990
10991         * dbus/dbus-memory.c: add support in test mode for tracking
10992         number of outstanding blocks
10993
10994 2003-03-23  Havoc Pennington  <hp@pobox.com>
10995
10996         * bus/policy.c, bus/bus.c, bus/connection.c: implement allow/deny
10997         policies code
10998
10999         * dbus/dbus-hash.h: add ULONG hash keys
11000
11001         * dbus/dbus-sysdeps.c (_dbus_get_groups): new
11002         (_dbus_get_group_id): new function
11003
11004 2003-03-20  Havoc Pennington  <hp@redhat.com>
11005
11006         * dbus/dbus-connection.c (dbus_connection_set_unix_user_function):
11007         new function
11008         (dbus_connection_get_unix_user): new function
11009
11010 2003-03-20  Havoc Pennington  <hp@pobox.com>
11011
11012         * bus/connection.c (bus_connection_send_oom_error): assert that
11013         message has a sender
11014         (connection_execute_transaction): ditto
11015         (bus_connection_preallocate_oom_error): fix to set the sender, and
11016         set recipient to the destination service, not the bus driver
11017
11018         * bus/policy.c: hacking
11019
11020         * dbus/dbus-message.c (dbus_message_service_is): new function
11021         (dbus_message_sender_is): new
11022
11023 2003-03-19  Havoc Pennington  <hp@redhat.com>
11024
11025         * bus/policy.c: start sketching code for policy restrictions on
11026         what connections can do.
11027
11028 2003-03-18  Havoc Pennington  <hp@redhat.com>
11029
11030         * doc/TODO: some notes on high-level todo items. Little nitpick
11031         stuff is all in @todo, so no need to add it here.
11032
11033         * doc/config-file.txt: some notes on how config file might look
11034
11035 2003-03-18  Anders Carlsson  <andersca@codefactory.se>
11036
11037         * configure.in: 0.6
11038
11039         * NEWS: Update.
11040
11041 2003-03-17  Havoc Pennington  <hp@redhat.com>
11042
11043         * dbus/dbus-internals.h: add gcc attributes so that
11044         our printf-style functions warn on bad arguments to
11045         format
11046
11047         * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): fix printf
11048         format bug
11049
11050         * dbus/dbus-message.c (_dbus_message_loader_queue_messages): fix
11051         printf format bug
11052
11053 2003-03-17  Havoc Pennington  <hp@redhat.com>
11054
11055         * bus/test-main.c (main): make it print something as it runs
11056         so make check doesn't look stuck
11057
11058         * doc/negotiation.txt, doc/dbus-sasl-profile.txt: remove
11059         from CVS, now obsolete
11060
11061 2003-03-17  Anders Carlsson  <andersca@codefactory.se>
11062
11063         * bus/dispatch.c: (bus_dispatch):
11064         Refetch the service name since it may have been reallocated
11065         when dbus_message_set_sender was called.
11066
11067         * dbus/dbus-sysdeps.c: (_dbus_accept):
11068         Add address and address length variables and use them to stop
11069         valgrind from complaining.
11070
11071 2003-03-17  Havoc Pennington  <hp@pobox.com>
11072
11073         All tests pass, no memleaks, no valgrind complaints.
11074
11075         * bus/test.c: refcount handler_slot
11076
11077         * bus/connection.c (bus_connections_new): refcount
11078         connection_data_slot
11079
11080         * dbus/dbus-auth-script.c (_dbus_auth_script_run): delete unused
11081         bytes so that auth scripts pass.
11082
11083         * bus/dispatch.c: init message_handler_slot so it gets allocated
11084         properly
11085
11086         * bus/dispatch.c (message_handler_slot_ref): fix memleak
11087
11088         * dbus/dbus-server-debug-pipe.c (_dbus_server_debug_pipe_new):
11089         dealloc server_pipe_hash when no longer used for benefit of
11090         leak checking
11091
11092         * dbus/dbus-auth.c (process_command): memleak fix
11093
11094         * bus/dispatch.c (check_hello_message): memleak fix
11095
11096 2003-03-16  Havoc Pennington  <hp@pobox.com>
11097
11098         * dbus/dbus-bus.c (ensure_bus_data): fix double-unref of the data slot
11099
11100 2003-03-17  Anders Carlsson  <andersca@codefactory.se>
11101
11102         * bus/activation.c (bus_activation_activate_service): Append
11103         the pending activation entry to the list of pending activations.
11104
11105 2003-03-16  Havoc Pennington  <hp@pobox.com>
11106
11107         * bus/dispatch.c (bus_dispatch_test): remove double-unrefs of
11108         connections
11109
11110         * dbus/dbus-address.c (create_entry): fix OOM handling when
11111         failing to alloc entry->method
11112
11113 2003-03-16  Havoc Pennington  <hp@pobox.com>
11114
11115         * dbus/dbus-watch.c (_dbus_watch_new): handle failure to malloc
11116         the watch
11117
11118         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
11119         add some missing dbus_set_result
11120
11121         * bus/dispatch.c (bus_dispatch_add_connection): handle failure to
11122         alloc the DBusMessageHandler
11123
11124         * dbus/dbus-transport.c (_dbus_transport_disconnect): don't ref
11125         the transport here, since we call this from the finalizer; it
11126         resulted in a double-finalize.
11127
11128         * dbus/dbus-transport.c (_dbus_transport_disconnect): fix a bug
11129         where we tried to use transport->connection that was NULL,
11130         happened when transport was disconnected early on due to OOM
11131
11132         * bus/*.c: adapt to handle OOM for watches/timeouts
11133
11134         * dbus/dbus-transport-unix.c: port to handle OOM during
11135         watch handling
11136
11137         * dbus/dbus-auth.c (_dbus_auth_get_unused_bytes): return a
11138         reference to unused bytes instead of a copy
11139
11140         * dbus/dbus-server.c (dbus_server_handle_watch): return FALSE for
11141         out of memory
11142
11143         * dbus/dbus-connection.c (dbus_connection_handle_watch): return
11144         FALSE on OOM
11145
11146         * dbus/dbus-timeout.c (dbus_timeout_handle): return FALSE for out
11147         of memory
11148
11149 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
11150
11151         * doc/dbus-specification.sgml:
11152         Document reply message for ActivateService.
11153
11154 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
11155
11156         * bus/activation.c: (bus_pending_activation_entry_free),
11157         (bus_pending_activation_free), (bus_activation_new),
11158         (bus_activation_unref), (bus_activation_service_created),
11159         (bus_activation_activate_service):
11160         * bus/activation.h:
11161         * bus/bus.c: (bus_context_new):
11162         * bus/desktop-file.c: (new_section):
11163         * bus/driver.c: (bus_driver_send_service_deleted),
11164         (bus_driver_handle_activate_service):
11165         * bus/services.c: (bus_registry_new), (bus_registry_ensure):
11166         * bus/services.h:
11167         * dbus/dbus-connection.c:
11168         (dbus_connection_send_with_reply_and_block):
11169         * dbus/dbus-message.c: (dbus_message_append_args_valist):
11170         * dbus/dbus-protocol.h:
11171         Make activation work better. Now pending activations will be queued
11172         and the daemon won't try to activate services that are already registered.
11173
11174 2003-03-16  Havoc Pennington  <hp@pobox.com>
11175
11176         * dbus/dbus-bus.c (ensure_bus_data): handle failure to set
11177         connection data
11178
11179         * dbus/dbus-memory.c (_dbus_initialize_malloc_debug): support
11180         DBUS_MALLOC_BACKTRACES to print trace when failing an alloc
11181
11182 2003-03-16  Havoc Pennington  <hp@pobox.com>
11183
11184         * dbus/dbus-string.c (_dbus_string_validate_utf8): oops, unbreak
11185         this. always run the test suite before commit...
11186
11187         * bus/*: adapt to DBusConnection API changes
11188
11189         * glib/dbus-gmain.c: adapt to DBusConnection API changes,
11190         requires renaming stuff to avoid dbus_connection_dispatch name
11191         conflict.
11192
11193         * dbus/dbus-transport.c (_dbus_transport_queue_messages): new
11194         function
11195
11196         * dbus/dbus-message.c (_dbus_message_loader_queue_messages):
11197         separate from _dbus_message_loader_return_buffer()
11198
11199         * dbus/dbus-connection.c (dbus_connection_get_n_messages): remove
11200         this, because it's now always broken to use; the number of
11201         messages in queue vs. the number still buffered by the message
11202         loader is undefined/meaningless. Should use
11203         dbus_connection_get_dispatch_state().
11204         (dbus_connection_dispatch): rename from
11205         dbus_connection_dispatch_message
11206
11207 2003-03-16  Havoc Pennington  <hp@pobox.com>
11208
11209         * dbus/dbus-string.c (_dbus_string_validate_utf8): copy in a real
11210         implementation
11211
11212 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
11213
11214         * dbus/dbus-connection.c:
11215         (dbus_connection_send_with_reply_and_block):
11216         Decrease connection->n_incoming when removing an entry
11217         from the list.
11218         * dbus/dbus-dict.c: (dbus_dict_entry_free),
11219         (dbus_dict_set_boolean_array), (dbus_dict_set_int32_array),
11220         (dbus_dict_set_uint32_array), (dbus_dict_set_double_array),
11221         (dbus_dict_set_byte_array), (dbus_dict_set_string_array),
11222         (dbus_dict_get_boolean_array), (dbus_dict_get_double_array),
11223         (dbus_dict_get_byte_array):
11224         Handle NULL arrays and strings. Also add support for byte arrays.
11225
11226         * dbus/dbus-marshal.c: (_dbus_marshal_byte_array),
11227         (_dbus_marshal_dict), (_dbus_demarshal_byte_array),
11228         (_dbus_demarshal_int32_array), (_dbus_demarshal_uint32_array),
11229         (_dbus_demarshal_double_array), (_dbus_demarshal_string_array),
11230         (_dbus_demarshal_dict), (demarshal_and_validate_len),
11231         (_dbus_marshal_validate_arg), (_dbus_marshal_test):
11232         * dbus/dbus-marshal.h:
11233         Add support for marshalling and demarshalling empty arrays and strings.
11234
11235         * dbus/dbus-message.c: (dbus_message_append_args_valist),
11236         (dbus_message_append_string_array),
11237         (dbus_message_iter_get_boolean),
11238         (dbus_message_iter_get_boolean_array),
11239         (dbus_message_iter_get_int32_array),
11240         (dbus_message_iter_get_uint32_array),
11241         (dbus_message_iter_get_double_array),
11242         (dbus_message_iter_get_byte_array),
11243         (dbus_message_iter_get_string_array), (dbus_message_iter_get_dict),
11244         (check_message_handling):
11245         Add support for getting empty arrays and dicts.
11246
11247         * dbus/dbus-string.c: (_dbus_string_validate_utf8):
11248         Don't do any validation at all for now, that's better than just checking
11249         for ASCII.
11250
11251         * test/data/valid-messages/emptiness.message:
11252         New test message with lots of empty arrays.
11253
11254 2003-03-16  Havoc Pennington  <hp@pobox.com>
11255
11256         * dbus/dbus-connection.c
11257         (_dbus_connection_queue_received_message_link): new function that
11258         can't fail due to OOM
11259
11260         * dbus/dbus-message.c (_dbus_message_loader_pop_message_link):
11261         new function pops a message together with a list link
11262         containing it.
11263
11264         * dbus/dbus-transport-unix.c (queue_messages): use new link-based
11265         message queuing functions to avoid needing to alloc memory
11266
11267 2003-03-16  Havoc Pennington  <hp@pobox.com>
11268
11269         Oops - test code was only testing failure of around 30 of the
11270         mallocs in the test path, but it turns out there are 500+
11271         mallocs. I believe this was due to misguided linking setup such
11272         that there was one copy of dbus_malloc etc. in the daemon and one
11273         in the shared lib, and only daemon mallocs were tested. In any
11274         case, the test case now tests all 500+ mallocs, and doesn't pass
11275         yet, though there are lots of fixes in this patch.
11276
11277         * dbus/dbus-connection.c (dbus_connection_dispatch_message): fix
11278         this so that it doesn't need to allocate memory, since it
11279         has no way of indicating failure due to OOM (and would be
11280         annoying if it did).
11281
11282         * dbus/dbus-list.c (_dbus_list_pop_first_link): new function
11283
11284         * bus/Makefile.am: rearrange to create two self-contained
11285         libraries, to avoid having libraries with overlapping symbols.
11286         that was resulting in weirdness, e.g. I'm pretty sure there
11287         were two copies of global static variables.
11288
11289         * dbus/dbus-internals.c: move the malloc debug stuff to
11290         dbus-memory.c
11291
11292         * dbus/dbus-list.c (free_link): free list mempool if it becomes
11293         empty.
11294
11295         * dbus/dbus-memory.c (_dbus_disable_mem_pools): new function
11296
11297         * dbus/dbus-address.c (dbus_parse_address): free list nodes
11298         on failure.
11299
11300         * bus/dispatch.c (bus_dispatch_add_connection): free
11301         message_handler_slot when no longer using it, so
11302         memory leak checkers are happy for the test suite.
11303
11304         * dbus/dbus-server-debug-pipe.c (debug_finalize): free server name
11305
11306         * bus/bus.c (new_connection_callback): disconnect in here if
11307         bus_connections_setup_connection fails.
11308
11309         * bus/connection.c (bus_connections_unref): fix to free the
11310         connections
11311         (bus_connections_setup_connection): if this fails, don't
11312         disconnect the connection, just be sure there are no side
11313         effects.
11314
11315         * dbus/dbus-string.c (undo_alignment): unbreak this
11316
11317         * dbus/dbus-auth.c (_dbus_auth_unref): free some stuff we were
11318         leaking
11319         (_dbus_auth_new): fix the order in which we free strings
11320         on OOM failure
11321
11322         * bus/connection.c (bus_connection_disconnected): fix to
11323         not send ServiceDeleted multiple times in case of memory
11324         allocation failure
11325
11326         * dbus/dbus-bus.c (dbus_bus_get_base_service): new function to
11327         get the base service name
11328         (dbus_bus_register_client): don't return base service name,
11329         instead store it on the DBusConnection and have an accessor
11330         function for it.
11331         (dbus_bus_register_client): rename dbus_bus_register()
11332
11333         * bus/dispatch.c (check_hello_message): verify that other
11334         connections on the bus also got the correct results, not
11335         just the one sending hello
11336
11337 2003-03-15  Havoc Pennington  <hp@pobox.com>
11338
11339         Make it pass the Hello handling test including all OOM codepaths.
11340         Now to do other messages...
11341
11342         * bus/services.c (bus_service_remove_owner): fix crash when
11343         removing owner from an empty list of owners
11344         (bus_registry_ensure): don't leave service in the list of
11345         a connection's owned services if we fail to put the service
11346         in the hash table.
11347
11348         * bus/connection.c (bus_connection_preallocate_oom_error): set
11349         error flag on the OOM error.
11350
11351         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
11352         handle _dbus_transport_set_connection failure
11353
11354         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd): modify
11355         to create watches up front and simply enable/disable them as
11356         needed.
11357         (unix_connection_set): this can now fail on OOM
11358
11359         * dbus/dbus-timeout.c, dbus/dbus-watch.c: add concept
11360         of enabling/disabling a watch or timeout.
11361
11362         * bus/loop.c (bus_loop_iterate): don't touch disabled
11363         watches/timeouts
11364
11365         * glib/dbus-gmain.c: adapt to enable/disable watches and timeouts
11366
11367 2003-03-15  Havoc Pennington  <hp@pobox.com>
11368
11369         * bus/dispatch.c (bus_dispatch_test): OK, now finally actually
11370         write useful test code, after all that futzing around ;-)
11371
11372         Test does not yet pass because we can't handle OOM in
11373         _dbus_transport_messages_pending (basically,
11374         dbus_connection_preallocate_send() does not prealloc the write
11375         watch). To fix this, I think we need to add new stuff to
11376         set_watch_functions, namely a SetEnabled function so we can alloc
11377         the watch earlier, then enable it later.
11378
11379         * dbus/Makefile.am (libdbus_convenience_la_SOURCES): move
11380         dbus-memory.c to the convenience lib
11381
11382         * bus/test.c: rename some static functions to keep them clearly
11383         distinct from stuff in connection.c. Handle client disconnection.
11384
11385 2003-03-14  Havoc Pennington  <hp@pobox.com>
11386
11387         * bus/dispatch.c (bus_dispatch_test): do test using debug-pipe
11388         transport, tests more of the real codepath. Set up clients
11389         with bus_setup_debug_client.
11390
11391         * bus/test.c (bus_setup_debug_client): function to set up debug
11392         "clients" on the main loop
11393
11394         * dbus/dbus-transport.c (_dbus_transport_open): add debug-pipe
11395         support
11396
11397         * dbus/dbus-server.c (dbus_server_listen): add debug-pipe
11398         server type
11399
11400         * dbus/dbus-server-debug.c: support a debug server based on pipes
11401
11402         * dbus/dbus-sysdeps.c (_dbus_full_duplex_pipe): new function
11403         (_dbus_close): new function
11404
11405         * configure.in: check for socketpair
11406
11407 2003-03-14  Havoc Pennington  <hp@redhat.com>
11408
11409         * dbus/dbus-memory.c: add a "detect buffer overwrites on free"
11410         cheesy hack
11411
11412         * dbus/dbus-transport-debug.c: rework this a good bit to be
11413         less complicated. hopefully still works.
11414
11415         * dbus/dbus-server-debug.c (handle_new_client): remove timeout
11416         manually
11417
11418         * glib/dbus-gmain.c (timeout_handler): don't remove timeout
11419         after running it
11420
11421         * dbus/dbus-message.c (dbus_message_copy): rename from
11422         dbus_message_new_from_message, fix it up to copy
11423         all the message fields, add test case
11424
11425         * bus/dispatch.c (bus_dispatch_test): add some more test code,
11426         not quite passing yet
11427
11428 2003-03-14  Havoc Pennington  <hp@pobox.com>
11429
11430         * bus/loop.c (bus_loop_iterate): add this so we can "run loop
11431         until no work remains" in test code. (the large diff here
11432         is just code movement, no actual changes)
11433
11434         * dbus/dbus-server-debug.c (DEFAULT_INTERVAL): change interval to
11435         1, no point waiting around for test code.
11436         (_dbus_server_debug_accept_transport): unref the timeout
11437         after adding it (right?)
11438
11439         * dbus/dbus-transport-debug.c (DEFAULT_INTERVAL): ditto
11440
11441 2003-03-13  Havoc Pennington  <hp@redhat.com>
11442
11443         * dbus/dbus-timeout.c (_dbus_timeout_list_set_functions): handle
11444         out of memory
11445
11446         * dbus/dbus-watch.c (_dbus_watch_list_set_functions): handle out
11447         of memory
11448
11449         * dbus/dbus-connection.h: Make AddWatchFunction and
11450         AddTimeoutFunction return a bool so they can fail on out-of-memory
11451
11452         * bus/bus.c (bus_context_new): set up timeout handlers
11453
11454         * bus/connection.c (bus_connections_setup_connection): set up
11455         timeout handlers
11456
11457         * glib/dbus-gmain.c: adapt to the fact that set_functions stuff
11458         can fail
11459
11460         * bus/bus.c (bus_context_new): adapt to changes
11461
11462         * bus/connection.c: adapt to changes
11463
11464         * test/watch.c: adapt to DBusWatch changes
11465
11466         * bus/dispatch.c (bus_dispatch_test): started adding this but
11467         didn't finish
11468
11469 2003-03-14  Anders Carlsson  <andersca@codefactory.se>
11470
11471         * bus/dispatch.c (send_service_nonexistent_error): Fix typo.
11472
11473 2003-03-13  Havoc Pennington  <hp@pobox.com>
11474
11475         * bus/test.c, bus/test.h, bus/Makefile.am, bus/test-main.c:
11476         set up a test framework as for the library
11477
11478 2003-03-12  Havoc Pennington  <hp@pobox.com>
11479
11480         Throughout: purge global variables, introduce BusActivation,
11481         BusConnections, BusRegistry, etc. objects instead.
11482
11483         * bus/bus.h, bus/bus.c: introduce BusContext as a global
11484         message bus object
11485
11486         * test/Makefile.am (TEST_BINARIES): disable bus-test for now,
11487         going to redo this a bit differently I think
11488
11489 2003-03-12  Havoc Pennington  <hp@redhat.com>
11490
11491         Mega-patch that gets the message bus daemon initially handling
11492         out-of-memory. Work still needed. Also lots of random
11493         moving stuff to DBusError instead of ResultCode.
11494
11495         * dbus/dbus-list.c (_dbus_list_length_is_one): new function
11496
11497         * dbus/dbus-connection.c
11498         (dbus_connection_send_with_reply_and_block): use DBusError
11499
11500         * dbus/dbus-bus.c: adapt to API changes, make it use DBusError not
11501         DBusResultCode
11502
11503         * dbus/dbus-connection.c (dbus_connection_send): drop the result
11504         code here, as the only failure possible is OOM.
11505
11506         * bus/connection.c (bus_connection_disconnect):
11507         rename bus_connection_disconnected as it's a notification only
11508
11509         * bus/driver.c (bus_driver_handle_acquire_service): don't free
11510         "name" on get_args failure, should be done by get_args;
11511         don't disconnect client for bad args, just return an error.
11512         (bus_driver_handle_service_exists): ditto
11513
11514         * bus/services.c (bus_services_list): NULL-terminate returned array
11515
11516         * bus/driver.c (bus_driver_send_service_lost)
11517         (bus_driver_send_service_acquired): send messages from driver to a
11518         specific client to the client's unique name, not to the broadcast
11519         service.
11520
11521         * dbus/dbus-message.c (decode_header_data): reject messages that
11522         contain no name field
11523         (_dbus_message_get_client_serial): rename to
11524         dbus_message_get_serial and make public
11525         (_dbus_message_set_serial): rename from set_client_serial
11526         (_dbus_message_set_reply_serial): make public
11527         (_dbus_message_get_reply_serial): make public
11528
11529         * bus/connection.c (bus_connection_foreach): allow stopping
11530         iteration by returning FALSE from foreach function.
11531
11532         * dbus/dbus-connection.c (dbus_connection_send_preallocated)
11533         (dbus_connection_free_preallocated_send)
11534         (dbus_connection_preallocate_send): new API for sending a message
11535         without possibility of malloc failure.
11536         (dbus_connection_send_message): rename to just
11537         dbus_connection_send (and same for whole function family)
11538
11539         * dbus/dbus-errors.c (dbus_error_free): make this reinit the error
11540
11541         * dbus/dbus-sysdeps.c (_dbus_exit): new function
11542
11543         * bus/activation.c: handle/return errors
11544
11545         * dbus/dbus-errors.h: add more DBUS_ERROR #define
11546
11547         * dbus/dbus-sysdeps.c (_dbus_directory_open) (_dbus_file_get_contents)
11548         (_dbus_directory_get_next_file): use DBusError instead of DBusResultCode
11549         (_dbus_result_from_errno): move to this file
11550
11551 2003-03-10  Anders Carlsson  <andersca@codefactory.se>
11552
11553         * dbus/dbus-marshal.c:
11554         (_dbus_marshal_set_string):
11555         Take a length argument so we can marshal the correct string
11556         length.
11557
11558         (_dbus_marshal_dict), (_dbus_demarshal_dict),
11559         (_dbus_marshal_get_arg_end_pos), (_dbus_marshal_validate_arg),
11560         (_dbus_marshal_test):
11561         * dbus/dbus-marshal.h:
11562         Add support for marshalling and demarshalling dicts.
11563
11564         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
11565         Add support for TYPE DICT.
11566
11567         * dbus/dbus-message.c: (set_string_field):
11568         Adjust header padding.
11569
11570         (dbus_message_append_args_valist), (dbus_message_append_dict),
11571         (dbus_message_get_args_valist), (dbus_message_iter_get_arg_type),
11572         (dbus_message_iter_get_dict), (_dbus_message_loader_return_buffer),
11573         (check_message_handling), (check_have_valid_message):
11574         * dbus/dbus-message.h:
11575         Add functions for setting and getting dicts.
11576
11577         * dbus/dbus-protocol.h:
11578         Add DBUS_TYPE_DICT.
11579
11580         * dbus/dbus.h:
11581         Add dbus-dict.h
11582
11583         * doc/dbus-specification.sgml:
11584         Add information about how dicts are marshalled.
11585
11586         * test/data/invalid-messages/dict-with-nil-value.message:
11587         * test/data/invalid-messages/too-short-dict.message:
11588         * test/data/valid-messages/dict-simple.message:
11589         * test/data/valid-messages/dict.message:
11590         Add sample messages containing dicts.
11591
11592 2003-03-08  Anders Carlsson  <andersca@codefactory.se>
11593
11594         * dbus/dbus-dict.h: Add DBUS_END_DECLS.
11595
11596 2003-03-07  Anders Carlsson  <andersca@codefactory.se>
11597
11598         * dbus/Makefile.am:
11599         * dbus/dbus-dict.c: (dbus_dict_entry_free), (dbus_dict_new),
11600         (dbus_dict_get_keys), (insert_entry), (dbus_dict_set_boolean),
11601         (dbus_dict_set_int32), (dbus_dict_set_uint32),
11602         (dbus_dict_set_double), (dbus_dict_set_string),
11603         (dbus_dict_set_boolean_array), (dbus_dict_set_int32_array),
11604         (dbus_dict_set_uint32_array), (dbus_dict_set_double_array),
11605         (dbus_dict_set_string_array), (_dbus_dict_test):
11606         * dbus/dbus-dict.h:
11607         Fix according to comments from Havoc.
11608
11609 2003-03-06  Michael Meeks  <michael@server.home>
11610
11611         * configure.in: if we don't have kde-config, disable have_qt.
11612
11613 2003-03-07  Anders Carlsson  <andersca@codefactory.se>
11614
11615         * dbus/Makefile.am:
11616         Add dbus-dict.[ch]
11617
11618         * dbus/dbus-dict.c: (dbus_dict_entry_free), (dbus_dict_new),
11619         (dbus_dict_ref), (dbus_dict_unref), (dbus_dict_contains),
11620         (dbus_dict_remove), (dbus_dict_get_value_type),
11621         (dbus_dict_get_keys), (dbus_dict_put_boolean),
11622         (dbus_dict_put_int32), (dbus_dict_put_uint32),
11623         (dbus_dict_put_double), (dbus_dict_put_string),
11624         (dbus_dict_put_boolean_array), (dbus_dict_put_int32_array),
11625         (dbus_dict_put_uint32_array), (dbus_dict_put_double_array),
11626         (dbus_dict_put_string_array), (dbus_dict_get_boolean),
11627         (dbus_dict_get_int32), (dbus_dict_get_uint32),
11628         (dbus_dict_get_double), (dbus_dict_get_string),
11629         (dbus_dict_get_boolean_array), (dbus_dict_get_int32_array),
11630         (dbus_dict_get_uint32_array), (dbus_dict_get_double_array),
11631         (dbus_dict_get_string_array), (_dbus_dict_test):
11632         * dbus/dbus-dict.h:
11633         Add DBusDict implementation
11634
11635         * dbus/dbus-test.c: (dbus_internal_do_not_use_run_tests):
11636         * dbus/dbus-test.h:
11637         Add _dbus_dict_test
11638
11639 2003-03-04  Havoc Pennington  <hp@pobox.com>
11640
11641         * test/data/auth/*: adapt to changes
11642
11643         * dbus/dbus-auth-script.c (_dbus_auth_script_run): add
11644         USERID_BASE64 and change USERNAME_BASE64 to put in username not
11645         userid
11646
11647         * dbus/dbus-keyring.c (_dbus_keyring_validate_context): prevent
11648         more stuff from being in a context name, to make the protocol
11649         simpler to deal with
11650
11651         * dbus/dbus-errors.c (dbus_error_has_name): new function
11652         (dbus_error_is_set): new function
11653
11654         * dbus/dbus-auth.c: replace DBUS_STUPID_TEST_MECH auth
11655         with DBUS_COOKIE_SHA1, implement DBUS_COOKIE_SHA1
11656
11657         * dbus/dbus-connection.c (dbus_connection_flush): also read
11658         messages during a flush operation
11659
11660         * dbus/Makefile.am: remove dbus-md5 since it isn't currently used.
11661
11662 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
11663
11664         * configure.in: Check for gethostbyname on Solaris.
11665
11666         * dbus/dbus-transport.c: (_dbus_transport_open):
11667         Remove duplicate "tcp" entry.
11668
11669         * doc/dbus-specification.sgml:
11670         Clarify some things.
11671
11672 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
11673
11674         * dbus/dbus-auth.c: (send_rejected), (process_test_subdir):
11675         * dbus/dbus-keyring.c: (_dbus_keyring_new_homedir),
11676         (_dbus_keyring_test):
11677         * dbus/dbus-md5.c: (_dbus_md5_compute):
11678         * dbus/dbus-sha.c: (_dbus_sha_compute):
11679         Plug memory leaks.
11680
11681 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
11682
11683         * README: Add some things.
11684
11685 2003-03-04  Anders Carlsson  <andersca@codefactory.se>
11686
11687         * dbus/dbus-message.c (dbus_message_append_args_valist): Add a break;
11688         after case DBUS_TYPE_BOOELAN.
11689
11690 2003-03-02  Havoc Pennington  <hp@pobox.com>
11691
11692         * test/break-loader.c (randomly_set_extreme_ints): add test that
11693         sets really huge and small integers
11694
11695         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): add check
11696         that length of boolean array fits in the string, and that
11697         string has room for boolean value in single-bool case.
11698
11699         * dbus/dbus-message-builder.c (_dbus_message_data_load): add
11700         optional value to "ALIGN" command which is what to fill the
11701         alignment with.
11702
11703         * test/data/valid-messages/no-padding.message: add regression
11704         test for the message padding problem
11705
11706 2003-03-02  Havoc Pennington  <hp@pobox.com>
11707
11708         * dbus/dbus-message.c (decode_header_data): fix to always init
11709         message_padding, from Benjamin Dauvergne
11710
11711 2003-03-02  Havoc Pennington  <hp@pobox.com>
11712
11713         * configure.in: 0.5
11714
11715         * NEWS: Update.
11716
11717 2003-03-01  Joe Shaw  <joe@assbarn.com>
11718
11719         * configure.in: Check for "struct cmsgcred" and try to access its
11720         members for BSD-like unices.
11721
11722         * dbus/dbus-sysdeps.c (read_credentials_byte): Fold this back into
11723         _dbus_read_credentials_unix_socket().
11724         (_dbus_read_credentials_unix_socket): Use recvmsg() instead of
11725         read() for reading the credential byte off the unix socket.  Use
11726         struct cmsgcred on systems that support it.
11727
11728 2003-02-27  Alexander Larsson  <alexl@redhat.com>
11729
11730         * glib/Makefile.am:
11731         * configure.in:
11732         Make gthreads-2.0 dependency optional. Don't build thread test if
11733         its not found.
11734
11735 2003-02-27  Havoc Pennington  <hp@pobox.com>
11736
11737         * dbus/dbus-connection.c
11738         (dbus_connection_send_message_with_reply_and_block): fix doh!
11739         doh! doh! bug that resulted in never removing a reply from the
11740         queue, no wonder we called get_reply_serial so much ;-)
11741
11742         * dbus/dbus-message.c (struct DBusMessage): cache reply serial
11743         and client serial instead of demarshaling them every time
11744
11745 2003-02-27  Havoc Pennington  <hp@pobox.com>
11746
11747         * dbus/dbus-marshal.c (_dbus_demarshal_int32): rewrite to be much
11748         more inlined, using dbus-string-private.h, speeds things up
11749         substantially
11750
11751         * dbus/dbus-string.c (_dbus_string_free): apply align offset
11752         when freeing the string
11753         (_dbus_string_steal_data): fix for align offset
11754         (undo_alignment): new function
11755
11756 2003-02-26  Havoc Pennington  <hp@redhat.com>
11757
11758         All kinds of audit fixes from Owen, plus initial attempt to
11759         handle unaligned memory returned from malloc.
11760
11761         * dbus/dbus-string.c (_dbus_string_init): clamp max length to
11762         leave room for align_offset and nul byte
11763         (fixup_alignment): function to track an align_offset and
11764         ensure real->str is aligned
11765         (DBUS_GENERIC_STRING_PREAMBLE): len must be less than allocated,
11766         to allow a nul byte plus align offset
11767         (_dbus_string_lock): fix overflow issue
11768         (_dbus_string_init_const_len): add assertions on sanity of len,
11769         assign allocated to be ALLOCATION_PADDING larger than len
11770         (set_length): fixup the overflow handling
11771         (_dbus_string_get_data_len): fix overflow in assertion
11772         (open_gap): detect overflow in size of gap to be opened
11773         (_dbus_string_lengthen): add overflow check
11774         (_dbus_string_align_length): fix overflow with _DBUS_ALIGN_VALUE
11775         (_dbus_string_append): add overflow check
11776         (_dbus_string_append_unichar): overflow
11777         (_dbus_string_delete): fix overflow in assertion
11778         (_dbus_string_copy_len): overflow in assertion
11779         (_dbus_string_replace_len): overflows in assertions
11780         (_dbus_string_find): change to implement in terms of
11781         _dbus_string_find_to
11782         (_dbus_string_find_to): assorted fixage
11783         (_dbus_string_equal_c_str): assert c_str != NULL,
11784         fix logic so the function works
11785         (_dbus_string_ends_with_c_str): fix overflow thingy
11786         (_dbus_string_base64_encode): overflow fix
11787         (_dbus_string_validate_ascii): overflow
11788         (_dbus_string_validate_nul): overflow
11789
11790 2003-02-26  Havoc Pennington  <hp@redhat.com>
11791
11792         * dbus/dbus-marshal.c (_dbus_marshal_test): fix to work with DISABLE_ASSERTS
11793
11794 2003-02-26  Alexander Larsson  <alexl@redhat.com>
11795
11796         * configure.in:
11797         Set DBUS_GLIB_THREADS_LIBS for apps using gthread-2.0
11798
11799         * dbus/dbus-connection.c:
11800         * dbus/dbus-connection.h:
11801         Fix _dbus_connection_acquire_io_path and _dbus_connection_acquire_dispatch.
11802         Add dbus_connection_set_wakeup_main_function and use it when queueing
11803         incoming and outgoing messages.
11804
11805
11806         * dbus/dbus-dataslot.c:
11807         Threadsafe usage of DBusDataSlotAllocator
11808
11809         * dbus/dbus-message.c: (dbus_message_get_args_iter):
11810         dbus_new can fail.
11811
11812         * dbus/dbus-server-unix.c:
11813         Add todo comment
11814
11815         * glib/dbus-gmain.c:
11816         Implement the new wakeup functions for glib.
11817
11818         * glib/Makefile.am:
11819         * glib/test-thread-client.c:
11820         * glib/test-thread-server.c:
11821         * glib/test-thread.h:
11822         Initial cut at some thread test code. Not really done yet.
11823
11824 2003-02-26  Havoc Pennington  <hp@pobox.com>
11825
11826         * dbus/dbus-connection.c
11827         (dbus_connection_send_message_with_reply_and_block): fix crash
11828         where we ref'd the outgoing message instead of the returned reply
11829
11830         * dbus/dbus-transport-unix.c (do_authentication): check read watch
11831         at the end of this function, so if we didn't need to read for
11832         authentication, we reinstall it for receiving messages
11833
11834         * dbus/dbus-message.c (dbus_message_new_reply): allow replies to
11835         a NULL sender for peer-to-peer case
11836
11837         * dbus/dbus-transport-unix.c (check_read_watch): handle
11838         !authenticated case correctly
11839
11840         * glib/dbus-gmain.c: add support for DBusServer
11841
11842         * dbus/dbus-server.c: add data slot support
11843
11844         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): check
11845         return values and handle errors
11846
11847         * dbus/dbus-dataslot.c: factor out the data slot stuff from
11848         DBusConnection
11849
11850         * Doxyfile.in (INPUT): add glib subdir
11851
11852         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): rename
11853         setup_with_g_main instead of hookup_with_g_main; write docs
11854
11855 2003-02-24  Anders Carlsson  <andersca@codefactory.se>
11856
11857         * dbus/dbus-marshal.c: (_dbus_marshal_validate_arg):
11858         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
11859         * dbus/dbus-message.c: (dbus_message_append_boolean),
11860         (dbus_message_append_boolean_array),
11861         (dbus_message_get_args_valist), (_dbus_message_test):
11862         * dbus/dbus-message.h:
11863         * doc/dbus-specification.sgml:
11864         Various fixes as pointed out by Havoc.
11865
11866         * test/data/invalid-messages/bad-boolean-array.message:
11867         * test/data/invalid-messages/bad-boolean.message:
11868         Add invalid boolean value test cases.
11869
11870 2003-02-24  Anders Carlsson  <andersca@codefactory.se>
11871
11872         * dbus/dbus-internals.c: (_dbus_type_to_string):
11873         * dbus/dbus-marshal.c: (_dbus_marshal_get_arg_end_pos),
11874         (_dbus_marshal_validate_arg):
11875         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
11876         * dbus/dbus-message.c: (dbus_message_append_args_valist),
11877         (dbus_message_append_boolean), (dbus_message_append_boolean_array),
11878         (dbus_message_get_args_valist), (dbus_message_iter_get_boolean),
11879         (dbus_message_iter_get_int32), (dbus_message_iter_get_uint32),
11880         (dbus_message_iter_get_double),
11881         (dbus_message_iter_get_boolean_array), (message_iter_test):
11882         * dbus/dbus-message.h:
11883         * dbus/dbus-protocol.h:
11884         * doc/dbus-specification.sgml:
11885         * test/data/valid-messages/lots-of-arguments.message:
11886         Add support for boolean and boolean array types.
11887
11888 2003-02-23  Havoc Pennington  <hp@pobox.com>
11889
11890         * dbus/dbus-keyring.c: finish most of this implementation and
11891         simple unit test
11892
11893         * dbus/dbus-errors.c (dbus_set_error_const, dbus_set_error): make
11894         these barf if the error isn't cleared to NULL
11895
11896         * dbus/dbus-sysdeps.c (_dbus_delete_file): set error on failure
11897         (_dbus_create_directory): new function
11898
11899         * dbus/dbus-errors.c (dbus_set_error): fix warning
11900
11901         * dbus/dbus-string.c (_dbus_string_hex_encode): new function
11902         (_dbus_string_hex_decode): new function
11903         (test_hex_roundtrip): test code
11904
11905         * dbus/dbus-sha.c (_dbus_sha_compute): use dbus_string_hex_encode
11906
11907         * dbus/dbus-md5.c (_dbus_md5_compute): use dbus_string_hex_encode
11908
11909         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): make this use
11910         the save-to-temp/rename trick to atomically write the new file
11911         (_dbus_string_parse_uint): new function
11912
11913 2003-02-22  Havoc Pennington  <hp@pobox.com>
11914
11915         * test/Makefile.am (dist-hook): fix dist for test/data/sha-1
11916
11917 2003-02-22  Havoc Pennington  <hp@pobox.com>
11918
11919         * dbus/dbus-message.c (dbus_message_iter_get_string_array):
11920         (dbus_message_iter_get_byte_array): Fix up doxygen warnings
11921
11922         * dbus/dbus-sha.c: add implementation of SHA-1 algorithm
11923
11924         * dbus/test/data/sha-1: add US government test suite for SHA-1
11925
11926 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
11927
11928         * dbus/dbus-marshal.c: (_dbus_demarshal_string_array):
11929         Make string arrays NULL-terminated.
11930
11931         * dbus/dbus-memory.c: (dbus_free_string_array):
11932         * dbus/dbus-memory.h:
11933         New function for freeing NULL-terminated string arrays.
11934
11935         * dbus/dbus-message-builder.c: (append_quoted_string),
11936         (_dbus_message_data_load):
11937         Add support for array types.
11938
11939         * dbus/dbus-message.c: (check_message_handling):
11940         Add more types as test cases.
11941
11942         * dbus/dbus-sysdeps.c: (_dbus_string_parse_int),
11943         (_dbus_string_parse_double):
11944         Add the start offset to the end offset.
11945
11946         * test/data/valid-messages/lots-of-arguments.message:
11947         New test message with lots of arguments.
11948
11949 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
11950
11951         * dbus/dbus-message.c: (dbus_message_append_nil),
11952         (dbus_message_append_int32), (dbus_message_append_uint32),
11953         (dbus_message_append_double), (dbus_message_append_string),
11954         (dbus_message_append_int32_array),
11955         (dbus_message_append_uint32_array),
11956         (dbus_message_append_double_array),
11957         (dbus_message_append_byte_array),
11958         (dbus_message_append_string_array):
11959         Fix all out-of-memory handling in these functions.
11960
11961 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
11962
11963         * dbus/dbus-message.c: (dbus_message_append_nil):
11964         Fix a silly.
11965
11966 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
11967
11968         * dbus/dbus-message.c: (dbus_message_append_args_valist),
11969         (dbus_message_append_nil), (dbus_message_append_int32_array),
11970         (dbus_message_append_uint32_array),
11971         (dbus_message_append_double_array),
11972         (dbus_message_append_byte_array),
11973         (dbus_message_append_string_array), (dbus_message_get_args_valist),
11974         (dbus_message_iter_get_int32_array),
11975         (dbus_message_iter_get_uint32_array),
11976         (dbus_message_iter_get_double_array),
11977         (dbus_message_iter_get_byte_array),
11978         (dbus_message_iter_get_string_array):
11979
11980         * dbus/dbus-message.h:
11981         Add functions for appending and getting arrays.
11982
11983 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
11984
11985         * dbus/dbus-mempool.c (_dbus_mem_pool_new): Make the
11986         element size at least 8 bytes, fixes mempool tests on
11987         64-bit machines.
11988
11989 2003-02-20  Alexander Larsson  <alexl@redhat.com>
11990
11991         * dbus/dbus-transport-unix.c (unix_do_iteration):
11992         Unlock the connection mutex during a blocking select call.
11993         Add todo about how we need a way to wake up the select.
11994
11995         * dbus/dbus-connection-internal.h:
11996         * dbus/dbus-connection.c:
11997         Add _dbus_connection_lock and _dbus_connection_unlock.
11998
11999 2003-02-19  Havoc Pennington  <hp@pobox.com>
12000
12001         * Doxyfile.in (PREDEFINED): put DOXYGEN_SHOULD_SKIP_THIS in
12002         Doxyfile.in, not Doxyfile
12003
12004         * dbus/dbus-keyring.c: do some hacking on this
12005
12006         * dbus/dbus-sysdeps.c (_dbus_delete_file): new
12007
12008         * dbus/dbus-errors.c (dbus_set_error_const): do not call
12009         dbus_error_init
12010         (dbus_set_error): remove dbus_error_init, check for message ==
12011         NULL *before* we sprintf into it, and add @todo about including
12012         system headers in this file
12013
12014         * dbus/dbus-sysdeps.c (_dbus_create_file_exclusively): new
12015
12016         * dbus/dbus-errors.h (DBUS_ERROR_FAILED): add
12017
12018         * dbus/dbus-sysdeps.c (get_user_info): break this function out to
12019         get various bits of user information based on either username
12020         or user ID
12021         (_dbus_homedir_from_username): new function
12022
12023 2003-02-19  Anders Carlsson  <andersca@codefactory.se>
12024
12025         * configure.in:
12026         Add check for nonposix getpwnam_r
12027
12028         * dbus/dbus-mempool.c: (_dbus_mem_pool_new):
12029         Align the pool element size to a sizeof (void *) boundary.
12030
12031         * dbus/dbus-sysdeps.c: (_dbus_setenv), (_dbus_connect_unix_socket),
12032         (_dbus_listen_unix_socket), (_dbus_credentials_from_username):
12033         General Solaris fixes.
12034
12035         * test/data/valid-messages/simplest-manual.message:
12036         Explicitly state that we want little-endian packing.
12037
12038 2003-02-19  Mikael Hallendal  <micke@codefactory.se>
12039
12040         * dbus/dbus-server.c (dbus_server_listen): Support tcp: addresses.
12041
12042         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_tcp_socket):
12043         Added to create a transport connecting using a tcp/ip socket.
12044
12045         * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): Added to connect
12046         to a tcp socket at given host and port.
12047         (_dbus_listen_tcp_socket): added to listen on tcp socket for given
12048         hostname and port.
12049
12050         * dbus/dbus-server.c (dbus_server_listen): Support tcp: addresses.
12051
12052         * dbus/dbus-server-unix.c (_dbus_server_new_for_tcp_socket):
12053         Added to create a server listening on a TCP/IP socket.
12054
12055 2003-02-19  Havoc Pennington  <hp@pobox.com>
12056
12057         Throughout: mop up all the Doxygen warnings and undocumented
12058         stuff.
12059
12060         * dbus/dbus-sysdeps.c (do_exec): do not use execvp, we don't want
12061         to search any paths.
12062
12063         * dbus/dbus-threads.c: move global mutex initializers to
12064         dbus-internals.h, multiple prototypes was confusing doxygen
12065         besides being kind of ugly
12066
12067         * Doxyfile (PREDEFINED): have Doxygen define
12068         DOXYGEN_SHOULD_SKIP_THIS so we can exclude things from
12069         docs with #ifndef DOXYGEN_SHOULD_SKIP_THIS
12070         (do not abuse the feature! it's for stuff like the autogenerated
12071         macros in dbus-md5.c, not just for things you don't feel like
12072         documenting...)
12073
12074 2003-02-18  Havoc Pennington  <hp@pobox.com>
12075
12076         * dbus/dbus-string.c (_dbus_string_zero): new function
12077
12078         * dbus/dbus-md5.c: include MD5 implementation by L. Peter Deutsch,
12079         wrap it in some dbus-friendly API
12080
12081         * dbus/dbus-types.h: add 16-bit types
12082
12083 2003-02-18  Joe Shaw  <joe@assbarn.com>
12084
12085         * dbus/dbus-auth.c (handle_server_data_stupid_test_mech): Just get
12086         credentials from our currently running process.
12087         (get_word): Fix a buglet where we were copying the entire length
12088         instead of relative to our position.
12089
12090         * dbus/dbus-hash.c (_dbus_hash_test): Don't try to allocate the
12091         keys on the stack... it's 640k of data.
12092
12093         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): Always
12094         read the credentials byte off the socket, even if we don't have
12095         SO_PEERCRED.
12096         (_dbus_poll): Implement poll() using select() for systems which
12097         don't have it.
12098
12099         * glib/test-dbus-glib.c (main): Print out an error if no
12100         parameters are given.
12101
12102         * test/data/auth/fallback.auth-script: Added.  Tests that a client
12103         can fallback to a secondary auth mechanism if the first fails.
12104
12105 2003-02-18  Havoc Pennington  <hp@pobox.com>
12106
12107         * AUTHORS: add Alex
12108
12109 2003-02-17  Havoc Pennington  <hp@pobox.com>
12110
12111         * doc/dbus-specification.sgml: lots of cosmetic
12112         cleanups/rearrangement, add assorted FIXME, change DBUS_ADDRESS
12113         env variable to DBUS_BUS_ADDRESS, s/client/application/,
12114         s/server/bus/ (except in authentication section). Add a section
12115         "Message Bus Message Routing"
12116
12117 2003-02-17  Anders Carlsson  <andersca@codefactory.se.>
12118
12119         Release 0.4
12120
12121         * NEWS: Update
12122
12123 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
12124
12125         * doc/dbus-specification.sgml:
12126         Specification updates.
12127
12128 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
12129
12130         * bus/activation.c: (bus_activation_init), (child_setup),
12131         (bus_activation_activate_service):
12132         * bus/activation.h:
12133         * bus/main.c: (main):
12134         Set DBUS_ADDRESS environment variable.
12135
12136         * dbus/dbus-errors.c: (dbus_set_error):
12137         Don't use va_copy since that's a C99 feature.
12138
12139         * dbus/dbus-sysdeps.c: (_dbus_setenv), (do_exec),
12140         (_dbus_spawn_async):
12141         * dbus/dbus-sysdeps.h:
12142         Add child_setup_func to _dbus_spawn_async.
12143
12144         * doc/dbus-specification.sgml:
12145         Update specification.
12146
12147         * test/spawn-test.c: (setup_func), (main):
12148         Fix test.
12149
12150 2003-02-17  Alexander Larsson  <alexl@redhat.com>
12151
12152         * dbus/dbus-connection.c (_dbus_connection_handler_destroyed_locked):
12153         Added todo.
12154
12155 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
12156
12157         * doc/.cvsignore:
12158         * doc/Makefile.am:
12159         * doc/dbus-test-plan.sgml:
12160         Add test plan document.
12161
12162         * test/Makefile.am:
12163         Fix distcheck.
12164
12165 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
12166
12167         * dbus/dbus-message.c: (decode_header_data),
12168         (_dbus_message_loader_return_buffer):
12169         Set the header padding amount when loading a message.
12170
12171 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
12172
12173         * bus/dispatch.c: (send_one_message):
12174         Only send broadcast messages to registered connections.
12175
12176         * dbus/dbus-message.c: (dbus_message_name_is):
12177         * dbus/dbus-message.h:
12178         New convenience function.
12179
12180         * dbus/dbus-transport-debug.c: (do_reading):
12181         Only dispatch one message per run.
12182
12183         * test/Makefile.am:
12184         * test/bus-test.c: (new_connection_callback), (die),
12185         (test_hello_client1_handler), (test_hello_client2_handler),
12186         (test_hello_replies), (main):
12187
12188         * test/bus-test-loop.[ch]:
12189         Add these.
12190
12191 2003-02-16  Havoc Pennington  <hp@pobox.com>
12192
12193         * dbus/dbus-connection.c (dbus_connection_dispatch_message): fix
12194         backward conditional
12195
12196 2003-02-16  Alexander Larsson  <alexl@redhat.com>
12197
12198         * dbus/dbus-connection.c:
12199         Implement sent_message_with_reply. (with_reply_and block is still
12200         busted).
12201         Made dispatch_message not lose message if OOM.
12202
12203         * dbus/dbus-errors.h:
12204         Add NoReply error (for reply timeouts).
12205
12206 2003-02-16  Alexander Larsson  <alexl@redhat.com>
12207
12208         * dbus/dbus-hash.c (_dbus_hash_table_unref):
12209         Actually free keys and values when destroying hashtable.
12210
12211 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
12212
12213         * dbus/dbus-auth.c: (client_try_next_mechanism):
12214         Plug a leak.
12215
12216         * dbus/dbus-threads.c: (dbus_condvar_wait_timeout):
12217         Return TRUE if there's no thread implementation around.
12218
12219         * glib/dbus-gmain.c: (free_source),
12220         (dbus_connection_hookup_with_g_main):
12221         Make sure to remove the GSource when the connection is finalized.
12222
12223 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
12224
12225         * bus/dispatch.c: (bus_dispatch_message_handler):
12226         * dbus/dbus-errors.h:
12227         Return an error if someone tries to send a message to a service
12228         that doesn't exist.
12229
12230 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
12231
12232         * bus/activation.c: (load_directory), (bus_activation_init),
12233         (bus_activation_activate_service):
12234         * bus/activation.h:
12235         * bus/driver.c:
12236         (bus_driver_handle_activate_service), (bus_driver_handle_message):
12237         More work on the activation handling.
12238
12239         * dbus/dbus-errors.h:
12240         Add some error messages
12241
12242         * dbus/dbus-message.c: (dbus_message_new_error_reply):
12243         * dbus/dbus-message.h:
12244         New function that creates an error message.
12245
12246         * dbus/dbus-protocol.h:
12247         Add ACTIVATE_SERVER message.
12248
12249         * dbus/dbus-server-unix.c: (unix_handle_watch),
12250         (_dbus_server_new_for_domain_socket):
12251         Call _dbus_fd_set_close_on_exec.
12252
12253         * dbus/dbus-sysdeps.c: (make_pipe), (do_exec),
12254         (_dbus_spawn_async), (_dbus_disable_sigpipe),
12255         (_dbus_fd_set_close_on_exec):
12256         * dbus/dbus-sysdeps.h:
12257         Add _dbus_fd_set_close_on exec function. Also add function that checks
12258         that all open fds are set to close-on-exec and warns otherwise.
12259
12260         * dbus/dbus-transport-unix.c:
12261         (_dbus_transport_new_for_domain_socket):
12262         Call _dbus_fd_set_close_on_exec.
12263
12264 2003-02-16  Havoc Pennington  <hp@pobox.com>
12265
12266         * dbus/dbus-connection.c (dbus_connection_set_change_sigpipe):
12267         allow people to avoid setting SIGPIPE to SIG_IGN
12268         (_dbus_connection_new_for_transport): disable SIGPIPE unless
12269         we've been asked not to
12270
12271 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
12272
12273         * dbus/dbus-list.c: (_dbus_list_append_link),
12274         (_dbus_list_prepend_link):
12275         * dbus/dbus-memory.c: (dbus_malloc), (dbus_malloc0),
12276         (dbus_realloc):
12277         Warning fixes.
12278
12279 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
12280
12281         * bus/Makefile.am:
12282         * bus/activation.c: (bus_activation_entry_free),
12283         (add_desktop_file_entry), (load_directory), (bus_activation_init):
12284         * bus/activation.h:
12285         * bus/main.c: (main):
12286         Add simple activation support, doesn't work yet though.
12287
12288 2003-02-15   Zack Rusin  <zack@kde.org>
12289
12290         * qt/dbus-qthread.cpp:  small casting fix
12291
12292 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
12293
12294         * dbus/dbus-errors.c: (dbus_set_error):
12295         * dbus/dbus-errors.h:
12296         Add a few errors and make dbus_set_error void.
12297
12298         * dbus/dbus-sysdeps.c:
12299         (_dbus_errno_to_string), (close_and_invalidate), (make_pipe),
12300         (write_err_and_exit), (read_ints), (do_exec), (_dbus_spawn_async):
12301         * dbus/dbus-sysdeps.h:
12302         Add _dbus_spawn_async.
12303
12304         * test/spawn-test.c: (main):
12305         Test for _dbus_spawn_async.
12306
12307 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
12308
12309         * dbus/dbus-internals.h:
12310         Fix build without tests.
12311
12312         * dbus/dbus-list.c: (alloc_link):
12313         Fix a segfault when a malloc fails.
12314
12315         * dbus/dbus-memory.c: (initialize_malloc_debug), (dbus_malloc),
12316         (dbus_malloc0), (dbus_realloc):
12317         Add support for malloc debugging.
12318
12319 2003-02-15  Alexander Larsson  <alexl@redhat.com>
12320
12321         * dbus/dbus-threads.c:
12322         * dbus/dbus-threads.h:
12323         Add condvars. Remove static mutext from API.
12324         Implement static mutexes by initializing them from threads_init.
12325
12326         * glib/dbus-gthread.c:
12327         * qt/dbus-qthread.cpp:
12328         Update with the thread api changes.
12329
12330
12331         * dbus/dbus-list.c:
12332         * dbus/dbus-list.h:
12333         Turn StaticMutex into normal mutex + init function.
12334         Export new functions _dbus_list_alloc_link, _dbus_list_free_link,
12335         _dbus_list_append_link, _dbus_list_prepend_link
12336
12337
12338         * dbus/dbus-sysdeps.c:
12339         * dbus/dbus-sysdeps.h:
12340         New type dbus_atomic_t, and new functions _dbus_atomic_inc,
12341         _dbus_atomic_dec. Only slow fallback implementation at the moment.
12342
12343         * dbus/dbus-protocol.h:
12344         Add DBUS_MESSAGE_LOCAL_DISCONNECT define
12345
12346         * dbus/dbus-message.c:
12347         Make ref/unref atomic.
12348         Fix some docs.
12349
12350         * dbus/dbus-connection-internal.h:
12351         * dbus/dbus-connection.c:
12352         * dbus/dbus-connection.h:
12353         Make threadsafe.
12354         Change _peek to _borrow,_return & _steal_borrowed.
12355         Change disconnect callback to event.
12356         Make dbus_connection_dispatch_messages reentrant.
12357
12358         * dbus/dbus-transport.c:
12359         Don't ref the connection on calls to the transport
12360         implementation.
12361
12362         * dbus/dbus-message-handler.c:
12363         Make threadsafe.
12364
12365         * glib/dbus-gmain.c:
12366         Don't use peek_message anymore
12367
12368         * test/Makefile.am:
12369         * test/debug-thread.c:
12370         * test/debug-thread.h:
12371         Simple thread implementation that asserts() on deadlocks in
12372         single-threaded code.
12373
12374         * test/bus-test.c:
12375         (main) Call debug_threads_init.
12376
12377         * test/watch.c:
12378         Use disconnect message instead of disconnect callback.
12379
12380         * bus/connection.c:
12381         * bus/connection.h:
12382         Don't call dbus_connection_set_disconnect_function. Instead export
12383         bus_connection_disconnect.
12384
12385         * bus/dispatch.c:
12386         Call bus_connection_disconnect when we get a disconnected message.
12387
12388 2003-02-15  Havoc Pennington  <hp@pobox.com>
12389
12390         * dbus/dbus-message.c (dbus_message_new): fool around with the
12391         docs
12392
12393 2003-02-14  Havoc Pennington  <hp@pobox.com>
12394
12395         * dbus/dbus-mempool.c: fail if the debug functions so indicate
12396
12397         * dbus/dbus-memory.c: fail if the debug functions indicate we
12398         should
12399
12400         * dbus/dbus-internals.c (_dbus_set_fail_alloc_counter)
12401         (_dbus_decrement_fail_alloc_counter): debug functions to
12402         simulate memory allocation failures
12403
12404 2003-02-14  Havoc Pennington  <hp@pobox.com>
12405
12406         * dbus/dbus-errors.h (struct DBusError): add a word of padding
12407         to DBusError
12408
12409 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12410
12411         * bus/driver.c: (bus_driver_handle_hello):
12412         * bus/driver.h:
12413         * bus/services.c: (bus_service_lookup):
12414         Reorder message sending so we get a more sane order.
12415
12416         * test/bus-test.c: (message_handler):
12417         Fix tyop.
12418
12419 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12420
12421         * bus/driver.c: (bus_driver_send_service_deleted),
12422         (bus_driver_send_service_created), (bus_driver_send_service_lost),
12423         (bus_driver_send_service_acquired), (bus_driver_handle_hello),
12424         (bus_driver_send_welcome_message),
12425         (bus_driver_handle_list_services),
12426         (bus_driver_handle_acquire_service),
12427         (bus_driver_handle_service_exists):
12428         * dbus/dbus-bus.c: (dbus_bus_register_client),
12429         (dbus_bus_acquire_service), (dbus_bus_service_exists):
12430         * dbus/dbus-errors.c: (dbus_result_to_string):
12431         * dbus/dbus-errors.h:
12432         * dbus/dbus-message.c: (dbus_message_append_args),
12433         (dbus_message_append_args_valist), (dbus_message_get_args),
12434         (dbus_message_get_args_valist), (dbus_message_get_args_iter),
12435         (dbus_message_iter_get_arg_type), (dbus_message_iter_get_string),
12436         (dbus_message_iter_get_byte_array),
12437         (dbus_message_iter_get_string_array), (message_iter_test),
12438         (check_message_handling), (_dbus_message_test):
12439         * dbus/dbus-message.h:
12440         * test/bus-test.c: (main):
12441         Change fields to arguments in messages, so that they won't be
12442         confused with header fields.
12443
12444         * glib/test-dbus-glib.c: (main):
12445         Remove append_fields from hello message.
12446
12447 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12448
12449         * dbus/dbus-errors.c:
12450         * dbus/dbus-message.c:
12451         * dbus/dbus-string.c:
12452         Documentation fixes.
12453
12454 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12455
12456         * glib/dbus-gmain.c: (timeout_handler), (add_timeout),
12457         (remove_timeout):
12458         Implement support for timeouts in dbus-glib.
12459
12460 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12461
12462         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
12463         * dbus/dbus-message.c: (process_test_subdir):
12464         * test/break-loader.c: (find_breaks_based_on):
12465         Plug some memory leaks.
12466
12467 2003-02-13  Richard Hult  <rhult@codefactory.se>
12468
12469         * bus/main.c: Fix build.
12470
12471         * dbus/dbus-errors.h:
12472         * dbus/dbus-errors.c: Fix copyright for Anders.
12473
12474 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12475
12476         * bus/Makefile.am:
12477         Add utils.[ch]
12478
12479         * bus/connection.c: (bus_connection_foreach):
12480         Fix a warning.
12481
12482         * bus/desktop-file.c: (grow_lines_in_section), (grow_sections),
12483         (unescape_string), (new_section), (parse_section_start),
12484         (parse_key_value), (report_error), (bus_desktop_file_load),
12485         (bus_desktop_file_get_string):
12486         * bus/desktop-file.h:
12487         Use DBusError for error reporting.
12488
12489         * bus/dispatch.c: (send_one_message),
12490         (bus_dispatch_message_handler):
12491         * bus/driver.c: (bus_driver_send_service_deleted),
12492         (bus_driver_send_service_created), (bus_driver_send_service_lost),
12493         (bus_driver_send_service_acquired), (bus_driver_handle_hello),
12494         (bus_driver_send_welcome_message),
12495         (bus_driver_handle_list_services),
12496         (bus_driver_handle_acquire_service),
12497         (bus_driver_handle_service_exists):
12498         * bus/loop.c: (bus_loop_run):
12499         * bus/main.c:
12500         Use BUS_HANDLE_OOM instead of _DBUS_HANDLE_OOM.
12501
12502         * bus/utils.c: (bus_wait_for_memory):
12503         * bus/utils.h:
12504         New files with general utility functions.
12505
12506         * dbus/dbus-internals.h:
12507         Remove _DBUS_HANDLE_OOM.
12508
12509 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12510
12511         * dbus/dbus-errors.c: (dbus_result_to_string), (dbus_error_init),
12512         (dbus_error_free), (dbus_set_error_const), (dbus_set_error):
12513         * dbus/dbus-errors.h:
12514         Add DBusError structure.
12515
12516 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12517
12518         * test/data/valid-messages/standard-acquire-service.message:
12519         * test/data/valid-messages/standard-hello.message:
12520         * test/data/valid-messages/standard-list-services.message:
12521         * test/data/valid-messages/standard-service-exists.message:
12522         Add some standard messages.
12523
12524 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12525
12526         * bus/driver.c: (bus_driver_send_welcome_message),
12527         (bus_driver_handle_list_services),
12528         (bus_driver_handle_acquire_service),
12529         (bus_driver_handle_service_exists), (bus_driver_handle_message):
12530         Update for API changes in libdbus.
12531
12532         * dbus/dbus-message.c: (dbus_message_new_reply):
12533         * dbus/dbus-message.h:
12534         Remove the name argument. The spec states that replies shouldn't
12535         have a name.
12536
12537 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12538
12539         * bus/desktop-file.c: (parse_section_start), (parse_key_value),
12540         (report_error), (bus_desktop_file_load), (lookup_section),
12541         (lookup_line), (bus_desktop_file_get_raw),
12542         (bus_desktop_file_get_string):
12543         * bus/desktop-file.h:
12544         Some fixes, and new functions for getting a key value from a section.
12545
12546 2003-02-13  Havoc Pennington  <hp@pobox.com>
12547
12548         * test/data/auth/fail-after-n-attempts.auth-script: new test
12549
12550         * dbus/dbus-auth.c (send_rejected): shutdown_mech() when we
12551         reject the client.
12552
12553 2003-02-13  Havoc Pennington  <hp@pobox.com>
12554
12555         * dbus/dbus-auth.c (handle_server_data_external_mech): args to
12556         dbus_credentials_match were backward
12557
12558         * dbus/dbus-auth-script.c (_dbus_auth_script_run): support
12559         NO_CREDENTIALS and ROOT_CREDENTIALS
12560
12561         * dbus/dbus-auth.c (_dbus_auth_do_work): move get_state() routine
12562         into here. Never process more commands after we've reached an
12563         end state; store further data as unused bytes.
12564
12565         * test/data/auth/*: add more auth tests
12566
12567         * dbus/dbus-auth-script.c (_dbus_auth_script_run): support EXPECT
12568         command to match exact string and EXPECT_UNUSED to match unused
12569         bytes
12570
12571         * test/Makefile.am (dist-hook): fix to dist all the test stuff
12572
12573 2003-02-12  Havoc Pennington  <hp@pobox.com>
12574
12575         * dbus/dbus-string.c (_dbus_string_pop_line): fix to also strip
12576         \r off of popped lines
12577
12578         * dbus/dbus-auth.c (_dbus_auth_test): write code to run auth
12579         scripts
12580
12581         * dbus/dbus-auth-script.c (_dbus_auth_script_run): when doing a
12582         SEND, append \r\n
12583
12584 2003-02-12  Havoc Pennington  <hp@pobox.com>
12585
12586         * dbus/Makefile.am: remove break-loader from the build, since it
12587         moved.
12588
12589         * configure.in: add --enable-gcov to turn on coverage profiling
12590         flags and disable optimization
12591
12592 2003-02-10  Havoc Pennington  <hp@pobox.com>
12593
12594         * dbus/dbus-auth-script.c, dbus/dbus-auth-script.h: sync
12595         initial cut at test framework for DBusAuth from laptop.
12596         Doesn't quite work yet but it compiles and I need to get
12597         it off the 266mhz laptop. ;-)
12598
12599         * dbus/dbus-server-debug.c (_dbus_server_debug_accept_transport):
12600         fix a memleak in error case
12601
12602 2003-02-12  Anders Carlsson  <andersca@codefactory.se>
12603
12604         * bus/Makefile.am:
12605         * bus/desktop-file.c:
12606         * bus/desktop-file.h:
12607         Add a desktop file parser.
12608
12609 2003-02-11  Zack Rusin  <zack@kde.org>
12610
12611         * qt/message.[h|cpp]: sample implementation
12612         of the KDE wrapper for DBusMessage
12613
12614 2003-02-09  Zack Rusin  <zack@kde.org>
12615
12616         * test/bus-test.c: make_it_compile
12617         * doc/dbus-specification.sgml: minimal semantic fix
12618
12619 2003-02-06  Anders Carlsson  <andersca@codefactory.se>
12620
12621         Release 0.3
12622
12623         * NEWS: Update
12624
12625 2003-02-06  Anders Carlsson  <andersca@codefactory.se>
12626
12627         * dbus/Makefile.am:
12628         * dbus/dbus-break-loader.c:
12629         * test/Makefile.am:
12630         * test/break-loader.c:
12631         Move dbus-break-loader to test/ and rename it to break-loader.
12632
12633 2003-02-02  Havoc Pennington  <hp@pobox.com>
12634
12635         * dbus/dbus-keyring.c, dbus/dbus-keyring.h: template files
12636         for code to manage cookies in your home directory
12637
12638         * dbus/dbus-sysdeps.c (_dbus_generate_random_bytes): new function
12639
12640         * dbus/dbus-auth.c (get_state): impose a maximum number of tries
12641         to authenticate, then disconnect the client.
12642
12643 2003-02-03  Alexander Larsson  <alexl@redhat.com>
12644
12645         * dbus/dbus-message.c (dbus_message_append_fields):
12646         Correct docs.
12647
12648 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
12649
12650         * doc/dbus-specification.sgml:
12651         Update address format section.
12652
12653 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
12654
12655         * test/Makefile.am:
12656         * test/bus-test.c: (get_time), (add_timeout), (remove_timeout),
12657         (message_handler), (new_connection_callback), (loop_quit),
12658         (loop_run), (main):
12659         Add bus test.
12660
12661 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
12662
12663         * bus/driver.c: (bus_driver_handle_service_exists):
12664         Simplify the code a bit.
12665
12666         * dbus/dbus-bus.c: (dbus_bus_service_exists):
12667         Fix a silly.
12668
12669 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
12670
12671         * bus/Makefile.am:
12672         Add libdbus-daemon.la and link to it.
12673
12674 2003-02-01  James Willcox  <jwillcox@gnome.org>
12675
12676         * bus/driver.c: (bus_driver_handle_own_service):
12677         Actually include the service reply code in the message.
12678
12679 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
12680
12681         * bus/driver.c: (bus_driver_handle_service_exists):
12682         Don't unref the incoming message.
12683
12684 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
12685
12686         * dbus/dbus.h: Add dbus-address.h and dbus-bus.h
12687
12688 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
12689
12690         * dbus/dbus-server.c: (dbus_server_listen):
12691         * dbus/dbus-transport.c: (_dbus_transport_open):
12692         ifdef out the calls to the debug transport and server.
12693
12694 2003-02-02  Alexander Larsson  <alexl@redhat.com>
12695
12696         * dbus/dbus-watch.c (dbus_watch_get_flags):
12697         Add note in the docs that ERROR or HANGUP won't be returned
12698         and are assumed always on.
12699
12700         * glib/dbus-gmain.c (add_watch):
12701         Always add IO_ERR | IO_HUP
12702
12703         * dbus/dbus-message.h:
12704         Add semicolon after dbus_message_iter_get_string_array().
12705         Makes qt code build again
12706
12707 2003-02-01  Anders Carlsson  <andersca@codefactory.se>
12708
12709         * bus/driver.c: (create_unique_client_name),
12710         (bus_driver_handle_hello):
12711         Don't take a name, just use a numeric id to identify
12712         each client.
12713
12714         * dbus/Makefile.am:
12715         * dbus/dbus-bus.c: (dbus_bus_register_client),
12716         (dbus_bus_acquire_service), (dbus_bus_service_exists):
12717         * dbus/dbus-bus.h:
12718         Add new convenience functions for communicating with the bus.
12719
12720         * dbus/dbus-message.h:
12721
12722         * dbus/dbus-protocol.h:
12723         Fix a typo.
12724
12725 2003-02-01  Alexander Larsson  <alexl@redhat.com>
12726
12727         * dbus/dbus-message.c (dbus_message_append_fields):
12728         Add some more doc comments.
12729
12730 2003-02-01  Havoc Pennington  <hp@pobox.com>
12731
12732         * dbus/dbus-break-loader.c (randomly_modify_length): change
12733         a 4-byte value in the message as if it were a length
12734
12735         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): don't set
12736         execute bit on saved files
12737
12738 2003-02-01  Havoc Pennington  <hp@pobox.com>
12739
12740         * dbus/dbus-break-loader.c (main): new program to find messages
12741         that break the loader.
12742
12743         * dbus/dbus-sysdeps.c (_dbus_string_append_uint): new function
12744         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): new function
12745
12746         * dbus/dbus-string.c (_dbus_string_set_byte): new
12747
12748 2003-01-31  Havoc Pennington  <hp@pobox.com>
12749
12750         * dbus/dbus-message.c: refactor the test code to be more general,
12751         in preparation for writing a "randomly permute test cases to
12752         try to break the loader" program.
12753
12754 2003-01-31  Havoc Pennington  <hp@pobox.com>
12755
12756         * doc/dbus-specification.sgml: work on the specification
12757
12758         * dbus/dbus-message.c (_dbus_message_loader_return_buffer): check
12759         the protocol version of the message.
12760
12761         * dbus/dbus-protocol.h: drop special _REPLY names, the spec
12762         no longer specifies that.
12763         (DBUS_SERVICE_REPLY_SERVICE_EXISTS): fix flags (1/2/4/8 not
12764         1/2/3/4)
12765
12766         * dbus/dbus-marshal.c (_dbus_marshal_get_arg_end_pos): add missing
12767         "break" for DBUS_TYPE_NIL, remove @todo
12768
12769 2003-01-31  Havoc Pennington  <hp@pobox.com>
12770
12771         * dbus/dbus-message.c (dbus_message_set_is_error_reply): rename
12772         just set_is_error/get_is_error as this is a commonly-used
12773         function, and write docs.
12774
12775 2003-01-31  Anders Carlsson  <andersca@codefactory.se>
12776
12777         * dbus/dbus-address.c: (dbus_address_entry_free):
12778         Free key and value lists.
12779
12780         * dbus/dbus-internals.c: (_dbus_type_to_string):
12781         Add the types we didn't have.
12782
12783         * dbus/dbus-marshal.c: (_dbus_marshal_get_arg_end_pos),
12784         (_dbus_marshal_validate_arg):
12785         Add NIL types.
12786
12787         * dbus/dbus-message.c: (dbus_message_set_sender):
12788         Remove todo about being able to set sender to NULL.
12789
12790         (dbus_message_set_is_error_reply),
12791         (dbus_message_get_is_error_reply):
12792         * dbus/dbus-message.h:
12793         New functions.
12794
12795         * dbus/dbus-protocol.h:
12796         Add error reply flag.
12797
12798         * test/data/valid-messages/opposite-endian.message:
12799         Add NIL type to test.
12800
12801 2003-01-31  Havoc Pennington  <hp@pobox.com>
12802
12803         * doc/dbus-specification.sgml: fully specify the header.  Add
12804         flags and major protocol version, and change header/body len to
12805         unsigned.
12806
12807         * dbus/dbus-message-builder.c (append_saved_length): append length
12808         as uint32
12809
12810         * dbus/dbus-message.c (dbus_message_create_header): change header
12811         length and body length to unsigned. Add the new fields from the
12812         spec
12813         (_dbus_message_loader_return_buffer): unsigned header/body len
12814
12815 2003-01-30  Havoc Pennington  <hp@pobox.com>
12816
12817         * dbus/dbus-auth.c: rework to use only REJECTED, no
12818         MECHANISMS
12819
12820         * doc/dbus-sasl-profile.txt: drop MECHANISMS and just
12821         use REJECTED, suggested by Mark McLoughlin
12822
12823 2003-01-30  Havoc Pennington  <hp@pobox.com>
12824
12825         * dbus/dbus-server.c (dbus_server_listen): @todo about how we need
12826         a better way to report errors here. e.g.  "unix address lacks
12827         path" or something. also "no such file" when the path doesn't
12828         exist, etc.
12829
12830         * dbus/dbus-address.c (dbus_address_entries_free): add @todo about
12831         leaking list nodes
12832         (dbus_parse_address): add @todo about documenting address format,
12833         and allowing , and ; to be escaped
12834
12835 2003-01-30  Anders Carlsson  <andersca@codefactory.se>
12836
12837         * dbus/Makefile.am:
12838         Add dbus-address.[ch]
12839
12840         * dbus/dbus-address.c: (dbus_address_entry_free),
12841         (dbus_address_entries_free), (create_entry),
12842         (dbus_address_entry_get_method), (dbus_address_entry_get_value),
12843         (dbus_parse_address), (_dbus_address_test):
12844         * dbus/dbus-address.h:
12845         New files for dealing with address parsing.
12846
12847         * dbus/dbus-connection.c:
12848         Document timeout functions.
12849
12850         * dbus/dbus-message.c:
12851         Document dbus_message_new_from_message.
12852
12853         * dbus/dbus-server-debug.c:
12854         Document.
12855
12856         * dbus/dbus-server.c: (dbus_server_listen):
12857         Parse address and use correct server implementation.
12858
12859         * dbus/dbus-string.c: (_dbus_string_find_to), (_dbus_string_test):
12860         * dbus/dbus-string.h:
12861         New function with test.
12862
12863         * dbus/dbus-test.c: (dbus_internal_symbol_do_not_use_run_tests):
12864         * dbus/dbus-test.h:
12865         Add address tests.
12866
12867         * dbus/dbus-transport-debug.c:
12868         Document.
12869
12870         * dbus/dbus-transport.c: (_dbus_transport_open):
12871         Parse address and use correct transport implementation.
12872
12873 2003-01-30  Havoc Pennington  <hp@pobox.com>
12874
12875         * dbus/dbus-message.c: use message->byte_order instead of
12876         DBUS_COMPILER_BYTE_ORDER throughout.
12877         (dbus_message_create_header): pad header to align the
12878         start of the body of the message to 8-byte boundary
12879
12880         * dbus/dbus-marshal.h: make all the demarshalers take const
12881         DBusString arguments.
12882
12883         * dbus/dbus-message.c (_dbus_message_loader_return_buffer):
12884         validate message args here, so we don't have to do slow validation
12885         later, and so we catch bad messages as they are incoming. Also add
12886         better checks on header_len and body_len. Also fill in
12887         message->byte_order
12888
12889         * dbus/dbus-string.c (_dbus_string_validate_utf8): new (not
12890         implemented properly)
12891         (_dbus_string_validate_nul): new function to check all-nul
12892
12893         * dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): rename
12894         get_arg_end_pos and remove all validation
12895         (_dbus_marshal_validate_arg): actually do validation here.
12896
12897 2003-01-29  Havoc Pennington  <hp@pobox.com>
12898
12899         * dbus/dbus-message.c (check_message_handling): fix assertion
12900         failure on set_client_serial
12901
12902 2003-01-28  Havoc Pennington  <hp@pobox.com>
12903
12904         * dbus/dbus-server-debug.c: Add doc section comments
12905
12906         * dbus/dbus-transport-debug.c: add doc section comments
12907
12908 2003-01-28  Havoc Pennington  <hp@redhat.com>
12909
12910         * dbus/dbus-string.c (_dbus_string_base64_decode): append bytes in
12911         the reverse order from how I had it
12912         (_dbus_string_base64_encode): reverse encoding order. I was
12913         basically byteswapping everything during encoding.
12914
12915 2003-01-28  Anders Carlsson  <andersca@codefactory.se>
12916
12917         * dbus/dbus-connection-internal.h:
12918         * dbus/dbus-connection.c: (_dbus_connection_add_timeout),
12919         (_dbus_connection_remove_timeout):
12920         Add functions for adding and removing timeouts.
12921
12922         * dbus/dbus-message.c: (dbus_message_new_from_message):
12923         Add new function that takes a message and creates an exact
12924         copy of it, but with the refcount set to 1.
12925         (check_message_handling):
12926         Fix build error.
12927
12928         * dbus/dbus-server-protected.h:
12929         * dbus/dbus-server.c: (_dbus_server_init_base),
12930         (_dbus_server_finalize_base), (_dbus_server_add_timeout),
12931         (dbus_server_set_timeout_functions):
12932         (_dbus_server_remove_timeout):
12933         New functions so that a server can add and remove timeouts.
12934
12935         (dbus_server_listen):
12936         Add commented out call to dbus_server_debug_new.
12937
12938         * dbus/dbus-timeout.c: (_dbus_timeout_new):
12939         Actually set the handler, doh.
12940
12941         * dbus/dbus-transport.c: (_dbus_transport_open):
12942         Add commented out call to dbus_transport_debug_client_new.
12943
12944         * dbus/Makefile.am:
12945         Add dbus-transport-debug.[ch] and dbus-server-debug.[ch]
12946
12947 2003-01-28  Havoc Pennington  <hp@pobox.com>
12948
12949         * dbus/dbus-message.c (check_message_handling): function to check
12950         on the loaded message, iterates over it etc.
12951
12952 2003-01-28  Havoc Pennington  <hp@pobox.com>
12953
12954         * test/Makefile.am (dist-hook): fix make distdir
12955
12956         * dbus/Makefile.am (TESTS_ENVIRONMENT): fix make check
12957
12958 2003-01-27  Havoc Pennington  <hp@pobox.com>
12959
12960         * dbus/dbus-mempool.c (time_for_size): replace printf with
12961         _dbus_verbose
12962
12963         * dbus/dbus-message-builder.c (_dbus_message_data_load): allow
12964         empty lines; fix the SAVE_LENGTH stuff to be
12965         START_LENGTH/END_LENGTH so it actually works; couple other
12966         bugfixes
12967
12968         * test/Makefile.am (dist-hook): add dist-hook for .message files
12969
12970         * dbus/dbus-string.c (DBUS_STRING_COPY_PREAMBLE): source of a copy
12971         can be constant or locked.
12972         (_dbus_string_free): allow freeing a const string as
12973         documented/intended
12974
12975         * dbus/dbus-sysdeps.c (_dbus_concat_dir_and_file): utility
12976
12977         * dbus/dbus-test-main.c (main): take an argument which is the
12978         directory containing test data
12979
12980         * dbus/dbus-message.c (_dbus_message_test): pass a test_data_dir
12981         argument to this and load all the messages in test/data/
12982         checking that they can be loaded or not loaded as appropriate.
12983
12984 2003-01-27  Anders Carlsson  <andersca@codefactory.se>
12985
12986         * bus/dispatch.c: (bus_dispatch_message_handler):
12987         Dispatch messages sent to services.
12988
12989         * bus/driver.c: (bus_driver_send_service_deleted),
12990         (bus_driver_send_service_created), (bus_driver_send_service_lost),
12991         (bus_driver_send_service_acquired):
12992         Add helper functions for sending service related messages.
12993
12994         (bus_driver_send_welcome_message):
12995         Send HELLO_REPLY instead of WELCOME.
12996
12997         (bus_driver_handle_list_services):
12998         Send LIST_SERVICES_REPLY instead of SERVICES.
12999
13000         (bus_driver_handle_own_service),
13001         (bus_driver_handle_service_exists):
13002         New message handlers.
13003
13004         (bus_driver_handle_message):
13005         Invoke new message handlers.
13006
13007         (bus_driver_remove_connection):
13008         Don't remove any services here since that's done automatically
13009         by bus_service_remove_owner now.
13010
13011         * bus/driver.h:
13012         New function signatures.
13013
13014         * bus/services.c: (bus_service_add_owner):
13015         Send ServiceAcquired message if we're the only primary owner.
13016
13017         (bus_service_remove_owner):
13018         Send ServiceAcquired/ServiceLost messages.
13019
13020         (bus_service_set_prohibit_replacement),
13021         (bus_service_get_prohibit_replacement):
13022         Functions for setting prohibit replacement.
13023
13024         (bus_service_has_owner):
13025         New function that checks if a connection is in the owner queue of
13026         a certain service.
13027
13028         * bus/services.h:
13029         Add new function signatures.
13030
13031         * dbus/dbus-list.c: (_dbus_list_test):
13032         Add tests for _dbus_list_remove_last and traversing the list backwards.
13033
13034         * dbus/dbus-list.h:
13035         Fix a typo in _dbus_list_get_prev_link, if we're at the first element we can't
13036         go any further, so return NULL then.
13037
13038         * dbus/dbus-protocol.h:
13039         Add new messages, service flags and service replies.
13040
13041 2003-01-26  Havoc Pennington  <hp@pobox.com>
13042
13043         * dbus/dbus-message-builder.c: implement, completely untested.
13044
13045         * test/data/*: add data to be used in testing.
13046         ".message" files are our simple loadable text format.
13047         ".message-raw" will be binary dumps of messages.
13048
13049         * dbus/dbus-string.c (_dbus_string_starts_with_c_str): new
13050
13051 2003-01-26  Havoc Pennington  <hp@pobox.com>
13052
13053         * dbus/dbus-sysdeps.c (_dbus_file_get_contents): new function
13054
13055         * dbus/dbus-errors.c (dbus_result_to_string): add
13056         file errors
13057
13058         * dbus/dbus-message-builder.c: new file, will contain code to load
13059         up messages from files. Not implemented yet.
13060
13061 2003-01-26  Havoc Pennington  <hp@pobox.com>
13062
13063         * dbus/dbus-message.c (dbus_message_set_sender): support deleting
13064         the sender by setting to NULL
13065
13066 2003-01-26  Havoc Pennington  <hp@pobox.com>
13067
13068         The unit tests pass, but otherwise untested.  If it breaks, the
13069         tests should have been better. ;-)
13070
13071         * bus/driver.c (bus_driver_handle_hello): return if we disconnect
13072         the connection.
13073
13074         * dbus/dbus-message.c: redo everything so we maintain
13075         message->header as the only copy of the various fields.
13076         This avoids the possibility of out-of-memory in some cases,
13077         for example dbus_message_lock() can't run out of memory anymore,
13078         and avoids extra copying. Figured I may as well go ahead and do
13079         this since it was busted for dbus_message_lock to not return
13080         failure on OOM, and dbus_message_write_header was totally
13081         unchecked for OOM. Also fixed some random other bugs.
13082
13083         * dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): verify
13084         that strings are nul-terminated. Also, end_pos can be equal
13085         to string length just not greater than, I think.
13086         (_dbus_marshal_set_int32): new function
13087         (_dbus_marshal_set_uint32): new function
13088         (_dbus_marshal_set_string): new function
13089
13090         * dbus/dbus-connection.c (_dbus_connection_new_for_transport): fix
13091         a warning, init timeout_list to NULL
13092         (dbus_connection_send_message): don't use uninitialized variable
13093         "serial"
13094
13095         * dbus/dbus-string.c (_dbus_string_replace_len): new function
13096
13097 2003-01-26  Anders Carlsson  <andersca@codefactory.se>
13098
13099         * bus/driver.c: (bus_driver_handle_hello),
13100         (bus_driver_send_welcome_message):
13101         Plug leaks
13102
13103 2003-01-26  Anders Carlsson  <andersca@codefactory.se>
13104
13105         * dbus/dbus-auth.c: (process_auth), (_dbus_auth_unref):
13106         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport),
13107         (dbus_connection_unref):
13108         * dbus/dbus-marshal.c: (_dbus_marshal_test):
13109         * dbus/dbus-message.c: (dbus_message_unref),
13110         Plug memory leaks.
13111
13112         (dbus_message_get_fields):
13113         Remove debugging printout.
13114
13115         (_dbus_message_loader_return_buffer):
13116         Don't store the header string.
13117
13118         (_dbus_message_test):
13119         Plug leaks.
13120
13121 2003-01-26  Richard Hult  <rhult@codefactory.se>
13122
13123         * glib/dbus-gmain.c (dbus_connection_dispatch): Traverse a copy of
13124         the file descriptor list, since it can change under us.
13125
13126 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
13127
13128         * glib/dbus-gmain.c: (dbus_connection_prepare),
13129         (dbus_connection_check), (dbus_connection_dispatch), (add_watch),
13130         (remove_watch), (dbus_connection_hookup_with_g_main):
13131         Rewrite the glib handling to use its own GSource instead of a
13132         GIOChannel so we can catch messages put in the queue while waiting
13133         for a reply.
13134
13135 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
13136
13137         * bus/Makefile.am:
13138         * bus/connection.c: (connection_disconnect_handler),
13139         (connection_watch_callback), (bus_connection_setup):
13140         * bus/dispatch.c: (send_one_message),
13141         (bus_dispatch_broadcast_message), (bus_dispatch_message_handler),
13142         (bus_dispatch_add_connection), (bus_dispatch_remove_connection):
13143         * bus/dispatch.h:
13144         * bus/driver.c: (bus_driver_send_service_deleted),
13145         (bus_driver_send_service_created), (bus_driver_handle_hello),
13146         (bus_driver_send_welcome_message),
13147         (bus_driver_handle_list_services), (bus_driver_remove_connection),
13148         (bus_driver_handle_message):
13149         * bus/driver.h:
13150         Refactor code, put the message dispatching in its own file. Use
13151         _DBUS_HANDLE_OOM. Also send ServiceDeleted messages when a client
13152         is disconnected.
13153
13154 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
13155
13156         * dbus/dbus-internals.h:
13157         Add _DBUS_HANDLE_OOM macro, it doesn't do anything currently.
13158
13159         * dbus/dbus-message.c: (dbus_message_get_sender):
13160         * dbus/dbus-message.h:
13161         Implement dbus_message_get_sender.
13162
13163         * dbus/dbus-protocol.h:
13164         Add message and service defines.
13165
13166 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
13167
13168         * dbus/dbus-connection.c: (dbus_connection_send_message):
13169         * dbus/dbus-message-internal.h:
13170         * dbus/dbus-message.c: (_dbus_message_get_client_serial),
13171         (dbus_message_write_header):
13172         Remove _dbus_messag_unlock and don't set the client serial on a
13173         message if one already exists.
13174
13175 2003-01-24  Havoc Pennington  <hp@pobox.com>
13176
13177         * dbus/dbus-list.c (alloc_link): put a thread lock on the global
13178         list_pool
13179
13180         * bus/driver.c (bus_driver_handle_list_services): fix a leak
13181         on OOM
13182
13183 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
13184
13185         * dbus/dbus-list.c: (alloc_link), (free_link):
13186         Use a memory pool for the links.
13187
13188 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
13189
13190         * bus/connection.c: (bus_connection_foreach):
13191         * bus/connection.h:
13192         Add new bus_connection_foreach function.
13193
13194         * bus/driver.c: (send_one_message), (bus_driver_broadcast_message):
13195         Add function that broadcasts a message to all clients.
13196
13197         (bus_driver_send_service_created), (bus_driver_handle_hello),
13198         (bus_driver_send_welcome_message),
13199         (bus_driver_handle_list_services), (bus_driver_message_handler):
13200         Implement functions that take care of listing services, and notifying
13201         clients when new services are created.
13202
13203         * bus/services.c: (bus_services_list):
13204         * bus/services.h:
13205         Add new function that returns an array of strings with the currently
13206         registered services.
13207
13208         * glib/dbus-glib.h:
13209         * glib/dbus-gmain.c:
13210         Update copyright year.
13211
13212 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
13213
13214         * dbus/dbus-connection.c: (dbus_connection_send_message):
13215         Unlock the message in case it was sent earlier.
13216
13217         (dbus_connection_send_message_with_reply_and_block):
13218         Remove the reply message from the list.
13219
13220         * dbus/dbus-marshal.c: (_dbus_demarshal_string_array):
13221         Set array_len and new_pos correctly.
13222
13223         (_dbus_marshal_test):
13224         Remove debug output.
13225
13226         * dbus/dbus-message-internal.h:
13227         * dbus/dbus-message.c: (_dbus_message_get_reply_serial):
13228         New function that returns the reply serial.
13229
13230         (_dbus_message_unlock):
13231         New function that unlocks a message and resets its header.
13232
13233         (dbus_message_append_string_array),
13234         (dbus_message_get_fields_valist),
13235         (dbus_message_iter_get_field_type),
13236         (dbus_message_iter_get_string_array),
13237         (dbus_message_get_fields),
13238         (dbus_message_append_fields_valist):
13239         Handle string arrays.
13240
13241         (dbus_message_set_sender):
13242         Make this function public since the bus daemon needs it.
13243
13244         (decode_header_data):
13245         Set the reply serial to -1 initially.
13246
13247         * dbus/dbus-message.h:
13248         Add dbus_message_set_sender.
13249
13250 2003-01-24  Havoc Pennington  <hp@pobox.com>
13251
13252         * doc/dbus-specification.sgml: add some stuff
13253
13254 2003-01-22  Havoc Pennington  <hp@pobox.com>
13255
13256         * doc/dbus-specification.sgml: Start to document the protocol.
13257
13258 2003-01-22  Havoc Pennington  <hp@pobox.com>
13259
13260         * dbus/dbus-connection.c
13261         (dbus_connection_send_message_with_reply_and_block): add some @todo
13262
13263         * bus/driver.c (bus_driver_add_connection): add a FIXME about memleak
13264
13265 2003-01-21  Havoc Pennington  <hp@pobox.com>
13266
13267         (patch untested because can't compile)
13268
13269         * bus/driver.c (create_unique_client_name): make this function
13270         never recycle client names. Also, caller should initialize
13271         the DBusString.
13272
13273         * dbus/dbus-sysdeps.c (_dbus_get_current_time): new function
13274
13275 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
13276
13277         * dbus/dbus-marshal.c: (_dbus_marshal_double),
13278         (_dbus_marshal_int32), (_dbus_marshal_uint32),
13279         (_dbus_marshal_int32_array), (_dbus_marshal_uint32_array),
13280         (_dbus_marshal_double_array), (_dbus_marshal_string_array),
13281         (_dbus_demarshal_int32_array), (_dbus_demarshal_uint32_array),
13282         (_dbus_demarshal_double_array), (_dbus_demarshal_string_array),
13283         (_dbus_marshal_get_field_end_pos), (_dbus_marshal_test):
13284         * dbus/dbus-marshal.h:
13285         * dbus/dbus-protocol.h:
13286         Add support for marshalling and demarshalling integer, double
13287         and string arrays.
13288
13289 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
13290
13291         * bus/Makefile.am:
13292         Add driver.[ch]
13293
13294         * bus/connection.c: (connection_disconnect_handler):
13295         Remove the connection from the bus driver's list.
13296
13297         (connection_watch_callback): Dispatch messages.
13298
13299         (free_connection_data): Free connection name.
13300
13301         (bus_connection_setup): Add connection to the bus driver's list.
13302         (bus_connection_remove_owned_service):
13303         (bus_connection_set_name), (bus_connection_get_name):
13304         Add functions for setting and getting the connection's name.
13305
13306         * bus/connection.h:
13307         Add function headers.
13308
13309         * bus/driver.c: (create_unique_client_name),
13310         (bus_driver_handle_hello_message),
13311         (bus_driver_send_welcome_message), (bus_driver_message_handler),
13312         (bus_driver_add_connection), (bus_driver_remove_connection):
13313         * bus/driver.h:
13314         * bus/main.c:
13315         * bus/services.c: (bus_service_free):
13316         * bus/services.h:
13317         New file that handles communication and registreation with the bus
13318         itself.
13319
13320 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
13321
13322         * dbus/dbus-connection.c: (dbus_connection_send_message):
13323         Add a new client_serial parameter.
13324
13325         (dbus_connection_send_message_with_reply):
13326         Remove a @todo since we've implemented the blocking function.
13327
13328         (dbus_connection_send_message_with_reply_and_block):
13329         New function that sends a message and waits for a reply and
13330         then returns the reply.
13331
13332         * dbus/dbus-connection.h:
13333         Add new functions.
13334
13335         * dbus/dbus-errors.c: (dbus_result_to_string):
13336         * dbus/dbus-errors.h:
13337         Add new DBUS_RESULT.
13338
13339         * dbus/dbus-message-internal.h:
13340         * dbus/dbus-message.c: (_dbus_message_get_reply_serial),
13341         (_dbus_message_set_sender), (dbus_message_write_header),
13342         (dbus_message_new_reply), (decode_header_data),
13343         (_dbus_message_loader_return_buffer), (_dbus_message_test):
13344         * dbus/dbus-message.h:
13345         Add new functions that set the reply serial and sender.
13346         Also marshal and demarshal them correctly and add test.
13347
13348         * dbus/dbus-protocol.h:
13349         Add new DBUS_MESSAGE_TYPE_SENDER.
13350
13351         * glib/dbus-glib.h:
13352         * glib/dbus-gmain.c: (watch_callback), (free_callback_data),
13353         (add_watch), (remove_watch), (add_timeout), (remove_timeout),
13354         (dbus_connection_hookup_with_g_main):
13355         * glib/test-dbus-glib.c: (main):
13356         Rewrite to use GIOChannel and remove the GSource crack.
13357
13358         * test/echo-client.c: (main):
13359         * test/watch.c: (check_messages):
13360         Update for changed APIs
13361
13362 2003-01-19  Anders Carlsson  <andersca@codefactory.se>
13363
13364         * dbus/Makefile.am: Add dbus-timeout.[cħ]
13365
13366         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport):
13367         Create a DBusTimeoutList.
13368         (dbus_connection_set_timeout_functions): Add new function to
13369         set timeout callbacks
13370
13371         * dbus/dbus-connection.h: Add public DBusTimeout API.
13372
13373         * dbus/dbus-message.c: (dbus_message_get_service):
13374         * dbus/dbus-message.h:  New function.
13375
13376         * dbus/dbus-server.c: Fix small doc typo.
13377
13378         * dbus/dbus-timeout.[ch]: New files for mainloop timeouts.
13379
13380 2003-01-19  Anders Carlsson  <andersca@codefactory.se>
13381
13382         * dbus/dbus-string.c (_dbus_string_move_len): Don't delete all
13383         of the string, just as long as specified.
13384
13385 2003-01-19  Havoc Pennington  <hp@pobox.com>
13386
13387         * dbus/dbus-connection.c (dbus_connection_get_is_authenticated):
13388         new function
13389
13390         * dbus/dbus-server.c (dbus_server_set_max_connections)
13391         (dbus_server_get_max_connections, dbus_server_get_n_connections):
13392         keep track of current number of connections, and add API for
13393         setting a max (but haven't implemented enforcing the max yet)
13394
13395 2003-01-18  Havoc Pennington  <hp@pobox.com>
13396
13397         * dbus/dbus-transport-unix.c (unix_do_iteration): only do the
13398         reading/writing if read_watch != NULL or write_watch != NULL.
13399
13400         * dbus/dbus-message.c (_dbus_message_loader_return_buffer): fix
13401         the message loader code to actually load message->header and
13402         message->body into the newly-created message.
13403
13404         * dbus/dbus-transport-unix.c (check_write_watch): fix a mem leak
13405         in OOM case
13406
13407         * dbus/dbus-connection.c (dbus_connection_set_max_message_size)
13408         (dbus_connection_get_max_message_size)
13409         (dbus_connection_set_max_live_messages_size)
13410         (dbus_connection_get_max_live_messages_size): implement some
13411         resource limitation functions
13412
13413         * dbus/dbus-resources.c: new file implementing some of the
13414         resource limits stuff
13415
13416         * dbus/dbus-message.c (dbus_message_iter_get_byte_array): add
13417         missing docs, add @todo to handle OOM etc.
13418
13419         * dbus/dbus-marshal.c (_dbus_demarshal_byte_array): add missing
13420         docs
13421
13422 2003-01-18  Havoc Pennington  <hp@pobox.com>
13423
13424         * dbus/dbus-connection.c (dbus_connection_unref): disconnect the
13425         connection if it hasn't been already.
13426
13427         * dbus/dbus-connection.h: kill off the idea of an ErrorFunction,
13428         replace with DisconnectFunction.
13429
13430 2003-01-18  Havoc Pennington  <hp@pobox.com>
13431
13432         Building --disable-verbose-mode --disable-asserts --disable-tests
13433         cuts the library from 112K to 45K or so
13434
13435         * configure.in: check for varargs macro support,
13436         add --enable-verbose-mode, --enable-asserts.
13437
13438         * dbus/dbus-internals.h (_dbus_assert): support
13439         DBUS_DISABLE_ASSERT
13440         (_dbus_verbose): support DBUS_ENABLE_VERBOSE_MODE
13441
13442 2003-01-18  Havoc Pennington  <hp@pobox.com>
13443
13444         * dbus/dbus-test.c: include config.h so that tests actually run
13445
13446         * dbus/dbus-string.c: add assertions that stuff is 8-byte aligned,
13447         so the failure mode when that assumption fails will be plenty
13448         obvious.
13449
13450 2003-01-18  Havoc Pennington  <hp@pobox.com>
13451
13452         * configure.in: default --enable-tests to $USE_MAINTAINER_MODE
13453
13454         * dbus/Makefile.am: fix it up so dubs-test-main.c is included in
13455         the distribution
13456
13457         * test/Makefile.am: don't use special variable "TESTS" for echo-*
13458         since we don't want to use those in make check
13459
13460 2003-01-15  Havoc Pennington  <hp@redhat.com>
13461
13462         Release 0.2
13463
13464         * NEWS: update
13465
13466 2003-01-15  Havoc Pennington  <hp@redhat.com>
13467
13468         * test/Makefile.am: fix so that test source code ends up in the
13469         distribution on make distcheck
13470
13471 2003-01-15  Havoc Pennington  <hp@redhat.com>
13472
13473         Release 0.1.
13474
13475         * NEWS: update
13476
13477 2003-01-15  Havoc Pennington  <hp@redhat.com>
13478
13479         * dbus/dbus-test.c (dbus_internal_symbol_do_not_use_run_tests):
13480         fix build when --disable-tests
13481
13482         * Makefile.am (EXTRA_DIST): put HACKING in here
13483
13484         * HACKING: document procedure for making a tarball release.
13485
13486 2003-01-14  Anders Carlsson  <andersca@codefactory.se>
13487
13488         * bus/connection.c: (connection_error_handler),
13489         (bus_connection_setup):
13490         * bus/main.c: (main):
13491         Make sure that the DBusConnectionData struct is NULLed
13492         out to prevent a segfault.
13493
13494         * dbus/dbus-errors.c: (dbus_result_to_string):
13495         * dbus/dbus-errors.h:
13496         * dbus/dbus-message.c: (dbus_message_get_fields),
13497         (dbus_message_get_fields_valist), (_dbus_message_test):
13498         * dbus/dbus-message.h:
13499         Make dbus_message_get_fields return a result code so we can
13500         track invalid fields as well as oom.
13501
13502 2003-01-11  Havoc Pennington  <hp@pobox.com>
13503
13504         * configure.in: change --enable-test/--enable-ansi action-if-given
13505         to enable_foo=$enableval instead of enable_foo=yes
13506
13507 2003-01-08  Havoc Pennington  <hp@pobox.com>
13508
13509         * dbus/dbus-string.c (_dbus_string_align_length): new function
13510
13511         * dbus/dbus-test-main.c: move main() for test app here
13512         * dbus/dbus-test.c
13513         (dbus_internal_symbol_do_not_use_run_tests): we have to export a
13514         symbol to run tests, because dbus-test isn't in the main
13515         library
13516
13517         Code review nitpicks.
13518
13519         * dbus/dbus-message.c (dbus_message_write_header): add newlines
13520         for people with narrow emacs ;-). Assert client_serial was filled
13521         in. Assert message->name != NULL.
13522         (dbus_message_append_fields): have "first_field_type" arg separate
13523         from va list, needed for C++ binding that also uses varargs IIRC
13524         and helps with type safety
13525         (dbus_message_new): add @todo about using DBusString to store
13526         service/name internally
13527         (dbus_message_new): don't leak ->service and ->name on OOM later
13528         in the function
13529         (dbus_message_unref): free the service name
13530         (dbus_message_get_fields): same change to varargs
13531         i.e. first_field_type
13532         (_dbus_message_loader_return_buffer): assert that the message data
13533         is aligned (if not it's a bug in our code). Put in verbose griping
13534         about why we set corrupted = TRUE.
13535         (decode_header_data): add FIXME that char* is evil.  Was going to
13536         add FIXME about evil locale-specific string.h strncmp, but just
13537         switched to wacky string-as-uint32 optimization. Move check for
13538         "no room for field name" above get_const_data_len() to avoid
13539         assertion failure in get_const_data_len if we have trailing 2
13540         bytes or the like. Check for service and name fields being
13541         provided twice. Don't leak service/name on error. Require field
13542         names to be aligned to 4 bytes.
13543
13544         * dbus/dbus-marshal.c: move byte swap stuff to header
13545         (_dbus_pack_int32): uscore-prefix
13546         (_dbus_unpack_int32): uscore-prefix
13547         (_dbus_unpack_uint32): export
13548         (_dbus_demarshal_string): add @todo complaining about use of
13549         memcpy()
13550         (_dbus_marshal_get_field_end_pos): add @todo about bad error
13551         handling allowing corrupt data to go unchecked
13552
13553 2003-01-08  Havoc Pennington  <hp@redhat.com>
13554
13555         * dbus/dbus-transport-unix.c (unix_do_iteration): add read/write
13556         to the select() as needed for authentication. (should be using
13557         _dbus_poll() not select, but for another day)
13558
13559         * dbus/dbus.h: include dbus/dbus-protocol.h
13560
13561 2003-01-08  Anders Carlsson  <andersca@codefactory.se>
13562
13563         * dbus/Makefile.am (dbusinclude_HEADERS): Install
13564         dbus-connection.h
13565
13566 2003-01-08  Anders Carlsson  <andersca@codefactory.se>
13567
13568         * dbus/dbus-internals.c: (_dbus_type_to_string):
13569         New function that returns a string describing a type.
13570
13571         * dbus/dbus-marshal.c: (_dbus_demarshal_byte_array):
13572         * dbus/dbus-marshal.h:
13573         * dbus/dbus-message.c: (dbus_message_get_fields_valist),
13574         (dbus_message_iter_get_field_type), (dbus_message_iter_get_double),
13575         (dbus_message_iter_get_byte_array):
13576         * dbus/dbus-message.h:
13577         Add new convenience functions for appending and getting message fields.
13578         Also add demarshalling routines for byte arrays.
13579
13580 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
13581
13582         * dbus/dbus-connection-internal.h:
13583         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport),
13584         (_dbus_connection_get_next_client_serial),
13585         (dbus_connection_send_message):
13586         * dbus/dbus-internals.h:
13587         * dbus/dbus-marshal.c: (unpack_uint32), (dbus_unpack_int32),
13588         (dbus_pack_int32), (_dbus_marshal_double), (_dbus_marshal_int32),
13589         (_dbus_marshal_uint32), (_dbus_demarshal_double),
13590         (_dbus_demarshal_int32), (_dbus_demarshal_uint32),
13591         (_dbus_demarshal_string), (_dbus_marshal_get_field_end_pos),
13592         (_dbus_verbose_bytes), (_dbus_marshal_test):
13593         * dbus/dbus-marshal.h:
13594         * dbus/dbus-message-internal.h:
13595         * dbus/dbus-message.c: (_dbus_message_set_client_serial),
13596         (dbus_message_write_header), (_dbus_message_lock),
13597         (dbus_message_new), (dbus_message_ref), (dbus_message_unref),
13598         (dbus_message_get_name), (dbus_message_append_int32),
13599         (dbus_message_append_uint32), (dbus_message_append_double),
13600         (dbus_message_append_string), (dbus_message_append_byte_array),
13601         (dbus_message_get_fields_iter), (dbus_message_iter_ref),
13602         (dbus_message_iter_unref), (dbus_message_iter_has_next),
13603         (dbus_message_iter_next), (dbus_message_iter_get_field_type),
13604         (dbus_message_iter_get_string), (dbus_message_iter_get_int32),
13605         (dbus_message_iter_get_uint32), (dbus_message_iter_get_double),
13606         (decode_header_data), (_dbus_message_loader_return_buffer),
13607         (message_iter_test), (_dbus_message_test):
13608         * dbus/dbus-message.h:
13609         * dbus/dbus-protocol.h:
13610         * dbus/dbus-test.c: (main):
13611         * dbus/dbus-test.h:
13612         * glib/test-dbus-glib.c: (message_handler), (main):
13613         * test/echo-client.c: (main):
13614         * test/watch.c: (check_messages):
13615         Make messages sendable and receivable for real.
13616
13617 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
13618
13619         * dbus/dbus-marshal.c: (_dbus_marshal_double),
13620         (_dbus_marshal_string), (_dbus_marshal_byte_array):
13621         * dbus/dbus-message.c: (dbus_message_append_int32),
13622         (dbus_message_append_uint32), (dbus_message_append_double),
13623         (dbus_message_append_string), (dbus_message_append_byte_array):
13624         Handle OOM restoration.
13625
13626 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
13627
13628         * dbus/dbus-marshal.c: (_dbus_marshal_string),
13629         (_dbus_demarshal_string), (_dbus_marshal_test):
13630         * dbus/dbus-marshal.h:
13631         * dbus/dbus-message.c: (dbus_message_get_name),
13632         Document these functions.
13633
13634         (dbus_message_append_int32), (dbus_message_append_uint32),
13635         (dbus_message_append_double), (dbus_message_append_string),
13636         (dbus_message_append_byte_array):
13637         * dbus/dbus-message.h:
13638         Add functions for adding message fields of different types.
13639
13640         * dbus/dbus-protocol.h:
13641         Add the different types.
13642
13643 2003-01-05  Havoc Pennington  <hp@pobox.com>
13644
13645         * bus/connection.c: implement routines for handling connections,
13646         first thing is keeping a list of owned services on each connection
13647         and setting up watches etc.
13648
13649         * bus/services.c: implement a mapping from service names to lists
13650         of connections
13651
13652         * dbus/dbus-hash.c: add DBUS_HASH_POINTER
13653
13654         * dbus/dbus-threads.c (dbus_static_mutex_lock): add functions
13655         to use static mutexes for global data
13656
13657         * dbus/dbus-connection.c (dbus_connection_set_data): add new
13658         collection of functions to set/get application-specific data
13659         on the DBusConnection.
13660
13661 2003-01-04  Havoc Pennington  <hp@pobox.com>
13662
13663         * dbus/dbus-sysdeps.c (_dbus_sleep_milliseconds): new function
13664         (_dbus_poll): new function
13665
13666         * dbus/dbus-internals.h (_DBUS_STRUCT_OFFSET): new macro
13667         copied from GLib
13668
13669         * bus/loop.c: initial code for the daemon main loop
13670
13671 2003-01-04  Havoc Pennington  <hp@pobox.com>
13672
13673         * test/watch.c (error_handler): make it safe if the error handler
13674         is called multiple times (if we s/error handler/disconnect
13675         handler/ we should just guarantee it's called only once)
13676
13677         * dbus/dbus-transport.c (_dbus_transport_disconnect): call the
13678         error handler on disconnect (it's quite possible we should
13679         just change the error handler to a "disconnect handler," I'm
13680         not sure we have any other meaningful errors)
13681
13682         * configure.in: check for getpwnam_r
13683
13684         * dbus/dbus-transport.c, dbus/dbus-transport-unix.c,
13685         dbus/dbus-auth.c: add credentials support, add EXTERNAL auth
13686         mechanism as in SASL spec, using socket credentials
13687
13688         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): new function
13689         (_dbus_send_credentials_unix_socket): new function
13690
13691         * dbus/dbus-sysdeps.c (_dbus_accept_unix_socket): rename just
13692         dbus_accept()
13693         (_dbus_write): only check errno if <0 returned
13694         (_dbus_write_two): ditto
13695
13696 2003-01-02  Anders Carlsson  <andersca@codefactory.se>
13697
13698         * dbus/dbus-marshal.c: (_dbus_marshal_utf8_string),
13699         (_dbus_marshal_byte_array), (_dbus_demarshal_utf8_string),
13700         (_dbus_marshal_test):
13701         * dbus/dbus-marshal.h:
13702         Add _dbus_marshal_byte_array and rename _dbus_marshal_string
13703         to _dbus_marshal_utf8_string. Also fix some tests.
13704
13705 2002-12-28  Harri Porten  <porten@kde.org>
13706
13707         * configure.in: added check for C++ compiler and a very cheesy
13708         check for the Qt integration
13709
13710         * Makefile.am (SUBDIRS): compile qt subdir if support is enabled
13711
13712         * qt/Makefile.am: added
13713
13714         * qt/.cvsignore: added
13715
13716         * qt/dbus-qthread.cc, qt/dbus-qthread.cpp: renamed former to
13717         latter, added #ifdef QT_THREAD_SUPPORT guard.
13718
13719         * dbus/Makefile.am: added missing headers for make dist
13720
13721 2002-12-28  Kristian Rietveld  <kris@gtk.org>
13722
13723         * dbus/Makefile.am: fixup export-symbols-regex.
13724
13725 2002-12-27  Anders Carlsson  <andersca@codefactory.se>
13726
13727         * acinclude.m4: Add this file and put the
13728         PKG_CHECK_MODULE macro in it.
13729
13730 2002-12-27  Anders Carlsson  <andersca@codefactory.se>
13731
13732         * dbus/dbus-marshal.c: (_dbus_marshal_string),
13733         (_dbus_demarshal_double), (_dbus_demarshal_int32),
13734         (_dbus_demarshal_uint32), (_dbus_demarshal_string),
13735         (_dbus_marshal_test):
13736         Make the demarshalling routines align the pos argument.
13737         Add string marshalling tests and fix the obvious bugs
13738         discovered.
13739
13740 2002-12-26  Havoc Pennington  <hp@pobox.com>
13741
13742         * dbus/dbus-auth.c: fixes fixes fixes
13743
13744         * dbus/dbus-transport-unix.c: wire up support for
13745         encoding/decoding data on the wire
13746
13747         * dbus/dbus-auth.c (_dbus_auth_encode_data)
13748         (_dbus_auth_decode_data): append to target string
13749         instead of nuking it.
13750
13751 2002-12-26  Havoc Pennington  <hp@pobox.com>
13752
13753         * dbus/dbus-marshal.h (DBUS_COMPILER_BYTE_ORDER): #ifdef
13754         WORDS_BIGENDIAN then compiler byte order is DBUS_BIG_ENDIAN,
13755         doh
13756
13757         * dbus/dbus-marshal.c: Add macros to do int swapping in-place and
13758         avoid swap_bytes() overhead (ignoring possible assembly stuff for
13759         now). Main point is because I wanted unpack_uint32 to implement
13760         _dbus_verbose_bytes
13761         (_dbus_verbose_bytes): new function
13762
13763         * dbus/dbus-string.c (_dbus_string_validate_ascii): new function
13764
13765         * dbus/dbus-message.c (_dbus_message_loader_get_is_corrupted): add
13766         mechanism to handle a corrupt message stream
13767         (_dbus_message_loader_new): fix preallocation to only prealloc,
13768         not prelengthen
13769
13770         * dbus/dbus-string.c (_dbus_string_skip_blank): fix this function
13771         (_dbus_string_test): enhance tests for copy/move and fix the
13772         functions
13773
13774         * dbus/dbus-transport-unix.c: Hold references in more places to
13775         avoid reentrancy problems
13776
13777         * dbus/dbus-transport.c: ditto
13778
13779         * dbus/dbus-connection.c (dbus_connection_dispatch_message): don't
13780         leak reference count in no-message case
13781
13782         * test/watch.c (do_mainloop): handle adding/removing watches
13783         during iteration over the watches. Also, ref the connection/server
13784         stored on a watch, so we don't try to mangle a destroyed one.
13785
13786         * dbus/dbus-transport-unix.c (do_authentication): perform
13787         authentication
13788
13789         * dbus/dbus-auth.c (get_state): add a state
13790         AUTHENTICATED_WITH_UNUSED_BYTES and return it if required
13791         (_dbus_auth_get_unused_bytes): append the unused bytes
13792         to the passed in string, rather than prepend
13793
13794         * dbus/dbus-transport.c (_dbus_transport_init_base): create
13795         the auth conversation DBusAuth
13796
13797         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd)
13798         (_dbus_transport_new_for_domain_socket): when creating a
13799         transport, pass in whether it's a client-side or server-side
13800         transport so we know which DBusAuth to create
13801
13802 2002-12-03  Havoc Pennington  <hp@pobox.com>
13803
13804         * dbus/dbus-transport-unix.c (unix_finalize): finalize base
13805         _after_ finalizing the derived members
13806         (unix_connection_set): unref watch if we fail to add it
13807
13808         * dbus/dbus-connection.c (dbus_connection_unref): delete the
13809         transport first, so that the connection owned by the
13810         transport will be valid as the transport finalizes.
13811
13812         * dbus/dbus-transport-unix.c (unix_finalize): free the write_watch
13813         if necessary, and remove watches from the connection.
13814
13815         * dbus/dbus-watch.c (_dbus_watch_list_free): improve a comment
13816
13817 2002-12-26  Anders Carlsson  <andersca@codefactory.se>
13818
13819         * dbus/dbus-marshal.c: (_dbus_marshal_string),
13820         (_dbus_demarshal_double), (_dbus_demarshal_int32),
13821         (_dbus_demarshal_uint32), (_dbus_demarshal_string),
13822         (_dbus_marshal_test):
13823         * dbus/dbus-marshal.h:
13824         Add string marshal functions and have the demarshal functions
13825         return the new position.
13826
13827 2002-12-25  Havoc Pennington  <hp@pobox.com>
13828
13829         * doc/dbus-sasl-profile.txt: docs on the authentication protocol,
13830         it is a simple protocol that just maps directly to SASL.
13831
13832         * dbus/dbus-auth.h, dbus/dbus-auth.c: authentication protocol
13833         initial implementation, not actually used yet.
13834
13835         * dbus/dbus-string.c (_dbus_string_find): new function
13836         (_dbus_string_equal): new function
13837         (_dbus_string_base64_encode): new function
13838         (_dbus_string_base64_decode): new function
13839
13840 2002-12-25  Anders Carlsson  <andersca@codefactory.se>
13841
13842         * dbus/Makefile.am:
13843         * dbus/dbus-marshal.c: (swap_bytes), (_dbus_marshal_double),
13844         (_dbus_marshal_int32), (_dbus_marshal_uint32),
13845         (_dbus_demarshal_double), (_dbus_demarshal_int32),
13846         (_dbus_demarshal_uint32), (_dbus_marshal_test):
13847         * dbus/dbus-marshal.h:
13848         * dbus/dbus-protocol.h:
13849         * dbus/dbus-test.c: (main):
13850         * dbus/dbus-test.h:
13851         Add un-optimized marshalling/demarshalling routines.
13852
13853 2002-12-25  Harri Porten  <porten@kde.org>
13854
13855         * qt/dbus-qt.h: adjusted ctor and getter to KDE/Qt conventions
13856
13857 2002-12-24  Zack Rusin  <zack@kde.org>
13858
13859         * qt/dbus-qthread.cc: adding - integrates QMutex into Dbus
13860         * qt/dbus-qt.h: skeleton with two sample implemenatation of the
13861         main loop stuff
13862
13863 2002-12-24  Havoc Pennington  <hp@pobox.com>
13864
13865         * glib/dbus-gthread.c: fix include
13866
13867         * glib/dbus-glib.h: rename DBusMessageHandler for now.
13868         I think glib API needs to change, though, as you don't
13869         want to use DBusMessageFunction, you want to use the
13870         DBusMessageHandler object. Probably
13871         dbus_connection_open_with_g_main_loop()
13872         and dbus_connection_setup_g_main_loop() or something like that
13873         (but think of better names...) that just create a connection
13874         that has watch/timeout functions etc. already set up.
13875
13876         * dbus/dbus-connection.c
13877         (dbus_connection_send_message_with_reply): new function just to
13878         show how the message handler helps us deal with replies.
13879
13880         * dbus/dbus-list.c (_dbus_list_remove_last): new function
13881
13882         * dbus/dbus-string.c (_dbus_string_test): free a string that
13883         wasn't
13884
13885         * dbus/dbus-hash.c: use memory pools for the hash entries
13886         (rebuild_table): be more paranoid about overflow, and
13887         shrink table when we can
13888         (_dbus_hash_test): reduce number of sprintfs and write
13889         valid C89. Add tests for case where we grow and then
13890         shrink the hash table.
13891
13892         * dbus/dbus-mempool.h, dbus/dbus-mempool.c: memory pools
13893
13894         * dbus/dbus-connection.c (dbus_connection_register_handler)
13895         (dbus_connection_unregister_handler): new functions
13896
13897         * dbus/dbus-message.c (dbus_message_get_name): new
13898
13899         * dbus/dbus-list.c: fix docs typo
13900
13901         * dbus/dbus-message-handler.h, dbus/dbus-message-handler.c:
13902         an object representing a handler for messages.
13903
13904 2002-12-16  Anders Carlsson  <andersca@codefactory.se>
13905
13906         * glib/dbus-glib.h:
13907         * glib/dbus-gthread.c: (dbus_gthread_init):
13908         Don't use the gdbus prefix for public functions.
13909
13910 2002-12-16  Anders Carlsson  <andersca@codefactory.se>
13911
13912         * Makefile.am:
13913         * configure.in:
13914         Add GLib checks and fixup .pc files
13915
13916         * glib/Makefile.am:
13917         * glib/dbus-glib.h:
13918         * glib/dbus-gmain.c: (gdbus_connection_prepare),
13919         (gdbus_connection_check), (gdbus_connection_dispatch),
13920         (gdbus_add_connection_watch), (gdbus_remove_connection_watch),
13921         (dbus_connection_gsource_new):
13922         * glib/dbus-gthread.c: (dbus_gmutex_new), (dbus_gmutex_free),
13923         (dbus_gmutex_lock), (dbus_gmutex_unlock), (dbus_gthread_init):
13924         * glib/test-dbus-glib.c: (message_handler), (main):
13925         Add GLib support.
13926
13927 2002-12-15  Harri Porten  <porten@kde.org>
13928
13929         * autogen.sh: check for libtoolize before attempting to use it
13930
13931         * dbus/dbus-transport-unix.c: include <sys/time.h> for timeval
13932         struct.
13933
13934         * .cvsignore: ignore more stamp files
13935
13936         * dbus/dbus-watch.c (_dbus_watch_list_new): fixed doc error
13937
13938         * test/Makefile.am: added -I$(top_srcdir) to be able to compile
13939         without make install.
13940
13941 2002-12-15  Havoc Pennington  <hp@pobox.com>
13942
13943         * dbus/dbus-threads.c: add thread stubs that a higher library
13944         layer can fill in. e.g. the GLib wrapper might fill them in with
13945         GThread stuff. We still need to use this thread API to
13946         thread-safe-ize the library.
13947
13948 2002-12-12  Havoc Pennington  <hp@pobox.com>
13949
13950         * dbus/dbus-transport-unix.c, dbus/dbus-server-unix.c: use the
13951         below new interfaces and include fewer system headers.
13952
13953         * dbus/dbus-sysdeps.c (_dbus_read): new function
13954         (_dbus_write): new function
13955         (_dbus_write_two): new function
13956         (_dbus_connect_unix_socket): new function
13957         (_dbus_listen_unix_socket): new function
13958
13959         * dbus/dbus-message-internal.h: change interfaces to use
13960         DBusString
13961
13962 2002-12-11  Havoc Pennington  <hp@pobox.com>
13963
13964         * dbus/dbus-types.h: add dbus_unichar
13965
13966         * dbus/dbus-internals.c (_dbus_verbose): use _dbus_getenv
13967
13968         * dbus/dbus-connection.c (dbus_connection_send_message): return
13969         TRUE on success
13970
13971         * dbus/dbus-transport.c: include dbus-watch.h
13972
13973         * dbus/dbus-connection.c: include dbus-message-internal.h
13974
13975         * HACKING: add file with coding guidelines stuff.
13976
13977         * dbus/dbus-string.h, dbus/dbus-string.c: Encapsulate all string
13978         handling here, for security purposes (as in vsftpd). Not actually
13979         using this class yet.
13980
13981         * dbus/dbus-sysdeps.h, dbus/dbus-sysdeps.c: Encapsulate all
13982         system/libc usage here, as in vsftpd, for ease of auditing (and
13983         should also simplify portability). Haven't actually moved all the
13984         system/libc usage into here yet.
13985
13986 2002-11-25  Havoc Pennington  <hp@pobox.com>
13987
13988         * dbus/dbus-internals.c (_dbus_verbose): fix to not
13989         always print the first verbose message.
13990
13991 2002-11-24  Havoc Pennington  <hp@pobox.com>
13992
13993         * test/echo-client.c, test/echo-server.c: cheesy test
13994         clients.
13995
13996         * configure.in (AC_CHECK_FUNCS): check for writev
13997
13998         * dbus/dbus-message.c (_dbus_message_get_network_data): new
13999         function
14000
14001         * dbus/dbus-list.c (_dbus_list_foreach): new function
14002
14003         * dbus/dbus-internals.c (_dbus_verbose): new function
14004
14005         * dbus/dbus-server.c, dbus/dbus-server.h: public object
14006         representing a server that listens for connections.
14007
14008         * dbus/.cvsignore: create
14009
14010         * dbus/dbus-errors.h, dbus/dbus-errors.c:
14011         public API for reporting errors
14012
14013         * dbus/dbus-connection.h, dbus/dbus-connection.c:
14014         public object representing a connection that
14015         sends/receives messages. (Same object used for
14016         both client and server.)
14017
14018         * dbus/dbus-transport.h, dbus/dbus-transport.c:
14019         Basic abstraction for different kinds of stream
14020         that we might read/write messages from.
14021
14022 2002-11-23  Havoc Pennington  <hp@pobox.com>
14023
14024         * dbus/dbus-internals.h (_DBUS_INT_MAX): add _DBUS_INT_MIN
14025         _DBUS_INT_MAX
14026
14027         * dbus/dbus-test.c (main): add list test, and include
14028         dbus-test.h as intended
14029
14030         * dbus/dbus-hash.c (_dbus_hash_table_remove_string)
14031         (_dbus_hash_table_remove_int): return value indicates
14032         whether the entry existed to remove
14033
14034         * dbus/dbus-list.c: add linked list utility class,
14035         with docs and tests
14036
14037         * dbus/dbus-hash.c: add TODO item about shrinking the hash bucket
14038         array sometimes.
14039
14040 2002-11-23  Havoc Pennington  <hp@pobox.com>
14041
14042         * Doxyfile.in (INCLUDE_FILE_PATTERNS): expand DBUS_BEGIN_DECLS/
14043         DBUS_END_DECLS to nothing, that should fix this once and for all
14044
14045         * Doxyfile.in (JAVADOC_AUTOBRIEF): set to YES
14046
14047         * dbus/dbus-message.c, dbus/dbus-hash.c:
14048         add some missing @brief
14049
14050 2002-11-23  Havoc Pennington  <hp@pobox.com>
14051
14052         * dbus/dbus-message.h: put semicolons after DEBUG_BEGIN_DECLS
14053         to avoid confusing Doxygen
14054
14055         * dbus/dbus-hash.c: @} not }@
14056
14057         * dbus/dbus-message.c (struct DBusMessage): split out
14058         internals docs
14059
14060 2002-11-23  Havoc Pennington  <hp@pobox.com>
14061
14062         * configure.in: pile on more warning flags if using gcc
14063
14064         * Doxyfile.in (EXTRACT_STATIC): set to NO, so we don't have
14065         to document static functions
14066
14067         * configure.in: add summary to end of configure so it
14068         looks nice and attractive
14069
14070         * dbus/dbus-hash.c: finish implementation and write unit
14071         tests and docs
14072
14073         * configure.in: add --enable-tests to enable unit tests
14074
14075         * dbus/dbus-test.c: test program to run unit tests
14076         for all files in dbus/*, initially runs a test for
14077         dbus-hash.c
14078
14079         * dbus/dbus-internals.h: file to hold some internal utility stuff
14080
14081 2002-11-22  Havoc Pennington  <hp@redhat.com>
14082
14083         * dbus/dbus-hash.c: copy in Tcl hash table, not yet
14084         "ported" away from Tcl
14085
14086         * dbus/dbus-types.h: header for types such as dbus_bool_t
14087
14088 2002-11-22  Havoc Pennington  <hp@redhat.com>
14089
14090         * dbus/dbus.h: fixups for doc warnings
14091
14092         * Doxyfile.in (FILE_PATTERNS): we need to scan .h to pick up
14093         macros
14094         (QUIET): make it quiet so we can see warnings
14095
14096         * dbus/dbus-memory.c: teach D-BUS to allocate and free memory
14097
14098 2002-11-22  Havoc Pennington  <hp@redhat.com>
14099
14100         * Makefile.am: include "Doxyfile" target in all-local
14101
14102         * configure.in: generate the Doxyfile
14103
14104         * Doxyfile.in: move Doxyfile here, so we can use
14105         configure to generate a Doxyfile with the right
14106         version number etc.
14107
14108 2002-11-22  Havoc Pennington  <hp@redhat.com>
14109
14110         * dbus/dbus-message.c: move inline docs into .c file
14111
14112         * Doxyfile (OUTPUT_DIRECTORY): move output to doc/api
14113         so all docs are under doc/
14114         (MAN_EXTENSION): generate man pages. Use extension
14115         ".3dbus" which matches ".3qt" on my system,
14116         I guess this is OK, I don't know really.
14117         (FILE_PATTERNS): look for .c files not .h, makes sense
14118         for plain C I think
14119
14120 2002-11-22  Havoc Pennington  <hp@pobox.com>
14121
14122         * Makefile.am (SUBDIRS): rename subdir "server" to "bus"
14123         because any app can be a server, and any app can be a client,
14124         the bus is a special kind of server.
14125
14126 Thu Nov 21 23:35:31 2002  Zack Rusin  <zack@kde.org>
14127
14128         * Doxyfile : adding. Still needs Makefile rules to be generated
14129         automatically (just run "doxygen" in the toplevel dir for now to
14130         generate docs)
14131
14132         * dbus/dbus-message.h : Adding sample docs (javadoc since
14133         resembles gtk-doc a little more)
14134
14135         * dbus/dbus.h : Adding sample docs
14136
14137 2002-11-21  Havoc Pennington  <hp@redhat.com>
14138
14139         * dbus/Makefile.am (INCLUDES): define DBUS_COMPILATION
14140         so we can allow ourselves to include files directly,
14141         instead of having to use dbus.h
14142
14143         * dbus/dbus.h: fill in
14144
14145         * dbus/dbus-message.h: sketch out a sample header file.
14146         Include griping if you include it directly instead of
14147         via dbus.h
14148
14149         * dbus/dbus-macros.h: new file with macros for extern "C",
14150         TRUE/FALSE, NULL, etc.
14151
14152         * doc/file-boilerplate.c: put include guards in here
14153
14154 2002-11-21  Havoc Pennington  <hp@redhat.com>
14155
14156         * doc/file-boilerplate.c: include both AFL and GPL boilerplate.
14157
14158         * COPYING: include the GPL as well, and license code
14159         under both AFL and GPL.
14160
14161 2002-11-21  Havoc Pennington  <hp@redhat.com>
14162
14163         * acconfig.h: get rid of this
14164
14165         * autogen.sh (run_configure): add --no-configure option
14166
14167         * configure.in: remove AC_ARG_PROGRAM to make
14168         autoconf complain less. add AC_PREREQ.
14169         add AC_DEFINE third arg.
14170
14171 2002-11-21  Anders Carlsson  <andersca@codefactory.se>
14172
14173         * doc/Makefile.am:
14174         Fix references so we can distcheck.
14175
14176 2002-11-21  Havoc Pennington  <hp@redhat.com>
14177
14178         * Initial module creation
14179