* dbus/dbus-spawn.c (_dbus_spawn_async_with_babysitter): Make sure we
[platform/upstream/dbus.git] / ChangeLog
1 2006-09-07  John (J5) Palmieri  <johnp@redhat.com>
2
3         * dbus/dbus-spawn.c (_dbus_spawn_async_with_babysitter): Make sure we
4         close child_err_report_pipe[WRITE_END] on exec (Patch from 
5         Kimmo Hämäläinen <kimmo dot hamalainen at nokia dot com>)
6
7 2006-09-07  John (J5) Palmieri  <johnp@redhat.com>
8
9         * Clean up close calls to use _dbus_close (Patch from 
10         Kimmo Hämäläinen <kimmo dot hamalainen at nokia dot com>)
11
12 2006-09-06  John (J5) Palmieri  <johnp@redhat.com>
13
14         * doc/TODO:
15         - Remove pending call locking todo item
16         - dbus_connection_open now holds hard ref.  Remove todo item
17         - do proper locking on _dbus_bus_check_connection_and_unref
18           and handle DBUS_BUS_STARTER. Remove todo item
19         - Warn on closing of a shared connection.  Remove todo item
20
21         * bus/bus.c, bus/connection.c, bus/dispatch.c, dbus/dbus-bus.c,
22         dbus/dbus-connection.c: Use the dbus_connection_close_internal
23         so we don't get the warning when closing shared connections
24
25         * test/test-service.c, test/test-shell-service.c: Applications
26         don't close shared connections themselves so we unref instead of
27         close
28
29         * test/test-utils.c (test_connection_shutdown): Close the connection
30
31         * dbus/dbus-bus.c (_dbus_bus_check_connection_and_unref): Changed to
32         _dbus_bus_check_connection_and_unref_unlocked since we only call this
33         method on a locked connection.  
34         Make sure we call _dbus_connection_unref_unlocked instead of 
35         dbus_connection_unref also.
36         Handle DBUS_BUS_STARTER correctly
37
38         * dbus/dbus-connection.c (connection_record_shared_unlocked):
39         Mark as shared and hard ref the connection
40         (connection_forget_shared_unlocked): Remove the hard ref from the 
41         connection
42         (_dbus_connection_close_internal_and_unlock):  New internal function
43         which takes a locked connection and unlocks it after closing it
44         (_dbus_connection_close_internal): New internal function which acts
45         like the origonal dbus_connection_close method by grabbing a connection
46         lock and calling _dbus_connection_close_internal_and_unlock
47         (dbus_connection_close): Public close method, warns when the app
48         trys to close a shared connection
49
50 2006-09-06  John (J5) Palmieri  <johnp@redhat.com>
51
52         * bus/driver.c:
53         (bus_driver_generate_introspect_string): New method for populating
54         a DBusString with the introspect data
55         (bus_driver_handle_introspect): Move introspect generation code to 
56         bus_driver_generate_introspect_string
57
58         * bus/main.c:
59         (introspect): New function which prints out the intropect data and
60         exits
61         (main): Add a --introspect switch
62
63 2006-09-06  John (J5) Palmieri  <johnp@redhat.com>
64
65         * doc/TODO: Removed dtd publishing item.  
66         It seems the dtd has already been added at
67         http://www.freedesktop.org/standards/dbus/1.0/introspect.dtd
68
69 2006-09-05  John (J5) Palmieri  <johnp@redhat.com>
70
71         * doc/TODO, various source files: Audited todo's and FIXME's and
72         prepended the ones we should be looking at with 1.0.  Those
73         prepended with 1.0? need clerification or might not be needed
74         for 1.0
75
76 2006-09-05  John (J5) Palmieri  <johnp@redhat.com>
77
78         * dbus/dbus-pending-call.c: Add some checks so we don't crash on
79         NULL in the public API (Patch from Kimmo Hämäläinen 
80         <kimmo dot hamalainen at nokia dot com>)
81
82 2006-09-05  John (J5) Palmieri  <johnp@redhat.com>
83
84         * configure.in: Fix for OS-X compile time endian issues (patch from
85         Benjamin Reed <ranger at befunk dot com>)
86
87 2006-09-05  John (J5) Palmieri  <johnp@redhat.com>
88
89         * configure.in: Check for no-common compiler flag (OS-X fix from
90         Benjamin Reed <ranger at befunk dot com>)
91
92 2006-09-01  John (J5) Palmieri  <johnp@redhat.com>
93
94         * tools/dbus-launch.c: Add a sigterm handler (patch from Frederic Crozat
95         <fcrozat at mandriva dot com>)
96
97 2006-08-29  Havoc Pennington  <hp@redhat.com>
98
99         * test/test-service.c (path_message_func): fix lack of return value
100
101         * dbus/dbus-sysdeps.c (_dbus_printf_string_upper_bound): fix
102         formatting, remove #ifdef, and fix docs. #ifdef doesn't make
103         any more sense than on anything else in this file.
104         (_dbus_get_tmpdir): add const to return value, and keep the
105         results of the various getenv around in a static variable.
106
107 2006-08-29  Havoc Pennington  <hp@redhat.com>
108
109         * dbus/dbus-sysdeps-util.c, dbus/dbus-sysdeps-util-unix.c: change
110         from Ralf Habacker to move UNIX-specific sysdeps into a separate file.
111
112 2006-08-25  John (J5) Palmieri  <johnp@redhat.com>
113
114         * test/Makefile.am: change find to use syntax that works with non
115         gnu versions of find
116
117 2006-08-25  John (J5) Palmieri  <johnp@redhat.com>
118
119         * dbus/dbus-transport.c: fix invalid deref when checking if
120         a vtable method exists (Patch from Christian Ehrlicher 
121         <ch dot ehrlicher at gmx dot de>)
122
123 2006-08-25  John (J5) Palmieri  <johnp@redhat.com>
124
125         * configure.in, dbus/Makefile.am, test/name-test/run-test.sh, 
126         test/name-test/Makefile.am: Fixed some issues with getting get dbus 
127         to build with builddir != srcdir (Taken from a patch by Bernard Leak
128         <bernard at brenda-arkle dot demon dot co dot uk>)
129
130 2006-08-25  John (J5) Palmieri  <johnp@redhat.com>
131
132         * configure.in: Fix DBUS_DAEMONDIR to use EXPANDED_BINDIR for the
133         default case
134
135 2006-08-25  John (J5) Palmieri  <johnp@redhat.com>
136
137         * configure.ac, bus/Makefile.am: Generalize kqueue support so that
138         it works on any system providing this interface, not only FreeBSD.
139         For example, NetBSD. (Patch by Julio M. Merino Vidal  <jmmv at NetBSD dot org>)
140
141 2006-08-20  Havoc Pennington  <hp@redhat.com>
142
143         * doc/dbus-faq.xml, doc/dbus-tutorial.xml: some improvements to
144         the docs
145
146 2006-08-18  John (J5) Palmieri  <johnp@redhat.com>
147
148         * Released 0.92 
149
150 2006-08-18  John (J5) Palmieri  <johnp@redhat.com>
151
152         * dbus/dbus-threads.c (dbus_threads_init): change the documentation
153         to reflect the init late change
154
155         * bus/bus.c (bus_context_new): Check user before we fork so we can
156         print out an error message a user will be able to see
157
158 2006-08-18  John (J5) Palmieri  <johnp@redhat.com>
159
160         Patch provided by Ralf Habacker (ralf dot habacker at freenet dot de) 
161
162         * dbus/dbus-sysdeps.c, dbus/dbus-threads.c, dbus/dbus-internals.h:
163         Add two more global locks for use on windows platforms.  These are
164         unused on non-windows platforms but are not ifdefed out to avoid
165         potential bugs (i.e. the few bytes lost does not warrent the extra
166         maintanence and complexity that having seperate sets of locks would
167         cause)
168
169 2006-08-18  John (J5) Palmieri  <johnp@redhat.com>
170
171         * bus/services.c (bus_registry_acquire_service): Return an error
172         when an application tries to register the org.freedesktop.DBus Bus Name
173
174         * bus/services.c (bus_registry_release_service): Return an error
175         when an application tries to release the org.freedesktop.DBus Bus Name
176
177 2006-08-17  Alp Toker  <alp@atoker.com>
178
179         * doc/dbus-specification.xml: Fix some minor typos.
180
181 2006-08-17  John (J5) Palmieri  <johnp@redhat.com>
182
183         * configure.in: use $with_init_scripts instead of $operating_system
184         to determine where to store the pid since the init scripts manipulate 
185         the pid file (patch from Marcelo Ricardo Leitner 
186         <marcelo dot leitner at terra dot com dot br>.  
187
188 2006-08-16  John (J5) Palmieri  <johnp@redhat.com>
189
190         * dbus/dbus-threads.c: Add static DBusList *uninitialized_mutex_list and
191         static DBusList *uninitialized_condvar_list to support new late 
192         initialization threading model.  In this model threads can be initialized
193         even after the D-Bus API has been used but still needs to be initialized 
194         before the second thread has been started.  Mutexes and condvar addresses
195         are stored in the two static lists and are replaced with actuall locks
196         when threads are initalized.
197         (_dbus_mutex_new_at_location): New method for creating a mutex and placing
198         the location into the static list
199         (_dbus_mutex_free_at_location): New method for removing a mutex location 
200         from the static list and freeing the mutex
201         (_dbus_condvar_new_at_location): New method for creating a conditional 
202         variable and placing the location into the static list
203         (_dbus_condvar_free_at_location): New method for removing a conditional
204         variable location from the static list and freeing the conditional variable 
205         (init_uninitialized_locks): Atomic method which goes through the static 
206         lists of mutex and condvar location and updates them with actuall locks
207         (init_global_locks): changed to init_locks
208         
209         * dbus/dbus-connection.c:
210         (_dbus_connection_test_get_locks): New method for tests to check connections
211         (_dbus_connection_new_for_transport): Use the new at_location mutex and
212         condvar API
213         (dbus_connection_allocate_data_slot): Pass in the global lock address
214         to _dbus_data_slot_allocator_alloc
215
216         * dbus/dbus-dataslot.c:
217         (_dbus_data_slot_allocator_alloc): Use the address of the mutex
218         instead of the mutex itself
219
220         * dbus/dbus-message.c:
221         (dbus_message_allocate_data_slot): Pass in the global lock address
222         to _dbus_data_slot_allocator_alloc
223
224         * dbus/dbus-pending-call.c:
225         (dbus_pending_call_allocate_data_slot): Pass in the global lock address
226         to _dbus_data_slot_allocator_alloc
227
228         * dbus/dbus-server.c:
229         (_dbus_server_init_base): Use the new at_location mutex API
230         (dbus_server_allocate_data_slot): Pass in the global lock address
231         to _dbus_data_slot_allocator_alloc
232
233         * test/name-test/test-threads-init.c: New test case for late thread
234         initialization
235
236 2006-08-14  John (J5) Palmieri  <johnp@redhat.com>
237
238         * dbus/dbus-dataslot.c (_dbus_data_slot_allocator_alloc):
239         Change _dbus_abort to _dbus_assert_not_reached because _dbus_abort
240         causes compile problems when asserts are turned off
241         Keeping _dbus_warn for printing out the message so even if
242         asserts are turned off the user gets the messages that something is 
243         wrong 
244
245 2006-08-14  John (J5) Palmieri  <johnp@redhat.com>
246
247         Patches by Kjartan Maraas <kmaraas at gnome dot org>
248
249         * bus/services.c (bus_service_list_queued_owners):
250         Add a pointer cast to fix compiler warning
251
252         * dbus/dbus-dataslot.c (_dbus_data_slot_list_get):
253         return a NULL instead of FALSE since the return type
254         is not expecting a boolean
255
256         * dbus/dbus-marshal-basic.c (_dbus_marshal_test):
257         Remove unused variable
258
259         * dbus/dbus-marshal-recursive-util.c (node_new):
260         return a NULL instead of FALSE since the return type
261         is not expecting a boolean
262
263         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
264         Send a NULL into _dbus_transport_new_for_fd instead of a FALSE
265         because we are expecting a pointer not a boolean
266
267         * dbus/dbus-sysdeps-util.c (_dbus_get_tmpdir): 
268         add void as the parameter so some compilers
269         don't complain
270
271         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_domain_socket,
272           _dbus_transport_new_for_tcp_socket):
273         Send a NULL into _dbus_transport_new_for_fd instead of a FALSE
274         because we are expecting a pointer not a boolean
275
276         * test/shell-test.c (test_command_line):
277         cast the second argument to _dbus_list_append to avoid compiler
278         warnings
279
280         * test/test-names.c (main): remove unused variable
281
282         * test/test-service.c (check_hello_from_self_reply):
283         Initialize echo_message and echo_reply to NULL
284         
285         * test/test-shell-service.c (handle_echo):
286         Remove unused variable and cast the third parameter passed to
287         dbus_connection_get_object_path_data to avoid compiler warrnings
288
289         * test/name-test/test-names.c (clear_message_queue):
290         Remove unused function
291
292         * test/name-test/test-pending-call-dispatch.c:
293         Fix format string in printf
294
295
296 2006-08-14  John (J5) Palmieri  <johnp@redhat.com>
297
298         * dbus/dbus-bus.c:
299         * test/name-test/test-names.c:
300         Remove test method dbus_bus_connection_get_unique_name because 
301         we already have public method dbus_bus_get_unique_name that 
302         does the exact same thing
303
304 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
305
306         * dbus/dbus-signature.c:
307         fix typos in Julio's previous patch which cause make check to fail
308
309 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
310
311         * dbus/dbus-address.c (_dbus_address_test): Revert leaking strcmp.  
312         In any case it was wrong since this is a test checking to see if
313         address parsing is correct.  There was no need to get the true
314         tmp directory.  
315
316 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
317
318         * dbus/dbus-macros.h: Revert the addition of stddef.h
319         as we should not be adding it to library headers 
320
321 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
322
323         * dbus/dbus-signature.c:
324         Fix the unit tests so that they work if assertions are not enabled.
325         (patch from Julio M. Merino Vidal  <jmmv at NetBSD dot org>)
326
327 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
328
329         * tools/run-with-tmp-session-bus.sh:
330         * test/name-test/run-test.sh:
331         Remove bashisms (patch from Julio M. Merino Vidal
332         <jmmv at NetBSD dot org>)
333
334 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
335
336         * configure.in: add a version (>= 2.6.0) check for libxml2
337
338 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
339
340         * configure.in: make sure the compiler supports -Wfloat-equal
341         
342         * bus/dir-watch-dnotify.c: move functional code after 
343         variable declerations (C99 fix)  (patches from Jens Granseuer
344         <jensgr at gmx dot net>
345
346 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
347
348         * dbus/dbus-macros.h:
349         add #include <stddef.h> so that Sun compilers don't complain about
350         the defining NULL
351
352 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
353
354         * dbus/dbus-sysdeps.c:
355         * dbus/dbus-address.c:
356         * bus/activation.c:
357         * test/shell-test.c:
358         don't hardcode tmp directory (patch from Dave Meikle 
359         <dmk at davemeikle dot co dot uk>)
360
361 2006-08-09  John (J5) Palmieri  <johnp@redhat.com>
362
363         * dbus/dbus-dataslot.c (_dbus_data_slot_allocator_alloc):
364         Change an assert to a detailed warning and abort.  
365         When allocator->lock != mutex it indicates that the user has failed
366         to initalize threads before using the D-Bus library.  This warning
367         helps the user identify the issue and fix their app.
368
369 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
370
371         These are all patches from Kjartan Maraas <kmaraas at gnome dot org>
372         with cleanups of bugs found from Coverity reports:
373
374         * dbus/dbus-sysdeps-util.c (_dbus_write_pid_file):
375         close the file on error to avoid a leak
376
377         * bus/expirelist.c (bus_expire_list_test):
378         Check for NULL on dbus_new0
379
380         * bus/activation.c (update_directory):
381         remove dead code
382
383         * bus/config-parser.c (merge_service_context_hash, start_selinux_child):
384         Fix some leaks
385
386         * bus/bus.c (process_config_every_time):
387         Fixed a leak
388
389         * bus/desktop-file.c (parse_key_value):
390         Fixed leak
391
392         * bus/selinux.c (bus_selinux_id_table_insert):
393         Fixed leak
394
395 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
396
397         * dbus/dbus-object-tree.c (_dbus_object_subtree_new):
398         remove dead code
399
400 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
401
402         * tools/run-with-tmp-session-bus.sh: use #!/bin/sh instead of
403         #!/bin/bash
404
405 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
406
407         * Doxyfile.in: fix the INPUT line so we can generate docs 
408         when sourcedir != builddir (patch from Cygwin Ports maintainer
409         <yselkowitz at users dot sourceforge dot net>
410
411 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
412
413         * dbus/dbus-sysdeps.h:
414         * dbus/dbus-sysdeps.c: 
415         * dbus/dbus-string.c: 
416         s/_dbus_printf_length/_dbus_printf_string_upper_bound to comform with
417         GLib's function which does the same thing
418
419         * configure.in:
420         * bus/Makefile.am:
421         * bus/dir-watch-default.c:
422         * bus/dir-watch-dnotify.c:
423         * bus/dir-watch-kqueue.c:
424         Add kqueue directory watching for freebsd and split the directory
425         watching code into seperate files per method/arch
426         (patches from Timothy Redaelli <drizzt at gufi dotorg>)
427
428 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
429
430         * configure.in:
431         * tools/Makefile.am:
432         * tools/dbus-launch.c:
433         * bus/Makefile.am:
434         allow --with-dbus-daemondir switch to be used to make the
435         daemon install to a seperate bindir like /usr/libexec
436         (patch from Brian Cameron <brian dot cameron at sun dot com)
437
438 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
439
440         * bus/Makefile.am (install-data-hook): removed the slash after 
441         $(DESTDIR) so we don't get the double slash which does not work
442         in windows (patch from Andras Porjesz 
443         <andras dot porjesz at siemens dot com>)
444
445 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
446
447         * dbus/dbus-sysdeps.h:
448         * dbus/dbus-sysdeps.c: 
449           add _dbus_printf_length (patch from Peter Kümmel 
450           <syntheticpp at gmx dot net>)
451
452 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
453
454         * dbus/dbus-internals.c: unistd.h is not used 
455         (_dbus_verbose_real): only enable verbose printing 
456         if DBUS_VERBOSE environment var is set to '1'
457         (patch from Peter Kümmel <syntheticpp at gmx dot net>)
458
459 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
460
461         * configure.in: add a GCC flag check for -Wdeclaration-after-statement
462         so we still compile on older gcc (patch from Frederic Peters 
463         <fpeters at 0d dot be>
464
465 2006-08-04  Havoc Pennington  <hp@redhat.com>
466
467         * configure.in: add -Wdeclaration-after-statement
468
469         * dbus/dbus-connection.c: change all the pending call stuff to
470         reflect the fact that pending call operations use the connection
471         lock
472
473         * dbus/dbus-pending-call.c: add locking here
474
475         * dbus/dbus-errors.c (struct DBusRealError): don't make the name
476         field const consistent with how message field is done
477
478 2006-08-03  John (J5) Palmieri  <johnp@redhat.com>
479
480         * s/D-BUS/D-Bus/g
481
482 2006-08-03  John (J5) Palmieri  <johnp@redhat.com>
483
484         * dbus/dbus-object-tree.c: Patch by Benjamin Otte 
485         <in7y118 at public.uni-hamburg dot de> - fix invalid
486         read/write reported by valgrind
487
488 2006-07-24  John (J5) Palmieri  <johnp@redhat.com>
489
490         * Released 0.91
491
492 2006-07-22  John (J5) Palmieri  <johnp@redhat.com>
493
494         * dbus/dbus-connection.c:
495         (_dbus_connection_attach_pending_call_unlocked):
496         (connection_timeout_and_complete_all_pending_calls_unlocked):
497         Make sure we set timeout_added on pending calls to FALSE when
498         we remove the timeout from the connection
499
500 2006-07-21  John (J5) Palmieri  <johnp@redhat.com>
501
502         * Removed some extra bindings stuff lingering around (thanks timo)
503         * dbus-pendingcall.c (_dbus_pending_call_new): 
504         s/dbus_connection_ref/_dbus_connection_ref_unlocked fixes assertion
505         when we tried to take a lock on an already locked connection
506
507 2006-07-17  John (J5) Palmieri  <johnp@redhat.com>
508
509         * Released 0.90
510
511 2006-07-17  Havoc Pennington  <hp@redhat.com>
512
513         * dbus/dbus-marshal-basic.c (_dbus_type_to_string): support 64-bit
514         ints, reported by Owen Taylor
515
516 2006-07-17  John (J5) Palmieri  <johnp@redhat.com>
517
518         * doc/TODO:
519         * dbus/dbus-bus.c:
520         * dbus-errors.c:
521         * dbus/dbus-marshal-validate.c:
522           Removed TODO items which were fixed or are no longer relevent
523
524 2006-07-17  John (J5) Palmieri  <johnp@redhat.com>
525
526         * dbus-qt4-1.pc.in, dbus-sharp.pc.in:
527         Remove stray files from the stripped bindings
528
529 2006-07-16  Havoc Pennington  <hp@redhat.com>
530
531         * dbus/dbus-pending-call.c (_dbus_pending_call_set_timeout_error):
532         Improve the error message on reply timeout
533
534 2006-07-14  John (J5) Palmieri  <johnp@redhat.com>
535
536         * Remove all bindings
537
538 2006-07-13  John (J5) Palmieri  <johnp@redhat.com>
539
540         * dbus-connection.c (dbus_connection_send_with_reply): return TRUE
541         and set pending_reply out arg to NULL is connection is disconnected
542         (connection_timeout_and_complete_all_pending_calls_unlocked): New
543         static method for cleaning up pending calls on disconnect
544         (_dbus_connection_get_dispatch_status_unlocked): If we have pending 
545         calls queued timeouts on disconnect 
546
547          * dbus/dbus-pending-call.c (_dbus_pending_call_set_connection):
548         Remove 
549
550 2006-07-13  Carlos Garcia Campos  <carlosgc@gnome.org>
551
552         * bus/activation.[ch] (bus_activation_list_services): new function to 
553         get the list of services that can be activated
554
555         * bus/dispatch.c: test coverage for the new bus method
556         ListActivatableNames
557
558         * bus/driver.c: new bus method ListActivatableNames to get the list of
559         services that can be activated
560
561         * doc/dbus-specification.xml: ListActivatableNames method documentation
562
563 2006-07-12  John (J5) Palmieri  <johnp@redhat.com>
564         * dbus/Makefile.am: add dbus-pending-call-internal.h to the list of
565         source files
566
567 2006-07-12  John (J5) Palmieri  <johnp@redhat.com>
568         * dbus/dbus-message-factory.c:
569         Fix index into an array (patch by Peter Kümmel <syntheticpp at gmx.net>)
570
571 2006-07-12  John (J5) Palmieri  <johnp@redhat.com>
572         * dbus/dbus-connection-internal.h:
573         * dbus/dbus-connection.c:
574         * file dbus/dbus-pending-call.c:
575         * dbus/dbus-pending-call.h:
576         Make DBusPendingCall an opaque type even to D-Bus internals
577
578 2006-07-07  John (J5) Palmieri  <johnp@redhat.com>
579
580         * dbus/dbus-connection.h: remove connection_disconnect and replace with
581         connection_close
582
583         * dbus/dbus-connection.c: include dbus-bus.h
584         (_dbus_connection_read_write_dispatch): make static
585
586 2006-07-07  John (J5) Palmieri  <johnp@redhat.com>
587
588         * dbus/dbus-connection.c (dbus_connection_close): removed deprecated
589         function
590         (dbus_connection_dispatch): On disconnect unref any shared connections
591
592         * dbus/dbus-bus.c (_dbus_bus_check_connection_and_unref): new function
593         for cleaning up shared connections on disconnect
594         (internal_bus_get): get a hard refrence to shared connections when
595         they are created
596         
597         * doc/TODO: Remove items which are no longer relevent or have been fixed
598         Split 1.0 todo items with a 0.90 freeze todo list
599  
600 2006-06-14  Ross Burton  <ross@openedhand.com>
601
602         * glib/dbus-gobject.c:
603         Free a leaking GArray (surely not!) in dbus_g_method_return.
604
605 2006-06-14  Ross Burton  <ross@openedhand.com>
606
607         * tools/Makefile.am:
608         * tools/dbus-monitor.c:
609         Don't use the GLib bindings in dbus-monitor (patch from Ralf
610         Habacker).
611         
612 2006-06-14  Ross Burton  <ross@openedhand.com>
613
614         * tools/dbus-print-message.c:
615         Also print the object path when outputting signals or method calls.
616
617 2006-06-13  Thiago Macieira <thiago.macieira@trolltech.com>
618
619         * qt/src/Makefile.am: install the qdbus.h header.
620         This allows people to actually use the installed code.
621
622 2006-06-12  Ross Burton  <ross@openedhand.com>
623
624         * glib/dbus-gproxy.c:
625         Don't leak a GArray when firing signals (thank Rob Taylor for review).
626
627 2006-06-12  Thiago Macieira <thiago.macieira@trolltech.com>
628
629         * Released 0.62
630
631 2006-06-12  Thiago Macieira <thiago.macieira@trolltech.com>
632
633         * dbus/dbus-arch-deps.h.in: Remove spurious semi-colons that
634         break pedantic builds. Closes bug 6043 (patch approved by
635         Havoc back in February).
636
637 2006-06-12  Thiago Macieira <thiago.macieira@trolltech.com>
638
639         * qt/src/qdbusintegrator.cpp: Fix bug in parsing async methods
640         that took a QDBusMessage parameter.
641         * qt/src/qdbusbus.h: Add a default flag for RequestName.
642         * qt/tools/dbus.cpp: Don't use automatic call because we might
643         be calling an async method: request a reply.
644
645 2006-06-11  Thiago Macieira <thiago.macieira@trolltech.com>
646
647         * test/qt/*: Update the testcases, including testing the new
648         functionality of sending null QByteArray and QString over the
649         bus. Add new headertest test and restore the old
650         qdbusxmlparser test.
651
652 2006-06-11  Thiago Macieira <thiago.macieira@trolltech.com>
653
654         * qt/tools/dbuscpp2xml.cpp: Compile on Windows.
655         * qt/tools/dbusidl2cpp.cpp: Add missing newline.
656
657         * qt/examples/Makefile.am:
658         * qt/examples/chat.h: Use UI-generated files with the ui_*.h
659         form.
660
661         * qt/src/qdbusmarshall.cpp: Allow sending of QString() and
662         QByteArray() (nulls) over the bus.
663         * qt/src/qdbusabstractinterface.cpp: Use the correct variable,
664         the one that has the signature suffix stripped.
665         * qt/src/qdbusreply.h: Make some methods const.
666
667 2006-06-09  Thiago Macieira <thiago.macieira@trolltech.com>
668
669         Patch from Timo Hoenig <thoenig@suse.de>.
670
671         * qt/dbus/Makefile.am: New file.  Fix "make dist", add all headers
672         required during build to EXTRA_DIST.
673         * qt/src/Makefile.am: Fix "make dist", add 'qdbus.h' to EXTRA_DIST.
674         * qt/Makefile.am: Fix "make dist", add 'dbus' to DIST_SUBDIRS.
675         * configure.in: Fix "make dist", take care that the Makefile for
676         qt/dbus is being generated.
677
678 2006-06-07  John (J5) Palmieri  <johnp@redhat.com>
679
680         * bus/bus.c: Fix eavesdropping on method calls
681
682 2006-06-07  John (J5) Palmieri  <johnp@redhat.com>
683
684         * configure.in:
685         * dbus/dbus-userdb-util.c:
686         Add Solaris console owner patch from Artem Kachitchkine
687
688 2006-06-07  Thiago Macieira <thiago.macieira@trolltech.com>
689
690         * qt/Makfile.am:
691         * qt/src/Makefile.am: Fix the EXTRA_DIST after the
692         reorganisation. Thanks to Timo Hoenig for pointing this out.
693
694 2006-06-06  Robert McQueen  <robot101@debian.org>
695
696         * glib/dbus-gtype-specialized.c: Fix obvious leak of GArray in every
697           call to dbus_g_type_get_struct.
698
699 2006-06-06  Robert McQueen  <robot101@debian.org>
700
701         * glib/dbus-gvalue-utils.c: Fix the failing test where static string
702           pointers were put into a GPtrArray-based specialised collection, and
703           then freed along with the array. GValues which you add into
704           collections or maps which have the NOCOPY flag set are assumed to not
705           belong to the caller, so rather than the existing pointer-stealing
706           semantics, they are copied instead. Given that the main consumers of
707           this abstraction are the bindings themselves, I don't think this is
708           too bad, but others should watch their choice of take vs set_static.
709
710 2006-06-06  Robert McQueen  <robot101@debian.org>
711
712         * glib/dbus-gvalue-utils.c: Spotted a warning about the return value
713           of g_slist_prepend not being used. Fixed copying of slist-based
714           specialised collections, then wrote a test case and found that it was
715           all broken. Went on to fix iterating and appending too. Good thing
716           nobody uses this code yet.
717
718 2006-06-06  Robert McQueen  <robot101@debian.org>
719
720         * glib/dbus-gvalue-utils.c: Remove duplicated code by having all of
721           the iterators use gvalue_take_ptrarray_value (the GValues themselves
722           are discarded without unsetting, so it makes no difference whether
723           we take or set_static). Remove cases for G_TYPE_POINTER because
724           there really is nothing useful we can do with them in our
725           specialised types - we *need* boxed copy/free functions at the very
726           least.
727
728 2006-06-05  Thiago Macieira <thiago.macieira@trolltech.com>
729
730         * qt/dbus: Add directory. I had forgotten to add this
731         yesterday after the move...
732
733         * qt/examples/Makefile.am:
734         * qt/examples/dbus.cpp: Moved to qt/tools/dbus.cpp.
735
736         * qt/tools/Makefile.am:
737         * qt/tools/dbus.cpp: Moved from qt/examples/dbus.cpp.
738         Added feature to get and set properties.
739         Added validation of service, object path and interface names.
740
741         * qt/tools/dbusidl2cpp.cpp: Two new features:
742         1) Allow specifying both the header and the source file names,
743         by separating them with a colon.
744         2) Don't write an interface output if the -p switch wasn't
745         given, but the -a was.
746
747         * qt/src/*: Fix usage of Iterators and ConstIterators.
748         Fix shadowing of variables by other variables (-Wshadow).
749         Fix keyword-cleanliness in headers.
750         Fix ASCII-cast (QLatin1String, QLatin1Char).
751         Fix validation of member names.
752         Add extra checking of introspection data during XML parsing.
753         Various bug fixes.
754
755 2006-06-04  Thiago Macieira <thiago.macieira@trolltech.com>
756
757         * dbus/Makefile.am:
758         * dbus/qdbus.h: Remove unnecessary file. This is mirrored into
759         qt/dbus/qdbus.h now.
760
761 2006-06-04  Thiago Macieira <thiago.macieira@trolltech.com>
762
763         * configure.in: Make --disable-qt actually do
764           something. Patch inspired by Zack Rusin.
765
766 2006-06-04  Thiago Macieira <thiago.macieira@trolltech.com>
767
768         * qt/: Update to Subversion r548032.
769         This includes a big reorganisation of the files inside the
770         subdir.
771
772 2006-05-30  Sjoerd Simons  <sjoerd@luon.net>
773
774         * dbus/dbus-sysdeps.c: Make tcp socket connection error somewhat more
775         clear:  
776         "Failed to connect to socket <host>:<port> <error>" instead of
777         "Failed to connect to socket <host>: <error>:<port>"
778
779         * dbus/dbus-transport-unix.c: Fix crash when no host option is given
780         for a tcp transport. 
781
782 2006-05-29  Thiago Macieira  <thiago.macieira@trolltech.com>
783
784         * qt/*: Update the QtDBus bindings up to revision 546310 in
785         Subversion.
786         This adds the dbuscpp2xml tool, that parses a C++ header and
787         outputs a D-BUS Introspection XML.
788
789 2006-05-21  Havoc Pennington  <hp@redhat.com>
790
791         * glib/dbus-gproxy.c: Put in a pile of assertions that the proxy name
792         is not NULL when it shouldn't be. Also a couple of possible fixes
793         for #4637 though I don't understand why the bug happens, to be
794         honest... also the object constructor has an assert name != NULL
795         and the name is only currently NULL for peer-to-peer proxies that 
796         I don't think anyone uses? So it should be asserting.
797         Anyway, for now at least see if we get an earlier assertion failure.
798
799         * glib/dbus-gvalue-utils.c: Put in a couple of assertions for
800         apparently broken code to be sure the tests fail and someone 
801         will fix them...
802
803 2006-05-07  Thiago Macieira  <thiago.macieira@trolltech.com>
804
805         * qt/qdbusmarshall.cpp: Fix a problem of demarshalling lists
806         and arrays when they had a single element: has_next returns
807         false, even before you read the element. So, instead, check
808         the array length.
809
810 2006-05-06  Thiago Macieira  <thiago.macieira@trolltech.com>
811
812         * qt/qdbusmessage.cpp:
813         * qt/qdbustypehelper_p.h:
814         * qt/qdbusintegrator.cpp: gcc 3.4 doesn't like Q_FOREACH when
815         the list is a const-reference
816
817 2006-05-03  John (J5) Palmieri  <johnp@redhat.com>
818
819         * Adding old doc patch that never got applied
820         
821         * dbus/bus.c (dbus_bus_add_match): Add documentation
822
823         * doc/dbus-specification.xml: Add documentation for the match rules
824           and the AddMatch and RemoveMatch methods
825
826 2006-05-02  Thiago Macieira  <thiago.macieira@trolltech.com>
827
828         * qt/dbusidl2cpp.cpp: There's no callAsync. Use the correct
829         call (r535506)
830
831         * qt/dbusidl2cpp.cpp:
832         * qt/qdbusabstractadaptor.cpp:
833         * qt/qdbusabstractadaptor.h: Make QDBusAdaptorConnector be a
834         sibling of the QDBusAbstractAdaptor objects instead of the
835         parent. (r535848)
836
837         * qt/dbusidl2cpp.cpp:
838         * qt/qdbusabstractinterface.cpp:
839         * qt/qdbusabstractinterface.h:
840         * qt/qdbusabstractinterface_p.h:
841         * qt/qdbusinterface.cpp: Make properties in interfaces
842         actually work. The code that was generated would not compile,
843         due to moc calls to functions that did not exist. They now
844         shall. (r536571)
845
846 2006-04-30  Thiago Macieira  <thiago.macieira@trolltech.com>
847
848         * Makefile.am:
849         * configure.in:
850         * dbus-qt4-1.pc.in: Add a pkg-config file for libdbus-qt4-1.
851         Thanks to Brad Hards for providing the patch
852
853 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
854
855         * qt/dbusidl2cpp.cpp: There's no callAsync. Use the correct
856         call. (r535506)
857
858 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
859
860         * qt/examples/dbus.cpp: Enhance error messages and use
861         QDBusInterfacePtr.
862
863 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
864
865         * qt/qdbusinterface.h: Rename QDBusRef to QDBusInterfacePtr
866         and disable the copy operators. (r533772, r534746)
867
868         * qt/qdbuserror.h: Remove the automatic cast to bool. (r533929)
869
870         * qt/qdbusabstractinterface.cpp:
871         * qt/qdbusabstractinterface.h: Change the default call mode to
872         not use the event loop. Add convenience call() methods that
873         take a CallMode parameter. (r534042)
874
875         * qt/qdbusconnection.h: Change the default call mode to not
876         use the event loop. (r534042)
877
878         * qt/qdbusinterface.cpp:
879         * qt/qdbusinterface.h: Add a method to tell us if the
880         interface is valid (since we don't return a null pointer
881         anymore) (r534099)
882
883         * qt/qdbusinterface_p.h: Don't crash if metaObject is 0
884         (r534101)
885
886         * qt/qdbusinternalfilters.cpp: Decouple the introspection
887         function in two so taht we get the chance to introspect
888         without having a QDBusMessage (r534102)
889
890         * qt/qdbusbus.h:
891         * qt/qdbusconnection.cpp:
892         * qt/qdbusconnection_p.h:
893         * qt/qdbusintegrator.cpp: Keep a list of our own names to
894         avoid a round-trip to the server when attempting to introspect
895         one of our own objects. Also make sure the filter functions
896         match the empty interface as well. (r534108)
897         Don't keep the connection names. Instead, trust the unique
898         connection name (r534111)
899         Remove event loop usage (r534112)
900
901 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
902
903         * qt/qdbusintegrator.cpp: Fix assertion failure spotted by
904         Brad Hards.
905
906 2006-04-28  Robert McQueen  <robot101@debian.org>
907
908         * glib/dbus-gproxy.c: Fix properties so that they can be given in
909         any order, making it easier for people who inherit from this
910         object.
911
912 2006-04-28  Robert McQueen  <robot101@debian.org>
913
914         * glib/dbus-gvalue-utils.c: Patch from Jakub Stachowski to fix leaking
915         of memory from within pointer arrays and lists. Fixes bug #6300.
916
917 2006-04-28  Robert McQueen  <robot101@debian.org>
918
919         * glib/dbus-gvalue.c: Patch from Jakub Stachowski to fix a leak in
920         generating struct signatures. Fixes bug #6083.
921
922 2006-04-28  Robert McQueen  <robot101@debian.org>
923
924         * qt/Makefile.am: Tweak CLEANFILES from qdbusconnection.moc
925         to qdbusconnection_p.moc.
926
927 2006-04-24 John (J5) Palmieri <johnp@redhat.com>
928
929         * README, INSTALL: Doc fixes
930         Patch from Brad Hards <bradh at frogmouth.net>
931
932 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
933
934         * qt/examples/dbus.cpp: Use the new merged-interface mode for
935         the dynamic meta object. No need to guess which interface to
936         call.
937
938 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
939
940         * qt/qdbusconnection_p.h:
941         * qt/qdbusmetaobject.cpp:
942         * qt/qdbusmetaobject_p.h:
943         * qt/qdbusintegrator.cpp: Use the new merged-interface mode
944         for the dynamic meta object. No need to guess which
945         interface to call.
946         * qt/qdbusabstractinterface_p.h:
947         * qt/qdbusconnection.cpp:
948         * qt/qdbusintegrator.cpp:
949         * qt/qdbusinterface.cpp:
950         * qt/qdbusinterface.h: Make findInterface always return a non-null pointer.
951         Add a QDBusRef that looks and behaves like DCOPRef.
952
953 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
954
955         * dbus/dbus-connection.c: Interfaces are optional in method
956         calls, so don't give up if the interface parameter is NULL.
957         Patch reviewed by Havoc Pennington.
958
959 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
960
961         * qt/qdbusreply.h: Add default constructor and operator=
962           (r532625)
963         * qt/qdbustypehelper_p.h: Use a clean namespace: no foreach()
964           in public headers (r532952)
965         * qt/qdbusabstractinterface.cpp:
966         * qt/qdbusabstractinterface_p.h: Add the AutoDetect mode and
967           make it the default (r532951)
968
969 2006-04-19  John (J5) Palmieri  <johnp@redhat.com>
970
971         * dbus/dbus-connection.c: Fix asserts
972         Patch from Tim Moloney <t.moloney at verizon.net>
973
974 2006-04-19  John (J5) Palmieri  <johnp@redhat.com>
975
976         * mono/Connection.cs, mono/Message.cs: Check Target type
977         Patch from Aaron Bockover (abockover at novell.com)
978
979 2006-04-13  Thiago Macieira  <thiago.macieira@trolltech.com>
980
981         * INSTALL: fine-tune the requirements for the Qt4 binding.
982
983 2006-04-16  Daniel P. Berrange  <dan@berrange.com>
984
985         * tools/dbus-print-message.c: Added support for printing of all 
986           remaining data types. Fixed logic for indentation of compound
987           data types.
988         
989 2006-04-15  Daniel P. Berrange  <dan@berrange.com>
990
991         * INSTALL: fill out content of file providing DBus specific
992           build installations, followed by generic Auto* INSTALL file
993           content
994         
995 2006-04-13  Thiago Macieira  <thiago.macieira@trolltech.com>
996
997         * qt/qdbusintegrator.cpp: Work around g++ 3.3 bug.
998           Patch by Stefan Eilers. (r529537)
999
1000 2006-04-13  Thiago Macieira  <thiago.macieira@trolltech.com>
1001
1002         * qt/qdbusinternalfilters.cpp: Don't show the parent's
1003           contents (r528208)
1004
1005 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
1006
1007         * qt/Makefile.am: fix the dependency for
1008           qdbusconnection_p.moc. It's included in qdbusintegrator.cpp,
1009           not in qdbusconnection.cpp.
1010           Thanks to Jakub Stachowski <stachowski@hypair.net> for
1011           spotting this.
1012
1013 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
1014
1015         * qt/examples/listnames.cpp:
1016         * qt/examples/Makefile.am: Three ways to list the names on the
1017           bus.
1018
1019 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
1020
1021         * test/qt/tst_hal.cpp: Remove the waiting, since it's not
1022           needed anymore. Requires Qt 4.1.3 to work properly. (r528148)
1023
1024 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
1025
1026         Merge from Subversion:
1027         * qt/qt-dbus.qdocconf: Update Trolltech's webpage link to
1028           something that exists (r526315)
1029         * qt/qdbusinternalfilters.cpp: Correctly detect non-scriptable
1030           slots/signals (r526316)
1031         * qt/qdbusinternalfilters.cpp: Fix the setProperty call and
1032           also return an unknown-method error if the parameters don't
1033           match for org.freedesktop.DBus.Properties. (r526842)
1034         * qt/examples/dbus.cpp: Allow passing of QVariants (r526843)
1035         * qt/qdbusintegrator.cpp: Restore the proper order of
1036           delivery: don't make method returns be delivered on priority
1037           (r528150)
1038
1039 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
1040
1041         * configure.in qt/Makefile.am: add qt/examples
1042         * qt/examples: Add QtDBus example programs:
1043           - hello: Hello, World
1044           - ping: Simple method-calling program
1045           - pong: Simple object-exporting program (not using adaptors)
1046           - complexping: Interactive method-calling program 
1047                 (also gets and sets properties).
1048           - complexpong: Sample program exporting methods, signals and
1049                 properties, using adaptors.
1050           - dbus: Simple implementation of a generic method-calling
1051                 program, similar to 'dbus-send', but with semantics
1052                 similar to 'dcop'.
1053           - chat: Simplistic chat program, implemented using signals
1054                 and the system bus. Looks like IRC.
1055
1056 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
1057
1058         * configure.in: Detect QtGui (necessary for one of the
1059           example programs). Note: this increases the minimum required
1060           version of Qt to 4.1.3.
1061
1062 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
1063
1064         * test/qt/*: Sync with KDE Subversion revision 523647.
1065         Update the testcases to the new API. Remove testcases for
1066         classes that are no longer public or have been removed.
1067
1068 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
1069
1070         * qt/*: 
1071         * dbus/qdbus.h: Sync with KDE Subversion revision
1072         523647. Hopefully, this will be the last of the
1073         source-incompatible changes. Documentation has been improved;
1074         support for QList<basic-types> has been added; QDBusObject is
1075         gone; QDBus(Abstract)Interface is now a QObject with
1076         auto-generated meta-object; QDBusIntrospection is marked
1077         private, since QMetaObject can be used now; lots of bugfixes.
1078
1079 2006-03-16  John (J5) Palmieri  <johnp@redhat.com>
1080
1081         Patch from Milosz Derezynski <internalerror at gmail.com>
1082         
1083         * configure.in:
1084         Output the service directory in the configure summary
1085
1086         * dbus-1.pc.in:
1087         Add session_bus_services_dir
1088
1089 2006-03-10  Ross Burton  <ross@openedhand.com>
1090
1091         * tools/dbus-print-message.c:
1092         Add support for object paths and signatures.
1093
1094 2006-03-06  Sjoerd Simons <sjoerd@luon.net>
1095
1096         * bus/bus.c: (bus_context_reload_config): Flush the user database cache on
1097         config reload.
1098         * bus/dbus-daemon.1.in: Also note that SIGHUP flushes the user/group
1099         information caches
1100         * dbus/dbus-hash.c: (_dbus_hash_table_remove_all): 
1101         * dbus/dbus-hash.h: Add function to remove all entries from a hash table
1102         * dbus/dbus-userdb.c: (_dbus_user_database_flush):
1103         * dbus/dbus-userdb.h: Add function to flush all user/group information
1104         caches.
1105
1106 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
1107
1108         * qt/dbusidl2cpp.cpp:
1109         * qt/Makefile.am: add the dbusidl2cpp tool, the replacement
1110         for dcopidl2cpp, found in the KDE installations (or the more
1111         modern kalyptus): generate Qt4 C++ code for the input XML
1112         introspection. Currently no IDL parsing.
1113
1114 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
1115
1116         * test/qt/*: Update the self-tests.
1117
1118 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
1119
1120         * qt/*: 
1121         * dbus/qdbus.h: Sync with KDE Subversion revision 516237. This
1122         represents the first feature-complete version of the Qt4
1123         bindings since I took ove maintainership.
1124
1125 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
1126
1127         * qt/Doxyfile: Adding a Doxyfile for the Qt4 bindings
1128         dir. This is C++, so we can't use the DBus ones.
1129
1130 2006-03-02  John (J5) Palmieri  <johnp@redhat.com>
1131
1132         * python/dbus_bindings.pyx: Remove refrence to sys/cdefs.h
1133         (Patch from Artem Kachitchkine <Artem.Kachitchkin at Sun.COM>)
1134
1135 2006-03-02  John (J5) Palmieri  <johnp@redhat.com>
1136
1137         * dbus/dbus-connection.c: 
1138         (_dbus_connection_block_pending_call):
1139         Check to see if our data has already been read off the connection
1140         by another blocking pending call before we block in poll.
1141         (check_for_reply_and_update_dispatch_unlocked):
1142         Code taken from _dbus_connection_block_pending_call - checks for
1143         an already read reply and updates the dispatch if there is one.
1144
1145         * test/name-test/test-pending-call-dispatch.c:
1146         New test for making sure we don't get stuck polling a 
1147         dbus connection which has no data on the socket when
1148         blocking out of order on two or more pending calls.
1149
1150 2006-02-28  Thiago Macieira <thiago.macieira@trolltech.com>
1151
1152         * qt/Makefile.am: Patch by Sjoerd Simons. More .moc issues:
1153         make/automake don't detect that we're talking about the same
1154         .lo file if I specify the full path to the source files.
1155
1156 2006-02-26  Havoc Pennington  <hp@redhat.com>
1157
1158         * bus/dbus-daemon.1.in: improve the language in a couple spots I noticed
1159
1160         * dbus/dbus-bus.c (internal_bus_get): in the error message if the
1161         session bus variable is unset, suggest "man dbus-launch" and "man
1162         dbus-daemon" to figure out how to fix the problem
1163
1164 2006-02-25  Havoc Pennington  <hp@redhat.com>
1165
1166         * glib/dbus-glib-tool.c (usage): fix up the usage message, someone
1167         should make this thing use the new glib options parser
1168
1169 2006-02-25  Thiago Macieira <thiago.macieira@trolltech.com>
1170
1171         * qt/Makefile.am: Patch by Sjoerd Simons. Fix the path to the
1172         .lo files taking moc sources.
1173
1174 2006-02-25  Havoc Pennington  <hp@redhat.com>
1175
1176         * dbus/dbus.h, dbus/Makefile.am: add dbus-signature.h to dbus.h
1177         and install it as a public header
1178
1179 2006-02-24  John (J5) Palmieri  <johnp@redhat.com>
1180
1181         * Released 0.61
1182
1183 2006-02-24  John (J5) Palmieri  <johnp@redhat.com>
1184         
1185         * proxies.py: Fix the callchain
1186
1187 2006-02-24  John (J5) Palmieri <johnp@redhat.com>
1188         
1189         * patch from Sjoerd Simons <sjoerd at debian.org>:      
1190
1191         * dbus/dbus-sysdeps-util.c (_dbus_group_info_free): Moved to 
1192         dbus/dbus-sysdeps.c
1193
1194         * dbus/dbus-userdb.c (_dbus_group_info_free_allocated): Don't
1195         call _dbus_group_info_free_allocated which causes infinite loop,
1196         correctly call _dbus_group_info_free
1197
1198 2006-02-20  Thiago Macieira <thiago.macieira@trolltech.com>
1199
1200         * qt/qdbusinterface_p.h:
1201         * qt/qdbusinterface.cpp: Use the standard
1202         org.freedesktop.DBus.Method.NoReply annotation for the "async"
1203         calls instead of creating one for us.
1204
1205         * qt/qdbusconnection_p.h:
1206         * qt/qdbusintegrator.cpp: Remove debugging code.
1207
1208         * qt/qdbusintegrator.cpp:
1209         * qt/qdbusmessage.cpp:
1210         * qt/qdbusmessage_p.h:
1211         * qt/qdbusmessage.h: Change the behaviour of automatic
1212         reply-sending: now a reply is always sent, unless the caller
1213         didn't request one or if the user slot has already sent one.
1214
1215 2006-02-16  Robert McQueen  <robot101@debian.org>
1216
1217         * configure.in: Patch from Debian packages by Sjoerd Simons
1218         <sjoerd@debian.org> to add --with-qt-moc and --with-qt3-moc
1219         arguments so it's possible to build both bindings in the
1220         same tree.
1221
1222         * qt/Makefile.am: Fix truncated value so that make dist works.
1223
1224 2006-02-16  Robert McQueen  <robot101@debian.org>
1225
1226         * acinclude.m4, configure.in: Patch from Brad Hards
1227         <bradh@frogmouth.net> to avoid warnings from autoconf 1.9 by
1228         improving quoting, re-ordering a few checks, and a few other
1229         aesthetic tidy-ups.
1230
1231 2006-02-16  Robert McQueen  <robot101@debian.org>
1232
1233         * dbus/dbus-message.c (dbus_message_iter_get_fixed_array):
1234         Patch from Rob Taylor <rob.taylor@collabora.co.uk> to correct a bogus
1235         assertion that the next element to read from the iter is fixed in
1236         size. This is not the case when you are at the end of the iter,
1237         because the next element type is INVALID.
1238
1239         * dbus/dbus-string.c (_dbus_string_init_const_len): Correct a
1240         a bogus assert which means that you may not initialise a 0-length
1241         string unless you provide a non-NULL pointer. This prevented
1242         you from marshalling messages containing zero-length arrays in
1243         some cases.
1244
1245         * glib/dbus-gvalue.c (demarshal_collection_array): Another patch
1246         from Rob to correct bogus asserts when trying to demarshal an
1247         array and get_fixed_array got you 0 elements. Append nothing to
1248         the GArray in this case.
1249
1250         * test/glib/test-dbus-glib.c: Add a test case for round-tripping
1251         an empty array via the glib bindings. Without all of the above
1252         patches, this new test fails.
1253
1254 2006-02-16  Robert McQueen  <robot101@debian.org>
1255
1256         * glib/dbus-gmain.c: Make the previous commit compile.
1257
1258         * python/_dbus.py, python/matchrules.py: Patch from Ole Andre
1259         Ravnaas <ole.andre.ravnaas@collabora.co.uk> to allow you to
1260         specify sender_keyword="foo", path_keyword="bar" when adding
1261         a signal listener, so that you can bind to signals generically
1262         but still do something useful in your callback.
1263
1264         * python/dbus_bindings.pyx: Demarshal the byte type as unsigned
1265         chars so that they're not cast to chars and made negative. Thanks
1266         to Jakub Stachowski for reporting this and testing the fix.
1267
1268 2006-02-15  John (J5) Palmieri  <johnp@redhat.com>
1269
1270         * dbus/dbus-glib.h:
1271         * glib/dbus-gmain.h:
1272         (dbus_g_connection_open): new method for openning
1273         a connection to an arbitrary address in the glib bindings
1274
1275         * ChangeLog: checkin last entry which doesn't seem to be commited
1276
1277 2006-02-13  John (J5) Palmieri  <johnp@redhat.com>
1278
1279         * tools/dbus-launch.c: Fixed sh syntax output
1280
1281 2006-02-13  Robert McQueen  <robot101@debian.org>
1282
1283         * glib/dbus-binding-tool-glib.c, glib/dbus-gmain.c,
1284         glib/dbus-gsignature.c, glib/dbus-gtype-specialized.c,
1285         glib/dbus-gtype-specialized.h, glib/dbus-gvalue-utils.c,
1286         glib/dbus-gvalue-utils.h, glib/dbus-gvalue.c:
1287         Patch from Rob Taylor <rob.taylor@collabora.co.uk> to add a big
1288         missing piece of the glib bindings jigsaw puzzle. This modifies
1289         the existing specialised types to have N type parameters (rather
1290         than the current 1 or 2 for arrays and dictionaries respectively).
1291         You can then use this to get a glib type to represent any arbitrary
1292         D-Bus struct type using dbus_g_type_get_struct. The only
1293         implementation of these types is with GValueArrays as before,
1294         but it's now possible to store these in arrays, emit them in
1295         signals, etc.
1296
1297 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
1298
1299         * dbus/dbus-signature.c (dbus_signature_iter_recurse): Correctly
1300         deal with nested arrays (Bug #5823) Patch by Thiago Macieira 
1301         <thiago.macieira at trolltech.com>
1302
1303 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
1304
1305         * mono/doc/Makefile.am: Fix parallel make problem with mono-doc
1306         (Bug #4213) Patch from Doug Goldstein <cardoe at gentoo.org>
1307
1308 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
1309
1310         * bus/connection.c (bus_connections_expect_reply): Make
1311         pending reply limit not common to all connections (Bug #5416)
1312         Patch from Kimmo Hämäläinen <kimmo.hamalainen at nokia.com>
1313
1314 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
1315
1316         * tools/dbus-launch.c: Fixed csh syntax output (Bug #5720)
1317
1318 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
1319
1320         * gcj/Makefile.am: point to correct jar command (Bug #4529)
1321         patch from Doug Goldstein <cardoe at gentoo.org>
1322
1323 2006-02-09  Joe Shaw  <joeshaw@novell.com>
1324
1325         * mono/Arguments.cs: Fix a magic number in the mono bindings
1326         that doesn't work on 64 bit arches.  Patch from Peter Johanson.
1327
1328 2006-01-27  Robert McQueen  <robot101@debian.org>
1329
1330         * glib/dbus-binding-tool-glib.[ch]: Patch based on Ricardo Kekki's
1331         patch to use an annotation org.freedesktop.DBus.GLib.ClientCSymbol
1332         when generating the client-side methods, instead of overloading
1333         CSymbol which broke everything horribly. My apologies.
1334
1335 2006-01-27  Robert McQueen  <robot101@debian.org>
1336
1337         * glib/dbus-gtype-specialized.[ch], glib/dbus-gvalue-utils.c: Patch
1338         by me and Rob Taylor to add a simple_free function to D-Bus map
1339         and collection types, which allows those types which can be freed
1340         with a GDestroyNotify (such as GHashTables and GArrays, but not
1341         GPtrArrays) to be stored as the values in hashtables.
1342
1343         * test/glib/test-dbus-glib.c, test/glib/test-service-glib.{c,xml}:
1344         Patch by Rob Taylor to add nested dicts to the glib tests to check
1345         the above code works, and appears not to leak when called repeatedly.
1346
1347 2006-01-27  Robert McQueen  <robot101@debian.org>
1348
1349         * glib/dbus-gvalue.c (demarshal_valuearray): Patch from Rob Taylor
1350         to free a D-Bus allocated string with dbus_free () instead of
1351         g_free ().
1352
1353 2006-01-27  Iain Holmes  <iain@openedhand.com>
1354
1355         * glib/dbus-gproxy.c (dbus_g_proxy_dispose): Protect the dispose
1356         method from being called multiple times.
1357
1358 2006-01-19  Robert McQueen  <robot101@debian.org>
1359
1360         * glib/dbus-binding-tool-glib.c: Patch from Rob Taylor
1361         <rob.taylor@collabora.co.uk> to add support for generating bindings
1362         to arrays that are represented as GPtrArrays rather than GArrays (ie
1363         size-variable things, such as strings, objects, structs, etc).
1364
1365 2006-01-05  Robert McQueen  <robot101@debian.org>
1366
1367         * dbus/dbus-glib.h, glib/dbus-gproxy.c: Patch from Ricardo Kekki
1368         <ricardo.kekki@movial.fi> to make it possible to inherit from
1369         DBusGProxy, by splitting the DBusGProxy struct into a public part and
1370         a private part, and moving the setting of the DBusGProxyManager into a
1371         connection property, allowing proper GObject construction.
1372
1373 2006-01-05  Robert McQueen  <robot101@debian.org>
1374
1375         * glib/dbus-binding-tool-glib.c: Patch from Ricardo Kekki
1376         <ricardo.kekki@movial.fi> to make dbus-binding-tool heed C symbol name
1377         annotations when generating glib client bindings.
1378
1379 2005-12-19 John (J5) Palmieri  <johnp@redhat.com>
1380
1381         * dbus/dbus-shared.h: Call it shared constants instead of shared macros
1382
1383         * dbus/dbus-protocol.h: add DOxygen markup to quiet warnings
1384
1385 2005-12-19 John (J5) Palmieri  <johnp@redhat.com>
1386
1387         * dbus/dbus-shared.h: add DOxygen markup to quiet warnings
1388
1389 2005-12-19 John (J5) Palmieri  <johnp@redhat.com> 
1390
1391         * dbus/dbus-macros.h: correct DOxygen end of section (s/}@/@})
1392
1393 2005-12-19  Ross Burton  <ross@openedhand.com>
1394
1395         * doc/dbus-tutorial.xml:
1396         Document the Glib client-side bindings, and list all possible annotations.
1397
1398 2005-12-19  John (J5) Palmieri  <johnp@redhat.com>
1399
1400         * dbus/bus.c (dbus_bus_release_name): Add documentation
1401
1402 2005-12-06  Robert McQueen  <robot101@debian.org>
1403
1404         * python/service.py: s/sucessful/successful/ so we're allocating to
1405         and reading from the same variable. Oops.
1406
1407 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
1408
1409         * Released 0.60
1410
1411 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
1412
1413         * test/qt/Makefile.am: build from srcdir
1414
1415         * qt/qtconnection.cpp (requestName): Changed PROHIBIT_REPLACE to ALLOW_REPLACE
1416         Note - this code is wrong and needs to be fixed by the Qt binding
1417         developers.  The flags should be treated as bitfields and not enums.
1418
1419         * qt/qtconnection.h: Change ProhibitReplace to AllowReplace
1420
1421 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
1422
1423         * dbus/dbus-list.c (_dbus_list_insert_after_link, _dbus_list_insert_after, 
1424           link_after): remove #ifdef DBUS_BUILD_TESTS since we use these methods 
1425           in production code
1426
1427 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
1428
1429         * dbus/dbus-connection.c (dbus_connection_read_write): Add new
1430         method for getting messages off the bus in the absence of a
1431         mainloop.  This method is much like 
1432         dbus_connection_read_write_dispatch except it does not dispatch
1433         the messages to a registered filter function.  Instead it
1434         allows a developer to process messages by directly popping
1435         them off the bus.
1436
1437 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
1438
1439         * bus/desktop-file.c (parse_key_value): Ignore locales allowing 
1440         the parser to continue instead of returning error
1441         (bus_desktop_file_load): Do not free parser data when
1442         parse_section_start or parse_key_value fails because it was 
1443         already freed by parser_free (patch from Carlos Garcia Campos  
1444         <carlosgc at gnome.org>)
1445
1446 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
1447
1448         * dbus/dbus-auth.c, dbus/dbus-connection.c, dbus/dbus-keyring.c,
1449         dbus/dbus-server-debug-pipe.c, glib/dbus-binding-tool-glib.c
1450         glib/dbus-glib-tool.c, glib/dbus-gparser.c, glib/dbus-gproxy.c
1451         test/test-segfault.c, test/test-utils.c,
1452         test/glib/test-dbus-glib.c, tools/dbus-cleanup-sockets.c
1453         tools/dbus-launch.c, tools/dbus-tree-view.c, tools/dbus-viewer.c:
1454         Various cleanup of dead code and compiler warnings (patch from
1455         Kjartan Maraas <kmaraas at gnome.org>) 
1456
1457 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
1458
1459         * glib/dbus-gmain.c (connection_setup_add_watch): plugged a leak
1460         (patch from Carlos Garnacho Parro <carlosg at gnome.org>
1461
1462 2005-11-27  Robert McQueen  <robot101@debian.org>
1463
1464         * python/dbus_bindings.pyx: Repair my previous commit which reverted
1465         part of the preceding one. Oops. Merge patch by Johan Hedberg
1466         <johan.hedberg@nokia.com> to fix marshalling of 16-bit integer values
1467         on big-endian platforms.
1468
1469         * test/python/test-client.py: Add some 16-bit integers to the test
1470         values.
1471
1472 2005-11-27  Carlos Garcia Campos  <carlosgc@gnome.org>
1473
1474         * glib/dbus-gobject.c: Append a GValue instead of a basic type in
1475         method return message for property getters
1476
1477 2005-11-27  Robert McQueen  <robot101@debian.org>
1478
1479         * python/dbus_bindings.pyx: Fix a bug where doing a strict append
1480         with type v of an instance of dbus.Variant(foo, type='x') caused
1481         it to be boxed twice before sending over the bus.
1482
1483         * python/dbus_bindings.pyx, python/service.py,
1484         test/python/test-client.py: Update the constants for the new
1485         request_name flags, and update comments/test cases now that queueing
1486         is the default action.
1487
1488 2005-11-22  John (J5) Palmieri  <johnp@redhat.com>
1489
1490         * configure.in:
1491         - Change version to 0.60 for impending release
1492         - upped the sonames because of ABI and API breakage
1493
1494 2005-11-22  John (J5) Palmieri  <johnp@redhat.com>
1495
1496         * configure.in: Add test/name-test/Makefile to the generated
1497         Makefile list
1498
1499         * dbus/dbus-shared.h (#define DBUS_NAME_FLAG_ALLOW_REPLACEMENT):
1500         New flag which replaces DBUS_NAME_FLAG_PROHIBIT_REPLACEMENT
1501         (#define DBUS_NAME_FLAG_DO_NOT_QUEUE): New flag for specifying
1502         not to queue an ower if it can't be the primary owner
1503
1504         * bus/bus.h: Add new internal BusOwner struct
1505
1506         * bus/driver.c (bus_driver_handle_hello): Send flags (0 for default)
1507         to bus_registry_ensure and don't set the prohibit_replacement flag
1508         since they are now set per BusOwner and not per name.
1509         (bus_driver_handle_list_queued_owners): bus method (ListQueuedOwners) 
1510         that returns the list of connections in a name's connection queue
1511         
1512         * bus/services.c (struct BusService): remove prohibit_replacement field
1513         (struct BusOwner): new struct for keeping track of queued connections
1514         and their associated flags for the queue
1515         (struct BusRegistry): add a BusOwner memory pool
1516         (bus_registry_new): initialize the BusOwner memory pool
1517         (bus_registry_unref): free the BusOwner memory pool
1518         (_bus_service_find_owner_link): new internal method for
1519         searching the queue for a specific connection
1520         (bus_owner_set_flags): new method for adding setting the flags on a
1521         bus owner
1522         (bus_owner_new): new method that creates a BusOwner object from the
1523         pool and sets its flags
1524         (bus_owner_ref, bus_owner_unref): ref counting for BusOwner objects
1525         (bus_registry_ensure): Add the flags parameter
1526         (bus_registry_acquire_service): Switch from using raw connections to
1527         using the BusOwner struct
1528         Add new state machine for dealing with the new set of flags
1529         (bus_registry_set_service_context_table, struct OwnershipCancelData, 
1530         cancel_ownership, free_ownership_cancel_data, 
1531         add_cancel_ownership_to_transaction, struct OwnershipRestoreData, 
1532         restore_ownership, free_ownership_restore_data, 
1533         add_restore_ownership_to_transaction): Switch to using BusOwner 
1534         instead of raw connections
1535         (bus_service_add_owner): Add flags parameter
1536         Switch to using BusOwner instead of raw connections
1537         Add state machine for dealing with the new set of flags
1538         (bus_service_swap_owner): Swaps the first and second owners in the
1539         queue.  Used to make sure proper signals are sent when a service looses 
1540         or gains primary ownership.  We never insert an owner at the top of the
1541         queue.  Instead we insert it in the second position and then swap.
1542         (bus_service_remove_owner): Remove the owner from the queue sending
1543         out the NameLost and NameOwnerChanged signals if the we were the 
1544         primary owner
1545         (bus_service_get_primary_owners_connection): New method that extracts
1546         the connection from the primary owner
1547         (bus_service_get_primary_owner): Returns the BusOwner instead of the 
1548         connection
1549         (bus_service_get_allow_replacement): Changed from the old 
1550         bus_service_get_prohibit_replacement method.  Checks the flags of the 
1551         primary owner and returns if it can be replaced or not
1552         (bus_service_set_prohibit_replacement): removed
1553         (bus_service_has_owner): returns TRUE if and owner with
1554         the specified connection exists in the queue
1555         
1556         * dbus/dbus-bus.c (dbus_bus_connection_get_unique_name): New helper
1557         method that only compiles if tests are enabled.  Allows us to get the 
1558         unique name of a connection so we can check it against the queue when
1559         doing regression tests
1560
1561         * bus/activation.c (bus_activation_send_pending_auto_activate),
1562         bus/dispatch.c (bus_dispatch),  
1563         bus/driver.c (bus_driver_handle_get_service_owner, 
1564         bus_driver_handle_get_connection_unix_user, 
1565         bus_driver_handle_get_connection_unix_process_id,
1566         bus_driver_handle_get_connection_selinux_security_context),
1567         bus/signals.c (connection_is_primary_owner): 
1568         use bus_service_get_primary_owners_connection instead of
1569         bus_service_get_primary_owner
1570
1571         * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket, 
1572         _dbus_listen_unix_socket): Calculate the length of the socket
1573         path and use that instead of using a fixed length which was
1574         causing socket names to contain many trailing Nul bytes.
1575
1576         * dbus/dbus-glib-lowlevel.h, glib/dbus-gobject.c
1577         (dbus_g_method_get_sender): New method for extracting the sender 
1578         from a DBusGMethodInvocation
1579         (dbus_g_method_return_get_reply): changed name to 
1580         dbus_g_method_get_reply
1581         (dbus_g_method_return_send_reply): changed name to
1582         dbus_g_method_send reply
1583
1584         * doc/dbus-specification.xml: New docs that describe how the new
1585         queueing system works and talks about the changes to the how
1586         we specify socket names
1587
1588         * glib/examples/example-service.c, 
1589         glib/examples/example-signal-emitter.c,
1590         glib/examples/statemachine/statemachine-server.c:
1591         Changed the RequestName flags to the new system
1592
1593         * test/name-test/ (test-names.c, run-test.sh, Makefile.am): New
1594         regression test suite for testing various states of the new
1595         queueing system
1596         
1597 2005-11-15  Robert McQueen  <robot101@debian.org>
1598
1599         * dbus/dbus-glib-lowlevel.h, glib/dbus-gobject.c: Patch from Rob
1600         Taylor to add two methods, dbus_g_method_return_get_reply and
1601         dbus_g_method_return_send_reply, to allow you to get the reply
1602         message from a DBusGMethodInvocation, append arbitrary stuff to it,
1603         and send it. The GLib bindings can't marshal a return value of
1604         something like a(s) if the array is empty - ultimately they should be
1605         made to heed the signature of the out arguments as the Python bindings
1606         now can, but this is a workable interim solution which might have
1607         other applications.
1608
1609 2005-11-15  Robert McQueen  <robot101@debian.org>
1610
1611         * bus/driver.c, bus/services.c, bus/services.h: Add a ReleaseName
1612         method to org.freedesktop.DBus to release a bus name or give up
1613         waiting in the queue for it.
1614
1615         * dbus/dbus-bus.c, dbus/dbus-bus.h, dbus/dbus-shared.h: Add a
1616         dbus_bus_release_name method to send the ReleaseName method calls.
1617         Add constants for the return values to dbus/dbus-shared.h.
1618
1619         * doc/dbus-specification.xml: Document the new ReleaseName method
1620         in the specification.
1621
1622         * python/dbus_bindings.pyx: Add a low-level python binding for the
1623         release name method.
1624
1625         * python/exceptions.py, python/service.py: Make freeing BusName
1626         objects release the name. Add a NameExistsException, and fix a
1627         bug with creating UnknownMethodException.
1628
1629         * test/python/test-client.py: Add tests for freeing BusName
1630         objects causing names to be released.
1631
1632 2005-11-14  Robert McQueen  <robot101@debian.org>
1633
1634         * python/service.py: Include the traceback in the error reply when we
1635         send an exception over the bus. _BEST_ _PATCH_ _EVER_
1636
1637 2005-11-14  David Zeuthen  <davidz@redhat.com>
1638
1639         Patch from Timo Hoenig <thoenig@suse.de>.
1640
1641         * bus/bus.c: I've recently investigated why the automatic reload
1642         of configuration files does not work as expected.
1643
1644         Currently, reloading configuration files does only work when
1645         running dbus-daemon with --nodaemon.  If we are running as daemon
1646         we're hitting a dnotify bug once we fork the process.
1647
1648         We're initializing the dnotify fds before calling fork().  Once
1649         the child process forked it does still have the fds (and they
1650         still show up in /proc/`pidof dbus-daemon`/fd/) but we're not
1651         getting SIGIO as changes are made to the configuration files.
1652
1653         The attached patch moves the initialization of the dnotify fds to
1654         process_config_postinit().  This is safe for all current code
1655         paths and solves the dnotify disfunction.  If we're running
1656         dbus-daemon as daemon the fds for dnotify are now being
1657         initialized after fork() for the child process.
1658
1659         * configure.in: The current configure.in check for dnotify probes
1660         'x$target_os' for being 'xlinux-gnu'.  I've changed the check to
1661         match for 'xlinux', too. Additionally I have adapted the configure
1662         option's style to match with the others.
1663
1664 2005-11-14  Robert McQueen  <robot101@debian.org>
1665
1666         * python/decorators.py, python/service.py: Add a new argument to the
1667         dbus.service.method decorator called sender_keyword, which if set,
1668         specifies the name of an argument which will be provided the bus
1669         name of the method caller.
1670
1671         * test/python/test-client.py, test/python/test-service.py: Add a
1672         method and test to check the sender_keyword functionality.
1673
1674 2005-11-07  John (J5) Palmieri  <johnp@redhat.com>
1675
1676         * bus/driver.c (bus_driver_handle_reload_config): Make sure we send an 
1677         empty reply so blocking calls don't block forever (Patch from Sjoerd 
1678         Simons <sjoerd at luon.net>)
1679
1680         * AUTHORS: Add Robert McQueen for his work on the Python
1681         Bindings and other parts of D-Bus
1682
1683 2005-11-07  Robert McQueen  <robot101@debian.org>
1684
1685         * python/decorators.py: Change emit_signal function to use the
1686         signature annotation of the signal when marhsalling the arguments from
1687         the service. Fix a bug where the code checking signature length
1688         against argument length referenced the wrong variable.
1689
1690         * python/introspect_parser.py: Avoid adding the type signature of
1691         signal arguments to any methods which occur after them in the
1692         introspection data (!) by making the parser a little more careful
1693         about its current state.
1694
1695         * python/service.py: Remove debug prints from last commit (again :D).
1696
1697         * test/python/test-client.py, test/python/test-service.py: Add test
1698         signals with signature decorators to test the strict marshalling code
1699         gives errors at the right time. Could do with checking the signals
1700         actually get emitted too, given that the test does nothing with
1701         signals at the moment...
1702
1703 2005-11-07  Robert McQueen  <robot101@debian.org>
1704
1705         * python/_dbus.py: Add WeakReferenceDictionary cache of dbus.Bus
1706         instances to stop madness of creating new instances representing
1707         the same bus connection all the time, rendering any tracking of
1708         match rules and bus names quite meaningless. Caught a bug where
1709         the private argument to SessionBus() and friends was being passed
1710         in as use_default_mainloop by mistake. Still some problems with
1711         multiple dbus_binding.Connection instances representing the same
1712         low-level connection (eg when you use both SessionBus() and
1713         StarterBus() in same process), but it's a lot better now than it
1714         was.
1715
1716         * python/dbus_bindings.pyx: Add constants with the return values
1717         for bus_request_name().
1718
1719         * python/service.py: Store bus name instances in a per-dbus.Bus cache
1720         and retrieve the same instances for the same name, so deletion can be
1721         done with refcounting. Also now throws some kind of error if you
1722         don't actually get the name you requested, unlike previously...
1723
1724         * test/python/test-client.py: Add tests for instance caching of buses
1725         and bus name objects.
1726
1727 2005-11-04  Robert McQueen  <robot101@debian.org>
1728
1729         * python/dbus_bindings.pyx, test/python/test-client.py: Fix
1730         marshalling of boolean values. Add some booleans to the values in
1731         the test client.
1732
1733         * python/decorators.py, python/service.py: Add an 'async_callbacks'
1734         argument to the dbus.service.method decorator, which allows you to
1735         name arguments to take two callback functions for replying with
1736         return values or an exception.
1737
1738         * test/python/test-client.py, test/python/test-service.py: Add test
1739         case using asynchronous method reply functions, both return values and
1740         errors, and from within both the function itself and from a mainloop
1741         callback.
1742
1743         * python/decorators.py, python/service.py: Perform checking that the
1744         number of method/signal arguments matches the number of types in the
1745         signature at class loading time, not when you first introspect the
1746         class.
1747
1748         * python/service.py: Remove debug print left by the last commit.
1749
1750 2005-11-03  Robert McQueen  <robot101@debian.org>
1751
1752         * python/service.py: Heavy refactoring of method invocation, with
1753         hopefully no effect on functionality. Nuked _dispatch_dbus_method_call
1754         in favour of a new _message_cb that uses seperate functions for
1755         looking up the method to call, marshalling the return values, and
1756         sending exceptions as errors, and is easier to follow as a
1757         consequence.  Fixes some corner cases about returning things that
1758         don't match your declared out_signature, allows exceptions to define
1759         _dbus_error_name and have it be sent over the bus as the error name,
1760         and paves the way for cool stuff like heeding the message no reply
1761         flag, asynchronous method implementations, informing the method of the
1762         sender, and including backtraces in the error messages.
1763
1764         * test/python/test-client.py: Catch and print exceptions thrown in the
1765         async callback tests, rather than passing them to the low-level
1766         bindings to be ignored in a noisy and frustrating manner.
1767
1768 2005-11-03  Robert McQueen  <robot101@debian.org>
1769
1770         * python/_dbus.py, python/proxies.py, python/service.py: Add __repr__
1771         functions to dbus.Bus, dbus.service.BusName and dbus.service.Object,
1772         tweak others to be consistent.
1773
1774         * test/python/test-client.py: Tweak output of testInheritance.
1775
1776 2005-10-29  Robert McQueen  <robot101@debian.org>
1777
1778         * python/service.py: Major changes to allow multiple inheritance
1779         from classes that define D-Bus interfaces:
1780         
1781          1. Create a new Interface class which is the parent class of
1782             Object, and make the ObjectType metaclass into InterfaceType.
1783         
1784          2. Patch written with Rob Taylor to replace use of method_vtable
1785             with code that walks the class's __MRO__ (method resolution order)
1786             to behave like Python does when invoking methods and allow
1787             overriding as you'd expect. Code is quite tricky because
1788             we have to find two methods, the one to invoke which has the
1789             right name and isn't decorated with the /wrong/ interface,
1790             and the one to pick up the signatures from which is decorated
1791             with the right interface.
1792         
1793             The same caveats apply as to normal multiple inheritance -
1794             this has undefined behaviour if you try and inherit from two
1795             classes that define a method with the same name but are
1796             decorated with different interfaces. You should decorate
1797             your overriding method with the interface you want.
1798         
1799          3. Replace grungy introspection XML generation code in the metaclass
1800             with dictionaries that cope correctly with multiple inheritance
1801             and the overriding of methods. This also uses the signature
1802             decorations to provide correct introspection data, including
1803             the debut appearance of the types of your return values. :D
1804
1805         * test/python/test-client.py, test/python/test-service.py: Add a test
1806         case to try invoking an method that overrides one inherited from a
1807         D-Bus interface class.
1808
1809 2005-10-29  Robert McQueen  <robot101@debian.org>
1810
1811         * python/dbus_bindings.pyx: Tweak 'raise AssertionError' to assert().
1812         Add checking for the end of struct character when marshalling a
1813         struct in MessageIter.append_strict.
1814
1815         * python/examples/example-service.py,
1816         python/examples/gconf-proxy-service.py,
1817         python/examples/gconf-proxy-service2.py: Update to use gobject
1818         mainloop directly rather than appearing to depend on gtk.
1819
1820         * python/test/test-client.py, python/test/test-server.py: Remove
1821         obsolete and broken test scripts for old bindings. We have up to date
1822         and working tests in test/python/.
1823
1824 2005-10-29  Robert McQueen  <robot101@debian.org>
1825
1826         * python/decorators.py: Add optional arguments to the method and
1827         signal decorators to allow you to specify the signature of arguments
1828         and return values. Preserve the doc strings of signal functions in the
1829         decorated version, for pydoc and friends.
1830
1831         * python/dbus_bindings.pyx, python/proxies.py: Replace the
1832         parse_signature_block function with an iterable dbus.Signature()
1833         type. Fix a bug in MessageIter.append_strict where you could append
1834         anything by claiming it was a string.
1835
1836         * python/service.py: Use the out_signature decoration on methods to
1837         marshal return values, meaning you no longer require dbus.Array()
1838         or dbus.Dictionary() to indicate the type when returning empty
1839         arrays or dictionaries. Fix a bug where exceptions which are defined
1840         in __main__ are not turned into error replies.
1841
1842         * test/python/test-client.py, test/python/test-service.py: Add test
1843         for correct marshalling of return values according to out_signature.
1844         Fix a bug in the async call test where the error_handler is missing a
1845         self argument.
1846
1847 2005-10-29  Robert McQueen  <robot101@debian.org>
1848
1849         * glib/Makefile.am, glib/examples/Makefile.am,
1850         glib/examples/statemachine/Makefile.am: Merge patch from Ubuntu by
1851         Daniel Stone to replace explicit calls to libtool with $(LIBTOOL).
1852
1853         * test/python/.cvsignore: Add run-with-tmp-session-bus.conf.
1854
1855         * tools/dbus-monitor.1, tools/dbus-monitor.c: Merge dbus-monitor patch
1856         from Ubuntu by Daniel Silverstone to allow specifying match rules on
1857         the command line.
1858
1859 2005-10-27  Ross Burton  <ross@openedhand.com>
1860
1861         * dbus/dbus-marshal-header.c:
1862         Remove dead code.
1863
1864         * glib/dbus-gobject.c:
1865         Stop compiler warning.
1866
1867 2005-10-25  Ross Burton  <ross@openedhand.com>
1868
1869         * dbus/dbus-auth.c:
1870         * dbus/dbus-server-unix.c:
1871         * dbus/dbus-transport-unix.c:
1872         * glib/dbus-gmain.c:
1873         * glib/dbus-gobject.c:
1874         Add some const keywords.
1875
1876 2005-10-25  Ross Burton  <ross@openedhand.com>
1877
1878         * doc/dbus-specification.xml:
1879         Document the NoReply annotation.
1880
1881         * glib/dbus-binding-tool-glib.h:
1882         * glib/dbus-binding-tool-glib.c:
1883         Respect the NoReply annotation.
1884
1885 2005-10-24  Robert McQueen <robot101@debian.org>
1886
1887         * python/dbus_bindings.pyx (String, MessageIter): make D-Bus strings
1888         derive from unicode instead of str, and encode/decode UTF-8 when
1889         marshalling/unmarshalling bus messages
1890
1891         * python/introspect_parser.py: encode introspection data as UTF-8
1892         before passing the buffer into libxml2
1893
1894         * test/python/test-client.py: add unicode test strings
1895
1896         * test/data/valid-service-files/.cvsignore, test/python/.cvsignore:
1897         ignore generated python test files
1898
1899 2005-10-17  John (J5) Palmieri  <johnp@redhat.com>
1900
1901         * glib/dbus-gvalue-utils.c (hash_free_from_gtype): handle gdouble
1902         and G_TYPE_VALUE_ARRAY (DBUS_TYPE_STRUCT)
1903         (gvalue_from_hash_value, hash_value_from_gvalue): handle gdouble
1904
1905         * glib/dbus-gvalue.c (dbus_gvalue_to_signature): add missing
1906         DBUS_STRUCT_BEGIN_CHAR and DBUS_STRUCT_END_CHAR charaters
1907         when constructing struct signatures
1908
1909         * python/_dbus.py (Bus): handle private connections using the
1910         private keyword in the constructor. defaults to private=False
1911         (Bus::close): new method to close a connection to the bus
1912
1913         * python/dbus_bindings.pyx (Connection::close): renamed method
1914         was previously called disconnect
1915         (bus_get): now supports getting a private connection
1916
1917         * python/proxies.py (ProxyMethod::__call__): check if ignore_reply
1918         keyword is set to True.  if it is, execute the method without waiting
1919         for a reply
1920         (ProxyObject::_introspect_execute_queue): new method for executing
1921         all the pending methods that were waiting for the introspect to
1922         finish.  this is called when introspect either succeeds or fails
1923         (ProxyObject::_introspect_error_handler): call queued methods
1924
1925 2005-10-14  John (J5) Palmieri  <johnp@redhat.com>
1926
1927         * python/dbus_bindings.pyx (MessageIter::append_strict): check for
1928         STRUCT_BEGIN not TYPE_STRUCT in indicate we are marshalling a struct
1929
1930         * python/service.py (Object::_message_cb): handle exceptions correctly
1931         by sending them over the wire to the calling app.  This makes sure
1932         the client returns immediately instead of waiting the 15 seconds to
1933         timeout.
1934
1935         * test/python/test-client.py (TestDBusBindings::testBenchmarkIntrospect): 
1936         Add a test to benchmark how long it takes to introspect a service and 
1937         call a method which returns a large element (pretty fast)
1938
1939         * test/python/test-service.py (TestObject::GetComplexArray): new test 
1940         method which pushes a lot of data
1941
1942 2005-10-13  John (J5) Palmieri  <johnp@redhat.com>
1943
1944         * python/service.py(ObjectType::_reflect_on_signal, _reflect_on_method):        
1945         reclaim memory outside of the loop and use del istead of just setting
1946         the key to None
1947
1948 2005-10-13  John (J5) Palmieri  <johnp@redhat.com>
1949
1950         * python/service.py (ObjectType::_reflect_on_signal): Always close
1951         signal tag even when there are no arguments
1952
1953 2005-10-13  John (J5) Palmieri  <johnp@redhat.com>
1954
1955         * configure.in: Set mono, mono-docs and Qt3 to default
1956         to no instead of auto when building.  These bindings do not
1957         have full time maintainers and will not be supported for the
1958         1.0 release.
1959
1960 2005-10-12  John (J5) Palmieri  <johnp@redhat.com>
1961
1962         patches from Michael Krivoruchko <misha at sun.com>: 
1963         
1964         * dbus/dbus-connection.c (_dbus_connection_queue_received_message_link,
1965         _dbus_connection_message_sent, 
1966         _dbus_connection_send_preallocated_unlocked_no_update, 
1967         _dbus_connection_pop_message_link_unlocked): handle the case when path 
1968         is NULL when calling _dbus_verbose
1969
1970         * configure.in: check for functions getpeerucred and getpeereid
1971
1972         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): provides 
1973         support of auth EXTERNAL on Solaris 10+ (getpeerucred), FreeBSD 4.6+, 
1974         OpenBSD 3.0+ and FreeBSD 5.0+ as well as MacOSX 10.2+ (getpeereid). 
1975         Patch was only tested on Solaris 10 x86 so it might be issues
1976         with other platforms (i.e. BSDs and MacOSX)
1977         
1978
1979 2005-10-05  John (J5) Palmieri  <johnp@redhat.com>
1980
1981         * glib/dbus-gvalue.c (marshal_variant): call _dbus_gvalue_marshal 
1982         instead of marshal basic so we can handle recursive types in a variant
1983
1984         * test/glib/test-dbus-glib.c: Add test for marshaling recurive types
1985         in variants
1986
1987         * test/glib/test-service-glib.c, test-service-glib.xml
1988         (my_object_echo_variant [EchoVariant], 
1989         my_object_process_variant_of_array_of_ints123
1990         [ProcessVariantOfArrayOfInts123]): 
1991         Add two test methods
1992
1993         * python/introspect_parser.py: New module for parsing introspect
1994         data.
1995
1996         * python/dbus_bindings.pyx:
1997         (various places): when throwing errors fix to use errormsg instead 
1998         of message local variable because Pyrex can get confused with other 
1999         message variables (initial patch by Robert McQueen 
2000         <robert.mcqueen at collabora.co.uk>)
2001         (MessageIter::parse_signature_block): new method for getting the next
2002         block in a signiture.
2003         (MessageIter::append_strict): new method for appending values strictly
2004         using the passed in signature instead of guessing at the type
2005         (MessageItter:: append_dict, append_struct, append_array): use 
2006         signatures to marshal children if the signature is available
2007         
2008         * python/exceptions.py (IntrospectionParserException): new exception
2009
2010         * python/proxies.py (ProxyMethod::__call__): Marshal args with 
2011         introspected signatures if available, else we fall back to the
2012         old way of doing things.
2013         (ProxyObject::_introspect_reply_handler ): parse introspection data
2014         
2015         * python/service.py (ObjectType::_reflect_on_method): Properly
2016         terminate <method> if there are no args in the reflection data
2017
2018         * test/python/test-client.py: add tests for talking with the GLib
2019         test server.  This gives us better coverage for introspection since
2020         python to python will always generate arguments as variants.  It also
2021         allows us to test the robustness of the GLib bindings and interlanguage
2022         communications.
2023
2024         
2025 2005-10-03  John (J5) Palmieri  <johnp@redhat.com>
2026
2027         * bus/driver.c (bus_driver_handle_introspect): Add signals
2028         to the introspect data. (patch from Daniel P. Berrange 
2029         <dan at berrange.com>)
2030
2031         * bus/dispatch.c (check_existent_ping): Add testcase for Ping
2032         
2033         * dbus/dbus-connection.c (_dbus_connection_peer_filter,
2034         _dbus_connection_run_builtin_filters): Changed these to
2035         be unlock_no_update functions and call 
2036         _dbus_connection_send_unlocked_no_update instead of
2037         dbus_connection_send to avoid locking errors.
2038         
2039         * doc/TODO: Removed the make Ping test TODO
2040         
2041 2005-09-26  John (J5) Palmieri  <johnp@redhat.com>
2042
2043         * dbus/Python.pyx: Fixed memory leaks when throwing errors.
2044         We now copy the message from a DBusError and then free 
2045         the error object befor throwing the error
2046
2047         * glib/dbus-glib-tool.c: removed extra comma at the end of the
2048         DBusBindingOutputMode enum which was causing a warning.
2049         #include <time.h> so using time_t is explicitly defined
2050
2051 2005-09-26  John (J5) Palmieri  <johnp@redhat.com>
2052
2053         * Integrate patches from Lennart Poettering <mzsqb at 0pointer.de>:
2054         - dbus/dbus-bus.c
2055         (internal_bus_get): new method that take over the heavy lifting
2056         of dbus_bus_get and adds the ability to get a private connection
2057         to the bus
2058         (dbus_bus_get): wrapper to internal_bus_get that provides the same
2059         interface as in previous versions
2060         (dbus_bus_get_private): new method that is a wrapper to 
2061         internal_bus_get to get a private connection to the bus
2062
2063         - dbus/dbus-bus.h
2064         (dbus_bus_get_private): add as a public libdbus interface
2065
2066         - dbus-1.pc.in: output system_bus_default_address and 
2067         sysconfdir variables so apps can use them when compiling
2068
2069 2005-09-23  Harald Fernengel  <harry@kdevelop.org>
2070         * dbus/qt: New Qt bindings
2071
2072 2005-09-12  Waldo Bastian  <bastian@kde.org>
2073
2074         * dbus/dbus-marshal-validate.c,
2075         doc/dbus-specification.xml, test/Makefile.am,
2076         test/test-names.c: allow hyphens in bus names.
2077
2078 2005-09-11  Mark McLoughlin  <mark@skynet.ie>
2079
2080         * test/data/auth/fallback.auth-script: we don't
2081         retry the EXTERNAL method when we know its going
2082         to fail anymore.
2083
2084 2005-09-11  Mark McLoughlin  <mark@skynet.ie>
2085
2086         * dbus/dbus-connection-internal.h: rename
2087         (add|remove|toggle)_(watch|timeout) to unlocked()
2088         
2089         * dbus/dbus-connection.c: ditto.
2090         
2091         * dbus/dbus-timeout.c, dbus/dbus-transport-unix.c:
2092         Update some callers for the renaming.
2093
2094 2005-09-10  Mark McLoughlin  <mark@skynet.ie>
2095
2096         * dbus/dbus-auth.c: (record_mechanisms): don't
2097         retry the first auth mechanism because we know
2098         we're just going to get rejected again.
2099         
2100         * dbus/dbus-keyring.c: (_dbus_keyring_reload):
2101         Fix thinko ... and what a nasty little bugger to
2102         track down you were ...
2103
2104         * dbus/dbus-connection.c:
2105         (_dbus_connection_add_watch),
2106         (_dbus_connection_remove_watch): add note about
2107         these needing the connection to be locked.
2108         (_dbus_connection_get_dispatch_status_unlocked):
2109         set status to DATA_REMAINS when we queue the
2110         disconnected message.
2111         
2112         * bus/dispatch.c:
2113         (bus_dispatch): fix warning.
2114         (check_existent_service_no_auto_start):
2115         Expect ChildSignaled error too.
2116         (check_existent_hello_from_self): fix another
2117         couple of warnings.
2118         
2119 2005-09-08  Joe Shaw  <joeshaw@novell.com>
2120
2121         Patches from James Willcox <snorp@snorp.net>
2122
2123         * mono/Makefile.am: Add Int16.cs and UInt16.cs
2124
2125         * mono/DBusType/Array.cs: Handle multidimensional arrays, and
2126         support array "out" parameters.
2127
2128         * mono/DBusType/Int16.cs, mono/DBusType/UInt16.cs: New files,
2129         for 16-bit int support.
2130
2131 2005-09-06  John (J5) Palmieri  <johnp@redhat.com>
2132
2133         * Released 0.50
2134
2135         * Patch from Steve Grubb:
2136         - bus/activation.c (bus_activation_service_reload_test): clean up
2137         some indentation
2138         - dbus/dbus-keyring.c (_dbus_keyring_reload): fix conditional 
2139         - dbus/dbus-message-factory.c (generate_special): fix a couple of
2140         buffer overflows in the test suite.  This is non critical because
2141         it can not be exploited and this code is only run when doing a 
2142         make check.
2143
2144         * Patch from Yaakov Selkowitz: Build fixes for Cygwin
2145         - configure.in: Don't check and link against kdecore, only qt headers
2146         - dbus/Makefile.am: Add -no-undefined to libdbus_1_la_LDFLAGS
2147         - gcj/org/freedesktop/dbus/Makefile.am:
2148         add libdbus_gcj_1_la_LDFLAGS = -no-undefined
2149         - glib/Makefile.am: Add -no-undefined to libdbus_glib_1_la_LDFLAGS
2150         and $(DBUS_GLIB_LIBS) to dbus_binding_tool_LDADD
2151         - qt/Makefile.am: Add -no-undefined to libdbus_qt_1_la_LDFLAGS
2152         - tools/Makefile.am: Add platform extentions to binaries 
2153         (i.e. .exe on windows)
2154
2155         * configure.in: 
2156         - Make it so if no suitable version of python is found we only 
2157         disable building python instead of exiting the configure script
2158         - Require version 2.4 of glib for glib bindings
2159         - Up version to 0.50
2160
2161         * python/__init__.py: Sync version with libdbus to (0,50,0)
2162         
2163 2005-09-05  Olivier Andrieu  <oliv__a@users.sourceforge.net>
2164
2165         * dbus/dbus-object-tree.c (find_subtree_recurse):
2166         a couple of optimizations (bug #710):
2167         - do a binary search in the tree
2168         - insert a new child at the right place directly, no need for
2169           qsort anymore
2170         - do the "double alloc" thing when allocating children
2171
2172 2005-08-31  John (J5) Palmieri  <johnp@redhat.com>
2173
2174         * python/Makefile.am: Break on pyrexc errors instead of ignoring them
2175
2176         * python/dbus_bindings.pyx: Memory management foo
2177         (global): remove hacky _user_data_references global list
2178         (GIL_safe_cunregister_function_handler): userdata now stuffed into
2179         tuples. Unref user_data
2180         (GIL_safe_cmessage_function_handler): userdata now stuffed into tuples
2181         (Connection::__del__): Remove and replace with __dealloc__ method
2182         (Connection::add_filter): Stuff user_data into a tuple.  Use Py_INCREF
2183         to keep tuple from being deallocated instead of the global var hack
2184         (Connection::register_object_path): Stuff user_data into a tuple.
2185         Use Py_INCREF to keep tuple from being deallocated instead of the 
2186         global var hack
2187         (Connection::register_fallback): Stuff user_data into a tuple.
2188         Use Py_INCREF to keep tuple from being deallocated instead of the 
2189         global var hack
2190         (GIL_safe_pending_call_notification): Don't unref the message
2191         because it gets unreffed when going out of scope.  Py_XDECREF
2192         the user_data
2193         (PendingCall::__del__): Remove and replace with __dealloc__ method
2194         (PendingCall::set_notify): ref the pending call because we will
2195         need it to stick around for when the notify callback gets called
2196         (Message::__del__): Remove and replace with __dealloc__ method
2197
2198         * python/dbus_glib_bindings.pyx (init_gthreads): Changed to 
2199         gthreads_init to match up with the dbus call
2200
2201         * python/glib.py (init_threads): Changed to threads_init to match
2202         up with gobject.threads_init().  init_threads is kept for backwards
2203         compat but will most likely be deprecated in the future
2204
2205         * test/python/test-client.py: 
2206         - revamp to use Python's unittest functionality
2207         - add async call tests
2208         - setup threads in glib and dbus so we make sure locks are working
2209         
2210 2005-08-30  John (J5) Palmieri  <johnp@redhat.com>
2211
2212         * python/dbus_bindings.pyx 
2213         (_pending_call_notification, cunregister_function_handler, 
2214         cmessage_function_handler): All callback functions have been rearranged 
2215         to workaround a bug in Pyrex when working with the GIL which is Python's 
2216         global lock when dealing with threads.  They have been split into
2217         a wrapper function (which assumes the name of the old function) and
2218         a _GIL_safe_<function name> function which contains the functionality
2219         of the old function.  This ensures that Pyrex does not write code
2220         the lock is released.
2221         
2222
2223 2005-08-30  John (J5) Palmieri  <johnp@redhat.com>
2224
2225         * python/dbus_bindings.pyx (_pending_call_notification): Obtain the
2226         GIL global lock when calling back into Python
2227
2228 2005-08-29  John (J5) Palmieri  <johnp@redhat.com>
2229
2230         * Release 0.36.2
2231
2232         * Add Havoc's patch that never got applied to HEAD (Bug #2436):
2233
2234         * bus/policy.c (bus_policy_allow_user): change default "user is
2235         allowed" to be "user has same uid as the bus itself"; any
2236         allow/deny rules will override.
2237
2238         * bus/session.conf.in: don't allow all users, since now by default
2239         the user that ran the bus can connect.
2240
2241 2005-08-26  Colin Walters  <walters@verbum.org>
2242
2243         * tools/dbus-print-message.c (print_message): Flush stdout
2244         after printing a message, so that redirecting to a file, then
2245         hitting Ctrl-C works.
2246
2247 2005-08-25  John (J5) Palmieri  <johnp@redhat.com>
2248
2249         * python/dbus_bindings.pyx: Tracked down a major memleak and fixed it
2250         (EmptyMessage): new class that subclasses Message.  This is a workaround
2251         to a Pyrex bug that fails to call __del__ when the Message object goes out
2252         of scope.  For some reason subclassing Message fixes this bug
2253         (Bus::send_with_reply_and_block): use EmptyMessage instead of Message
2254         - s/Message(_create=0)/EmptyMessage everywhere else
2255         
2256         * test/python/test-{server|client}.py: add the python/.libs directory
2257         to the lookup path so dbus_bindings and dbus_glib_bindings don't
2258         get picked up from the system
2259
2260 2005-08-25  Colin Walters  <walters@verbum.org>
2261
2262         * glib/dbus-gproxy.c (dbus_g_proxy_call): Doc update, thanks
2263         to Ryan Lortie for the suggestion.
2264
2265 2005-08-24  John (J5) Palmieri  <johnp@redhat.com>
2266
2267         * test/python: Add python regression test
2268
2269         * configure.in: Add test/python/Makefile
2270
2271         * test/Makefile.am: Add the python directory to SUBDIRS
2272
2273 2005-08-24  John (J5) Palmieri  <johnp@redhat.com>
2274
2275         * Release 0.36.1
2276
2277         * python/_dbus.py: 
2278         (Interface::connect_to_signal): propigate keywords for match on args
2279         (Bus::add_signal_receiver): Fix typo s/dbus_inteface/dbus_interface
2280
2281         * python/proxies.py (ProxyObject::connect_to_signal):
2282         propigate keywords for match on args
2283
2284         * Makefile.am: point everything to pyexecdir since python borks
2285         on multilib
2286
2287 2005-08-23  John (J5) Palmieri  <johnp@redhat.com>
2288
2289         * Release 0.36
2290
2291 2005-08-23  Colin Walters  <walters@verbum.org>
2292
2293         * test/glib/Makefile.am: Don't multiply-define EXTRA_DIST.
2294
2295 2005-08-23  John (J5) Palmieri  <johnp@redhat.com>
2296
2297         * python/dbus_glib_bindings.pyx: reorder imports and c definitions
2298         to fix some wranings. We now use dbus_bindings.DBusConnection instead
2299         of defining DBusConnection ourselves.
2300
2301 2005-08-18  John (J5) Palmieri  <johnp@redhat.com>
2302
2303         * python/dbus.pth: New path file to fix up problems when installing
2304         c libraries to lib64 and python files to lib.
2305
2306         * python/Makefile.am: install dbus.pth in the correct spot
2307
2308 2005-08-17  John (J5) Palmieri  <johnp@redhat.com>
2309         * ChangeLog: clean up my last entry a bit
2310
2311         * doc/introspect.xsl: New stylesheet for converting introspection data
2312         into browser renderable xhtml. Contributed by Lennart Poettering.
2313
2314         * doc/introspect.dtd: Fixups in the introspect format from Lennart
2315         Poettering.
2316
2317         * doc/dbus-tutorial.xml: 
2318         - Add Colin Walter to the Authors section for authoring the GLib
2319         section
2320         - Add descriptions of the new signature and type functionality
2321         in the Python complex type mapping section
2322         - Add a sidenote on the new args matching functionality in 
2323         the Python bindings
2324         - Fixed up some of the examples to use the gobject.MainLoop
2325         instead of gtk.main
2326         
2327         * python/_dbus.py:
2328         (Bus::_create_args_dict): New. Converts a hash of arg matches
2329         to a more useable format
2330         (Bus::add_signal_receiver): add a **keywords parameter for catching
2331         arg match parameters
2332         (Bus::remove_signal_receiver): add a **keywords parameter for catching
2333         arg match parameters
2334         
2335         * python/matchrules.py:
2336         (MatchTree::exec_matches): Check for arg matches
2337         (SignalMatchRule::add_args_match): New method
2338         (SignalMatchRule::execute): Added args_list parameter as an optimization
2339         so we don't have to marshal the args more than once
2340         (SignalMatchRule::match_args_from_list): New method that checks to see
2341         if the rule's arg matches match an argument list.  Only arguments
2342         set in the rule are checked.
2343         (SignalMatchRule::match_args_from_rule): New method that checks to see
2344         if the rule's arg matches match another rule's.  All args have to match
2345         in order for this method to return true.  If either rule has more args
2346         then it is not a match.
2347         (SignalMatchRule::is_match): Add args match
2348         (SignalMatchRule::repr): Add args to the final output if they exist
2349
2350 2005-08-17  Ross Burton  <ross@burtonini.com>
2351
2352         * glib/dbus-gproxy.c:
2353         (dbus_g_proxy_call_no_reply): unref the message once sent.
2354         (dbus_g_proxy_call): protect against NULL proxy.
2355
2356 2005-08-16  John (J5) Palmieri  <johnp@redhat.com>
2357
2358         * python/__init__.py: Version updated (0, 43, 0)
2359         
2360         * python/dbus_bindings.pyx: 
2361         - Fixed type objects to have self passed into __init__
2362         - Added the Variant type
2363         - Add the ability to specify types or signatures for Array, Variant 
2364         and Dictionary
2365         (Connection::send_with_reply_handlers): return a PendingCall object
2366         (_pending_call_notification): handle the case when an error is returned 
2367         without an error message in the body
2368         (MessageIter::get_boolean): return True or False instead of an integer
2369         (MessageIter::python_value_to_dbus_sig): add direct checking of types 
2370         and add checks for objects with embeded signatures or types (Array, 
2371         Variant and Dictionary)
2372         (MessageIter::append_byte): handle case when the value is a dbus.Byte
2373         (MessageIter::append_dict): handle embeded types or signatures
2374         (MessageIter::append_array): handle embeded types or signatures
2375         (MessageIter::append_variant): new method
2376         
2377         * python/proxies.py:
2378         (DeferedMethod): New. Dummy executable object used when queuing calls 
2379         blocking on introspection data
2380         (ProxyMethod::__call__): add the timeout keyword for specifying longer 
2381         or shorter timeouts for method calls
2382         (ProxyObject): Add first pass at an introspection state machine
2383         (ProxyObject::__init__): Add introspect keyword for turing off an on 
2384         introspection. 
2385         (ProxyObject::_Introspect): Internal Introspect call that bypasses 
2386         the usual mechanisms for sending messages.  This is to avoid a deadlock
2387         where the Intospect call would be queued waiting for the Introspect 
2388         call to finish ;-)
2389         (ProxyObject::_introspect_reply_handler): New.  This method is called 
2390         when introspection returns with no error
2391         (ProxyObject::_introspect_error_handler): New.  This method is called 
2392         when introspection encounters an error
2393         (ProxyObject::__getattr__): Code to handle different introspection 
2394         states.  Queue async calls or block blocking calls if we are 
2395         introspecting.  Pass through as normal if we are not or are done with 
2396         introspecting.
2397         
2398         * python/service.py: Import signal and method from decorators.py
2399
2400         * python/types.py: Add Variant type
2401
2402 2005-08-16  Colin Walters  <walters@verbum.org>
2403
2404         * glib/dbus-gobject.c (dbus_set_g_error): Don't lose if the
2405         DBusError message is NULL.
2406
2407 2005-08-09  Havoc Pennington  <hp@redhat.com>
2408
2409         * dbus/dbus-errors.c: apply patch from Timo Teras to make a
2410         malloc'd copy of the name parameter
2411
2412 2005-08-09  Havoc Pennington  <hp@redhat.com>
2413
2414         * dbus/dbus-message.c (dbus_message_set_reply_serial): print
2415         warning if the reply serial is set to 0
2416
2417 2005-08-04  Colin Walters  <walters@verbum.org>
2418
2419         * glib/dbus-gvalue-utils.h (_dbus_g_type_specialized_builtins_init)
2420         (dbus_g_type_is_fixed, dbus_g_type_fixed_get_size)
2421         (dbus_gvalue_set_from_pointer, dbus_g_hash_table_value_foreach)
2422         (dbus_g_hash_table_insert_values, dbus_g_hash_table_insert_steal_values)
2423         (dbus_gtype_is_valid_hash_key, dbus_gtype_is_valid_hash_value)
2424         (dbus_g_hash_func_from_gtype, dbus_g_hash_free_from_gtype)
2425         (dbus_g_hash_equal_from_gtype, dbus_gvalue_stor, dbus_gvalue_take):
2426         * glib/dbus-gvalue.h (dbus_g_value_types_init)
2427         (dbus_gvalue_demarshal, dbus_gvalue_demarshal_variant)
2428         (dbus_gvalue_demarshal_message, dbus_gvalue_marshal):
2429         
2430         Prefix name with _ to ensure they're not exported.  All callers
2431         updated.
2432
2433         * glib/dbus-gvalue.c (typecode_to_gtype)
2434         (dbus_typecode_maps_to_basic, basic_typecode_to_gtype)
2435         (signature_iter_to_g_type_dict)
2436         (signature_iter_to_g_type_array)
2437         (dbus_gtype_from_signature_iter, dbus_gtype_from_signature)
2438         (dbus_gtypes_from_arg_signature):
2439         Move to dbus-gsignature.c.
2440
2441         * glib/dbus-binding-tool-glib.c (dbus_binding_tool_output_glib_server): Call
2442         dbus_g_type_specialized_builtins_init instead of dbus_g_value_types_init.
2443         (dbus_binding_tool_output_glib_client): Ditto.
2444
2445         * glib/Makefile.am (DBUS_GLIB_INTERNALS): Add dbus-gsignature.c
2446         and dbus-gsignature.h
2447
2448         * test/glib/test-service-glib.c (my_object_rec_arrays): Delete
2449         unused variable.
2450
2451 2005-08-03  Colin Walters  <walters@verbum.org>
2452
2453         * glib/dbus-gobject.c: Add tests on hardcoded object info; this should
2454         catch any incompatible changes accidentally made.
2455
2456 2005-08-03  Havoc Pennington  <hp@redhat.com>
2457
2458         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): fix
2459         typo, from Julien Puydt
2460
2461         * bus/connection.c (bus_connection_disconnected): we were always
2462         doing a wait_for_memory due to a buggy loop, found by Timo Hoenig
2463
2464 2005-08-01  Colin Walters  <walters@verbum.org>
2465
2466         Patch from Joe Markus Clarke:   
2467         
2468         * glib/dbus-gidl.c (property_info_unref, arg_info_unref): Fix
2469         use-after-free.
2470
2471 2005-08-01  Colin Walters  <walters@verbum.org>
2472         
2473         Patch from Joe Markus Clarke:   
2474         
2475         * tools/dbus-send.c (main): 
2476         
2477         Don't use C99 style initializers (bug #3933).
2478         
2479 2005-08-01  Colin Walters  <walters@verbum.org>
2480
2481         Patch from Joe Markus Clarke:   
2482
2483         * glib/dbus-gvalue.c (dbus_g_value_types_init): 
2484         * glib/dbus-gvalue-utils.c (dbus_g_type_specialized_builtins_init) 
2485         * glib/dbus-gobject.c (write_interface):
2486
2487         Don't use C99 style initializers (bug #3933).
2488
2489 2005-07-31  Havoc Pennington  <hp@redhat.com>
2490
2491         * tools/dbus-viewer.c (load_child_nodes): fix invocation of
2492         dbus_g_proxy_call, fix from Piotr Zielinski bug #3920
2493
2494 2005-07-30  Havoc Pennington  <hp@redhat.com>
2495
2496         * fix a bunch of Doxygen warnings and mistakes
2497
2498 2005-07-30  Havoc Pennington  <hp@redhat.com>
2499
2500         * dbus/dbus-sysdeps.c (_dbus_string_parse_uint): remove #ifdef
2501         DBUS_BUILD_TESTS since it's now used in production code
2502
2503 2005-07-29  Havoc Pennington  <hp@redhat.com>
2504
2505         * test/glib/test-profile.c (write_junk): initialize the junk
2506         buffer so valgrind doesn't have a breakdown
2507
2508 2005-07-29  Havoc Pennington  <hp@redhat.com>
2509
2510         * bus/signals.c (bus_signals_test): add match_rule_equal() tests
2511         (match_rule_matches): remove unused arg
2512         (test_matching): add tests for match_rule_matches()
2513
2514         * bus/signals.c (bus_match_rule_parse_arg_match): add ability to
2515         do arg0='foo' arg5='bar' in the match rules
2516         (match_rule_matches): don't match if the arg0='foo' doesn't match.
2517
2518         * dbus/dbus-protocol.h (DBUS_MAXIMUM_MATCH_RULE_ARG_NUMBER): add this
2519
2520 2005-07-29  Ross Burton  <ross@openedhand.com>
2521
2522         * dbus/dbus-connection.c:
2523         Don't create a DBusCondVar which is never used.
2524
2525 2005-07-27  Ross Burton  <ross@openedhand.com>
2526
2527         * dbus/dbus-message.c:
2528         Reduce the size of the maximum cached message to 10K.
2529
2530 2005-07-25  Ross Burton  <ross@openedhand.com>
2531
2532         * glib/dbus-gproxy.c:
2533         Remove matches when all proxies are unregistered.
2534
2535 2005-07-24  Colin Walters  <walters@verbum.org>
2536
2537         * glib/dbus-gvalue.c (signature_iter_to_g_type_array): Don't require
2538         typedata; recursive arrays won't have it.
2539
2540         * test/glib/test-dbus-glib.c:
2541         * test/glib/test-service-glib.c:
2542         * test/glib/test-service-glib.xml: Add recursive arrays tests.
2543         
2544 2005-07-20  John (J5) Palmieir  <johnp@redhat.com>
2545
2546         * python/_dbus.py, _util.py, decorators.py, extract.py, matchrules.py.
2547         proxies.py, service.py: Cleanup of code after running it through the
2548         pyflakes code checker mostly dealing with undefined names.  
2549         (Bug #3828, Patch from Anthony Baxter <anthony@interlink.com.au>)
2550
2551 2005-07-17  John (J5) Palmieri  <johnp@redhat.com>
2552
2553         * NEWS: Update to 0.35.2
2554
2555 2005-07-17  John (J5) Palmieri  <johnp@redhat.com>
2556
2557         * python/_dbus.py: Remove import of the dbus.services
2558         module as it no longer exists (patch from Dimitur Kirov)
2559
2560         * python/service.py (Object::__init__): Fixed typo
2561         s/name/bus_name (patch from Dimitur Kirov)
2562
2563         * python/examples/example-signal-emitter.py: import dbus.glib
2564         to get the main loop and use glib mainloop instead of gtk so
2565         X doesn't have to be running.
2566
2567         * python/examples/example-signal-recipient.py: import dbus.glib
2568         to get the main loop and use glib mainloop instead of gtk so
2569         X doesn't have to be running. Import the decorators module
2570         directly.
2571
2572         * test/glib/Makefile.am:  Added DIST_EXTRA files that distcheck
2573         didn't pick up on but are needed to build
2574
2575         * configure.in: upped version to 0.35.2
2576
2577         * bus/driver.c, bus/selinux.c, bus/selinux.h, dbus/dbus-protocol.h:
2578         added Colin Walters' SELinux API rename patch from head 
2579         s/unix sercurity context/selinux security context/
2580
2581 2005-07-16  John (J5) Palmieri  <johnp@redhat.com>
2582
2583         * python/Makefile.am: dbus_binding.pxd.in should be included 
2584         in EXTRA_DIST not dbus_binding.pxd
2585         fix up $(srcdir) hopefully for the last time
2586
2587         * NEWS: Update to 0.35.1
2588
2589 2005-07-16  Colin Walters  <walters@verbum.org>
2590
2591         * bus/driver.c (bus_driver_handle_get_connection_selinux_security_context): Renamed
2592         from bus_driver_handle_get_connection_unix_security_context.  Update for
2593         error usage.
2594         (message_handlers): Update for renames.
2595
2596         * bus/selinux.c (bus_selinux_allows_send): Handle OOM on
2597         _dbus_string_init failure correctly.
2598         (bus_selinux_append_context): Convert SID to context.  Append it
2599         as a byte array.
2600         (bus_selinux_shutdown): Handle the case where bus_selinux_full_init
2601         hasn't been called.
2602
2603         * bus/selinux.h: Update prototype.
2604
2605         * dbus/dbus-protocol.h (DBUS_ERROR_SELINUX_SECURITY_CONTEXT_UNKNOWN): Renamed
2606         from DBUS_ERROR_UNIX_SECURITY_CONTEXT_UNKNOWN.
2607
2608 2005-07-15  Colin Walters  <walters@verbum.org>
2609
2610         * doc/TODO: Add note about convenience wrappers.
2611
2612 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
2613
2614         * NEWS: Update to 0.35
2615
2616 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
2617
2618         * glib/Makefile.am: Add make-dbus-glib-error-switch.sh to EXTRA_DIST
2619         so distcheck doesn't fail
2620
2621         * glib/examples/Makefile.am: Add example-service.xml and 
2622         example-signal-emitter.xml to EXTRA_DIST so distcheck doesn't fail
2623
2624         * glib/examples/statemachine/Makefile.am: Add statemachine.xml and
2625         statemachine-server.xml to EXTRA_DIST so distcheck doesn't fail
2626
2627         * python/Makefile.am: Preprend $(srcdir)/ to source files so the
2628         compiler looks in the right places during distcheck
2629
2630 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
2631
2632         * glib/example/Makefile.am: Fix a typo which cause make distcheck
2633         to fail
2634
2635 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
2636
2637         * python/examples/example-service.py,
2638         python/examples/example-signal-emitter.py: Fixed up examples
2639         for API changes
2640
2641 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
2642
2643         * python/__init__.py: Upped to version (0,42,0) because of
2644         the API change
2645
2646 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
2647
2648         * ChangeLog: fix date in last entry
2649
2650         * configure.in, bus/system.conf.in: add the ability to configure 
2651         the system bus user at compiletime with the --with-dbus-user flag
2652         (patch from Kristof Vansant)
2653
2654 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
2655
2656         * bus/dispatch.c, test/test-service.c: Add testcase
2657         for sending messages to oneself (TODO item).
2658
2659         * python/service.py (class Object): Swap ordering of bus_name 
2660         and object_path parameters to better support inheritance.
2661
2662         * doc/dbus-tutorial.xml: change Python docs to reflect change
2663         in parameter ordering and fix the inheritance section.
2664
2665         * doc/TODO: remove sending message to oneself TODO item
2666
2667 2005-07-15  Ross Burton  <ross@openedhand.com>
2668
2669         * glib/dbus-gproxy.c:
2670         Fix a leak when calling methods via the proxy.
2671
2672 2005-07-15  Colin Walters  <walters@verbum.org>
2673
2674         * bus/selinux.c (bus_selinux_append_context): Wrap in
2675         HAVE_SELINUX.
2676
2677 2005-07-14  John (J5) Palmieri  <johnp@redhat.com>
2678
2679         * python/_dbus.py (Bus::remove_signal_receiver):
2680         don't add a callback to the match if none has been passed in
2681         
2682         * python/matchrules.py (SignalMatchTree::remove): if the rule
2683         being matched does not have a callback treat it as a wildcard
2684         fix matching logic
2685
2686         * doc/dbus-tutorial.xml: Add Python tutorial
2687
2688 2005-07-14  Colin Walters  <walters@verbum.org>
2689
2690         * bus/driver.c
2691         (bus_driver_handle_get_connection_unix_security_context): New function.
2692         (message_handlers): Add.
2693
2694         * bus/selinux.c (bus_selinux_append_context): New function; appends
2695         security context to message.
2696
2697         * bus/selinux.h: Prototype.
2698
2699         * dbus/dbus-protocol.h (DBUS_ERROR_UNIX_SECURITY_CONTEXT_UNKNOWN): New.
2700
2701 2005-07-14  John (J5) Palmieri  <johnp@redhat.com>
2702
2703         * bus/activation.c: clean up all tabs to be 8 spaces 
2704         (bus_activation_activate_service): make sure we clean up
2705         if activation fails
2706
2707         * bus/dispatch.c: clean up all tabs to be 8 spaces 
2708         (check_shell_fail_service_auto_start): New function
2709         tests to make sure we get fail properly when trying to auto start a service
2710         with a faulty command line
2711         (check_shell_service_success_auto_start): New function tests to make sure
2712         auto started services get the arguments on the command line
2713
2714         * test/test-shell-service.c: Added service for testing auto-starting with 
2715         command line arguments
2716
2717         * test/data/valid-service-files/debug-shell-echo-fail.service.in, 
2718         test/data/valid-service-files/debug-shell-echo-success.service.in:
2719         Added service files for testing auto-starting with command line arguments
2720
2721         * */.cvsignore: added a bunch of generated files to various .cvsignore files
2722
2723 2005-07-14  Rodrigo Moya  <rodrigo@novell.com>
2724
2725         * dbus/dbus-shell.[ch]: copy/pasted code from GLib.
2726         
2727         * dbus/Makefile.am: added new files to build.
2728
2729         * bus/activation.c (bus_activation_activate_service): support
2730         activation commands with parameters.
2731
2732         * test/shell-test.c: added test program for the shell parsing
2733         code.
2734
2735 2005-07-13  David Zeuthen  <davidz@redhat.com>
2736
2737         * tools/dbus-send.c (append_arg, type_from_name): Also support 16 and
2738         64 bit signed and unsigned parameters
2739
2740 2005-07-13  John (J5) Palmieri  <johnp@redhat.com>
2741
2742         * python/.cvsignore: remove dbus_bindings.pyx, add dbus_bindings.pxd
2743
2744         * python/service.py (class Name): renamed BusName to make it clearer
2745         what the object is for (a name on the bus)
2746
2747         * python/examples/example-service.py,
2748         python/examples/example-signal-emitter.py: change the Name object to
2749         BusName
2750
2751 2005-07-12  Colin Walters  <walters@verbum.org>
2752
2753         Patch from Jim Gettys <Jim.Gettys@hp.com>.
2754
2755         * tools/dbus-launch.c: Include sys/select.h.
2756
2757 2005-07-12  John (J5) Palmieri  <johnp@redhat.com>
2758         * python/dbus_bindings.pyx.in: removed
2759
2760         * python/dbus_bindings.pyx: Added.
2761         - Fixed some memleaks (patch from 
2762         Sean Meiners <sean.meiners@linspireinc.com>)
2763         - Broke out the #include "dbus_h_wrapper.h" and put it in its
2764         own pxd file (Pyrex definition)
2765         - Broke out glib dependancies into its own pyx module
2766         
2767         * python/dbus_bindings.pdx: Added.
2768         - Defines C class Connection for exporting to other modules
2769
2770         * python/dbus_glib_bindings.pyx: Added.
2771         - New module to handle lowlevel dbus-glib mainloop integration
2772
2773         * python/glib.py: Added.
2774         - Registers the glib mainloop when you import this module
2775
2776         * python/services.py: Removed (renamed to service.py)
2777         
2778         * python/service.py: Added.
2779         - (class Server): renamed Name
2780
2781         * python/__init__.py: Bump ro version (0,41,0)
2782         -don't import the decorators or service module
2783         by default.  These now reside in the dbus.service namespace
2784
2785         * python/_dbus.py (Bus::__init__): Add code run the main loop 
2786         setup function on creation 
2787
2788         * python/examples/example-service.py,
2789         python/examples/example-signal-emitter.py: update examples
2790
2791         * python/examples/gconf-proxy-service.py,
2792         python/examples/gconf-proxy-service2.py: TODO fix these up
2793
2794         * doc/TODO: Addition
2795         - Added a Python Bindings 1.0 section
2796         - added "Add match on args or match on details to match rules"
2797
2798
2799 2005-07-12  Colin Walters  <walters@verbum.org>
2800
2801         * glib/examples/statemachine/Makefile.am (statemachine-server-glue.h) 
2802         (statemachine-glue.h): 
2803         * glib/examples/Makefile.am (example-service-glue.h) 
2804         (example-signal-emitter-glue.h): 
2805         * glib/Makefile.am (dbus-glib-error-switch.h): 
2806         Add libtool --mode=execute so we use the built library instead
2807         of any installed one.
2808
2809 2005-07-11  Colin Walters  <walters@verbum.org>
2810
2811         * glib/dbus-gvalue.c (struct _DBusGValue): Delete.
2812         (dbus_g_value_types_init): Remove assertion.
2813         (dbus_g_value_get_g_type, dbus_g_value_open)
2814         (dbus_g_value_iterator_get_values, dbus_g_value_get_signature)
2815         (dbus_g_value_copy, dbus_g_value_free): Delete unimplemented
2816         functions related to DBusGValue.  Now we marshal/demarshal
2817         structures as GValueArray.
2818         (dbus_gtype_from_signature_iter): Return G_TYPE_VALUE_ARRAY for
2819         structures.
2820         (signature_iter_to_g_type_array): Don't call
2821         signature_iter_to_g_type_struct.
2822         (signature_iter_to_g_type_struct): Delete.
2823         (dbus_gvalue_to_signature): Delete.
2824         (dbus_gvalue_to_signature): New function with same name as other
2825         one; we can convert structures to signatures.
2826         (demarshal_valuearray): New function.
2827         (get_type_demarshaller): Use it.
2828         (demarshal_recurse): Delete.
2829         (marshal_proxy): New function.
2830         (marshal_map): Warn if we can't determine signature from type.
2831         (marshal_collection_ptrarray): Ditto.
2832         (marshal_collection_array): Ditto.
2833         (get_type_marshaller): Use marshal_valuearray.
2834         (marshal_recurse): Delete.
2835         (_dbus_gvalue_test): Add some tests.
2836
2837         * dbus/dbus-glib.h (struct _DBusGValueIterator): 
2838         (dbus_g_value_get_g_type, DBUS_TYPE_G_VALUE)
2839         (dbus_g_value_open, dbus_g_value_iterator_get_value)
2840         (dbus_g_value_iterator_get_values, dbus_g_value_iterator_recurse)
2841         (dbus_g_value_free): Remove prototypes.
2842
2843         * glib/dbus-binding-tool-glib.c (dbus_g_type_get_lookup_function): Handle
2844         G_TYPE_VALUE_ARRAY.
2845
2846         * glib/examples/example-service.c:
2847         * glib/examples/example-client.c: Implement GetTuple.
2848
2849         * test/glib/test-dbus-glib.c:
2850         * test/glib/test-service-glib.c:
2851         * test/glib/test-service-glib.xml: Add structure tests.
2852
2853 2005-07-10  Colin Walters  <walters@verbum.org>
2854
2855         * doc/TODO: Knock off some GLib items with this patch.
2856
2857         * glib/dbus-gvalue-utils.c (_dbus_gtype_can_signal_error) 
2858         (_dbus_gvalue_signals_error): New functions.
2859
2860         * glib/dbus-gvalue-utils.h: Prototype them.
2861
2862         * glib/dbus-gobject.c (arg_iterate): Update to handle return vals
2863         and change to not output const/retval flags for input args.  All
2864         callers updated.
2865         (invoke_object_method): Refactor to handle return values.  Add
2866         some more comments in various places.  Remove debug g_print.
2867
2868         * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_RETURNVAL): New.
2869
2870         * glib/dbus-binding-tool-glib.c (dbus_g_type_get_marshal_name):
2871         Handle G_TYPE_NONE.
2872         (compute_gsignature): New function; refactored from code from
2873         compute_marshaller and compute_marshaller_name.  Enhance to
2874         handle return values and async ops more cleanly.  Update for
2875         async ops returning NONE instead of BOOLEAN.
2876         (compute_marshaller, compute_marshaller_name): Call compute_gsignature
2877         and output appropriate string.
2878         (generate_glue): Handle return value annotation.  Also don't dump
2879         constness flag for input arguments.
2880
2881         * glib/Makefile.am (DBUS_GLIB_INTERNALS): New variable; contains
2882         files shared between installed library and utilities.
2883         (libdbus_glib_1_la_SOURCES): Move some stuf into DBUS_GLIB_INTERNALS.
2884         (libdbus_gtool_la_SOURCES): Suck in DBUS_GLIB_INTERNALS so the
2885         binding tool can access gtype utility functions.
2886
2887         * test/glib/test-service-glib.c: 
2888         * test/glib/test-service-glib.xml: 
2889         * test/glib/test-dbus-glib.c: Add some tests for return values.
2890
2891 2005-07-09  Colin Walters  <walters@verbum.org>
2892
2893         * glib/dbus-gparser.c (parse_annotation): Add annotations to
2894         argument if available, not method.
2895
2896         * glib/dbus-gobject.c (arg_iterate): More verbose warnings.
2897         (invoke_object_method): First, remove some redundant
2898         GValues (object_value, error_value) in favor of working on
2899         array directly.  Second, rework constness to be less buggy.
2900         Now we iterate directly over the argument metadata instead
2901         of parallel iterating over output signature and metadata.
2902
2903         * glib/dbus-glib-tool.h: Add INVALID_ANNOTATION error.
2904
2905         * glib/dbus-binding-tool-glib.c (generate_glue): Barf on const
2906         annotation on input args.
2907         
2908 2005-07-09  Colin Walters  <walters@verbum.org>
2909
2910         * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_CONST):
2911         Define.
2912
2913         * glib/dbus-binding-tool-glib.c (generate_glue): Handle Const
2914         annotation.
2915
2916         * glib/dbus-gobject.c (arg_iterate): Update to parse constval too.
2917         (method_dir_signature_from_object_info): Handle arg_iterate change.
2918         (write_interface): Ditto.
2919         (lookup_object_info): Don't barf if format_version is > 0.
2920         (invoke_object_method): Handle arg constness.
2921
2922         * glib/dbus-gidl.c (struct ArgInfo): Add annotations.
2923         (arg_info_new): Create.
2924         (arg_info_unref): Destroy.
2925         (arg_info_get_annotations, arg_info_get_annotation) 
2926         (arg_info_add_annotation): New functions.
2927
2928         * glib/dbus-gidl.h: Prototype them.
2929
2930         * glib/dbus-gparser.c (parse_annotation): Allow annotations in
2931         args, disallow them in properties.
2932         (parse_annotation): Handle arg annotations.
2933
2934         * test/glib/test-service-glib.xml: 
2935         * test/glib/test-service-glib.c: Update to make some methods
2936         const.
2937
2938 2005-07-08  Colin Walters  <walters@verbum.org>
2939
2940         * test/glib/test-service-glib.xml: 
2941         * test/glib/test-service-glib.c:
2942         * test/glib/test-dbus-glib.c: Test a{sv}.
2943
2944         * glib/examples/statemachine/statemachine.c:
2945         * glib/examples/statemachine/statemachine-server.c:
2946         * glib/examples/statemachine/statemachine-client.c: Fix some bugs,
2947         add progress bar, etc.
2948
2949         * glib/dbus-gvalue.c (register_array, register_dict): Delete; not
2950         needed anymore due to generic array/map marshalling.
2951         (dbus_g_value_types_init): Don't register basic arrays or the
2952         string/string hash.
2953         (dbus_gtype_from_signature_iter): Don't try to recurse into
2954         variants.
2955         (dbus_gtype_to_signature): Check collection/map before type
2956         metadata.
2957         (demarshal_garray_basic): Renamed to demarshal_collection_array.
2958         (demarshal_ghashtable): Renamed to demarshal_map; fix to use new
2959         generic map creation/append functions instead of hash table
2960         specifically.
2961         (get_type_demarshaller): Handle maps.
2962         (demarshal_collection): Dispatch on collection type to either
2963         demarshal_collection_ptrarray or demarshal_collection_array.
2964         (get_type_marshaller): Handle maps.
2965         (marshal_collection): Dispatch collection type to either
2966         marshal_collection_ptrarray or marshal_collection_array.
2967         (_dbus_gvalue_test): New test.
2968
2969         * glib/dbus-gvalue-utils.c (unset_and_free_g_value): New function.
2970         (hash_free_from_gtype): Use it to free GValues.
2971         (hashtable_append): New function.
2972         (ptrarray_append): Fix prototype.
2973         (slist_append): Ditto.
2974         (_dbus_gvalue_utils_test): Extend tests.
2975
2976         * glib/dbus-gtype-specialized.c
2977         (dbus_g_type_specialized_init_append): Renamed from
2978         dbus_g_type_specialized_collection_init_append.  Remove const from
2979         value, since we steal it.
2980         (dbus_g_type_specialized_map_append): New function.
2981
2982         * glib/dbus-gtype-specialized.h: Update prototypes.
2983         Add DBusGTypeSpecializedMapAppendFunc.
2984
2985         * glib/dbus-gtest.c (dbus_glib_internal_do_not_use_run_tests): Run
2986         _dbus_gvalue_test.
2987         
2988         * glib/dbus-gtest.h: Prototype it.
2989
2990 2005-07-08  Ross Burton  <ross@openedhand.com>
2991
2992         * dbus/dbus-glib.h:
2993         Add DBysGAsyncData for the async bindings.
2994
2995         * glib/dbus-binding-tool-glib.c:
2996         Re-enable the async bindings.
2997
2998         * test/glib/test-dbus-glib.c:
2999         Add a test for the generated async bindings.
3000
3001 2005-07-08  Colin Walters  <walters@verbum.org>
3002
3003         * doc/TODO: Update GLib todo bits, also add a post-1.0 TODO for a
3004         connection concept.
3005         
3006 2005-07-08  Colin Walters  <walters@verbum.org>
3007         
3008         * tools/Makefile.am: Kill of print-introspect in favor of using
3009         dbus-send --print-reply=literal.
3010
3011         * test/glib/test-service-glib.xml: 
3012         * test/glib/test-service-glib.c (my_object_get_objs): New test
3013         for "ao".
3014
3015         * test/glib/test-dbus-glib.c (echo_received_cb): Free echo data.
3016         (main): Test GetObjs.
3017
3018         * glib/examples/statemachine/Makefile.am:
3019         * glib/examples/statemachine/sm-marshal.list:
3020         * glib/examples/statemachine/statemachine-client.c:
3021         * glib/examples/statemachine/statemachine-server.c:
3022         * glib/examples/statemachine/statemachine-server.xml:
3023         * glib/examples/statemachine/statemachine.c:
3024         * glib/examples/statemachine/statemachine.h:
3025         * glib/examples/statemachine/statemachine.xml:
3026
3027         New example.
3028
3029         * glib/examples/example-service.c (main): Move invocation
3030         of dbus_g_object_type_install_info earlier, to emphasize it
3031         should only be done once.
3032
3033         * glib/examples/example-signal-emitter.c (main): Ditto.
3034
3035         * glib/examples/Makefile.am (SUBDIRS): Include statemachine.
3036
3037         * glib/dbus-gvalue.h (dbus_gtype_to_signature)
3038         (dbus_gvalue_marshal): Update prototypes.
3039
3040         * glib/dbus-gvalue.c: Update all marshalling functions to take
3041         const GValue instead of GValue.
3042         (signature_iter_to_g_type_array): Return a GPtrArray for nonfixed
3043         types.
3044         (dbus_gvalue_to_signature): Update for dbus_gtype_to_signature
3045         change.
3046         (dbus_gtype_to_signature): Handle generic collecitons and maps.
3047         Return a newly-allocated string.
3048         (demarshal_proxy, demarshal_object_path, demarshal_object)
3049         (demarshal_strv, demarshal_ghashtable): Set error, don't assert if
3050         we get the wrong types from message.
3051         (get_type_demarshaller): New function, extracted from
3052         dbus_gvalue_demarshal.
3053         (demarshal_collection): New function, demarshals generic
3054         collection.
3055         (dbus_gvalue_demarshal): Just invoke result of
3056         get_type_demarshaller.  Throw error if we don't have one.
3057         (marshal_garray_basic): Abort on OOM.
3058         (get_type_marshaller): New function, extracted from
3059         dbus_gvalue_marshal.
3060         (collection_marshal_iterator, marshal_collection): New functions;
3061         implements generic marshalling for an iteratable specialized
3062         collection.
3063         (dbus_gvalue_marshal): Just invoke result of get_type_marshaller.
3064
3065         * glib/dbus-gvalue-utils.c (gvalue_from_ptrarray_value): Handle
3066         G_TYPE_STRING.
3067         (ptrarray_value_from_gvalue): Ditto.
3068         (ptrarray_append, ptrarray_free): New functions.
3069         (slist_constructor, slist_iterator, slist_copy_elt, slist_copy) 
3070         (slist_append, slist_end_append, slist_free): New functions.
3071         (dbus_g_type_specialized_builtins_init): Add append fuctions
3072         for GPtrArray and GSList.  Register GSList.
3073         (test_specialized_hash, _dbus_gvalue_utils_test): New functions.
3074
3075         * glib/dbus-gtype-specialized.h (DBusGTypeSpecializedAppendContext):
3076         New.
3077         (dbus_g_type_specialized_collection_init_append)
3078         (dbus_g_type_specialized_collection_append)
3079         (dbus_g_type_specialized_collection_end_append): Prototype.
3080         (DBusGTypeSpecializedCollectionVtable): Add append_func and
3081         end_append_func.
3082
3083         * glib/dbus-gtype-specialized.c (dbus_g_type_specialized_collection_init_append) 
3084         (dbus_g_type_specialized_collection_append) 
3085         (dbus_g_type_specialized_collection_end_append): New functions.
3086         (dbus_g_type_map_value_iterate): Take const GValue.
3087         (dbus_g_type_collection_value_iterate): Ditto.
3088
3089         * glib/dbus-gtest.c (dbus_glib_internal_do_not_use_run_tests): Run
3090         _dbus_gvalue_utils_test.
3091         
3092         * glib/dbus-gtest.h: Prototype it.
3093
3094         * glib/dbus-gproxy.c (dbus_g_proxy_manager_filter): Avoid
3095         using uninitialized owner_list.
3096         (dbus_g_proxy_begin_call_internal): Move return_if_fail to
3097         public API.
3098         (dbus_g_proxy_end_call_internal): Update to use error set
3099         from dbus_gvalue_demarshal instead of setting it here.
3100         (dbus_g_proxy_begin_call): Move return_if_fail here.
3101
3102         * glib/dbus-gobject.c (write_interface): Update for
3103         dbus_gtype_to_signature returning new string.
3104
3105         * configure.in: Add glib/examples/statemachine.
3106
3107 2005-07-08  Joe Shaw  <joeshaw@novell.com>
3108
3109         * configure.in: Add a configure option, --with-console-auth-dir
3110         
3111         * dbus/dbus-sysdeps-util.c (_dbus_user_at_console): Use the
3112         new setting.  Patch from Kay Sievers.
3113
3114 2005-07-06  Colin Walters  <walters@verbum.org>
3115
3116         * dbus/dbus-glib.h (DBusGPendingCall, DBusGPendingCallNotify)
3117         (DBUS_TYPE_G_PENDING_CALL, dbus_g_pending_call_get_g_type)
3118         (dbus_g_pending_call_ref, dbus_g_pending_call_unref): Delete.
3119         (dbus_g_pending_call_set_notify, dbus_g_pending_call_cancel):
3120         Delete in favor of dbus_g_proxy_begin_call and
3121         dbus_g_proxy_cancel_call.
3122         (DBusGProxyCall, DBusGProxyCallNotify): New.
3123         (dbus_g_proxy_begin_call): Change prototype to take callback, user
3124         data, and destroy function.  This replaces
3125         dbus_g_pending_call_set_notify.
3126         (dbus_g_proxy_cancel_call): Prototype.
3127         (DBusGAsyncData): Delete, shouldn't be needed anymore.
3128
3129         * glib/dbus-gproxy.c (struct _DBusGProxy): Add call_id_counter and
3130         pending_calls map.
3131         (struct _DBusGProxyManager): Add bus_proxy member, which is an
3132         internal proxy for calls to the bus. Remove
3133         pending_nameowner_calls, now the internal proxy keeps track.
3134         (dbus_g_proxy_manager_unref): Unref bus proxy, remove reference to
3135         pending_nameowner_calls.
3136         (got_name_owner_cb): Update prototype, and use
3137         dbus_g_proxy_end_call.
3138         (got_name_owner_cb): Remove reference to pending_nameowner_calls.
3139         (dbus_g_proxy_manager_register): Delete directly libdbus code in
3140         favor of using internal proxy.
3141         (dbus_g_proxy_manager_unregister): Update to use
3142         dbus_g_proxy_cancel_call for any pending GetNameOwner call.
3143         (dbus_g_proxy_init): Initialize pending calls map.
3144         (dbus_g_proxy_constructor): New.
3145         (dbus_g_proxy_class_init): Add get/set property functions,
3146         constructor, and add NAME, PATH, and INTERFACE properties.
3147         (cancel_pending_call): New function.
3148         (dbus_g_proxy_dispose): Iterate over any outstanding calls and
3149         cancel them.
3150         (dbus_g_proxy_set_property, dbus_g_proxy_get_property): New.
3151         (GPendingNotifyClosure): New structure.
3152         (d_pending_call_notify, d_pending_call_free): Moved here from
3153         dbus-glib.c.
3154         (DBUS_G_VALUE_ARRAY_COLLECT_ALL): Moved around to satisfy function
3155         ordering.
3156         (manager_begin_bus_call): New internal function for talking to
3157         internal bus proxy.
3158         (dbus_g_proxy_new): Construct object using GObjet properties.
3159         (dbus_g_proxy_begin_call_internal): Update to take user data, etc.
3160         Create closure of same, and insert call into map of pending calls.
3161         (dbus_g_proxy_end_call_internal): Take call id instead of pending
3162         call.  Look up pending call in current set.  Remove it when we've
3163         completed.
3164         (dbus_g_pending_call_end, dbus_g_proxy_end_call_internal): Delete.
3165         (dbus_g_proxy_begin_call): Change API to take callback, user data,
3166         and destroy function directly.
3167         (dbus_g_proxy_end_call): Update to take DBusGProxyCall.
3168         (dbus_g_proxy_call): Invoke with NULL callback.
3169         (dbus_g_proxy_cancel_call): New function, replaces
3170         dbus_g_pending_call_cancel.
3171
3172         * glib/dbus-gparser.c (validate_signature): Fix call to
3173         dbus_set_g_error.
3174
3175         * glib/dbus-gobject.c (dbus_g_object_type_dbus_metadata_quark):
3176         New quark for attaching metadata to GType.
3177         (info_hash): Delete.
3178         (lookup_object_info): Look up using quark.
3179         (dbus_g_object_type_install_info): Check that a type is classed,
3180         not that it's an object.  Also just install type data using quark
3181         instead of using global hash.
3182
3183         * glib/dbus-glib.c (dbus_g_pending_call_ref) 
3184         (dbus_g_pending_call_unref, dbus_pending_call_get_g_type)
3185         (GPendingNotifyClosure): Delete.
3186         (d_pending_call_notify, d_pending_call_free): Move to dbus-gproxy.c.
3187         (dbus_g_pending_call_set_notify, dbus_g_pending_call_cancel): Delete.
3188
3189         * glib/dbus-binding-tool-glib.c (generate_client_glue): Disable async
3190         client method generation until we can fix it...
3191         
3192         * tools/dbus-viewer.c (load_child_nodes): Use dbus_g_proxy_call.
3193         (load_from_service_thread_func): Ditto.
3194
3195         * tools/dbus-names-model.c (struct NamesModel): Hold
3196         DBusGProxyCall.
3197         (have_names_notify): Update prototype, use
3198         dbus_g_proxy_cancel_call.
3199         (names_model_reload): Update for new dbus_g_proxy_begin_call API.
3200
3201         * tools/dbus-monitor.c (filter_func): Update for print_message
3202         API change.
3203
3204         * test/glib/test-dbus-glib.c: Add more tests for async
3205         invocations.  Update many begin_call/end_call pairs to just use
3206         dbus_g_proxy_call.
3207
3208         * tools/dbus-send.c (main): Add --print-reply=literal mode.  This
3209         allows us to dump print-introspect.c.
3210
3211         * tools/dbus-print-message.h (print_message): Add literal argument
3212         to print_message which is intended to allow printing arguments without
3213         metadata like "string=".
3214
3215         * tools/dbus-print-message.c (print_iter): Add literal argument.
3216         (print_message): Allow printing string messages literally.
3217
3218 2005-07-05  Colin Walters  <walters@verbum.org>
3219
3220         * glib/dbus-gproxy.c (marshal_dbus_message_to_g_marshaller):
3221         Remove value refcount leak, original patch from Jorn Baayen
3222         <jorn@openedhand.com>.  Also remove useless extra value in favor
3223         of prepending to value array directly.
3224
3225 2005-07-02  Colin Walters  <walters@verbum.org>
3226
3227         * glib/dbus-gmain.c (_dbus_gmain_test): Fix test.
3228
3229 2005-07-01  Colin Walters  <walters@verbum.org>
3230
3231         Patch from Jonathan Matthew <jonathan@kaolin.hn.org>
3232         
3233         * glib/dbus-gvalue.c (basic_typecode_to_gtype): Fix return type.
3234         (dbus_g_value_types_init): Marshal G_TYPE_CHAR as DBUS_TYPE_BYTE,
3235         G_TYPE_LONG as DBUS_TYPE_INT32, G_TYPE_ULONG as DBUS_TYPE_UINT32,
3236         and G_TYPE_FLOAT as DBUS_TYPE_DOUBLE.
3237
3238 2005-06-30  Colin Walters  <walters@verbum.org>
3239
3240         * test/glib/test-dbus-glib.c:
3241         * test/glib/test-service-glib.c:
3242         * test/glib/test-service-glib.xml: Update tests for new error
3243         setting bits, also add async tests (patch from Ross Burton).
3244
3245         * test/glib/Makefile.am (test_service_glib_LDADD): Add
3246         DBUS_GLIB_THREADS_LIBS.
3247
3248         * glib/dbus-gproxy.c (get_name_owner)
3249         (dbus_g_pending_call_end_valist): Ditto.
3250
3251         * glib/dbus-gobject.c (error_metadata): New mapping from GError
3252         domain (GQuark) to DBusGErrorInfo.  
3253         (gerror_domaincode_to_dbus_error_name): Attempt to look up error
3254         quark in error_metadata.  Take message interface as default
3255         error message interface.
3256         (gerror_to_dbus_error_message): Pass message interface.
3257         (dbus_set_g_error): Resurrected.
3258         (dbus_g_error_info_free): New function.
3259         (dbus_g_object_type_install_info): Use g_type_class_ref instead
3260         of _peek to actually create the object class if it hasn't been
3261         created yet.
3262         (dbus_g_error_domain_register): New function.
3263
3264         * glib/dbus-gmain.c (dbus_g_bus_get): Switch to dbus_set_g_error.
3265
3266         * glib/dbus-gparser.c (validate_signature): Ditto.
3267
3268         * dbus/dbus-glib.h (dbus_g_error_set): Delete.
3269         (dbus_g_error_domain_register): Prototype.
3270
3271         * glib/dbus-glib.c (dbus_g_error_set): Delete.
3272         Update tests.
3273
3274 2005-06-29  Colin Walters  <walters@verbum.org>
3275
3276         * dbus/dbus-glib.h: Delete DBUS_TYPE_G_PROXY_ARRAY.  Add
3277         DBUS_TYPE_G_OBJECT_PATH.
3278
3279         * glib/dbus-gvalue.c (dbus_g_value_types_init): Remove marshallers
3280         for G_TYPE_OBJECT and DBUS_TYPE_G_PROXY_ARRAY (the latter should
3281         be handled more generically).  Add DBUS_TYPE_G_OBJECT_PATH.
3282         (dbus_g_object_path_get_g_type): New function.
3283         (dbus_gtype_from_signature_iter): Map DBUS_TYPE_OBJECT_PATH
3284         to DBUS_TYPE_G_OBJECT_PATH by default.
3285         (demarshal_proxy): Remove unused name variable.
3286         (demarshal_object_path, marshal_object_path): New functions.
3287         (demarshal_proxy_array, marshal_proxy_array): Delete.
3288         
3289         * glib/dbus-binding-tool-glib.c (dbus_g_type_get_c_name): Map
3290         DBUS_TYPE_G_OBJECT_PATH to char *.
3291         (dbus_g_type_get_lookup_function): Map builtin
3292         DBUS_TYPE_G_OBJECT_PATH.
3293
3294         * test/glib/test-dbus-glib.c
3295         * test/glib/test-service-glib.c (my_object_objpath): 
3296         Adapt tests to new object path marshalling.
3297
3298 2005-06-29  John (J5) Palmieri  <johnp@redhat.com>
3299
3300         * configure.in: force check for Python >= 2.4
3301
3302 2005-06-29  Colin Walters  <walters@verbum.org>
3303         
3304         Patch from Ross Burton <ross@openedhand.com>
3305         
3306         * glib/dbus-gobject.c (invoke_object_method): Unset object
3307         value in all cases, not only in async case.
3308
3309 2005-06-29  Colin Walters  <walters@verbum.org>
3310
3311         * glib/dbus-gproxy.c (struct _DBusGProxy): Add new member
3312         name_call for keeping track of any outgoing GetNameOwner call.
3313         Also add for_owner and associated.
3314         (struct _DBusGProxyManager): Add owner_names, which is hash table
3315         that maps a base name to a list of names it owns (that we're
3316         interested in).  Add pending_nameowner_calls which is a list of
3317         all outstanding GetNameOwner; avoids us having to iterate over
3318         every proxy.  Add unassociated_proxies which keeps track of name
3319         proxies with no associated name owner.
3320         (dbus_g_proxy_manager_unref): Destroy owner_names.
3321         (struct DBusGProxyNameOwnerInfo): New struct for keeping track of
3322         name refcounts.
3323         (find_name_in_info, name_owner_foreach)
3324         (dbus_g_proxy_manager_lookup_name_owner, insert_nameinfo)
3325         (dbus_g_proxy_manager_monitor_name_owner)
3326         (dbus_g_proxy_manager_unmonitor_name_owner)
3327         (unassociate_proxies, dbus_g_proxy_manager_replace_name_owner):
3328         New functions; they manipulate the owner_names mapping.
3329         (got_name_owner_cb): New function.
3330         (get_name_owner): New function, extracted from
3331         dbus_g_proxy_new_for_name_owner.
3332         (dbus_g_proxy_manager_register): For now we need to keep track of
3333         all NameOwnerChanged.  Also if the proxy is for a name, if we
3334         don't already know the name owner, queue a new GetNameOwner
3335         request and add it to our list of unassociated proxies.  Otherwise
3336         inc the refcount.
3337         (dbus_g_proxy_manager_unregister): If this proxy is for a name,
3338         cancel any pending GetNameOwner call, etc.
3339         (dbus_g_proxy_manager_filter): Handle NameOwnerChanged.  Also use
3340         the owner_names mapping to look up the current names for the
3341         signal source, and dispatch to any proxies for that name.
3342         (dbus_g_proxy_new): Initialize new members.
3343         (dbus_g_proxy_new_for_name): Delete unused proxy variable.
3344         (dbus_g_proxy_new_for_name_owner): Use get_name_owner.
3345         (dbus_g_pending_call_end_valist): New function, extracted from
3346         dbus_g_proxy_end_call_internal.  Useful when we don't have a proxy
3347         but want to use the GLib infrastructure.  Also note how many
3348         arguments in reply were over.
3349         (dbus_g_pending_call_end): New function, just call
3350         dbus_g_pending_call_end_valist.
3351         (dbus_g_proxy_end_call_internal): Just call
3352         dbus_g_pending_call_end_valist.
3353
3354         * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller): Fix lookup
3355         of builtin marshaller for STRING_STRING_STRING.
3356
3357         * test/glib/test-dbus-glib.c: 
3358         * test/glib/test-service-glib.c:
3359         * test/glib/test-service-glib.xml:
3360         Extend tests to cover name proxies, destruction of owner proxies,
3361         etc.
3362         
3363         * glib/examples/example-signal-recipient.c
3364         (dbus_g_proxy_new_for_name_owner): Create a name proxy.
3365         
3366         * tools/dbus-send.c (main): Print D-BUS error name in addition
3367         to message.
3368
3369 2005-06-28  John (J5) Palmieri  <johnp@redhat.com>
3370
3371         * python/dbus_bindings.pyx.in (cunregister_function_handler,
3372         cmessage_function_handler): Patch from 
3373         Anthony Baxter <anthony@interlink.com.au> fixes threading problems
3374         by using the Py_GILState_Ensure/Release to synchronize with the
3375         python runtime.
3376         
3377 2005-06-28  Ray Strode  <rstrode@redhat.com>
3378
3379         *  dbus/dbus-spawn.c (_dbus_babysitter_unref): kill
3380         babysitter helper process on last unref, bug #2813.
3381
3382 2005-06-27  Colin Walters  <walters@verbum.org>
3383
3384         * test/glib/test-dbus-glib.c: 
3385         * test/glib/test-service-glib.c:
3386         * test/glib/test-service-glib.xml:
3387         Test hash table signal emitting.
3388
3389         * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller): Convert
3390         types to their fundamental basis types, since this is what
3391         marshallers operate on.  Also add an entry for VOID__BOXED.
3392         (dbus_g_object_register_marshaller_array): Convert to fundamental.
3393
3394 2005-06-26  Havoc Pennington  <hp@redhat.com>
3395
3396         * doc/dbus-tutorial.xml: fix names of interface/service/path, fix
3397         from Don Park
3398
3399 2005-06-26  Colin Walters  <walters@verbum.org>
3400
3401         * glib/dbus-glib.c (dbus_set_g_error): Delete.
3402         (dbus_g_error_set): New public function from its ashes; used by
3403         both service-side method implementation and GLib bindings
3404         internals.
3405         (dbus_g_error_has_name, dbus_g_error_get_name): New function.
3406         (_dbus_glib_test): Add some tests.
3407
3408         * test/glib/test-dbus-glib.c (main): Test dbus_g_error_has_name.
3409
3410         * test/glib/test-service-glib.c (my_object_throw_error): Use
3411         dbus_g_error_set.
3412
3413         * glib/dbus-gobject.c (gerror_to_dbus_error_message): Handle
3414         errors thrown by dbus_g_error_set.
3415
3416         * glib/dbus-gmain.c (dbus_g_bus_get): Change to dbus_g_error_set.
3417
3418         * glib/dbus-gparser.c (validate_signature): Ditto.
3419
3420         * glib/dbus-gproxy.c (dbus_g_proxy_new_for_name_owner) 
3421         (dbus_g_proxy_end_call_internal): Ditto.
3422
3423         * glib/Makefile.am: Generate dbus-glib-error-switch.h, which
3424         converts DBUS_ERROR_x to DBUS_GERROR_x.
3425         (libdbus_glib_1_la_SOURCES, BUILT_SOURCES, CLEANFILES): Add it.
3426
3427         * doc/TODO: Remove error TODO.
3428
3429         * doc/dbus-tutorial.xml: Update with documentation about error
3430         handling.
3431
3432         * dbus/make-dbus-glib-error-enum.sh: Tighten up regexp to make
3433         sure we only change DBUS_ERROR to DBUS_GERROR, not all ERROR to
3434         GERROR.  Also add DBUS_GERROR_REMOTE_EXCEPTION.
3435
3436 2005-06-22  Colin Walters  <walters@verbum.org>
3437         
3438         Patch from Ross Burton <ross@openedhand.com>
3439
3440         * glib/dbus-gobject.c (dbus_g_method_return): Free out_sig.
3441
3442 2005-06-20  Colin Walters  <walters@verbum.org>
3443
3444         * configure.in: Add glib/examples.
3445
3446         * glib/Makefile.am: Add examples/
3447
3448         * glib/examples/.cvsignore
3449         * glib/examples/Makefile.am
3450         * glib/examples/example-client.c
3451         * glib/examples/example-service.c
3452         * glib/examples/example-service.xml
3453         * glib/examples/example-signal-emitter.c
3454         * glib/examples/example-signal-emitter.xml
3455         * glib/examples/example-signal-recipient.c:
3456         New files; GLib binding examples, ported from
3457         python/examples.
3458
3459 2005-06-20  Colin Walters  <walters@verbum.org>
3460
3461         * dbus/dbus-glib.h: 
3462         * glib/dbus-gproxy.c: Rename dbus_g_proxy_invoke to
3463         dbus_g_proxy_call.
3464
3465         * glib/dbus-binding-tool-glib.c: 
3466         * doc/dbus-tutorial.xml: 
3467         * test/glib/test-dbus-glib.c: Update for rename.
3468         
3469 2005-06-20  Colin Walters  <walters@verbum.org>
3470
3471         Patch suggested by Ross Burton <ross@openedhand.com>
3472
3473         * glib/dbus-gobject.c (export_signals): Free signal name.
3474         (g_value_init): Use G_VALUE_NOCOPY_CONTENTS to plug
3475         memory leak.  Add a bit of documentation.
3476         (dbus_g_method_return_error): Free context, and note we do
3477         so.
3478
3479 2005-06-18  Murray Cumming  <murrayc@murrayc.com>
3480
3481         * dbus/dbus-glib.h:
3482         * glib/dbus-gobject.c:
3483         * glib/dbus-gproxy.c:
3484         * glib/dbus-gvalue.c: Predeclare structs as 
3485         typedef struct _Something Something instead of 
3486         typedef struct Something Something, so we can 
3487         redeclare the prototypes. Other GNOME libraries 
3488         do this already.
3489
3490 2005-06-17  Colin Walters  <walters@verbum.org>
3491
3492         * tools/dbus-names-model.c (have_names_notify): Fix call
3493         to dbus_g_proxy_end_call.
3494         
3495 2005-06-17  Colin Walters  <walters@verbum.org>
3496
3497         * glib/dbus-gproxy.c (dbus_g_proxy_emit_remote_signal): Don't
3498         spew warnings if we get malformed remote signals.
3499
3500         * glib/dbus-gobject.c (propsig_iterate): New function.
3501         (lookup_object_info): New function, extracted from
3502         lookup_object_and_method.
3503         (introspect_properties, introspect_signals): Delete; these
3504         are merged into write_interface.
3505         (write_interface): Write out signals and properties here;
3506         dump the org.gtk.object stuff and use the interface given
3507         in the introspection data blob.  Also fix up property XML.
3508         (lookup_values): New function.
3509         (introspect_interfaces): Gather a mapping from interface to a
3510         list of its methods, signals, and properties, then write out
3511         each interface.
3512         (lookup_object_and_method): Use lookup_object_info.
3513         (struct DBusGSignalClosure): Add interface.
3514         (dbus_g_signal_closure_new): Add interface. Don't dup signame;
3515         we can just use the constant data.
3516         (dbus_g_signal_closure_finalize): Don't free signal name.
3517         (signal_emitter_marshaller): Use interface from signal closure.
3518         (export_signals): Only export signals mentioned in introspection
3519         blob.
3520         (dbus_g_connection_register_g_object): Warn if we have no
3521         introspection data for an object.
3522         (funcsig_equal): Remove unused variable.
3523         (dbus_g_object_register_marshaller): Take varargs instead of
3524         list.
3525         (dbus_g_object_register_marshaller_array): New function,
3526         extracted from old dbus_g_object_register_marshaller.
3527
3528         * glib/dbus-binding-tool-glib.c (struct DBusBindingToolCData): Add
3529         signals and property data.
3530         (write_quoted_string): New function, extracted from generate_glue.
3531         (generate_glue): Write signals and properties to introspection
3532         blob.
3533
3534         * dbus/dbus-glib.h (struct DBusGObjectInfo): Include
3535         exported_signals and exported_properties.
3536         (dbus_g_object_register_marshaller): Update prototype.
3537         (dbus_g_object_register_marshaller_array): Prototype.
3538         
3539         * test/glib/test-dbus-glib.c: Extend testing to cover new signals.
3540
3541         * test/glib/test-service-glib.c: Add new test signals and method
3542         to emit them.
3543
3544         * test/glib/test-service-glib.xml: Add some test signals.
3545
3546         * test/glib/Makefile.am (BUILT_SOURCES): Add my-object-marshal.c
3547         and my-object-marshal.h
3548         (test_service_glib_SOURCES, test_dbus_glib_SOURCES): Add
3549         my-object-marshal.c.
3550         (my-object-marshal.c, my-object-marshal.h): Implement.
3551
3552         * test/glib/.cvsignore: Update.
3553
3554         * doc/TODO: Remove two GLib TODO items fixed by this
3555         patch.
3556
3557 2005-06-16  Colin Walters  <walters@verbum.org>
3558
3559         * doc/TODO: Update for GLib bindings.
3560         
3561 2005-06-16  Colin Walters  <walters@verbum.org>
3562
3563         * glib/dbus-binding-tool-glib.c:
3564         * glib/dbus-gobject.c:
3565         * glib/dbus-gproxy.c:  Add Nokia copyright; Patch
3566         from Ross Burton, for his GLib bindings work.
3567
3568 2005-06-16  Colin Walters  <walters@verbum.org>
3569
3570         * glib/dbus-gobject.c (funcsig_hash, funcsig_equal): Use n_params
3571         to iterate instead of walking to G_TYPE_INVALID.
3572
3573         Patch based on a patch from Ryan Gammon.
3574
3575 2005-06-16  Colin Walters  <walters@verbum.org>
3576
3577         * bus/bus.c (bus_context_new): Set parser to NULL
3578         after we unref it (Patch from Chris Boscolo, #2174).
3579         
3580 2005-06-16  Colin Walters  <walters@verbum.org>
3581
3582         * python/dbus_bindings.pyx.in: Import size_t,
3583         __int64_t, __uint64_t, and __signed.
3584
3585         * dbus/dbus-sysdeps.c <HAVE_CMSGCRED> (write_credentials_byte):
3586         Define cmsg struct, output it.
3587         (_dbus_read_credentials_unix_socket):
3588         Use cmsg struct.
3589         
3590         Patch from Joe Markus Clarke for FreeBSD support.
3591         
3592 2005-06-16  Colin Walters  <walters@verbum.org>
3593
3594         * tools/dbus-send.c (append_array): Use strtok.
3595         (append_dict): New function.
3596         (type_from_name): New function, extracted from main.
3597         (main): Handle sending dicts.
3598
3599         * tools/dbus-print-message.c (print_iter): Print dict
3600         entries.
3601         
3602 2005-06-16  Colin Walters  <walters@verbum.org>
3603
3604         * glib/dbus-gvalue.c (marshal_basic): Marshal NULL string
3605         values as the empty string (#2948).
3606         
3607 2005-06-16  Colin Walters  <walters@verbum.org>
3608
3609         * dbus/Makefile.am:
3610         * mono/doc/Makefile.am:
3611         * test/glib/Makefile.am:
3612
3613         Fix srcdir != builddir issues (Patch from Chris Wilson, #3477)
3614
3615 2005-06-16  Colin Walters  <walters@verbum.org>
3616
3617         * dbus/dbus-marshal-header.c (_dbus_header_load): Set
3618         header byte order from expected byte order (Patch from Chris Wilson, #3475).
3619
3620         * dbus/dbus-marshal-byteswap.c (byteswap_body_helper): 
3621         Increment pointer after swapping fixed array.  Add assertion
3622         for array length.
3623                 
3624 2005-06-15  Colin Walters  <walters@verbum.org>
3625
3626         * dbus/dbus-sysdeps.c <HAVE_CMSGCRED> (_dbus_read_credentials_unix_socket):
3627         Fix call to dbus_set_error.  (Patch from Michael Banck, #3461)
3628         
3629 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
3630
3631         * NEWS: Update to 0.34
3632
3633 2005-06-15  David Zeuthen  <davidz@redhat.com>
3634
3635         * configure.in (LT_CURRENT): Revert back to 1 as the library
3636         hasn't changed and we've certainly not committed to protocol
3637         stability yet.  All this does is to break ABI. See commit note
3638         from hp@redhat.com 2005-05-05 for details.
3639         
3640 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
3641
3642         * dbus/dbus-connection.c (_dbus_connection_peer_filter): New method 
3643         (_dbus_connection_run_builtin_filters): New method
3644         (dbus_connection_dispatch): Run the builtin filters which in turn
3645         runs the peer filter which handles Ping messages.
3646
3647         * doc/TODO: 
3648          - Ping isn't handled: This patch fixes it
3649          
3650          - Add a test case for the Ping message: added TODO item
3651
3652 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
3653
3654         * dbus/dbus-message.c:
3655         (dbus_message_has_path): New method
3656         (dbus_message_has_interface): New method
3657         (dbus_message_has_member): New method
3658
3659         * dbus/dbus/dbus-sysdeps.c (_dbus_check_dir_is_private_to_user):
3660         New method
3661
3662         * dbus/dbus-keyring.c (_dbus_keyring_reload): Check to see that 
3663         the keyring directory is private to the user
3664
3665         * doc/TODO:
3666          - The convenience functions in dbus-bus.h should perhaps have
3667          the signatures that they would have if they were autogenerated
3668          stubs. e.g. the acquire service function. We should also evaluate
3669          which of these functions to include, in light of the fact that
3670          GLib/Qt native stubs will probably also exist.: Punted
3671
3672          - add dbus_message_has_path(), maybe has_member/interface:
3673          fixed in this patch
3674
3675          - in dbus-keyring.c, enforce that the keyring dir is not
3676          world readable/writable: Fixed in this patch
3677
3678 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
3679
3680         * dbus/dbus-marshal-validate.h: Added a new validation
3681         error code DBUS_VALIDITY_UNKNOWN_OOM_ERROR = -4 for 
3682         out of memory errors when validating signitures
3683
3684         * dbus/dbus-marshal-header.c: use DBUS_VALIDITY_UNKNOWN_OOM_ERROR
3685         in places where we previously used DBUS_VALID and a FALSE return 
3686         value to indicate OOM
3687         
3688         * dbus/dbus-marshal-validate.c (_dbus_validate_signature_with_reason):
3689         Use a stack to track the number of elements inside containers.  The 
3690         stack values are then used to validate that dict entries have only two
3691         elements within them.
3692         (validate_body_helper): check the reason for failure when validating
3693         varients
3694         
3695         * dbus/dbus-message.c (load_message): use 
3696         DBUS_VALIDITY_UNKNOWN_OOM_ERROR in places where we previously used 
3697         DBUS_VALID and a FALSE return value to indicate OOM
3698
3699         * doc/TODO: remove "- validate dict entry number of fields" as this
3700         patch fixes it
3701
3702 2005-06-14  David Zeuthen  <davidz@redhat.com>
3703
3704         * bus/bus.c (process_config_every_time): Drop existing conf-dir
3705         watches (if applicable) and add new watches
3706
3707         * bus/main.c (signal_handler): Handle SIGIO if using D_NOTIFY
3708         (main): Setup SIGIO signal handler if using D_NOTIFY
3709
3710         * bus/config-parser.h: Add prototype bus_config_parser_get_conf_dirs
3711
3712         * bus/config-parser.c (struct BusConfigParser): Add conf_dirs list
3713         (merge_included): Also merge conf_dirs list
3714         (bus_config_parser_unref): Clear conf_dirs list
3715         (include_dir): Add directory to conf_dirs list
3716         (bus_config_parser_get_conf_dirs): New function
3717
3718         * bus/dir-watch.[ch]: New files
3719
3720         * bus/Makefile.am (BUS_SOURCES): Add dir-watch.[ch]
3721
3722         * configure.in: Add checks for D_NOTIFY on Linux
3723
3724 2005-06-14  Colin Walters  <walters@verbum.org>
3725
3726         * glib/dbus-binding-tool-glib.c:
3727         * glib/dbus-gobject.c:
3728         * glib/dbus-gvalue.c: Fix indentation and brace style.
3729         
3730 2005-06-14  Ross Burton <ross@openedhand.com>.
3731
3732         * glib/dbus-glib.h: Make DBusGMethodInvocation
3733         a private structure.  Rearrange prototypes a bit.
3734         
3735         * glib/dbus-gproxy.c (dbus_g_proxy_invoke): Add
3736         documentation for first_arg_type.
3737         
3738         * glib/dbus-gobject.c: Move DBusGMethodInvocation
3739         here, add documentation.  Move dbus_g_method_return
3740         and dbus_g_method_return_error into public API
3741         section.
3742
3743 2005-06-14  Colin Walters  <walters@verbum.org>
3744
3745         * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller):
3746         Add missing return statements, noticed by Ross Burton.
3747         
3748 2005-06-13  Ross Burton <ross@openedhand.com>.
3749
3750         * glib/dbus-gobject.c: Handle errors on message
3751         demarshalling by sending error message back.
3752         * glib/dbus-gvalue.c: Initialize return variables.
3753
3754 2005-06-13  Colin Walters  <walters@verbum.org>
3755
3756         * glib/Makefile.am: Fix thinko in last patch.
3757
3758 2005-06-13  Colin Walters  <walters@verbum.org>
3759
3760         * glib/Makefile.am: Move dbus-gtype-specialized.c
3761         and dbus-gtype-specialized.h into a _HEADERS variable,
3762         install them.
3763
3764 2005-06-12  Colin Walters  <walters@verbum.org>
3765
3766         Async signals and various bugfixes and testing by
3767         Ross Burton <ross@openedhand.com>.
3768
3769         * glib/dbus-gvalue.h: (struct DBusBasicGValue): Delete.
3770         (dbus_gvalue_genmarshal_name_from_type)
3771         (dbus_gvalue_ctype_from_type): Moved to dbus-binding-tool-glib.c.
3772         (dbus_gtype_to_dbus_type): Renamed to dbus_gtype_from_signature.
3773         (dbus_g_value_types_init, dbus_gtype_from_signature)
3774         (dbus_gtype_from_signature_iter, dbus_gtype_to_signature)
3775         (dbus_gtypes_from_arg_signature): New function prototypes.
3776         (dbus_gvalue_demarshal): Take context and error arguments.
3777         (dbus_gvalue_demarshal_variant): New function.
3778         (dbus_gvalue_demarshal_message): New function.
3779         (dbus_gvalue_store): Delete.
3780
3781         * glib/dbus-gvalue.c:
3782
3783         File has been almost entirely rewritten; now we special-case
3784         more types such as DBUS_TYPE_SIGNATURE, handle arrays and
3785         hash tables correctly, etc.  Full support for recursive values
3786         is not yet complete.
3787
3788         * glib/dbus-gproxy.c (dbus_g_proxy_class_init): Change last
3789         argument of signal to G_TYPE_POINTER since we now pass a
3790         structure.
3791         (lookup_g_marshaller): Delete in favor of
3792         _dbus_gobject_lookup_marshaller.
3793         (marshal_dbus_message_to_g_marshaller): Use
3794         _dbus_gobject_lookup_marshaller and dbus_gvalue_demarshal_message
3795         to handle remote signal callbacks.
3796         (dbus_g_proxy_new_from_proxy): New function; creates a new
3797         DBusGProxy by copying an existing one.
3798         (dbus_g_proxy_get_interface, dbus_g_proxy_set_interface)
3799         (dbus_g_proxy_get_path): New functions.
3800         (dbus_g_proxy_marshal_args_to_message): New function;
3801         factored out of existing code.
3802         (DBUS_G_VALUE_ARRAY_COLLECT_ALL): Collect all arguments
3803         from a varargs array.
3804         (dbus_g_proxy_begin_call_internal): New function.
3805         (dbus_g_proxy_end_call_internal): New function.
3806         (dbus_g_proxy_begin_call): Take GTypes instead of DBus types
3807         as arguments; simply invoke dbus_g_proxy_begin_call_internal
3808         after collecting args into value array.
3809         (dbus_g_proxy_end_call): Take GTypes instead of DBus types;
3810         invoke dbus_g_proxy_end_call_internal.
3811         (dbus_g_proxy_invoke): Simply invoke begin_call_interanl and
3812         end_call_internal.
3813         (dbus_g_proxy_call_no_reply): Take GTypes instead of DBus
3814         types.
3815         (array_free_all): New function.
3816         (dbus_g_proxy_add_signal): Take GTypes.
3817
3818         * glib/dbus-gobject.h:
3819         (_dbus_glib_marshal_dbus_message_to_gvalue_array): Delete.
3820         (_dbus_gobject_get_path, _dbus_gobject_lookup_marshaller):
3821         Prototype.
3822
3823         * glib/dbus-gobject.c: Add a global marshal_table hash which
3824         stores mappings from type signatures to marshallers.  Change lots
3825         of invocations of dbus_gtype_to_dbus_type to
3826         dbus_gtype_to_signature.
3827         (_dbus_glib_marshal_dbus_message_to_gvalue_array): Delete.
3828         (introspect_signals): Fix test for query.return_type.
3829         (set_object_property): Update invocation of dbus_gvalue_demarshal.
3830         (invoke_object_method): Many changes.  Handle asynchronous
3831         invocations.  Convert arguments with
3832         dbus_gvalue_demarshal_message.  Handle errors.  Use
3833         DBusSignatureIter instead of strlen on args. Handle all arguments
3834         generically.  Special-case variants.
3835         (dbus_g_method_return, dbus_g_method_return_error): New function.
3836         (DBusGSignalClosure): New structure, closes over signal
3837         information.
3838         (dbus_g_signal_closure_new): New function.
3839         (dbus_g_signal_closure_finalize): New function.
3840         (signal_emitter_marshaller): New function; is special marshaller
3841         which emits signals on bus.
3842         (export_signals): New function; introspects object signals and
3843         connects to them.
3844         (dbus_g_object_type_install_info): Take GType instead of
3845         GObjectClass.
3846         (dbus_g_connection_register_g_object): Invoke export_signals.
3847         (dbus_g_connection_lookup_g_object): New function.
3848         (DBusGFuncSignature) New structure; used for mapping type
3849         signatures to marshallers.
3850         (funcsig_hash): New function; hashes DBusGFuncSignature.
3851         (funcsig_equal): New function; compares DBusGFuncSignature.
3852         (_dbus_gobject_lookup_marshaller): New function.
3853         (dbus_g_object_register_marshaller): New function; used to
3854         register a marshaller at runtime for a particular signature.
3855
3856         * glib/dbus-gmain.c (_dbus_gmain_test): Add various tests.
3857
3858         * glib/dbus-binding-tool-glib.h: Add DBUS_GLIB_ANNOTATION_ASYNC
3859         which notes a server method implementation should be
3860         asynchronous.
3861
3862         * glib/dbus-binding-tool-glib.c
3863         (dbus_binding_tool_output_glib_server): Call
3864         dbus_g_value_types_init.
3865         (write_formal_parameters): Use dbus_gtype_from_signature.  Handle
3866         variants specially.
3867         (dbus_g_type_get_lookup_function): Turn GType into an invocation
3868         of a lookup function.
3869         (write_args_for_direction): Use dbus_g_type_get_lookup_function.
3870         (write_untyped_out_args): New method; write output arguments.
3871         (write_formal_declarations_for_direction): Function for
3872         writing prototypes.
3873         (write_formal_parameters_for_direction): Function for
3874         writing implementations.
3875         (write_typed_args_for_direction): Function for writing
3876         arguments prefixed with GTypes.
3877         (write_async_method_client): Write out async version
3878         of method.
3879
3880         * glib/dbus-binding-tool-glib.c: Include dbus-gvalue-utils.h.
3881         (dbus_g_type_get_marshal_name): Move mapping from GType
3882         to marshal name into here.
3883         (dbus_g_type_get_c_name): Move into here.
3884         (compute_marshaller): Convert signature to type with
3885         dbus_gtype_from_signature, use dbus_g_type_get_marshal_name.
3886         (compute_marshaller_name): Ditto.
3887         (compute_marshaller): Handle async signal annotations.
3888         (gather_marshallers): Return if we don't have a known
3889         prefix.
3890         (generate_glue): Collect introspection blob here, and
3891         write all of the blob at the end.  This allows an object
3892         with multiple interfaces to work.
3893         Mark async methods in introspection blob.
3894
3895         * glib/Makefile.am (libdbus_glib_1_la_SOURCES): Add
3896         dbus-gtype-specialized.c, dbus-gtype-specialized.h,
3897         dbus-gvalue-utils.h, dbus-gvalue-utils.c.
3898
3899         * dbus/dbus-glib.h: Don't include dbus-protocol.h; this
3900         avoids people accidentally using DBUS_TYPE_* which should
3901         not be necessary anymore.
3902         Do include dbus-gtype-specialized.h, which are utilities
3903         for GLib container types.
3904         Add various #defines for types such as
3905         DBUS_TYPE_G_BOOLEAN_ARRAY.
3906         (DBusGValueIterator, DBusGValue): Define, not fully used
3907         yet.
3908         (dbus_g_value_get_g_type): Type for recursive value.
3909         (dbus_g_value_open, dbus_g_value_iterator_get_value)
3910         (dbus_g_value_iterator_get_values, dbus_g_value_iterator_recurse)
3911         (dbus_g_value_free): Prototypes.
3912         (dbus_g_object_register_marshaller, dbus_g_proxy_new_from_proxy): Prototype.
3913         (dbus_g_proxy_set_interface): Prototype.
3914         (dbus_g_proxy_begin_call, dbus_g_proxy_end_call)
3915         (dbus_g_proxy_call_no_reply): Take GLib types instead of DBus
3916         types.
3917         (dbus_g_proxy_get_path, dbus_g_proxy_get_interface):
3918         Accessors.
3919         (DBusGAsyncData, DBusGMethodInvocation): Structures for
3920         doing async invocations.
3921         (dbus_g_method_return, dbus_g_method_return_error):
3922         Prototypes.
3923         * doc/dbus-tutorial.xml: Update GLib section.
3924         
3925         * tools/dbus-viewer.c (load_child_nodes): Update
3926         for new invocation type of dbus_g_proxy_end_call.
3927         (load_from_service_thread_func): Ditto.
3928
3929         * tools/print-introspect.c (main): Ditto.
3930
3931         * tools/dbus-names-model.c (have_names_notify)
3932         (names_model_reload, names_model_set_connection)
3933         Use GTypes.
3934
3935         * python/Makefile.am (INCLUDES): Define DBUS_COMPILATION,
3936         needed since Python bindings use GLib bindings.
3937
3938         * test/glib/Makefile.am (INCLUDES): Define DBUS_COMPILATION.
3939         Add --prefix argument.
3940
3941         * tools/Makefile.am: Define DBUS_COMPILATION.  Remove
3942         unneeded --ignore-unsupported arg.
3943         
3944         * test/glib/test-service-glib.c: 
3945         * test/glib/test-service-glib.xml:
3946         * test/glib/test-dbus-glib.c: Add many more tests.
3947
3948 2005-06-06  David Zeuthen  <davidz@redhat.com>
3949
3950         * doc/TODO: Add item about need to remove deprecated functions.
3951
3952         * dbus/dbus-connection.h: Add prototype for dbus_connection_disconnect
3953
3954         * dbus/dbus-connection.c (dbus_connection_disconnect): New function
3955         to repair the ABI which was broken with the last commit.
3956
3957 2005-06-02  John (J5) Palmieri <johnp@redhat.com>
3958
3959         *  dbus/dbus-connection.c, dbus/dbus-connection.h 
3960         (dbus_connection_disconnect): renamed to dbus_connection_close 
3961         for API symmetry with dbus_connection_open
3962         (_dbus_connection_open_internal): 
3963         s/dbus_connection_disconnect/dbus_connection_close
3964
3965         * dbus/dbus-bus.c (dbus_bus_get):
3966         s/dbus_connection_disconnect/dbus_connection_close
3967
3968         * bus/connection.c (bus_connections_unref, 
3969         bus_connections_setup_connection, bus_connections_expire_incomplete):
3970         s/dbus_connection_disconnect/dbus_connection_close
3971
3972         * bus/dispatch.c (bus_dispatch, kill_client_connection, 
3973         kill_client_connection_unchecked, check_hello_connection):
3974         s/dbus_connection_disconnect/dbus_connection_close
3975
3976         * bus/bus.c (new_connection_callback):
3977         s/dbus_connection_disconnect/dbus_connection_close
3978
3979         * tools/dbus-send.c (main):
3980         s/dbus_connection_disconnect/dbus_connection_close
3981
3982         * test/glib/test-profile.c (no_bus_thread_func, with_bus_thread_func):
3983         s/dbus_connection_disconnect/dbus_connection_close
3984         
3985         * test/test-service.c (path_message_func, filter_func):
3986         s/dbus_connection_disconnect/dbus_connection_close
3987         
3988         * doc/TODO: remove connection_open/connection_disconnect lacks symmetry         item that was just fixed
3989         
3990 2005-05-25  Colin Walters  <walters@verbum.org>
3991
3992         * dbus/dbus-protocol.h: Move various bus service #defines such
3993           as DBUS_SERVICE_DBUS and DBUS_NAME_FLAG_PROHIBIT_REPLACEMENT to
3994           dbus/dbus-shared.h.
3995         * dbus/dbus-shared.h: Various defines moved here.
3996         * dbus/dbus-marshal-header.c: Include dbus-shared.h.
3997
3998 2005-05-25  John (J5) Palmieri  <johnp@redhat.com>
3999
4000         * python/__init__.py: Python bindings deserve a minor version
4001         update.  Upped to (0, 40, 2)
4002
4003 2005-05-24  John (J5) Palmieri  <johnp@redhat.com>
4004
4005         * python/decorators.py: add explicitly_pass_message decorator
4006         for passing in the dbus message as keyword for edge case signal
4007         handling
4008
4009         * python/matchrules.py (SignalMatchRule.__repr__): fix output
4010         to conform with what dbus expects for match rules
4011         (SignalMatchRule.execute): add the dbus message as a keyword
4012         if the signal handler has requested it
4013
4014         * python/examples/example/signal-recipient.py: added some more
4015         examples on how to hook up to signals
4016
4017 2005-05-23  John (J5) Palmieri  <johnp@redhat.com>
4018
4019         * python/decorators.py: import dbus_bindings
4020
4021         * python/matchrules.py (SignalMatchRule, SignalMatchTree, 
4022         SignalMatchNode): new classes that implement wildcard signal
4023         callback matching using a tree lookup. Heavily modified from a
4024         patch sent by Celso Pinto (fd.o bug #3241)
4025
4026         * _dbus.py (add_signal_receiver, remove_signal_receiver, _signal_func):
4027         use new match classes to handle signals.
4028
4029 2005-05-19  John (J5) Palmieri  <johnp@redhat.com>
4030         
4031         * python/dbus_bindings.pyx.in: s/TYPE_PATH/TYPE_OBJECT_PATH
4032
4033 2005-05-18  Havoc Pennington  <hp@redhat.com>
4034
4035         * configure.in: use GLIB_GNU_GETTEXT to get INTLLIBS and require
4036         gettext. Not really worth requiring yet perhaps, but any
4037         production quality 1.0 would require it so we should go ahead and
4038         get things set up. We do have a couple token calls to
4039         bindtextdomain in the code already.
4040
4041 2005-05-16  John (J5) Palmieri  <johnp@redhat.com>
4042
4043         * glib/dbus-gmain.c (io_handler_dispatch): fix deadlock
4044         when using recursive g_main_loops
4045
4046         * python/_dbus.py (class Bus): add the ProxyObjectClass
4047         alias for ProxyObject to make it easier for the Twisted 
4048         networking framework to integrate dbus.
4049
4050         * python/proxies.py (class ProxyObject): add the ProxyMethodClass
4051         alias for ProxyMethod to make it easier for the Twisted 
4052         networking framework to integrate dbus. 
4053
4054 2005-05-11  Ross Burton  <ross@openedhand.com>
4055
4056         * glib/dbus-glib-tool.c: Add --prefix argument.
4057         * glib/dbus-binding-tool-glib.h: Add prefix argument.
4058         * glib/dbus-binding-tool-glib.c (compute_marshaller_name):
4059         Add prefix argument.
4060         (generate_glue): Pass prefix argument down.
4061         (dbus_binding_tool_output_glib_server): Pass prefix to
4062         glib-genmarshal.
4063         
4064 2005-05-11  Colin Walters  <walters@verbum.org>
4065
4066         * tools/dbus-send.c (append_array): New function.
4067         (append_arg): Broken out from main.
4068         (main): Add cheesy hack to send arrays and variants.
4069         (usage): Update.
4070         * tools/dbus-print-message.c (print_iter): Broken out
4071         from main.
4072
4073 2005-05-11  Colin Walters  <walters@verbum.org>
4074
4075         * dbus/dbus-signature.c (dbus_signature_iter_get_signature):
4076         New function, returns signature string for signature iter.
4077         * dbus/dbus-signature.h: Prototype it.
4078         * dbus/dbus-message.c (dbus_message_iter_get_signature):
4079         New function, returns signature string for message iter.
4080         (dbus_message_iter_get_array_len): New function, returns
4081         length of array.
4082         (dbus_message_iter_get_fixed_array): Fix assertion; this
4083         function should be used when the iter is pointing to the
4084         contents of an array
4085         * dbus/dbus-message.h: Prototypes.
4086         * dbus/dbus-marshal-recursive.c (_dbus_type_reader_get_array_length):
4087         New function; returns length of an array.
4088         * dbus/dbus-marshal-recursive.h: Prototype it.
4089         
4090 2005-05-11  Colin Walters  <walters@verbum.org>
4091
4092         * dbus/dbus-sysdeps-util.c <!HAVE_POSIX_GETPWNAM_R>: Fix
4093         compilation error.
4094         
4095 2005-05-08  Havoc Pennington  <hp@redhat.com>
4096
4097         * dbus/dbus-sysdeps-util.c (_dbus_become_daemon): write the
4098         daemon's pid, not the parent's pid, to the file descriptor.
4099         Reported by Taj Morton.
4100
4101 2005-05-05  Havoc Pennington  <hp@redhat.com>
4102
4103         * configure.in (LT_*): add notes on how the libtool versioning
4104         works to save thinking. Increment soname to indicate protocol
4105         breakage (though really the library interface hasn't changed I
4106         guess)
4107
4108         * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated):
4109         verify the GUID received from server matches what we were
4110         expecting, if we had an expectation
4111
4112         * dbus/dbus-auth.c (send_ok): send GUID along with the OK command
4113         (_dbus_auth_get_guid_from_server): new function
4114         (send_begin): parse the OK args
4115
4116         * doc/dbus-specification.xml: add GUID to the auth protocol
4117
4118 2005-05-05  John (J5) Palmieri  <johnp@redhat.com>
4119
4120         * Fix my name in previous changelog ;)
4121
4122         * python/proxies.py (ProxyObject.__getattr__): add further patch
4123         from Anthony Baxter to throw an AttributeError when python 
4124         __special__ functions are called instead of marshling them over 
4125         the bus (Bug#1685 comment 3).
4126
4127 2005-05-04  John (J5) Palmieri  <johnp@redhat.com>
4128
4129         * python/Makefile.am: changed to use pyexecdir for the binding
4130         shared libraries (Bug#2494)
4131
4132         * python/exceptions.py: bring exceptions over from the bindings
4133         so they can be used in applications (Bug#2036)
4134         Make all exceptions derive from DBusException
4135
4136         * python/_dbus.py, python/proxies.py: implement __repr__ in a couple
4137         of classes so that print obj doesn't throw an exception (Bug #1685)
4138
4139 2005-05-03  Ross Burton  <ross@openedhand.com>
4140
4141         * glib/dbus-gobject.c (dbus_g_connection_register_g_object):
4142         Return if we get an error during registration.  Set up a
4143         weak reference on object to unregister if object is destroyed.
4144         (unregister_gobject): New function.
4145         
4146 2005-05-01  John (J5) Palmieri  <johnp@redhat.com>
4147
4148         * python/dbus_bindings.pyx.in: 
4149         - added new type classes for hinting to the marashaler what type 
4150         to send over the wire
4151         - added int16 and uint16 marshalers
4152         - Fixed a bug in the type constants that caused int32 to go out
4153         as uint16 over the wire
4154         * python/dbus.py: split up into different files and renamed _dbus.py
4155         * python/__init__.py, python/_util.py, python/decorators.py, 
4156         python/exceptions.py, python/proxies.py, python/services.py,
4157         python/types.py: new files split off from dbus.py
4158         * python/Makefile.am: Add new files, remove dbus.py and 
4159         install all python files to <python module dir>/dbus
4160         * python/examples/*: Added #!/usr/bin/env python to the top of
4161         every example.  Patch provided by Tatavarty Kalyan
4162
4163 2005-04-25  John (J5) Palmieri  <johnp@redhat.com>
4164
4165         * NEWS: Update to 0.33
4166
4167 2005-04-25  John (J5) Palmieri  <johnp@redhat.com>
4168
4169         * python/dbus_bindings.pyx.in (send_with_reply_handlers): New send
4170         method for doing async calls
4171         (_pending_call_notification): New C function for handling pendning call
4172         callbacks
4173         (set_notify): New method for setting pending call notification
4174         
4175         * python/dbus.py: new version tuple "version" is set at (0, 40, 0)
4176         Async capabilities added to remote method calls
4177         (Sender): class removed
4178         (RemoteService): class removed
4179         (ObjectTree): class removed for now
4180         (RemoteObject): Renamed to ProxyObject
4181         (RemoteMethod): Renamed to ProxyMethod
4182         (method): Decorator added for decorating python methods as dbus methods
4183         (signal): Decorator added for decorating python methods as signal emitters
4184         (ObjectType): Metaclass added for generating introspection data and the
4185         method callback vtable
4186         (Interface): Wrapper class added to wrap objects in a dbus interface
4187         (Object): Uses ObjectType as its metaclass and exports Introspect
4188         of the org.freedesktop.DBus.Introspectable interface
4189         (ValidationException, UnknownMethodException): new exceptions
4190
4191         * python/examples/*: Modified to fit with the new bindings
4192
4193 2005-04-23  Havoc Pennington  <hp@redhat.com>
4194
4195         * dbus/dbus-message.c (dbus_message_append_args): fix doc comment,
4196         reported by Tony Houghton
4197
4198         * test/test-service.c (main): test
4199         dbus_connection_get_object_path_data()
4200
4201         * dbus/dbus-object-tree.c (find_handler): be sure we always init
4202         the exact_match
4203         (_dbus_object_tree_get_user_data_unlocked): new function used by
4204         dbus_connection_get_object_path_data()
4205         (do_register): add assertion test for get_user_data_unlocked
4206         (object_tree_test_iteration): more tests
4207
4208         * dbus/dbus-connection.c (dbus_connection_get_object_path_data):
4209         new function from Dan Reed to let you get the user data from 
4210         dbus_connection_register_object_path()
4211
4212 2005-04-23  John (J5) Palmieri  <johnp@redhat.com>
4213
4214         * dbus/dbus-marshal-recursive-util.c: Fixed buffer overflow
4215         in numerous places that did not account for the NULL terminator
4216         (signature_from_seed): changed the manual string copy loop to 
4217         just use strcpy instead
4218         make check should now pass
4219
4220 2005-04-19  John (J5) Palmieri  <johnp@redhat.com>
4221
4222         * dbus/dbus-marshal-header.c (_dbus_header_create): Fix assert
4223         so that it allows messages that are not signals to pass in 
4224         NULL as the interface.
4225
4226 2005-04-18  David Zeuthen  <davidz@redhat.com>
4227
4228         * glib/dbus-gmain.c (io_handler_destroy_source): 
4229         (timeout_handler_destroy_source, connection_setup_free): 
4230         Also unref the source to avoid memory leaks.
4231
4232 2005-04-13  David Zeuthen  <davidz@redhat.com>
4233
4234         * bus/config-parser.c (bus_config_parser_new): Bump this to a
4235         more reasonable, yet still totally arbitrary, value :-). 
4236
4237 2005-04-13  David Zeuthen  <davidz@redhat.com>
4238
4239         * doc/TODO: Added an "important for 1.0" item about selinux
4240         allow/deny messages
4241
4242 2005-04-13  David Zeuthen  <davidz@redhat.com>
4243
4244         * bus/selinux.c: Add c-file-style to top of file
4245         (log_audit_callback): Don't free the data here anymore
4246         (bus_selinux_check): Don't take spid and tpid since appending
4247         that to auxdata may OOM.
4248         (bus_selinux_allows_acquire_service): Handle OOM and signal back
4249         to the caller if we are OOM by taking an error object.
4250         (bus_selinux_allows_send): -do-
4251
4252         * bus/selinux.h: Fix prototypes for bus_selinux_allows_acquire_service
4253         and bus_selinux_allows_send
4254
4255         * bus/bus.c (bus_context_check_security_policy): Pass error and
4256         pass on OOM thrown by bus_selinux_allows_send()
4257
4258         * bus/services.c (bus_registry_acquire_service): Pass error and
4259         pass on OOM thrown by bus_selinux_allows_acquire_service()
4260
4261 2005-04-13  Havoc Pennington  <hp@redhat.com>
4262
4263         * glib/dbus-gmain.c (message_queue_dispatch): only dispatch one
4264         message at a time to avoid monopolizing the main loop, bug 
4265         #2953 from Benjamin Otte
4266
4267 2005-04-09  Havoc Pennington  <hp@redhat.com>
4268
4269         * dbus/dbus-string.c (copy): change a memcpy to memmove due to
4270         possible overlap, fix from Daniel Reed
4271         (fixup_alignment): fix signedness warnings
4272         (_dbus_string_append_unichar): ditto
4273
4274 2005-04-09  Havoc Pennington  <hp@redhat.com>
4275
4276         * dbus/dbus-message-util.c (_dbus_message_test): fix signedness warning
4277
4278         * glib/dbus-glib-tool.c (main): fix warning
4279
4280         * glib/dbus-binding-tool-glib.c (generate_glue): fix warning
4281
4282         * dbus/dbus-connection.c (dbus_connection_read_write_dispatch):
4283         add a new function that can be used in simple applications that
4284         don't have a main loop and are willing to block
4285
4286 2005-04-05  David Zeuthen  <davidz@redhat.com>
4287
4288         Fix https://bugs.freedesktop.org/show_bug.cgi?id=2889
4289
4290         * glib/dbus-gmain.c:
4291         (io_handler_destroy_source): Remove from list of IO handlers
4292         of the ConnectionSetup object
4293         (timeout_handler_destroy_source): -do- for timeout handlers
4294         (io_handler_source_finalized): Don't remove from list since
4295         we now do that in io_handler_destroy_source(). Renamed from
4296         io_handler_source_destroyed
4297         (timeout_handler_source_destroyed): -do- for timeout handlers
4298         (connection_setup_free): It is now safe to iterate over all
4299         IO and timeout handlers as the _destroy_source removes them
4300         from the list synchronously
4301
4302 2005-03-30  Havoc Pennington  <hp@redhat.com>
4303
4304         * configure.in: change check to gtk 2.4
4305
4306         * tools/dbus-viewer.c (name_combo_changed_callback): remove
4307         gtk_combo_box_get_active_text() usage to decrement GTK requirement
4308         to 2.4
4309
4310 2005-03-29  John (J5) Palmieri  <johnp@redhat.com>
4311
4312         * News: Update 0.32
4313
4314         * HACKING: Fixed realease instructions.  configure.in should be updated to
4315           the next release by the person who made the last release.
4316
4317 2005-03-29  John (J5) Palmieri  <johnp@redhat.com>
4318
4319         * python/lvalue_cast_post_process.py - removed.  Patch has been
4320           submitted to Pyrex maintainers that fixes gcc4.0 errors
4321
4322         * python/Makefile.am: removed refrences to lvalue_cast_post_process.py
4323
4324 2005-03-24  Daniel Reed  <n@ml.org>
4325
4326         * tools/Makefile.am: Make print-introspect and
4327         dbus-bus-introspect.xml building conditional on HAVE_GLIB.
4328
4329 2005-03-22  John (J5) Palmieri  <johnp@redhat.com>
4330
4331         * tools/Makefile.am: Patch by Colin Walters that fixes distcheck
4332
4333         * dbus/dbus-userdb.c, dbus/dbus-userdb-util.c: Add patch we have 
4334           had in Red Hat packages for a while but for some reason never 
4335           got merged upstream
4336           (_dbus_is_a_number): New checks if a string
4337           can be converted to a number and does the conversion if it can
4338           (_dbus_user_database_lookup): Add check to see if the given username
4339           is a udi.  This allows udi's to be used instead of usernames in the
4340           config file.
4341           (_dbus_user_database_lookup_group): Add check to see if the given groupname
4342           is a gdi.  This allows gdi's to be used instead of groupnames in the
4343           config file.
4344
4345 2005-03-21  John (J5) Palmieri  <johnp@redhat.com>
4346
4347         * python/lvalue_cast_post_process.py - added post processor to fix Pyrex
4348           code so that it compiles with gcc4.0
4349
4350         * python/Makefile.am: Added lvalue_cast_post_process.py to EXTRA_DIST
4351           run dbus_bindings.c through lvalue_cast_post_process.py and copy the
4352           results back to dbus_binding.c
4353
4354 2005-03-20  Colin Walters  <walters@verbum.org>
4355
4356         Patch suggested by Inguva Rajasekhar <ringuva@novell.com>.
4357
4358         * configure.in: Require GTK+ 2.6.
4359         
4360 2005-03-20  Colin Walters  <walters@verbum.org>
4361
4362         * Makefile.am (SUBDIRS, DIST_SUBDIRS): Build tools before test.
4363
4364 2005-03-17  Tom Parker  <palfrey@tevp.net>
4365
4366         * dbus/dbus-userdb.c (_dbus_user_database_lookup): Don't
4367         print DBUS_UID_UNSET; instead print passed username.  Also
4368         be sure to actually use gid looked up in cache.
4369         
4370         * dbus/dbus-userdb-util.c (_dbus_user_database_lookup_group): Ditto
4371         for DBUS_GID_UNSET and groupname.
4372
4373 2005-03-17  Colin Walters  <walters@verbum.org>
4374
4375         * bus/print-introspect.c: Move to tools/.
4376         * bus/run-with-tmp-session-bus.sh: Ditto.
4377         
4378         * glib/Makefile.am (dbus-glib-bindings.h): Move
4379         generation to tools/Makefile.am.
4380
4381         * test/glib/run-test.sh: Update to handle move
4382         of run-with-tmp-session-bus.sh.
4383
4384         * test/glib/test-service-glib.c: Update to handle
4385         move of dbus-glib-bindings.h.
4386
4387         * tools/print-introspect.c: Moved here
4388         from bus/, and ported to GLib bindings.
4389
4390         * tools/run-with-tmp-session-bus.sh: Moved here
4391         from bus/.
4392
4393         * tools/Makefile.am: Generate dbus-glib-bindings.h
4394         and dbus-bus-introspect.xml here.
4395
4396         * tools/.cvsignore, glib/.cvsignore, bus/.cvsignore:
4397         Update.
4398
4399 2005-03-17  Colin Walters  <walters@verbum.org>
4400
4401         * bus/driver.c (write_args_for_direction): Use
4402         _dbus_string_get_const_data to retrieve string;
4403         _dbus_string_get_const_data_len doesn't actually return
4404         a NULL-terminated substring.
4405
4406         * test/glib/test-service-glib.c: Include dbus-glib-bindings.h.
4407         (main): Change to use org_freedesktop_DBus_request_name
4408         instead of using g_proxy_begin_call/end_call.
4409
4410 2005-03-15  Joe Shaw  <joeshaw@novell.com>
4411
4412         * mono/ProxyBuilder.cs (BuildFinalizer): Fix some invalid IL when
4413         generating the finalizer.  Fixes from Ben Maurer.
4414
4415 2005-03-12  Joe Shaw  <joeshaw@novell.com>
4416
4417         * mono/BusDriver.cs: Update method names: ListServices
4418         becomes ListNames; GetOwner becomes GetNameOwner.
4419
4420         * mono/ProxyBuilder.cs (BuildFinalizer): Need to load arg 0
4421         onto the eval stack when removing the delegate.
4422
4423 2005-03-12  Joe Shaw  <joeshaw@novell.com>
4424
4425         * mono/dbus-sharp.dll.config.in: Don't hardcode 0 for
4426         LT_CURRENT.  Set it to the autoconf variable.
4427                                                                                 
4428         * mono/ProxyBuilder.cs: Add a finalizer to the generated proxy
4429         classes that disconnects the signal handler delegate from the
4430         service object.  Fixes a big leak of proxy objects on the
4431         client side of things.  Patch from Ben Maurer
4432         <bmaurer@ximian.com>
4433
4434 2005-03-12  Colin Walters  <walters@verbum.org>
4435
4436         * bus/driver.c (write_args_for_direction): New function,
4437         parses a type signature into arguments and outputs to
4438         XML.
4439         (bus_driver_handle_introspect): Use it instead of
4440         hardcoding XML for certain signatures.
4441         
4442         * bus/Makefile.am (dbus-bus-introspect.xml): Add
4443         dependency on dbus-daemon.
4444
4445         * glib/dbus-glib-tool.c (main): Parse ignore_unsupported
4446         argument, pass it to dbus_binding_tool_output_glib_client.
4447
4448         * glib/dbus-binding-tool-glib.c
4449         (generate_client_glue): Protect against multiple inclusion.
4450         (dbus_binding_tool_output_glib_client): Add
4451         G_BEGIN_DECLS/G_END_DECLS.
4452
4453         * glib/dbus-binding-tool-glib.c (compute_client_method_name):
4454         Change to just take iface prefix directly.
4455         (write_formal_parameters): Clarify error message.
4456         (check_supported_parameters): New function; checks to see type
4457         signatures of method parameters are supported.
4458         (generate_client_glue): Handle ignore_unsupported flag.
4459         (dbus_binding_tool_output_glib_client): Handle ignore_unsupported
4460         parameter.
4461
4462         * glib/Makefile.am (dbus-glib-bindings.h): Pass
4463         --ignore-unsupported by default until glib bindings
4464         support arrays.
4465
4466 2005-03-11  Colin Walters  <walters@verbum.org>
4467
4468         * glib/Makefile.am: Generate dbus-glib-bindings.h and
4469         install it.
4470
4471         * bus/print-introspect.c: New file; prints introspection
4472         data for a given name and object path.
4473
4474         * bus/run-with-tmp-session-bus.sh: New file, refactored
4475         from test/glib/run-test.sh.  Creates a temporary session
4476         bus and runs another program.
4477
4478         * test/glib/run-test.sh: Refactor to invoke
4479         run-with-tmp-session-bus.sh.
4480
4481         * bus/driver.c (bus_driver_handle_introspect): Fix to print new
4482         introspection format.  Also change to use DBUS_TYPE_x_AS_STRING
4483         macros instead of hardcoding.
4484
4485         * glib/.cvsignore, bus/.cvsignore, test/glib/.cvsignore: Update.
4486
4487 2005-03-11  Joe Shaw  <joeshaw@novell.com>
4488
4489         * dbus/dbus-connection.c (dbus_connection_send_with_reply): Remove
4490         this unref; it doesn't match up evenly in some codepaths.
4491         (_dbus_connection_block_pending_call): Unref at every exitpoint;
4492         this evenly matches with the ref near the top of this function.
4493
4494 2005-03-09  Joe Shaw  <joeshaw@novell.com>
4495
4496         * dbus/dbus-object-tree.c
4497         (_dbus_object_tree_unregister_and_unlock): If checks are enabled
4498         and we try to unregister a path that's not registered, still go
4499         through the process of unlocking and don't just return.
4500
4501 2005-03-09  Colin Walters  <walters@verbum.org>
4502
4503         * glib/dbus-gproxy.c (dbus_g_proxy_invoke): New method; calls
4504         to this are generated for client-side wrappers.  Invokes a
4505         D-BUS method and returns reply values.  
4506
4507         * glib/dbus-binding-tool-glib.c (write_args_sig_for_direction): New
4508         function; writes signature string for argument direction.
4509         (write_args_for_direction): Change to pass input values directly
4510         instead of via address, and fix indentation.
4511         (generate_client_glue): Change to invoke dbus_g_proxy_invoke.  Also
4512         make generated wrappers inlineable.
4513
4514         * dbus/dbus-message.c (dbus_message_iter_get_fixed_array): Add
4515         note about using dbus_type_is_fixed.
4516
4517         * dbus/dbus-marshal-basic.c (_dbus_type_is_fixed): Moved to
4518         dbus/dbus-signature.c as dbus_type_is_fixed.
4519
4520         All callers updated.
4521
4522         * dbus/dbus-signature.c (dbus_type_is_fixed): Moved here
4523         from dbus/dbus-marshal-basic.c:_dbus_type_is_fixed.
4524
4525         * dbus/dbus-signature.h: Prototype.
4526
4527         * glib/dbus-binding-tool-glib.c (compute_marshaller_name): Fix
4528         error printf code.
4529
4530         * test/glib/test-dbus-glib.c (main): Be sure to clear error as
4531         appropriate instead of just freeing it.
4532         (main): Free returned strings using g_free.
4533
4534         * test/glib/Makefile.am (test-service-glib-glue.h)
4535         (test-service-glib-bindings.h): Add dependency on dbus-binding-tool.
4536
4537         * glib/dbus-gvalue.c (MAP_BASIC): Refactored from MAP_BASIC_INIT;
4538         simply maps a simple D-BUS type to GType.
4539         (dbus_dbus_type_to_gtype): Function which maps D-BUS type to
4540         GType.
4541         (dbus_gvalue_init): Just invoke dbus_dbus_type_to_gtype and
4542         initialize the value with it.
4543         (dbus_gvalue_binding_type_from_type): Unused, delete.
4544         (dbus_gvalue_demarshal): Switch to hardcoding demarshalling for
4545         various types instead of unmarshalling to value data directly.
4546         Remove can_convert boolean.
4547         (dbus_gvalue_marshal): Remove duplicate initialization; switch to
4548         returning directly instead of using can_convert boolean.
4549         (dbus_gvalue_store): New function; not related to D-BUS per-se.
4550         Stores a GValue in a pointer to a value of its corresponding C
4551         type.
4552
4553         * glib/dbus-gvalue.h: Remove dbus_gvalue_binding_type_from_type,
4554         add dbus_gvalue_store.
4555
4556 2005-03-08  Joe Shaw  <joeshaw@novell.com>
4557
4558         Fix a bunch of lifecycle and memory management problems
4559         in the mono bindings.
4560
4561         * mono/Arguments.cs (Arguments): Implement IDisposable
4562
4563         * mono/Bus.cs (Bus): Don't allow public instantiation.  This is
4564         strictly a static class.
4565
4566         * mono/Connection.cs: Move the DBusObjectPathVTable and associated
4567         delegates into this file.
4568         (Connection): Implement IDisposable.
4569         (Dispose): Disconnect the connection and set the raw connection
4570         pointer to IntPtr.Zero.
4571         (~Connection): Call Dispose().
4572         (RegisterObjectPath): Added.  Manages the registration of object
4573         paths so we can cleanly disconnect them at dispose/finalize time.
4574         (UnregisterObjectPath): Ditto.
4575         (set_RawConnection): Unregister all of the object paths when
4576         changing the underlying DBusConnection.  Add them back onto the
4577         new connection, if any.
4578
4579         * mono/Handler.cs: Don't implement IDisposable; it doesn't use any
4580         more unmanaged resources anymore, so it's not necessary.  Move all
4581         the DBusObjectPathVTable stuff out of here.
4582         (Handler): Save references to our delegates so that they don't get
4583         finalized.  Call Connection.RegisterObjectPath() instead of
4584         dbus_connection_register_object_path() directly.
4585         (Message_Called): Dispose the message after we're finished with
4586         it.
4587
4588         * mono/Message.cs (Message): Implement IDisposable.
4589         (Dispose): Dispose the Arguments, and set the RawMessage to
4590         IntPtr.Zero.
4591         (SendWithReplyAndBlock): We own the ref to the reply that comes
4592         back from dbus_connection_send_with_reply_and_block() so add a
4593         comment about that and unref it after we've constructed a managed
4594         MethodReturn class around it.  Fixes a big, big leak.
4595
4596         * mono/ProxyBuilder.cs: Reflect into Message to get the Dispose
4597         method.
4598         (BuildSignalHandler): After we've sent the Signal message, dispose
4599         of it.
4600         (BuildMethod): Dispose of the method call and reply messages after
4601         we've sent the message and extracted the data we want from the
4602         reply.
4603
4604         * mono/Service.cs (UnregisterObject): Don't call handler.Dispose()
4605         anymore.
4606         (Service_FilterCalled): Dispose of the message after we're
4607         finished with it.
4608
4609 2005-03-08  Joe Shaw  <joeshaw@novell.com>
4610
4611         * dbus/dbus-connection.c (dbus_connection_send_with_reply):
4612         After we attach our pending call to the connection, unref
4613         it.  Fixes a leak.
4614  
4615         * mono/Connection.cs (set_RawConnection): Disconnect our
4616         filter and match callbacks from the old connection and
4617         reconnect them to the new connection, if any.
4618
4619         * mono/DBusType/Array.cs: "Code" is a static member, so
4620         don't use "this" to refer to it.  Fix for stricter checking
4621         in Mono 1.1.4.
4622  
4623         * mono/DBusType/ObjectPath.cs (Append): Don't leak the
4624         object path that we pass into unmanaged code.
4625  
4626         * mono/DBusType/String.cs (Append): Don't leak the string
4627         that we pass into unmanged code.
4628
4629 2005-03-07  John (J5) Palmieri  <johnp@redhat.com>
4630         * NEWS: Update for 0.31
4631
4632         * configure.in: Release 0.31
4633         add LT_CURRENT, LT_REVISION, LT_AGE for easy soname bumping
4634
4635         * qt/Makefile.am: fixed build
4636
4637         * dbus/Makefile.am: soname bump for libdbus
4638
4639         * glib/Makefile.am: soname bump for libdbus-glib
4640
4641 2005-03-05  Havoc Pennington  <hp@redhat.com>
4642
4643         * dbus/dbus-sysdeps.c:
4644         (pseudorandom_generate_random_bytes_buffer): fix to have no return
4645         value
4646         (_dbus_generate_random_bytes_buffer): fix return value
4647
4648         * dbus/dbus-sysdeps-util.c: s/GETPWNAME/GETPWNAM/ so configure
4649         checks actually work, from Tom Parker <fdo@tevp.net>
4650
4651 2005-03-01  Colin Walters  <walters@verbum.org>
4652
4653         * test/glib/test-dbus-glib.c (lose, lose_gerror): Utility
4654         functions copied from dbus-glib-tool.c.
4655         (main): Convert lots of error code to use them.
4656         Also add some testing for introspection bits.
4657
4658 2005-03-01  Colin Walters  <walters@verbum.org>
4659         
4660         * doc/TODO: Remove introspection signature TODO.
4661
4662 2005-02-27  Colin Walters  <walters@verbum.org>
4663
4664         * glib/dbus-gidl.c (property_info_get_type, arg_info_get_type):
4665         Change return value to const char * instead of int so we can do
4666         full signatures.
4667         (struct PropertyInfo, struct ArgInfo): Store char *.
4668         (property_info_new, arg_info_new): Update parameters, strdup.
4669         (property_info_unref, arg_info_unref): Free.
4670
4671         * glib/dbus-gidl.h: Update prototypes.
4672
4673         * glib/dbus-gparser.c (basic_type_from_string): Delete.
4674         (validate_signature): New function, just validates signature and
4675         sets GError.
4676         (parse_property, parse_arg): Invoke validate_signature.  Store
4677         signature instead of just type code.
4678
4679         * glib/dbus-gvalue.c (base_type_from_signature): New utility
4680         function to return a primary type for a signature, dropping
4681         information about types in container types.
4682         (dbus_gvalue_genmarshal_name_from_type)
4683         (dbus_gvalue_binding_type_from_type)
4684         (dbus_gvalue_ctype_from_type): Update to take full signature
4685          instead of type code.
4686         (dbus_gtype_to_dbus_type): Moved here from glib/dbus-gobject.c.
4687
4688         * glib/dbus-gvalue.h: Update prototypes for above.
4689
4690         * glib/dbus-gobject.c (gtype_to_dbus_type): Moved to
4691         glib/dbus-gvalue.c as dbus_gtype_to_dbus_type.
4692         (introspect_properties, introspect_signals, write_interface):
4693         Update to handle signatures, and remove usage of
4694         _dbus_gutils_type_to_string.
4695         (handle_introspect): Print out type codes instead of e.g. "string"
4696         in hardcoded introspection XML; also use x_AS_STRING constants
4697         instead of hardcoding in string.
4698
4699         * glib/dbus-glib-tool.c (pretty_print): Handle signature change
4700         to string.  Remove usage of _dbus_gutils_type_to_string.
4701
4702         * glib/dbus-gutils.c (_dbus_gutils_type_to_string): Delete.
4703
4704         * glib/dbus-gutils.h (_dbus_gutils_type_to_string): Update for
4705         deletion.
4706         
4707         * glib/dbus-binding-tool-glib.c (compute_marshaller)
4708         (compute_marshaller_name, generate_glue): Handle signature change
4709         to string.
4710         (write_formal_parameters, write_args_for_direction): Ditto, and
4711         remove FIXME.
4712
4713         * tools/dbus-tree-view.c (type_to_string): Delete.
4714         (info_set_func_text): Update to print full signatures.
4715
4716         * test/glib/test-service-glib.xml: Change types to new
4717         introspection format.
4718
4719 2005-02-26  Havoc Pennington  <hp@redhat.com>
4720
4721         * doc/TODO: remove the "guid" item
4722
4723         * test/glib/test-profile.c (no_bus_thread_func): use open_private
4724         (with_bus_thread_func): use open_private
4725
4726         * dbus/dbus-connection.c (dbus_connection_open_private): new
4727         function that works like the old dbus_connection_open()
4728         (dbus_connection_open): now returns an existing connection if
4729         possible
4730
4731         * dbus/dbus-server-unix.c (handle_new_client_fd_and_unlock): pass
4732         through the GUID to the transport
4733
4734         * dbus/dbus-server.c (_dbus_server_init_base): keep around the
4735         GUID in hex-encoded form.
4736
4737         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
4738         pass GUID argument in to the transport
4739
4740         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd): add
4741         guid argument
4742
4743         * dbus/dbus-transport.c (_dbus_transport_init_base): add guid argument
4744
4745         * dbus/dbus-auth.c (_dbus_auth_server_new): add guid argument
4746
4747 2005-02-25  Havoc Pennington  <hp@redhat.com>
4748
4749         * doc/dbus-specification.xml: document the GUID thing
4750
4751         * dbus/dbus-server.c (_dbus_server_init_base): initialize a
4752         globally unique ID for the server, and put a "guid=hexencoded"
4753         field in the address
4754
4755         * dbus/dbus-bus.c: fix missing #include of dbus-threads-internal.h
4756
4757         * dbus/dbus-message.c: ditto
4758
4759         * dbus/dbus-dataslot.c: ditto
4760
4761         * dbus/dbus-list.c: ditto
4762
4763         * dbus/dbus-internals.h: wait, just include
4764         dbus-threads-internal.h here
4765         
4766         * dbus/dbus-string.c (_dbus_string_copy_to_buffer): move back for
4767         use in main library
4768
4769         * dbus/dbus-sysdeps.c (_dbus_generate_random_bytes_buffer): new function
4770
4771 2005-02-24  Colin Walters  <walters@verbum.org>
4772
4773         * test/glib/Makefile.am (EXTRA_DIST): Add test-service-glib.xml
4774
4775 2005-02-24  John (J5) Palmieir  <johnp@redhat.com>
4776
4777         * glib/Makefile.am: added dbus-gobject.h to sources list
4778         so distcheck doesn't fail
4779         
4780 2005-02-24  Havoc Pennington  <hp@redhat.com>
4781
4782         * dbus/dbus-server.c, dbus/dbus-server-unix.c: change semantics so
4783         you must disconnect before unref, since locking and other things
4784         are screwed up otherwise. Fix assorted other locking stuff.
4785
4786         * dbus/dbus-signature.c (dbus_signature_iter_get_element_type):
4787         fix compilation
4788
4789         * dbus/dbus-threads-internal.h: move the mutex/condvar wrappers
4790         into a private header and don't export from the library
4791
4792         * throughout - call _dbus_thread_stuff vs. dbus_thread_stuff
4793
4794 2005-02-24  Colin Walters  <walters@verbum.org>
4795         
4796         * dbus/dbus-signature.c: New file; implements various functions
4797         related to type signatures.  Includes an interator for parsing,
4798         validation functions.
4799         (dbus_type_is_basic): Moved here from
4800         dbus-marshal-basic.c:_dbus_type_is_basic.
4801         (dbus_type_is_container): Moved here from
4802         dbus-marshal-basic.c:_dbus_type_is_container.
4803
4804         All callers of _dbus_type_is_container and _dbus_type_is_basic
4805         updated, and include dbus-signature.h.
4806
4807         * dbus/dbus-signature.h: New file; prototypes for the above.
4808
4809         * dbus/Makefile.am (DBUS_LIB_SOURCES): Add dbus-signature.c,
4810         dbus-signature.h.
4811
4812         * dbus/dbus-marshal-basic.c (map_type_char_to_type): New utility
4813         function factored out of _dbus_first_type_in_signature.
4814         (_dbus_first_type_in_signature_c_str): New function; returns first
4815         type code for a type signature character.
4816
4817         * dbus/dbus-marshal-basic.h: Prototype _dbus_first_type_in_signature_c_str,
4818         handle function moves.
4819
4820         * dbus/dbus-marshal-recursive.h: Export _dbus_type_signature_next.
4821
4822         * dbus/dbus-marshal-recursive.c (_dbus_type_signature_next): New
4823         function; skips to next complete type in type signature.
4824         Implemented using previous skip_one_complete_type.  Now
4825         skip_one_complete_type just delegates to
4826         _dbus_type_signature_next.
4827
4828         * dbus/dbus-marshal-basic.c (_dbus_type_is_basic): Moved
4829         to dbus-signature.c
4830         (_dbus_type_is_container): Ditto.
4831
4832         * doc/dbus-specification.xml: Update introspection sample to
4833         use real type signatures.
4834
4835         * dbus/dbus-test.h: Prototype signature test.
4836
4837         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): Run
4838         signature tests.
4839
4840         * dbus/dbus-protocol.h (DBUS_ERROR_INVALID_SIGNATURE): New error.
4841
4842 2005-02-23  John (J5) Palmieri  <johnp@redhat.com>
4843
4844         * python/dbus_bindings.pyx.in (PendingCall::get_reply):
4845         s/dbus_pending_call_get_reply/dbus_pending_call_steal_reply
4846
4847 2005-02-21  Colin Walters  <walters@verbum.org>
4848
4849         * dbus/dbus-test-main.c (main): Take optional specific test
4850         argument.
4851
4852         * dbus/dbus-test.c (run_test): New function, runs a test function
4853         with no data directory.
4854         (run_data_test): Like above, but takes data directory.
4855         (dbus_internal_do_not_use_run_tests): Take
4856         specific test argument.  Replace lots of cut n' paste code
4857         with run_test and run_data_test.
4858
4859         * dbus/dbus-test.h: Update prototype for
4860         dbus_internal_do_not_use_run_tests.
4861
4862 2005-02-20  Havoc Pennington  <hp@redhat.com>
4863
4864         Fix bugs reported by Daniel P. Berrange
4865         
4866         * dbus/dbus-server.c (_dbus_server_unref_unlocked): new function
4867         (protected_change_watch): new function
4868         (_dbus_server_toggle_watch, _dbus_server_remove_watch)
4869         (_dbus_server_add_watch): change to work like the
4870         dbus-connection.c equivalents; like those, probably kind of
4871         busted, but should at least mostly work for now
4872         (dbus_server_disconnect): drop the lock if we were already
4873         disconnected, patch from Daniel P. Berrange
4874
4875         * dbus/dbus-server.c (_dbus_server_toggle_timeout) 
4876         (_dbus_server_remove_timeout, _dbus_server_add_timeout): all the
4877         same stuff
4878
4879         * doc/TODO: todo about unscrewing this mess
4880
4881 2005-02-19  Colin Walters  <walters@verbum.org>
4882
4883         * glib/dbus-binding-tool-glib.c
4884         (dbus_binding_tool_output_glib_server): Fix iochannel refcounting.
4885
4886         * glib/dbus-glib-tool.c: Include dbus-glib-tool.h, as well
4887         as errno.h and sys/stat.h.
4888         (lose): New function, prints error with
4889         newline and exits.
4890         (lose_gerror): Similar, but takes GError for message.
4891         (main): Add --output argument to specify output file to write to,
4892         instead of always printing to stdout.  In this mode, determine
4893         timestamps on source files to see whether any are newer than the
4894         target file.  If not, exit.  Also convert a number of error
4895         messages to use lose (since it's shorter), and switch to using
4896         g_io_channel_shutdown.
4897
4898 2005-02-19  Havoc Pennington  <hp@redhat.com>
4899
4900         * glib/dbus-gobject.c
4901         (_dbus_glib_marshal_dbus_message_to_gvalue_array): add docs
4902
4903         * glib/dbus-glib.c: fix doxygen warnings
4904
4905         * glib/dbus-gparser.c (parse_annotation): error if an annotation
4906         is found on an <arg>
4907
4908 2005-02-17  Colin Walters  <walters@verbum.org>
4909
4910         * glib/dbus-gobject.h: Don't export
4911         _dbus_glib_marshal_dbus_message_to_gvalue_array.
4912         
4913         * glib/dbus-gobject.c (_dbus_glib_marshal_dbus_message_to_gvalue_array): Do rename.
4914         (invoke_object_method): Handle it.
4915
4916         * glib/dbus-gproxy.c (marshal_dbus_message_to_g_marshaller):
4917         Handle rename.
4918         
4919 2005-02-17  Colin Walters  <walters@verbum.org>
4920
4921         * bus/.cvsignore, doc/.cvsignore
4922         * test/data/valid-service-files/.cvsignore, test/glib/.cvsignore:
4923         Update.
4924
4925 2005-02-17  Colin Walters  <walters@verbum.org>
4926         
4927         * dbus/dbus-protocol.h (DBUS_SERVICE_ORG_FREEDESKTOP_DBUS):
4928         Rename to DBUS_SERVICE_DBUS.
4929         (DBUS_PATH_ORG_FREEDESKTOP_DBUS): Rename to DBUS_PATH_DBUS.
4930         (DBUS_PATH_ORG_FREEDESKTOP_LOCAL): Rename to DBUS_PATH_LOCAL.
4931         Change the value from "org.freedesktop.Local"
4932         to "org.freedesktop.DBus.Local".
4933         (DBUS_INTERFACE_ORG_FREEDESKTOP_DBUS): Rename to DBUS_INTERFACE_DBUS.
4934         (DBUS_INTERFACE_ORG_FREEDESKTOP_INTROSPECTABLE): Rename to
4935         DBUS_INTERFACE_INTROSPECTABLE.
4936         Change the value from "org.freedesktop.Introspectable"
4937         to "org.freedesktop.DBus.Introspectable".
4938         (DBUS_INTERFACE_ORG_FREEDESKTOP_PROPERTIES): Rename to
4939         DBUS_INTERFACE_PROPERTIES.
4940         Change the value from "org.freedesktop.Properties"
4941         to "org.freedesktop.DBus.Properties".
4942         (DBUS_INTERFACE_ORG_FREEDESKTOP_PEER): Rename to
4943         DBUS_INTERFACE_PEER.
4944         Change the value from "org.freedesktop.Peer"
4945         to "org.freedesktop.DBus.Peer".
4946         (DBUS_INTERFACE_ORG_FREEDESKTOP_LOCAL): 
4947         DBUS_INTERFACE_LOCAL.
4948         Change the value from "org.freedesktop.Local"
4949         to "org.freedesktop.DBus.Local".
4950
4951         All other users of those constants have been changed.
4952
4953         * bus/driver.c (bus_driver_handle_introspect): Use constants.
4954
4955         * glib/dbus-gobject.c (handle_introspect): Use constants.
4956
4957         * doc/dbus-faq.xml, doc/dbus-specification.xml: Update for rename.
4958
4959 2005-02-17  Colin Walters  <walters@verbum.org>
4960
4961         * glib/dbus-gparser.c (struct Parser): Add in_annotation boolean.
4962         (parse_node, parse_interface, parse_method, parse_signal)
4963         (parse_property, parse_annotation): Lose if we're currently in an
4964         annotation.
4965         (parse_annotation): New function.
4966         (parser_start_element, parser_end_element): Handle annotation.
4967         (parse_method, parse_interface): Remove support for c_name attribute,
4968         switch to annotations.
4969
4970         * glib/dbus-gidl.h (interface_info_get_binding_names)
4971         (method_info_get_binding_names)
4972         (interface_info_get_binding_name, method_info_get_binding_name)
4973         (interface_info_set_binding_name, method_info_set_binding_name):
4974         Remove.
4975         (interface_info_get_annotations, method_info_get_annotations)
4976         (interface_info_get_annotation, method_info_get_annotation)
4977         (interface_info_add_annotation, method_info_add_annotation):
4978         Prototype.
4979
4980         * glib/dbus-gidl.c (struct InterfaceInfo): Substitute "annotations"
4981         for "bindings".
4982         (struct MethodInfo): Ditto.
4983         Straightfoward conversion of binding methods into annotation methods
4984         as prototyped.
4985
4986         * glib/dbus-glib-tool.c (pretty_print): Print annotations.
4987
4988         * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_C_SYMBOL): Define.
4989
4990         * glib/dbus-binding-tool-glib.c (gather_marshallers, generate_glue):
4991         Use new annotation API.
4992
4993         * doc/introspect.dtd: Fix a number of DTD syntax errors.  Add
4994         annotation element.
4995         
4996         * doc/dbus-specification.xml: Discuss introspection annotations,
4997         include list of well-known annotations.
4998
4999         * test/glib/test-service-glib.xml: Make validate against new DTD.
5000
5001 2005-02-17  Colin Walters  <walters@verbum.org>
5002
5003         This patch is based on initial work from
5004         Paul Kuliniewicz <kuliniew@purdue.edu>.
5005
5006         * glib/dbus-gvalue.c (dbus_gvalue_init): New function; move
5007         initialization of GValue from dbus type to here.
5008         (dbus_gvalue_genmarshal_name_from_type): New function; generates a string
5009         for the "glib-genmarshal" program from a DBus type.
5010         (dbus_gvalue_binding_type_from_type): New function; turns a DBus type
5011         into the C name for it we use in the glib bindings.
5012         (dbus_gvalue_ctype_from_type): New function; maps a DBus type into a
5013         glib C type (not GValue).
5014         (dbus_gvalue_demarshal): invoke dbus_gvalue_init.
5015
5016         * glib/dbus-gutils.c (_dbus_gutils_wincaps_to_uscore): Moved here
5017         from dbus-gobject.c.
5018
5019         * glib/dbus-gutils.h: Prototype it.
5020
5021         * glib/dbus-gproxy.c: Include new dbus-gobject.h.
5022         (marshal_dbus_message_to_g_marshaller): Use new shared function
5023         dbus_glib_marshal_dbus_message_to_gvalue_array.
5024
5025         * glib/dbus-gparser.c (parse_interface, parse_method): Handle c_name attribute.
5026         Will be changed once we have annotations.
5027
5028         * glib/dbus-gobject.c: Change info_hash_mutex from GStaticMutex to
5029         GStaticRWLock.  Callers updated.
5030         (wincaps_to_uscore): Move to dbus-gutils.c.  Callers updated.
5031         (string_table_next): New function for iterating over zero-terminated
5032         string value array.
5033         (string_table_lookup): New function; retrieves specific entry in
5034         array.
5035         (get_method_data): New function; look up method data in object data chunk.
5036         (object_error_domain_prefix_from_object_info)
5037         (object_error_code_from_object_info): New functions, but not implemented yet.
5038         (method_interface_from_object_info): New function; retrieve interface name.
5039         (method_name_from_object_info): New function; retrieve method name.
5040         (method_arg_info_from_object_info): New function; retrieve argument data.
5041         (arg_iterate): New function; iterates over serialized argument data.
5042         (method_dir_signature_from_object_info): New function; returns a
5043         GString holding type signature for arguments for just one
5044         direction (input or output).
5045         (method_input_signature_from_object_info)
5046         (method_output_signature_from_object_info): New functions.
5047         (dbus_glib_marshal_dbus_message_to_gvalue_array): New shared function;
5048         converts dbus message arguments into a GValue array.  Used for both
5049         signal handling and method invocation.
5050         (struct DBusGlibWriteIterfaceData): New utility structure.
5051         (write_interface): New function; generate introspection XML for
5052         an interface.
5053         (introspect_interfaces): New function; gathers all interface->methods,
5054         generates introspection XML for them.
5055         (handle_introspect): Invoke introspect_interfaces.
5056         (get_object_property): Be sure to zero-initalize stack-allocated GValue.
5057         (lookup_object_and_method): New function; examines an incoming message
5058         and attempts to match it up (via interface, method name, and argument
5059         signature) with a known object and method.
5060         (gerror_domaincode_to_dbus_error_name): New function; converts a
5061         GError domain and code into a DBus error name.  Needs GError data
5062         added to object introspection to work well.
5063         (gerror_to_dbus_error_message): Creates a DBusMessage error return from
5064         GError.
5065         (invoke_object_method): New function to invoke an object method
5066         looked up via lookup_object_and_method.  Parses the incoming
5067         message, turns it into a GValue array, then invokes the marshaller
5068         specified in the DBusGMethodInfo.  Creates a new message with
5069         either return values or error message as appropriate.
5070         (gobject_message_function): Invoke lookup_object_and_method and
5071         invoke_object_method.
5072
5073         * glib/dbus-glib-tool.c: Include dbus-binding-tool-glib.h.
5074         (enum DBusBindingOutputMode): New enum for binding output modes.
5075         (pretty_print): Print binding names.
5076         (dbus_binding_tool_error_quark): GError bits.
5077         (version): Fix typo.
5078         (main): Create GIOChannel for output.  Parse new --mode argument,
5079         possible values are "pretty-print", "glib-server", "glib-client".
5080         Use mode to invoke appropriate function.
5081         
5082         * glib/dbus-gobject.h: Prototype dbus_glib_marshal_dbus_message_to_gvalue_array.
5083
5084         * glib/dbus-glib-tool.h: New header, just includes GError bits
5085         for now.
5086
5087         * glib/dbus-gidl.c (struct InterfaceInfo): Add bindings hashtable;
5088         maps binding style to name.
5089         (struct MethodInfo): Ditto.
5090         (get_hash_keys, get_hash_key): Utility function, returns keys for
5091         a GHashTable.
5092         (interface_info_new, method_info_new): Initialize bindings.
5093         (interface_info_unref, method_info_unref): Destroy bindings.
5094         (method_info_get_binding_names, method_info_get_binding_name)
5095         (interface_info_get_binding_names, interface_info_get_binding_name):
5096         Functions for retrieving binding names.
5097         (method_info_set_binding_name, interface_info_set_binding_name):
5098         Functions for setting binding names.
5099
5100         * glib/dbus-binding-tool-glib.h: New file, has prototypes
5101         for glib binding generation.
5102
5103         * glib/dbus-binding-tool-glib.c: New file, implements server-side
5104         and client-side glib glue generation.
5105
5106         * glib/Makefile.am (dbus_binding_tool_SOURCES): Add
5107         dbus-binding-tool-glib.c, dbus-binding-tool-glib.h,
5108         dbus-glib-tool.h.
5109
5110         * dbus/dbus-glib.h (struct DBusGMethodMarshaller): Remove in favor
5111         of using GClosureMarshal directly.
5112         (struct DBusGObjectInfo): Add n_infos member.
5113
5114         * test/glib/test-service-glib.xml: New file; contains introspection data
5115         for MyTestObject used in test-service-glib.c.
5116
5117         * test/glib/test-service-glib.c (enum MyObjectError): New GError enum.
5118         (my_object_do_nothing, my_object_increment, my_object_throw_error)
5119         (my_object_uppercase, my_object_many_args): New test methods.
5120         (main): Use dbus_g_object_class_install_info to include generated object
5121         info.
5122
5123         * test/glib/Makefile.am: Generate server-side glue for test-service-glib.c,
5124         as well as client-side bindings.
5125
5126         * test/glib/test-dbus-glib.c: Include test-service-glib-bindings.h.
5127         (main): Activate TestSuiteGLibService; test invoke a bunch of its methods
5128         using both the dbus_gproxy stuff directly as well as the generated bindings.
5129
5130 2005-02-15  Havoc Pennington  <hp@redhat.com>
5131
5132         * dbus/dbus-connection.c (dbus_connection_dispatch): always
5133         complete a pending call, don't run filters first.
5134
5135         * glib/dbus-gproxy.c (dbus_g_proxy_end_call): change to use
5136         dbus_pending_call_steal_reply
5137
5138         * dbus/dbus-pending-call.c (dbus_pending_call_block): just call
5139         _dbus_connection_block_pending_call
5140         (dbus_pending_call_get_reply): change to steal_reply and return a
5141         ref
5142
5143         * dbus/dbus-connection.c
5144         (dbus_connection_send_with_reply_and_block): port to work in terms
5145         of DBusPendingCall
5146         (_dbus_connection_block_pending_call): replace block_for_reply
5147         with this
5148
5149 2005-02-14  Havoc Pennington  <hp@redhat.com>
5150
5151         * dbus/dbus-userdb-util.c (_dbus_user_database_lookup_group):
5152         properly handle looking up group information by name; fix 
5153         from j@bootlab.org
5154
5155 2005-02-13  Havoc Pennington  <hp@redhat.com>
5156
5157         * dbus/dbus-connection.c (dbus_connection_return_message) 
5158         (dbus_connection_borrow_message): hold dispatch lock while message
5159         is outstanding
5160         (_dbus_connection_block_for_reply): hold dispatch lock while we
5161         block for the reply, so nobody steals our reply
5162         (dbus_connection_pop_message): hold the dispatch lock while we
5163         pluck the message
5164
5165 2005-02-13  Havoc Pennington  <hp@redhat.com>
5166
5167         * dbus/dbus-connection.c (_dbus_connection_acquire_dispatch)
5168         (_dbus_connection_release_dispatch)
5169         (_dbus_connection_acquire_io_path)
5170         (_dbus_connection_release_io_path): make the mutex and condvar
5171         control access to the "acquired" flag. Drop the connection lock
5172         while waiting on the condvar. Hopefully these are baby steps in
5173         roughly the right direction.
5174
5175 2005-02-13  Havoc Pennington  <hp@redhat.com>
5176
5177         * dbus/dbus-connection.c: use separate mutexes for the condition
5178         variables; this is some kind of baseline for sanity, but the
5179         condition variables still aren't used correctly afaict
5180
5181 2005-02-13  Havoc Pennington  <hp@redhat.com>
5182
5183         * dbus/dbus-object-tree.c (handle_default_introspect_and_unlock):
5184         fix a double-unlock
5185
5186         * dbus/dbus-connection.c
5187         (_dbus_connection_detach_pending_call_unlocked): add this
5188
5189         Initial semi-correct pass through to fix thread locking; there are
5190         still some issues with the condition variable paths I'm pretty
5191         sure
5192         
5193         * dbus/dbus-server.c: add a mutex on DBusServer and appropriate
5194         lock/unlock calls
5195
5196         * dbus/dbus-connection.c (_dbus_connection_do_iteration_unlocked):
5197         rename to add _unlocked
5198         (struct DBusConnection): move "dispatch_acquired" and
5199         "io_path_acquired" to use only one bit each.
5200         (CONNECTION_LOCK, CONNECTION_UNLOCK): add checks with !DBUS_DISABLE_CHECKS
5201         (dbus_connection_set_watch_functions): hacky fix to reentrancy
5202         (_dbus_connection_add_watch, _dbus_connection_remove_watch) 
5203         (_dbus_connection_toggle_watch, _dbus_connection_add_timeout) 
5204         (_dbus_connection_remove_timeout) 
5205         (_dbus_connection_toggle_timeout): drop lock when calling out to
5206         user functions; done in a hacky/bad way.
5207         (_dbus_connection_send_and_unlock): add a missing unlock
5208         (_dbus_connection_block_for_reply): add a missing unlock
5209
5210         * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated):
5211         drop lock in a hacky probably unsafe way to call out to user
5212         function
5213
5214 2005-02-12  Havoc Pennington  <hp@redhat.com>
5215
5216         * tools/dbus-tree-view.c (info_set_func_text): display more
5217         details on args
5218
5219         * bus/driver.c (bus_driver_handle_list_services): list the bus
5220         driver
5221
5222         * glib/dbus-gparser.c (parse_arg): generate an arg name if none is supplied
5223
5224         * glib/dbus-gidl.c (signal_info_get_n_args): new function
5225         (method_info_get_n_args): new function
5226
5227 2005-02-12  Havoc Pennington  <hp@redhat.com>
5228
5229         * bus/driver.c (bus_driver_handle_introspect): add introspection
5230         for bus driver
5231
5232 2005-02-12  Havoc Pennington  <hp@redhat.com>
5233
5234         * bus/driver.c: put the signature of each bus driver method in the
5235         table of handlers and check it on incoming calls; this isn't
5236         really useful, but going to add introspect support in a minute.
5237
5238 2005-02-11  Joe Shaw  <joeshaw@novell.com>
5239
5240         * mono/Connection.cs: The unpredictability of finalizers in mono
5241         prevents us from deterministically disconnecting the filters from
5242         the Service class's finalizer, so move tracking of filters and
5243         matches here.  Add API for that.
5244
5245         * mono/Service.cs: Remove the code, add code which calls the
5246         methods now on the Connection class.
5247
5248 2005-02-11  John (J5) Palmieri  <johnp@redhat.com>
5249
5250         * python/dbus.py (class Sender): added to support dbus signals better
5251         (Bus::add_signal_receiver): added expand_args parameter which defaults
5252         to True.  When expand args is True the signal handler will pass the 
5253         message arguments as parameters to the signal handler.  If False
5254         revert to previous behavior where the signal handler must get the
5255         argument list from the message.  This is to help port applications
5256         like HAL that have a tendancy to send variable length argument lists.
5257         self._match_rule_to_receivers is now a dict of dicts.
5258         (Bus::remove_signal_receiver): pop handler off the dict intead of 
5259         removing it from a list
5260         (Bus::_signal_func): change signal handlers so that interface,
5261         signal_name, service, path and message are packed into a Sender
5262         object and that is passed to the handler.  If expand_args is True
5263         extract the args list from the message and append it to the parameter
5264         list
5265         
5266         * python/dbus_bindings.pyx.in (class Signature): added to support 
5267         signiature types
5268         (MessageIter::__init__): changed iteration limit to match D-BUS
5269         (MessageIter::get*): added INT16, UINT16, SIGNATURE, DICT_ENTRY, 
5270         STRUCT and VARIENT type support
5271         (MessageIter::python_value_to_dbus_sig): made recursive to support
5272         recursive types
5273         (MessageIter::append*): added Signature, dict, tuple 
5274         support
5275
5276         * python/examples/example-client.py: added examples of getting tuples
5277         and dicts
5278
5279         * python/examples/example-service.py: added examples of sending tuples
5280         and dicts
5281
5282         * python/examples/example-signal-recipient.py: Fixed to handle new
5283         signal callback format
5284
5285 2005-02-10  Havoc Pennington  <hp@redhat.com>
5286
5287         * test/glib/test-dbus-glib.c (main): fix so this test doesn't fail
5288         (call dbus_g_proxy_add_signal)
5289
5290         * dbus/dbus-server-unix.c (_dbus_server_new_for_tcp_socket):
5291         escape the hostname
5292         (_dbus_server_new_for_domain_socket): escape the path
5293
5294         * dbus/dbus-address.c (dbus_address_escape_value): new
5295         (dbus_address_unescape_value): new
5296         (dbus_parse_address): unescape values
5297
5298         * dbus/dbus-string.c (_dbus_string_append_byte_as_hex): new function
5299
5300         * doc/dbus-specification.xml: explain how to escape values in
5301         addresses
5302
5303 2005-02-10  Havoc Pennington  <hp@redhat.com>
5304
5305         * dbus/dbus-message-factory.c (generate_special): modify test to
5306         avoid using a non-basic dict key
5307
5308         * dbus/dbus-marshal-validate-util.c: add test for the below
5309
5310         * doc/dbus-specification.xml: require that dict keys are a basic
5311         type
5312
5313         * dbus/dbus-marshal-validate.c
5314         (_dbus_validate_signature_with_reason): require that dict key is a
5315         basic type
5316
5317 2005-02-10  Havoc Pennington  <hp@redhat.com>
5318
5319         * dbus/dbus-object-tree.c (handle_default_introspect_and_unlock):
5320         change to be _and_unlock instead of _unlocked
5321
5322         * dbus/dbus-connection.c
5323         (_dbus_connection_send_preallocated_unlocked_no_update): rename to
5324         have no_update so we can find this bug quickly in future
5325
5326 2005-02-10  Havoc Pennington  <hp@redhat.com>
5327
5328         * dbus/dbus-message-util.c (verify_test_message): tests for string
5329         array
5330
5331         * dbus/dbus-message.c (dbus_message_append_args_valist): add
5332         support for arrays of string/signature/path
5333
5334 2005-02-10  Joe Shaw  <joeshaw@novell.com>
5335
5336         * dbus/dbus-connection.c
5337         (_dbus_connection_queue_received_message_link,
5338         _dbus_connection_message_sent): Add the path to
5339         the verbose output.
5340         (_dbus_connection_send_preallocated_and_unlock): Added.  Calls
5341         _dbus_connection_send_preallocated_unlocked(), updated the
5342         dispatch status, and unlocks.  Fixes a bug where certain
5343         situations (like a broken pipe) could cause a Disconnect message
5344         to not be sent, tricking the bus into thinking a service was still
5345         there when the process had quit.
5346         (_dbus_connection_send_preallocated): Call
5347         _dbus_connection_send_preallocated_and_unlock().
5348         (_dbus_connection_send_and_unlock): Added.  Calls
5349         _dbus_connection_send_preallocated_and_unlock().
5350         (dbus_connection_send): Call _dbus_connection_send_and_unlock().
5351         (dbus_connection_send_with_reply): Update the dispatch status and
5352         unlock.
5353
5354         * mono/Service.cs (~Service): Added.  Removes the filter so that
5355         we don't get unmanaged code calling back into a GCed delegate.
5356         (RemoveFilter); Added.
5357
5358 2005-02-09  John (J5) Palmieri  <johnp@redhat.com>
5359
5360         * dbus/dbus-message.c (dbus_message_iter_open_container):
5361         - Removed check for iterator type being an array because
5362         get_arg_type does not work with writer iterators
5363         - Pass NULL to _dbus_type_writer_recurse if signiture is NULL
5364
5365 2005-02-07  Havoc Pennington  <hp@redhat.com>
5366
5367         * doc/dbus-specification.xml: some more language cleanups; add
5368         stuff about how to deal with invalid protocol and extension
5369         points; add _ to allowed chars in auth commands; add EXTENSION_
5370         auth command prefix
5371
5372 2005-02-06  Havoc Pennington  <hp@redhat.com>
5373
5374         * s/expected/required/ in a couple places for clarity
5375
5376 2005-02-07  Colin Walters  <walters@verbum.org>
5377
5378         * bus/selinux.c (bus_selinux_allows_send): Handle NULL for
5379         sender or proposed_recipient.
5380
5381 2005-02-06  Havoc Pennington  <hp@redhat.com>
5382
5383         * dbus/dbus-message-factory.c (generate_special): more tests
5384
5385         * dbus/dbus-marshal-validate.c (validate_body_helper): detect
5386         array length that exceeds the maximum
5387
5388 2005-02-05  Havoc Pennington  <hp@redhat.com>
5389
5390         * dbus/dbus-message-factory.c (generate_special): more test cases,
5391         increasing coverage
5392
5393         * dbus/dbus-marshal-validate.c (validate_body_helper): return the
5394         reason why a signature was invalid
5395
5396         * dbus/dbus-marshal-header.c (load_and_validate_field): fix to
5397         skip the length of the string before we look at it in validation
5398
5399         * dbus/dbus-string-util.c (_dbus_string_test): add tests for
5400         equal_substring
5401
5402         * dbus/dbus-message.c (_dbus_message_loader_new): default
5403         max_message_length to DBUS_MAXIMUM_MESSAGE_LENGTH
5404
5405 2005-02-05  Havoc Pennington  <hp@redhat.com>
5406
5407         * dbus/dbus-marshal-validate.c (validate_body_helper): fix crash
5408         if the signature of a variant was empty
5409         (_dbus_validate_signature_with_reason): catch "(a)" (array inside
5410         struct with no element type)
5411
5412         * dbus/dbus-message-factory.c (generate_uint32_changed): add more
5413         mangled messages to break things
5414
5415 2005-02-04  Havoc Pennington  <hp@redhat.com>
5416
5417         * glib/dbus-gproxy.c (dbus_g_proxy_disconnect_signal): use
5418         g_quark_try_string() so it actually can return 0
5419         (dbus_g_proxy_connect_signal): ditto
5420
5421 2005-02-04  Havoc Pennington  <hp@redhat.com>
5422
5423         * glib/dbus-gproxy.c (dbus_g_proxy_emit_remote_signal): fix a
5424         bogus warning
5425         (tristring_from_message): assert cleanly on null path/interface
5426         (should not be possible though I decided later)
5427         (dbus_g_proxy_dispose): move proxy manager unregistration here
5428         (DBUS_G_PROXY_DESTROYED): add this macro, and use it in a bunch of
5429         g_return_if_fail() checks
5430
5431 2005-02-04  Havoc Pennington  <hp@redhat.com>
5432
5433         * doc/Makefile.am (EXTRA_DIST): add DTDs to makefile
5434
5435         * doc/introspect.dtd: add introspect.dtd from David A. Wheeler
5436         (with some minor changes)
5437
5438         * doc/dbus-specification.xml: add deprecated attribute to
5439         introspection format
5440
5441 2005-01-31  Havoc Pennington  <hp@redhat.com>
5442
5443         * glib/dbus-gproxy.c: rewrite how signals work again, this time I
5444         think it's sort of right
5445
5446 2005-01-30  Havoc Pennington  <hp@redhat.com>
5447
5448         * tools/dbus-viewer.c: kind of half-ass hook up the option menu.
5449
5450 2005-01-30  Havoc Pennington  <hp@redhat.com>
5451
5452         * tools/dbus-names-model.c: dynamically watch NameOwnerChanged
5453
5454         * autogen.sh: change to autotools 1.9
5455
5456         * glib/dbus-gproxy.c: completely change how signals work
5457         (dbus_g_proxy_add_signal): new function to specify signature of a
5458         signal
5459         (dbus_g_proxy_emit_received): marshal the dbus message to GValues,
5460         and g_warning if the incoming message has the wrong signature.
5461
5462 2005-01-30  Havoc Pennington  <hp@redhat.com>
5463
5464         * tools/dbus-names-model.c (have_names_notify): fix this
5465
5466         * dbus/dbus-message.c (_dbus_message_iter_get_args_valist): clean
5467         up the string array handling a bit 
5468
5469 2005-01-30  Havoc Pennington  <hp@redhat.com>
5470
5471         * glib/dbus-glib.c (dbus_g_pending_call_set_notify): new function
5472         (dbus_g_pending_call_cancel): new function
5473
5474         * dbus/dbus-glib.h: move GType decls for connection/message here;
5475         * dbus/dbus-glib.c: move all the g_type and ref/unref stuff in
5476         here, just kind of rationalizing how we handle all that
5477
5478         * tools/dbus-names-model.c: new file for a tree model listing the
5479         services on a bus
5480
5481         * tools/dbus-tree-view.c (model_new): use proper typing on the
5482         model rows
5483
5484 2005-01-30  Havoc Pennington  <hp@redhat.com>
5485
5486         * glib/dbus-gmain.c: add a custom GSource back that just checks
5487         whether the message queue has anything in it; otherwise, there are 
5488         cases where we won't see messages in the queue since there was no 
5489         IO visible to the glib main loop
5490
5491         * dbus/dbus-connection-internal.h (_DBUS_DEFAULT_TIMEOUT_VALUE):
5492         increase default message timeout to 25 seconds
5493
5494 2005-01-30  Havoc Pennington  <hp@redhat.com>
5495
5496         * test/glib/test-profile.c (no_bus_stop_server): remove the
5497         warning about the g_warning that I just fixed
5498
5499         * glib/dbus-gmain.c: rewrite the main loop stuff to avoid the
5500         custom source, seems to be a lot easier to understand and work
5501         better.
5502
5503 2005-01-30  Havoc Pennington  <hp@redhat.com>
5504
5505         I think this main loop thing is conceptually broken, but here are 
5506         some band aids. I'll maybe rewrite it in a minute.
5507         
5508         * glib/dbus-gmain.c (add_timeout): timeout stuff doesn't use the
5509         custom GSource, so don't pass it in; confusing
5510         (gsource_server_finalize, gsource_connection_finalize): add
5511         finalize handlers that remove all the watches.  
5512
5513 2005-01-30  Havoc Pennington  <hp@redhat.com>
5514
5515         * glib/dbus-gobject.c (introspect_properties): fix the XML
5516         generated
5517
5518         * dbus/dbus-message.c (dbus_message_unref): add an in_cache flag
5519         which effectively detects the use of freed messages
5520
5521         * glib/dbus-gobject.c (handle_introspect): modify and return the
5522         reply message instead of the incoming message
5523
5524         * dbus/dbus-object-tree.c (handle_default_introspect_unlocked):
5525         gee, maybe it should SEND THE XML instead of just making a string
5526         and freeing it again ;-)
5527
5528         * tools/dbus-print-message.c (print_message): improve printing of
5529         messages
5530
5531         * configure.in: add debug-glib.service to the output
5532
5533 2005-01-30  Havoc Pennington  <hp@redhat.com>
5534
5535         dbus-viewer introspected and displayed the bus driver
5536         
5537         * dbus/dbus-object-tree.c 
5538         (object_tree_test_iteration): add tests for a handler registered on "/"
5539
5540         * dbus/dbus-object-tree.c
5541         (_dbus_decompose_path): fix to handle path "/" properly
5542         (run_decompose_tests): add tests for path decomposition
5543         
5544         * glib/dbus-gutils.c (_dbus_gutils_split_path): fix to handle "/"
5545         properly
5546
5547         * glib/dbus-gobject.c (handle_introspect): fix quotes
5548
5549         * test/glib/run-test.sh: support launching the bus, then running
5550         dbus-viewer
5551
5552         * test/glib/test-service-glib.c (main): put in a trivial gobject
5553         subclass and register it on the connection
5554
5555         * bus/driver.c (bus_driver_handle_introspect): implement
5556         introspection of the bus driver service
5557
5558         * dbus/dbus-protocol.h: add #defines for the XML namespace,
5559         identifiers, doctype decl
5560
5561         * bus/driver.c (bus_driver_handle_get_service_owner): handle
5562         attempts to get owner of DBUS_SERVICE_ORG_FREEDESKTOP_DBUS by 
5563         returning the service unchanged.
5564         (bus_driver_handle_message): remove old check for reply_serial in
5565         method calls, now the message type deals with that
5566         (bus_driver_handle_message): handle NULL interface
5567
5568         * glib/dbus-gproxy.c (dbus_g_proxy_get_bus_name): new function
5569
5570         * glib/dbus-gloader-expat.c (description_load_from_string): allow
5571         -1 for len
5572
5573         * tools/dbus-viewer.c: add support for introspecting a service on
5574         a bus
5575
5576         * glib/dbus-gproxy.c (dbus_g_pending_call_ref): add
5577         (dbus_g_pending_call_unref): add
5578
5579 2005-01-29  Havoc Pennington  <hp@redhat.com>
5580
5581         * tools/dbus-tree-view.c: add support for displaying properties.
5582         (run dbus-viewer with an introspect xml file as arg, then resize
5583         the window so the tree elements show up, not sure what that is)
5584
5585         * glib/dbus-gobject.c (handle_introspect): return
5586         org.freedesktop.Properties and org.freedesktop.Introspectable
5587         interfaces when we are introspected.
5588
5589         * doc/dbus-specification.xml: allow empty interface name when 
5590         Get/Set a property
5591
5592 2005-01-29  Havoc Pennington  <hp@redhat.com>
5593
5594         * glib/Makefile.am: rename dbus-glib-tool to dbus-binding-tool;
5595         though it uses glib, it could be extended for any binding in
5596         principle
5597
5598         * glib/dbus-gobject.c (gobject_message_function): change to the
5599         new way properties work
5600
5601         * dbus/dbus-protocol.h: add the new interfaces
5602
5603         * doc/dbus-specification.xml: document the introspection format,
5604         Introspectable interface, and add an org.freedesktop.Properties
5605         interface.
5606
5607         * glib/dbus-gparser.c: add support for a <property> element
5608
5609         * glib/dbus-gidl.c: add PropertyInfo
5610
5611         * glib/dbus-gobject.c (handle_introspect): put the outermost
5612         <node> outside the signal and property descriptions.
5613         (introspect_properties): export properties as <property> rather
5614         than as method calls
5615
5616 2005-01-28  Havoc Pennington  <hp@redhat.com>
5617
5618         * doc/TODO, doc/dbus-specification.xml: spec and TODO tweaks
5619         related to authentication protocol
5620
5621 2005-01-28  John (J5) Palmieri  <johnp@redhat.com>
5622
5623         * python/dbus_bindings.pyx.in: Updated to handle new D-BUS type system
5624                 - BUS_ACTIVATION -> BUS_STARTER
5625                 - DBUS_BUS_ACTIVATION -> DBUS_BUS_STARTER
5626                 - class MessageIter (__init__): Added recursion checking 
5627                 so we throw a nice error instead of just disconnecting from the
5628                 bus.
5629                 (get): Added arg_type parameter for recursion.
5630                 Removed the nil type
5631                 Added signiture type placeholder (not implemented)
5632                 Added struct type placeholder (not implemented)
5633                 Added varient type placeholder (not implemented)
5634                 Commented out dict type for now     
5635                 (get_element_type): renamed from get_array_type
5636                 (get_*): changed to use the dbus_message_iter_get_basic API
5637                 (get_*_array): removed in favor of recursive get_array method
5638                 (get_array): new recursive method which calls get to marshal
5639                 the elements of the array
5640                 (value_to_dbus_sig): New method returns the corrasponding
5641                 dbus signiture to a python value
5642                 (append): Comment out dict handling for now
5643                 Handle lists with the new recursive API
5644                 Comment out None handling for now
5645                 (append_nil): removed
5646                 (append_*): changed to use dbus_message_iter_append_basic API
5647                 (append_*_array): removed in favor of recursive append_array 
5648                 method
5649                 (__str__): Make it easier to print out recursive iterators
5650                 for debugging
5651                 - class Message (__str__): moved type inspection to the
5652                 MessageIter class' __str__ method
5653                 (get_iter): Added an append parameter wich defaults to False
5654                 If True use the new API's to create an append iterator
5655
5656         * python/dbus.py: Update to use new bindings API
5657                 - TYPE_ACTIVATION -> TYPE_STARTER
5658                 - class Bus (_get_match_rule): GetServiceOwner -> GetNameOwner
5659                 - class ActivationBus -> class StarterBus
5660                 - class RemoteObject (__call__): get an append iterator
5661                 - (_dispatch_dbus_method_call): get an append iterator
5662                 - class Object (emit_signal): get an append iterator
5663
5664         * python/examples/: Fixed up the examples to work with the new API
5665                 
5666 2005-01-28  Joe Shaw  <joeshaw@novell.com>
5667
5668         * configure.in: Bump version up to 0.30.
5669
5670         * HACKING: Add a release item to bump the version number up after 
5671         a release.
5672
5673 2005-01-28  Havoc Pennington  <hp@redhat.com>
5674
5675         * doc/dbus-specification.xml: update to describe 16-bit types and
5676         dict entries
5677
5678         * dbus/dbus-marshal-basic.c (_dbus_unpack_uint16): fix broken
5679         assertion
5680
5681         * dbus/dbus-protocol.h (DBUS_TYPE_DICT_ENTRY): add DICT_ENTRY as a
5682         type
5683
5684         * dbus/dbus-marshal-recursive.c: implement
5685
5686 2005-01-27  Havoc Pennington  <hp@redhat.com>
5687
5688         * dbus/dbus-arch-deps.h.in: add 16/32-bit types
5689
5690         * configure.in: find the right type for 16 and 32 bit ints as well
5691         as 64
5692
5693         * dbus/dbus-protocol.h (DBUS_TYPE_INT16, DBUS_TYPE_UINT16): add
5694         the 16-bit types so people don't have to stuff them in 32-bit or
5695         byte arrays.
5696
5697 2005-01-27  Havoc Pennington  <hp@redhat.com>
5698
5699         * dbus/dbus-message.c: byteswap the message if you init an
5700         iterator to read/write from it
5701         
5702         * dbus/dbus-marshal-byteswap.c: new file implementing 
5703         _dbus_marshal_byteswap()
5704
5705         * dbus/dbus-marshal-basic.c: add _dbus_swap_array()
5706
5707 2005-01-26  Havoc Pennington  <hp@redhat.com>
5708         
5709         * dbus/dbus-marshal-validate-util.c: break this out (and fix
5710         build, apparently - nobody noticed?)
5711         
5712 2005-01-26  Havoc Pennington  <hp@redhat.com>
5713
5714         * dbus/dbus-marshal-recursive.h: remove todo comment
5715
5716 2005-01-25  Joe Shaw  <joeshaw@novell.com>
5717
5718         * Land the mono binding changes to conform to the new APIs.
5719
5720         * mono/Makefile.am: Remove Custom.cs, DBusType/Custom.cs,
5721         DBusType/Dict.cs, and DBusType/Nil.cs from the build.
5722
5723         * mono/Arguments.cs (GetCodeAsString): Added.  Returns the dbus
5724         type code as a string.
5725         (InitAppending): Rename dbus_message_append_iter_init() to
5726         dbus_message_iter_init_append().
5727
5728         * mono/BusDriver.cs: Rename ServiceEventHandler to
5729         NameOwnerChangedHandler.  Rename GetServiceOwner to GetOwner.
5730         Rename ServiceOwnerChanged to NameOwnerChanged.
5731
5732         * mono/Connection.cs: Rename BaseService to UniqueName, and the
5733         underlying C call.
5734
5735         * mono/Custom.cs: Removed.  The CUSTOM type has been removed.
5736
5737         * mono/Service.cs: Rename Exists to HasOwner, internally rename
5738         dbus_bus_acquire_service() to dbus_bus_request_name().
5739
5740         * mono/DBusType/Array.cs (ctor): Use Type.GetElementType() instead
5741         of Type.UnderlyingSystemType to get the correct element type for
5742         the array.
5743         (ctor): Update code for new APIs: use dbus_message_iter_recurse(),
5744         dbus_message_get_{element|arg}_type() instead of
5745         dbus_message_iter_init_array_iterator().
5746         (Append): Replace dbus_message_iter_append_array() with
5747         dbus_message_iter_open_container() and
5748         dbus_message_iter_close_container().
5749
5750         * mono/DBusType/Custom.cs, mono/DBusType/Nil.cs: Removed.  These
5751         types have been removed.
5752         
5753         * mono/DBusType/*.cs: Replace calls of
5754         dbus_message_iter_get_[type]() to dbus_message_iter_get_basic(),
5755         but specify the type in the DllImport extern declaration.  Ditto
5756         for dbus_message_iter_append_[type]() ->
5757         dbus_message_iter_append_basic().
5758
5759         * mono/example/BusListener.cs: Update for ServiceEventHandler ->
5760         NameOwnerChangedHandler.
5761
5762 2005-01-25  John (J5) Palmieri  <johnp@redhat.com>
5763
5764         * python/dbus_bindings.pyx.in: Rename of methods and bindings
5765                 - get_base_service -> get_unique_name
5766                 - bus_get_base_service -> bus_get_unique_name
5767                 - dbus_bus_get_base_service -> dbus_bus_get_unique_name
5768                 - ACTIVATION_REPLY_ACTIVATED -> DBUS_START_REPLY_SUCCESS 
5769                 - ACTIVATION_REPLY_ALREADY_ACTIVE -> DBUS_START_REPLY_ALREADY_RUNNING
5770                 - bus_activate_service -> bus_start_service_by_name
5771                 - dbus_bus_activate_service -> dbus_bus_start_service_by_name
5772                 - bus_acquire_service -> bus_request_name
5773                 - dbus_bus_acquire_service -> dbus_bus_request_name
5774                 - bus_service_exists -> bus_name_has_owner
5775                 - dbus_bus_service_exists -> dbus_bus_name_has_owner
5776
5777         * python/dbus.py: Rename of methods
5778                 - activate_service -> start_service_by_name
5779                 - bus_acquire_service -> bus_request_name
5780                 - ACTIVATION_REPLY_ACTIVATED -> START_REPLY_SUCCESS 
5781                 - ACTIVATION_REPLY_ALREADY_ACTIVE -> START_REPLY_ALREADY_RUNNING
5782
5783         
5784 2005-01-24  Joe Shaw  <joeshaw@novell.com>
5785
5786         * dbus/dbus-connection.c (dbus_connection_dispatch): Print out the
5787         signature for the method that can't be found.
5788
5789         * dbus/dbus-message.c (dbus_message_iter_init): To check to see if
5790         the message has any arguments, we need to call
5791         _dbus_type_reader_get_current_type(), not
5792         _dbus_type_reader_has_next().
5793
5794 2005-01-24  Havoc Pennington  <hp@redhat.com>
5795
5796         * dbus/dbus-message-factory.c: more testing of message validation
5797
5798         * dbus/dbus-protocol.h (DBUS_MINIMUM_HEADER_SIZE): move to this
5799         header
5800
5801 2005-01-23  Havoc Pennington  <hp@redhat.com>
5802
5803         * dbus/dbus-message-factory.c, dbus/dbus-message-util.c: 
5804         get this all working, not many tests in the framework yet though
5805
5806 2005-01-22  Havoc Pennington  <hp@redhat.com>
5807
5808         * doc/dbus-faq.xml, doc/dbus-tutorial: add a FAQ and update
5809         tutorial, based on work from David Wheeler.
5810
5811 2005-01-21  Havoc Pennington  <hp@redhat.com>
5812
5813         * dbus/dbus-bus.c: add more return_if_fail checks
5814
5815         * dbus/dbus-message.c (load_message): have the "no validation"
5816         mode (have to edit the code to toggle the mode for now though)
5817
5818         * dbus/dbus-marshal-header.c (_dbus_header_load): have a mode that
5819         skips all validation; I want to use this at least for benchmark
5820         baseline, I'm not sure if it should be a publicly-available switch.
5821
5822 2005-01-21  Havoc Pennington  <hp@redhat.com>
5823
5824         * glib/dbus-gmain.c: don't put the GLib bindings in the same
5825         toplevel doxygen group as the low-level API stuff
5826
5827         * dbus/dbus.h: note that libdbus is the low-level API
5828
5829 2005-01-20  Havoc Pennington  <hp@redhat.com>
5830
5831         * update-dbus-docs.sh: script to update docs on the web site, only
5832         works for me though. neener.
5833
5834 2005-01-20  Havoc Pennington  <hp@redhat.com>
5835
5836         * dbus/dbus-sysdeps.c (_dbus_poll): amazingly, trying to compile
5837         code can reveal bugs in it
5838
5839 2005-01-20  Havoc Pennington  <hp@redhat.com>
5840
5841         * dbus/dbus-sysdeps.c (_dbus_poll): fix several bugs in the
5842         select() version, patches from Tor Lillqvist
5843
5844 2005-01-20  Havoc Pennington  <hp@redhat.com>
5845
5846         * doc/dbus-tutorial.xml: replace > with &gt;
5847
5848         * bus/services.c (bus_registry_acquire_service): validate the name
5849         and return a better error if it's no good.
5850
5851         * doc/dbus-specification.xml: note NO_AUTO_START change
5852
5853         * dbus/dbus-protocol.h (DBUS_HEADER_FLAG_NO_AUTO_START): change
5854         from AUTO_START, we're toggling the default
5855
5856         * bus/dispatch.c: adapt the tests to change of auto-start default
5857
5858 2005-01-18  Havoc Pennington  <hp@redhat.com>
5859
5860         * rename dbus-daemon-1 to dbus-daemon throughout
5861
5862 2005-01-18  Havoc Pennington  <hp@redhat.com>
5863
5864         * Throughout, grand renaming to strip out the use of "service",
5865         just say "name" instead (or "bus name" when ambiguous).  Did not
5866         change the internal code of the message bus itself, only the
5867         programmer-facing API and messages.
5868         
5869         * doc/dbus-specification.xml: further update the message bus section
5870         
5871         * bus/config-parser.c (all_are_equiv): fix bug using freed string
5872         in error case
5873
5874 2005-01-17  Havoc Pennington  <hp@redhat.com>
5875
5876         * dbus/dbus-types.h: remove 16-bit types since we don't use them
5877         ever
5878
5879         * dbus/dbus-marshal-validate.c (_dbus_validate_path): disallow any
5880         "invalid name character" not only non-ASCII
5881
5882         * doc/dbus-specification.xml: further update spec, message bus 
5883         parts are still out-of-date but the marshaling etc. stuff is now
5884         accurate-ish
5885
5886 2005-01-17  Havoc Pennington  <hp@redhat.com>
5887
5888         * doc/dbus-specification.xml: partially update spec
5889
5890 2005-01-17  Havoc Pennington  <hp@redhat.com>
5891
5892         * Throughout, align variant bodies according to the contained
5893         type, rather than always to 8. Should save a fair bit of space in
5894         message headers.
5895         
5896         * dbus/dbus-marshal-validate.c (_dbus_validate_body_with_reason):
5897         fix handling of case where p == end
5898
5899         * doc/TODO: remove the dbus_bool_t item and variant alignment items
5900
5901 2005-01-17  Havoc Pennington  <hp@redhat.com>
5902
5903         * dbus/dbus-types.h: hardcode dbus_bool_t to 32 bits
5904
5905         * Throughout: modify DBUS_TYPE_BOOLEAN to be a 32-bit type instead
5906         of an 8-bit type. Now dbus_bool_t is the type to use whenever you 
5907         are marshaling/unmarshaling a boolean.
5908
5909 2005-01-16  Havoc Pennington  <hp@redhat.com>
5910
5911         This is about it on what can be disabled/deleted from libdbus
5912         easily, back below 150K anyhow. Deeper cuts are more work than 
5913         just turning the code off as I've done here.
5914         
5915         * dbus/dbus-marshal-basic.c (_dbus_pack_int32): we don't need the
5916         signed int convenience funcs
5917
5918         * dbus/dbus-internals.c (_dbus_verbose_real): omit when not in
5919         verbose mode
5920
5921         * dbus/dbus-string-util.c, dbus/dbus-string.c: more breaking
5922         things out of libdbus
5923
5924         * dbus/dbus-sysdeps.c, dbus/dbus-sysdeps-util.c: same
5925         
5926         * dbus/dbus-hash.c: purge the TWO_STRINGS crap (well, make it
5927         tests-enabled-only, though it should probably be deleted)
5928
5929         * dbus/dbus-message-util.c: same stuff
5930
5931         * dbus/dbus-auth-util.c: same stuff
5932
5933 2005-01-16  Havoc Pennington  <hp@redhat.com>
5934
5935         * dbus/dbus-userdb-util.c: split out part of dbus-userdb.c
5936
5937         * dbus/dbus-sysdeps.c (_dbus_uid_from_string): move here to pave
5938         way for stripping down dbus-userdb.c stuff included in libdbus.
5939         Rename _dbus_parse_uid for consistency.
5940
5941 2005-01-16  Havoc Pennington  <hp@redhat.com>
5942
5943         * dbus/dbus-internals.c (_dbus_real_assert): print the function
5944         name the assertion failed in
5945
5946         * dbus/dbus-internals.h (_dbus_return_if_fail) 
5947         (_dbus_return_val_if_fail): assert that the name of the function
5948         containing the check doesn't start with '_', since we only want to 
5949         use checks on public functions
5950         
5951         * dbus/dbus-connection.c (_dbus_connection_ref_unlocked): change
5952         checks to assertions
5953
5954         * dbus/dbus-marshal-header.c (_dbus_header_set_field_basic):
5955         change checks to asserts for private function
5956
5957         * dbus/dbus-message.c (_dbus_message_set_serial): checks
5958         to asserts for private function
5959
5960         * dbus/dbus-marshal-recursive.c (skip_one_complete_type): remove
5961         broken assertion that was breaking make check
5962         (_dbus_type_reader_array_is_empty): remove this rather than fix
5963         it, was only used in assertions
5964
5965 2005-01-16  Havoc Pennington  <hp@redhat.com>
5966
5967         * test/unused-code-gc.py: hacky script to find code that's used
5968         only by the bus (not libdbus) or used only by tests or not used at
5969         all. It has some false alarms, but looks like we can clean up a
5970         lot of size from libdbus.
5971
5972         * dbus/dbus-sysdeps.c, dbus/dbus-sysdeps-utils.c,
5973         dbus/Makefile.am: initially move 10K of binary size out of libdbus
5974         
5975 2005-01-16  Havoc Pennington  <hp@redhat.com>
5976
5977         * Add and fix docs according to Doxygen warnings throughout
5978         source.
5979         
5980         * dbus/dbus-marshal-recursive.c
5981         (_dbus_type_reader_array_is_empty): change this to just call
5982         array_reader_get_array_len() and make it static
5983
5984         * dbus/dbus-message.c (dbus_message_iter_get_element_type): rename
5985         from get_array_type
5986         (dbus_message_iter_init_append): rename from append_iter_init
5987
5988         * dbus/dbus-marshal-recursive.c
5989         (_dbus_type_reader_get_element_type): rename from
5990         _dbus_type_reader_get_array_type
5991
5992 2005-01-15  Havoc Pennington  <hp@redhat.com>
5993
5994         * test/glib/test-profile.c (with_bus_server_filter): fix crash
5995
5996         * dbus/dbus-marshal-basic.c (_dbus_unpack_uint32): inline as macro
5997         when DBUS_DISABLE_ASSERT
5998         (_dbus_marshal_set_basic): be sure we align for the string length
5999
6000         * dbus/dbus-marshal-recursive.c (skip_one_complete_type): make
6001         this look faster
6002
6003         * dbus/dbus-string.c (_dbus_string_get_const_data_len): add an
6004         inline macro version
6005         (_dbus_string_set_byte): provide inline macro version
6006
6007 2005-01-15  Havoc Pennington  <hp@redhat.com>
6008
6009         * Land the new message args API and type system.
6010
6011         This patch is huge, but the public API change is not 
6012         really large. The set of D-BUS types has changed somewhat, 
6013         and the arg "getters" are more geared toward language bindings;
6014         they don't make a copy, etc.
6015
6016         There are also some known issues. See these emails for details
6017         on this huge patch:
6018         http://lists.freedesktop.org/archives/dbus/2004-December/001836.html
6019         http://lists.freedesktop.org/archives/dbus/2005-January/001922.html
6020         
6021         * dbus/dbus-marshal-*: all the new stuff
6022
6023         * dbus/dbus-message.c: basically rewritten
6024
6025         * dbus/dbus-memory.c (check_guards): with "guards" enabled, init
6026         freed blocks to be all non-nul bytes so using freed memory is less
6027         likely to work right
6028
6029         * dbus/dbus-internals.c (_dbus_test_oom_handling): add
6030         DBUS_FAIL_MALLOC=N environment variable, so you can do
6031         DBUS_FAIL_MALLOC=0 to skip the out-of-memory checking, or
6032         DBUS_FAIL_MALLOC=10 to make it really, really, really slow and
6033         thorough.
6034
6035         * qt/message.cpp: port to the new message args API
6036         (operator<<): use str.utf8() rather than str.unicode()
6037         (pretty sure this is right from the Qt docs?)
6038
6039         * glib/dbus-gvalue.c: port to the new message args API
6040
6041         * bus/dispatch.c, bus/driver.c: port to the new message args API
6042
6043         * dbus/dbus-string.c (_dbus_string_init_const_len): initialize the
6044         "locked" flag to TRUE and align_offset to 0; I guess we never
6045         looked at these anyhow, but seems cleaner.
6046
6047         * dbus/dbus-string.h (_DBUS_STRING_ALLOCATION_PADDING):
6048         move allocation padding macro to this header; use it to implement
6049         (_DBUS_STRING_STATIC): ability to declare a static string.
6050
6051         * dbus/dbus-message.c (_dbus_message_has_type_interface_member):
6052         change to return TRUE if the interface is not set.
6053
6054         * dbus/dbus-string.[hc]: move the D-BUS specific validation stuff
6055         to dbus-marshal-validate.[hc]
6056
6057         * dbus/dbus-marshal-basic.c (_dbus_type_to_string): move here from
6058         dbus-internals.c
6059
6060         * dbus/Makefile.am: cut over from dbus-marshal.[hc]
6061         to dbus-marshal-*.[hc]
6062
6063         * dbus/dbus-object-tree.c (_dbus_decompose_path): move this
6064         function here from dbus-marshal.c
6065
6066 2005-01-12  Joe Shaw  <joeshaw@novell.com>
6067
6068         * NEWS: Update for 0.23.
6069
6070         * configure.in: Release 0.23.
6071
6072 2005-01-12  Joe Shaw  <joeshaw@novell.com>
6073
6074         * mono/Makefile.am, mono/example/Makefile.am: Always build the 
6075         dbus DLL with --debug.  Clean up after the .mdb files this leaves
6076         behind.
6077
6078         * mono/doc/Makefile.am: Need to uninstall the docs on "make
6079         uninstall"
6080
6081         * mono/Arguments.cs (GetDBusTypeConstructor): If the type
6082         is an enum, get the enum's underlying type.  Another mono
6083         1.1.3 fix.
6084
6085 2005-01-11  Joe Shaw  <joeshaw@novell.com>
6086
6087         Patch from Sjoerd Simons <sjoerd@luon.net>
6088
6089         * mono/Makefile.am, mono/example/Makefile.am: Don't redefine
6090         DESTDIR.  It breaks stuff.
6091
6092 2005-01-11  Joe Shaw  <joeshaw@novell.com>
6093
6094         Patch from Tambet Ingo <tambet@ximian.com>
6095
6096         * mono/DBusType/Array.cs (Get): Get the underlying element type by
6097         calling type.GetElementType().  The code previously depended on
6098         broken Mono behavior, which was fixed in Mono 1.1.3.
6099
6100         * mono/DBusType/Dict.cs (constructor): Fix the parameters for
6101         Activator.CreateInstance() so that the class's constructor is
6102         called with the right parameters.
6103
6104 2005-01-11  Joe Shaw  <joeshaw@novell.com>
6105
6106         Patch from Timo Teräs <ext-timo.teras@nokia.com>
6107
6108         * dbus/dbus-connection.c
6109         (_dbus_connection_queue_received_message_link): Call
6110         _dbus_connection_remove_timeout() instead of the _locked()
6111         variant, since it's always called from
6112         _dbus_connection_handle_watch(), which handles the locking.
6113         Removed the _locked() variant since it's no longer used.
6114
6115 2005-01-03  Havoc Pennington  <hp@redhat.com>
6116
6117         * dbus/dbus-internals.h: I'm an idiot, _dbus_assert certainly can
6118         return
6119         
6120 2004-12-26  Havoc Pennington  <hp@redhat.com>
6121
6122         * dbus/dbus-internals.h: add _DBUS_GNUC_NORETURN to _dbus_assert
6123
6124 2005-01-03  Havoc Pennington  <hp@redhat.com>
6125
6126         * dbus/dbus-sysdeps.c (_dbus_sysdeps_test): fix using == on
6127         floating point
6128
6129         * dbus/dbus-string.c (_dbus_string_insert_alignment): new function
6130
6131 2005-01-02  Havoc Pennington  <hp@redhat.com>
6132
6133         * dbus/dbus-internals.h (_DBUS_ALIGN_OFFSET): new macro
6134
6135 2005-01-01  Havoc Pennington  <hp@redhat.com>
6136
6137         * configure.in: add -Wfloat-equal
6138
6139 2005-01-01  Havoc Pennington  <hp@redhat.com>
6140
6141         * dbus/dbus-sysdeps.h: add _DBUS_DOUBLES_BITWISE_EQUAL macro, 
6142         for a variety of reasons '==' doesn't do this.
6143
6144 2004-12-31  Havoc Pennington  <hp@redhat.com>
6145
6146         * dbus/dbus-string.c (_dbus_string_equal_substrings): new function
6147         I keep wishing I had
6148
6149 2004-12-30  John (J5) Palmieri  <johnp@redhat.com>
6150
6151         * python/dbus.py: s/ACTIVATION_REPLY_ACTIVE/ACTIVATION_REPLY_ACTIVATED
6152
6153 2004-12-30  John (J5) Palmieri  <johnp@redhat.com>
6154
6155         * python/dbus_bindings.pyx.in: Change DBUS_ACTIVATION_REPLY_ACTIVATED
6156         and DBUS_ACTIVATION_REPLY_ALREADY_ACTIVE to match the values in
6157         dbus-protocol.h.  Because they are defines and not enums they are not
6158         autogenerated.
6159
6160 2004-12-26  John (J5) Palmieri  <johnp@redhat.com>
6161
6162         * python/dbus_bindings.pyx.in (bus_activate_service): Bind
6163         dbus_bus_activate_service
6164
6165         * python/dbus.py (Bus.activate_service): activate a service on the
6166         bus.
6167
6168 2004-12-24  Havoc Pennington  <hp@redhat.com>
6169
6170         * test/decode-gcov.c: change to use .gcno and .gcda files, but the
6171         file format has also changed and I haven't adapted to that yet
6172         
6173         * Makefile.am: load .gcno files from latest gcc
6174
6175 2004-12-23  John (J5) Palmieri  <johnp@redhat.com>
6176         * Patch from Rob Taylor <robtaylor@fastmail.fm>
6177
6178         * python/dbus_bindings.pyx.in (bus_get_unix_user): New
6179         lowlevel binding
6180
6181         * python/dbus.py (get_unix_user): Added binding to 
6182         call dbus_bindings.bus_get_unix_user
6183
6184         * python/extract.py: Modified the proto_pat regex to
6185         handle unsigned long
6186
6187 2004-12-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6188
6189         * dbus/make-dbus-glib-error-enum.sh: omit the function keyword for
6190         better POSIX compliance.
6191
6192 2004-12-19  Havoc Pennington  <hp@redhat.com>
6193
6194         * dbus/dbus-string.c (_dbus_string_insert_4_aligned) 
6195         (_dbus_string_insert_8_aligned): new functions
6196
6197         * dbus/dbus-string.c (_dbus_string_alloc_space): new function
6198
6199 2004-12-18  Havoc Pennington  <hp@redhat.com>
6200
6201         * dbus/dbus-string.c (_dbus_string_validate_ascii): use ISASCII
6202         macro
6203
6204         * dbus/dbus-message.c: fix a comment, and add a still-unused
6205         not-implemented function
6206
6207         * dbus/dbus-marshal.h: fix comment
6208
6209         * dbus/dbus-internals.h (_DBUS_ISASCII): new macro
6210
6211 2004-12-17  Joe Shaw  <joeshaw@novell.com>
6212
6213         * mono/DBusType/Byte.cs, mono/DBusType/Int32.cs,
6214         mono/DBusType/Int64.cs, mono/DBusType/UInt32.cs,
6215         mono/DBusType/UInt64.cs: Use Enum.GetUnderlyingType() instead of
6216         Type.UnderlyingSystemType to get the actual system type
6217         underneath.  This code previously depended on the broken Mono
6218         behavior, which was fixed in 1.1.3.
6219
6220 2004-11-27  Havoc Pennington  <hp@redhat.com>
6221
6222         * dbus/dbus-string.h (_dbus_string_get_byte): inline when asserts
6223         are disabled
6224         (_dbus_string_get_const_data): inline when asserts are disabled
6225
6226         * dbus/dbus-message.c: record the _dbus_current_generation of
6227         creation so we can complain if dbus_shutdown() is used improperly.
6228         Do this only if checks are enabled.
6229
6230         * dbus/dbus-connection.c: ditto
6231         
6232 2004-11-26  Havoc Pennington  <hp@redhat.com>
6233
6234         * test/glib/test-profile.c: add with_bus mode to profile echoes
6235         that go through the bus.
6236
6237         * test/glib/run-test.sh: add ability to run test-profile
6238
6239         * bus/dbus-daemon-1.1.in: fix to say that SIGHUP causes partial
6240         config file reload.
6241
6242 2004-11-26  Havoc Pennington  <hp@redhat.com>
6243
6244         * test/glib/test-profile.c: clean up how the fake_malloc_overhead
6245         thing was implemented
6246
6247 2004-11-26  Havoc Pennington  <hp@redhat.com>
6248
6249         * test/glib/test-profile.c: tweak a bit, add support for some
6250         made-up minimal malloc overhead with plain sockets, since in 
6251         real life some sort of buffers are unavoidable thus we could 
6252         count them in the theoretical best case
6253
6254 2004-11-26  Havoc Pennington  <hp@redhat.com>
6255
6256         * dbus/dbus-message.c (dbus_message_cache_or_finalize): fix bug
6257         where I was trying to cache one too many messages
6258
6259 2004-11-26  Havoc Pennington  <hp@redhat.com>
6260
6261         * dbus/dbus-message.c: reimplement message cache as an array which 
6262         makes the cache about twice as fast and saves maybe 1.5% overall
6263
6264 2004-11-26  Havoc Pennington  <hp@redhat.com>
6265
6266         * dbus/dbus-threads.c (init_global_locks): forgot to put the
6267         message cache lock here
6268
6269 2004-11-26  Havoc Pennington  <hp@redhat.com>
6270
6271         * dbus/dbus-message.c (struct DBusMessage): put the locked bit and
6272         the "char byte_order" next to each other to save 4 bytes
6273         (dbus_message_new_empty_header): reduce preallocation, since the
6274         message cache should achieve a similar effect
6275         (dbus_message_cache_or_finalize, dbus_message_get_cached): add a
6276         message cache that keeps a few DBusMessage around in a pool,
6277         another 8% speedup or so.
6278
6279         * dbus/dbus-dataslot.c (_dbus_data_slot_list_clear): new function
6280
6281 2004-11-25  Havoc Pennington  <hp@redhat.com>
6282
6283         * dbus/dbus-transport-unix.c (unix_do_iteration): if we're going
6284         to write, without reading or blocking, try it before the poll()
6285         and skip the poll() if nothing remains to write. This is about a
6286         3% speedup in the echo client/server
6287
6288 2004-11-25  Havoc Pennington  <hp@redhat.com>
6289
6290         The primary change here is to always write() once before adding
6291         the write watch, which gives us about a 10% performance increase.
6292         
6293         * dbus/dbus-transport-unix.c: a number of modifications to cope
6294         with removing messages_pending
6295         (check_write_watch): properly handle
6296         DBUS_AUTH_STATE_WAITING_FOR_MEMORY; adapt to removal of
6297         messages_pending stuff
6298         (check_read_watch): properly handle WAITING_FOR_MEMORY and
6299         AUTHENTICATED cases
6300         (unix_handle_watch): after writing, see if the write watch can be
6301         removed
6302         (unix_do_iteration): assert that write_watch/read_watch are
6303         non-NULL rather than testing that they aren't, since they 
6304         aren't allowed to be NULL. check_write_watch() at the end so 
6305         we add the watch if we did not finish writing (e.g. got EAGAIN)
6306
6307         * dbus/dbus-transport-protected.h: remove messages_pending call,
6308         since it resulted in too much inefficient watch adding/removing; 
6309         instead we now require that the transport user does an iteration 
6310         after queueing outgoing messages, and after trying the first
6311         write() we add a write watch if we got EAGAIN or exceeded our 
6312         max bytes to write per iteration setting
6313
6314         * dbus/dbus-string.c (_dbus_string_validate_signature): add this
6315         function
6316
6317         * dbus/dbus-server-unix.c (unix_finalize): the socket name was
6318         freed and then accessed, valgrind flagged this bug, fix it
6319
6320         * dbus/dbus-message.c: fix several bugs where HEADER_FIELD_LAST was taken
6321         as the last valid field plus 1, where really it is equal to the
6322         last valid field. Corrects some message corruption issues.
6323
6324         * dbus/dbus-mainloop.c: verbosity changes
6325
6326         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): handle OOM
6327         instead of aborting in one of the test codepaths
6328
6329         * dbus/dbus-internals.c (_dbus_verbose_real): fix a bug that
6330         caused not printing the pid ever again if a verbose was missing
6331         the newline at the end
6332         (_dbus_header_field_to_string): add HEADER_FIELD_SIGNATURE
6333
6334         * dbus/dbus-connection.c: verbosity changes; 
6335         (dbus_connection_has_messages_to_send): new function
6336         (_dbus_connection_message_sent): no longer call transport->messages_pending
6337         (_dbus_connection_send_preallocated_unlocked): do one iteration to
6338         try to write() immediately, so we can avoid the write watch. This
6339         is the core purpose of this patchset
6340         (_dbus_connection_get_dispatch_status_unlocked): if disconnected,
6341         dump the outgoing message queue, so nobody will get confused
6342         trying to send them or thinking stuff is pending to be sent
6343
6344         * bus/test.c: verbosity changes
6345
6346         * bus/driver.c: verbosity/assertion changes
6347
6348         * bus/dispatch.c: a bunch of little tweaks to get it working again
6349         because this patchset changes when/where you need to block.
6350
6351 2004-11-23  Havoc Pennington  <hp@redhat.com>
6352
6353         * test/glib/test-profile.c: modify to accept a plain_sockets
6354         argument in which case it will bench plain sockets instead of
6355         libdbus, for comparison purposes.
6356
6357 2004-11-22  Havoc Pennington  <hp@redhat.com>
6358
6359         * test/glib/test-profile.c (N_CLIENT_THREADS): run multiple
6360         threads for more time, so sysprof can get a grip on it.
6361
6362         * dbus/dbus-string.c (_dbus_string_validate_utf8): remove
6363         pointless variable
6364
6365 2004-11-13  Havoc Pennington  <hp@redhat.com>
6366
6367         * test/glib/test-profile.c: fix this thing up a bit
6368
6369         * dbus/dbus-message.c (dbus_message_new_empty_header): increase
6370         preallocation sizes by a fair bit; not sure if this will be an
6371         overall performance win or not, but it does reduce reallocs.
6372
6373         * dbus/dbus-string.c (set_length, reallocate_for_length): ignore
6374         the test hack that forced constant realloc if asserts are
6375         disabled, so we can profile sanely. Sprinkle in some
6376         _DBUS_UNLIKELY() which are probably pointless, but before I
6377         noticed the real performance problem I put them in.
6378         (_dbus_string_validate_utf8): micro-optimize this thing a little
6379         bit, though callgrind says it didn't help; then special-case
6380         ascii, which did help a lot; then be sure we detect nul bytes as
6381         invalid, which is a bugfix.
6382         (align_length_then_lengthen): add some more _DBUS_UNLIKELY
6383         superstition; use memset to nul the padding instead of a manual
6384         loop.
6385         (_dbus_string_get_length): inline this as a
6386         macro; it showed up in the profile because it's used for loop
6387         tests and so forth
6388
6389 2004-11-10  Colin Walters  <walters@verbum.org>
6390
6391         * dbus/dbus-spawn.c (check_babysit_events): Handle EINTR,
6392         for extra paranoia.
6393
6394 2004-11-09  Colin Walters  <walters@verbum.org>
6395
6396         * dbus/dbus-string.c (_dbus_string_get_length): New
6397         function, writes DBusString to C buffer.
6398
6399         * dbus/dbus-string.h: Prototype it.
6400
6401         * dbus/dbus-message.c (dbus_message_type_to_string): New
6402         function, converts message type into C string.
6403
6404         * dbus/dbus-message.h: Prototype it.
6405
6406         * bus/selinux.c (bus_selinux_check): Take source pid,
6407         target pid, and audit data.  Pass audit data to
6408         avc_has_perm.
6409         (log_audit_callback): New function, appends extra
6410         audit information.
6411         (bus_selinux_allows_acquire_service): Also take
6412         service name, add it to audit data.
6413         (bus_selinux_allows_send): Also take message
6414         type, interface, method member, error name,
6415         and destination, and add them to audit data.
6416         (log_cb): Initialize func_audit.
6417         
6418         * bus/selinux.h (bus_selinux_allows_acquire_service)
6419         (bus_selinux_allows_send): Update prototypes 
6420
6421         * bus/services.c (bus_registry_acquire_service): Pass
6422         service name to bus_selinux_allows_acquire_service.
6423
6424         * bus/bus.c (bus_context_check_security_policy): Pass
6425         additional audit data.  Move assignment of dest
6426         to its own line.
6427
6428 2004-11-07  Colin Walters  <walters@verbum.org>
6429
6430         * dbus/dbus-transport-unix.c (do_authentication): Always
6431         initialize auth_completed.
6432         
6433 2004-11-07  Colin Walters  <walters@verbum.org>
6434
6435         * bus/bus.c (load_config): Break into three
6436         separate functions: process_config_first_time_only,
6437         process_config_every_time, and process_config_postinit.
6438         (process_config_every_time): Move call of
6439         bus_registry_set_service_context_table into
6440         process_config_postinit.
6441         (process_config_postinit): New function, does
6442         any processing that needs to happen late
6443         in initialization (and also on reload).
6444         (bus_context_new): Instead of calling load_config,
6445         open config parser here and call process_config_first_time_only
6446         and process_config_every_time directly.  Later, after
6447         we have forked but before changing UID,
6448         invoke bus_selinux_full_init, and then call
6449         process_config_postinit.
6450         (bus_context_reload_config): As in bus_context_new,
6451         load parse file inside here, and call process_config_every_time
6452         and process_config_postinit.
6453
6454         * bus/services.h, bus/services.c
6455         (bus_registry_set_service_context_table): Rename
6456         from bus_registry_set_sid_table.  Take string hash from config
6457         parser, and convert them here into SIDs.
6458
6459         * bus/config-parser.c (struct BusConfigParser): Have
6460         config parser only store a mapping of service->context
6461         string.
6462         (merge_service_context_hash): New function.
6463         (merge_included): Merge context string hashes instead
6464         of using bus_selinux_id_table_union.
6465         (bus_config_parser_new): Don't use bus_selinux_id_table_new;
6466         simply create a new string hash.
6467         (bus_config_parser_unref): Unref it.
6468         (start_selinux_child): Simply insert strings into hash,
6469         don't call bus_selinux_id_table_copy_over.
6470
6471         * bus/selinux.h, bus/selinux.c (bus_selinux_id_table_union)
6472         (bus_selinux_id_table_copy_over): Delete.
6473
6474 2004-11-03  Colin Walters  <walters@verbum.org>
6475
6476         * bus/selinux.c (bus_selinux_pre_init): Kill some unused
6477         variables.
6478         
6479 2004-11-03  Colin Walters  <walters@verbum.org>
6480
6481         * bus/test-main.c (test_pre_hook): Fix test logic,
6482         thanks Joerg Barfurth <Joerg.Barfurth@Sun.COM>.
6483
6484 2004-11-02  Colin Walters  <walters@redhat.com>
6485
6486         * bus/selinux.c (bus_selinux_init): Split into two functions,
6487         bus_selinux_pre_init and bus_selinux_post_init.
6488         (bus_selinux_pre_init): Just determine whether SELinux is
6489         enabled.
6490         (bus_selinux_post_init): Do everything else.
6491
6492         * bus/main.c (main): Call bus_selinux_pre_init before parsing
6493         config file, and bus_selinux_post_init after.  This ensures that
6494         we don't lose the policyreload notification thread that
6495         bus_selinux_init created before forking previously.
6496         
6497         * bus/test-main.c (test_pre_hook): Update for split.
6498
6499 2004-10-31  Owen Fraser-Green  <owen@discobabe.net>
6500
6501         Patch from Johan Fischer <linux@fischaz.com>
6502         
6503         * mono/doc/Makefile.am (install-data-local): Added directory
6504         install for DESTDIR
6505
6506 2004-10-29  Colin Walters  <walters@redhat.com>
6507
6508         * dbus/dbus-sysdeps.h (_dbus_become_daemon): Also take
6509         parameter for fd to write pid to.       
6510
6511         * dbus/dbus-sysdeps.c (_dbus_become_daemon): Implement it.
6512         
6513         * bus/bus.c (bus_context_new): Pass print_pid_fd
6514         to _dbus_become_daemon (bug #1720)
6515
6516 2004-10-29  Colin Walters  <walters@redhat.com>
6517
6518         Patch from Ed Catmur <ed@catmur.co.uk>
6519
6520         * mono/doc/Makefile.am (install-data-local): Handle
6521         DESTDIR.
6522
6523 2004-10-29  Colin Walters  <walters@redhat.com>
6524
6525         * bus/.cvsignore, qt/.cvsignore: Update.
6526
6527 2004-10-29  Colin Walters  <walters@redhat.com>
6528
6529         Patch from Kristof Vansant <de_lupus@pandora.be>
6530
6531         * configure.in: Detect Slackware.
6532         * bus/Makefile.am (SCRIPT_IN_FILES): Add rc.messagebus.in.
6533         * bus/rc.messagebus.in: New file.
6534
6535 2004-10-29  Colin Walters  <walters@redhat.com>
6536
6537         * tools/dbus-monitor.c (filter_func): Return
6538         DBUS_HANDLER_RESULT_HANDLED in filter function
6539         for now.  See:
6540         http://freedesktop.org/pipermail/dbus/2004-August/001433.html
6541
6542 2004-10-29  Colin Walters  <walters@redhat.com>
6543
6544         Patch from Matthew Rickard <mjricka@epoch.ncsc.mil>
6545
6546         * bus/services.c (bus_registry_acquire_service): 
6547         Correctly retrieve service name from DBusString
6548         for printing.
6549
6550 2004-10-29  Colin Walters  <walters@redhat.com>
6551
6552         * dbus/dbus-glib.h: Update documentation to not
6553         refer to internal APIs.
6554
6555 2004-10-27  Joe Shaw  <joeshaw@novell.com>
6556
6557         * mono/Arguments.cs (GetDBusTypeConstructor):
6558         type.UnderlyingSystemType will return "System.Byte" if you do it
6559         on "byte[]", which is not what we want.  So check the type.IsArray
6560         property and use System.Array instead.
6561
6562 2004-10-25  John (J5) Palmieri  <johnp@redhat.com>
6563
6564         * dbus/dbus-sysdeps.c (fill_user_info): On errors do not free
6565         the DBusUserInfo structure since this is passed into the function.
6566         This would cause a double free when the function that allocated
6567         the structure would try to free it when an error occured.
6568
6569         * (bus/session.conf.in, bus/Makefile.am, dbus/configure.in):
6570         use /usr/share/dbus-1/services instead of /usr/lib/dbus-1.0/services
6571         for service activation to avoid 32bit/64bit parallel install issues
6572
6573 2004-10-21  Colin Walters  <walters@verbum.org>
6574
6575         * AUTHORS: Fix my email address, the @gnu.org one
6576         has been bouncing for some time.  Also add J5.
6577         
6578 2004-10-21  Colin Walters  <walters@verbum.org>
6579
6580         * dbus/dbus-transport-unix.c (do_authentication): Return
6581         authentication status to callers.
6582         (unix_handle_watch): If we completed authentication this round,
6583         don't do another read.  Instead wait until the next iteration,
6584         after we've read any pending data in the auth buffer.
6585         (unix_do_iteration): Ditto.
6586         (unix_handle_watch): Updated for new do_authentication prototype.
6587
6588 2004-10-18  Colin Walters  <walters@verbum.org>
6589
6590         * bus/selinux.c (bus_selinux_enabled): Handle
6591         --disable-selinux case.
6592         
6593 2004-10-18  Colin Walters  <walters@verbum.org>
6594
6595         * bus/selinux.h: Add bus_selinux_enabled.
6596         
6597         * bus/selinux.c (bus_selinux_enabled): Implement it.
6598         
6599         * bus/config-parser.c (struct include): Add
6600         if_selinux_enabled member.
6601         (start_busconfig_child): Parse if_selinux_enabled
6602         attribute for include.
6603         (bus_config_parser_content): Handle it.
6604
6605         * bus/session.conf.in, bus/system.conf.in: Add
6606         inclusion of context mapping to default config files;
6607         conditional on SELinux being enabled.
6608         
6609         * doc/busconfig.dtd: Add to if_selinux_enabled to default DTD.
6610         
6611         * test/data/invalid-config-files/badselinux-1.conf, 
6612         test/data/invalid-config-files/badselinux-2.conf:
6613         Test files for bad syntax.
6614         
6615 2004-10-17  Colin Walters  <walters@verbum.org>
6616
6617         * dbus/dbus-memory.c (_dbus_initialize_malloc_debug, check_guards)
6618         (dbus_malloc, dbus_malloc0, dbus_realloc): Fix up printf
6619         format specifier mismatches.
6620
6621 2004-10-07  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6622
6623         * dbus/dbus-sysdeps.c (_dbus_file_get_contents): fix an incorrect
6624         format string.
6625
6626         * glib/dbus-dbus-gmain.c (dbus_g_bus_get): do not mangle NULL
6627         pointer (bug #1540, Leonardo Boiko).
6628
6629 2004-09-28  Jon Trowbridge  <trow@ximian.com>
6630
6631         * mono/BusDriver.cs: Changed BusDriver struct to remove
6632         the ServiceCreated and ServiceDeleted events and replace them
6633         with the new ServiceOwnerChanged event.
6634
6635         * mono/example/BusListener.cs: Added a new example program,
6636         which listens for and reports any ServiceOwnerChanged events
6637         on the bus driver.
6638
6639         * mono/example/Makefile.am (DESTDIR): Build changes for the
6640         new BusListener.cs example.
6641
6642 2004-09-27  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6643
6644         * bus/signals.c (bus_match_rule_parse): validate the components of
6645         match rules (bug #1439).
6646
6647         * dbus/dbus-bus.c (dbus_bus_add_match): add a missing OOM test.
6648
6649 2004-09-24  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6650
6651         * doc/dbus-specification.xml: document ServiceOwnerChanged
6652         signal.
6653         
6654         * bus/driver.c, bus/driver.h, bus/services.c: Use
6655         ServiceOwnerChanged signal instead of ServiceCreated and
6656         ServiceDeleted.
6657         
6658         * bus/dispatch.c: update testcase for the new signal.
6659
6660 2004-09-20  Jon Trowbridge  <trow@ximian.com>
6661
6662         Patch from Nat Friedman <nat@novell.com>
6663
6664         * mono/Makefile.am: A number of small build fixes to allow "make
6665         distcheck" to succeed.
6666
6667         * mono/example/Makefile.am: "make distcheck" fixes.
6668
6669         * mono/AssemblyInfo.cs.in: When signing the assembly, look for the
6670         key in @srcdir@.
6671
6672         * test/Makefile.am: "make distcheck" fixes.
6673
6674 2004-09-17  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6675
6676         * dbus/dbus-sysdeps.c (_dbus_user_at_console): fix memleak in OOM.
6677
6678         * doc/busconfig.dtd: update the DTD for the at_console attribute.
6679
6680         * bus/driver.c (bus_driver_handle_hello): correctly handle Hello
6681         messages after the first one (bug #1389).
6682         
6683         * bus/dispatch.c (check_double_hello_message): add a test case for
6684         the double hello message bug.
6685         (check_existent_service_activation): fix check of spawning error.
6686         
6687 2004-09-16  David Zeuthen  <david@fubar.dk>
6688
6689         * python/dbus_bindings.pyx.in: Add support for int64 and uint64
6690
6691 2004-09-12  David Zeuthen  <david@fubar.dk>
6692
6693         Patch from Kay Sievers <kay.sievers@vrfy.org>
6694
6695         * bus/bus.c (bus_context_new):
6696         * bus/bus.h:
6697         * bus/main.c (usage)
6698         (main):
6699         Add commandline option --nofork to override configuration file
6700         setting.
6701
6702 2004-09-09  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6703
6704         * dbus/dbus-*.h: remove the ; after DBUS_(BEGIN|END)_DECLS. Some C
6705         compilers don't like it (bug #974).
6706
6707 2004-09-04  Harald Fernengel  <harry@kdevelop.org>
6708
6709         * qt/connection.*: Applied patch by Jérôme Lodewyck
6710         <lodewyck@clipper.ens.fr> to integrate an existing
6711         connection into the Qt eventloop
6712
6713 2004-08-30  Jon Trowbridge  <trow@ximian.com>
6714
6715         * mono/BusDriver.cs: Added.  This is a class for interacting with
6716         the org.freedesktop.DBus service.
6717
6718         * mono/Message.cs: Added a mechanism to expose the message that is
6719         currently being dispatched via the static Message.Current
6720         property.  Added Message.Sender and Message.Destination
6721         properties.
6722
6723         * mono/Handler.cs: Expose the dispatched message via
6724         Message.Current when handling method calls.
6725
6726         * mono/Service.cs: Expose the dispatched message via
6727         Message.Current when handling signal emissions.
6728         
6729         * mono/Connection.cs: Bind dbus_bus_get_base_service via the
6730         Connection.BaseService property.
6731
6732 2004-08-28  Havoc Pennington  <hp@redhat.com>
6733
6734         * dbus/dbus-userdb.c (_dbus_is_console_user): remove unused variable
6735
6736         More fixes from Steve Grubb
6737         
6738         * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): fix fd leak
6739         (_dbus_listen_tcp_socket): fix fd leak
6740
6741         * dbus/dbus-spawn.c (read_pid, read_ints): move the "again:" for
6742         EINTR to a bit lower in the code
6743
6744 2004-08-26  Jon Trowbridge  <trow@ximian.com>
6745
6746         * bus/driver.c (bus_driver_handle_service_exists): Respond with
6747         TRUE if we are inquiring about the existence of the built-in
6748         org.freedesktop.DBus service.
6749
6750 2004-08-25  John Palmieri  <johnp@redhat.com>
6751         * bus/config-parser.c:
6752         (struct PolicyType): Add POLICY_CONSOLE
6753         (struct Element.d.policy): s/gid_or_uid/gid_uid_or_at_console
6754         (start_busconfig_child): Sets up console element when
6755         <policy at_console=""> is encountered in a policy file
6756         (append_rule_from_element): Convert console elements to console
6757         rules.
6758
6759         * bus/policy.c: 
6760         (bus_policy_create_client_policy): Add console rules to the client
6761         policy based on if the client is at the console
6762         (bus_policy_append_console_rule): New function for adding a
6763         console rule to a policy
6764         (bus_policy_merge): Handle console rule merging
6765
6766         * dbus/dbus-sysdeps.h: Added the DBUS_CONSOLE_DIR constant
6767         where we check for console user files
6768         
6769         * dbus/dbus-sysdeps.c:
6770         (_dbus_file_exists): New function which checks if the given
6771         file exists
6772         (_dbus_user_at_console): New function which does the system
6773         specific process of checking if the user is at the console
6774
6775         * dbus/dbus-userdb.c:
6776         (_dbus_is_console_user): New function converts a UID to user name
6777         and then calls the system specific _dbus_user_at_console to 
6778         see if the user is at the console and therefor a console user
6779
6780 2004-08-25  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6781
6782         * bus/config-parser.c (set_limit):
6783         * bus/dbus-daemon-1.1.in:
6784         * test/data/valid-config-files/many-rules.conf: set the
6785         max_match_rules_per_connection limt from the config file. 
6786
6787         * doc/busconfig.dtd: update the DTD.
6788
6789         * bus/driver.c: remove some unused variables.
6790
6791 2004-08-24  Mikael Hallendal  <micke@imendio.com>
6792
6793         * dbus/dbus-glib-lowlevel.h: Removed dbus_bus_get_with_g_main since 
6794         it's been replaced by dbus_g_bus_get
6795
6796 2004-08-23  Colin Walters  <walters@redhat.com>
6797
6798         Updated SELinux support from Matthew Rickard <mjricka@epoch.ncsc.mil>
6799
6800         * bus/selinux.h: Prototype bus_selinux_get_policy_root.
6801
6802         * bus/selinux.c: Create a thread for policy reload notification.
6803         (bus_selinux_get_policy_root): Implement.
6804
6805         * bus/config-parser.c (start_busconfig_child)
6806         (bus_config_parser_content): Support SELinux-root relative
6807         inclusion.
6808
6809         * configure.in <HAVE_SELINUX>: Add -lpthread.
6810         
6811         * bus/test-main.c (test_pre_hook, test_post_hook): New.
6812         (test_post_hook): Move memory checking into here.
6813         (test_pre_hook, test_post_hook): Move SELinux checks in
6814         here, but conditional on a DBUS_TEST_SELINUX environment
6815         variable.  Unfortunately we can't run the SELinux checks
6816         as a normal user, since they won't have any permissions
6817         for /selinux.  So this will have to be tested manually
6818         for now, until we have virtualization for most of
6819         libselinux.
6820         
6821 2004-08-23  Havoc Pennington  <hp@redhat.com>
6822
6823         * dbus/dbus-sysdeps.c (_dbus_change_identity): add setgroups() to
6824         drop supplementary groups, suggested by Steve Grubb
6825
6826 2004-08-20  Colin Walters  <walters@redhat.com>
6827
6828         * bus/config-parser.c (start_busconfig_child): Remove some unused
6829         variables.
6830         
6831         * bus/selinux.c (bus_selinux_id_table_insert): Avoid compiler
6832         warning.
6833
6834 2004-08-17  Joe Shaw  <joeshaw@novell.com>
6835
6836         * configure.in: If --enable-mono is passed in, if we can't find
6837         mono error out.
6838
6839         * mono/Makefile.am: Use /gacutil to install assemblies into the
6840         GAC and not /root.
6841
6842 2004-08-12  Havoc Pennington  <hp@redhat.com>
6843
6844         * NEWS: update for 0.22
6845
6846         * configure.in: release 0.22
6847
6848 2004-08-11  Colin Walters  <walters@redhat.com>
6849
6850         * tools/dbus-send.c (main, usage): Add --reply-timeout
6851         argument.
6852
6853 2004-08-10  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6854
6855         * bus/bus.c (process_config_first_time_only): get rid of an unused
6856         DBusError that was causing a memoy leak (bug #989).
6857
6858         * dbus/dbus-keyring.c, dbus/dbus-message.c:
6859         fix compilation on Solaris/Forte C (bug #974)
6860
6861         * bus/main.c (main): plug two minuscule memleaks.
6862
6863 2004-08-10  Havoc Pennington  <hp@redhat.com>
6864
6865         * doc/dbus-tutorial.xml: add some more info on GLib bindings
6866
6867 2004-08-09  Havoc Pennington  <hp@redhat.com>
6868
6869         * COPYING: switch to Academic Free License version 2.1 instead of
6870         2.0, to resolve complaints about patent termination clause.
6871
6872 2004-07-31  John (J5) Palmieri  <johnp@redhat.com>
6873
6874         * README: added documentation for the --enable-python 
6875         configure switch.
6876
6877 2004-07-31  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6878
6879         * bus/config-parser.c (bus_config_parser_new): fix an invalid
6880         _unref in the SELinux support.
6881
6882         * doc/busconfig.dtd: update DTD for SELinux support.
6883
6884         * bus/config-loader-libxml.c: fix error handler and parser
6885         initialisation/cleanup. OOM test now works with libxml2 HEAD.
6886
6887         * configure.in: remove the warning about libxml2.
6888
6889         * dbus/dbus-bus.c: silence doxygen warning.
6890
6891 2004-07-31  Colin Walters  <walters@redhat.com>
6892
6893         * configure.in: Move #error in SELinux check to its own line.
6894
6895 2004-07-31  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6896
6897         * dbus/dbus-internals.h (_DBUS_SET_OOM):
6898         * bus/utils.h (BUS_SET_OOM): use dbus_error_set_const instead of
6899         dbus_error_set.
6900
6901         * bus/dispatch.c (check_send_exit_to_service): fix the test case,
6902         broken by the change in the _SET_OOM macros.
6903
6904 2004-07-31  Colin Walters  <walters@redhat.com>
6905
6906         * bus/selinux.c <HAVE_SELINUX>: Include utils.h to get
6907         BUS_SET_OOM.
6908
6909 2004-07-31  Colin Walters  <walters@redhat.com>
6910
6911         * configure.in: Use AC_TRY_COMPILE instead of AC_EGREP_HEADER
6912         to correctly detect DBUS__ACQUIRE_SVC.  Also add an
6913         AC_MSG_CHECKING.
6914
6915 2004-07-24  Havoc Pennington  <hp@redhat.com>
6916
6917         SELinux support from Matthew Rickard <mjricka@epoch.ncsc.mil>
6918
6919         * bus/selinux.c, bus/selinux.h: new file encapsulating selinux
6920         functionality
6921
6922         * configure.in: add --enable-selinux
6923         
6924         * bus/policy.c (bus_policy_merge): add FIXME to a comment
6925
6926         * bus/main.c (main): initialize and shut down selinux
6927
6928         * bus/connection.c: store SELinux ID on each connection, to avoid 
6929         repeated getting of the string context and converting it into 
6930         an ID
6931
6932         * bus/bus.c (bus_context_get_policy): new accessor, though it
6933         isn't used
6934         (bus_context_check_security_policy): check whether the security
6935         context of sender connection can send to the security context of
6936         recipient connection
6937
6938         * bus/config-parser.c: add parsing for <selinux> and <associate>
6939         
6940         * dbus/dbus-transport.c (_dbus_transport_get_unix_fd): to
6941         implement dbus_connection_get_unix_fd()
6942
6943         * dbus/dbus-connection.c (dbus_connection_get_unix_fd): new
6944         function, used by the selinux stuff
6945         
6946 2004-07-29  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6947
6948         * bus/config-loader-libxml.c: complete the implementation of
6949         libxml backend for config file loader. Doesn't work with full OOM
6950         test yet. 
6951         
6952         * configure.in: change error when selecting libxml into a warning.
6953         
6954         * test/data/invalid-config-files: add two non-well-formed XML
6955         files. 
6956         
6957         * glib/Makefile.am: libdbus_gtool always uses expat, not libxml.
6958         
6959         * dbus/dbus-transport-unix.c (unix_handle_watch): do not
6960         disconnect in case of DBUS_WATCH_HANGUP, several do_reading() may
6961         be necessary to read all the buffer. (bug #894)
6962
6963         * bus/activation.c (bus_activation_activate_service): fix a
6964         potential assertion failure (bug #896). Small optimization in the
6965         case of auto-activation messages.
6966
6967         * dbus/dbus-message.c (verify_test_message, _dbus_message_test):
6968         add test case for byte-through-vararg bug (#901). patch by Kimmo
6969         Hämäläinen. 
6970
6971 2004-07-28  Anders Carlsson  <andersca@gnome.org>
6972
6973         * python/dbus.py:
6974         * python/dbus_bindings.pyx.in:
6975         Add dbus.init_gthreads (), allow emit_signal to pass
6976         arguments to the signal.
6977         
6978 2004-07-24  Havoc Pennington  <hp@redhat.com>
6979
6980         * AUTHORS: add some people, not really comprehensively, let me
6981         know if I missed you
6982
6983 2004-07-24  Havoc Pennington  <hp@redhat.com>
6984
6985         * Makefile.am (DIST_SUBDIRS): add DIST_SUBDIRS, problem solved by
6986         Owen
6987
6988         * test/Makefile.am (DIST_SUBDIRS): here also
6989
6990 2004-07-22  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6991
6992         * dbus/dbus-sysdeps.c (fill_user_info): fix inexistent label name,
6993         breaking build on Solaris, reported by Farhad Saberi on the ML.
6994
6995         * dbus/dbus-message.c (dbus_message_append_args_valist): fix the
6996         va_arg invocation to account for integer promotion in the case of
6997         DBUS_TYPE_BYTE (unsigned char is promoted to int). (bug #901)
6998
6999         * bus/services.c (bus_service_remove_owner): fix bug #902, use
7000         _dbus_list_get_first_link, not _dbus_list_get_first.
7001
7002         * dbus/dbus-bus.c (dbus_bus_service_exists): plug a memory leak.
7003
7004         * dbus/dbus-object-tree.c (free_subtree_recurse): always null
7005         handler functions so that the asserts in _dbus_object_subtree_unref
7006         do not fail.
7007
7008         * dbus/dbus-transport-unix.c (do_reading):
7009         _dbus_transport_queue_messages return value is of type
7010         dbus_bool_t, not DBusDispatchStatus.
7011         
7012 2004-07-19  David Zeuthen  <david@fubar.dk>
7013
7014         * dbus/dbus-protocol.h: Add DBUS_ERROR_UNIX_PROCESS_ID_UNKNOWN
7015
7016         * bus/dispatch.c:
7017         (check_get_connection_unix_user): Debug says GetProperty; but the
7018         method is called GetConnectionUnixUser
7019         (check_get_connection_unix_process_id): New function
7020         (bus_dispatch_test): Actually call check_get_connection_unix_user();
7021         also call check_get_connection_unix_process_id()
7022         
7023         * bus/driver.c:
7024         (bus_driver_handle_get_connection_unix_process_id): New function,
7025         handles GetConnectionUnixProcessID on the org.freedesktop.DBus
7026         interface
7027         
7028         * dbus/dbus-auth.c:
7029         (handle_server_data_external_mech): Set pid from the credentials
7030         obtained from the socket
7031         
7032         * dbus/dbus-connection.c:
7033         (dbus_connection_get_unix_process_id): New function
7034         
7035         * dbus/dbus-connection.h: 
7036         Add prototype for dbus_connection_get_unix_process_id
7037         
7038         * dbus/dbus-transport.c:
7039         (_dbus_transport_get_unix_process_id): New function
7040         
7041         * dbus/dbus-transport.h:
7042         Add prototype for _dbus_transport_get_unix_process_id
7043         
7044 2004-07-19  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7045
7046         * dbus/dbus-message.c: Message counter fix, patch by Christian
7047         Hammond <chipx86@gnupdate.org>
7048
7049 2004-07-18  Seth Nickell  <seth@gnome.org>
7050
7051         * python/dbus.py:
7052         * python/dbus_bindings.pyx.in:
7053         * python/tests/test-client.py:
7054
7055         Add dbus.ByteArray and dbus_bindings.ByteArray
7056         types so that byte streams can be passed back.
7057
7058         Give jdahlin the heaps of credit that are so
7059         rightfully his.
7060         
7061 2004-07-12  Seth Nickell  <seth@gnome.org>
7062
7063         * python/dbus.py:
7064
7065         Add message argument to the default object_method_handler
7066         function.
7067         
7068         * python/dbus_bindings.pyx.in:
7069
7070         Automatically return NIL when passed an empty list
7071         (we can't pass back a list since lists are typed
7072         and we don't have any idea what type the the client
7073         intended the list to be... :-( )
7074         
7075 2004-07-10  Seth Nickell  <seth@gnome.org>
7076
7077         * python/examples/Makefile.am:
7078
7079         Fix distcheck breakage caused by new examples.
7080
7081 2004-07-10  Seth Nickell  <seth@gnome.org>
7082
7083         * python/dbus.py:
7084
7085         Add "message" argument to service-side dbus.Object
7086         methods. This will break existing services written
7087         using the python bindings, but will allow extraction
7088         of all the message information (e.g. who its from).
7089
7090         Add improved "object oriented" signal handling/emission.
7091         
7092         * python/examples/example-service.py:
7093
7094         Nix this example.
7095         
7096         * python/examples/example-signal-emitter.py:
7097         * python/examples/example-signal-recipient.py:
7098
7099         Two new examples that show how to emit and receive
7100         signals using the new APIs.
7101         
7102         * python/examples/example-signals.py:
7103         * python/examples/gconf-proxy-service.py:
7104         * python/examples/gconf-proxy-service2.py:
7105
7106         Add "message" argument to service methods.
7107
7108 2004-06-28  Kay Sievers <kay.sievers@vrfy.org>
7109
7110         * bus/driver.c (bus_driver_handle_get_connection_unix_user)
7111         * dbus/bus.c (dbus_bus_get_unix_user)
7112         * doc/dbus-specification.xml: implement GetConnectionUnixUser
7113         method of org.freedesktop.DBus interface.
7114
7115         * bus/dispatch.c: test case
7116
7117 2004-06-23  John (J5) Palmieri  <johnp@redhat.com>
7118
7119         * python/Makefile.am: switched include directory from glib/ to dbus/
7120         since dbus-glib.h moved
7121  
7122 2004-06-22  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7123
7124         * configure.in: prevent building the gcj stuff and libxml loader
7125         since they are broken.
7126
7127 2004-06-20  Havoc Pennington  <hp@redhat.com>
7128
7129         * dbus/dbus-glib-error-enum.h: autogenerate the GError enum 
7130         codes from the dbus error names
7131         
7132         * glib/dbus-glib.h: move to subdir dbus/ since it's included 
7133         as dbus/dbus-glib.h and that breakage is now visible due to 
7134         including dbus/dbus-glib.h in dbus-glib-lowlevel.h
7135         
7136         * glib/dbus-glib.h: s/gproxy/g_proxy/
7137
7138         * dbus/dbus-shared.h: new header to hold stuff shared with
7139         binding APIs
7140         
7141         * dbus/dbus-protocol.h (DBUS_ERROR_*): move errors here rather
7142         than dbus-errors.h
7143
7144         * glib/dbus-glib.h (dbus_set_g_error): move to
7145         dbus-glib-lowlevel.h
7146
7147         * glib/dbus-glib.h: remove dbus/dbus.h from here; change a bunch
7148         of stuff to enable this
7149
7150         * dbus/dbus-glib-lowlevel.h: put dbus/dbus.h here
7151
7152         * a bunch of other changes with the same basic "separate glib 
7153         bindings from dbus.h" theme
7154         
7155 2004-06-10  Owen Fraser-Green  <owen@discobabe.net>
7156
7157         * dbus-sharp.pc.in: Removed glib-sharp inclusion in Libs.
7158
7159         * python/examples/Makefile.am: Fixed typo in EXTRA_DIST.
7160
7161 2004-06-09  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7162
7163         * bus/driver.c, dbus/dbus-bus.c: use BOOLEAN instead of UINT32 for
7164         the reply value of the ServiceExists message.
7165
7166 2004-06-07  John (J5) Palmieri  <johnp@redhat.com>
7167
7168         * python/dbus_bindings.pyx.in: No longer need to parse path
7169         elements and pass them as arrays of strings.  The C API now
7170         accepts plain path strings.
7171         (_build_parsed_path): removed 
7172
7173 2004-06-07  Havoc Pennington  <hp@redhat.com>
7174
7175         * doc/TODO: remove auto-activation item since it's done; sort
7176         items by importance/milestone
7177
7178 2004-06-07  Havoc Pennington  <hp@redhat.com>
7179
7180         * dbus/dbus-message-builder.c (_dbus_message_data_load): append
7181         random signature when using REQUIRED_FIELDS (this hack won't work
7182         in the long term)
7183
7184         * dbus/dbus-message.c: change the signature to be a header field,
7185         instead of message->signature special-case string. Incremental
7186         step forward. Then we can fix up code to send the signature in the
7187         message, then fix up code to validate said signature, then fix up
7188         code to not put the typecodes inline, etc.
7189         (load_one_message): don't make up the signature after the fact
7190         (decode_header_data): require signature field for the known
7191         message types
7192
7193         * dbus/dbus-marshal.c (_dbus_marshal_string_len): new
7194
7195         * dbus/dbus-protocol.h: add DBUS_HEADER_FIELD_SIGNATURE
7196
7197 2004-06-07  Owen Fraser-Green  <owen@discobabe.net>
7198
7199         * mono/DBusType/ObjectPath.cs: Renamed PathName argument to Path
7200
7201         * mono/Handler.cs: Updated to follow new path argument for
7202         (un-)registering objects.
7203
7204         * mono/example/Makefile.am:
7205         * mono/Makefile.am:
7206         * configure.in: Bumped required version for mono and use new -pkg
7207         syntax for deps
7208
7209 2004-06-05  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7210
7211         * dbus/dbus-connection.h, dbus/dbus-connection.c: have object path
7212         registration functions take the path argument as char* instead of
7213         char**.
7214
7215         * dbus/dbus-marshal.h, dbus/dbus-marshal.c (_dbus_decompose_path):
7216         split off the path decompostion part of
7217         _dbus_demarshal_object_path. Some misc. fixes to silence compiler
7218         warnings. 
7219
7220         * glib/dbus-gobject.c, test/test-service.c: update accordingly.
7221         
7222 2004-06-02  Kristian Høgsberg  <krh@redhat.com>
7223  
7224         * dbus/dbus-auth.c: Rewrite auth protocol handling to use a state
7225         machine approach.  A state is implemented as a function that
7226         handles incoming events as specified for that state.
7227         
7228         * doc/dbus-specification.xml: Update auth protocol state machine
7229         specification to match implementation.  Remove some leftover
7230         base64 examples.
7231
7232 2004-06-02  Kristian Høgsberg  <krh@redhat.com>
7233
7234         * glib/dbus-gproxy.c, glib/dbus-gmain.c, dbus/dbus-string.c,
7235         dbus/dbus-object-tree.c, dbus/dbus-message.c: add comments to
7236         quiet doxygen.
7237
7238         * Doxyfile.in: remove deprecated options.
7239
7240         * dbus/dbus-message-handler.c, dbus/dbus-message-handler.h,
7241         glib/test-thread.h, glib/test-thread-client.c,
7242         glib/test-thread-server.c, glib/test-profile.c,
7243         glib/test-dbus-glib.c: remove these unused files.
7244
7245 2004-06-01  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7246
7247         * dbus/dbus-object-tree.c
7248         (_dbus_object_tree_dispatch_and_unlock): fix dispatch for
7249         non-fallback handlers (bug #684).
7250         (_dbus_object_subtree_new): initialize invoke_as_fallback field.
7251         (find_subtree_recurse): report wether the returned subtree is an
7252         exact match or a "fallback" match higher up in the tree.
7253         (object_tree_test_iteration): update test case.
7254
7255 2004-06-01  Seth Nickell  <seth@gnome.org>
7256
7257         * python/dbus_bindings.pyx.in:
7258         * python/tests/test-client.py:
7259
7260         Round off basic type support. Add dicts (yay!), and 
7261         remaining array types.
7262
7263         Make MessageIter more general so it works for dicts too.
7264
7265         Mark all loop variables as C integers.
7266         
7267 2004-05-31  Havoc Pennington  <hp@redhat.com>
7268
7269         * glib/dbus-gidl.c (method_info_add_arg): keep args sorted with
7270         "in" before "out"
7271
7272         * glib/dbus-gobject.c (dbus_type_to_string): move to dbus-gutils.c
7273
7274         * glib/dbus-glib-tool.c (main): set up to have a --self-test
7275         option that runs the tests, and start filling in some code
7276         including for starters just dumping the interfaces to stdout
7277
7278         * glib/Makefile.am (INCLUDES): define DBUS_LOCALEDIR
7279
7280         * test/data/valid-introspection-files/lots-of-types.xml: test of
7281         an example introspection file
7282
7283         * glib/dbus-gparser.c (parser_check_doctype): doctype should be
7284         "node" (I think...)
7285
7286 2004-05-31  Seth Nickell  <seth@gnome.org>
7287
7288         * python/dbus_bindings.pyx.in:
7289         * python/tests/test-client.py:
7290
7291         Test Suite: 1
7292         Python Bindings: 0
7293
7294         Fix string array memory trashing bug... oops...
7295
7296 2004-05-30  Seth Nickell  <seth@gnome.org>
7297
7298         * python/dbus.py:
7299
7300         Add a nicer-but-less-flexible alternate API for handling 
7301         calls to virtual objects in dbus.ObjectTree.
7302
7303         Screw up the argument order to the dbus.Object constructor
7304         for consistency with dbus.ObjectTree (and to make dbus_methods
7305         optional for future extension)
7306         
7307         * python/examples/Makefile.am:
7308         * python/examples/gconf-proxy-service.py:
7309         * python/examples/gconf-proxy-service2.py:
7310
7311         Alternate implementation of gconf-proxy-service using the
7312         nicer dbus.ObjectTree API.
7313         
7314         * python/examples/example-service.py:
7315         * python/tests/test-server.py
7316
7317         Reverse the argument order to deal with dbus.Object constructor
7318         changes.
7319         
7320 2004-05-30  Seth Nickell  <seth@gnome.org>
7321
7322         * python/examples/example-client.py:
7323         * python/examples/example-service.py:
7324
7325         Take it back. Lists seem to work but they're broken
7326         in the test suite. Make the base examples use
7327         lists (works fine).
7328
7329 2004-05-30  Seth Nickell  <seth@gnome.org>
7330
7331         * python/dbus_bindings.pyx.in:
7332         * python/tests/test-client.py:
7333
7334         Add some more tests and fix errors that crop up.
7335         Unfortunately, currently it seems like marshalling
7336         and unmarshalling of lists is completely broken :-(
7337
7338 2004-05-30  Seth Nickell  <seth@gnome.org>
7339
7340         * python/dbus_bindings.pyx.in:
7341
7342         Add support for ObjectPath type.
7343
7344         * python/dbus.py:
7345
7346         Refactor message handling code to a common function.
7347         
7348         * python/tests/test-client.py:
7349         * python/tests/test-server.py:
7350
7351         Add tests that check to make sure values of all types
7352         can be echoed from a service w/o mangling.
7353         
7354 2004-05-29  Seth Nickell  <seth@gnome.org>
7355
7356         * python/dbus.py:
7357
7358         Add ObjectTree class which allows implementation
7359         of trees of "virtual" objects. Basically the python
7360         wrapper for "register_fallback".
7361         
7362         * python/examples/Makefile.am
7363         * python/examples/gconf-proxy-client.py:
7364         * python/examples/gconf-proxy-service.py:
7365
7366         Implement a simple GConf proxy service that supports
7367         get/set on string and int GConf keys using the ObjectTree.
7368         
7369 2004-05-29  Seth Nickell  <seth@gnome.org>
7370
7371         * python/dbus.py:
7372         * python/examples/example-client.py:
7373         * python/examples/example-service.py:
7374         * python/examples/list-system-services.py:
7375
7376         Add SessionBus, SystemBus and ActivationBus classes
7377         so you don't need to know the special little BUS_TYPE
7378         flag.
7379         
7380 2004-05-29  Havoc Pennington  <hp@redhat.com>
7381
7382         * bus/config-parser.c (process_test_valid_subdir): temporarily
7383         stop testing config parser OOM handling, since expat has issues
7384         http://freedesktop.org/pipermail/dbus/2004-May/001153.html
7385
7386         * bus/dbus-daemon-1.1.in: change requested_reply to
7387         send_requested_reply/receive_requested_reply so we can send the
7388         replies, not just receive them.
7389
7390         * bus/config-parser.c: parse the new
7391         send_requested_reply/receive_requested_reply
7392
7393         * bus/policy.c (bus_client_policy_check_can_send): add
7394         requested_reply argument and use it
7395
7396         * bus/bus.c (bus_context_check_security_policy): pass through
7397         requested_reply status to message send check
7398
7399         * bus/system.conf.in: adapt to requested_reply change
7400         
7401 2004-05-28  Havoc Pennington  <hp@redhat.com>
7402
7403         * test/glib/test-service-glib.c (main): remove unused variable
7404
7405         * glib/dbus-gidl.c (base_info_ref): fix a silly compiler warning
7406
7407         * dbus/dbus-auth.h (enum): remove AUTHENTICATED_WITH_UNUSED_BYTES
7408         from the enum, no longer in use.
7409
7410         * dbus/dbus-sysdeps.h: include config.h so DBUS_VA_COPY actually
7411         works right.
7412
7413         * dbus/dbus-message.c: add various _dbus_return_val_if_fail for
7414         whether error_name passed in is a valid error name.
7415
7416 2004-05-28  John (J5) Palmieri  <johnp@redhat.com>
7417
7418         * dbus/dbus-message.c (dbus_message_get_args): Added support for
7419         OBJECT_PATH and OBJECT_PATH_ARRAY
7420
7421 2004-05-28  Seth Nickell  <seth@gnome.org>
7422
7423         * python/examples/Makefile.am:
7424
7425         Forget to add Makefile.am. Do not pass go.
7426
7427 2004-05-28  Michael Meeks  <michael@ximian.com>
7428
7429         * glib/dbus-gvalue.c (dbus_gvalue_marshal, dbus_gvalue_demarshal): 
7430         fix no int64 case.
7431
7432         * dbus/dbus-string.c (_dbus_string_parse_basic_type): impl.
7433
7434         * dbus/dbus-message.c (_dbus_message_iter_get_basic_type),
7435         (_dbus_message_iter_get_basic_type_array): impl.
7436         drastically simplify ~all relevant _get methods to use these.
7437         (_dbus_message_iter_append_basic_array),
7438         (dbus_message_iter_append_basic): impl
7439         drastically simplify ~all relevant _append methods to use these.
7440
7441         * dbus/dbus-message-builder.c (parse_basic_type) 
7442         (parse_basic_array, lookup_basic_type): impl.
7443         (_dbus_message_data_load): prune scads of duplicate /
7444         cut & paste coding.
7445
7446         * dbus/dbus-marshal.c (_dbus_demarshal_basic_type_array) 
7447         (_dbus_demarshal_basic_type): implement,
7448         (demarshal_and_validate_len/arg): beef up debug.
7449         (_dbus_marshal_basic_type, _dbus_marshal_basic_type_array): impl.
7450
7451 2004-05-27  Seth Nickell  <seth@gnome.org>
7452
7453         * configure.in:
7454         * python/Makefile.am:
7455
7456         Include the example python apps in the tarball.
7457         
7458         * python/examples/list-system-services.py
7459
7460         Add a python new example that fetches the list of services
7461         from the system bus.
7462         
7463 2004-05-27  Seth Nickell  <seth@gnome.org>
7464
7465         * python/dbus.py:
7466         * python/dbus_bindings.pyx.in:
7467
7468         Fix failure to notify that a signal was not handled,
7469         resulted in hung functions.
7470         
7471 2004-05-25  Colin Walters  <walters@redhat.com>
7472
7473         * tools/dbus-monitor.c (main): Monitor all types of messages.
7474
7475 2004-05-23  Owen Fraser-Green  <owen@discobabe.net>
7476
7477         * mono/Handler.cs, mono/Service.cs: Added UnregisterObject method
7478         which unregisters the object path and disposes the handler.
7479
7480 2004-05-23  Kristian Høgsberg  <krh@redhat.com>
7481  
7482         Patch from Timo Teräs <ext-timo.teras@nokia.com> (#614):
7483          
7484         * dbus/dbus-message.c (dbus_message_iter_get_args_valist): Swap
7485         operands to && so we call dbus_message_iter_next () for the last
7486         argument also.
7487
7488 2004-05-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7489
7490         * dbus/dbus-object-tree.c
7491         (_dbus_object_tree_list_registered_unlock, lookup_subtree): return
7492         children even if the requested path isn't registered.
7493         (object_tree_test_iteration): test object_tree_list_registered.
7494
7495         * configure.in: undefine HAVE_ABSTRACT_SOCKETS instead of defining
7496         it to 0.
7497         
7498 2004-05-20  Kristian Høgsberg  <krh@redhat.com>
7499
7500         * doc/TODO: Remove resolved items.
7501
7502         * bus/expirelist.h (struct BusExpireList): remove unused n_items
7503         field.
7504         
7505         * bus/connection.c (bus_connections_expect_reply): Enforce the
7506         per-connection limit on pending replies.
7507         
7508         Patch from Jon Trowbridge <trow@ximian.com>:
7509  
7510         * bus/main.c (setup_reload_pipe): Added.  Creates a pipe and sets
7511         up a watch that triggers a config reload when one end of the pipe
7512         becomes readable.
7513         (signal_handler): Instead of doing the config reload in our SIGHUP
7514         handler, just write to the reload pipe and let the associated
7515         watch handle the reload when control returns to the main loop.
7516  
7517         * bus/driver.c (bus_driver_handle_reload_config): Added.
7518         Implements a ReloadConfig method for requesting a configuration
7519         file reload via the bus driver.
7520  
7521 2004-05-19  Owen Fraser-Green  <owen@discobabe.net>
7522
7523         * HACKING: Updated release instructions concerning the wiki page.
7524
7525 2004-05-18  Kristian Høgsberg  <krh@redhat.com>
7526
7527         * dbus/dbus-auth.c (client_try_next_mechanism): Remove logic to
7528         filter against auth->allowed_mechs; we only add allowed mechs in
7529         record_mechanisms().
7530  
7531         * dbus/dbus-auth-script.c (_dbus_auth_script_run): Add an
7532         ALLOWED_MECHS to auth-script format so we can set the list of
7533         allowed mechanisms.
7534  
7535         * data/auth/client-out-of-mechanisms.auth-script: New test to
7536         check client disconnects when it is out of mechanisms to try.
7537  
7538         * dbus/dbus-auth.c (process_command): Remove check for lines
7539         longer that 1 MB; we only buffer up maximum 16 kB.
7540  
7541         * dbus/dbus-transport.c, dbus/dbus-transport-unix.c,
7542         dbus/dbus-auth-script.c, dbus/dbus-auth.c, dbus/dbus-auth.h:
7543         Remove auth state AUTHENTICATED_WITH_UNUSED_BYTES, instead always
7544         assume there might be unused bytes.
7545  
7546         * dbus/dbus-auth.c (_dbus_auth_do_work): Remove check for
7547         client-out-of-mechs, it is handled in process_reject(). Move check
7548         for max failures to send_rejected(), as it's a server-only thing.
7549
7550         * dbus/dbus-auth.c: Factor out protocol reply code into functions
7551         send_auth(), send_data(), send_rejected(), send_error(),
7552         send_ok(), send_begin() and send_cancel().
7553
7554 2004-05-17  Kristian Høgsberg  <krh@redhat.com>
7555
7556         Remove base64 encoding, replace with hex encoding. Original patch
7557         from trow@ximian.com, added error handling.
7558
7559         * dbus/dbus-string.c (_dbus_string_base64_encode)
7560         (_dbus_string_base64_decode): Remove.
7561         (_dbus_string_hex_decode): Add end_return argument so we can
7562         distinguish between OOM and invalid hex encoding.
7563         (_dbus_string_test): Remove base64 tests and add test case for
7564         invalid hex.
7565
7566         * dbus/dbus-keyring.c, dbus/dbus-auth-script.c, dbus/dbus-auth.c:
7567         Replace base64 with hex.
7568
7569         * test/data/auth/invalid-hex-encoding.auth-script: New test case
7570         for invalid hex encoded data in auth protocol.
7571
7572 2004-05-17  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7573
7574         * dbus/dbus-connection.c (check_for_reply_unlocked): plug a memory
7575         leak.
7576
7577 2004-05-15  Owen Fraser-Green  <owen@discobabe.net>
7578
7579         * mono/dbus-sharp.dll.config.in: Added for GAC
7580         * mono/dbus-sharp.snk: Added for GAC
7581         * mono/Assembly.cs.in: Added for GAC
7582         * mono/Makefile.am: Changes for GAC installation        
7583         * configure.in: Added refs for dbus-sharp.dll.config.in and
7584         Assembly.cs.in. More fixes for mono testing
7585         * mono/example/Makefile.am: Changed var to CSC
7586         * Makefile.am: Changed flag name to DBUS_USE_CSC
7587
7588 2004-05-15  Owen Fraser-Green  <owen@discobabe.net>
7589
7590         * mono/Makefile.am: Added SUBDIRS for docs. Changed SUBDIRS order
7591         * mono/doc/*: Added documentation framework
7592         * configure.in: Added monodoc check
7593         * README: Added description of mono configure flags
7594
7595 2004-05-11  John (J5) Palmieri  <johnp@redhat.com>:
7596
7597         * doc/dbus-specification.xml: Added a "Required" column to the 
7598         header fields table and changed the "zero or more" verbage in
7599         the above paragraph to read "The header must contain the required 
7600         named header fields and zero or more of the optional named header 
7601         fields".
7602         * test/data/invalid-messages/*.message: Added the required PATH 
7603         named header field to the tests so that they don't fail on 
7604         'Missing path field'
7605
7606 2004-05-07  John (J5) Palmieri  <johnp@redhat.com>
7607
7608         * python/dbus-bindings.pyx.in: Stopped the bindings from trashing
7609         the stack by implicitly defining variable and parameter types and
7610         removing the hack of defining C pointers as python objects and later
7611         casting them.
7612
7613 2004-05-02  Owen Fraser-Green  <owen@discobabe.net>
7614
7615         * mono/Makefile.am: Removed test-dbus-sharp.exe from all target
7616
7617 2004-05-01  Owen Fraser-Green  <owen@discobabe.net>
7618
7619         * mono/DBusType/Dict.cs: Handle empty dicts
7620         * mono/DBusType/Array.cs: Handle empty arrays
7621         * mono/Arguments.cs: Handle empty arguments
7622
7623 2004-04-30  Owen Fraser-Green  <owen@discobabe.net>
7624
7625         * dbus-sharp.pc.in: Modified to include include Libs and Requires
7626         field
7627
7628 2004-04-25  Kristian Høgsberg  <krh@redhat.com>
7629
7630         * test/data/valid-messages/standard-*.message: Update message
7631         test scripts to new header field names.
7632
7633 2004-04-22  John (J5) Palmieri  <johnp@redhat.com>
7634
7635         * test/break-loader.c (randomly_do_n_things): tracked down buffer
7636         overflow to times_we_did_each_thing array which would chop off the
7637         first character of the failure_dir string. Increased the size of
7638         the array to 7 to reflect the number of random mutation functions
7639         we have.
7640
7641 2004-04-21  Kristian Høgsberg  <krh@redhat.com>
7642
7643         * dbus/dbus-server-unix.c (unix_finalize): Don't unref
7644         unix_server->watch here, it is unreffed in disconnect.
7645         (_dbus_server_new_for_tcp_socket): convert NULL host to
7646         "localhost" here so we don't append NULL to address.
7647         
7648         * dbus/dbus-server.c (_dbus_server_test): Add test case for
7649         various addresses, including tcp with no explicit host.
7650
7651 2004-04-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7652
7653         * dbus/dbus-message.c (decode_header_data, decode_string_field):
7654         fix incorrect setting of .name_offset in the HeaderField (it was
7655         off by two bytes, positioned right after the name and typecode)
7656
7657         * bus/bus.c (bus_context_new, bus_context_unref): test before
7658         calling dbus_server_free_data_slot and _dbus_user_database_unref
7659         in case of an error.
7660
7661         * tools/Makefile.am: add $(DBUS_GLIB_TOOL_LIBS), xml libs needed
7662         by libdbus-gtool.
7663
7664 2004-04-19  Kristian Høgsberg  <krh@redhat.com>
7665
7666         * dbus/dbus-transport-unix.c (unix_do_iteration): Rewrite to use
7667         _dbus_poll() instead of select().
7668
7669 2004-04-15  Jon Trowbridge  <trow@ximian.com>
7670
7671         * bus/main.c (signal_handler): Reload the configuration files
7672         on SIGHUP.
7673         (main): Set up our SIGHUP handler.
7674
7675         * bus/bus.c (struct BusContext): Store the config file, user and
7676         fork flag in the BusContext.
7677         (process_config_first_time_only): Added.  Contains the code
7678         (previously in bus_context_new) for setting up the BusContext from
7679         the BusConfigParser that should only be run the first time the
7680         config files are read.
7681         (process_config_every_time): Added.  Contains the code (previously
7682         in bus_context_new) for setting up the BusContext from the
7683         BusConfigParser that should be run every time the config files are
7684         read.
7685         (load_config): Added.  Builds a BusConfigParser from the config
7686         files and passes the resulting structure off to
7687         process_config_first_time_only (assuming this is the first time)
7688         and process_config_every_time.
7689         (bus_context_new): All of the config-related code has been moved
7690         to process_config_first_time_only and process_config_every_time.
7691         Now this function just does the non-config-related initializations
7692         and calls load_config.
7693         (bus_context_reload_config): Added.
7694
7695 2004-04-15  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7696
7697         * bus/driver.c (bus_driver_handle_get_service_owner):
7698         implement a GetServiceOwner method.
7699         * doc/dbus-specification.xml: document it.
7700         * dbus/dbus-errors.h: add a 'ServiceHasNoOwner' error.
7701         
7702         * glib/dbus-gproxy.c (dbus_gproxy_new_for_service_owner):
7703         implement, using the bus GetServiceOwner method.
7704
7705         * test/glib/test-dbus-glib.c:
7706         use dbus_gproxy_new_for_service_owner so that we can receive the
7707         signal. 
7708
7709 2004-04-15  John (J5) Palmieri  <johnp@redhat.com>
7710
7711         * dbus/dbus-internals.c, dbus/dbus-message-builder.c,
7712         dbus/dbus-message.c, dbus/dbus-protocol.h
7713         (DBUS_HEADER_FIELD_SERVICE): renamed DBUS_HEADER_FIELD_DESTINATION
7714
7715         * dbus/dbus-internals.c, dbus/dbus-message-builder.c,
7716         dbus/dbus-message.c, dbus/dbus-protocol.h
7717         (DBUS_HEADER_FIELD_SENDER_SERVICE): renamed DBUS_HEADER_FIELD_SENDER
7718
7719         * dbus/dbus-internals.c (_dbus_header_field_to_string):
7720         DBUS_HEADER_FIELD_DESTINATION resolves to "destination"
7721         DBUS_HEADER_FIELD_SENDER resolves to "sender"
7722
7723         * doc/dbus-specification.xml (Header Fields Table):
7724         s/SERVICE/DESTINATION
7725         s/SENDER_SERVICE/SENDER
7726
7727
7728 2004-04-14  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7729
7730         * test/glib/test-dbus-glib.c (timed_exit): fail the test after
7731         a few seconds.
7732
7733 2004-04-13  Michael Meeks  <michael@ximian.com>
7734
7735         * glib/dbus-gobject.c (handle_introspect): split out
7736         (introspect_properties): this.
7737         (handle_introspect): implement this.
7738
7739         * test/glib/Makefile.am: use the absolute path so the bus
7740         daemon's chdir ("/") doesn't kill us dead.
7741
7742         * configure.in: subst ABSOLUTE_TOP_BUILDDIR
7743
7744 2004-04-12  Jon Trowbridge  <trow@ximian.com>
7745
7746         * bus/config-parser.c (struct BusConfigParser): Added
7747         included_files field.
7748         (seen_include): Added.  Checks whether or not a file has already
7749         been included by any parent BusConfigParser.
7750         (bus_config_parser_new): Copy the parent's included_files.
7751         (include_file): Track which files have been included, and fail on
7752         circular inclusions.
7753         (process_test_valid_subdir): Changed printf to report if we are
7754         testing valid or invalid conf files.
7755         (all_are_equiv): Changed printf to be a bit clearer about
7756         what we are actually doing.
7757         (bus_config_parser_test): Test invalid configuration files.
7758
7759 2004-04-09  Jon Trowbridge  <trow@ximian.com>
7760
7761         * bus/config-parser.c (bus_config_parser_new): Added a 'parent'
7762         argument.  If non-null, the newly-constructed BusConfigParser will
7763         be initialized with the parent's BusLimits instead of the default
7764         values.
7765         (include_file): When including a config file, pass in
7766         the current parser as the parent and then copy the BusLimits
7767         from the included BusConfigParser pack to the current parser.
7768         (process_test_valid_subdir): Renamed from process_test_subdir.
7769         (process_test_equiv_subdir): Added.  Walks through a directory,
7770         descending into each subdirectory and loading the config files
7771         it finds there.  If any subdirectory contains two config files
7772         that don't produce identical BusConfigParser structs, fail.
7773         For now, the BusConfigParser's BusPolicies are not compared.
7774         (bus_config_parser_test): Call both process_test_valid_subdir and
7775         process_test_equiv_subdir.
7776
7777         * bus/config-loader-libxml.c (bus_config_load): Take a parent
7778         argument and pass it along to the call to bus_config_parser_new.
7779         Also made a few small changes to allow this code to compile.
7780
7781         * bus/config-loader-expat.c (bus_config_load): Take a parent
7782         argument and pass it along to the call to bus_config_parser_new.
7783
7784         * bus/bus.c (bus_context_new): Load the config file
7785         with a NULL parent argument.
7786
7787 2004-03-29  Michael Meeks  <michael@ximian.com>
7788
7789         * glib/dbus-gobject.c (introspect_properties): split
7790         out, fix mangled 'while' flow control.
7791         (introspect_signals): implement.
7792         (handle_introspect): update.
7793
7794 2004-03-29  Michael Meeks  <michael@ximian.com>
7795
7796         * glib/dbus-gobject.c (set_object_property): split out / 
7797         re-work, use the property type, and not the message type(!)
7798         (get_object_property): ditto.
7799
7800         * glib/dbus-gvalue.c (dbus_gvalue_demarshal),
7801         (dbus_gvalue_marshal): make this code re-usable, needed
7802         for signals too, also on both proxy and server side.
7803         Re-write for more efficiency / readability.
7804
7805 2004-03-29  Michael Meeks  <michael@ximian.com>
7806
7807         * dbus/dbus-message.c
7808         (dbus_message_new_error_printf): impl.
7809
7810         * dbus/dbus-connection.c
7811         (dbus_connection_unregister_object_path): fix warning.
7812
7813         * configure.in: fix no-mono-installed situation.
7814
7815 2004-03-27  Havoc Pennington  <hp@redhat.com>
7816
7817         Patch from Timo Teräs:
7818         
7819         * tools/dbus-send.c (main): if --print-reply, assume type is
7820         method call; support boolean type args
7821         
7822         * dbus/dbus-connection.c (dbus_connection_send_with_reply): fix a
7823         bunch of memleak and logic bugs
7824         
7825 2004-03-23  Owen Fraser-Green  <owen@discobabe.net>
7826
7827         * mono/Arguments.cs:
7828         * mono/Introspector.cs:
7829         * mono/Handler.cs:
7830         * mono/InterfaceProxy.cs:
7831         * mono/Message.cs
7832         * mono/ProxyBuilder.cs:
7833         * mono/Service.cs:
7834         Added InterfaceProxy class to avoid building proxies for every
7835         object.
7836
7837         * dbus-message.h:
7838         * dbus-message.c (dbus_message_append_args_valist)
7839         (dbus_message_iter_get_object_path)
7840         (dbus_message_iter_get_object_path_array)
7841         (dbus_message_iter_append_object_path)
7842         (dbus_message_iter_append_object_path_array):
7843         Added object_path iter functions to handle OBJECT_PATH arguments
7844         
7845 2004-03-23  Owen Fraser-Green  <owen@discobabe.net>
7846
7847         First checkin of mono bindings.
7848         * configure.in:
7849         * Makefile.am:
7850         Build stuff for the bindings
7851         * dbus-sharp.pc.in: Added for pkgconfig
7852         
7853 2004-03-21  Havoc Pennington  <hp@redhat.com>
7854
7855         * test/test-service.c (main): remove debug spew
7856
7857 2004-03-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7858
7859         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): accept empty
7860         arrays
7861
7862         * dbus/dbus-message.h, bus/dbus-message.c (dbus_message_iter_init)
7863         (dbus_message_iter_init_array_iterator)
7864         (dbus_message_iter_init_dict_iterator): return a dbus_bool_t to
7865         indicate whether the iterator is empty
7866
7867         * dbus/dbus-pending-call.c, dbus/dbus-server.c: silence compiler
7868         warnings
7869
7870 2004-03-19  Havoc Pennington  <hp@redhat.com>
7871
7872         * NEWS: 0.21 updates
7873
7874         * configure.in: 0.21
7875
7876         * doc/Makefile.am: add all XMLTO usage to DBUS_XML_DOCS_ENABLED
7877         
7878         * python/Makefile.am: change to avoid dist of dbus_bindings.c so
7879         you don't need pyrex to make dist
7880
7881         * qt/Makefile.am (libdbus_qt_1_la_SOURCES): add integrator.h to
7882         sources; run moc
7883         
7884 2004-03-18  Richard Hult  <richard@imendio.com>
7885
7886         * dbus/dbus-message.c (dbus_message_get_auto_activation) 
7887         (dbus_message_set_auto_activation): Add doxygen docs.
7888
7889 2004-03-16  Richard Hult  <richard@imendio.com>
7890
7891         * bus/activation.c: (bus_activation_service_created),
7892         (bus_activation_send_pending_auto_activation_messages),
7893         (bus_activation_activate_service):
7894         * bus/activation.h:
7895         * bus/dispatch.c: (bus_dispatch),
7896         (check_nonexistent_service_auto_activation),
7897         (check_service_auto_activated),
7898         (check_segfault_service_auto_activation),
7899         (check_existent_service_auto_activation), (bus_dispatch_test):
7900         * bus/driver.c: (bus_driver_handle_activate_service):
7901         * bus/services.c: (bus_registry_acquire_service):
7902         * dbus/dbus-message.c: (dbus_message_set_auto_activation),
7903         (dbus_message_get_auto_activation):
7904         * dbus/dbus-message.h:
7905         * dbus/dbus-protocol.h: Implement auto-activation.
7906         
7907         * doc/dbus-specification.xml: Add auto-activation to the spec.
7908
7909 2004-03-12  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7910
7911         * dbus/dbus-marshal.c (_dbus_marshal_get_arg_end_pos):
7912         fix a bug with CUSTOM types.
7913
7914         * dbus/dbus-message.c (message_iter_test, _dbus_message_test): add
7915         a unit test for this bug (used to fail).
7916
7917 2004-03-12  Mikael Hallendal  <micke@imendio.com>
7918
7919         * bus/activation.c:
7920         (babysitter_watch_callback): notify all pending activations waiting for
7921           the same exec that the activation failed.
7922         (bus_activation_activate_service): shortcut the activation if we 
7923           already waiting for the same executable to start up.
7924
7925 2004-03-12  Mikael Hallendal  <micke@imendio.com>
7926
7927         * bus/activation.c: 
7928         - Added service file reloading. 
7929           Each service files directory is kept in an hash table in 
7930           BusActivation and each BusActivationEntry knows what .service-file it
7931           was read from. So when you try to activate a service the bus will 
7932           check if it's been updated, removed or if new .service-files has 
7933           been installed.
7934         - Test code at the bottom for the service file reloading.
7935         * bus/test-main.c: (main):
7936         * bus/test.h:
7937         - added service reloading test.
7938         * dbus/dbus-sysdeps.c: 
7939         * dbus/dbus-sysdeps.h: (_dbus_delete_directory): Added.
7940
7941 2004-03-08  Michael Meeks  <michael@ximian.com>
7942
7943         * dbus/dbus-connection.c (_dbus_connection_block_for_reply): 
7944         bail immediately if disconnected, to avoid busy loop.
7945
7946         * dbus/dbus-message.c (dbus_message_iter_get_args_valist):
7947         cleanup cut/paste/inefficiency.
7948
7949 2004-03-01  David Zeuthen  <david@fubar.dk>
7950
7951         * dbus/dbus-string.c (_dbus_string_append_printf_valist): Fix a
7952         bug where args were used twice. This bug resulted in a segfault
7953         on a Debian/PPC system when starting the messagebus daemon. Include
7954         dbus-sysdeps.h for DBUS_VA_COPY
7955
7956         * dbus/dbus-sysdeps.h: Define DBUS_VA_COPY if neccessary. From GLib
7957
7958         * configure.in: Check for va_copy; define DBUS_VA_COPY to the
7959         appropriate va_copy implementation. From GLib
7960         
7961 2004-02-24  Joe Shaw  <joe@ximian.com>
7962
7963         * bus/services.c (bus_registry_acquire_service): We need to pass
7964         in the service name to dbus_set_error() to prevent a crash.
7965
7966 2003-12-26  Anders Carlsson  <andersca@gnome.org>
7967
7968         * AUTHORS: Reveal my True identity.
7969
7970 2003-12-17  Mikael Hallendal  <micke@imendio.com>
7971
7972         * dbus/dbus-message.c: (dbus_message_append_args_valist): 
7973         - Added case for DBUS_TYPE_BYTE, patch from Johan Hedberg.
7974
7975 2003-12-13  Mikael Hallendal  <micke@imendio.com>
7976
7977         * doc/TODO: Added not about better error check of configuration files.
7978
7979 2003-12-02  Richard Hult  <richard@imendio.com>
7980
7981         * Update AFL version to 2.0 throughout the source files to reflect
7982         the update that was done a while ago.
7983
7984 2003-12-02  Richard Hult  <richard@imendio.com>
7985
7986         * dbus/dbus-message.c (dbus_message_iter_append_dict): Set
7987         wrote_dict_key to FALSE on the iter that the dict is appended to,
7988         just like when appending other types. Fixes a bug where a dict
7989         couldn't be put inside a dict.
7990         (dbus_message_iter_append_dict_key): Fix typo in warning message.
7991         (message_iter_test, _dbus_message_test): Add test case for dict
7992         inside dict.
7993
7994 2003-12-01  David Zeuthen  <david@fubar.dk>
7995
7996         * python/dbus.py: Add the actual message when calling the reciever
7997         of a signal such that parameters can be inspected. Add the method
7998         remove_signal_receiver
7999         
8000 2003-11-26  Mikael Hallendal  <micke@imendio.com>
8001
8002         * bus/*.[ch]:
8003         * dbus/*.[ch]:
8004         * glib/*.[ch]: Made ref functions return the pointer
8005
8006 2003-11-25  Zack Rusin  <zack@kde.org>
8007
8008         * qt/integrator.h, qt/integrator.cpp: Adding handling of DBusServer,
8009
8010         * qt/server.h, qt/server.cpp, qt/Makefile.am: Adding DBusServer 
8011         wrappers,
8012
8013         * qt/connection.h, qt/connection.cpp: Adjusting to changes in 
8014         the Integrator and to better fit with the server,
8015
8016 2003-11-24  Zack Rusin  <zack@kde.org>
8017
8018         * qt/connection.h, qt/connection.cpp: removing initDbus method since
8019         the integrator handles it now
8020
8021         * qt/integrator.h, qt/integrator.cpp: reworking handling of timeouts,
8022         since QTimer wasn't really meant to be used the way DBusTimeout is
8023
8024 2003-11-24  Zack Rusin  <zack@kde.org>
8025
8026         * qt/integrator.h, qt/integrator.cpp, Makefile.am: Adding 
8027         Integrator class which integrates D-BUS with the Qt event loop,
8028
8029         * qt/connection.h, qt/connection.cpp: Move all the code which
8030         was dealing with D-BUS integration to the Integrator class,
8031         and start using Integrator,
8032
8033 2003-11-23  Zack Rusin  <zack@kde.org>
8034
8035         * qt/connection.h, qt/connection.cpp: Adding the DBusConnection 
8036         wrapper
8037
8038         * qt/message.h, qt/message.cpp: updating to the current D-BUS api,
8039         switching namespaces to DBusQt, reworking the class,
8040
8041         * Makefile.cvs: switching dependencies so that it matches KDE 
8042         schematics,
8043         
8044         * qt/Makefile.am: adding connection.{h,cpp} and message.{h,cpp} to 
8045         the library
8046
8047 2003-11-19  Havoc Pennington  <hp@redhat.com>
8048
8049         * NEWS: update
8050
8051         * configure.in: bump version to 0.20
8052
8053         * configure.in (have_qt): add yet another place to look for qt
8054         (someone hand trolltech a .pc file...)
8055
8056 2003-11-01  Havoc Pennington  <hp@redhat.com>
8057
8058         * doc/dbus-specification.xml: add state machine docs on the auth
8059         protocol; just a first draft, I'm sure it's wrong.      
8060
8061 2003-10-28  David Zeuthen  <david@fubar.dk>
8062
8063         * python/dbus_bindings.pyx.in: add get_dict to handle dictionaries
8064         return types. Fixup TYPE_* to reflect changes in dbus/dbus-protocol.h
8065         
8066 2003-10-28  Havoc Pennington  <hp@redhat.com>
8067
8068         * dbus/dbus-message.c (get_next_field): delete unused function
8069
8070 2003-10-28  Havoc Pennington  <hp@redhat.com>
8071
8072         * bus/expirelist.c (do_expiration_with_current_time): detect
8073         failure of the expire_func due to OOM
8074
8075         * bus/connection.c (bus_pending_reply_expired): return FALSE on OOM
8076
8077         * bus/dispatch.c (check_send_exit_to_service): fix to handle the
8078         NoReply error that's now created by the bus when the service exits
8079
8080 2003-10-28  Havoc Pennington  <hp@redhat.com>
8081
8082         * dbus/dbus-message.c (_dbus_message_test): enable and fix the
8083         tests for set_path, set_interface, set_member, etc.
8084
8085         * dbus/dbus-string.c (_dbus_string_insert_bytes): allow 0 bytes
8086
8087         * dbus/dbus-message.c (set_string_field): always just delete and
8088         re-append the field; accept NULL for deletion
8089         (re_align_fields_recurse): reimplement
8090         
8091 2003-10-26  Havoc Pennington  <hp@redhat.com>
8092
8093         * dbus/dbus-connection.c: fix docs to properly describe the
8094         disconnected message
8095         (_dbus_connection_notify_disconnected): remove this function; 
8096         we can't synchronously add the disconnected message, we have to 
8097         do it after we've queued any remaining real messages
8098         (_dbus_connection_get_dispatch_status_unlocked): queue the
8099         disconnect message only if the transport has finished queueing all
8100         its real messages and is disconnected.
8101         (dbus_connection_disconnect): update the dispatch status here
8102
8103 2003-10-22  Havoc Pennington  <hp@redhat.com>
8104
8105         * bus/bus.c (bus_context_check_security_policy): fix up assertion
8106
8107         * bus/connection.c (bus_transaction_send_from_driver): set the
8108         destination to the connection's base service
8109
8110 2003-10-20  Havoc Pennington  <hp@redhat.com>
8111
8112         hmm, make check is currently not passing.
8113         
8114         * doc/dbus-specification.xml: add requirement that custom type
8115         names follow the same rules as interface names.
8116
8117         * dbus/dbus-protocol.h: change some of the byte codes, to avoid
8118         duplication and allow 'c' to be 'custom'; dict is now 'm' for
8119         'map'
8120
8121         * doc/dbus-specification.xml: update type codes to match
8122         dbus-protocol.h, using the ASCII byte values. Rename type NAMED to
8123         CUSTOM. Add type OBJECT_PATH to the spec.
8124
8125 2003-10-17  Havoc Pennington  <hp@redhat.com>
8126
8127         * bus/driver.c (create_unique_client_name): use "." as separator
8128         in base service names instead of '-'
8129
8130         * dbus/dbus-string.c (_dbus_string_get_byte): allow getting nul
8131         byte at the end of the string
8132
8133         * dbus/dbus-internals.h (_DBUS_LIKELY, _DBUS_UNLIKELY): add
8134         optimization macros since string validation seems to be a slow
8135         point.
8136         
8137         * doc/dbus-specification.xml: restrict valid
8138         service/interface/member/error names. Add test suite code for the
8139         name validation.
8140
8141         * dbus/dbus-string.c: limit service/interface/member/error names 
8142         to [0-9][A-Z][a-z]_
8143
8144         * dbus/dbus-connection.c (dbus_connection_dispatch): add missing
8145         format arg to verbose spew
8146
8147         * glib/dbus-gproxy.c (dbus_gproxy_call_no_reply): if not out of
8148         memory, return instead of g_error
8149
8150         * test/test-service.c (path_message_func): support emitting a
8151         signal on request
8152
8153         * dbus/dbus-bus.c (init_connections_unlocked): only fill in
8154         activation bus type if DBUS_BUS_ACTIVATION was set; default to
8155         assuming the activation bus was the session bus so that services
8156         started manually will still register.
8157         (init_connections_unlocked): fix so that in OOM situation we get
8158         the same semantics when retrying the function
8159         
8160         * test/test-service.c (main): change to use path registration, to
8161         test those codepaths; register with DBUS_BUS_ACTIVATION rather
8162         than DBUS_BUS_SESSION
8163
8164 2003-10-16  Havoc Pennington  <hp@redhat.com>
8165
8166         * glib/dbus-gtest-main.c: bracket with #ifdef DBUS_BUILD_TESTS
8167
8168         * Makefile.am (GCOV_DIRS): remove "test", we don't care about test
8169         coverage of the tests
8170         (coverage-report.txt): don't move the .da and .bbg files around
8171
8172 2003-10-16  Havoc Pennington  <hp@redhat.com>
8173
8174         * bus/bus.c (struct BusContext): remove struct field I didn't mean
8175         to put there
8176
8177 2003-10-16  Havoc Pennington  <hp@redhat.com>
8178
8179         * bus/connection.c (bus_pending_reply_expired): either cancel or
8180         execute, not both
8181         (bus_connections_check_reply): use unlink, not remove_link, as we
8182         don't want to free the link; fixes double free mess
8183
8184         * dbus/dbus-pending-call.c (dbus_pending_call_block): fix in case
8185         where no reply was received
8186
8187         * dbus/dbus-connection.c (_dbus_pending_call_complete_and_unlock):
8188         fix a refcount leak
8189
8190         * bus/signals.c (match_rule_matches): add special cases for the
8191         bus driver, so you can match on sender/destination for it.
8192
8193         * dbus/dbus-sysdeps.c (_dbus_abort): print backtrace if
8194         DBUS_PRINT_BACKTRACE is set
8195
8196         * dbus/dbus-internals.c: add pid to assertion failure messages
8197
8198         * dbus/dbus-connection.c: add message type code to the debug spew
8199
8200         * glib/dbus-gproxy.c (gproxy_get_match_rule): match rules want
8201         sender=foo not service=foo
8202
8203         * dbus/dbus-bus.c (dbus_bus_get): if the activation bus is the
8204         session bus but DBUS_SESSION_BUS_ADDRESS isn't set, use 
8205         DBUS_ACTIVATION_ADDRESS instead
8206
8207         * bus/activation.c: set DBUS_SESSION_BUS_ADDRESS,
8208         DBUS_SYSTEM_BUS_ADDRESS if appropriate
8209
8210         * bus/bus.c (bus_context_new): handle OOM copying bus type into
8211         context struct
8212
8213         * dbus/dbus-message.c (dbus_message_iter_get_object_path): new function
8214         (dbus_message_iter_get_object_path_array): new function (half
8215         finished, disabled for the moment)
8216         
8217         * glib/dbus-gproxy.c (dbus_gproxy_end_call): properly handle
8218         DBUS_MESSAGE_TYPE_ERROR
8219
8220         * tools/dbus-launch.c (babysit): support DBUS_DEBUG_OUTPUT to
8221         avoid redirecting stderr to /dev/null
8222         (babysit): close stdin if not doing the "exit_with_session" thing
8223
8224         * dbus/dbus-sysdeps.c (_dbus_become_daemon): delete some leftover
8225         debug code; change DBUS_DEBUG_OUTPUT to only enable stderr, not
8226         stdout/stdin, so things don't get confused
8227         
8228         * bus/system.conf.in: fix to allow replies, I modified .conf
8229         instead of .conf.in again.
8230
8231 2003-10-14  David Zeuthen  <david@fubar.dk>
8232
8233         * python/dbus_bindings.pyx.in (MessageIter.get): fixed typo in
8234         argtype to arg_type when raising unknown arg type exception.
8235         Changed type list to reflect the changes in dbus-protocol.h so 
8236         the bindings actually work.
8237
8238 2003-10-14  Havoc Pennington  <hp@redhat.com>
8239
8240         * test/decode-gcov.c: support gcc 3.3 also, though gcc 3.3 seems
8241         to have a bug keeping it from outputting the .da files sometimes
8242         (string_get_string): don't append garbage nul bytes to the string.
8243
8244 2003-10-15  Seth Nickell  <seth@gnome.org>
8245
8246         * python/Makefile.am:
8247
8248         Include dbus_h_wrapper.h in the dist tarball.
8249
8250 2003-10-14  Havoc Pennington  <hp@redhat.com>
8251
8252         * bus/bus.c (bus_context_check_security_policy): revamp this to
8253         work more sanely with new policy-based requested reply setup
8254
8255         * bus/connection.c (bus_transaction_send_from_driver): set bus
8256         driver messages as no reply
8257
8258         * bus/policy.c (bus_client_policy_check_can_receive): handle a
8259         requested_reply attribute on allow/deny rules
8260
8261         * bus/system.conf: add <allow requested_reply="true"/>
8262
8263         * bus/driver.c (bus_driver_handle_message): fix check for replies
8264         sent to the bus driver, which was backward. How did this ever work
8265         at all though? I think I'm missing something.
8266
8267         * dbus/dbus-message.c (decode_header_data): require error and
8268         method return messages to have a reply serial field to be valid
8269         (_dbus_message_loader_queue_messages): break up this function;
8270         validate that reply serial and plain serial are nonzero; 
8271         clean up the OOM/error handling.
8272         (get_uint_field): don't return -1 from this
8273         (dbus_message_create_header): fix signed/unsigned bug
8274
8275         * bus/connection.c (bus_connections_expect_reply): save serial of
8276         the incoming message, not reply serial
8277
8278 2003-10-14  Havoc Pennington  <hp@redhat.com>
8279
8280         * bus/connection.c: implement pending reply tracking using
8281         BusExpireList
8282
8283         * bus/bus.c (bus_context_check_security_policy): verify that a
8284         reply is pending in order to allow a reply to be sent. Deny 
8285         messages of unknown type.
8286
8287         * bus/dbus-daemon-1.1.in: update to mention new resource limits
8288
8289         * bus/bus.c (bus_context_get_max_replies_per_connection): new
8290         (bus_context_get_reply_timeout): new
8291
8292 2003-10-13  Seth Nickell  <seth@gnome.org>
8293
8294         * python/Makefile.am:
8295
8296         Pass "make distcheck": remove a couple files from DIST_FILES
8297         that weren't included in the final version.
8298
8299 2003-10-12  Havoc Pennington  <hp@pobox.com>
8300
8301         Added test code that 1) starts an actual bus daemon and 2) uses
8302         DBusGProxy; fixed bugs that were revealed by the test. Lots 
8303         more testing possible, but this is the basic framework.
8304         
8305         * glib/dbus-gproxy.c (dbus_gproxy_manager_unregister): remove
8306         empty proxy lists from the proxy list hash
8307
8308         * dbus/dbus-message.c (dbus_message_iter_get_args_valist): add a
8309         couple of return_if_fail checks
8310
8311         * dbus/dbus-pending-call.c (_dbus_pending_call_new): use dbus_new0
8312         to allocate, so everything is cleared to NULL as it should be.
8313
8314         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): pass
8315         source as data to dbus_connection_set_timeout_functions() as the 
8316         timeout functions expected
8317
8318         * test/glib/run-test.sh: add a little script to start up a message
8319         bus and run tests using it
8320
8321         * tools/dbus-launch.1: updates
8322
8323         * tools/dbus-launch.c (main): add --config-file option
8324
8325         * tools/dbus-launch.c (main): remove confusing else if (runprog)
8326         that could never be reached.
8327
8328         * dbus/dbus-message.c (dbus_message_new_method_return) 
8329         (dbus_message_new_error, dbus_message_new_signal): set the
8330         no-reply-expected flag on all these. Redundant, but may
8331         as well be consistent.
8332
8333 2003-10-11  Havoc Pennington  <hp@pobox.com>
8334
8335         * test/decode-gcov.c (function_solve_graph): make broken block
8336         graph a nonfatal error since it seems to be broken. Need to debug
8337         this.
8338
8339         * dbus/dbus-marshal.c (_dbus_type_is_valid): new function since we
8340         can't just check type > INVALID < LAST anymore
8341
8342         * dbus/dbus-message.c (dbus_message_get_signature): new function
8343         (dbus_message_has_signature): new function
8344         (struct DBusMessage): add signature field (right now it isn't sent
8345         over the wire, just generated on the fly)
8346         (dbus_message_copy): copy the signature, and init strings to
8347         proper length to avoid some reallocs
8348         (dbus_message_iter_init_array_iterator): return void, since it
8349         can't fail
8350         (dbus_message_iter_init_dict_iterator): return void since it can't fail
8351         (_dbus_message_loader_queue_messages): add silly temporary hack to
8352         fill in message->signature on load
8353
8354         * dbus/dbus-protocol.h: change DBUS_TYPE_* values to be ASCII
8355         characters, so they are relatively human-readable.
8356
8357 2003-10-11  Havoc Pennington  <hp@pobox.com>
8358
8359         * dbus/dbus-message.c (_dbus_message_test): add more test
8360         coverage, but #if 0 for now since they uncover a bug 
8361         not fixed yet; I think in re_align_field_recurse()
8362         (re_align_field_recurse): add FIXME about broken assertion
8363
8364         * dbus/dbus-sysdeps.c (_dbus_sysdeps_test): add more test coverage
8365
8366         * bus/connection.c: share a couple code bits with expirelist.c
8367
8368         * bus/expirelist.h, bus/expirelist.c: implement a generic
8369         expire-items-after-N-seconds facility, was going to share between
8370         expiring connections and replies, decided not to use for expiring
8371         connections for now.
8372
8373         * COPYING: include AFL 2.0 (still need to change all the file headers)
8374
8375 2003-10-09  Havoc Pennington  <hp@redhat.com>
8376
8377         * configure.in: define DBUS_HAVE_GCC33_GCOV if we have
8378         gcc 3.3. Not that we do anything about it yet.
8379
8380         * bus/signals.c (bus_match_rule_parse): impose max length on the
8381         match rule text
8382
8383         * dbus/dbus-protocol.h: add DBUS_MAXIMUM_MATCH_RULE_LENGTH
8384
8385 2003-10-09  Havoc Pennington  <hp@redhat.com>
8386
8387         Make matching rules theoretically work (add parser).
8388         
8389         * bus/bus.c (bus_context_check_security_policy): fix up to handle
8390         the case where destination is explicitly specified as bus driver
8391         and someone else is eavesdropping.
8392         
8393         * bus/policy.c (bus_client_policy_check_can_receive): fix up
8394         definition of eavesdropping and assertion
8395
8396         * tools/dbus-send.c (main): use dbus_message_type_from_string
8397
8398         * bus/signals.c (bus_match_rule_parse): implement
8399
8400         * dbus/dbus-message.c (dbus_message_type_from_string): new
8401
8402         * dbus/dbus-errors.h (DBUS_ERROR_MATCH_RULE_INVALID): add
8403
8404 2003-10-02  Havoc Pennington  <hp@pobox.com>
8405
8406         * glib/dbus-gproxy.c (dbus_gproxy_call_no_reply): rename from
8407         dbus_gproxy_oneway_call
8408
8409         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main) 
8410         (dbus_server_setup_with_g_main): fix to allow calling them more
8411         than once on the same args
8412         (dbus_bus_get_with_g_main): new function
8413
8414 2003-10-02  Havoc Pennington  <hp@redhat.com>
8415
8416         * doc/dbus-tutorial.xml: write some stuff
8417
8418 2003-09-29  Havoc Pennington  <hp@pobox.com>
8419
8420         * configure.in: split checks for Doxygen from XML docs, check for
8421         xmlto
8422
8423         * doc/Makefile.am: XML-ify all the docs, and add a blank
8424         dbus-tutorial.xml
8425
8426 2003-09-29  Havoc Pennington  <hp@pobox.com>
8427
8428         * Merge dbus-object-names branch. To see the entire patch 
8429         do cvs diff -r DBUS_OBJECT_NAMES_BRANCHPOINT -r dbus-object-names,
8430         it's huuuuge though.
8431         To revert, I tagged DBUS_BEFORE_OBJECT_NAMES_MERGE.
8432         
8433 2003-09-28  Havoc Pennington  <hp@pobox.com>
8434
8435         * HACKING: update to reflect new server
8436
8437 2003-09-26  Seth Nickell  <seth@gnome.org>
8438
8439         * python/dbus.py:
8440         * python/examples/example-signals.py:
8441
8442         Start implementing some notions of signals. The API
8443         is really terrible, but they sort of work (with the
8444         exception of being able to filter by service, and to
8445         transmit signals *as* a particular service). Need to
8446         figure out how to make messages come from the service
8447         we registered :-(
8448         
8449         * python/dbus_bindings.pyx.in:
8450
8451         Removed duplicate message_handler callbacks.
8452         
8453 2003-09-25  Havoc Pennington  <hp@redhat.com>
8454
8455         * bus/session.conf.in: fix my mess
8456
8457 2003-09-25  Havoc Pennington  <hp@pobox.com>
8458
8459         * bus/session.conf.in: fix security policy, reported by Seth Nickell
8460
8461 2003-09-25  Seth Nickell  <seth@gnome.org>
8462
8463         * python/examples/example-service.py:
8464
8465         Johan notices complete wrong code in example-service, but
8466         completely wrong in a way that works exactly the same (!).
8467         Johan is confused, how could this possibly work? Example
8468         code fails to serve purpose of making things clear.
8469         Seth fixes.
8470
8471 2003-09-25  Mark McLoughlin  <mark@skynet.ie>
8472
8473         * doc/dbus-specification.sgml: don't require header fields
8474         to be 4-byte aligned and specify that fields should be
8475         distinguished from padding by the fact that zero is not
8476         a valid field name.
8477         
8478         * doc/TODO: remove re-alignment item and add item to doc
8479         the OBJECT_PATH type.
8480         
8481         * dbus/dbus-message.c:
8482         (HeaderField): rename the original member to value_offset
8483         and introduce a name_offset member to keep track of where
8484         the field actually begins.
8485         (adjust_field_offsets): remove.
8486         (append_int_field), (append_uint_field),
8487         (append_string_field): don't align the start of the header
8488         field to a 4-byte boundary.
8489         (get_next_field): impl finding the next marhsalled field
8490         after a given field.
8491         (re_align_field_recurse): impl re-aligning a number of
8492         already marshalled fields.
8493         (delete_field): impl deleting a field of any type and
8494         re-aligning any following fields.
8495         (delete_int_or_uint_field), (delete_string_field): remove.
8496         (set_int_field), (set_uint_field): no need to re-check
8497         that we have the correct type for the field.
8498         (set_string_field): ditto and impl re-aligning any
8499         following fields.
8500         (decode_header_data): update to take into account that
8501         the fields aren't 4-byte aligned any more and the new
8502         way to distinguish padding from header fields. Also,
8503         don't exit when there is too much header padding.
8504         (process_test_subdir): print the directory.
8505         (_dbus_message_test): add test to make sure a following
8506         field is re-aligned correctly after field deletion.
8507         
8508         * dbus/dbus-string.[ch]:
8509         (_dbus_string_insert_bytes): rename from insert_byte and
8510         allow the insert of multiple bytes.
8511         (_dbus_string_test): test inserting multiple bytes.
8512
8513         * dbus/dbus-marshal.c: (_dbus_marshal_set_string): add
8514         warning note to docs about having to re-align any
8515         marshalled values following the string.
8516         
8517         * dbus/dbus-message-builder.c:
8518         (append_string_field), (_dbus_message_data_load):
8519         don't align the header field.
8520         
8521         * dbus/dbus-auth.c: (process_test_subdir): print the
8522         directory.
8523         
8524         * test/break-loader.c: (randomly_add_one_byte): upd. for
8525         insert_byte change.
8526         
8527         * test/data/invalid-messages/bad-header-field-alignment.message:
8528         new test case.
8529         
8530         * test/data/valid-messages/unknown-header-field.message: shove
8531         a dict in the unknown field.
8532
8533 2003-09-25  Seth Nickell  <seth@gnome.org>
8534
8535         * python/dbus.py:
8536         * python/dbus_bindings.pyx.in:
8537
8538         Handle return values.
8539         
8540         * python/examples/example-client.py:
8541         * python/examples/example-service.py:
8542
8543         Pass back return values from the service to the client.
8544         
8545 2003-09-24  Seth Nickell  <seth@gnome.org>
8546
8547         * python/dbus.py:
8548
8549         Connect Object methods (when you are sharing an object) up... pass
8550         in a list of methods to be shared. Sharing all the methods just
8551         worked out too weird. You can now create nice Services over the
8552         DBus in Python. :-)
8553         
8554         * python/dbus_bindings.pyx.in:
8555
8556         Keep references to user_data tuples passed into C functions so 
8557         Python doesn't garbage collect on us.
8558
8559         Implement MethodReturn and Error subclasses of Message for creating
8560         DBusMessage's of those types.
8561         
8562         * python/examples/example-client.py:
8563         * python/examples/example-service.py:
8564
8565         Simple example code showing both how create DBus services and objects,
8566         and how to use them.
8567
8568 2003-09-23  Havoc Pennington  <hp@pobox.com>
8569
8570         * glib/dbus-gproxy.c (dbus_gproxy_manager_filter): implement
8571
8572 2003-09-23  Havoc Pennington  <hp@redhat.com>
8573
8574         * glib/dbus-gproxy.c (dbus_gproxy_connect_signal): implement
8575         (dbus_gproxy_disconnect_signal): implement
8576         (dbus_gproxy_manager_remove_signal_match): implement
8577         (dbus_gproxy_manager_add_signal_match): implement
8578         (dbus_gproxy_oneway_call): implement
8579
8580 2003-09-23  Havoc Pennington  <hp@pobox.com>
8581
8582         * glib/dbus-gproxy.c (struct DBusGProxy): convert to a GObject
8583         subclass. This means dropping the transparent thread safety of the
8584         proxy; you now need a separate proxy per-thread, or your own
8585         locking on the proxy. Probably right anyway.
8586         (dbus_gproxy_ref, dbus_gproxy_unref): nuke, just use g_object_ref
8587
8588 2003-09-22  Havoc Pennington  <hp@redhat.com>
8589
8590         * glib/dbus-gproxy.c (dbus_gproxy_manager_get): implement
8591
8592 2003-09-21  Seth Nickell  <seth@gnome.org>
8593
8594         First checkin of the Python bindings.
8595         
8596         * python/.cvsignore:
8597         * python/Makefile.am:
8598         * python/dbus_bindings.pyx.in:
8599         * python/dbus_h_wrapper.h:
8600
8601         Pieces for Pyrex to operate on, building a dbus_bindings.so
8602         python module for low-level access to the DBus APIs.
8603         
8604         * python/dbus.py:
8605
8606         High-level Python module for accessing DBus objects.
8607
8608         * configure.in:
8609         * Makefile.am:
8610
8611         Build stuff for the python bindings.
8612
8613         * acinclude.m4:
8614
8615         Extra macro needed for finding the Python C header files.
8616
8617 2003-09-21  Havoc Pennington  <hp@pobox.com>
8618
8619         * glib/dbus-gproxy.c (dbus_gproxy_manager_new): start
8620         implementing the proxy manager, didn't get very far.
8621
8622         * dbus/dbus-bus.c (dbus_bus_add_match): new
8623         (dbus_bus_remove_match): new
8624
8625         * glib/dbus-gproxy.c (dbus_gproxy_new_for_service): add a
8626         path_name argument; adjust the other not-yet-implemented 
8627         gproxy constructors to be what I think they should be.
8628
8629 2003-09-21  Havoc Pennington  <hp@pobox.com>
8630
8631         * dbus/dbus-bus.c (dbus_bus_get): set exit_on_disconnect to TRUE
8632         by default for message bus connections.
8633
8634         * dbus/dbus-connection.c (dbus_connection_dispatch): exit if
8635         exit_on_disconnect flag is set and we process the disconnected
8636         signal.
8637         (dbus_connection_set_exit_on_disconnect): new function
8638
8639 2003-09-21  Havoc Pennington  <hp@pobox.com>
8640
8641         Get matching rules mostly working in the bus; only actually
8642         parsing the rule text remains. However, the client side of
8643         "signal connections" hasn't been started, this patch is only the
8644         bus side.
8645         
8646         * dbus/dispatch.c: fix for the matching rules changes
8647         
8648         * bus/driver.c (bus_driver_handle_remove_match)
8649         (bus_driver_handle_add_match): send an ack reply from these
8650         method calls
8651
8652         * glib/dbus-gproxy.c (dbus_gproxy_begin_call): fix order of
8653         arguments, reported by Seth Nickell
8654
8655         * bus/config-parser.c (append_rule_from_element): support
8656         eavesdrop=true|false attribute on policies so match rules 
8657         can be prevented from snooping on the system bus.
8658
8659         * bus/dbus-daemon-1.1.in: consistently use terminology "sender"
8660         and "destination" in attribute names; fix some docs bugs; 
8661         add eavesdrop=true|false attribute
8662
8663         * bus/driver.c (bus_driver_handle_add_match)
8664         (bus_driver_handle_remove_match): handle AddMatch, RemoveMatch
8665         messages
8666
8667         * dbus/dbus-protocol.h (DBUS_SERVICE_ORG_FREEDESKTOP_BROADCAST): get
8668         rid of broadcast service concept, signals are just always broadcast
8669
8670         * bus/signals.c, bus/dispatch.c, bus/connection.c, bus/bus.c:
8671         mostly implement matching rules stuff (currently only exposed as signal
8672         connections)
8673
8674 2003-09-21  Mark McLoughlin  <mark@skynet.ie>
8675
8676         * doc/dbus-specification.sgml: Change the header field name
8677         to be an enum and update the rest of the spec to reference
8678         the fields using the conventinal name.
8679
8680         * dbus/dbus-protocol.h: update to reflect the spec.
8681
8682         * doc/TODO: add item to remove the 4 byte alignment requirement.
8683         
8684         * dbus/dbus-message.c: Remove the code to generalise the
8685         header/body length and serial number header fields as named
8686         header fields so we can reference field names using the 
8687         protocol values.
8688         (append_int_field), (append_uint_field), (append_string_field):
8689         Append the field name as a byte rather than four chars.
8690         (delete_int_or_uint_field), (delete_string_field): reflect the
8691         fact that the field name and typecode now occupy 4 bytes instead
8692         of 8.
8693         (decode_string_field), (decode_header_data): update to reflect
8694         protocol changes and move the field specific encoding from
8695         decode_string_field() back into decode_header_data().
8696         
8697         * dbus/dbus-internals.[ch]: (_dbus_header_field_to_string):
8698         Add utility to aid debugging.
8699         
8700         * dbus/dbus-message-builder.c:
8701         (append_string_field), (_dbus_message_data_load): Update to
8702         reflect protocol changes; Change the FIELD_NAME directive
8703         to HEADER_FIELD and allow it to take the field's conventional
8704         name rather than the actual value.
8705         
8706         * test/data/*/*.message: Update to use HEADER_FIELD instead
8707         of FIELD_NAME; Always align the header on an 8 byte boundary
8708         *before* updating the header length.
8709
8710 2003-09-15  Havoc Pennington  <hp@pobox.com>
8711
8712         * dbus/dbus-pending-call.c: add the get/set object data
8713         boilerplate as for DBusConnection, etc. Use generic object data
8714         for the notify callback.
8715
8716         * glib/dbus-gparser.c (parse_node): parse child nodes
8717
8718         * tools/dbus-viewer.c: more hacking on the dbus-viewer
8719         
8720         * glib/dbus-gutils.c (_dbus_gutils_split_path): add a file to
8721         contain functions shared between the convenience lib and the
8722         installed lib
8723
8724         * glib/Makefile.am (libdbus_glib_1_la_LDFLAGS): add
8725         -export-symbols-regex to the GLib library
8726
8727         * dbus/dbus-object-tree.c (_dbus_object_tree_dispatch_and_unlock):
8728         fix the locking in here, and add a default handler for
8729         Introspect() that just returns sub-nodes.
8730
8731 2003-09-14  Havoc Pennington  <hp@pobox.com>
8732
8733         * glib/dbus-gthread.c (dbus_g_thread_init): rename to make g_foo
8734         rather than gfoo consistent
8735
8736         * glib/dbus-gproxy.h: delete for now, move contents to
8737         dbus-glib.h, because the include files don't work right since we
8738         aren't in the dbus/ subdir.
8739         
8740         * glib/dbus-gproxy.c (dbus_gproxy_send): finish implementing
8741         (dbus_gproxy_end_call): finish
8742         (dbus_gproxy_begin_call): finish
8743
8744         * glib/dbus-gmain.c (dbus_set_g_error): new
8745
8746         * glib/dbus-gobject.c (handle_introspect): include information
8747         about child nodes in the introspection
8748
8749         * dbus/dbus-connection.c (dbus_connection_list_registered): new
8750         function to help in implementation of introspection
8751
8752         * dbus/dbus-object-tree.c
8753         (_dbus_object_tree_list_registered_and_unlock): new function
8754
8755 2003-09-12  Havoc Pennington  <hp@pobox.com>
8756
8757         * glib/dbus-gidl.h: add common base class for all the foo_info
8758         types
8759
8760         * tools/dbus-viewer.c: add GTK-based introspection UI thingy
8761         similar to kdcop
8762
8763         * test/Makefile.am: try test srcdir -ef . in addition to test
8764         srcdir = ., one of them should work (yeah lame)
8765         
8766         * glib/Makefile.am: build the "idl" parser stuff as a convenience
8767         library
8768         
8769         * glib/dbus-gparser.h: make description_load routines return
8770         NodeInfo* not Parser*
8771
8772         * Makefile.am (SUBDIRS): build test dir after all library dirs
8773
8774         * configure.in: add GTK+ detection
8775
8776 2003-09-07  Havoc Pennington  <hp@pobox.com>
8777
8778         * Make Doxygen contented.
8779
8780 2003-09-07  Havoc Pennington  <hp@pobox.com>
8781
8782         * doc/dbus-specification.sgml: more updates
8783
8784 2003-09-06  Havoc Pennington  <hp@pobox.com>
8785
8786         * doc/dbus-specification.sgml: partial updates
8787
8788         * bus/dbus-daemon-1.1.in: fix the config file docs for the
8789         zillionth time; hopefully I edited the right file this time.
8790
8791         * bus/config-parser.c (append_rule_from_element): support
8792         send_type, send_path, receive_type, receive_path
8793
8794         * bus/policy.c: add message type and path to the list of things
8795         that can be "firewalled"
8796
8797 2003-09-06  Havoc Pennington  <hp@pobox.com>
8798
8799         * dbus/dbus-connection.c (dbus_connection_register_fallback): add this
8800         (dbus_connection_register_object_path): make this not handle
8801         messages to paths below the given path
8802
8803 2003-09-03  Havoc Pennington  <hp@pobox.com>
8804
8805         * test/glib/Makefile.am: add this with random glib-linked test
8806         programs
8807
8808         * glib/Makefile.am: remove the random test programs from here,
8809         leave only the unit tests
8810
8811         * glib/dbus-gobject.c (_dbus_gobject_test): add test for 
8812         uscore/javacaps conversion, and fix     
8813         (get_object_property, set_object_property): change to .NET
8814         convention for mapping props to methods, set_FooBar/get_FooBar, 
8815         since one language has such a convention we may as well copy it. 
8816         Plus real methods in either getFooBar or get_foo_bar style won't 
8817         collide with this convention.
8818
8819 2003-09-01  Havoc Pennington  <hp@pobox.com>
8820
8821         * glib/dbus-gparser.c: implement
8822
8823         * glib/dbus-gobject.c: start implementing skeletons support
8824
8825         * configure.in: when disabling checks/assert, also define
8826         G_DISABLE_ASSERT and G_DISABLE_CHECKS
8827
8828 2003-09-01  Havoc Pennington  <hp@pobox.com>
8829
8830         * glib/Makefile.am: rearrange a bunch of files and get "make
8831         check" framework set up
8832
8833 2003-08-31  Havoc Pennington  <hp@pobox.com>
8834
8835         * fix build with --disable-tests
8836
8837 2003-08-30  Havoc Pennington  <hp@pobox.com>
8838
8839         * dbus/dbus-connection.c: purge DBusMessageHandler
8840
8841         * dbus/dbus-message-handler.c: remove DBusMessageHandler, just 
8842         use callbacks everywhere
8843
8844 2003-08-30  Havoc Pennington  <hp@pobox.com>
8845
8846         * test/data/valid-config-files/system.d/test.conf: change to 
8847         root for the user so warnings don't get printed
8848
8849         * dbus/dbus-message.c: add dbus_message_get_path,
8850         dbus_message_set_path
8851         
8852         * dbus/dbus-object-tree.c (do_test_dispatch): add test of
8853         dispatching to a path
8854
8855         * dbus/dbus-string.c (_dbus_string_validate_path): add
8856
8857         * dbus/dbus-marshal.c (_dbus_demarshal_object_path): implement
8858         (_dbus_marshal_object_path): implement
8859
8860         * dbus/dbus-protocol.h (DBUS_HEADER_FIELD_PATH): new header field 
8861         to contain the path to the target object
8862         (DBUS_HEADER_FIELD_SENDER_SERVICE): rename
8863         DBUS_HEADER_FIELD_SENDER to explicitly say it's the sender service
8864
8865 2003-08-30  Havoc Pennington  <hp@pobox.com>
8866
8867         * dbus/dbus-object-tree.c: write tests and fix the discovered bugs
8868
8869 2003-08-29  Havoc Pennington  <hp@pobox.com>
8870
8871         * dbus/dbus-object-tree.c: modify to allow overlapping paths to be
8872         registered
8873         (struct DBusObjectSubtree): shrink this
8874         a lot, since we may have a lot of them
8875         (_dbus_object_tree_free_all_unlocked): implement
8876         (_dbus_object_tree_dispatch_and_unlock): implement
8877
8878 2003-08-29  Havoc Pennington  <hp@pobox.com>
8879
8880         * dbus/dbus-internals.h: fix _DBUS_N_GLOBAL_LOCKS
8881
8882 2003-08-28  Havoc Pennington  <hp@pobox.com>
8883
8884         purge DBusObjectID
8885         
8886         * dbus/dbus-connection.c: port to no ObjectID, create a
8887         DBusObjectTree, rename ObjectTree to ObjectPath in public API
8888
8889         * dbus/dbus-connection.h (struct DBusObjectTreeVTable): delete 
8890         everything except UnregisterFunction and MessageFunction
8891         
8892         * dbus/dbus-marshal.c: port away from DBusObjectID, 
8893         add DBUS_TYPE_OBJECT_PATH
8894         
8895         * dbus/dbus-object-registry.[hc], dbus/dbus-object.[hc], 
8896         dbus/dbus-objectid.[hc]: remove these, we are moving to 
8897         path-based object IDs
8898
8899 2003-08-25  Havoc Pennington  <hp@pobox.com>
8900
8901         Just noticed that dbus_message_test is hosed, I wonder when I
8902         broke that. I thought make check was passing earlier...
8903         
8904         * dbus/dbus-object-tree.c: add new "object tree" to match DCOP 
8905         container tree, will replace most of dbus-object-registry
8906
8907         * dbus/dbus-string.c (_dbus_string_append_printf_valist): fix C99
8908         screwup
8909
8910 2003-08-19  Havoc Pennington  <hp@pobox.com>
8911
8912         * dbus/dbus-message.c (decode_string_field): support FIELD_SENDER
8913         (dbus_message_is_error): fix this function
8914
8915         * bus/dbus-daemon-1.1: clarify logic on when <deny>/<allow> rules
8916         match
8917
8918         * bus/policy.c (bus_client_policy_check_can_receive): fix code to
8919         reflect clarified man page
8920         (bus_client_policy_check_can_send): ditto
8921         
8922         * bus/session.conf.in: fixup
8923
8924         * bus/system.conf.in: fixup
8925
8926 2003-08-18  Havoc Pennington  <hp@redhat.com>
8927
8928         * dbus/dbus-hash.c (_dbus_hash_table_insert_two_strings): fix
8929
8930         * dbus/dbus-message.c (_dbus_message_loader_queue_messages): fix
8931         dumb bug created earlier (wrong order of args to
8932         decode_header_data())
8933         
8934         * tools/dbus-send.c: port
8935
8936         * tools/dbus-print-message.c (print_message): port
8937
8938         * test/data/*messages: port all messages over
8939         
8940         * dbus/dbus-message-builder.c: support including 
8941         message type
8942         
8943         * bus/driver.c: port over
8944         
8945         * bus/dispatch.c: port over to new stuff
8946
8947         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
8948         rename disconnect signal to "Disconnected"
8949
8950 2003-08-17  Havoc Pennington  <hp@pobox.com>
8951
8952         This doesn't compile yet, but syncing up so I can hack on it from
8953         work. What are branches for if not broken code? ;-)
8954         
8955         * dbus/dbus-protocol.h: remove DBUS_HEADER_FIELD_NAME, add
8956         DBUS_HEADER_FIELD_INTERFACE, DBUS_HEADER_FIELD_MEMBER,
8957         DBUS_HEADER_FIELD_ERROR_NAME
8958         
8959         * dbus/dbus-hash.c: Introduce DBUS_HASH_TWO_STRINGS as hack to use
8960         for the interface+member pairs
8961         (string_hash): change to use g_str_hash algorithm
8962         (find_direct_function, find_string_function): refactor these to
8963         share most code.
8964         
8965         * dbus/dbus-message.c: port all of this over to support 
8966         interface/member fields instead of name field
8967
8968         * dbus/dbus-object-registry.c: port over
8969         
8970         * dbus/dbus-string.c (_dbus_string_validate_interface): rename
8971         from _dbus_string_validate_name
8972
8973         * bus/dbus-daemon-1.1: change file format for the 
8974         <deny>/<allow> stuff to match new message naming scheme
8975
8976         * bus/policy.c: port over
8977
8978         * bus/config-parser.c: parse new format
8979         
8980 2003-08-16  Havoc Pennington  <hp@pobox.com>
8981
8982         * dbus/dbus-object-registry.c (add_and_remove_objects): remove
8983         broken assertion
8984
8985         * glib/dbus-gproxy.c: some hacking
8986
8987 2003-08-15  Havoc Pennington  <hp@redhat.com>
8988
8989         * dbus/dbus-pending-call.c (dbus_pending_call_block): implement
8990
8991         * dbus/dbus-connection.c
8992         (dbus_connection_send_with_reply_and_block): factor out internals;
8993         change to convert any error replies to DBusError instead of 
8994         returning them as a message
8995
8996 2003-08-15  Havoc Pennington  <hp@pobox.com>
8997
8998         * dbus/dbus-connection.c, 
8999         dbus/dbus-pending-call.c: Finish the pending call stuff
9000
9001 2003-08-14  Havoc Pennington  <hp@redhat.com>
9002
9003         * dbus/dbus-pending-call.c: start on new object that will replace
9004         DBusMessageHandler and ReplyHandlerData for tracking outstanding
9005         replies
9006
9007         * dbus/dbus-gproxy.c: start on proxy object used to communicate
9008         with remote interfaces
9009
9010         * dbus/dbus-gidl.c: do the boring boilerplate in here
9011         
9012 2003-08-12  Havoc Pennington  <hp@pobox.com>
9013
9014         * bus/dispatch.c (bus_dispatch): make this return proper 
9015         DBusHandlerResult to avoid DBUS_ERROR_UNKNOWN_METHOD
9016
9017         * dbus/dbus-errors.c (dbus_set_error): use
9018         _dbus_string_append_printf_valist
9019
9020         * dbus/dbus-string.c (_dbus_string_append_printf_valist)
9021         (_dbus_string_append_printf): new
9022
9023         * dbus/dbus-errors.h (DBUS_ERROR_UNKNOWN_MESSAGE): change to
9024         UNKNOWN_METHOD
9025
9026         * dbus/dbus-connection.c (dbus_connection_dispatch): handle
9027         DBUS_HANDLER_RESULT_NEED_MEMORY; send default error reply if a
9028         message is unhandled.
9029
9030 2003-08-11  Havoc Pennington  <hp@pobox.com>
9031
9032         * bus/test.c (client_disconnect_handler): change to return
9033         HANDLED (would have been REMOVE_MESSAGE)
9034
9035         * dbus/dbus-object.h (enum DBusHandlerResult): rename to
9036         HANDLED/NOT_YET_HANDLED instead of
9037         REMOVE_MESSAGE/ALLOW_MORE_HANDLERS to make it clearer how it 
9038         should be used.
9039
9040 2003-08-10  Havoc Pennington  <hp@pobox.com>
9041
9042         * tools/dbus-send.c (main): add --type argument, for now
9043         supporting only method_call and signal types.
9044
9045         * tools/dbus-print-message.c: print message type
9046
9047         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
9048         init connection->objects
9049
9050         * doc/dbus-specification.sgml: fix sgml
9051
9052         * bus/*.c: port over to object-instance API changes
9053
9054         * test/test-service.c: ditto
9055         
9056         * dbus/dbus-message.c (dbus_message_create_header): allow #NULL
9057         name, we will have to fix up the rest of the code to also handle
9058         this
9059         (dbus_message_new): generic message-creation call
9060         (set_string_field): allow appending name field
9061
9062 2003-08-06  Havoc Pennington  <hp@pobox.com>
9063
9064         * dbus/dbus-object-registry.c: implement signal connection 
9065         and dispatch
9066
9067         * dbus/dbus-connection.c (_dbus_connection_unref_unlocked): new
9068
9069         * dbus/dbus-internals.c (_dbus_memdup): new function
9070
9071 2003-08-02  Havoc Pennington  <hp@pobox.com>
9072
9073         * dbus/dbus-message.c (dbus_message_get_no_reply)
9074         (dbus_message_set_no_reply): add these and remove
9075         set_is_error/get_is_error
9076
9077         * dbus/dbus-protocol.h, doc/dbus-specification.sgml: 
9078         remove the ERROR flag, since there's now an ERROR type
9079
9080 2003-08-01  Havoc Pennington  <hp@pobox.com>
9081
9082         * dbus/dbus-object-registry.c (_dbus_object_registry_handle_and_unlock):
9083         implement
9084
9085         * dbus/dbus-message.c (dbus_message_get_type): new function
9086
9087         * doc/dbus-specification.sgml: add "type" byte to messages
9088
9089 2003-08-01  Havoc Pennington  <hp@pobox.com>
9090
9091         * dbus/dbus-protocol.h (DBUS_MESSAGE_TYPE_*): introduce
9092         a message type enum to distinguish kinds of message
9093         (DBUS_HEADER_FLAG_NO_REPLY_EXPECTED): flag for a message 
9094         that need not be replied to
9095
9096 2003-08-01  Havoc Pennington  <hp@pobox.com>
9097
9098         * dbus/dbus-marshal.c: adapt to DBusObjectID changes
9099         (unpack_8_octets): fix no-64-bit-int bug
9100
9101         * dbus/dbus-object-registry.c (validate_id): validate the 
9102         connection ID bits, not just the instance ID.
9103
9104         * dbus/dbus-connection.c (_dbus_connection_init_id): initialize
9105         the connection-global 33 bits of the object ID
9106
9107         * dbus/dbus-object-registry.c (info_from_entry): fill in 
9108         object ID in the new way
9109
9110         * dbus/dbus-objectid.h: rather than high/low bits, specifically 
9111         define server/client/instance bits.
9112
9113 2003-07-30  Havoc Pennington  <hp@pobox.com>
9114
9115         * dbus/dbus-connection.c (dbus_connection_register_object): fix
9116         build
9117
9118 2003-07-13  Havoc Pennington  <hp@pobox.com>
9119
9120         * dbus/dbus-object.h (struct DBusObjectVTable): add padding
9121         fields to DBusObjectVTable and DBusObjectInfo
9122
9123 2003-07-12  Havoc Pennington  <hp@pobox.com>
9124
9125         * dbus/dbus-object-registry.c: implement unit test,
9126         fix bugs discovered in process
9127
9128         * dbus/dbus-connection.c: remove handler_table and
9129         register_handler(), add DBusObjectRegistry usage
9130
9131         * dbus/dbus-objectid.c (dbus_object_id_is_null)
9132         (dbus_object_id_set_null): new functions
9133
9134 2003-07-08  Havoc Pennington  <hp@pobox.com>
9135
9136         * dbus/dbus-object.c: implement some of this
9137
9138         * dbus/dbus-object-registry.c
9139         (_dbus_object_registry_add_and_unlock): fill in the object_id out
9140         param
9141         (_dbus_object_registry_new): handle OOM
9142
9143 2003-07-08  Havoc Pennington  <hp@pobox.com>
9144
9145         * dbus/dbus-object.h: sketch out an API for registering objects
9146         with a connection, that allows us to use as little as 24 bytes
9147         per object and lets application code represent an object in 
9148         any conceivable way.
9149
9150         * dbus/dbus-object-registry.c: implement the hard bits of the
9151         DBusConnection aspect of object API. Not yet wired up.
9152         
9153 2003-07-06  Havoc Pennington  <hp@pobox.com>
9154
9155         * dbus/dbus-marshal.c (_dbus_marshal_set_object_id): new function
9156         (_dbus_marshal_object_id): new
9157         (_dbus_demarshal_object_id): new
9158         (_dbus_marshal_get_arg_end_pos): support object ID type, and
9159         consolidate identical switch cases. Don't conditionalize handling
9160         of DBUS_TYPE_UINT64, need to handle the type always.
9161         (_dbus_marshal_validate_arg): consolidate identical cases, and
9162         handle DBUS_TYPE_OBJECT_ID
9163
9164         * dbus/dbus-objectid.c: new file with DBusObjectID data type.
9165
9166         * dbus/dbus-protocol.h: add DBUS_TYPE_OBJECT_ID
9167
9168 2003-09-28  Havoc Pennington  <hp@pobox.com>
9169
9170         * real 0.13 release
9171
9172 2003-09-28  Havoc Pennington  <hp@pobox.com>
9173
9174         * doc/Makefile.am (dbus-specification.html): testing a funky hack
9175         to work with Debian db2html
9176
9177 2003-09-28  Havoc Pennington  <hp@pobox.com>
9178
9179         * configure.in: 0.13
9180
9181         * doc/Makefile.am (dbus-test-plan.html): accept nonexistence of
9182         stylesheet-images for benefit of Debian
9183         
9184         Change back to using filesystem-linked sockets for the system
9185         bus, so only root can create the default system bus address.
9186         
9187         * bus/system.conf.in: change to use
9188         DBUS_SYSTEM_BUS_DEFAULT_ADDRESS
9189
9190         * dbus/Makefile.am (INCLUDES): remove DBUS_SYSTEM_BUS_PATH define
9191         from here.
9192
9193         * configure.in: define DBUS_SYSTEM_BUS_DEFAULT_ADDRESS
9194         here, and AC_DEFINE DBUS_SYSTEM_PATH
9195
9196 2003-08-09  Anders Carlsson  <andersca@codefactory.se>
9197
9198         * doc/TODO:
9199         * doc/busconfig.dtd:
9200         Add busconfig DTD.
9201         
9202 2003-08-09  Anders Carlsson  <andersca@codefactory.se>
9203
9204         * doc/dbus-specification.sgml:
9205         Add activation reply values.
9206         
9207 2003-08-05  Havoc Pennington  <hp@redhat.com>
9208
9209         * configure.in: 0.12
9210
9211 2003-08-05  Anders Carlsson  <andersca@codefactory.se>
9212
9213         * glib/dbus-gmain.c: (watch_fd_new), (watch_fd_ref),
9214         (watch_fd_unref), (dbus_gsource_check), (dbus_gsource_dispatch),
9215         (add_watch), (remove_watch), (create_source):
9216         Refcount fds, fixes some reentrancy issues.
9217         
9218 2003-07-30  Havoc Pennington  <hp@redhat.com>
9219
9220         * dbus/dbus-bus.c (init_connections_unlocked): fix default system
9221         bus address to be abstract if we have abstract sockets
9222
9223         * NEWS: update
9224
9225 2003-07-28  Havoc Pennington  <hp@redhat.com>
9226
9227         * bus/messagebus.in: fix to avoid processname/servicename 
9228         confusion, from Michael Kearey
9229         https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=100965
9230         
9231 2003-07-23  Havoc Pennington  <hp@pobox.com>
9232
9233         * dbus/dbus-message.c (dbus_message_iter_get_named): 
9234         fix from Andy Hanton to remove broken "+1"
9235
9236 2003-07-16  Havoc Pennington  <hp@pobox.com>
9237
9238         * tools/dbus-launch.c (babysit): close stdout/stderr in the
9239         babysitter process, as suggested by Thomas Leonard, so 
9240         an "eval `dbus-launch --exit-with-session`" will actually 
9241         return
9242
9243 2003-07-16  Havoc Pennington  <hp@pobox.com>
9244
9245         * configure.in: print out EXPANDED_* variables in the summary at
9246         the end; clean up the code that computes EXPANDED_ variables and
9247         get the ones using exec_prefix right. Should make things work
9248         when you build without --prefix
9249
9250 2003-06-29  Havoc Pennington  <hp@pobox.com>
9251
9252         * mono/Test.cs (class Test): fire up a main loop and run it
9253
9254         * mono/DBus.cs (DBus): don't g_thread_init since it can only be
9255         done once, the app has to do it
9256
9257 2003-06-26  Havoc Pennington  <hp@pobox.com>
9258
9259         * mono/Connection.cs: set up connection with the glib main loop
9260
9261 2003-07-01  Havoc Pennington  <hp@redhat.com>
9262
9263         * doc/dbus-specification.sgml: clarify the format of a type code,
9264         change suggested by Jim Blandy
9265
9266 2003-06-29  Miloslav Trmac  <mitr@volny.cz>
9267
9268         * doc/Makefile.am:
9269         * tools/Makefile.am: Don't assume srcdir == builddir.
9270
9271         * dbus/dbus-memory.c (dbus_realloc): Don't check guards after shrinking
9272         the allocated block.
9273         (_dbus_memory_test): New function.
9274         * dbus/dbus-test.h: Add _dbus_memory_test ().
9275         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): Call it.
9276
9277         * dbus/dbus-message.c (decode_header_data): Use %.4s instead
9278         of %c%c%c%c.
9279         (dbus_message_new): Remove obsolete @todo.
9280
9281         * dbus/dbus-marshal.c (_dbus_marshal_set_int64)
9282         (_dbus_marshal_set_uint64): Fix comment.
9283
9284         * dbus/dbus-message.c (append_int_field, append_uint_field): Don't
9285         hardcode FIELD_REPLY_SERIAL.
9286
9287         * dbus/dbus-mainloop.c (_dbus_loop_remove_watch)
9288         (_dbus_loop_remove_timeout): Cast function pointers to (void *) for %p
9289
9290         * configure.in: Add -D_POSIX_C_SOURCE=199309L -DBSD_SOURCE to CFLAGS
9291         and disable DBUS_USE_ATOMIC_INT_486 when --enable-ansi is used
9292
9293 2003-06-24  Havoc Pennington  <hp@pobox.com>
9294
9295         * mono/*.cs: Use IntPtr.Zero instead of ((IntPtr) 0)
9296
9297 2003-06-23  Anders Carlsson  <andersca@codefactory.se>
9298
9299         * configure.in:
9300         * gcj/.cvsignore:
9301         * gcj/Hello.java:
9302         * gcj/Makefile.am:
9303         * gcj/TestMessage.java: (TestMessage), (TestMessage.main):
9304         * gcj/org/.cvsignore:
9305         * gcj/org/Makefile.am:
9306         * gcj/org/freedesktop/.cvsignore:
9307         * gcj/org/freedesktop/Makefile.am:
9308         * gcj/org/freedesktop/dbus/.cvsignore:
9309         * gcj/org/freedesktop/dbus/Makefile.am:
9310         * gcj/org/freedesktop/dbus/Message.java: (Message),
9311         (Message.Message):
9312         * gcj/org/freedesktop/dbus/natMessage.cc:
9313         Fix the build system.
9314
9315 2003-06-22  Havoc Pennington  <hp@pobox.com>
9316
9317         * mono/Connection.cs: add more bindings
9318
9319         * dbus/dbus-threads.c (dbus_threads_init): allow calling this
9320         more than once.
9321
9322 2003-06-22  Havoc Pennington  <hp@pobox.com>
9323
9324         * mono/Connection.cs, mono/DBus.cs, mono/Error.cs:
9325         Start wrapping more stuff.
9326
9327 2003-06-22  Havoc Pennington  <hp@pobox.com>
9328
9329         * mono/Message.cs: implement Message.Wrap() that ensures we only
9330         have a single C# wrapper per DBusMessage, assuming it works which
9331         it probably doesn't.
9332
9333         * dbus/dbus-message.c (dbus_message_allocate_data_slot): new
9334         (dbus_message_free_data_slot): new
9335         (dbus_message_set_data): new
9336         (dbus_message_get_data): new
9337
9338 2003-06-22  Havoc Pennington  <hp@pobox.com>
9339
9340         * dbus/dbus-dataslot.c (_dbus_data_slot_allocator_unref)
9341         (_dbus_data_slot_allocator_alloc): rework these to keep a
9342         reference count on each slot and automatically manage a global
9343         slot ID variable passed in by address
9344
9345         * bus/bus.c: convert to new dataslot API
9346
9347         * dbus/dbus-bus.c: convert to new dataslot API
9348
9349         * dbus/dbus-connection.c: convert to new dataslot API
9350
9351         * dbus/dbus-server.c: convert to new dataslot API
9352
9353         * glib/dbus-gmain.c: ditto
9354
9355         * bus/test.c: ditto
9356
9357         * bus/connection.c: ditto
9358
9359 2003-06-22  Anders Carlsson  <andersca@codefactory.se>
9360
9361         * configure.in: Add AM_PROG_GCJ and move AM_PROG_LIBTOOL
9362         after the gcj checks so that the correct configuration tags
9363         will be added to libtool.
9364
9365         * dbus-glib-1.pc.in: No need to specify any includes since
9366         dbus-1.pc.in has those.
9367
9368 2003-06-22  Havoc Pennington  <hp@pobox.com>
9369
9370         * mono/*, gcj/*, configure.in, Makefile.am:
9371         Check in makefiles and subdirs for mono and gcj bindings.
9372         Neither binding actually exists, just trying to get through
9373         all the build and other boring bits.
9374
9375 2003-06-21  Philip Blundell  <philb@gnu.org>
9376
9377         * tools/dbus-monitor.1: Updated.
9378
9379         * tools/dbus-send.1: Likewise.
9380
9381 2003-06-20  Anders Carlsson  <andersca@codefactory.se>
9382
9383         * dbus/dbus-transport-unix.c (unix_handle_watch): Check
9384         for hangup and error after checking read so we won't discard
9385         pending data if both hangup and read are set.
9386
9387 2003-06-19  Philip Blundell  <philb@gnu.org>
9388
9389         * tools/dbus-print-message.c (print_message): Handle BOOLEAN.
9390
9391         * tools/dbus-send.c: Accept both --system and --session.
9392
9393         * tools/dbus-monitor.c: Same here.
9394
9395 2003-06-19  Anders Carlsson  <andersca@codefactory.se>
9396
9397         * glib/dbus-glib.h: Fix so that dbus-glib.h can be used
9398         from C++ (Patch by Miloslav Trmac).
9399
9400 2003-06-15  Joe Shaw  <joe@assbarn.com>
9401
9402         * configure.in: Check for socklen_t.
9403
9404         * dbus/dbus-sysdeps.c: Define socklen_t if it's not defined.
9405
9406         * test/test-segfault.c: Add #include <sys/time.h>
9407
9408         * tools/Makefile.am: Add DBUS_X_CFLAGS to the INCLUDES since
9409         dbus-launch needs it.
9410
9411 2003-06-09  Havoc Pennington  <hp@redhat.com>
9412
9413         * dbus/dbus-sysdeps.c (_dbus_listen_unix_socket): don't use
9414         SUN_LEN, it breaks abstract socket usage
9415
9416         * dbus/dbus-internals.c (_dbus_verbose_real): only print PID at
9417         starts of lines.
9418
9419 2003-06-04  Havoc Pennington  <hp@pobox.com>
9420
9421         * dbus/dbus-server.c (dbus_server_listen): allow abstract sockets
9422         using unix:abstract=/foo, and when listening in a tmpdir
9423         i.e. unix:tmpdir=/tmp, always use abstract sockets if we can.
9424
9425         * dbus/dbus-transport.c (_dbus_transport_open): support
9426         unix:abstract=/foo
9427
9428         * dbus/dbus-server-unix.c (_dbus_server_new_for_domain_socket):
9429         support abstract sockets
9430
9431         * dbus/dbus-transport-unix.c
9432         (_dbus_transport_new_for_domain_socket): support abstract sockets
9433
9434         * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket): add "abstract"
9435         toggle as an argument, implement abstract namespace support
9436         (_dbus_listen_unix_socket): ditto
9437
9438         * configure.in: add --enable-abstract-sockets and implement
9439         a configure check for autodetection of the right value.
9440
9441 2003-06-01  Havoc Pennington  <hp@pobox.com>
9442
9443         * tools/dbus-cleanup-sockets.c: add utility to clean up sockets
9444         in /tmp (though on Linux this will end up being useless,
9445         when we add abstract namespace support)
9446
9447         * configure.in: define DBUS_SESSION_SOCKET_DIR in addition to
9448         subst'ing it
9449
9450 2003-05-28  Colin Walters  <walters@verbum.org>
9451
9452         * tools/dbus-monitor.c (main): Fix silly typo (s/--session/--system/).
9453
9454 2003-05-18  Anders Carlsson  <andersca@codefactory.se>
9455
9456         * dbus/dbus-message.c (dbus_message_new): Remove @todo.
9457
9458 2003-05-17  Colin Walters  <walters@gnu.org>
9459
9460         * tools/dbus-send.c: Don't exit with an error code if --help was
9461         passed.  Default to using the session bus instead of the system
9462         one.
9463
9464         * tools/dbus-launch.c: Ditto.
9465
9466         * tools/dbus-monitor.c: Ditto.
9467
9468         * tools/dbus-send.1: Update with new arguments.
9469
9470         * tools/dbus-launch.c: Emit code to export variables.  New
9471         arguments -s and -c to specify shell syntax, and a bit of code to
9472         autodetect syntax.  Also, allow specifying a program to run.
9473
9474         * tools/dbus-launch.1: Update with new arguments.
9475
9476         * tools/dbus-send.1: Ditto.
9477
9478         * tools/dbus-monitor.1: Ditto.
9479
9480 2003-05-17  Havoc Pennington  <hp@pobox.com>
9481
9482         * bus/config-parser.c (merge_included): merge in policies from
9483         child configuration file.
9484
9485         * bus/policy.c (bus_policy_merge): function to merge two policies
9486         together
9487
9488 2003-05-16  Havoc Pennington  <hp@redhat.com>
9489
9490         * dbus/dbus-connection.c: disable verbose lock spew
9491
9492         * tools/dbus-send.c: add --print-reply command line option
9493
9494         * tools/dbus-print-message.h (print_message): new util function
9495         shared by dbus-send and dbus-monitor
9496
9497         * tools/dbus-monitor.c (handler_func): exit on disconnect
9498
9499         * dbus/dbus-transport-unix.c (do_reading): if the transport is
9500         disconnected, don't try to use the read_watch
9501
9502         * dbus/dbus-watch.c (dbus_watch_get_enabled): assert watch != NULL
9503         so we can find this bug more easily
9504
9505 2003-05-16  Havoc Pennington  <hp@redhat.com>
9506
9507         * bus/policy.c (free_rule_list_func): avoid a crash when passed
9508         NULL as DBusHashTable is annoyingly likely to do.
9509
9510 2003-05-16  Colin Walters  <walters@verbum.org>
9511
9512         * tools/dbus-monitor.c: Add --session argument and usage()
9513         function.
9514
9515         * tools/dbus-monitor.1: Update with new --session arg.
9516
9517         * bus/Makefile.am (install-data-hook): Create
9518         $(libdir)/dbus-1.0/services so that the session bus is happy.
9519
9520 2003-05-15  Havoc Pennington  <hp@redhat.com>
9521
9522         * dbus/dbus-sysdeps.c (_dbus_atomic_dec, _dbus_atomic_inc): work
9523         on non-x86. ifdef's are evil.
9524
9525 2003-05-15  Havoc Pennington  <hp@redhat.com>
9526
9527         * configure.in: 0.11
9528
9529         * NEWS: update
9530
9531         * bus/Makefile.am (initddir): apparently we are supposed to put
9532         init scripts in /etc/rc.d/init.d not /etc/init.d
9533
9534         * bus/Makefile.am: remove the "you must --enable-tests to make
9535         check" as it broke distcheck
9536
9537         * bus/Makefile.am (install-data-hook): create /etc/dbus-1/system.d
9538
9539 2003-05-13  James Willcox  <jwillcox@gnome.org>
9540
9541         * configure.in:
9542         * bus/activation.c: (bus_activation_service_created),
9543         (bus_activation_activate_service):
9544         * bus/driver.c: (bus_driver_send_service_deleted),
9545         (bus_driver_send_service_created), (bus_driver_send_service_lost),
9546         (bus_driver_send_service_acquired),
9547         (bus_driver_send_welcome_message),
9548         (bus_driver_handle_list_services):
9549         * bus/session.conf.in:
9550         * dbus/dbus-bus.c: (dbus_bus_acquire_service),
9551         (dbus_bus_service_exists), (dbus_bus_activate_service):
9552         * dbus/dbus-bus.h:
9553
9554         Add some convenience API which lets you activate a service, and did a
9555         bunch of s/0/DBUS_TYPE_INVALID/ in calls to dbus_message_append_args()
9556         and dbus_message_get_args()
9557
9558 2003-05-11  Havoc Pennington  <hp@pobox.com>
9559
9560         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): fix to avoid
9561         calling _dbus_marshal_validate_arg() for every byte in a byte
9562         array, etc.
9563
9564         * dbus/dbus-message-handler.c: use atomic reference counting to
9565         reduce number of locks slightly; the global lock in here sucks
9566
9567         * dbus/dbus-connection.c
9568         (_dbus_connection_update_dispatch_status_and_unlock): variant of
9569         update_dispatch_status that can be called with lock held; then use
9570         in a couple places to reduce locking/unlocking
9571         (dbus_connection_send): hold the lock over the whole function
9572         instead of acquiring it twice.
9573
9574         * dbus/dbus-timeout.c (_dbus_timeout_new): handle OOM
9575
9576         * bus/connection.c (bus_connections_setup_connection): fix access
9577         to already-freed memory.
9578
9579         * dbus/dbus-connection.c: keep a little cache of linked list
9580         nodes, to avoid using the global linked list alloc lock in the
9581         normal send-message case. Instead we just use the connection lock
9582         that we already have to take.
9583
9584         * dbus/dbus-list.c (_dbus_list_find_last): new function
9585
9586         * dbus/dbus-sysdeps.c (_dbus_atomic_inc, _dbus_atomic_dec):
9587         change to use a struct for the atomic type; fix docs,
9588         they return value before increment, not after increment.
9589
9590         * dbus/dbus-string.c (_dbus_string_append_4_aligned)
9591         (_dbus_string_append_8_aligned): new functions to try to
9592         microoptimize this operation.
9593         (reallocate_for_length): break this out of set_length(), to
9594         improve profile info, and also so we can consider inlining the
9595         set_length() part.
9596
9597         * dbus/dbus-message.c (dbus_message_new_empty_header): init data
9598         strings with some preallocation, cuts down on our calls to realloc
9599         a fair bit. Though if we can get the "move entire string to empty
9600         string" optimization below to kick in here, it would be better.
9601
9602         * dbus/dbus-string.c (_dbus_string_move): just call
9603         _dbus_string_move_len
9604         (_dbus_string_move_len): add a special case for moving
9605         an entire string into an empty string; we can just
9606         swap the string data instead of doing any reallocs.
9607         (_dbus_string_init_preallocated): new function
9608
9609 2003-05-11  Havoc Pennington  <hp@pobox.com>
9610
9611         Write a "test-profile" that does echo client-server with threads;
9612         profile reveals lock contention, memcpy/realloc of buffers, and
9613         UTF-8 validation as hot spots. 20% of lock contention eliminated
9614         with dbus_atomic_inc/dec implementation on x86.  Much remaining
9615         contention is global mempool locks for GList and DBusList.
9616
9617         * dbus/dbus-sysdeps.c (_dbus_atomic_inc, _dbus_atomic_dec): add
9618         x86 implementation
9619
9620         * dbus/dbus-connection.c (struct DBusConnection): use
9621         dbus_atomic_t for the reference count
9622
9623         * dbus/dbus-message.c (struct DBusMessage): declare
9624         dbus_atomic_t values as volatile
9625
9626         * configure.in: code to detect ability to use atomic integer
9627         operations in assembly, from GLib patch
9628
9629         * dbus/dbus-internals.c (_dbus_verbose_real): call getpid every
9630         time, tired of it being wrong in threads and forked processes
9631
9632         * glib/test-profile.c: a little program to bounce messages back
9633         and forth between threads and eat CPU
9634
9635         * dbus/dbus-connection.c: add debug spew macros for debugging
9636         thread locks; include config.h at top; fix deadlock in
9637         dbus_connection_flush()
9638
9639 2003-05-08  Havoc Pennington  <hp@pobox.com>
9640
9641         * dbus/dbus-spawn.c: s/_exit/exit/ because it was keeping gcov
9642         data from getting written, and there wasn't a good reason to
9643         use _exit really.
9644
9645         * test/decode-gcov.c (mark_inside_dbus_build_tests): don't count
9646         dbus_verbose lines in test coverage
9647         (main): add list of functions sorted by # of untested blocks
9648         to the coverage report
9649
9650         * dbus/dbus-mempool.c: put some test-only code in DBUS_BUILD_TESTS
9651
9652         * dbus/dbus-marshal.c (_dbus_marshal_test): extend test coverage
9653
9654         * dbus/dbus-message-handler.c (_dbus_message_handler_test):
9655         extend test coverage
9656
9657         * test/data/auth/cancel.auth-script: test canceling an
9658         authentication
9659
9660         * dbus/Makefile.am: remove dbus-server-debug.[hc] for now, as they
9661         aren't used. in CVS history if we end up needing them.
9662
9663 2003-05-04  Havoc Pennington  <hp@pobox.com>
9664
9665         * dbus/dbus-message-handler.c (_dbus_message_handler_test): add
9666         unit test
9667
9668         * dbus/dbus-marshal.c (_dbus_demarshal_string_array): fix this
9669         function, which assumed length was in # of strings, not bytes
9670
9671         * dbus/dbus-message.c (_dbus_message_test): add tests for some
9672         missing coverage
9673
9674         * dbus/dbus-connection.c
9675         (_dbus_connection_queue_received_message): disable function for
9676         now, we are only using it in test mode
9677
9678         * dbus/dbus-message.c (_dbus_message_loader_queue_messages):
9679         remove a mistaken FIXME
9680
9681 2003-05-04  Havoc Pennington  <hp@pobox.com>
9682
9683         * dbus/dbus-connection.c (dbus_connection_preallocate_send):
9684         unlock mutex on successful return, patch from Anders Gustafsson
9685
9686 2003-05-04  Havoc Pennington  <hp@pobox.com>
9687
9688         * dbus-glib-1.pc.in (Requires): fix dependencies, from
9689         Anders Gustafsson
9690
9691 2003-05-04  Havoc Pennington  <hp@pobox.com>
9692
9693         * tools/dbus-launch.c: implement
9694
9695         * bus/main.c (main), bus/bus.c (bus_context_new):
9696         implement --print-pid and --fork
9697
9698 2003-05-03  Havoc Pennington  <hp@redhat.com>
9699
9700         * dbus/dbus-address.c (dbus_parse_address): fix bug when a key in
9701         the address had no value, and add to test suite. Fix and
9702         regression test from Miloslav Trmac
9703
9704 2003-05-03  Havoc Pennington  <hp@pobox.com>
9705
9706         * dbus/dbus-watch.c (dbus_watch_handle): warn and return if a
9707         watch is invalid when handled
9708
9709         * tools/Makefile.am, tools/dbus-launch.c, tools/dbus-launch.1: add
9710         dbus-launch utility to launch the bus from a shell script.  Didn't
9711         actually implement dbus-launch yet, it's just a placeholder still.
9712
9713 2003-05-03  Havoc Pennington  <hp@pobox.com>
9714
9715         * bus/Makefile.am, bus/dbus-daemon-1.1.in: man page for the
9716         daemon; also documents daemon config file, so replaces
9717         doc/config-file.txt. Corrected some stuff from config-file.txt in
9718         the process of moving it.
9719
9720 2003-05-03  Havoc Pennington  <hp@pobox.com>
9721
9722         * tools/Makefile.am, tools/dbus-send.1, tools/dbus-monitor.1:
9723         add some man pages
9724
9725 2003-05-03  Colin Walters  <walters@verbum.org>
9726
9727         * dbus/dbus-sysdeps.c (fill_user_info): Test against
9728         DBUS_UID_UNSET to determine whether to do a uid lookup or not.
9729
9730         * Makefile.am: Update to use new .pc versioning scheme.
9731
9732 2003-05-02  Havoc Pennington  <hp@redhat.com>
9733
9734         * bus/system.conf.in: allow send/receive to/from message bus
9735         service
9736
9737 2003-04-30  Havoc Pennington  <hp@redhat.com>
9738
9739         * configure.in: print a note when building with unit tests and
9740         without assertions
9741
9742 2003-04-30  Havoc Pennington  <hp@redhat.com>
9743
9744         * Makefile.am: add a check-local that complains if you didn't
9745         configure with --enable-tests
9746
9747 2003-04-29  Havoc Pennington  <hp@redhat.com>
9748
9749         * glib/dbus-gmain.c: docs cleanups
9750
9751         * dbus/dbus-types.h: add docs on int64 types
9752
9753         * dbus/dbus-memory.c: fix docs to avoid putting private API in
9754         public API docs section
9755
9756 2003-04-29  Havoc Pennington  <hp@redhat.com>
9757
9758         * dbus-1.pc.in, dbus-glib-1.pc.in: rename these from
9759         dbus-1.0.pc.in, dbus-glib-1.0.pc.in. As these change with the
9760         parallel install API version, not with the D-BUS package version.
9761
9762         * HACKING: move some of README over here
9763
9764         * README: updates, and document API/ABI policy
9765
9766         * configure.in: reindentation
9767
9768 2003-04-29  Havoc Pennington  <hp@redhat.com>
9769
9770         * dbus/dbus.h: add "you have to define DBUS_API_SUBJECT_TO_CHANGE
9771         to use this library" to be sure people have the right
9772         expectations.
9773
9774 2003-04-28  Havoc Pennington  <hp@redhat.com>
9775
9776         * configure.in: add --enable-docs which by default is auto yes if
9777         doxygen and db2html found, no otherwise; but can be forced on/off
9778
9779         * doc/Makefile.am: conditionalize whether to build docs on
9780         --enable-docs
9781
9782 2003-04-28  Havoc Pennington  <hp@redhat.com>
9783
9784         * configure.in: 0.10
9785
9786         * NEWS: update
9787
9788         * bus/system.conf.in: add <includedir>system.d</includedir>
9789
9790         * dbus/dbus-userdb.c (_dbus_user_database_lookup): fix bug when
9791         username was provided but not uid
9792
9793         * bus/config-parser.c (struct BusConfigParser): keep track of
9794         whether the parser is toplevel or was included; change some
9795         of the error handling if it's included.
9796
9797 2003-04-27  Havoc Pennington  <hp@pobox.com>
9798
9799         Unbreak my code...
9800
9801         * dbus/dbus-transport.c (_dbus_transport_get_dispatch_status):
9802         report correct status if we finish processing authentication
9803         inside this function.
9804
9805         * bus/activation.c (try_send_activation_failure): use
9806         bus_transaction_send_error_reply
9807
9808         * bus/connection.c (bus_connection_get_groups): return an error
9809         explaining the problem
9810
9811         * bus/bus.c (bus_context_check_security_policy): implement
9812         restriction here that inactive connections can only send the
9813         hello message. Also, allow bus driver to send anything to
9814         any recipient.
9815
9816         * bus/connection.c (bus_connection_complete): create the
9817         BusClientPolicy here instead of on-demand.
9818         (bus_connection_get_policy): don't return an error
9819
9820         * dbus/dbus-message.c (dbus_message_new_error_reply): allow NULL
9821         sender field in message being replied to
9822
9823         * bus/bus.c (bus_context_check_security_policy): fix silly typo
9824         causing it to return FALSE always
9825
9826         * bus/policy.c (bus_client_policy_check_can_send): fix bug where
9827         we checked sender rather than destination
9828
9829 2003-04-25  Havoc Pennington  <hp@redhat.com>
9830
9831         test suite is slightly hosed at the moment, will fix soon
9832
9833         * bus/connection.c (bus_connections_expire_incomplete): fix to
9834         properly disable the timeout when required
9835         (bus_connection_set_name): check whether we can remove incomplete
9836         connections timeout after we complete each connection.
9837
9838         * dbus/dbus-mainloop.c (check_timeout): fix this up a bit,
9839         probably still broken.
9840
9841         * bus/services.c (bus_registry_acquire_service): implement max
9842         number of services owned, and honor allow/deny rules on which
9843         services a connection can own.
9844
9845         * bus/connection.c (bus_connection_get_policy): report errors here
9846
9847         * bus/activation.c: implement limit on number of pending
9848         activations
9849
9850 2003-04-25  Havoc Pennington  <hp@redhat.com>
9851
9852         * dbus/dbus-transport.c (_dbus_transport_get_unix_user): fix bug
9853         where we used >= 0 instead of != DBUS_UID_UNSET.
9854
9855 2003-04-25  Havoc Pennington  <hp@redhat.com>
9856
9857         * glib/dbus-gmain.c (remove_watch): fix for a crash when watches
9858         were toggled without add/remove, fix from Anders Gustafsson
9859
9860 2003-04-24  Havoc Pennington  <hp@redhat.com>
9861
9862         * test/data/valid-config-files/basic.conf: add <limit> tags to
9863         this test
9864
9865         * bus/config-parser.h, bus/config-parser.c, bus/bus.c: Implement
9866         <limit> tag in configuration file.
9867
9868 2003-04-24  Havoc Pennington  <hp@redhat.com>
9869
9870         * bus/dispatch.c: somehow missed some name_is
9871
9872         * dbus/dbus-timeout.c (_dbus_timeout_set_enabled)
9873         (_dbus_timeout_set_interval): new
9874
9875         * bus/connection.c (bus_connections_setup_connection): record time
9876         when each connection is first set up, and expire them after the
9877         auth timeout passes.
9878
9879 2003-04-24  Havoc Pennington  <hp@redhat.com>
9880
9881         * dbus/dbus-message.c (dbus_message_name_is): rename
9882         (dbus_message_service_is): rename
9883         (dbus_message_sender_is): rename
9884         (dbus_message_get_service): rename
9885
9886 2003-04-24  Havoc Pennington  <hp@redhat.com>
9887
9888         * configure.in: add --enable-checks
9889
9890         * dbus/dbus-message.c (dbus_message_new): reverse name/service arguments
9891
9892         * dbus/dbus-connection.c (dbus_connection_preallocate_send): fix
9893         to use thread locks.
9894         (_dbus_connection_handler_destroyed_locked): move some private
9895         functions into proper docs group
9896
9897         * dbus/dbus-internals.h: add _dbus_return_if_fail,
9898         _dbus_return_val_if_fail
9899
9900         Throughout: use dbus_return_if_fail
9901
9902 2003-04-23  James Willcox  <jwillcox@gnome.org>
9903
9904         * glib/dbus-glib.h:
9905         * glib/dbus-gmain.c: (add_timeout), (wakeup_main), (create_source),
9906         (dbus_connection_setup_with_g_main),
9907         (dbus_server_setup_with_g_main):
9908         * glib/test-dbus-glib.c: (main):
9909         * glib/test-thread-client.c: (main):
9910         * glib/test-thread-server.c: (new_connection_callback), (main):
9911         * tools/dbus-monitor.c: (main):
9912
9913         Added a GMainContext argument to dbus_connection_setup_with_g_main()
9914         and dbus_server_setup_with_g_main().
9915
9916 2003-04-20  Havoc Pennington  <hp@pobox.com>
9917
9918         * doc/dbus-specification.sgml: document the restrictions on
9919         message and service names
9920
9921 2003-04-22  Havoc Pennington  <hp@redhat.com>
9922
9923         * dbus/dbus-message.c, dbus/dbus-marshal.c: add 64-bit integer
9924         support, and do some code cleanups to share more code and
9925         speed up array marshal/demarshal.
9926
9927         * dbus-1.0.pc.in (Cflags): put libdir include file in cflags
9928
9929         * configure.in: generate dbus-arch-deps.h
9930
9931         * dbus/dbus-protocol.h (DBUS_TYPE_INT64, DBUS_TYPE_UINT64): add
9932         64-bit typecodes
9933
9934 2003-04-22  Havoc Pennington  <hp@redhat.com>
9935
9936         * test/data/valid-messages/opposite-endian.message: fix test
9937         to use proper type for rply field
9938
9939         * test/data/invalid-messages: add tests for below validation
9940
9941         * dbus/dbus-message.c (decode_header_data): validate field types,
9942         and validate that named fields are valid names
9943         (decode_name_field): consider messages in the
9944         org.freedesktop.Local. namespace to be invalid.
9945
9946         * dbus/dbus-string.c (_dbus_string_validate_name): new
9947
9948 2003-04-19  Havoc Pennington  <hp@pobox.com>
9949
9950         * bus/driver.c (bus_driver_handle_hello): check limits and
9951         return an error if they are exceeded.
9952
9953         * bus/connection.c: maintain separate lists of active and inactive
9954         connections, and a count of each. Maintain count of completed
9955         connections per user. Implement code to check connection limits.
9956
9957         * dbus/dbus-list.c (_dbus_list_unlink): export
9958
9959         * bus/bus.c (bus_context_check_security_policy): enforce a maximum
9960         number of bytes in the message queue for a connection
9961
9962 2003-04-18  Havoc Pennington  <hp@pobox.com>
9963
9964         * dbus/dbus-auth.c (record_mechanisms): memleak fixes
9965
9966         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): fix some
9967         memleaks
9968
9969         * dbus/dbus-keyring.c (add_new_key): fix a memleak, and
9970         on realloc be sure to update the pointer in the keyring
9971
9972         * dbus/dbus-string.c (_dbus_string_zero): compensate for align
9973         offset to avoid writing to unallocated memory
9974
9975         * dbus/dbus-auth.c (process_rejected): return FALSE if we fail to
9976         try the next mechanism, so we properly handle OOM
9977
9978         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): fix double-free
9979         on OOM.
9980         (_dbus_keyring_new): fix OOM bug
9981         (_dbus_keyring_new_homedir): always set error; impose a maximum
9982         number of keys we'll load from the file, mostly to speed up the
9983         test suite and make its OOM checks more useful, but also for
9984         general sanity.
9985
9986         * dbus/dbus-auth.c (process_error_server): reject authentication
9987         if we get an error from the client
9988         (process_cancel): on cancel, send REJECTED, per the spec
9989         (process_error_client): send CANCEL if we get an error from the
9990         server.
9991
9992 2003-04-18  Havoc Pennington  <hp@pobox.com>
9993
9994         * dbus/dbus-mainloop.c (_dbus_loop_iterate): fix UMR in verbose
9995         debug spew
9996
9997         * dbus/dbus-auth.c (handle_client_data_cookie_sha1_mech): fix OOM
9998         handling problem
9999
10000         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): only whine
10001         about DBUS_TEST_HOMEDIR once
10002
10003         * bus/Makefile.am (TESTS_ENVIRONMENT): put DBUS_TEST_HOMEDIR in
10004         the environment
10005
10006         * bus/dispatch.c (bus_dispatch_sha1_test): actually load sha1
10007         config file so we test the right thing
10008
10009         Throughout: assorted docs improvements
10010
10011 2003-04-18  Havoc Pennington  <hp@pobox.com>
10012
10013         * glib/dbus-gmain.c: adapt to watch changes
10014
10015         * bus/bus.c, bus/activation.c, etc.: adjust to watch changes
10016
10017         * dbus/dbus-server.h: remove dbus_server_handle_watch
10018
10019         * dbus/dbus-connection.h: remove dbus_connection_handle_watch
10020
10021         * dbus/dbus-watch.c (dbus_watch_handle): change DBusWatch to work
10022         like DBusTimeout, so we don't need dbus_connection_handle_watch
10023         etc.
10024
10025 2003-04-17  Havoc Pennington  <hp@redhat.com>
10026
10027         * dbus/dbus-userdb.c, dbus/dbus-sysdeps.c: redo all the passwd
10028         database usage so it all goes via the DBusUserDatabase cache.
10029
10030 2003-04-17  Havoc Pennington  <hp@redhat.com>
10031
10032         * dbus/dbus-mainloop.c (_dbus_loop_iterate): fix logic so that if
10033         there was an OOM watch we skipped, we always return TRUE so we
10034         iterate again to have a look at it again. Fixes test suite hang.
10035         Code rearrangement also lets us lose some memset and only iterate
10036         over callbacks once.
10037
10038         * bus/driver.c (bus_driver_handle_message): sense of test for
10039         reply was backward
10040
10041 2003-04-16  Havoc Pennington  <hp@pobox.com>
10042
10043         * doc/dbus-specification.sgml: make spec say serials are unsigned
10044
10045         * dbus/dbus-message.h: change message serials to unsigned
10046
10047         * dbus/dbus-connection.c: adapt to message serials being unsigned
10048
10049 2003-04-15  Havoc Pennington  <hp@pobox.com>
10050
10051         * bus/bus.c: create and keep around a shared DBusUserDatabase
10052         object.
10053
10054         * bus/connection.c (bus_connection_get_groups): don't cache
10055         groups for user in the connection object, since user database
10056         object now does that.
10057
10058 2003-04-16  Havoc Pennington  <hp@redhat.com>
10059
10060         * dbus/dbus-message.c (_dbus_message_add_size_counter): keep a
10061         list of size counters
10062         (_dbus_message_loader_putback_message_link): put back a popped link
10063
10064         * dbus/dbus-connection.c
10065         (dbus_connection_set_max_live_messages_size): rename
10066         max_received_size
10067         (dbus_connection_get_outgoing_size): get size of outgoing
10068         queue
10069         (_dbus_connection_set_connection_counter): remove this cruft
10070
10071 2003-04-14  Havoc Pennington  <hp@redhat.com>
10072
10073         * dbus/dbus-userdb.c: user database abstraction, mostly to get
10074         caching, but at some point we might want to be able to use a
10075         different database.
10076
10077         * bus/dispatch.c (bus_dispatch_sha1_test): add a test that uses
10078         SHA1 conf file to test the sha1 auth mechanism, since the regular
10079         test always uses EXTERNAL when available.
10080
10081         * configure.in,
10082         test/data/valid-config-files/debug-allow-all-sha1.conf.in:
10083         add conf file that requires use of sha1 auth
10084
10085 2003-04-13  Havoc Pennington  <hp@pobox.com>
10086
10087         * tools/dbus-send.c, tools/dbus-monitor.c: two utility programs
10088         from Philip Blundell to send messages and monitor them.
10089
10090 2003-04-13  Havoc Pennington  <hp@pobox.com>
10091
10092         * dbus/dbus-mainloop.c: fix some reentrancy issues by refcounting
10093         callbacks
10094
10095         * test/data/valid-config-files/debug-allow-all.conf.in: allow all
10096         users
10097
10098         * dbus/dbus-transport.c (_dbus_transport_get_dispatch_status):
10099         fix to only recover unused bytes if we're already authenticated
10100         (_dbus_transport_get_is_authenticated): fix to still mark us
10101         authenticated if there are unused bytes.
10102
10103         * bus/dispatch.c: implement security policy checking
10104
10105         * bus/connection.c (bus_transaction_send_from_driver): new
10106
10107         * bus/bus.c (bus_context_check_security_policy): new
10108
10109         * bus/dispatch.c (send_service_nonexistent_error): delete this,
10110         now we just set the DBusError and it gets converted to an error
10111         reply.
10112
10113         * bus/connection.c (allow_user_function): enable code using actual
10114         data from the config file
10115
10116         * bus/policy.c (list_allows_user): handle wildcard rules for
10117         user/group connection perms
10118
10119 2003-04-13  Havoc Pennington  <hp@pobox.com>
10120
10121         * bus/config-parser.c: Load up the BusPolicy and BusPolicyRules
10122
10123         * dbus/dbus-sysdeps.c (_dbus_get_user_id): new function
10124
10125         * bus/policy.c (bus_policy_append_mandatory_rule)
10126         (bus_policy_append_default_rule, bus_policy_append_user_rule)
10127         (bus_policy_append_group_rule): new functions
10128
10129 2003-04-12  Havoc Pennington  <hp@pobox.com>
10130
10131         * bus/config-parser.c (bus_config_parser_new): fix a memleak
10132
10133         * dbus/dbus-sysdeps.c: change DBusCredentials to use longs for
10134         the pid/gid/uid, just for paranoia.
10135
10136         * test/break-loader.c (randomly_do_n_things): find a byte
10137         containing a type code, and randomly change it to a different
10138         type code.
10139
10140 2003-04-12  Havoc Pennington  <hp@pobox.com>
10141
10142         * bus/policy.h: change BusPolicy to be the thing from the config
10143         file, and rename old BusPolicy to BusClientPolicy
10144
10145         * bus/bus.c, bus/connection.c, bus/config-parser.c: change to
10146         match change in how policy works
10147
10148         * dbus/dbus-internals.h: mark assert_not_reached as
10149         __attribute((noreturn))__
10150
10151 2003-04-11  Havoc Pennington  <hp@redhat.com>
10152
10153         * doc/dbus-specification.sgml: fix a spot with the wrong name for
10154         the broadcast service. Use boolean return for ServiceExists.
10155
10156 2003-04-11  Havoc Pennington  <hp@redhat.com>
10157
10158         * configure.in: add another directory to look for qt in.
10159
10160 2003-04-11  Havoc Pennington  <hp@redhat.com>
10161
10162         * AUTHORS: add Colin Walters
10163
10164 2003-04-11  Havoc Pennington  <hp@redhat.com>
10165
10166         * NEWS: update
10167
10168         * configure.in: 0.9
10169
10170 2003-04-11  Havoc Pennington  <hp@redhat.com>
10171
10172         * bus/messagebus.in: remove pid file when stopping the
10173         message bus, since the bus won't have privileges to remove it
10174         itself.
10175
10176 2003-04-11  Havoc Pennington  <hp@redhat.com>
10177
10178         * bus/bus.c (bus_context_new): move credentials change after
10179         creating pidfile
10180
10181 2003-04-11  Havoc Pennington  <hp@pobox.com>
10182
10183         * test/decode-gcov.c: add "below average functions" to the
10184         coverage report, and change how some of the code works.
10185
10186         * bus/test-main.c: bracket some stuff in DBUS_BUILD_TESTS so it's
10187         not in the coverage stats.
10188
10189         * test/test-service.c (main): use _dbus_verbose not fprintf in a
10190         couple places so running the test suite doesn't result in megaspam.
10191
10192 2003-04-11  Havoc Pennington  <hp@pobox.com>
10193
10194         * bus/dispatch.c (check_existent_service_activation): accept a no
10195         memory error in a place we didn't before
10196
10197         * bus/test.c (bus_test_run_everything): remove hacky "do it twice
10198         in case the first one failed," since the test suite is less
10199         broken now.
10200
10201 2003-04-10  Havoc Pennington  <hp@pobox.com>
10202
10203         * bus/dispatch.c (check_segfault_service_activation): add test
10204         for launching an executable that just crashes.
10205
10206         * test/test-segfault.c (main): try setting coredumpsize to 0 so we
10207         don't leave a million cores. We'll see how portable this is.
10208
10209 2003-04-10  Havoc Pennington  <hp@pobox.com>
10210
10211         * dbus/dbus-spawn.c (_dbus_spawn_async_with_babysitter): move all
10212         the possible parent failures before we fork, so that we don't
10213         fail to create a babysitter after creating the child.
10214
10215         * bus/activation.c (bus_activation_activate_service): kill child
10216         if we don't successfully complete the activation.
10217
10218 2003-04-10  Havoc Pennington  <hp@redhat.com>
10219
10220         * dbus/dbus-connection.c (dbus_connection_flush): don't spin on
10221         the connection if it's disconnected
10222
10223         * bus/activation.c (bus_activation_service_created): use new
10224         transaction features to roll back removal of pending activation if
10225         we don't successfully create the service after all. Don't remove
10226         pending activation if the function fails.
10227
10228         * dbus/dbus-list.c (_dbus_list_insert_before_link)
10229         (_dbus_list_insert_after_link): new code to facilitate
10230         services.c fixes
10231
10232         * dbus/dbus-hash.c (_dbus_hash_table_insert_string_preallocated):
10233         new functionality, so we can preallocate the ability to insert
10234         into a hash table.
10235
10236         * bus/connection.c (bus_transaction_add_cancel_hook): new function
10237         allowing us to put custom hooks in a transaction to be used for
10238         cancelling said transaction
10239
10240         * doc/dbus-specification.sgml: add some discussion of secondary
10241         service owners, and disallow zero-length service names
10242
10243         * bus/services.c (bus_registry_acquire_service): new function,
10244         splits out part of bus_driver_handle_acquire_service() and fixes
10245         a bug where we didn't remove the service doing the acquiring
10246         from the secondary queue if we failed to remove the current owner
10247         from the front of the queue.
10248
10249 2003-04-10  Alexander Larsson  <alexl@redhat.com>
10250
10251         * doc/dbus-specification.sgml:
10252         s/org.freedesktop.Broadcast/org.freedesktop.DBus.Broadcast/
10253
10254 2003-04-10  Alexander Larsson  <alexl@redhat.com>
10255
10256         * bus/.cvsignore:
10257         * glib/.cvsignore:
10258         * test/.cvsignore:
10259         Added files to cvsignore
10260
10261         * dbus/dbus-message.h:
10262         * dbus/dbus-message.c: (dbus_message_iter_get_named):
10263         Make get_named() take two out argument and return a boolean.
10264         (dbus_message_iter_get_args_valist):
10265         Update usage of get_named().
10266         (dbus_message_iter_append_byte):
10267         Fix typo
10268         (dbus_message_iter_append_named)
10269         Fix typo
10270         (message_iter_test), (check_message_handling_type), (_dbus_message_test):
10271         More tests.
10272
10273 2003-04-10  Alexander Larsson  <alexl@redhat.com>
10274
10275         * dbus/dbus-marshal.[ch]:
10276         Add array_type_pos argument to _dbus_marshal_validate_arg.
10277         Let you pass a NULL end_pos to _dbus_marshal_validate_type.
10278
10279         * dbus/dbus-message.[ch]:
10280         Multi-dimensional arrays have full type specification in the
10281         outermost array. Iter code re-arranged to handle this.
10282         Added some more iter tests.
10283
10284         * doc/dbus-specification.sgml:
10285         Add me to authors.
10286         Remove old FIXME.
10287         Update new array encoding description.
10288         Correct DBUS_SERVICE_FLAGS_REPLACE_EXISTING description.
10289
10290         * test/data/invalid-messages/array-with-mixed-types.message:
10291         * test/data/valid-messages/array-of-array-of-uint32.message:
10292         Change to the new array format.
10293
10294         * test/data/invalid-messages/too-short-dict.message:
10295         Fix bug in test.
10296
10297         * test/data/valid-messages/recursive-types.message:
10298         Fix up and extend test.
10299
10300 2003-04-10  Havoc Pennington  <hp@pobox.com>
10301
10302         * bus/dispatch.c: lots of fixes
10303
10304         * dbus/dbus-mainloop.c (_dbus_loop_dispatch): export
10305         (_dbus_loop_iterate): remove old "quit if no callbacks" code,
10306         that was crack, broke the test service.
10307
10308         * dbus/dbus-transport.c (_dbus_transport_open): fix error
10309         handling to avoid piling up errors if we get a failure on the
10310         first address.
10311
10312         * dbus/dbus-internals.c (_dbus_real_assert_not_reached): include
10313         pid in assertion failures.
10314
10315         * dbus/dbus-mainloop.c (_dbus_loop_iterate): use static arrays up
10316         to some fixed size of file descriptor array. Don't return TRUE
10317         anytime a timeout exists, that led to lots of busy loop silliness
10318         in the tests.
10319
10320 2003-04-09  Havoc Pennington  <hp@redhat.com>
10321
10322         * dbus/dbus-mainloop.c (check_timeout): fix timeouts, I thought
10323         I'd checked this in earlier but hadn't.
10324
10325 2003-04-09  Havoc Pennington  <hp@redhat.com>
10326
10327         * bus/dispatch.c (bus_dispatch_test): get a bit further through
10328         the activation test (man this is getting old!)
10329
10330 2003-04-09  Havoc Pennington  <hp@redhat.com>
10331
10332         * test/test-utils.c: use dispatch status function to fix this up
10333
10334         * bus/connection.c (connection_watch_callback): don't dispatch
10335         from here
10336         (connection_timeout_callback): don't dispatch from here
10337         (bus_connections_setup_connection): set the dispatch status function
10338         (bus_connection_disconnected): unset it
10339
10340         * dbus/dbus-mainloop.c (_dbus_loop_queue_dispatch): new function
10341         used to add a connection to be dispatched
10342         (_dbus_loop_iterate): do the dispatching at the end of each
10343         iteration
10344
10345         * dbus/dbus-connection.c
10346         (dbus_connection_set_dispatch_status_function): new function
10347         allowing us to fix up main loop usage
10348         (_dbus_connection_last_unref): free all the various function
10349         user data
10350         (dbus_connection_dispatch): call the DispatchStatusFunction
10351         whenever this function returns
10352         (dbus_connection_handle_watch): call DispatchStatusFunction
10353         (dbus_connection_send_with_reply_and_block): call DispatchStatusFunction
10354         (reply_handler_timeout): call DispatchStatusFunction
10355         (dbus_connection_flush): call DispatchStatusFunction
10356
10357 2003-04-09  Havoc Pennington  <hp@redhat.com>
10358
10359         * dbus/dbus-bus.c (dbus_bus_register): fix up error handling and
10360         a memory leak
10361
10362         * bus/dispatch.c (check_service_activated): fix bug in test
10363
10364         * dbus/dbus-mainloop.c (check_timeout): fix this up
10365
10366         * dbus/dbus-internals.c (_dbus_verbose_real): include PID in
10367         verbose output so we can sort out output from different processes,
10368         e.g. in the activation case.
10369
10370 2003-04-08  Colin Walters  <walters@gnu.org>
10371
10372         * bus/bus.c (struct BusContext) [pidfile]: New member, to store
10373         the pid file.
10374         (bus_context_new): Set it.
10375         (bus_context_unref): Use it to delete the pid file.
10376
10377 2003-04-08  Havoc Pennington  <hp@redhat.com>
10378
10379         * test/data/invalid-messages/array-with-mixed-types.message:
10380         regression test that fails for the moment
10381
10382         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): reorder
10383         tests for convenience
10384
10385         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): don't allow
10386         array of nil, it broke things.
10387
10388         * test/data/invalid-messages/array-of-nil.message: regression test
10389
10390         * test/data/valid-messages/array-of-array-of-uint32.message:
10391         happened to write this so added it to suite
10392
10393 2003-04-08  Havoc Pennington  <hp@redhat.com>
10394
10395         * bus/driver.c (bus_driver_handle_acquire_service): init
10396         retval/reply before checking name
10397
10398         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): add a
10399         recursion depth argument
10400
10401         * dbus/dbus-message.h (struct DBusMessageIter): put some padding
10402         in the public struct for future extension
10403
10404         * dbus/dbus-message-builder.c (_dbus_message_data_load): fix
10405         typo
10406
10407         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): fix a verbose
10408         message
10409
10410         * doc/dbus-specification.sgml: fix typo
10411
10412 2003-04-08  Alexander Larsson  <alexl@redhat.com>
10413
10414         Implemented recursive types, named types and new-style iters
10415
10416         * bus/driver.c:
10417         * glib/test-thread-client.c: (thread_func):
10418         * glib/test-thread-server.c: (handle_test_message):
10419         * test/test-service.c: (handle_echo):
10420         Update to new api
10421
10422         * dbus/Makefile.am:
10423         * dbus/dbus-dict.c:
10424         * dbus/dbus-dict.h:
10425         * dbus/dbus.h
10426         Remove DBusDict
10427
10428         * dbus/dbus-internals.c: (_dbus_type_to_string):
10429         Update for new types.
10430
10431         * dbus/dbus-marshal.[ch]:
10432         Implement recursive types and the new marshalling format.
10433         Remove hardcoded dict marshalling.
10434         Marshal named types.
10435
10436         * dbus/dbus-message-builder.c:
10437         Add BYTE_ARRAY.
10438         Remove references to old types
10439
10440         * dbus/dbus-message.[ch]:
10441         New non-refcounted iter API that supports recursive iters.
10442         Use iters for appending, including support for recursive
10443         iters.
10444         Add byte and named type support.
10445         Update everything to new marshalling formats.
10446         Add tests for new API.
10447
10448         * dbus/dbus-protocol.h:
10449         Remove old array types.
10450         Add types: BYTE, ARRAY, DICT, NAMED
10451
10452         * dbus/dbus-string.c:
10453         * dbus/dbus-sysdeps.c:
10454         Make parse_double locale safe.
10455
10456         * dbus/dbus-test-main.c:
10457         Call setlocale.
10458
10459         * dbus/dbus-test.c:
10460         Kill dict test
10461
10462         * doc/dbus-specification.sgml:
10463         Update spec
10464
10465         * test/data/incomplete-messages/missing-body.message:
10466         * test/data/invalid-messages/bad-boolean.message:
10467         * test/data/invalid-messages/bad-boolean-array.message:
10468         * test/data/invalid-messages/boolean-array-length-too-long.message-raw:
10469         * test/data/invalid-messages/boolean-has-no-value.message-raw:
10470         * test/data/invalid-messages/too-short-dict.message:
10471         * test/data/valid-messages/dict-simple.message:
10472         * test/data/valid-messages/dict.message:
10473         * test/data/valid-messages/emptiness.message:
10474         * test/data/valid-messages/lots-of-arguments.message:
10475         * test/data/valid-messages/no-padding.message:
10476         * test/data/valid-messages/recursive-types.message:
10477         Add missing NAME fields
10478         Fix up dicts & arrays
10479
10480         * test/data/invalid-messages/dict-with-nil-value.message:
10481         Removed, this is not invalid anymore.
10482
10483         * test/data/valid-messages/recursive-types.message:
10484         Add new test for deeply recursive types.
10485
10486 2003-04-07  Havoc Pennington  <hp@pobox.com>
10487
10488         * bus/driver.c (bus_driver_handle_acquire_service): return an
10489         error if you try to acquire a service that starts with ':'
10490
10491 2003-04-07  Havoc Pennington  <hp@redhat.com>
10492
10493         * doc/dbus-specification.sgml: require that base service names
10494         start with ':' and that the base service is created/deleted
10495         as first and last things a connection does on the bus
10496
10497         * bus/dispatch.c (check_existent_service_activation): lots more
10498         work on the activation test; it doesn't fully pass yet...
10499
10500         * test/test-service.c (main): fix so we don't memleak the
10501         connection to the message bus
10502         (filter_func): accept a message asking us to exit
10503
10504 2003-04-06  Havoc Pennington  <hp@pobox.com>
10505
10506         * qt/Makefile.am (dbusinclude_HEADERS): install dbus-qt.h,
10507         from Colin Walters
10508
10509         * configure.in: fixes to Qt detection from Colin Walters
10510
10511         * doc/Makefile.am: Only remove generated docbook dirs if they
10512         exist, from Colin Walters
10513
10514         * dbus/dbus-bus.c: change how we set well-known connections to
10515         NULL, so that it works if a single connection is stored in
10516         two well-known array slots.
10517
10518         * test/Makefile.am: remove a lot of stuff that isn't immediately
10519         useful, it's in CVS history if we want it.
10520
10521         * test/test-service.c: use dbus-mainloop instead of that
10522         watch.[hc] crack
10523
10524 2003-04-06  Havoc Pennington  <hp@pobox.com>
10525
10526         * dbus/Makefile.am: split lists of sources into stuff that goes in
10527         the library, util functions that go in the lib and are also used
10528         elsewhere, and util functions that are used in tests/daemon but
10529         don't go in the lib.
10530
10531         * dbus/dbus-mainloop.h, dbus/dbus-mainloop.c: move bus/loop.[hc]
10532         here so it can be used in test binaries also
10533
10534 2003-04-06  Havoc Pennington  <hp@pobox.com>
10535
10536         * dbus/dbus-sysdeps.c (_dbus_become_daemon): write the pidfile
10537         here in the parent process, so we can return an error if it
10538         fails. Also, move some of the code into the child so the parent
10539         is less hosed if we fail midway through.
10540
10541         * bus/bus.c (bus_context_new): move pidfile detection further up
10542         in the function, before we start overwriting sockets and such.
10543
10544         * bus/messagebus.in: adjust this a bit, not sure if it will work.
10545
10546         * configure.in: add --with-system-pid-file and --with-system-socket
10547
10548 2003-04-06  Colin Walters  <walters@verbum.org>
10549
10550         * configure.in (DBUS_SYSTEM_PID_FILE): New variable.
10551
10552         * bus/system.conf.in: Declare a pidfile.
10553
10554         * bus/bus.c (bus_context_new): Test for an existing pid file, and
10555         create one (if appropriate).
10556
10557         * bus/config-parser.c (enum ElementType) [ELEMENT_PIDFILE]: New.
10558         (struct BusConfigParser) [pidfile]: New.
10559         (element_type_to_name, merge_included, start_busconfig_child)
10560         (bus_config_parser_end_element, bus_config_parser_content): Handle it.
10561         (bus_config_parser_unref): Free it.
10562         (bus_config_parser_get_pidfile): New function.
10563
10564         * bus/config-parser.h (_dbus_write_pid_file): Prototype.
10565
10566         * dbus/dbus-errors.h (DBUS_ERROR_PIDFILE_EXISTS): New error.
10567
10568         * dbus/dbus-sysdeps.c (_dbus_write_pid_file): New function.
10569
10570         * dbus/dbus-sysdeps.h: Prototype it.
10571
10572 2003-04-06  Havoc Pennington  <hp@pobox.com>
10573
10574         * bus/bus.c (bus_context_new): print the address in here, rather
10575         than in main(), because we need to do it before forking the daemon
10576
10577         * bus/dispatch.c (send_service_nonexistent_error): set the sender
10578         on the service nonexistent error
10579
10580         * bus/driver.c (bus_driver_handle_acquire_service): set the
10581         sender on the AcquireService reply
10582
10583         * test/data/valid-config-files/debug-allow-all.conf.in: Make test
10584         server also listen on a UNIX socket so services can connect to it.
10585
10586 2003-04-06  Havoc Pennington  <hp@pobox.com>
10587
10588         * dbus/dbus-threads.c: Redo how the fake debug mutexes are done
10589         so it detects deadlocks and also we actually init threads when
10590         debugging.
10591
10592 2003-04-06  Havoc Pennington  <hp@pobox.com>
10593
10594         * dbus/dbus-server-unix.c (_dbus_server_new_for_domain_socket):
10595         save the domain socket name, and unlink it when we disconnect the
10596         server. Means that at least when we exit normally, we won't leave
10597         a bunch of junk in /tmp
10598
10599         * dbus/dbus-transport-unix.c
10600         (_dbus_transport_new_for_domain_socket): code cleanup (nicer
10601         memory management). (I was making a real change here but then
10602         didn't)
10603
10604 2003-04-06  Havoc Pennington  <hp@pobox.com>
10605
10606         * bus/bus.c (bus_context_new): fix wrong handling of
10607         server_data_slot_unref() in the error case.
10608
10609         * dbus/dbus-internals.h (_dbus_assert): change so it passes
10610         "(condition) != 0" to _dbus_real_assert so that
10611         "_dbus_assert (pointer)" doesn't cause a warning
10612
10613         * bus/main.c (main): accept --print-address option to print out
10614         the message bus address
10615
10616         * dbus/dbus-sysdeps.c (_dbus_generate_random_ascii): export this
10617
10618         * dbus/dbus-transport.c (_dbus_transport_open): special error for
10619         "tmpdir" option to unix: address on client side
10620
10621         * dbus/dbus-server.c (dbus_server_listen): handle "tmpdir" option
10622         to unix: address
10623
10624         * configure.in (TEST_SOCKET_DIR): locate a temporary directory
10625         we can use to create sockets in the test suite.
10626
10627         * bus/main.c (signal_handler): on SIGTERM, exit the daemon
10628         cleanly. To be used for testing.
10629
10630         * dbus/dbus-spawn.c (babysit): use _dbus_set_signal_handler()
10631
10632         * dbus/dbus-sysdeps.c (_dbus_set_signal_handler): new
10633
10634         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
10635         handle trying to call this when there's no servers active
10636
10637 2003-04-05  Havoc Pennington  <hp@pobox.com>
10638
10639         * NEWS: update
10640
10641         * configure.in: 0.8
10642
10643 2003-04-05  Havoc Pennington  <hp@pobox.com>
10644
10645         * bus/bus.c (setup_server): fix this so dbus-daemon-1 doesn't
10646         crash on startup. Need to get "try starting the daemon"
10647         in the test suite I guess. ;-)
10648
10649         * dbus/dbus-server.h, dbus/dbus-server.c: remove the stuff that
10650         tracked the number of open connections; it's better done in
10651         application-specific code as you want it to span all servers etc.
10652
10653 2003-04-05  Havoc Pennington  <hp@pobox.com>
10654
10655         * bus/Makefile.am (install-data-hook): add missing DESTDIR,
10656         patch from Colin Walters
10657
10658 2003-04-05  Havoc Pennington  <hp@pobox.com>
10659
10660         * doc/config-file.txt (Elements): fix docs of <auth> to reflect
10661         reality; in fact multiple mechanisms are allowed.
10662
10663         * dbus/dbus-internals.c (_dbus_real_assert)
10664         (_dbus_real_assert_not_reached): move guts of _dbus_assert() and
10665         _dbus_assert_not_reached() into functions, so that they don't show
10666         up in basic block counts for test coverage, and don't use up as
10667         much disk space. Does mean slower execution speed though, so
10668         assumes --disable-asserts is the normal production case.
10669
10670 2003-04-05  Havoc Pennington  <hp@pobox.com>
10671
10672         * test/Makefile.am (dist-hook): also dist *.in files
10673
10674         * NEWS: update
10675
10676         * configure.in: 0.7
10677
10678 2003-04-05  Havoc Pennington  <hp@pobox.com>
10679
10680         * dbus/dbus-string.c: docs warning
10681
10682         * dbus/dbus-spawn.c: missing docs
10683
10684         * dbus/dbus-memory.c (struct ShutdownClosure): missing docs
10685
10686 2003-04-05  Havoc Pennington  <hp@pobox.com>
10687
10688         * bus/loop.c (bus_loop_iterate): fix the timeout code, using
10689         magic from GLib
10690
10691         * dbus/dbus-spawn.c (_dbus_babysitter_unref): set sitter_pid
10692         to -1 once we've reaped the babysitter
10693         (_dbus_babysitter_handle_watch): do as much work as we can, not
10694         just one go of it
10695
10696         * bus/activation.c: add code using DBusBabysitter so that we
10697         handle it when a service fails to start up properly.
10698         (bus_activation_service_created): don't remove the activation
10699         entries as we go, just let them get removed when we free the pending
10700         activation. Unref reply messages after sending them.
10701
10702 2003-04-05  Havoc Pennington  <hp@pobox.com>
10703
10704         * test/decode-gcov.c (main): print per-directory stats in the report
10705
10706         * Makefile.am (coverage-report.txt): don't include test/* in gcov stats
10707
10708 2003-04-05  Havoc Pennington  <hp@pobox.com>
10709
10710         * Makefile.am (coverage-report.txt): add target "coverage-report.txt"
10711
10712         * test/decode-gcov.c: hack up a little program to suck data
10713         out of gcov files. Yes this is sort of silly.
10714
10715         * configure.in: define something in config.h and do an
10716         AM_CONDITIONAL when gcov is enabled
10717
10718 2003-04-04  Havoc Pennington  <hp@redhat.com>
10719
10720         * dbus/dbus-spawn.c, dbus/dbus-spawn.h: Change dbus_spawn to
10721         return a "babysitter" object that is used to monitor the status of
10722         the spawned process and reap it when required.
10723
10724         * test/test-segfault.c, test/test-exit.c,
10725         test/test-sleep-forever.c: binaries that do various lame things,
10726         used in the test suite.
10727
10728         * dbus/dbus-sysdeps.c: kill _dbus_errno_to_string()
10729
10730 2003-04-03  Havoc Pennington  <hp@pobox.com>
10731
10732         * dbus/dbus-spawn.c: Move dbus-spawn into a separate file
10733         in preparation for modifying it, dbus-sysdeps is getting
10734         a bit unmanageable.
10735
10736 2003-04-03  Havoc Pennington  <hp@redhat.com>
10737
10738         * bus/loop.h, bus/loop.c: make the mainloop an object so we can
10739         have multiple ones
10740
10741         * bus/*.[hc]: adapt to mainloop change
10742
10743 2003-04-03  Havoc Pennington  <hp@redhat.com>
10744
10745         * bus/activation.c (load_directory): fix up memleaks
10746         (bus_activation_entry_free): free the entry
10747
10748         * dbus/dbus-bus.c (dbus_bus_acquire_service): return an error if
10749         we get one from the message bus; fix memleaks.
10750
10751         * dbus/dbus-message.c (dbus_set_error_from_message): new function
10752
10753 2003-04-03  Havoc Pennington  <hp@pobox.com>
10754
10755         * bus/config-parser.c (bus_config_parser_unref): free
10756         list of mechanisms, bug discovered by test suite enhancements
10757         (putting system.conf and session.conf into suite)
10758
10759         * test/Makefile.am, test/test-service.c: add placeholder for a
10760         test service that we'll activate as part of test suite. Doesn't
10761         do anything yet.
10762
10763         * dbus/dbus-sysdeps.c (_dbus_setenv): support unsetenv by
10764         setting NULL value, and use system malloc not dbus_malloc()
10765         when we have unavoidable memleakage.
10766
10767         * dbus/dbus-bus.c (dbus_bus_get): fix bug where bus type of 0
10768         didn't work, and support DBUS_BUS_ACTIVATION.
10769
10770         * bus/activation.c (child_setup): pass our well-known bus type to
10771         the child
10772
10773         * bus/config-parser.c: support <type> to specify well-known type
10774
10775         * doc/dbus-specification.sgml: document the env variables to
10776         locate well-known buses and find service activator
10777
10778 2003-04-02  Havoc Pennington  <hp@redhat.com>
10779
10780         * test/Makefile.am (all-local): add a rule to copy tests to
10781         builddir, so we can have generated tests. Use this to remove the
10782         silly hack for testing system.conf and session.conf. Will use this
10783         shortly to generate .service files pointing to test binaries.
10784
10785 2003-04-02  Havoc Pennington  <hp@redhat.com>
10786
10787         * dbus/dbus-string.c (set_length): fix a bug - we allocated max of
10788         current alloc and needed new length, not max of the doubled
10789         allocation and needed new length. Also, when building tests,
10790         don't do the double-allocation stuff, just realloc every time.
10791
10792 2003-04-02  Havoc Pennington  <hp@redhat.com>
10793
10794         * dbus/dbus-sysdeps.c (_dbus_file_get_contents): include filenames
10795         in error messages
10796         (_dbus_string_get_dirname): new
10797         (_dbus_sysdeps_test): new
10798         (_dbus_directory_open): include dirnames in error messages
10799
10800         * bus/config-parser.c: interpret <include> and <includedir> and
10801         <servicedir> relative to config file location if the given
10802         filename is not absolute.
10803
10804         * dbus/dbus-string.c (_dbus_string_find_byte_backward): new
10805
10806 2003-04-02  Havoc Pennington  <hp@redhat.com>
10807
10808         * bus/connection.c (bus_transaction_send_error_reply): set sender
10809         service for the error, and unref the reply on success
10810
10811         * bus/activation.c: convert to use BusTransaction so OOM can be
10812         handled correctly
10813         (bus_activation_service_created): set sender of the message
10814
10815 2003-04-01  Havoc Pennington  <hp@redhat.com>
10816
10817         * bus/config-parser.c, bus/bus.c: implement <servicedir> and
10818         <includedir> (at least mostly)
10819
10820         * dbus/dbus-sysdeps.c (_dbus_change_identity): set the group ID
10821         first, then the user ID
10822
10823 2003-04-01  Havoc Pennington  <hp@pobox.com>
10824
10825         * dbus/dbus-server.c (dbus_server_set_auth_mechanisms): new
10826         function
10827
10828         * dbus/dbus-auth.c (_dbus_auth_set_mechanisms): new
10829
10830         * dbus/dbus-internals.c (_dbus_dup_string_array): new function
10831
10832         * dbus/dbus-sysdeps.c (_dbus_listen_unix_socket): chmod the
10833         socket 0777, and unlink any existing socket.
10834
10835         * bus/bus.c (bus_context_new): change our UID/GID and fork if
10836         the configuration file so specifies; set up auth mechanism
10837         restrictions
10838
10839         * bus/config-parser.c (bus_config_parser_content): add support
10840         for <fork> option and fill in code for <auth>
10841
10842         * bus/system.conf.in: add <fork/> to default configuration,
10843         and limit auth mechanisms to EXTERNAL
10844
10845         * doc/config-file.txt (Elements): add <fork>
10846
10847         * dbus/dbus-sysdeps.c (_dbus_become_daemon): new function
10848         (_dbus_change_identity): new function
10849
10850 2003-03-31  Havoc Pennington  <hp@redhat.com>
10851
10852         * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket)
10853         (_dbus_listen_unix_socket): fix off-by-one error in null
10854         termination spotted by Nalin
10855
10856 2003-03-31  Havoc Pennington  <hp@redhat.com>
10857
10858         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): allow setting
10859         DBUS_TEST_HOMEDIR when tests are enabled, so we can test without
10860         having a real home directory available.
10861
10862 2003-03-31  Havoc Pennington  <hp@redhat.com>
10863
10864         * bus/Makefile.am (install-data-hook): create /var/run/dbus
10865
10866         * bus/messagebus.in: add init script for Red Hat /etc/init.d
10867
10868         * configure.in: add support for specifying a style of init script
10869         to install
10870
10871 2003-03-31  Havoc Pennington  <hp@redhat.com>
10872
10873         Fix some annoying DBusString API and fix all affected code.
10874
10875         * dbus/dbus-string.c (_dbus_string_init): get rid of annoying
10876         max_length argument
10877         (_dbus_string_get_data): change to return string instead of using
10878         an out param
10879         (_dbus_string_get_const_data): ditto
10880         (_dbus_string_get_data_len): ditto
10881         (_dbus_string_get_const_data_len): ditto
10882
10883 2003-03-31  Havoc Pennington  <hp@redhat.com>
10884
10885         * bus/main.c (main): fix up the command line arguments to be nicer
10886
10887 2003-03-31  Havoc Pennington  <hp@redhat.com>
10888
10889         * dbus/Makefile.am (INCLUDES): use EXPANDED_LOCALSTATEDIR to
10890         define DBUS_SYSTEM_BUS_PATH as we want to compile in the same
10891         final location that lands in the config file
10892
10893         * bus/config-loader-expat.c (bus_config_load): fix type of
10894         XML_Parser variable
10895
10896         * doc/TODO: remove TODO item for dbus_bus_get()
10897
10898         * dbus/dbus-bus.c (bus_data_free): add missing lock/unlock
10899
10900 2003-03-31  Havoc Pennington  <hp@pobox.com>
10901
10902         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_domain_socket)
10903         (_dbus_transport_new_for_tcp_socket): these didn't need the "server"
10904         argument since they are always client side
10905
10906         * dbus/dbus-server.c (dbus_server_get_address): new function
10907
10908         * bus/main.c (main): take the configuration file as an argument.
10909
10910         * test/data/valid-config-files/debug-allow-all.conf: new file to
10911         use with dispatch.c tests for example
10912
10913         * bus/test-main.c (main): require test data dir
10914
10915         * bus/bus.c (bus_context_new): change this to take a
10916         configuration file name as argument
10917
10918         * doc/config-file.txt (Elements): add <servicedir>
10919
10920         * bus/system.conf, bus/session.conf: new files
10921
10922         * dbus/dbus-bus.c (dbus_bus_get): look for system bus on
10923         well-known socket if none set
10924
10925         * configure.in: create system.conf and session.conf
10926
10927 2003-03-30  Havoc Pennington  <hp@pobox.com>
10928
10929         * bus/config-parser.c: hacking
10930
10931         * dbus/dbus-memory.c: don't use DBusList for the list of stuff
10932         to shut down, since it could cause weirdness with the DBusList
10933         lock
10934
10935         * dbus/dbus-list.c (_dbus_list_test): add tests for the
10936         link-oriented stack routines
10937         (alloc_link): free the mempool if the first alloc from it fails
10938
10939         * dbus/dbus-mempool.c (struct DBusMemBlock): fix alignment issue
10940
10941         * dbus/dbus-string.c (UNICODE_VALID): sync new version of this
10942         from GLib
10943         (_dbus_string_skip_white): new
10944
10945         * doc/config-file.txt (Elements): add <includedir>
10946
10947 2003-03-28  Havoc Pennington  <hp@pobox.com>
10948
10949         * dbus/dbus-string.c (_dbus_string_copy_data_len)
10950         (_dbus_string_copy_data): new functions
10951
10952 2003-03-28  Anders Carlsson  <andersca@codefactory.se>
10953
10954         * dbus/dbus-bus.c: (bus_data_free), (dbus_bus_get):
10955         * dbus/dbus-bus.h:
10956         Add dbus_bus_get.
10957
10958         * dbus/dbus-memory.c:
10959         Fix a doc comment.
10960
10961 2003-03-28  Havoc Pennington  <hp@pobox.com>
10962
10963         * bus/test.c (bus_test_flush_bus): remove the sleep from here,
10964         I think it may have just been superstition. Not sure.
10965
10966         * dbus/dbus-string.c (_dbus_string_base64_decode): catch some OOM
10967         failures that were not being handled.
10968
10969         * dbus/dbus-auth.c (process_auth): fix a memleak in OOM handling
10970
10971         * dbus/dbus-memory.c: add ability to set number of mallocs in a
10972         row that will fail on out-of-memory.
10973
10974         * dbus/dbus-internals.c (_dbus_test_oom_handling): convenience
10975         function for testing out-of-memory handling.
10976
10977         * bus/config-loader-expat.c (memsuite): don't wrap the dbus
10978         allocation functions, they do map exactly to the expat ones.
10979
10980 2003-03-27  Havoc Pennington  <hp@redhat.com>
10981
10982         * bus/config-loader-libxml.c (bus_config_load): add another error
10983         check
10984
10985 2003-03-26  Anders Carlsson  <andersca@codefactory.se>
10986
10987         * doc/TODO:
10988         Add note about automatic service activation.
10989
10990         * doc/dbus-specification.sgml:
10991         Rename the specification and clarify a few things.
10992
10993 2003-03-26  Anders Carlsson  <andersca@codefactory.se>
10994
10995         * Doxyfile.in:
10996         * dbus/dbus-address.c:
10997         * dbus/dbus-dict.c:
10998         * dbus/dbus-marshal.c:
10999         * dbus/dbus-server-debug-pipe.c:
11000         * dbus/dbus-transport-unix.c:
11001         Fix documentation warnings.
11002
11003 2003-03-26  Havoc Pennington  <hp@pobox.com>
11004
11005         * bus/test-main.c, dbus/dbus-test.c (main): check memleaks
11006         after every test so it's quick and easy to see which leaked, and
11007         so we test multiple dbus_shutdown() calls
11008
11009         * configure.in: change configure.in XML stuff to also support
11010         expat
11011
11012         * config-loader-libxml.c: some hacking
11013
11014         * config-loader-expat.c: some hacking
11015
11016         * config-parser.c: some hacking, plus tests
11017
11018 2003-03-25  Havoc Pennington  <hp@redhat.com>
11019
11020         * throughout - add more _DBUS_ASSERT_ERROR_IS_CLEAR
11021
11022         * configure.in: add --with-xml option to specify XML library,
11023         right now only libxml is supported.
11024
11025         * bus/config-loader-libxml.c, config-parser.c: sync some minor
11026         nonworking code between home and work, still just stubs
11027
11028 2003-03-24  Havoc Pennington  <hp@redhat.com>
11029
11030         * dbus/dbus-sysdeps.c (_dbus_set_fd_nonblocking): move to this
11031         file
11032
11033         * dbus/dbus-errors.c (dbus_set_error, dbus_set_error_const): allow
11034         NULL argument for "message" if the error is a well-known one,
11035         fill in a generic message in this case.
11036
11037         * dbus/dbus-errors.h (DBusResultCode): Kill DBusResultCode in
11038         favor of DBusError
11039
11040         * bus/test.c (bus_test_flush_bus): add
11041
11042         * bus/policy.c (bus_policy_test): test code stub
11043
11044 2003-03-24  Havoc Pennington  <hp@pobox.com>
11045
11046         * bus/connection.c (bus_connections_setup_connection): set up
11047         the "can this user connect" function, but it always returns
11048         TRUE until we have a config file parser so we can have a config
11049         file that allows connections.
11050
11051 2003-03-23  Havoc Pennington  <hp@pobox.com>
11052
11053         * dbus/dbus-threads.c (dbus_mutex_new, dbus_condvar_new): with
11054         DBUS_BUILD_TESTS, actually alloc/free a block of memory for
11055         the mutex, so we can check for proper memory management
11056         and OOM handling.
11057
11058         * dbus/dbus-dataslot.c: remove the mutex from
11059         DBusDataSlotAllocator and lock it manually when using it,
11060         to simplify fitting it into the global slots framework.
11061
11062         * dbus/dbus-threads.c (init_static_locks): rework how we're
11063         handling global locks so they are easily shut down.
11064
11065         * bus/policy.c (bus_policy_append_rule): fix
11066
11067         * bus/test-main.c (main): check for memleaks
11068
11069         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): make
11070         test suite check for memleaks
11071
11072         * dbus/dbus-memory.c: add support in test mode for tracking
11073         number of outstanding blocks
11074
11075 2003-03-23  Havoc Pennington  <hp@pobox.com>
11076
11077         * bus/policy.c, bus/bus.c, bus/connection.c: implement allow/deny
11078         policies code
11079
11080         * dbus/dbus-hash.h: add ULONG hash keys
11081
11082         * dbus/dbus-sysdeps.c (_dbus_get_groups): new
11083         (_dbus_get_group_id): new function
11084
11085 2003-03-20  Havoc Pennington  <hp@redhat.com>
11086
11087         * dbus/dbus-connection.c (dbus_connection_set_unix_user_function):
11088         new function
11089         (dbus_connection_get_unix_user): new function
11090
11091 2003-03-20  Havoc Pennington  <hp@pobox.com>
11092
11093         * bus/connection.c (bus_connection_send_oom_error): assert that
11094         message has a sender
11095         (connection_execute_transaction): ditto
11096         (bus_connection_preallocate_oom_error): fix to set the sender, and
11097         set recipient to the destination service, not the bus driver
11098
11099         * bus/policy.c: hacking
11100
11101         * dbus/dbus-message.c (dbus_message_service_is): new function
11102         (dbus_message_sender_is): new
11103
11104 2003-03-19  Havoc Pennington  <hp@redhat.com>
11105
11106         * bus/policy.c: start sketching code for policy restrictions on
11107         what connections can do.
11108
11109 2003-03-18  Havoc Pennington  <hp@redhat.com>
11110
11111         * doc/TODO: some notes on high-level todo items. Little nitpick
11112         stuff is all in @todo, so no need to add it here.
11113
11114         * doc/config-file.txt: some notes on how config file might look
11115
11116 2003-03-18  Anders Carlsson  <andersca@codefactory.se>
11117
11118         * configure.in: 0.6
11119
11120         * NEWS: Update.
11121
11122 2003-03-17  Havoc Pennington  <hp@redhat.com>
11123
11124         * dbus/dbus-internals.h: add gcc attributes so that
11125         our printf-style functions warn on bad arguments to
11126         format
11127
11128         * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): fix printf
11129         format bug
11130
11131         * dbus/dbus-message.c (_dbus_message_loader_queue_messages): fix
11132         printf format bug
11133
11134 2003-03-17  Havoc Pennington  <hp@redhat.com>
11135
11136         * bus/test-main.c (main): make it print something as it runs
11137         so make check doesn't look stuck
11138
11139         * doc/negotiation.txt, doc/dbus-sasl-profile.txt: remove
11140         from CVS, now obsolete
11141
11142 2003-03-17  Anders Carlsson  <andersca@codefactory.se>
11143
11144         * bus/dispatch.c: (bus_dispatch):
11145         Refetch the service name since it may have been reallocated
11146         when dbus_message_set_sender was called.
11147
11148         * dbus/dbus-sysdeps.c: (_dbus_accept):
11149         Add address and address length variables and use them to stop
11150         valgrind from complaining.
11151
11152 2003-03-17  Havoc Pennington  <hp@pobox.com>
11153
11154         All tests pass, no memleaks, no valgrind complaints.
11155
11156         * bus/test.c: refcount handler_slot
11157
11158         * bus/connection.c (bus_connections_new): refcount
11159         connection_data_slot
11160
11161         * dbus/dbus-auth-script.c (_dbus_auth_script_run): delete unused
11162         bytes so that auth scripts pass.
11163
11164         * bus/dispatch.c: init message_handler_slot so it gets allocated
11165         properly
11166
11167         * bus/dispatch.c (message_handler_slot_ref): fix memleak
11168
11169         * dbus/dbus-server-debug-pipe.c (_dbus_server_debug_pipe_new):
11170         dealloc server_pipe_hash when no longer used for benefit of
11171         leak checking
11172
11173         * dbus/dbus-auth.c (process_command): memleak fix
11174
11175         * bus/dispatch.c (check_hello_message): memleak fix
11176
11177 2003-03-16  Havoc Pennington  <hp@pobox.com>
11178
11179         * dbus/dbus-bus.c (ensure_bus_data): fix double-unref of the data slot
11180
11181 2003-03-17  Anders Carlsson  <andersca@codefactory.se>
11182
11183         * bus/activation.c (bus_activation_activate_service): Append
11184         the pending activation entry to the list of pending activations.
11185
11186 2003-03-16  Havoc Pennington  <hp@pobox.com>
11187
11188         * bus/dispatch.c (bus_dispatch_test): remove double-unrefs of
11189         connections
11190
11191         * dbus/dbus-address.c (create_entry): fix OOM handling when
11192         failing to alloc entry->method
11193
11194 2003-03-16  Havoc Pennington  <hp@pobox.com>
11195
11196         * dbus/dbus-watch.c (_dbus_watch_new): handle failure to malloc
11197         the watch
11198
11199         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
11200         add some missing dbus_set_result
11201
11202         * bus/dispatch.c (bus_dispatch_add_connection): handle failure to
11203         alloc the DBusMessageHandler
11204
11205         * dbus/dbus-transport.c (_dbus_transport_disconnect): don't ref
11206         the transport here, since we call this from the finalizer; it
11207         resulted in a double-finalize.
11208
11209         * dbus/dbus-transport.c (_dbus_transport_disconnect): fix a bug
11210         where we tried to use transport->connection that was NULL,
11211         happened when transport was disconnected early on due to OOM
11212
11213         * bus/*.c: adapt to handle OOM for watches/timeouts
11214
11215         * dbus/dbus-transport-unix.c: port to handle OOM during
11216         watch handling
11217
11218         * dbus/dbus-auth.c (_dbus_auth_get_unused_bytes): return a
11219         reference to unused bytes instead of a copy
11220
11221         * dbus/dbus-server.c (dbus_server_handle_watch): return FALSE for
11222         out of memory
11223
11224         * dbus/dbus-connection.c (dbus_connection_handle_watch): return
11225         FALSE on OOM
11226
11227         * dbus/dbus-timeout.c (dbus_timeout_handle): return FALSE for out
11228         of memory
11229
11230 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
11231
11232         * doc/dbus-specification.sgml:
11233         Document reply message for ActivateService.
11234
11235 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
11236
11237         * bus/activation.c: (bus_pending_activation_entry_free),
11238         (bus_pending_activation_free), (bus_activation_new),
11239         (bus_activation_unref), (bus_activation_service_created),
11240         (bus_activation_activate_service):
11241         * bus/activation.h:
11242         * bus/bus.c: (bus_context_new):
11243         * bus/desktop-file.c: (new_section):
11244         * bus/driver.c: (bus_driver_send_service_deleted),
11245         (bus_driver_handle_activate_service):
11246         * bus/services.c: (bus_registry_new), (bus_registry_ensure):
11247         * bus/services.h:
11248         * dbus/dbus-connection.c:
11249         (dbus_connection_send_with_reply_and_block):
11250         * dbus/dbus-message.c: (dbus_message_append_args_valist):
11251         * dbus/dbus-protocol.h:
11252         Make activation work better. Now pending activations will be queued
11253         and the daemon won't try to activate services that are already registered.
11254
11255 2003-03-16  Havoc Pennington  <hp@pobox.com>
11256
11257         * dbus/dbus-bus.c (ensure_bus_data): handle failure to set
11258         connection data
11259
11260         * dbus/dbus-memory.c (_dbus_initialize_malloc_debug): support
11261         DBUS_MALLOC_BACKTRACES to print trace when failing an alloc
11262
11263 2003-03-16  Havoc Pennington  <hp@pobox.com>
11264
11265         * dbus/dbus-string.c (_dbus_string_validate_utf8): oops, unbreak
11266         this. always run the test suite before commit...
11267
11268         * bus/*: adapt to DBusConnection API changes
11269
11270         * glib/dbus-gmain.c: adapt to DBusConnection API changes,
11271         requires renaming stuff to avoid dbus_connection_dispatch name
11272         conflict.
11273
11274         * dbus/dbus-transport.c (_dbus_transport_queue_messages): new
11275         function
11276
11277         * dbus/dbus-message.c (_dbus_message_loader_queue_messages):
11278         separate from _dbus_message_loader_return_buffer()
11279
11280         * dbus/dbus-connection.c (dbus_connection_get_n_messages): remove
11281         this, because it's now always broken to use; the number of
11282         messages in queue vs. the number still buffered by the message
11283         loader is undefined/meaningless. Should use
11284         dbus_connection_get_dispatch_state().
11285         (dbus_connection_dispatch): rename from
11286         dbus_connection_dispatch_message
11287
11288 2003-03-16  Havoc Pennington  <hp@pobox.com>
11289
11290         * dbus/dbus-string.c (_dbus_string_validate_utf8): copy in a real
11291         implementation
11292
11293 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
11294
11295         * dbus/dbus-connection.c:
11296         (dbus_connection_send_with_reply_and_block):
11297         Decrease connection->n_incoming when removing an entry
11298         from the list.
11299         * dbus/dbus-dict.c: (dbus_dict_entry_free),
11300         (dbus_dict_set_boolean_array), (dbus_dict_set_int32_array),
11301         (dbus_dict_set_uint32_array), (dbus_dict_set_double_array),
11302         (dbus_dict_set_byte_array), (dbus_dict_set_string_array),
11303         (dbus_dict_get_boolean_array), (dbus_dict_get_double_array),
11304         (dbus_dict_get_byte_array):
11305         Handle NULL arrays and strings. Also add support for byte arrays.
11306
11307         * dbus/dbus-marshal.c: (_dbus_marshal_byte_array),
11308         (_dbus_marshal_dict), (_dbus_demarshal_byte_array),
11309         (_dbus_demarshal_int32_array), (_dbus_demarshal_uint32_array),
11310         (_dbus_demarshal_double_array), (_dbus_demarshal_string_array),
11311         (_dbus_demarshal_dict), (demarshal_and_validate_len),
11312         (_dbus_marshal_validate_arg), (_dbus_marshal_test):
11313         * dbus/dbus-marshal.h:
11314         Add support for marshalling and demarshalling empty arrays and strings.
11315
11316         * dbus/dbus-message.c: (dbus_message_append_args_valist),
11317         (dbus_message_append_string_array),
11318         (dbus_message_iter_get_boolean),
11319         (dbus_message_iter_get_boolean_array),
11320         (dbus_message_iter_get_int32_array),
11321         (dbus_message_iter_get_uint32_array),
11322         (dbus_message_iter_get_double_array),
11323         (dbus_message_iter_get_byte_array),
11324         (dbus_message_iter_get_string_array), (dbus_message_iter_get_dict),
11325         (check_message_handling):
11326         Add support for getting empty arrays and dicts.
11327
11328         * dbus/dbus-string.c: (_dbus_string_validate_utf8):
11329         Don't do any validation at all for now, that's better than just checking
11330         for ASCII.
11331
11332         * test/data/valid-messages/emptiness.message:
11333         New test message with lots of empty arrays.
11334
11335 2003-03-16  Havoc Pennington  <hp@pobox.com>
11336
11337         * dbus/dbus-connection.c
11338         (_dbus_connection_queue_received_message_link): new function that
11339         can't fail due to OOM
11340
11341         * dbus/dbus-message.c (_dbus_message_loader_pop_message_link):
11342         new function pops a message together with a list link
11343         containing it.
11344
11345         * dbus/dbus-transport-unix.c (queue_messages): use new link-based
11346         message queuing functions to avoid needing to alloc memory
11347
11348 2003-03-16  Havoc Pennington  <hp@pobox.com>
11349
11350         Oops - test code was only testing failure of around 30 of the
11351         mallocs in the test path, but it turns out there are 500+
11352         mallocs. I believe this was due to misguided linking setup such
11353         that there was one copy of dbus_malloc etc. in the daemon and one
11354         in the shared lib, and only daemon mallocs were tested. In any
11355         case, the test case now tests all 500+ mallocs, and doesn't pass
11356         yet, though there are lots of fixes in this patch.
11357
11358         * dbus/dbus-connection.c (dbus_connection_dispatch_message): fix
11359         this so that it doesn't need to allocate memory, since it
11360         has no way of indicating failure due to OOM (and would be
11361         annoying if it did).
11362
11363         * dbus/dbus-list.c (_dbus_list_pop_first_link): new function
11364
11365         * bus/Makefile.am: rearrange to create two self-contained
11366         libraries, to avoid having libraries with overlapping symbols.
11367         that was resulting in weirdness, e.g. I'm pretty sure there
11368         were two copies of global static variables.
11369
11370         * dbus/dbus-internals.c: move the malloc debug stuff to
11371         dbus-memory.c
11372
11373         * dbus/dbus-list.c (free_link): free list mempool if it becomes
11374         empty.
11375
11376         * dbus/dbus-memory.c (_dbus_disable_mem_pools): new function
11377
11378         * dbus/dbus-address.c (dbus_parse_address): free list nodes
11379         on failure.
11380
11381         * bus/dispatch.c (bus_dispatch_add_connection): free
11382         message_handler_slot when no longer using it, so
11383         memory leak checkers are happy for the test suite.
11384
11385         * dbus/dbus-server-debug-pipe.c (debug_finalize): free server name
11386
11387         * bus/bus.c (new_connection_callback): disconnect in here if
11388         bus_connections_setup_connection fails.
11389
11390         * bus/connection.c (bus_connections_unref): fix to free the
11391         connections
11392         (bus_connections_setup_connection): if this fails, don't
11393         disconnect the connection, just be sure there are no side
11394         effects.
11395
11396         * dbus/dbus-string.c (undo_alignment): unbreak this
11397
11398         * dbus/dbus-auth.c (_dbus_auth_unref): free some stuff we were
11399         leaking
11400         (_dbus_auth_new): fix the order in which we free strings
11401         on OOM failure
11402
11403         * bus/connection.c (bus_connection_disconnected): fix to
11404         not send ServiceDeleted multiple times in case of memory
11405         allocation failure
11406
11407         * dbus/dbus-bus.c (dbus_bus_get_base_service): new function to
11408         get the base service name
11409         (dbus_bus_register_client): don't return base service name,
11410         instead store it on the DBusConnection and have an accessor
11411         function for it.
11412         (dbus_bus_register_client): rename dbus_bus_register()
11413
11414         * bus/dispatch.c (check_hello_message): verify that other
11415         connections on the bus also got the correct results, not
11416         just the one sending hello
11417
11418 2003-03-15  Havoc Pennington  <hp@pobox.com>
11419
11420         Make it pass the Hello handling test including all OOM codepaths.
11421         Now to do other messages...
11422
11423         * bus/services.c (bus_service_remove_owner): fix crash when
11424         removing owner from an empty list of owners
11425         (bus_registry_ensure): don't leave service in the list of
11426         a connection's owned services if we fail to put the service
11427         in the hash table.
11428
11429         * bus/connection.c (bus_connection_preallocate_oom_error): set
11430         error flag on the OOM error.
11431
11432         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
11433         handle _dbus_transport_set_connection failure
11434
11435         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd): modify
11436         to create watches up front and simply enable/disable them as
11437         needed.
11438         (unix_connection_set): this can now fail on OOM
11439
11440         * dbus/dbus-timeout.c, dbus/dbus-watch.c: add concept
11441         of enabling/disabling a watch or timeout.
11442
11443         * bus/loop.c (bus_loop_iterate): don't touch disabled
11444         watches/timeouts
11445
11446         * glib/dbus-gmain.c: adapt to enable/disable watches and timeouts
11447
11448 2003-03-15  Havoc Pennington  <hp@pobox.com>
11449
11450         * bus/dispatch.c (bus_dispatch_test): OK, now finally actually
11451         write useful test code, after all that futzing around ;-)
11452
11453         Test does not yet pass because we can't handle OOM in
11454         _dbus_transport_messages_pending (basically,
11455         dbus_connection_preallocate_send() does not prealloc the write
11456         watch). To fix this, I think we need to add new stuff to
11457         set_watch_functions, namely a SetEnabled function so we can alloc
11458         the watch earlier, then enable it later.
11459
11460         * dbus/Makefile.am (libdbus_convenience_la_SOURCES): move
11461         dbus-memory.c to the convenience lib
11462
11463         * bus/test.c: rename some static functions to keep them clearly
11464         distinct from stuff in connection.c. Handle client disconnection.
11465
11466 2003-03-14  Havoc Pennington  <hp@pobox.com>
11467
11468         * bus/dispatch.c (bus_dispatch_test): do test using debug-pipe
11469         transport, tests more of the real codepath. Set up clients
11470         with bus_setup_debug_client.
11471
11472         * bus/test.c (bus_setup_debug_client): function to set up debug
11473         "clients" on the main loop
11474
11475         * dbus/dbus-transport.c (_dbus_transport_open): add debug-pipe
11476         support
11477
11478         * dbus/dbus-server.c (dbus_server_listen): add debug-pipe
11479         server type
11480
11481         * dbus/dbus-server-debug.c: support a debug server based on pipes
11482
11483         * dbus/dbus-sysdeps.c (_dbus_full_duplex_pipe): new function
11484         (_dbus_close): new function
11485
11486         * configure.in: check for socketpair
11487
11488 2003-03-14  Havoc Pennington  <hp@redhat.com>
11489
11490         * dbus/dbus-memory.c: add a "detect buffer overwrites on free"
11491         cheesy hack
11492
11493         * dbus/dbus-transport-debug.c: rework this a good bit to be
11494         less complicated. hopefully still works.
11495
11496         * dbus/dbus-server-debug.c (handle_new_client): remove timeout
11497         manually
11498
11499         * glib/dbus-gmain.c (timeout_handler): don't remove timeout
11500         after running it
11501
11502         * dbus/dbus-message.c (dbus_message_copy): rename from
11503         dbus_message_new_from_message, fix it up to copy
11504         all the message fields, add test case
11505
11506         * bus/dispatch.c (bus_dispatch_test): add some more test code,
11507         not quite passing yet
11508
11509 2003-03-14  Havoc Pennington  <hp@pobox.com>
11510
11511         * bus/loop.c (bus_loop_iterate): add this so we can "run loop
11512         until no work remains" in test code. (the large diff here
11513         is just code movement, no actual changes)
11514
11515         * dbus/dbus-server-debug.c (DEFAULT_INTERVAL): change interval to
11516         1, no point waiting around for test code.
11517         (_dbus_server_debug_accept_transport): unref the timeout
11518         after adding it (right?)
11519
11520         * dbus/dbus-transport-debug.c (DEFAULT_INTERVAL): ditto
11521
11522 2003-03-13  Havoc Pennington  <hp@redhat.com>
11523
11524         * dbus/dbus-timeout.c (_dbus_timeout_list_set_functions): handle
11525         out of memory
11526
11527         * dbus/dbus-watch.c (_dbus_watch_list_set_functions): handle out
11528         of memory
11529
11530         * dbus/dbus-connection.h: Make AddWatchFunction and
11531         AddTimeoutFunction return a bool so they can fail on out-of-memory
11532
11533         * bus/bus.c (bus_context_new): set up timeout handlers
11534
11535         * bus/connection.c (bus_connections_setup_connection): set up
11536         timeout handlers
11537
11538         * glib/dbus-gmain.c: adapt to the fact that set_functions stuff
11539         can fail
11540
11541         * bus/bus.c (bus_context_new): adapt to changes
11542
11543         * bus/connection.c: adapt to changes
11544
11545         * test/watch.c: adapt to DBusWatch changes
11546
11547         * bus/dispatch.c (bus_dispatch_test): started adding this but
11548         didn't finish
11549
11550 2003-03-14  Anders Carlsson  <andersca@codefactory.se>
11551
11552         * bus/dispatch.c (send_service_nonexistent_error): Fix typo.
11553
11554 2003-03-13  Havoc Pennington  <hp@pobox.com>
11555
11556         * bus/test.c, bus/test.h, bus/Makefile.am, bus/test-main.c:
11557         set up a test framework as for the library
11558
11559 2003-03-12  Havoc Pennington  <hp@pobox.com>
11560
11561         Throughout: purge global variables, introduce BusActivation,
11562         BusConnections, BusRegistry, etc. objects instead.
11563
11564         * bus/bus.h, bus/bus.c: introduce BusContext as a global
11565         message bus object
11566
11567         * test/Makefile.am (TEST_BINARIES): disable bus-test for now,
11568         going to redo this a bit differently I think
11569
11570 2003-03-12  Havoc Pennington  <hp@redhat.com>
11571
11572         Mega-patch that gets the message bus daemon initially handling
11573         out-of-memory. Work still needed. Also lots of random
11574         moving stuff to DBusError instead of ResultCode.
11575
11576         * dbus/dbus-list.c (_dbus_list_length_is_one): new function
11577
11578         * dbus/dbus-connection.c
11579         (dbus_connection_send_with_reply_and_block): use DBusError
11580
11581         * dbus/dbus-bus.c: adapt to API changes, make it use DBusError not
11582         DBusResultCode
11583
11584         * dbus/dbus-connection.c (dbus_connection_send): drop the result
11585         code here, as the only failure possible is OOM.
11586
11587         * bus/connection.c (bus_connection_disconnect):
11588         rename bus_connection_disconnected as it's a notification only
11589
11590         * bus/driver.c (bus_driver_handle_acquire_service): don't free
11591         "name" on get_args failure, should be done by get_args;
11592         don't disconnect client for bad args, just return an error.
11593         (bus_driver_handle_service_exists): ditto
11594
11595         * bus/services.c (bus_services_list): NULL-terminate returned array
11596
11597         * bus/driver.c (bus_driver_send_service_lost)
11598         (bus_driver_send_service_acquired): send messages from driver to a
11599         specific client to the client's unique name, not to the broadcast
11600         service.
11601
11602         * dbus/dbus-message.c (decode_header_data): reject messages that
11603         contain no name field
11604         (_dbus_message_get_client_serial): rename to
11605         dbus_message_get_serial and make public
11606         (_dbus_message_set_serial): rename from set_client_serial
11607         (_dbus_message_set_reply_serial): make public
11608         (_dbus_message_get_reply_serial): make public
11609
11610         * bus/connection.c (bus_connection_foreach): allow stopping
11611         iteration by returning FALSE from foreach function.
11612
11613         * dbus/dbus-connection.c (dbus_connection_send_preallocated)
11614         (dbus_connection_free_preallocated_send)
11615         (dbus_connection_preallocate_send): new API for sending a message
11616         without possibility of malloc failure.
11617         (dbus_connection_send_message): rename to just
11618         dbus_connection_send (and same for whole function family)
11619
11620         * dbus/dbus-errors.c (dbus_error_free): make this reinit the error
11621
11622         * dbus/dbus-sysdeps.c (_dbus_exit): new function
11623
11624         * bus/activation.c: handle/return errors
11625
11626         * dbus/dbus-errors.h: add more DBUS_ERROR #define
11627
11628         * dbus/dbus-sysdeps.c (_dbus_directory_open) (_dbus_file_get_contents)
11629         (_dbus_directory_get_next_file): use DBusError instead of DBusResultCode
11630         (_dbus_result_from_errno): move to this file
11631
11632 2003-03-10  Anders Carlsson  <andersca@codefactory.se>
11633
11634         * dbus/dbus-marshal.c:
11635         (_dbus_marshal_set_string):
11636         Take a length argument so we can marshal the correct string
11637         length.
11638
11639         (_dbus_marshal_dict), (_dbus_demarshal_dict),
11640         (_dbus_marshal_get_arg_end_pos), (_dbus_marshal_validate_arg),
11641         (_dbus_marshal_test):
11642         * dbus/dbus-marshal.h:
11643         Add support for marshalling and demarshalling dicts.
11644
11645         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
11646         Add support for TYPE DICT.
11647
11648         * dbus/dbus-message.c: (set_string_field):
11649         Adjust header padding.
11650
11651         (dbus_message_append_args_valist), (dbus_message_append_dict),
11652         (dbus_message_get_args_valist), (dbus_message_iter_get_arg_type),
11653         (dbus_message_iter_get_dict), (_dbus_message_loader_return_buffer),
11654         (check_message_handling), (check_have_valid_message):
11655         * dbus/dbus-message.h:
11656         Add functions for setting and getting dicts.
11657
11658         * dbus/dbus-protocol.h:
11659         Add DBUS_TYPE_DICT.
11660
11661         * dbus/dbus.h:
11662         Add dbus-dict.h
11663
11664         * doc/dbus-specification.sgml:
11665         Add information about how dicts are marshalled.
11666
11667         * test/data/invalid-messages/dict-with-nil-value.message:
11668         * test/data/invalid-messages/too-short-dict.message:
11669         * test/data/valid-messages/dict-simple.message:
11670         * test/data/valid-messages/dict.message:
11671         Add sample messages containing dicts.
11672
11673 2003-03-08  Anders Carlsson  <andersca@codefactory.se>
11674
11675         * dbus/dbus-dict.h: Add DBUS_END_DECLS.
11676
11677 2003-03-07  Anders Carlsson  <andersca@codefactory.se>
11678
11679         * dbus/Makefile.am:
11680         * dbus/dbus-dict.c: (dbus_dict_entry_free), (dbus_dict_new),
11681         (dbus_dict_get_keys), (insert_entry), (dbus_dict_set_boolean),
11682         (dbus_dict_set_int32), (dbus_dict_set_uint32),
11683         (dbus_dict_set_double), (dbus_dict_set_string),
11684         (dbus_dict_set_boolean_array), (dbus_dict_set_int32_array),
11685         (dbus_dict_set_uint32_array), (dbus_dict_set_double_array),
11686         (dbus_dict_set_string_array), (_dbus_dict_test):
11687         * dbus/dbus-dict.h:
11688         Fix according to comments from Havoc.
11689
11690 2003-03-06  Michael Meeks  <michael@server.home>
11691
11692         * configure.in: if we don't have kde-config, disable have_qt.
11693
11694 2003-03-07  Anders Carlsson  <andersca@codefactory.se>
11695
11696         * dbus/Makefile.am:
11697         Add dbus-dict.[ch]
11698
11699         * dbus/dbus-dict.c: (dbus_dict_entry_free), (dbus_dict_new),
11700         (dbus_dict_ref), (dbus_dict_unref), (dbus_dict_contains),
11701         (dbus_dict_remove), (dbus_dict_get_value_type),
11702         (dbus_dict_get_keys), (dbus_dict_put_boolean),
11703         (dbus_dict_put_int32), (dbus_dict_put_uint32),
11704         (dbus_dict_put_double), (dbus_dict_put_string),
11705         (dbus_dict_put_boolean_array), (dbus_dict_put_int32_array),
11706         (dbus_dict_put_uint32_array), (dbus_dict_put_double_array),
11707         (dbus_dict_put_string_array), (dbus_dict_get_boolean),
11708         (dbus_dict_get_int32), (dbus_dict_get_uint32),
11709         (dbus_dict_get_double), (dbus_dict_get_string),
11710         (dbus_dict_get_boolean_array), (dbus_dict_get_int32_array),
11711         (dbus_dict_get_uint32_array), (dbus_dict_get_double_array),
11712         (dbus_dict_get_string_array), (_dbus_dict_test):
11713         * dbus/dbus-dict.h:
11714         Add DBusDict implementation
11715
11716         * dbus/dbus-test.c: (dbus_internal_do_not_use_run_tests):
11717         * dbus/dbus-test.h:
11718         Add _dbus_dict_test
11719
11720 2003-03-04  Havoc Pennington  <hp@pobox.com>
11721
11722         * test/data/auth/*: adapt to changes
11723
11724         * dbus/dbus-auth-script.c (_dbus_auth_script_run): add
11725         USERID_BASE64 and change USERNAME_BASE64 to put in username not
11726         userid
11727
11728         * dbus/dbus-keyring.c (_dbus_keyring_validate_context): prevent
11729         more stuff from being in a context name, to make the protocol
11730         simpler to deal with
11731
11732         * dbus/dbus-errors.c (dbus_error_has_name): new function
11733         (dbus_error_is_set): new function
11734
11735         * dbus/dbus-auth.c: replace DBUS_STUPID_TEST_MECH auth
11736         with DBUS_COOKIE_SHA1, implement DBUS_COOKIE_SHA1
11737
11738         * dbus/dbus-connection.c (dbus_connection_flush): also read
11739         messages during a flush operation
11740
11741         * dbus/Makefile.am: remove dbus-md5 since it isn't currently used.
11742
11743 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
11744
11745         * configure.in: Check for gethostbyname on Solaris.
11746
11747         * dbus/dbus-transport.c: (_dbus_transport_open):
11748         Remove duplicate "tcp" entry.
11749
11750         * doc/dbus-specification.sgml:
11751         Clarify some things.
11752
11753 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
11754
11755         * dbus/dbus-auth.c: (send_rejected), (process_test_subdir):
11756         * dbus/dbus-keyring.c: (_dbus_keyring_new_homedir),
11757         (_dbus_keyring_test):
11758         * dbus/dbus-md5.c: (_dbus_md5_compute):
11759         * dbus/dbus-sha.c: (_dbus_sha_compute):
11760         Plug memory leaks.
11761
11762 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
11763
11764         * README: Add some things.
11765
11766 2003-03-04  Anders Carlsson  <andersca@codefactory.se>
11767
11768         * dbus/dbus-message.c (dbus_message_append_args_valist): Add a break;
11769         after case DBUS_TYPE_BOOELAN.
11770
11771 2003-03-02  Havoc Pennington  <hp@pobox.com>
11772
11773         * test/break-loader.c (randomly_set_extreme_ints): add test that
11774         sets really huge and small integers
11775
11776         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): add check
11777         that length of boolean array fits in the string, and that
11778         string has room for boolean value in single-bool case.
11779
11780         * dbus/dbus-message-builder.c (_dbus_message_data_load): add
11781         optional value to "ALIGN" command which is what to fill the
11782         alignment with.
11783
11784         * test/data/valid-messages/no-padding.message: add regression
11785         test for the message padding problem
11786
11787 2003-03-02  Havoc Pennington  <hp@pobox.com>
11788
11789         * dbus/dbus-message.c (decode_header_data): fix to always init
11790         message_padding, from Benjamin Dauvergne
11791
11792 2003-03-02  Havoc Pennington  <hp@pobox.com>
11793
11794         * configure.in: 0.5
11795
11796         * NEWS: Update.
11797
11798 2003-03-01  Joe Shaw  <joe@assbarn.com>
11799
11800         * configure.in: Check for "struct cmsgcred" and try to access its
11801         members for BSD-like unices.
11802
11803         * dbus/dbus-sysdeps.c (read_credentials_byte): Fold this back into
11804         _dbus_read_credentials_unix_socket().
11805         (_dbus_read_credentials_unix_socket): Use recvmsg() instead of
11806         read() for reading the credential byte off the unix socket.  Use
11807         struct cmsgcred on systems that support it.
11808
11809 2003-02-27  Alexander Larsson  <alexl@redhat.com>
11810
11811         * glib/Makefile.am:
11812         * configure.in:
11813         Make gthreads-2.0 dependency optional. Don't build thread test if
11814         its not found.
11815
11816 2003-02-27  Havoc Pennington  <hp@pobox.com>
11817
11818         * dbus/dbus-connection.c
11819         (dbus_connection_send_message_with_reply_and_block): fix doh!
11820         doh! doh! bug that resulted in never removing a reply from the
11821         queue, no wonder we called get_reply_serial so much ;-)
11822
11823         * dbus/dbus-message.c (struct DBusMessage): cache reply serial
11824         and client serial instead of demarshaling them every time
11825
11826 2003-02-27  Havoc Pennington  <hp@pobox.com>
11827
11828         * dbus/dbus-marshal.c (_dbus_demarshal_int32): rewrite to be much
11829         more inlined, using dbus-string-private.h, speeds things up
11830         substantially
11831
11832         * dbus/dbus-string.c (_dbus_string_free): apply align offset
11833         when freeing the string
11834         (_dbus_string_steal_data): fix for align offset
11835         (undo_alignment): new function
11836
11837 2003-02-26  Havoc Pennington  <hp@redhat.com>
11838
11839         All kinds of audit fixes from Owen, plus initial attempt to
11840         handle unaligned memory returned from malloc.
11841
11842         * dbus/dbus-string.c (_dbus_string_init): clamp max length to
11843         leave room for align_offset and nul byte
11844         (fixup_alignment): function to track an align_offset and
11845         ensure real->str is aligned
11846         (DBUS_GENERIC_STRING_PREAMBLE): len must be less than allocated,
11847         to allow a nul byte plus align offset
11848         (_dbus_string_lock): fix overflow issue
11849         (_dbus_string_init_const_len): add assertions on sanity of len,
11850         assign allocated to be ALLOCATION_PADDING larger than len
11851         (set_length): fixup the overflow handling
11852         (_dbus_string_get_data_len): fix overflow in assertion
11853         (open_gap): detect overflow in size of gap to be opened
11854         (_dbus_string_lengthen): add overflow check
11855         (_dbus_string_align_length): fix overflow with _DBUS_ALIGN_VALUE
11856         (_dbus_string_append): add overflow check
11857         (_dbus_string_append_unichar): overflow
11858         (_dbus_string_delete): fix overflow in assertion
11859         (_dbus_string_copy_len): overflow in assertion
11860         (_dbus_string_replace_len): overflows in assertions
11861         (_dbus_string_find): change to implement in terms of
11862         _dbus_string_find_to
11863         (_dbus_string_find_to): assorted fixage
11864         (_dbus_string_equal_c_str): assert c_str != NULL,
11865         fix logic so the function works
11866         (_dbus_string_ends_with_c_str): fix overflow thingy
11867         (_dbus_string_base64_encode): overflow fix
11868         (_dbus_string_validate_ascii): overflow
11869         (_dbus_string_validate_nul): overflow
11870
11871 2003-02-26  Havoc Pennington  <hp@redhat.com>
11872
11873         * dbus/dbus-marshal.c (_dbus_marshal_test): fix to work with DISABLE_ASSERTS
11874
11875 2003-02-26  Alexander Larsson  <alexl@redhat.com>
11876
11877         * configure.in:
11878         Set DBUS_GLIB_THREADS_LIBS for apps using gthread-2.0
11879
11880         * dbus/dbus-connection.c:
11881         * dbus/dbus-connection.h:
11882         Fix _dbus_connection_acquire_io_path and _dbus_connection_acquire_dispatch.
11883         Add dbus_connection_set_wakeup_main_function and use it when queueing
11884         incoming and outgoing messages.
11885
11886
11887         * dbus/dbus-dataslot.c:
11888         Threadsafe usage of DBusDataSlotAllocator
11889
11890         * dbus/dbus-message.c: (dbus_message_get_args_iter):
11891         dbus_new can fail.
11892
11893         * dbus/dbus-server-unix.c:
11894         Add todo comment
11895
11896         * glib/dbus-gmain.c:
11897         Implement the new wakeup functions for glib.
11898
11899         * glib/Makefile.am:
11900         * glib/test-thread-client.c:
11901         * glib/test-thread-server.c:
11902         * glib/test-thread.h:
11903         Initial cut at some thread test code. Not really done yet.
11904
11905 2003-02-26  Havoc Pennington  <hp@pobox.com>
11906
11907         * dbus/dbus-connection.c
11908         (dbus_connection_send_message_with_reply_and_block): fix crash
11909         where we ref'd the outgoing message instead of the returned reply
11910
11911         * dbus/dbus-transport-unix.c (do_authentication): check read watch
11912         at the end of this function, so if we didn't need to read for
11913         authentication, we reinstall it for receiving messages
11914
11915         * dbus/dbus-message.c (dbus_message_new_reply): allow replies to
11916         a NULL sender for peer-to-peer case
11917
11918         * dbus/dbus-transport-unix.c (check_read_watch): handle
11919         !authenticated case correctly
11920
11921         * glib/dbus-gmain.c: add support for DBusServer
11922
11923         * dbus/dbus-server.c: add data slot support
11924
11925         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): check
11926         return values and handle errors
11927
11928         * dbus/dbus-dataslot.c: factor out the data slot stuff from
11929         DBusConnection
11930
11931         * Doxyfile.in (INPUT): add glib subdir
11932
11933         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): rename
11934         setup_with_g_main instead of hookup_with_g_main; write docs
11935
11936 2003-02-24  Anders Carlsson  <andersca@codefactory.se>
11937
11938         * dbus/dbus-marshal.c: (_dbus_marshal_validate_arg):
11939         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
11940         * dbus/dbus-message.c: (dbus_message_append_boolean),
11941         (dbus_message_append_boolean_array),
11942         (dbus_message_get_args_valist), (_dbus_message_test):
11943         * dbus/dbus-message.h:
11944         * doc/dbus-specification.sgml:
11945         Various fixes as pointed out by Havoc.
11946
11947         * test/data/invalid-messages/bad-boolean-array.message:
11948         * test/data/invalid-messages/bad-boolean.message:
11949         Add invalid boolean value test cases.
11950
11951 2003-02-24  Anders Carlsson  <andersca@codefactory.se>
11952
11953         * dbus/dbus-internals.c: (_dbus_type_to_string):
11954         * dbus/dbus-marshal.c: (_dbus_marshal_get_arg_end_pos),
11955         (_dbus_marshal_validate_arg):
11956         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
11957         * dbus/dbus-message.c: (dbus_message_append_args_valist),
11958         (dbus_message_append_boolean), (dbus_message_append_boolean_array),
11959         (dbus_message_get_args_valist), (dbus_message_iter_get_boolean),
11960         (dbus_message_iter_get_int32), (dbus_message_iter_get_uint32),
11961         (dbus_message_iter_get_double),
11962         (dbus_message_iter_get_boolean_array), (message_iter_test):
11963         * dbus/dbus-message.h:
11964         * dbus/dbus-protocol.h:
11965         * doc/dbus-specification.sgml:
11966         * test/data/valid-messages/lots-of-arguments.message:
11967         Add support for boolean and boolean array types.
11968
11969 2003-02-23  Havoc Pennington  <hp@pobox.com>
11970
11971         * dbus/dbus-keyring.c: finish most of this implementation and
11972         simple unit test
11973
11974         * dbus/dbus-errors.c (dbus_set_error_const, dbus_set_error): make
11975         these barf if the error isn't cleared to NULL
11976
11977         * dbus/dbus-sysdeps.c (_dbus_delete_file): set error on failure
11978         (_dbus_create_directory): new function
11979
11980         * dbus/dbus-errors.c (dbus_set_error): fix warning
11981
11982         * dbus/dbus-string.c (_dbus_string_hex_encode): new function
11983         (_dbus_string_hex_decode): new function
11984         (test_hex_roundtrip): test code
11985
11986         * dbus/dbus-sha.c (_dbus_sha_compute): use dbus_string_hex_encode
11987
11988         * dbus/dbus-md5.c (_dbus_md5_compute): use dbus_string_hex_encode
11989
11990         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): make this use
11991         the save-to-temp/rename trick to atomically write the new file
11992         (_dbus_string_parse_uint): new function
11993
11994 2003-02-22  Havoc Pennington  <hp@pobox.com>
11995
11996         * test/Makefile.am (dist-hook): fix dist for test/data/sha-1
11997
11998 2003-02-22  Havoc Pennington  <hp@pobox.com>
11999
12000         * dbus/dbus-message.c (dbus_message_iter_get_string_array):
12001         (dbus_message_iter_get_byte_array): Fix up doxygen warnings
12002
12003         * dbus/dbus-sha.c: add implementation of SHA-1 algorithm
12004
12005         * dbus/test/data/sha-1: add US government test suite for SHA-1
12006
12007 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
12008
12009         * dbus/dbus-marshal.c: (_dbus_demarshal_string_array):
12010         Make string arrays NULL-terminated.
12011
12012         * dbus/dbus-memory.c: (dbus_free_string_array):
12013         * dbus/dbus-memory.h:
12014         New function for freeing NULL-terminated string arrays.
12015
12016         * dbus/dbus-message-builder.c: (append_quoted_string),
12017         (_dbus_message_data_load):
12018         Add support for array types.
12019
12020         * dbus/dbus-message.c: (check_message_handling):
12021         Add more types as test cases.
12022
12023         * dbus/dbus-sysdeps.c: (_dbus_string_parse_int),
12024         (_dbus_string_parse_double):
12025         Add the start offset to the end offset.
12026
12027         * test/data/valid-messages/lots-of-arguments.message:
12028         New test message with lots of arguments.
12029
12030 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
12031
12032         * dbus/dbus-message.c: (dbus_message_append_nil),
12033         (dbus_message_append_int32), (dbus_message_append_uint32),
12034         (dbus_message_append_double), (dbus_message_append_string),
12035         (dbus_message_append_int32_array),
12036         (dbus_message_append_uint32_array),
12037         (dbus_message_append_double_array),
12038         (dbus_message_append_byte_array),
12039         (dbus_message_append_string_array):
12040         Fix all out-of-memory handling in these functions.
12041
12042 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
12043
12044         * dbus/dbus-message.c: (dbus_message_append_nil):
12045         Fix a silly.
12046
12047 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
12048
12049         * dbus/dbus-message.c: (dbus_message_append_args_valist),
12050         (dbus_message_append_nil), (dbus_message_append_int32_array),
12051         (dbus_message_append_uint32_array),
12052         (dbus_message_append_double_array),
12053         (dbus_message_append_byte_array),
12054         (dbus_message_append_string_array), (dbus_message_get_args_valist),
12055         (dbus_message_iter_get_int32_array),
12056         (dbus_message_iter_get_uint32_array),
12057         (dbus_message_iter_get_double_array),
12058         (dbus_message_iter_get_byte_array),
12059         (dbus_message_iter_get_string_array):
12060
12061         * dbus/dbus-message.h:
12062         Add functions for appending and getting arrays.
12063
12064 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
12065
12066         * dbus/dbus-mempool.c (_dbus_mem_pool_new): Make the
12067         element size at least 8 bytes, fixes mempool tests on
12068         64-bit machines.
12069
12070 2003-02-20  Alexander Larsson  <alexl@redhat.com>
12071
12072         * dbus/dbus-transport-unix.c (unix_do_iteration):
12073         Unlock the connection mutex during a blocking select call.
12074         Add todo about how we need a way to wake up the select.
12075
12076         * dbus/dbus-connection-internal.h:
12077         * dbus/dbus-connection.c:
12078         Add _dbus_connection_lock and _dbus_connection_unlock.
12079
12080 2003-02-19  Havoc Pennington  <hp@pobox.com>
12081
12082         * Doxyfile.in (PREDEFINED): put DOXYGEN_SHOULD_SKIP_THIS in
12083         Doxyfile.in, not Doxyfile
12084
12085         * dbus/dbus-keyring.c: do some hacking on this
12086
12087         * dbus/dbus-sysdeps.c (_dbus_delete_file): new
12088
12089         * dbus/dbus-errors.c (dbus_set_error_const): do not call
12090         dbus_error_init
12091         (dbus_set_error): remove dbus_error_init, check for message ==
12092         NULL *before* we sprintf into it, and add @todo about including
12093         system headers in this file
12094
12095         * dbus/dbus-sysdeps.c (_dbus_create_file_exclusively): new
12096
12097         * dbus/dbus-errors.h (DBUS_ERROR_FAILED): add
12098
12099         * dbus/dbus-sysdeps.c (get_user_info): break this function out to
12100         get various bits of user information based on either username
12101         or user ID
12102         (_dbus_homedir_from_username): new function
12103
12104 2003-02-19  Anders Carlsson  <andersca@codefactory.se>
12105
12106         * configure.in:
12107         Add check for nonposix getpwnam_r
12108
12109         * dbus/dbus-mempool.c: (_dbus_mem_pool_new):
12110         Align the pool element size to a sizeof (void *) boundary.
12111
12112         * dbus/dbus-sysdeps.c: (_dbus_setenv), (_dbus_connect_unix_socket),
12113         (_dbus_listen_unix_socket), (_dbus_credentials_from_username):
12114         General Solaris fixes.
12115
12116         * test/data/valid-messages/simplest-manual.message:
12117         Explicitly state that we want little-endian packing.
12118
12119 2003-02-19  Mikael Hallendal  <micke@codefactory.se>
12120
12121         * dbus/dbus-server.c (dbus_server_listen): Support tcp: addresses.
12122
12123         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_tcp_socket):
12124         Added to create a transport connecting using a tcp/ip socket.
12125
12126         * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): Added to connect
12127         to a tcp socket at given host and port.
12128         (_dbus_listen_tcp_socket): added to listen on tcp socket for given
12129         hostname and port.
12130
12131         * dbus/dbus-server.c (dbus_server_listen): Support tcp: addresses.
12132
12133         * dbus/dbus-server-unix.c (_dbus_server_new_for_tcp_socket):
12134         Added to create a server listening on a TCP/IP socket.
12135
12136 2003-02-19  Havoc Pennington  <hp@pobox.com>
12137
12138         Throughout: mop up all the Doxygen warnings and undocumented
12139         stuff.
12140
12141         * dbus/dbus-sysdeps.c (do_exec): do not use execvp, we don't want
12142         to search any paths.
12143
12144         * dbus/dbus-threads.c: move global mutex initializers to
12145         dbus-internals.h, multiple prototypes was confusing doxygen
12146         besides being kind of ugly
12147
12148         * Doxyfile (PREDEFINED): have Doxygen define
12149         DOXYGEN_SHOULD_SKIP_THIS so we can exclude things from
12150         docs with #ifndef DOXYGEN_SHOULD_SKIP_THIS
12151         (do not abuse the feature! it's for stuff like the autogenerated
12152         macros in dbus-md5.c, not just for things you don't feel like
12153         documenting...)
12154
12155 2003-02-18  Havoc Pennington  <hp@pobox.com>
12156
12157         * dbus/dbus-string.c (_dbus_string_zero): new function
12158
12159         * dbus/dbus-md5.c: include MD5 implementation by L. Peter Deutsch,
12160         wrap it in some dbus-friendly API
12161
12162         * dbus/dbus-types.h: add 16-bit types
12163
12164 2003-02-18  Joe Shaw  <joe@assbarn.com>
12165
12166         * dbus/dbus-auth.c (handle_server_data_stupid_test_mech): Just get
12167         credentials from our currently running process.
12168         (get_word): Fix a buglet where we were copying the entire length
12169         instead of relative to our position.
12170
12171         * dbus/dbus-hash.c (_dbus_hash_test): Don't try to allocate the
12172         keys on the stack... it's 640k of data.
12173
12174         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): Always
12175         read the credentials byte off the socket, even if we don't have
12176         SO_PEERCRED.
12177         (_dbus_poll): Implement poll() using select() for systems which
12178         don't have it.
12179
12180         * glib/test-dbus-glib.c (main): Print out an error if no
12181         parameters are given.
12182
12183         * test/data/auth/fallback.auth-script: Added.  Tests that a client
12184         can fallback to a secondary auth mechanism if the first fails.
12185
12186 2003-02-18  Havoc Pennington  <hp@pobox.com>
12187
12188         * AUTHORS: add Alex
12189
12190 2003-02-17  Havoc Pennington  <hp@pobox.com>
12191
12192         * doc/dbus-specification.sgml: lots of cosmetic
12193         cleanups/rearrangement, add assorted FIXME, change DBUS_ADDRESS
12194         env variable to DBUS_BUS_ADDRESS, s/client/application/,
12195         s/server/bus/ (except in authentication section). Add a section
12196         "Message Bus Message Routing"
12197
12198 2003-02-17  Anders Carlsson  <andersca@codefactory.se.>
12199
12200         Release 0.4
12201
12202         * NEWS: Update
12203
12204 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
12205
12206         * doc/dbus-specification.sgml:
12207         Specification updates.
12208
12209 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
12210
12211         * bus/activation.c: (bus_activation_init), (child_setup),
12212         (bus_activation_activate_service):
12213         * bus/activation.h:
12214         * bus/main.c: (main):
12215         Set DBUS_ADDRESS environment variable.
12216
12217         * dbus/dbus-errors.c: (dbus_set_error):
12218         Don't use va_copy since that's a C99 feature.
12219
12220         * dbus/dbus-sysdeps.c: (_dbus_setenv), (do_exec),
12221         (_dbus_spawn_async):
12222         * dbus/dbus-sysdeps.h:
12223         Add child_setup_func to _dbus_spawn_async.
12224
12225         * doc/dbus-specification.sgml:
12226         Update specification.
12227
12228         * test/spawn-test.c: (setup_func), (main):
12229         Fix test.
12230
12231 2003-02-17  Alexander Larsson  <alexl@redhat.com>
12232
12233         * dbus/dbus-connection.c (_dbus_connection_handler_destroyed_locked):
12234         Added todo.
12235
12236 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
12237
12238         * doc/.cvsignore:
12239         * doc/Makefile.am:
12240         * doc/dbus-test-plan.sgml:
12241         Add test plan document.
12242
12243         * test/Makefile.am:
12244         Fix distcheck.
12245
12246 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
12247
12248         * dbus/dbus-message.c: (decode_header_data),
12249         (_dbus_message_loader_return_buffer):
12250         Set the header padding amount when loading a message.
12251
12252 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
12253
12254         * bus/dispatch.c: (send_one_message):
12255         Only send broadcast messages to registered connections.
12256
12257         * dbus/dbus-message.c: (dbus_message_name_is):
12258         * dbus/dbus-message.h:
12259         New convenience function.
12260
12261         * dbus/dbus-transport-debug.c: (do_reading):
12262         Only dispatch one message per run.
12263
12264         * test/Makefile.am:
12265         * test/bus-test.c: (new_connection_callback), (die),
12266         (test_hello_client1_handler), (test_hello_client2_handler),
12267         (test_hello_replies), (main):
12268
12269         * test/bus-test-loop.[ch]:
12270         Add these.
12271
12272 2003-02-16  Havoc Pennington  <hp@pobox.com>
12273
12274         * dbus/dbus-connection.c (dbus_connection_dispatch_message): fix
12275         backward conditional
12276
12277 2003-02-16  Alexander Larsson  <alexl@redhat.com>
12278
12279         * dbus/dbus-connection.c:
12280         Implement sent_message_with_reply. (with_reply_and block is still
12281         busted).
12282         Made dispatch_message not lose message if OOM.
12283
12284         * dbus/dbus-errors.h:
12285         Add NoReply error (for reply timeouts).
12286
12287 2003-02-16  Alexander Larsson  <alexl@redhat.com>
12288
12289         * dbus/dbus-hash.c (_dbus_hash_table_unref):
12290         Actually free keys and values when destroying hashtable.
12291
12292 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
12293
12294         * dbus/dbus-auth.c: (client_try_next_mechanism):
12295         Plug a leak.
12296
12297         * dbus/dbus-threads.c: (dbus_condvar_wait_timeout):
12298         Return TRUE if there's no thread implementation around.
12299
12300         * glib/dbus-gmain.c: (free_source),
12301         (dbus_connection_hookup_with_g_main):
12302         Make sure to remove the GSource when the connection is finalized.
12303
12304 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
12305
12306         * bus/dispatch.c: (bus_dispatch_message_handler):
12307         * dbus/dbus-errors.h:
12308         Return an error if someone tries to send a message to a service
12309         that doesn't exist.
12310
12311 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
12312
12313         * bus/activation.c: (load_directory), (bus_activation_init),
12314         (bus_activation_activate_service):
12315         * bus/activation.h:
12316         * bus/driver.c:
12317         (bus_driver_handle_activate_service), (bus_driver_handle_message):
12318         More work on the activation handling.
12319
12320         * dbus/dbus-errors.h:
12321         Add some error messages
12322
12323         * dbus/dbus-message.c: (dbus_message_new_error_reply):
12324         * dbus/dbus-message.h:
12325         New function that creates an error message.
12326
12327         * dbus/dbus-protocol.h:
12328         Add ACTIVATE_SERVER message.
12329
12330         * dbus/dbus-server-unix.c: (unix_handle_watch),
12331         (_dbus_server_new_for_domain_socket):
12332         Call _dbus_fd_set_close_on_exec.
12333
12334         * dbus/dbus-sysdeps.c: (make_pipe), (do_exec),
12335         (_dbus_spawn_async), (_dbus_disable_sigpipe),
12336         (_dbus_fd_set_close_on_exec):
12337         * dbus/dbus-sysdeps.h:
12338         Add _dbus_fd_set_close_on exec function. Also add function that checks
12339         that all open fds are set to close-on-exec and warns otherwise.
12340
12341         * dbus/dbus-transport-unix.c:
12342         (_dbus_transport_new_for_domain_socket):
12343         Call _dbus_fd_set_close_on_exec.
12344
12345 2003-02-16  Havoc Pennington  <hp@pobox.com>
12346
12347         * dbus/dbus-connection.c (dbus_connection_set_change_sigpipe):
12348         allow people to avoid setting SIGPIPE to SIG_IGN
12349         (_dbus_connection_new_for_transport): disable SIGPIPE unless
12350         we've been asked not to
12351
12352 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
12353
12354         * dbus/dbus-list.c: (_dbus_list_append_link),
12355         (_dbus_list_prepend_link):
12356         * dbus/dbus-memory.c: (dbus_malloc), (dbus_malloc0),
12357         (dbus_realloc):
12358         Warning fixes.
12359
12360 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
12361
12362         * bus/Makefile.am:
12363         * bus/activation.c: (bus_activation_entry_free),
12364         (add_desktop_file_entry), (load_directory), (bus_activation_init):
12365         * bus/activation.h:
12366         * bus/main.c: (main):
12367         Add simple activation support, doesn't work yet though.
12368
12369 2003-02-15   Zack Rusin  <zack@kde.org>
12370
12371         * qt/dbus-qthread.cpp:  small casting fix
12372
12373 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
12374
12375         * dbus/dbus-errors.c: (dbus_set_error):
12376         * dbus/dbus-errors.h:
12377         Add a few errors and make dbus_set_error void.
12378
12379         * dbus/dbus-sysdeps.c:
12380         (_dbus_errno_to_string), (close_and_invalidate), (make_pipe),
12381         (write_err_and_exit), (read_ints), (do_exec), (_dbus_spawn_async):
12382         * dbus/dbus-sysdeps.h:
12383         Add _dbus_spawn_async.
12384
12385         * test/spawn-test.c: (main):
12386         Test for _dbus_spawn_async.
12387
12388 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
12389
12390         * dbus/dbus-internals.h:
12391         Fix build without tests.
12392
12393         * dbus/dbus-list.c: (alloc_link):
12394         Fix a segfault when a malloc fails.
12395
12396         * dbus/dbus-memory.c: (initialize_malloc_debug), (dbus_malloc),
12397         (dbus_malloc0), (dbus_realloc):
12398         Add support for malloc debugging.
12399
12400 2003-02-15  Alexander Larsson  <alexl@redhat.com>
12401
12402         * dbus/dbus-threads.c:
12403         * dbus/dbus-threads.h:
12404         Add condvars. Remove static mutext from API.
12405         Implement static mutexes by initializing them from threads_init.
12406
12407         * glib/dbus-gthread.c:
12408         * qt/dbus-qthread.cpp:
12409         Update with the thread api changes.
12410
12411
12412         * dbus/dbus-list.c:
12413         * dbus/dbus-list.h:
12414         Turn StaticMutex into normal mutex + init function.
12415         Export new functions _dbus_list_alloc_link, _dbus_list_free_link,
12416         _dbus_list_append_link, _dbus_list_prepend_link
12417
12418
12419         * dbus/dbus-sysdeps.c:
12420         * dbus/dbus-sysdeps.h:
12421         New type dbus_atomic_t, and new functions _dbus_atomic_inc,
12422         _dbus_atomic_dec. Only slow fallback implementation at the moment.
12423
12424         * dbus/dbus-protocol.h:
12425         Add DBUS_MESSAGE_LOCAL_DISCONNECT define
12426
12427         * dbus/dbus-message.c:
12428         Make ref/unref atomic.
12429         Fix some docs.
12430
12431         * dbus/dbus-connection-internal.h:
12432         * dbus/dbus-connection.c:
12433         * dbus/dbus-connection.h:
12434         Make threadsafe.
12435         Change _peek to _borrow,_return & _steal_borrowed.
12436         Change disconnect callback to event.
12437         Make dbus_connection_dispatch_messages reentrant.
12438
12439         * dbus/dbus-transport.c:
12440         Don't ref the connection on calls to the transport
12441         implementation.
12442
12443         * dbus/dbus-message-handler.c:
12444         Make threadsafe.
12445
12446         * glib/dbus-gmain.c:
12447         Don't use peek_message anymore
12448
12449         * test/Makefile.am:
12450         * test/debug-thread.c:
12451         * test/debug-thread.h:
12452         Simple thread implementation that asserts() on deadlocks in
12453         single-threaded code.
12454
12455         * test/bus-test.c:
12456         (main) Call debug_threads_init.
12457
12458         * test/watch.c:
12459         Use disconnect message instead of disconnect callback.
12460
12461         * bus/connection.c:
12462         * bus/connection.h:
12463         Don't call dbus_connection_set_disconnect_function. Instead export
12464         bus_connection_disconnect.
12465
12466         * bus/dispatch.c:
12467         Call bus_connection_disconnect when we get a disconnected message.
12468
12469 2003-02-15  Havoc Pennington  <hp@pobox.com>
12470
12471         * dbus/dbus-message.c (dbus_message_new): fool around with the
12472         docs
12473
12474 2003-02-14  Havoc Pennington  <hp@pobox.com>
12475
12476         * dbus/dbus-mempool.c: fail if the debug functions so indicate
12477
12478         * dbus/dbus-memory.c: fail if the debug functions indicate we
12479         should
12480
12481         * dbus/dbus-internals.c (_dbus_set_fail_alloc_counter)
12482         (_dbus_decrement_fail_alloc_counter): debug functions to
12483         simulate memory allocation failures
12484
12485 2003-02-14  Havoc Pennington  <hp@pobox.com>
12486
12487         * dbus/dbus-errors.h (struct DBusError): add a word of padding
12488         to DBusError
12489
12490 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12491
12492         * bus/driver.c: (bus_driver_handle_hello):
12493         * bus/driver.h:
12494         * bus/services.c: (bus_service_lookup):
12495         Reorder message sending so we get a more sane order.
12496
12497         * test/bus-test.c: (message_handler):
12498         Fix tyop.
12499
12500 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12501
12502         * bus/driver.c: (bus_driver_send_service_deleted),
12503         (bus_driver_send_service_created), (bus_driver_send_service_lost),
12504         (bus_driver_send_service_acquired), (bus_driver_handle_hello),
12505         (bus_driver_send_welcome_message),
12506         (bus_driver_handle_list_services),
12507         (bus_driver_handle_acquire_service),
12508         (bus_driver_handle_service_exists):
12509         * dbus/dbus-bus.c: (dbus_bus_register_client),
12510         (dbus_bus_acquire_service), (dbus_bus_service_exists):
12511         * dbus/dbus-errors.c: (dbus_result_to_string):
12512         * dbus/dbus-errors.h:
12513         * dbus/dbus-message.c: (dbus_message_append_args),
12514         (dbus_message_append_args_valist), (dbus_message_get_args),
12515         (dbus_message_get_args_valist), (dbus_message_get_args_iter),
12516         (dbus_message_iter_get_arg_type), (dbus_message_iter_get_string),
12517         (dbus_message_iter_get_byte_array),
12518         (dbus_message_iter_get_string_array), (message_iter_test),
12519         (check_message_handling), (_dbus_message_test):
12520         * dbus/dbus-message.h:
12521         * test/bus-test.c: (main):
12522         Change fields to arguments in messages, so that they won't be
12523         confused with header fields.
12524
12525         * glib/test-dbus-glib.c: (main):
12526         Remove append_fields from hello message.
12527
12528 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12529
12530         * dbus/dbus-errors.c:
12531         * dbus/dbus-message.c:
12532         * dbus/dbus-string.c:
12533         Documentation fixes.
12534
12535 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12536
12537         * glib/dbus-gmain.c: (timeout_handler), (add_timeout),
12538         (remove_timeout):
12539         Implement support for timeouts in dbus-glib.
12540
12541 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12542
12543         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
12544         * dbus/dbus-message.c: (process_test_subdir):
12545         * test/break-loader.c: (find_breaks_based_on):
12546         Plug some memory leaks.
12547
12548 2003-02-13  Richard Hult  <rhult@codefactory.se>
12549
12550         * bus/main.c: Fix build.
12551
12552         * dbus/dbus-errors.h:
12553         * dbus/dbus-errors.c: Fix copyright for Anders.
12554
12555 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12556
12557         * bus/Makefile.am:
12558         Add utils.[ch]
12559
12560         * bus/connection.c: (bus_connection_foreach):
12561         Fix a warning.
12562
12563         * bus/desktop-file.c: (grow_lines_in_section), (grow_sections),
12564         (unescape_string), (new_section), (parse_section_start),
12565         (parse_key_value), (report_error), (bus_desktop_file_load),
12566         (bus_desktop_file_get_string):
12567         * bus/desktop-file.h:
12568         Use DBusError for error reporting.
12569
12570         * bus/dispatch.c: (send_one_message),
12571         (bus_dispatch_message_handler):
12572         * bus/driver.c: (bus_driver_send_service_deleted),
12573         (bus_driver_send_service_created), (bus_driver_send_service_lost),
12574         (bus_driver_send_service_acquired), (bus_driver_handle_hello),
12575         (bus_driver_send_welcome_message),
12576         (bus_driver_handle_list_services),
12577         (bus_driver_handle_acquire_service),
12578         (bus_driver_handle_service_exists):
12579         * bus/loop.c: (bus_loop_run):
12580         * bus/main.c:
12581         Use BUS_HANDLE_OOM instead of _DBUS_HANDLE_OOM.
12582
12583         * bus/utils.c: (bus_wait_for_memory):
12584         * bus/utils.h:
12585         New files with general utility functions.
12586
12587         * dbus/dbus-internals.h:
12588         Remove _DBUS_HANDLE_OOM.
12589
12590 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12591
12592         * dbus/dbus-errors.c: (dbus_result_to_string), (dbus_error_init),
12593         (dbus_error_free), (dbus_set_error_const), (dbus_set_error):
12594         * dbus/dbus-errors.h:
12595         Add DBusError structure.
12596
12597 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12598
12599         * test/data/valid-messages/standard-acquire-service.message:
12600         * test/data/valid-messages/standard-hello.message:
12601         * test/data/valid-messages/standard-list-services.message:
12602         * test/data/valid-messages/standard-service-exists.message:
12603         Add some standard messages.
12604
12605 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12606
12607         * bus/driver.c: (bus_driver_send_welcome_message),
12608         (bus_driver_handle_list_services),
12609         (bus_driver_handle_acquire_service),
12610         (bus_driver_handle_service_exists), (bus_driver_handle_message):
12611         Update for API changes in libdbus.
12612
12613         * dbus/dbus-message.c: (dbus_message_new_reply):
12614         * dbus/dbus-message.h:
12615         Remove the name argument. The spec states that replies shouldn't
12616         have a name.
12617
12618 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12619
12620         * bus/desktop-file.c: (parse_section_start), (parse_key_value),
12621         (report_error), (bus_desktop_file_load), (lookup_section),
12622         (lookup_line), (bus_desktop_file_get_raw),
12623         (bus_desktop_file_get_string):
12624         * bus/desktop-file.h:
12625         Some fixes, and new functions for getting a key value from a section.
12626
12627 2003-02-13  Havoc Pennington  <hp@pobox.com>
12628
12629         * test/data/auth/fail-after-n-attempts.auth-script: new test
12630
12631         * dbus/dbus-auth.c (send_rejected): shutdown_mech() when we
12632         reject the client.
12633
12634 2003-02-13  Havoc Pennington  <hp@pobox.com>
12635
12636         * dbus/dbus-auth.c (handle_server_data_external_mech): args to
12637         dbus_credentials_match were backward
12638
12639         * dbus/dbus-auth-script.c (_dbus_auth_script_run): support
12640         NO_CREDENTIALS and ROOT_CREDENTIALS
12641
12642         * dbus/dbus-auth.c (_dbus_auth_do_work): move get_state() routine
12643         into here. Never process more commands after we've reached an
12644         end state; store further data as unused bytes.
12645
12646         * test/data/auth/*: add more auth tests
12647
12648         * dbus/dbus-auth-script.c (_dbus_auth_script_run): support EXPECT
12649         command to match exact string and EXPECT_UNUSED to match unused
12650         bytes
12651
12652         * test/Makefile.am (dist-hook): fix to dist all the test stuff
12653
12654 2003-02-12  Havoc Pennington  <hp@pobox.com>
12655
12656         * dbus/dbus-string.c (_dbus_string_pop_line): fix to also strip
12657         \r off of popped lines
12658
12659         * dbus/dbus-auth.c (_dbus_auth_test): write code to run auth
12660         scripts
12661
12662         * dbus/dbus-auth-script.c (_dbus_auth_script_run): when doing a
12663         SEND, append \r\n
12664
12665 2003-02-12  Havoc Pennington  <hp@pobox.com>
12666
12667         * dbus/Makefile.am: remove break-loader from the build, since it
12668         moved.
12669
12670         * configure.in: add --enable-gcov to turn on coverage profiling
12671         flags and disable optimization
12672
12673 2003-02-10  Havoc Pennington  <hp@pobox.com>
12674
12675         * dbus/dbus-auth-script.c, dbus/dbus-auth-script.h: sync
12676         initial cut at test framework for DBusAuth from laptop.
12677         Doesn't quite work yet but it compiles and I need to get
12678         it off the 266mhz laptop. ;-)
12679
12680         * dbus/dbus-server-debug.c (_dbus_server_debug_accept_transport):
12681         fix a memleak in error case
12682
12683 2003-02-12  Anders Carlsson  <andersca@codefactory.se>
12684
12685         * bus/Makefile.am:
12686         * bus/desktop-file.c:
12687         * bus/desktop-file.h:
12688         Add a desktop file parser.
12689
12690 2003-02-11  Zack Rusin  <zack@kde.org>
12691
12692         * qt/message.[h|cpp]: sample implementation
12693         of the KDE wrapper for DBusMessage
12694
12695 2003-02-09  Zack Rusin  <zack@kde.org>
12696
12697         * test/bus-test.c: make_it_compile
12698         * doc/dbus-specification.sgml: minimal semantic fix
12699
12700 2003-02-06  Anders Carlsson  <andersca@codefactory.se>
12701
12702         Release 0.3
12703
12704         * NEWS: Update
12705
12706 2003-02-06  Anders Carlsson  <andersca@codefactory.se>
12707
12708         * dbus/Makefile.am:
12709         * dbus/dbus-break-loader.c:
12710         * test/Makefile.am:
12711         * test/break-loader.c:
12712         Move dbus-break-loader to test/ and rename it to break-loader.
12713
12714 2003-02-02  Havoc Pennington  <hp@pobox.com>
12715
12716         * dbus/dbus-keyring.c, dbus/dbus-keyring.h: template files
12717         for code to manage cookies in your home directory
12718
12719         * dbus/dbus-sysdeps.c (_dbus_generate_random_bytes): new function
12720
12721         * dbus/dbus-auth.c (get_state): impose a maximum number of tries
12722         to authenticate, then disconnect the client.
12723
12724 2003-02-03  Alexander Larsson  <alexl@redhat.com>
12725
12726         * dbus/dbus-message.c (dbus_message_append_fields):
12727         Correct docs.
12728
12729 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
12730
12731         * doc/dbus-specification.sgml:
12732         Update address format section.
12733
12734 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
12735
12736         * test/Makefile.am:
12737         * test/bus-test.c: (get_time), (add_timeout), (remove_timeout),
12738         (message_handler), (new_connection_callback), (loop_quit),
12739         (loop_run), (main):
12740         Add bus test.
12741
12742 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
12743
12744         * bus/driver.c: (bus_driver_handle_service_exists):
12745         Simplify the code a bit.
12746
12747         * dbus/dbus-bus.c: (dbus_bus_service_exists):
12748         Fix a silly.
12749
12750 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
12751
12752         * bus/Makefile.am:
12753         Add libdbus-daemon.la and link to it.
12754
12755 2003-02-01  James Willcox  <jwillcox@gnome.org>
12756
12757         * bus/driver.c: (bus_driver_handle_own_service):
12758         Actually include the service reply code in the message.
12759
12760 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
12761
12762         * bus/driver.c: (bus_driver_handle_service_exists):
12763         Don't unref the incoming message.
12764
12765 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
12766
12767         * dbus/dbus.h: Add dbus-address.h and dbus-bus.h
12768
12769 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
12770
12771         * dbus/dbus-server.c: (dbus_server_listen):
12772         * dbus/dbus-transport.c: (_dbus_transport_open):
12773         ifdef out the calls to the debug transport and server.
12774
12775 2003-02-02  Alexander Larsson  <alexl@redhat.com>
12776
12777         * dbus/dbus-watch.c (dbus_watch_get_flags):
12778         Add note in the docs that ERROR or HANGUP won't be returned
12779         and are assumed always on.
12780
12781         * glib/dbus-gmain.c (add_watch):
12782         Always add IO_ERR | IO_HUP
12783
12784         * dbus/dbus-message.h:
12785         Add semicolon after dbus_message_iter_get_string_array().
12786         Makes qt code build again
12787
12788 2003-02-01  Anders Carlsson  <andersca@codefactory.se>
12789
12790         * bus/driver.c: (create_unique_client_name),
12791         (bus_driver_handle_hello):
12792         Don't take a name, just use a numeric id to identify
12793         each client.
12794
12795         * dbus/Makefile.am:
12796         * dbus/dbus-bus.c: (dbus_bus_register_client),
12797         (dbus_bus_acquire_service), (dbus_bus_service_exists):
12798         * dbus/dbus-bus.h:
12799         Add new convenience functions for communicating with the bus.
12800
12801         * dbus/dbus-message.h:
12802
12803         * dbus/dbus-protocol.h:
12804         Fix a typo.
12805
12806 2003-02-01  Alexander Larsson  <alexl@redhat.com>
12807
12808         * dbus/dbus-message.c (dbus_message_append_fields):
12809         Add some more doc comments.
12810
12811 2003-02-01  Havoc Pennington  <hp@pobox.com>
12812
12813         * dbus/dbus-break-loader.c (randomly_modify_length): change
12814         a 4-byte value in the message as if it were a length
12815
12816         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): don't set
12817         execute bit on saved files
12818
12819 2003-02-01  Havoc Pennington  <hp@pobox.com>
12820
12821         * dbus/dbus-break-loader.c (main): new program to find messages
12822         that break the loader.
12823
12824         * dbus/dbus-sysdeps.c (_dbus_string_append_uint): new function
12825         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): new function
12826
12827         * dbus/dbus-string.c (_dbus_string_set_byte): new
12828
12829 2003-01-31  Havoc Pennington  <hp@pobox.com>
12830
12831         * dbus/dbus-message.c: refactor the test code to be more general,
12832         in preparation for writing a "randomly permute test cases to
12833         try to break the loader" program.
12834
12835 2003-01-31  Havoc Pennington  <hp@pobox.com>
12836
12837         * doc/dbus-specification.sgml: work on the specification
12838
12839         * dbus/dbus-message.c (_dbus_message_loader_return_buffer): check
12840         the protocol version of the message.
12841
12842         * dbus/dbus-protocol.h: drop special _REPLY names, the spec
12843         no longer specifies that.
12844         (DBUS_SERVICE_REPLY_SERVICE_EXISTS): fix flags (1/2/4/8 not
12845         1/2/3/4)
12846
12847         * dbus/dbus-marshal.c (_dbus_marshal_get_arg_end_pos): add missing
12848         "break" for DBUS_TYPE_NIL, remove @todo
12849
12850 2003-01-31  Havoc Pennington  <hp@pobox.com>
12851
12852         * dbus/dbus-message.c (dbus_message_set_is_error_reply): rename
12853         just set_is_error/get_is_error as this is a commonly-used
12854         function, and write docs.
12855
12856 2003-01-31  Anders Carlsson  <andersca@codefactory.se>
12857
12858         * dbus/dbus-address.c: (dbus_address_entry_free):
12859         Free key and value lists.
12860
12861         * dbus/dbus-internals.c: (_dbus_type_to_string):
12862         Add the types we didn't have.
12863
12864         * dbus/dbus-marshal.c: (_dbus_marshal_get_arg_end_pos),
12865         (_dbus_marshal_validate_arg):
12866         Add NIL types.
12867
12868         * dbus/dbus-message.c: (dbus_message_set_sender):
12869         Remove todo about being able to set sender to NULL.
12870
12871         (dbus_message_set_is_error_reply),
12872         (dbus_message_get_is_error_reply):
12873         * dbus/dbus-message.h:
12874         New functions.
12875
12876         * dbus/dbus-protocol.h:
12877         Add error reply flag.
12878
12879         * test/data/valid-messages/opposite-endian.message:
12880         Add NIL type to test.
12881
12882 2003-01-31  Havoc Pennington  <hp@pobox.com>
12883
12884         * doc/dbus-specification.sgml: fully specify the header.  Add
12885         flags and major protocol version, and change header/body len to
12886         unsigned.
12887
12888         * dbus/dbus-message-builder.c (append_saved_length): append length
12889         as uint32
12890
12891         * dbus/dbus-message.c (dbus_message_create_header): change header
12892         length and body length to unsigned. Add the new fields from the
12893         spec
12894         (_dbus_message_loader_return_buffer): unsigned header/body len
12895
12896 2003-01-30  Havoc Pennington  <hp@pobox.com>
12897
12898         * dbus/dbus-auth.c: rework to use only REJECTED, no
12899         MECHANISMS
12900
12901         * doc/dbus-sasl-profile.txt: drop MECHANISMS and just
12902         use REJECTED, suggested by Mark McLoughlin
12903
12904 2003-01-30  Havoc Pennington  <hp@pobox.com>
12905
12906         * dbus/dbus-server.c (dbus_server_listen): @todo about how we need
12907         a better way to report errors here. e.g.  "unix address lacks
12908         path" or something. also "no such file" when the path doesn't
12909         exist, etc.
12910
12911         * dbus/dbus-address.c (dbus_address_entries_free): add @todo about
12912         leaking list nodes
12913         (dbus_parse_address): add @todo about documenting address format,
12914         and allowing , and ; to be escaped
12915
12916 2003-01-30  Anders Carlsson  <andersca@codefactory.se>
12917
12918         * dbus/Makefile.am:
12919         Add dbus-address.[ch]
12920
12921         * dbus/dbus-address.c: (dbus_address_entry_free),
12922         (dbus_address_entries_free), (create_entry),
12923         (dbus_address_entry_get_method), (dbus_address_entry_get_value),
12924         (dbus_parse_address), (_dbus_address_test):
12925         * dbus/dbus-address.h:
12926         New files for dealing with address parsing.
12927
12928         * dbus/dbus-connection.c:
12929         Document timeout functions.
12930
12931         * dbus/dbus-message.c:
12932         Document dbus_message_new_from_message.
12933
12934         * dbus/dbus-server-debug.c:
12935         Document.
12936
12937         * dbus/dbus-server.c: (dbus_server_listen):
12938         Parse address and use correct server implementation.
12939
12940         * dbus/dbus-string.c: (_dbus_string_find_to), (_dbus_string_test):
12941         * dbus/dbus-string.h:
12942         New function with test.
12943
12944         * dbus/dbus-test.c: (dbus_internal_symbol_do_not_use_run_tests):
12945         * dbus/dbus-test.h:
12946         Add address tests.
12947
12948         * dbus/dbus-transport-debug.c:
12949         Document.
12950
12951         * dbus/dbus-transport.c: (_dbus_transport_open):
12952         Parse address and use correct transport implementation.
12953
12954 2003-01-30  Havoc Pennington  <hp@pobox.com>
12955
12956         * dbus/dbus-message.c: use message->byte_order instead of
12957         DBUS_COMPILER_BYTE_ORDER throughout.
12958         (dbus_message_create_header): pad header to align the
12959         start of the body of the message to 8-byte boundary
12960
12961         * dbus/dbus-marshal.h: make all the demarshalers take const
12962         DBusString arguments.
12963
12964         * dbus/dbus-message.c (_dbus_message_loader_return_buffer):
12965         validate message args here, so we don't have to do slow validation
12966         later, and so we catch bad messages as they are incoming. Also add
12967         better checks on header_len and body_len. Also fill in
12968         message->byte_order
12969
12970         * dbus/dbus-string.c (_dbus_string_validate_utf8): new (not
12971         implemented properly)
12972         (_dbus_string_validate_nul): new function to check all-nul
12973
12974         * dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): rename
12975         get_arg_end_pos and remove all validation
12976         (_dbus_marshal_validate_arg): actually do validation here.
12977
12978 2003-01-29  Havoc Pennington  <hp@pobox.com>
12979
12980         * dbus/dbus-message.c (check_message_handling): fix assertion
12981         failure on set_client_serial
12982
12983 2003-01-28  Havoc Pennington  <hp@pobox.com>
12984
12985         * dbus/dbus-server-debug.c: Add doc section comments
12986
12987         * dbus/dbus-transport-debug.c: add doc section comments
12988
12989 2003-01-28  Havoc Pennington  <hp@redhat.com>
12990
12991         * dbus/dbus-string.c (_dbus_string_base64_decode): append bytes in
12992         the reverse order from how I had it
12993         (_dbus_string_base64_encode): reverse encoding order. I was
12994         basically byteswapping everything during encoding.
12995
12996 2003-01-28  Anders Carlsson  <andersca@codefactory.se>
12997
12998         * dbus/dbus-connection-internal.h:
12999         * dbus/dbus-connection.c: (_dbus_connection_add_timeout),
13000         (_dbus_connection_remove_timeout):
13001         Add functions for adding and removing timeouts.
13002
13003         * dbus/dbus-message.c: (dbus_message_new_from_message):
13004         Add new function that takes a message and creates an exact
13005         copy of it, but with the refcount set to 1.
13006         (check_message_handling):
13007         Fix build error.
13008
13009         * dbus/dbus-server-protected.h:
13010         * dbus/dbus-server.c: (_dbus_server_init_base),
13011         (_dbus_server_finalize_base), (_dbus_server_add_timeout),
13012         (dbus_server_set_timeout_functions):
13013         (_dbus_server_remove_timeout):
13014         New functions so that a server can add and remove timeouts.
13015
13016         (dbus_server_listen):
13017         Add commented out call to dbus_server_debug_new.
13018
13019         * dbus/dbus-timeout.c: (_dbus_timeout_new):
13020         Actually set the handler, doh.
13021
13022         * dbus/dbus-transport.c: (_dbus_transport_open):
13023         Add commented out call to dbus_transport_debug_client_new.
13024
13025         * dbus/Makefile.am:
13026         Add dbus-transport-debug.[ch] and dbus-server-debug.[ch]
13027
13028 2003-01-28  Havoc Pennington  <hp@pobox.com>
13029
13030         * dbus/dbus-message.c (check_message_handling): function to check
13031         on the loaded message, iterates over it etc.
13032
13033 2003-01-28  Havoc Pennington  <hp@pobox.com>
13034
13035         * test/Makefile.am (dist-hook): fix make distdir
13036
13037         * dbus/Makefile.am (TESTS_ENVIRONMENT): fix make check
13038
13039 2003-01-27  Havoc Pennington  <hp@pobox.com>
13040
13041         * dbus/dbus-mempool.c (time_for_size): replace printf with
13042         _dbus_verbose
13043
13044         * dbus/dbus-message-builder.c (_dbus_message_data_load): allow
13045         empty lines; fix the SAVE_LENGTH stuff to be
13046         START_LENGTH/END_LENGTH so it actually works; couple other
13047         bugfixes
13048
13049         * test/Makefile.am (dist-hook): add dist-hook for .message files
13050
13051         * dbus/dbus-string.c (DBUS_STRING_COPY_PREAMBLE): source of a copy
13052         can be constant or locked.
13053         (_dbus_string_free): allow freeing a const string as
13054         documented/intended
13055
13056         * dbus/dbus-sysdeps.c (_dbus_concat_dir_and_file): utility
13057
13058         * dbus/dbus-test-main.c (main): take an argument which is the
13059         directory containing test data
13060
13061         * dbus/dbus-message.c (_dbus_message_test): pass a test_data_dir
13062         argument to this and load all the messages in test/data/
13063         checking that they can be loaded or not loaded as appropriate.
13064
13065 2003-01-27  Anders Carlsson  <andersca@codefactory.se>
13066
13067         * bus/dispatch.c: (bus_dispatch_message_handler):
13068         Dispatch messages sent to services.
13069
13070         * bus/driver.c: (bus_driver_send_service_deleted),
13071         (bus_driver_send_service_created), (bus_driver_send_service_lost),
13072         (bus_driver_send_service_acquired):
13073         Add helper functions for sending service related messages.
13074
13075         (bus_driver_send_welcome_message):
13076         Send HELLO_REPLY instead of WELCOME.
13077
13078         (bus_driver_handle_list_services):
13079         Send LIST_SERVICES_REPLY instead of SERVICES.
13080
13081         (bus_driver_handle_own_service),
13082         (bus_driver_handle_service_exists):
13083         New message handlers.
13084
13085         (bus_driver_handle_message):
13086         Invoke new message handlers.
13087
13088         (bus_driver_remove_connection):
13089         Don't remove any services here since that's done automatically
13090         by bus_service_remove_owner now.
13091
13092         * bus/driver.h:
13093         New function signatures.
13094
13095         * bus/services.c: (bus_service_add_owner):
13096         Send ServiceAcquired message if we're the only primary owner.
13097
13098         (bus_service_remove_owner):
13099         Send ServiceAcquired/ServiceLost messages.
13100
13101         (bus_service_set_prohibit_replacement),
13102         (bus_service_get_prohibit_replacement):
13103         Functions for setting prohibit replacement.
13104
13105         (bus_service_has_owner):
13106         New function that checks if a connection is in the owner queue of
13107         a certain service.
13108
13109         * bus/services.h:
13110         Add new function signatures.
13111
13112         * dbus/dbus-list.c: (_dbus_list_test):
13113         Add tests for _dbus_list_remove_last and traversing the list backwards.
13114
13115         * dbus/dbus-list.h:
13116         Fix a typo in _dbus_list_get_prev_link, if we're at the first element we can't
13117         go any further, so return NULL then.
13118
13119         * dbus/dbus-protocol.h:
13120         Add new messages, service flags and service replies.
13121
13122 2003-01-26  Havoc Pennington  <hp@pobox.com>
13123
13124         * dbus/dbus-message-builder.c: implement, completely untested.
13125
13126         * test/data/*: add data to be used in testing.
13127         ".message" files are our simple loadable text format.
13128         ".message-raw" will be binary dumps of messages.
13129
13130         * dbus/dbus-string.c (_dbus_string_starts_with_c_str): new
13131
13132 2003-01-26  Havoc Pennington  <hp@pobox.com>
13133
13134         * dbus/dbus-sysdeps.c (_dbus_file_get_contents): new function
13135
13136         * dbus/dbus-errors.c (dbus_result_to_string): add
13137         file errors
13138
13139         * dbus/dbus-message-builder.c: new file, will contain code to load
13140         up messages from files. Not implemented yet.
13141
13142 2003-01-26  Havoc Pennington  <hp@pobox.com>
13143
13144         * dbus/dbus-message.c (dbus_message_set_sender): support deleting
13145         the sender by setting to NULL
13146
13147 2003-01-26  Havoc Pennington  <hp@pobox.com>
13148
13149         The unit tests pass, but otherwise untested.  If it breaks, the
13150         tests should have been better. ;-)
13151
13152         * bus/driver.c (bus_driver_handle_hello): return if we disconnect
13153         the connection.
13154
13155         * dbus/dbus-message.c: redo everything so we maintain
13156         message->header as the only copy of the various fields.
13157         This avoids the possibility of out-of-memory in some cases,
13158         for example dbus_message_lock() can't run out of memory anymore,
13159         and avoids extra copying. Figured I may as well go ahead and do
13160         this since it was busted for dbus_message_lock to not return
13161         failure on OOM, and dbus_message_write_header was totally
13162         unchecked for OOM. Also fixed some random other bugs.
13163
13164         * dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): verify
13165         that strings are nul-terminated. Also, end_pos can be equal
13166         to string length just not greater than, I think.
13167         (_dbus_marshal_set_int32): new function
13168         (_dbus_marshal_set_uint32): new function
13169         (_dbus_marshal_set_string): new function
13170
13171         * dbus/dbus-connection.c (_dbus_connection_new_for_transport): fix
13172         a warning, init timeout_list to NULL
13173         (dbus_connection_send_message): don't use uninitialized variable
13174         "serial"
13175
13176         * dbus/dbus-string.c (_dbus_string_replace_len): new function
13177
13178 2003-01-26  Anders Carlsson  <andersca@codefactory.se>
13179
13180         * bus/driver.c: (bus_driver_handle_hello),
13181         (bus_driver_send_welcome_message):
13182         Plug leaks
13183
13184 2003-01-26  Anders Carlsson  <andersca@codefactory.se>
13185
13186         * dbus/dbus-auth.c: (process_auth), (_dbus_auth_unref):
13187         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport),
13188         (dbus_connection_unref):
13189         * dbus/dbus-marshal.c: (_dbus_marshal_test):
13190         * dbus/dbus-message.c: (dbus_message_unref),
13191         Plug memory leaks.
13192
13193         (dbus_message_get_fields):
13194         Remove debugging printout.
13195
13196         (_dbus_message_loader_return_buffer):
13197         Don't store the header string.
13198
13199         (_dbus_message_test):
13200         Plug leaks.
13201
13202 2003-01-26  Richard Hult  <rhult@codefactory.se>
13203
13204         * glib/dbus-gmain.c (dbus_connection_dispatch): Traverse a copy of
13205         the file descriptor list, since it can change under us.
13206
13207 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
13208
13209         * glib/dbus-gmain.c: (dbus_connection_prepare),
13210         (dbus_connection_check), (dbus_connection_dispatch), (add_watch),
13211         (remove_watch), (dbus_connection_hookup_with_g_main):
13212         Rewrite the glib handling to use its own GSource instead of a
13213         GIOChannel so we can catch messages put in the queue while waiting
13214         for a reply.
13215
13216 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
13217
13218         * bus/Makefile.am:
13219         * bus/connection.c: (connection_disconnect_handler),
13220         (connection_watch_callback), (bus_connection_setup):
13221         * bus/dispatch.c: (send_one_message),
13222         (bus_dispatch_broadcast_message), (bus_dispatch_message_handler),
13223         (bus_dispatch_add_connection), (bus_dispatch_remove_connection):
13224         * bus/dispatch.h:
13225         * bus/driver.c: (bus_driver_send_service_deleted),
13226         (bus_driver_send_service_created), (bus_driver_handle_hello),
13227         (bus_driver_send_welcome_message),
13228         (bus_driver_handle_list_services), (bus_driver_remove_connection),
13229         (bus_driver_handle_message):
13230         * bus/driver.h:
13231         Refactor code, put the message dispatching in its own file. Use
13232         _DBUS_HANDLE_OOM. Also send ServiceDeleted messages when a client
13233         is disconnected.
13234
13235 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
13236
13237         * dbus/dbus-internals.h:
13238         Add _DBUS_HANDLE_OOM macro, it doesn't do anything currently.
13239
13240         * dbus/dbus-message.c: (dbus_message_get_sender):
13241         * dbus/dbus-message.h:
13242         Implement dbus_message_get_sender.
13243
13244         * dbus/dbus-protocol.h:
13245         Add message and service defines.
13246
13247 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
13248
13249         * dbus/dbus-connection.c: (dbus_connection_send_message):
13250         * dbus/dbus-message-internal.h:
13251         * dbus/dbus-message.c: (_dbus_message_get_client_serial),
13252         (dbus_message_write_header):
13253         Remove _dbus_messag_unlock and don't set the client serial on a
13254         message if one already exists.
13255
13256 2003-01-24  Havoc Pennington  <hp@pobox.com>
13257
13258         * dbus/dbus-list.c (alloc_link): put a thread lock on the global
13259         list_pool
13260
13261         * bus/driver.c (bus_driver_handle_list_services): fix a leak
13262         on OOM
13263
13264 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
13265
13266         * dbus/dbus-list.c: (alloc_link), (free_link):
13267         Use a memory pool for the links.
13268
13269 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
13270
13271         * bus/connection.c: (bus_connection_foreach):
13272         * bus/connection.h:
13273         Add new bus_connection_foreach function.
13274
13275         * bus/driver.c: (send_one_message), (bus_driver_broadcast_message):
13276         Add function that broadcasts a message to all clients.
13277
13278         (bus_driver_send_service_created), (bus_driver_handle_hello),
13279         (bus_driver_send_welcome_message),
13280         (bus_driver_handle_list_services), (bus_driver_message_handler):
13281         Implement functions that take care of listing services, and notifying
13282         clients when new services are created.
13283
13284         * bus/services.c: (bus_services_list):
13285         * bus/services.h:
13286         Add new function that returns an array of strings with the currently
13287         registered services.
13288
13289         * glib/dbus-glib.h:
13290         * glib/dbus-gmain.c:
13291         Update copyright year.
13292
13293 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
13294
13295         * dbus/dbus-connection.c: (dbus_connection_send_message):
13296         Unlock the message in case it was sent earlier.
13297
13298         (dbus_connection_send_message_with_reply_and_block):
13299         Remove the reply message from the list.
13300
13301         * dbus/dbus-marshal.c: (_dbus_demarshal_string_array):
13302         Set array_len and new_pos correctly.
13303
13304         (_dbus_marshal_test):
13305         Remove debug output.
13306
13307         * dbus/dbus-message-internal.h:
13308         * dbus/dbus-message.c: (_dbus_message_get_reply_serial):
13309         New function that returns the reply serial.
13310
13311         (_dbus_message_unlock):
13312         New function that unlocks a message and resets its header.
13313
13314         (dbus_message_append_string_array),
13315         (dbus_message_get_fields_valist),
13316         (dbus_message_iter_get_field_type),
13317         (dbus_message_iter_get_string_array),
13318         (dbus_message_get_fields),
13319         (dbus_message_append_fields_valist):
13320         Handle string arrays.
13321
13322         (dbus_message_set_sender):
13323         Make this function public since the bus daemon needs it.
13324
13325         (decode_header_data):
13326         Set the reply serial to -1 initially.
13327
13328         * dbus/dbus-message.h:
13329         Add dbus_message_set_sender.
13330
13331 2003-01-24  Havoc Pennington  <hp@pobox.com>
13332
13333         * doc/dbus-specification.sgml: add some stuff
13334
13335 2003-01-22  Havoc Pennington  <hp@pobox.com>
13336
13337         * doc/dbus-specification.sgml: Start to document the protocol.
13338
13339 2003-01-22  Havoc Pennington  <hp@pobox.com>
13340
13341         * dbus/dbus-connection.c
13342         (dbus_connection_send_message_with_reply_and_block): add some @todo
13343
13344         * bus/driver.c (bus_driver_add_connection): add a FIXME about memleak
13345
13346 2003-01-21  Havoc Pennington  <hp@pobox.com>
13347
13348         (patch untested because can't compile)
13349
13350         * bus/driver.c (create_unique_client_name): make this function
13351         never recycle client names. Also, caller should initialize
13352         the DBusString.
13353
13354         * dbus/dbus-sysdeps.c (_dbus_get_current_time): new function
13355
13356 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
13357
13358         * dbus/dbus-marshal.c: (_dbus_marshal_double),
13359         (_dbus_marshal_int32), (_dbus_marshal_uint32),
13360         (_dbus_marshal_int32_array), (_dbus_marshal_uint32_array),
13361         (_dbus_marshal_double_array), (_dbus_marshal_string_array),
13362         (_dbus_demarshal_int32_array), (_dbus_demarshal_uint32_array),
13363         (_dbus_demarshal_double_array), (_dbus_demarshal_string_array),
13364         (_dbus_marshal_get_field_end_pos), (_dbus_marshal_test):
13365         * dbus/dbus-marshal.h:
13366         * dbus/dbus-protocol.h:
13367         Add support for marshalling and demarshalling integer, double
13368         and string arrays.
13369
13370 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
13371
13372         * bus/Makefile.am:
13373         Add driver.[ch]
13374
13375         * bus/connection.c: (connection_disconnect_handler):
13376         Remove the connection from the bus driver's list.
13377
13378         (connection_watch_callback): Dispatch messages.
13379
13380         (free_connection_data): Free connection name.
13381
13382         (bus_connection_setup): Add connection to the bus driver's list.
13383         (bus_connection_remove_owned_service):
13384         (bus_connection_set_name), (bus_connection_get_name):
13385         Add functions for setting and getting the connection's name.
13386
13387         * bus/connection.h:
13388         Add function headers.
13389
13390         * bus/driver.c: (create_unique_client_name),
13391         (bus_driver_handle_hello_message),
13392         (bus_driver_send_welcome_message), (bus_driver_message_handler),
13393         (bus_driver_add_connection), (bus_driver_remove_connection):
13394         * bus/driver.h:
13395         * bus/main.c:
13396         * bus/services.c: (bus_service_free):
13397         * bus/services.h:
13398         New file that handles communication and registreation with the bus
13399         itself.
13400
13401 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
13402
13403         * dbus/dbus-connection.c: (dbus_connection_send_message):
13404         Add a new client_serial parameter.
13405
13406         (dbus_connection_send_message_with_reply):
13407         Remove a @todo since we've implemented the blocking function.
13408
13409         (dbus_connection_send_message_with_reply_and_block):
13410         New function that sends a message and waits for a reply and
13411         then returns the reply.
13412
13413         * dbus/dbus-connection.h:
13414         Add new functions.
13415
13416         * dbus/dbus-errors.c: (dbus_result_to_string):
13417         * dbus/dbus-errors.h:
13418         Add new DBUS_RESULT.
13419
13420         * dbus/dbus-message-internal.h:
13421         * dbus/dbus-message.c: (_dbus_message_get_reply_serial),
13422         (_dbus_message_set_sender), (dbus_message_write_header),
13423         (dbus_message_new_reply), (decode_header_data),
13424         (_dbus_message_loader_return_buffer), (_dbus_message_test):
13425         * dbus/dbus-message.h:
13426         Add new functions that set the reply serial and sender.
13427         Also marshal and demarshal them correctly and add test.
13428
13429         * dbus/dbus-protocol.h:
13430         Add new DBUS_MESSAGE_TYPE_SENDER.
13431
13432         * glib/dbus-glib.h:
13433         * glib/dbus-gmain.c: (watch_callback), (free_callback_data),
13434         (add_watch), (remove_watch), (add_timeout), (remove_timeout),
13435         (dbus_connection_hookup_with_g_main):
13436         * glib/test-dbus-glib.c: (main):
13437         Rewrite to use GIOChannel and remove the GSource crack.
13438
13439         * test/echo-client.c: (main):
13440         * test/watch.c: (check_messages):
13441         Update for changed APIs
13442
13443 2003-01-19  Anders Carlsson  <andersca@codefactory.se>
13444
13445         * dbus/Makefile.am: Add dbus-timeout.[cħ]
13446
13447         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport):
13448         Create a DBusTimeoutList.
13449         (dbus_connection_set_timeout_functions): Add new function to
13450         set timeout callbacks
13451
13452         * dbus/dbus-connection.h: Add public DBusTimeout API.
13453
13454         * dbus/dbus-message.c: (dbus_message_get_service):
13455         * dbus/dbus-message.h:  New function.
13456
13457         * dbus/dbus-server.c: Fix small doc typo.
13458
13459         * dbus/dbus-timeout.[ch]: New files for mainloop timeouts.
13460
13461 2003-01-19  Anders Carlsson  <andersca@codefactory.se>
13462
13463         * dbus/dbus-string.c (_dbus_string_move_len): Don't delete all
13464         of the string, just as long as specified.
13465
13466 2003-01-19  Havoc Pennington  <hp@pobox.com>
13467
13468         * dbus/dbus-connection.c (dbus_connection_get_is_authenticated):
13469         new function
13470
13471         * dbus/dbus-server.c (dbus_server_set_max_connections)
13472         (dbus_server_get_max_connections, dbus_server_get_n_connections):
13473         keep track of current number of connections, and add API for
13474         setting a max (but haven't implemented enforcing the max yet)
13475
13476 2003-01-18  Havoc Pennington  <hp@pobox.com>
13477
13478         * dbus/dbus-transport-unix.c (unix_do_iteration): only do the
13479         reading/writing if read_watch != NULL or write_watch != NULL.
13480
13481         * dbus/dbus-message.c (_dbus_message_loader_return_buffer): fix
13482         the message loader code to actually load message->header and
13483         message->body into the newly-created message.
13484
13485         * dbus/dbus-transport-unix.c (check_write_watch): fix a mem leak
13486         in OOM case
13487
13488         * dbus/dbus-connection.c (dbus_connection_set_max_message_size)
13489         (dbus_connection_get_max_message_size)
13490         (dbus_connection_set_max_live_messages_size)
13491         (dbus_connection_get_max_live_messages_size): implement some
13492         resource limitation functions
13493
13494         * dbus/dbus-resources.c: new file implementing some of the
13495         resource limits stuff
13496
13497         * dbus/dbus-message.c (dbus_message_iter_get_byte_array): add
13498         missing docs, add @todo to handle OOM etc.
13499
13500         * dbus/dbus-marshal.c (_dbus_demarshal_byte_array): add missing
13501         docs
13502
13503 2003-01-18  Havoc Pennington  <hp@pobox.com>
13504
13505         * dbus/dbus-connection.c (dbus_connection_unref): disconnect the
13506         connection if it hasn't been already.
13507
13508         * dbus/dbus-connection.h: kill off the idea of an ErrorFunction,
13509         replace with DisconnectFunction.
13510
13511 2003-01-18  Havoc Pennington  <hp@pobox.com>
13512
13513         Building --disable-verbose-mode --disable-asserts --disable-tests
13514         cuts the library from 112K to 45K or so
13515
13516         * configure.in: check for varargs macro support,
13517         add --enable-verbose-mode, --enable-asserts.
13518
13519         * dbus/dbus-internals.h (_dbus_assert): support
13520         DBUS_DISABLE_ASSERT
13521         (_dbus_verbose): support DBUS_ENABLE_VERBOSE_MODE
13522
13523 2003-01-18  Havoc Pennington  <hp@pobox.com>
13524
13525         * dbus/dbus-test.c: include config.h so that tests actually run
13526
13527         * dbus/dbus-string.c: add assertions that stuff is 8-byte aligned,
13528         so the failure mode when that assumption fails will be plenty
13529         obvious.
13530
13531 2003-01-18  Havoc Pennington  <hp@pobox.com>
13532
13533         * configure.in: default --enable-tests to $USE_MAINTAINER_MODE
13534
13535         * dbus/Makefile.am: fix it up so dubs-test-main.c is included in
13536         the distribution
13537
13538         * test/Makefile.am: don't use special variable "TESTS" for echo-*
13539         since we don't want to use those in make check
13540
13541 2003-01-15  Havoc Pennington  <hp@redhat.com>
13542
13543         Release 0.2
13544
13545         * NEWS: update
13546
13547 2003-01-15  Havoc Pennington  <hp@redhat.com>
13548
13549         * test/Makefile.am: fix so that test source code ends up in the
13550         distribution on make distcheck
13551
13552 2003-01-15  Havoc Pennington  <hp@redhat.com>
13553
13554         Release 0.1.
13555
13556         * NEWS: update
13557
13558 2003-01-15  Havoc Pennington  <hp@redhat.com>
13559
13560         * dbus/dbus-test.c (dbus_internal_symbol_do_not_use_run_tests):
13561         fix build when --disable-tests
13562
13563         * Makefile.am (EXTRA_DIST): put HACKING in here
13564
13565         * HACKING: document procedure for making a tarball release.
13566
13567 2003-01-14  Anders Carlsson  <andersca@codefactory.se>
13568
13569         * bus/connection.c: (connection_error_handler),
13570         (bus_connection_setup):
13571         * bus/main.c: (main):
13572         Make sure that the DBusConnectionData struct is NULLed
13573         out to prevent a segfault.
13574
13575         * dbus/dbus-errors.c: (dbus_result_to_string):
13576         * dbus/dbus-errors.h:
13577         * dbus/dbus-message.c: (dbus_message_get_fields),
13578         (dbus_message_get_fields_valist), (_dbus_message_test):
13579         * dbus/dbus-message.h:
13580         Make dbus_message_get_fields return a result code so we can
13581         track invalid fields as well as oom.
13582
13583 2003-01-11  Havoc Pennington  <hp@pobox.com>
13584
13585         * configure.in: change --enable-test/--enable-ansi action-if-given
13586         to enable_foo=$enableval instead of enable_foo=yes
13587
13588 2003-01-08  Havoc Pennington  <hp@pobox.com>
13589
13590         * dbus/dbus-string.c (_dbus_string_align_length): new function
13591
13592         * dbus/dbus-test-main.c: move main() for test app here
13593         * dbus/dbus-test.c
13594         (dbus_internal_symbol_do_not_use_run_tests): we have to export a
13595         symbol to run tests, because dbus-test isn't in the main
13596         library
13597
13598         Code review nitpicks.
13599
13600         * dbus/dbus-message.c (dbus_message_write_header): add newlines
13601         for people with narrow emacs ;-). Assert client_serial was filled
13602         in. Assert message->name != NULL.
13603         (dbus_message_append_fields): have "first_field_type" arg separate
13604         from va list, needed for C++ binding that also uses varargs IIRC
13605         and helps with type safety
13606         (dbus_message_new): add @todo about using DBusString to store
13607         service/name internally
13608         (dbus_message_new): don't leak ->service and ->name on OOM later
13609         in the function
13610         (dbus_message_unref): free the service name
13611         (dbus_message_get_fields): same change to varargs
13612         i.e. first_field_type
13613         (_dbus_message_loader_return_buffer): assert that the message data
13614         is aligned (if not it's a bug in our code). Put in verbose griping
13615         about why we set corrupted = TRUE.
13616         (decode_header_data): add FIXME that char* is evil.  Was going to
13617         add FIXME about evil locale-specific string.h strncmp, but just
13618         switched to wacky string-as-uint32 optimization. Move check for
13619         "no room for field name" above get_const_data_len() to avoid
13620         assertion failure in get_const_data_len if we have trailing 2
13621         bytes or the like. Check for service and name fields being
13622         provided twice. Don't leak service/name on error. Require field
13623         names to be aligned to 4 bytes.
13624
13625         * dbus/dbus-marshal.c: move byte swap stuff to header
13626         (_dbus_pack_int32): uscore-prefix
13627         (_dbus_unpack_int32): uscore-prefix
13628         (_dbus_unpack_uint32): export
13629         (_dbus_demarshal_string): add @todo complaining about use of
13630         memcpy()
13631         (_dbus_marshal_get_field_end_pos): add @todo about bad error
13632         handling allowing corrupt data to go unchecked
13633
13634 2003-01-08  Havoc Pennington  <hp@redhat.com>
13635
13636         * dbus/dbus-transport-unix.c (unix_do_iteration): add read/write
13637         to the select() as needed for authentication. (should be using
13638         _dbus_poll() not select, but for another day)
13639
13640         * dbus/dbus.h: include dbus/dbus-protocol.h
13641
13642 2003-01-08  Anders Carlsson  <andersca@codefactory.se>
13643
13644         * dbus/Makefile.am (dbusinclude_HEADERS): Install
13645         dbus-connection.h
13646
13647 2003-01-08  Anders Carlsson  <andersca@codefactory.se>
13648
13649         * dbus/dbus-internals.c: (_dbus_type_to_string):
13650         New function that returns a string describing a type.
13651
13652         * dbus/dbus-marshal.c: (_dbus_demarshal_byte_array):
13653         * dbus/dbus-marshal.h:
13654         * dbus/dbus-message.c: (dbus_message_get_fields_valist),
13655         (dbus_message_iter_get_field_type), (dbus_message_iter_get_double),
13656         (dbus_message_iter_get_byte_array):
13657         * dbus/dbus-message.h:
13658         Add new convenience functions for appending and getting message fields.
13659         Also add demarshalling routines for byte arrays.
13660
13661 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
13662
13663         * dbus/dbus-connection-internal.h:
13664         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport),
13665         (_dbus_connection_get_next_client_serial),
13666         (dbus_connection_send_message):
13667         * dbus/dbus-internals.h:
13668         * dbus/dbus-marshal.c: (unpack_uint32), (dbus_unpack_int32),
13669         (dbus_pack_int32), (_dbus_marshal_double), (_dbus_marshal_int32),
13670         (_dbus_marshal_uint32), (_dbus_demarshal_double),
13671         (_dbus_demarshal_int32), (_dbus_demarshal_uint32),
13672         (_dbus_demarshal_string), (_dbus_marshal_get_field_end_pos),
13673         (_dbus_verbose_bytes), (_dbus_marshal_test):
13674         * dbus/dbus-marshal.h:
13675         * dbus/dbus-message-internal.h:
13676         * dbus/dbus-message.c: (_dbus_message_set_client_serial),
13677         (dbus_message_write_header), (_dbus_message_lock),
13678         (dbus_message_new), (dbus_message_ref), (dbus_message_unref),
13679         (dbus_message_get_name), (dbus_message_append_int32),
13680         (dbus_message_append_uint32), (dbus_message_append_double),
13681         (dbus_message_append_string), (dbus_message_append_byte_array),
13682         (dbus_message_get_fields_iter), (dbus_message_iter_ref),
13683         (dbus_message_iter_unref), (dbus_message_iter_has_next),
13684         (dbus_message_iter_next), (dbus_message_iter_get_field_type),
13685         (dbus_message_iter_get_string), (dbus_message_iter_get_int32),
13686         (dbus_message_iter_get_uint32), (dbus_message_iter_get_double),
13687         (decode_header_data), (_dbus_message_loader_return_buffer),
13688         (message_iter_test), (_dbus_message_test):
13689         * dbus/dbus-message.h:
13690         * dbus/dbus-protocol.h:
13691         * dbus/dbus-test.c: (main):
13692         * dbus/dbus-test.h:
13693         * glib/test-dbus-glib.c: (message_handler), (main):
13694         * test/echo-client.c: (main):
13695         * test/watch.c: (check_messages):
13696         Make messages sendable and receivable for real.
13697
13698 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
13699
13700         * dbus/dbus-marshal.c: (_dbus_marshal_double),
13701         (_dbus_marshal_string), (_dbus_marshal_byte_array):
13702         * dbus/dbus-message.c: (dbus_message_append_int32),
13703         (dbus_message_append_uint32), (dbus_message_append_double),
13704         (dbus_message_append_string), (dbus_message_append_byte_array):
13705         Handle OOM restoration.
13706
13707 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
13708
13709         * dbus/dbus-marshal.c: (_dbus_marshal_string),
13710         (_dbus_demarshal_string), (_dbus_marshal_test):
13711         * dbus/dbus-marshal.h:
13712         * dbus/dbus-message.c: (dbus_message_get_name),
13713         Document these functions.
13714
13715         (dbus_message_append_int32), (dbus_message_append_uint32),
13716         (dbus_message_append_double), (dbus_message_append_string),
13717         (dbus_message_append_byte_array):
13718         * dbus/dbus-message.h:
13719         Add functions for adding message fields of different types.
13720
13721         * dbus/dbus-protocol.h:
13722         Add the different types.
13723
13724 2003-01-05  Havoc Pennington  <hp@pobox.com>
13725
13726         * bus/connection.c: implement routines for handling connections,
13727         first thing is keeping a list of owned services on each connection
13728         and setting up watches etc.
13729
13730         * bus/services.c: implement a mapping from service names to lists
13731         of connections
13732
13733         * dbus/dbus-hash.c: add DBUS_HASH_POINTER
13734
13735         * dbus/dbus-threads.c (dbus_static_mutex_lock): add functions
13736         to use static mutexes for global data
13737
13738         * dbus/dbus-connection.c (dbus_connection_set_data): add new
13739         collection of functions to set/get application-specific data
13740         on the DBusConnection.
13741
13742 2003-01-04  Havoc Pennington  <hp@pobox.com>
13743
13744         * dbus/dbus-sysdeps.c (_dbus_sleep_milliseconds): new function
13745         (_dbus_poll): new function
13746
13747         * dbus/dbus-internals.h (_DBUS_STRUCT_OFFSET): new macro
13748         copied from GLib
13749
13750         * bus/loop.c: initial code for the daemon main loop
13751
13752 2003-01-04  Havoc Pennington  <hp@pobox.com>
13753
13754         * test/watch.c (error_handler): make it safe if the error handler
13755         is called multiple times (if we s/error handler/disconnect
13756         handler/ we should just guarantee it's called only once)
13757
13758         * dbus/dbus-transport.c (_dbus_transport_disconnect): call the
13759         error handler on disconnect (it's quite possible we should
13760         just change the error handler to a "disconnect handler," I'm
13761         not sure we have any other meaningful errors)
13762
13763         * configure.in: check for getpwnam_r
13764
13765         * dbus/dbus-transport.c, dbus/dbus-transport-unix.c,
13766         dbus/dbus-auth.c: add credentials support, add EXTERNAL auth
13767         mechanism as in SASL spec, using socket credentials
13768
13769         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): new function
13770         (_dbus_send_credentials_unix_socket): new function
13771
13772         * dbus/dbus-sysdeps.c (_dbus_accept_unix_socket): rename just
13773         dbus_accept()
13774         (_dbus_write): only check errno if <0 returned
13775         (_dbus_write_two): ditto
13776
13777 2003-01-02  Anders Carlsson  <andersca@codefactory.se>
13778
13779         * dbus/dbus-marshal.c: (_dbus_marshal_utf8_string),
13780         (_dbus_marshal_byte_array), (_dbus_demarshal_utf8_string),
13781         (_dbus_marshal_test):
13782         * dbus/dbus-marshal.h:
13783         Add _dbus_marshal_byte_array and rename _dbus_marshal_string
13784         to _dbus_marshal_utf8_string. Also fix some tests.
13785
13786 2002-12-28  Harri Porten  <porten@kde.org>
13787
13788         * configure.in: added check for C++ compiler and a very cheesy
13789         check for the Qt integration
13790
13791         * Makefile.am (SUBDIRS): compile qt subdir if support is enabled
13792
13793         * qt/Makefile.am: added
13794
13795         * qt/.cvsignore: added
13796
13797         * qt/dbus-qthread.cc, qt/dbus-qthread.cpp: renamed former to
13798         latter, added #ifdef QT_THREAD_SUPPORT guard.
13799
13800         * dbus/Makefile.am: added missing headers for make dist
13801
13802 2002-12-28  Kristian Rietveld  <kris@gtk.org>
13803
13804         * dbus/Makefile.am: fixup export-symbols-regex.
13805
13806 2002-12-27  Anders Carlsson  <andersca@codefactory.se>
13807
13808         * acinclude.m4: Add this file and put the
13809         PKG_CHECK_MODULE macro in it.
13810
13811 2002-12-27  Anders Carlsson  <andersca@codefactory.se>
13812
13813         * dbus/dbus-marshal.c: (_dbus_marshal_string),
13814         (_dbus_demarshal_double), (_dbus_demarshal_int32),
13815         (_dbus_demarshal_uint32), (_dbus_demarshal_string),
13816         (_dbus_marshal_test):
13817         Make the demarshalling routines align the pos argument.
13818         Add string marshalling tests and fix the obvious bugs
13819         discovered.
13820
13821 2002-12-26  Havoc Pennington  <hp@pobox.com>
13822
13823         * dbus/dbus-auth.c: fixes fixes fixes
13824
13825         * dbus/dbus-transport-unix.c: wire up support for
13826         encoding/decoding data on the wire
13827
13828         * dbus/dbus-auth.c (_dbus_auth_encode_data)
13829         (_dbus_auth_decode_data): append to target string
13830         instead of nuking it.
13831
13832 2002-12-26  Havoc Pennington  <hp@pobox.com>
13833
13834         * dbus/dbus-marshal.h (DBUS_COMPILER_BYTE_ORDER): #ifdef
13835         WORDS_BIGENDIAN then compiler byte order is DBUS_BIG_ENDIAN,
13836         doh
13837
13838         * dbus/dbus-marshal.c: Add macros to do int swapping in-place and
13839         avoid swap_bytes() overhead (ignoring possible assembly stuff for
13840         now). Main point is because I wanted unpack_uint32 to implement
13841         _dbus_verbose_bytes
13842         (_dbus_verbose_bytes): new function
13843
13844         * dbus/dbus-string.c (_dbus_string_validate_ascii): new function
13845
13846         * dbus/dbus-message.c (_dbus_message_loader_get_is_corrupted): add
13847         mechanism to handle a corrupt message stream
13848         (_dbus_message_loader_new): fix preallocation to only prealloc,
13849         not prelengthen
13850
13851         * dbus/dbus-string.c (_dbus_string_skip_blank): fix this function
13852         (_dbus_string_test): enhance tests for copy/move and fix the
13853         functions
13854
13855         * dbus/dbus-transport-unix.c: Hold references in more places to
13856         avoid reentrancy problems
13857
13858         * dbus/dbus-transport.c: ditto
13859
13860         * dbus/dbus-connection.c (dbus_connection_dispatch_message): don't
13861         leak reference count in no-message case
13862
13863         * test/watch.c (do_mainloop): handle adding/removing watches
13864         during iteration over the watches. Also, ref the connection/server
13865         stored on a watch, so we don't try to mangle a destroyed one.
13866
13867         * dbus/dbus-transport-unix.c (do_authentication): perform
13868         authentication
13869
13870         * dbus/dbus-auth.c (get_state): add a state
13871         AUTHENTICATED_WITH_UNUSED_BYTES and return it if required
13872         (_dbus_auth_get_unused_bytes): append the unused bytes
13873         to the passed in string, rather than prepend
13874
13875         * dbus/dbus-transport.c (_dbus_transport_init_base): create
13876         the auth conversation DBusAuth
13877
13878         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd)
13879         (_dbus_transport_new_for_domain_socket): when creating a
13880         transport, pass in whether it's a client-side or server-side
13881         transport so we know which DBusAuth to create
13882
13883 2002-12-03  Havoc Pennington  <hp@pobox.com>
13884
13885         * dbus/dbus-transport-unix.c (unix_finalize): finalize base
13886         _after_ finalizing the derived members
13887         (unix_connection_set): unref watch if we fail to add it
13888
13889         * dbus/dbus-connection.c (dbus_connection_unref): delete the
13890         transport first, so that the connection owned by the
13891         transport will be valid as the transport finalizes.
13892
13893         * dbus/dbus-transport-unix.c (unix_finalize): free the write_watch
13894         if necessary, and remove watches from the connection.
13895
13896         * dbus/dbus-watch.c (_dbus_watch_list_free): improve a comment
13897
13898 2002-12-26  Anders Carlsson  <andersca@codefactory.se>
13899
13900         * dbus/dbus-marshal.c: (_dbus_marshal_string),
13901         (_dbus_demarshal_double), (_dbus_demarshal_int32),
13902         (_dbus_demarshal_uint32), (_dbus_demarshal_string),
13903         (_dbus_marshal_test):
13904         * dbus/dbus-marshal.h:
13905         Add string marshal functions and have the demarshal functions
13906         return the new position.
13907
13908 2002-12-25  Havoc Pennington  <hp@pobox.com>
13909
13910         * doc/dbus-sasl-profile.txt: docs on the authentication protocol,
13911         it is a simple protocol that just maps directly to SASL.
13912
13913         * dbus/dbus-auth.h, dbus/dbus-auth.c: authentication protocol
13914         initial implementation, not actually used yet.
13915
13916         * dbus/dbus-string.c (_dbus_string_find): new function
13917         (_dbus_string_equal): new function
13918         (_dbus_string_base64_encode): new function
13919         (_dbus_string_base64_decode): new function
13920
13921 2002-12-25  Anders Carlsson  <andersca@codefactory.se>
13922
13923         * dbus/Makefile.am:
13924         * dbus/dbus-marshal.c: (swap_bytes), (_dbus_marshal_double),
13925         (_dbus_marshal_int32), (_dbus_marshal_uint32),
13926         (_dbus_demarshal_double), (_dbus_demarshal_int32),
13927         (_dbus_demarshal_uint32), (_dbus_marshal_test):
13928         * dbus/dbus-marshal.h:
13929         * dbus/dbus-protocol.h:
13930         * dbus/dbus-test.c: (main):
13931         * dbus/dbus-test.h:
13932         Add un-optimized marshalling/demarshalling routines.
13933
13934 2002-12-25  Harri Porten  <porten@kde.org>
13935
13936         * qt/dbus-qt.h: adjusted ctor and getter to KDE/Qt conventions
13937
13938 2002-12-24  Zack Rusin  <zack@kde.org>
13939
13940         * qt/dbus-qthread.cc: adding - integrates QMutex into Dbus
13941         * qt/dbus-qt.h: skeleton with two sample implemenatation of the
13942         main loop stuff
13943
13944 2002-12-24  Havoc Pennington  <hp@pobox.com>
13945
13946         * glib/dbus-gthread.c: fix include
13947
13948         * glib/dbus-glib.h: rename DBusMessageHandler for now.
13949         I think glib API needs to change, though, as you don't
13950         want to use DBusMessageFunction, you want to use the
13951         DBusMessageHandler object. Probably
13952         dbus_connection_open_with_g_main_loop()
13953         and dbus_connection_setup_g_main_loop() or something like that
13954         (but think of better names...) that just create a connection
13955         that has watch/timeout functions etc. already set up.
13956
13957         * dbus/dbus-connection.c
13958         (dbus_connection_send_message_with_reply): new function just to
13959         show how the message handler helps us deal with replies.
13960
13961         * dbus/dbus-list.c (_dbus_list_remove_last): new function
13962
13963         * dbus/dbus-string.c (_dbus_string_test): free a string that
13964         wasn't
13965
13966         * dbus/dbus-hash.c: use memory pools for the hash entries
13967         (rebuild_table): be more paranoid about overflow, and
13968         shrink table when we can
13969         (_dbus_hash_test): reduce number of sprintfs and write
13970         valid C89. Add tests for case where we grow and then
13971         shrink the hash table.
13972
13973         * dbus/dbus-mempool.h, dbus/dbus-mempool.c: memory pools
13974
13975         * dbus/dbus-connection.c (dbus_connection_register_handler)
13976         (dbus_connection_unregister_handler): new functions
13977
13978         * dbus/dbus-message.c (dbus_message_get_name): new
13979
13980         * dbus/dbus-list.c: fix docs typo
13981
13982         * dbus/dbus-message-handler.h, dbus/dbus-message-handler.c:
13983         an object representing a handler for messages.
13984
13985 2002-12-16  Anders Carlsson  <andersca@codefactory.se>
13986
13987         * glib/dbus-glib.h:
13988         * glib/dbus-gthread.c: (dbus_gthread_init):
13989         Don't use the gdbus prefix for public functions.
13990
13991 2002-12-16  Anders Carlsson  <andersca@codefactory.se>
13992
13993         * Makefile.am:
13994         * configure.in:
13995         Add GLib checks and fixup .pc files
13996
13997         * glib/Makefile.am:
13998         * glib/dbus-glib.h:
13999         * glib/dbus-gmain.c: (gdbus_connection_prepare),
14000         (gdbus_connection_check), (gdbus_connection_dispatch),
14001         (gdbus_add_connection_watch), (gdbus_remove_connection_watch),
14002         (dbus_connection_gsource_new):
14003         * glib/dbus-gthread.c: (dbus_gmutex_new), (dbus_gmutex_free),
14004         (dbus_gmutex_lock), (dbus_gmutex_unlock), (dbus_gthread_init):
14005         * glib/test-dbus-glib.c: (message_handler), (main):
14006         Add GLib support.
14007
14008 2002-12-15  Harri Porten  <porten@kde.org>
14009
14010         * autogen.sh: check for libtoolize before attempting to use it
14011
14012         * dbus/dbus-transport-unix.c: include <sys/time.h> for timeval
14013         struct.
14014
14015         * .cvsignore: ignore more stamp files
14016
14017         * dbus/dbus-watch.c (_dbus_watch_list_new): fixed doc error
14018
14019         * test/Makefile.am: added -I$(top_srcdir) to be able to compile
14020         without make install.
14021
14022 2002-12-15  Havoc Pennington  <hp@pobox.com>
14023
14024         * dbus/dbus-threads.c: add thread stubs that a higher library
14025         layer can fill in. e.g. the GLib wrapper might fill them in with
14026         GThread stuff. We still need to use this thread API to
14027         thread-safe-ize the library.
14028
14029 2002-12-12  Havoc Pennington  <hp@pobox.com>
14030
14031         * dbus/dbus-transport-unix.c, dbus/dbus-server-unix.c: use the
14032         below new interfaces and include fewer system headers.
14033
14034         * dbus/dbus-sysdeps.c (_dbus_read): new function
14035         (_dbus_write): new function
14036         (_dbus_write_two): new function
14037         (_dbus_connect_unix_socket): new function
14038         (_dbus_listen_unix_socket): new function
14039
14040         * dbus/dbus-message-internal.h: change interfaces to use
14041         DBusString
14042
14043 2002-12-11  Havoc Pennington  <hp@pobox.com>
14044
14045         * dbus/dbus-types.h: add dbus_unichar
14046
14047         * dbus/dbus-internals.c (_dbus_verbose): use _dbus_getenv
14048
14049         * dbus/dbus-connection.c (dbus_connection_send_message): return
14050         TRUE on success
14051
14052         * dbus/dbus-transport.c: include dbus-watch.h
14053
14054         * dbus/dbus-connection.c: include dbus-message-internal.h
14055
14056         * HACKING: add file with coding guidelines stuff.
14057
14058         * dbus/dbus-string.h, dbus/dbus-string.c: Encapsulate all string
14059         handling here, for security purposes (as in vsftpd). Not actually
14060         using this class yet.
14061
14062         * dbus/dbus-sysdeps.h, dbus/dbus-sysdeps.c: Encapsulate all
14063         system/libc usage here, as in vsftpd, for ease of auditing (and
14064         should also simplify portability). Haven't actually moved all the
14065         system/libc usage into here yet.
14066
14067 2002-11-25  Havoc Pennington  <hp@pobox.com>
14068
14069         * dbus/dbus-internals.c (_dbus_verbose): fix to not
14070         always print the first verbose message.
14071
14072 2002-11-24  Havoc Pennington  <hp@pobox.com>
14073
14074         * test/echo-client.c, test/echo-server.c: cheesy test
14075         clients.
14076
14077         * configure.in (AC_CHECK_FUNCS): check for writev
14078
14079         * dbus/dbus-message.c (_dbus_message_get_network_data): new
14080         function
14081
14082         * dbus/dbus-list.c (_dbus_list_foreach): new function
14083
14084         * dbus/dbus-internals.c (_dbus_verbose): new function
14085
14086         * dbus/dbus-server.c, dbus/dbus-server.h: public object
14087         representing a server that listens for connections.
14088
14089         * dbus/.cvsignore: create
14090
14091         * dbus/dbus-errors.h, dbus/dbus-errors.c:
14092         public API for reporting errors
14093
14094         * dbus/dbus-connection.h, dbus/dbus-connection.c:
14095         public object representing a connection that
14096         sends/receives messages. (Same object used for
14097         both client and server.)
14098
14099         * dbus/dbus-transport.h, dbus/dbus-transport.c:
14100         Basic abstraction for different kinds of stream
14101         that we might read/write messages from.
14102
14103 2002-11-23  Havoc Pennington  <hp@pobox.com>
14104
14105         * dbus/dbus-internals.h (_DBUS_INT_MAX): add _DBUS_INT_MIN
14106         _DBUS_INT_MAX
14107
14108         * dbus/dbus-test.c (main): add list test, and include
14109         dbus-test.h as intended
14110
14111         * dbus/dbus-hash.c (_dbus_hash_table_remove_string)
14112         (_dbus_hash_table_remove_int): return value indicates
14113         whether the entry existed to remove
14114
14115         * dbus/dbus-list.c: add linked list utility class,
14116         with docs and tests
14117
14118         * dbus/dbus-hash.c: add TODO item about shrinking the hash bucket
14119         array sometimes.
14120
14121 2002-11-23  Havoc Pennington  <hp@pobox.com>
14122
14123         * Doxyfile.in (INCLUDE_FILE_PATTERNS): expand DBUS_BEGIN_DECLS/
14124         DBUS_END_DECLS to nothing, that should fix this once and for all
14125
14126         * Doxyfile.in (JAVADOC_AUTOBRIEF): set to YES
14127
14128         * dbus/dbus-message.c, dbus/dbus-hash.c:
14129         add some missing @brief
14130
14131 2002-11-23  Havoc Pennington  <hp@pobox.com>
14132
14133         * dbus/dbus-message.h: put semicolons after DEBUG_BEGIN_DECLS
14134         to avoid confusing Doxygen
14135
14136         * dbus/dbus-hash.c: @} not }@
14137
14138         * dbus/dbus-message.c (struct DBusMessage): split out
14139         internals docs
14140
14141 2002-11-23  Havoc Pennington  <hp@pobox.com>
14142
14143         * configure.in: pile on more warning flags if using gcc
14144
14145         * Doxyfile.in (EXTRACT_STATIC): set to NO, so we don't have
14146         to document static functions
14147
14148         * configure.in: add summary to end of configure so it
14149         looks nice and attractive
14150
14151         * dbus/dbus-hash.c: finish implementation and write unit
14152         tests and docs
14153
14154         * configure.in: add --enable-tests to enable unit tests
14155
14156         * dbus/dbus-test.c: test program to run unit tests
14157         for all files in dbus/*, initially runs a test for
14158         dbus-hash.c
14159
14160         * dbus/dbus-internals.h: file to hold some internal utility stuff
14161
14162 2002-11-22  Havoc Pennington  <hp@redhat.com>
14163
14164         * dbus/dbus-hash.c: copy in Tcl hash table, not yet
14165         "ported" away from Tcl
14166
14167         * dbus/dbus-types.h: header for types such as dbus_bool_t
14168
14169 2002-11-22  Havoc Pennington  <hp@redhat.com>
14170
14171         * dbus/dbus.h: fixups for doc warnings
14172
14173         * Doxyfile.in (FILE_PATTERNS): we need to scan .h to pick up
14174         macros
14175         (QUIET): make it quiet so we can see warnings
14176
14177         * dbus/dbus-memory.c: teach D-BUS to allocate and free memory
14178
14179 2002-11-22  Havoc Pennington  <hp@redhat.com>
14180
14181         * Makefile.am: include "Doxyfile" target in all-local
14182
14183         * configure.in: generate the Doxyfile
14184
14185         * Doxyfile.in: move Doxyfile here, so we can use
14186         configure to generate a Doxyfile with the right
14187         version number etc.
14188
14189 2002-11-22  Havoc Pennington  <hp@redhat.com>
14190
14191         * dbus/dbus-message.c: move inline docs into .c file
14192
14193         * Doxyfile (OUTPUT_DIRECTORY): move output to doc/api
14194         so all docs are under doc/
14195         (MAN_EXTENSION): generate man pages. Use extension
14196         ".3dbus" which matches ".3qt" on my system,
14197         I guess this is OK, I don't know really.
14198         (FILE_PATTERNS): look for .c files not .h, makes sense
14199         for plain C I think
14200
14201 2002-11-22  Havoc Pennington  <hp@pobox.com>
14202
14203         * Makefile.am (SUBDIRS): rename subdir "server" to "bus"
14204         because any app can be a server, and any app can be a client,
14205         the bus is a special kind of server.
14206
14207 Thu Nov 21 23:35:31 2002  Zack Rusin  <zack@kde.org>
14208
14209         * Doxyfile : adding. Still needs Makefile rules to be generated
14210         automatically (just run "doxygen" in the toplevel dir for now to
14211         generate docs)
14212
14213         * dbus/dbus-message.h : Adding sample docs (javadoc since
14214         resembles gtk-doc a little more)
14215
14216         * dbus/dbus.h : Adding sample docs
14217
14218 2002-11-21  Havoc Pennington  <hp@redhat.com>
14219
14220         * dbus/Makefile.am (INCLUDES): define DBUS_COMPILATION
14221         so we can allow ourselves to include files directly,
14222         instead of having to use dbus.h
14223
14224         * dbus/dbus.h: fill in
14225
14226         * dbus/dbus-message.h: sketch out a sample header file.
14227         Include griping if you include it directly instead of
14228         via dbus.h
14229
14230         * dbus/dbus-macros.h: new file with macros for extern "C",
14231         TRUE/FALSE, NULL, etc.
14232
14233         * doc/file-boilerplate.c: put include guards in here
14234
14235 2002-11-21  Havoc Pennington  <hp@redhat.com>
14236
14237         * doc/file-boilerplate.c: include both AFL and GPL boilerplate.
14238
14239         * COPYING: include the GPL as well, and license code
14240         under both AFL and GPL.
14241
14242 2002-11-21  Havoc Pennington  <hp@redhat.com>
14243
14244         * acconfig.h: get rid of this
14245
14246         * autogen.sh (run_configure): add --no-configure option
14247
14248         * configure.in: remove AC_ARG_PROGRAM to make
14249         autoconf complain less. add AC_PREREQ.
14250         add AC_DEFINE third arg.
14251
14252 2002-11-21  Anders Carlsson  <andersca@codefactory.se>
14253
14254         * doc/Makefile.am:
14255         Fix references so we can distcheck.
14256
14257 2002-11-21  Havoc Pennington  <hp@redhat.com>
14258
14259         * Initial module creation
14260