* dbus/dbus-marshal-recursive-util.c, dbus/dbus-marshal-recursive.c:
[platform/upstream/dbus.git] / ChangeLog
1 2006-09-08  John (J5) Palmieri  <johnp@redhat.com>
2
3         * dbus/dbus-marshal-recursive-util.c, dbus/dbus-marshal-recursive.c:
4         remove DBusMark
5
6 2006-09-10  Havoc Pennington  <hp@redhat.com>
7
8        patch mostly by Peter Kümmel, bug #8211
9         
10         * dbus/dbus-sysdeps-unix.c: new file, which splits out
11         unix-specific stuff in dbus-sysdeps.c
12
13         * dbus/dbus-sysdeps.c: don't include any UNIX-only headers, 
14         and move unix-specific stuff to dbus-sysdeps-unix.c
15
16         * configure.in: check HAVE_ERRNO_H
17         
18 2006-09-08  John (J5) Palmieri  <johnp@redhat.com>
19
20         * bus/test-main.c (main): Initialize threading during tests
21
22         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
23         Unlock connection on error
24         (generate_local_error_message): static method for generating
25         an error message when we don't have a message to reply to
26         (_dbus_connection_block_pending_call): Send a disconnect error
27         instead of just a timeout (NULL) when the bus gets disconnected
28         while blocking for a reply.
29         
30 2006-09-08  John (J5) Palmieri  <johnp@redhat.com>
31
32         * dbus/dbus-connection.c (dbus_connection_dispatch): Properly remove
33         filters (Patch from Kimmo Hämäläinen 
34         <kimmo dot hamalainen at nokia dot com>)
35
36 2006-09-07  John (J5) Palmieri  <johnp@redhat.com>
37
38         * dbus/dbus-connection-internal.h: Add prototype for 
39         _dbus_connection_test_get_locks to remove warning
40
41 2006-09-07  John (J5) Palmieri  <johnp@redhat.com>
42
43         * dbus/dbus-spawn.c (_dbus_spawn_async_with_babysitter): Make sure we
44         close child_err_report_pipe[WRITE_END] on exec (Patch from 
45         Kimmo Hämäläinen <kimmo dot hamalainen at nokia dot com>)
46
47 2006-09-07  John (J5) Palmieri  <johnp@redhat.com>
48
49         * Clean up close calls to use _dbus_close (Patch from 
50         Kimmo Hämäläinen <kimmo dot hamalainen at nokia dot com>)
51
52 2006-09-06  John (J5) Palmieri  <johnp@redhat.com>
53
54         * doc/TODO:
55         - Remove pending call locking todo item
56         - dbus_connection_open now holds hard ref.  Remove todo item
57         - do proper locking on _dbus_bus_check_connection_and_unref
58           and handle DBUS_BUS_STARTER. Remove todo item
59         - Warn on closing of a shared connection.  Remove todo item
60
61         * bus/bus.c, bus/connection.c, bus/dispatch.c, dbus/dbus-bus.c,
62         dbus/dbus-connection.c: Use the dbus_connection_close_internal
63         so we don't get the warning when closing shared connections
64
65         * test/test-service.c, test/test-shell-service.c: Applications
66         don't close shared connections themselves so we unref instead of
67         close
68
69         * test/test-utils.c (test_connection_shutdown): Close the connection
70
71         * dbus/dbus-bus.c (_dbus_bus_check_connection_and_unref): Changed to
72         _dbus_bus_check_connection_and_unref_unlocked since we only call this
73         method on a locked connection.  
74         Make sure we call _dbus_connection_unref_unlocked instead of 
75         dbus_connection_unref also.
76         Handle DBUS_BUS_STARTER correctly
77
78         * dbus/dbus-connection.c (connection_record_shared_unlocked):
79         Mark as shared and hard ref the connection
80         (connection_forget_shared_unlocked): Remove the hard ref from the 
81         connection
82         (_dbus_connection_close_internal_and_unlock):  New internal function
83         which takes a locked connection and unlocks it after closing it
84         (_dbus_connection_close_internal): New internal function which acts
85         like the origonal dbus_connection_close method by grabbing a connection
86         lock and calling _dbus_connection_close_internal_and_unlock
87         (dbus_connection_close): Public close method, warns when the app
88         trys to close a shared connection
89
90 2006-09-06  John (J5) Palmieri  <johnp@redhat.com>
91
92         * bus/driver.c:
93         (bus_driver_generate_introspect_string): New method for populating
94         a DBusString with the introspect data
95         (bus_driver_handle_introspect): Move introspect generation code to 
96         bus_driver_generate_introspect_string
97
98         * bus/main.c:
99         (introspect): New function which prints out the intropect data and
100         exits
101         (main): Add a --introspect switch
102
103 2006-09-06  John (J5) Palmieri  <johnp@redhat.com>
104
105         * doc/TODO: Removed dtd publishing item.  
106         It seems the dtd has already been added at
107         http://www.freedesktop.org/standards/dbus/1.0/introspect.dtd
108
109 2006-09-05  John (J5) Palmieri  <johnp@redhat.com>
110
111         * doc/TODO, various source files: Audited todo's and FIXME's and
112         prepended the ones we should be looking at with 1.0.  Those
113         prepended with 1.0? need clerification or might not be needed
114         for 1.0
115
116 2006-09-05  John (J5) Palmieri  <johnp@redhat.com>
117
118         * dbus/dbus-pending-call.c: Add some checks so we don't crash on
119         NULL in the public API (Patch from Kimmo Hämäläinen 
120         <kimmo dot hamalainen at nokia dot com>)
121
122 2006-09-05  John (J5) Palmieri  <johnp@redhat.com>
123
124         * configure.in: Fix for OS-X compile time endian issues (patch from
125         Benjamin Reed <ranger at befunk dot com>)
126
127 2006-09-05  John (J5) Palmieri  <johnp@redhat.com>
128
129         * configure.in: Check for no-common compiler flag (OS-X fix from
130         Benjamin Reed <ranger at befunk dot com>)
131
132 2006-09-01  John (J5) Palmieri  <johnp@redhat.com>
133
134         * tools/dbus-launch.c: Add a sigterm handler (patch from Frederic Crozat
135         <fcrozat at mandriva dot com>)
136
137 2006-08-29  Havoc Pennington  <hp@redhat.com>
138
139         * test/test-service.c (path_message_func): fix lack of return value
140
141         * dbus/dbus-sysdeps.c (_dbus_printf_string_upper_bound): fix
142         formatting, remove #ifdef, and fix docs. #ifdef doesn't make
143         any more sense than on anything else in this file.
144         (_dbus_get_tmpdir): add const to return value, and keep the
145         results of the various getenv around in a static variable.
146
147 2006-08-29  Havoc Pennington  <hp@redhat.com>
148
149         * dbus/dbus-sysdeps-util.c, dbus/dbus-sysdeps-util-unix.c: change
150         from Ralf Habacker to move UNIX-specific sysdeps into a separate file.
151
152 2006-08-25  John (J5) Palmieri  <johnp@redhat.com>
153
154         * test/Makefile.am: change find to use syntax that works with non
155         gnu versions of find
156
157 2006-08-25  John (J5) Palmieri  <johnp@redhat.com>
158
159         * dbus/dbus-transport.c: fix invalid deref when checking if
160         a vtable method exists (Patch from Christian Ehrlicher 
161         <ch dot ehrlicher at gmx dot de>)
162
163 2006-08-25  John (J5) Palmieri  <johnp@redhat.com>
164
165         * configure.in, dbus/Makefile.am, test/name-test/run-test.sh, 
166         test/name-test/Makefile.am: Fixed some issues with getting get dbus 
167         to build with builddir != srcdir (Taken from a patch by Bernard Leak
168         <bernard at brenda-arkle dot demon dot co dot uk>)
169
170 2006-08-25  John (J5) Palmieri  <johnp@redhat.com>
171
172         * configure.in: Fix DBUS_DAEMONDIR to use EXPANDED_BINDIR for the
173         default case
174
175 2006-08-25  John (J5) Palmieri  <johnp@redhat.com>
176
177         * configure.ac, bus/Makefile.am: Generalize kqueue support so that
178         it works on any system providing this interface, not only FreeBSD.
179         For example, NetBSD. (Patch by Julio M. Merino Vidal  <jmmv at NetBSD dot org>)
180
181 2006-08-20  Havoc Pennington  <hp@redhat.com>
182
183         * doc/dbus-faq.xml, doc/dbus-tutorial.xml: some improvements to
184         the docs
185
186 2006-08-18  John (J5) Palmieri  <johnp@redhat.com>
187
188         * Released 0.92 
189
190 2006-08-18  John (J5) Palmieri  <johnp@redhat.com>
191
192         * dbus/dbus-threads.c (dbus_threads_init): change the documentation
193         to reflect the init late change
194
195         * bus/bus.c (bus_context_new): Check user before we fork so we can
196         print out an error message a user will be able to see
197
198 2006-08-18  John (J5) Palmieri  <johnp@redhat.com>
199
200         Patch provided by Ralf Habacker (ralf dot habacker at freenet dot de) 
201
202         * dbus/dbus-sysdeps.c, dbus/dbus-threads.c, dbus/dbus-internals.h:
203         Add two more global locks for use on windows platforms.  These are
204         unused on non-windows platforms but are not ifdefed out to avoid
205         potential bugs (i.e. the few bytes lost does not warrent the extra
206         maintanence and complexity that having seperate sets of locks would
207         cause)
208
209 2006-08-18  John (J5) Palmieri  <johnp@redhat.com>
210
211         * bus/services.c (bus_registry_acquire_service): Return an error
212         when an application tries to register the org.freedesktop.DBus Bus Name
213
214         * bus/services.c (bus_registry_release_service): Return an error
215         when an application tries to release the org.freedesktop.DBus Bus Name
216
217 2006-08-17  Alp Toker  <alp@atoker.com>
218
219         * doc/dbus-specification.xml: Fix some minor typos.
220
221 2006-08-17  John (J5) Palmieri  <johnp@redhat.com>
222
223         * configure.in: use $with_init_scripts instead of $operating_system
224         to determine where to store the pid since the init scripts manipulate 
225         the pid file (patch from Marcelo Ricardo Leitner 
226         <marcelo dot leitner at terra dot com dot br>.  
227
228 2006-08-16  John (J5) Palmieri  <johnp@redhat.com>
229
230         * dbus/dbus-threads.c: Add static DBusList *uninitialized_mutex_list and
231         static DBusList *uninitialized_condvar_list to support new late 
232         initialization threading model.  In this model threads can be initialized
233         even after the D-Bus API has been used but still needs to be initialized 
234         before the second thread has been started.  Mutexes and condvar addresses
235         are stored in the two static lists and are replaced with actuall locks
236         when threads are initalized.
237         (_dbus_mutex_new_at_location): New method for creating a mutex and placing
238         the location into the static list
239         (_dbus_mutex_free_at_location): New method for removing a mutex location 
240         from the static list and freeing the mutex
241         (_dbus_condvar_new_at_location): New method for creating a conditional 
242         variable and placing the location into the static list
243         (_dbus_condvar_free_at_location): New method for removing a conditional
244         variable location from the static list and freeing the conditional variable 
245         (init_uninitialized_locks): Atomic method which goes through the static 
246         lists of mutex and condvar location and updates them with actuall locks
247         (init_global_locks): changed to init_locks
248         
249         * dbus/dbus-connection.c:
250         (_dbus_connection_test_get_locks): New method for tests to check connections
251         (_dbus_connection_new_for_transport): Use the new at_location mutex and
252         condvar API
253         (dbus_connection_allocate_data_slot): Pass in the global lock address
254         to _dbus_data_slot_allocator_alloc
255
256         * dbus/dbus-dataslot.c:
257         (_dbus_data_slot_allocator_alloc): Use the address of the mutex
258         instead of the mutex itself
259
260         * dbus/dbus-message.c:
261         (dbus_message_allocate_data_slot): Pass in the global lock address
262         to _dbus_data_slot_allocator_alloc
263
264         * dbus/dbus-pending-call.c:
265         (dbus_pending_call_allocate_data_slot): Pass in the global lock address
266         to _dbus_data_slot_allocator_alloc
267
268         * dbus/dbus-server.c:
269         (_dbus_server_init_base): Use the new at_location mutex API
270         (dbus_server_allocate_data_slot): Pass in the global lock address
271         to _dbus_data_slot_allocator_alloc
272
273         * test/name-test/test-threads-init.c: New test case for late thread
274         initialization
275
276 2006-08-14  John (J5) Palmieri  <johnp@redhat.com>
277
278         * dbus/dbus-dataslot.c (_dbus_data_slot_allocator_alloc):
279         Change _dbus_abort to _dbus_assert_not_reached because _dbus_abort
280         causes compile problems when asserts are turned off
281         Keeping _dbus_warn for printing out the message so even if
282         asserts are turned off the user gets the messages that something is 
283         wrong 
284
285 2006-08-14  John (J5) Palmieri  <johnp@redhat.com>
286
287         Patches by Kjartan Maraas <kmaraas at gnome dot org>
288
289         * bus/services.c (bus_service_list_queued_owners):
290         Add a pointer cast to fix compiler warning
291
292         * dbus/dbus-dataslot.c (_dbus_data_slot_list_get):
293         return a NULL instead of FALSE since the return type
294         is not expecting a boolean
295
296         * dbus/dbus-marshal-basic.c (_dbus_marshal_test):
297         Remove unused variable
298
299         * dbus/dbus-marshal-recursive-util.c (node_new):
300         return a NULL instead of FALSE since the return type
301         is not expecting a boolean
302
303         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
304         Send a NULL into _dbus_transport_new_for_fd instead of a FALSE
305         because we are expecting a pointer not a boolean
306
307         * dbus/dbus-sysdeps-util.c (_dbus_get_tmpdir): 
308         add void as the parameter so some compilers
309         don't complain
310
311         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_domain_socket,
312           _dbus_transport_new_for_tcp_socket):
313         Send a NULL into _dbus_transport_new_for_fd instead of a FALSE
314         because we are expecting a pointer not a boolean
315
316         * test/shell-test.c (test_command_line):
317         cast the second argument to _dbus_list_append to avoid compiler
318         warnings
319
320         * test/test-names.c (main): remove unused variable
321
322         * test/test-service.c (check_hello_from_self_reply):
323         Initialize echo_message and echo_reply to NULL
324         
325         * test/test-shell-service.c (handle_echo):
326         Remove unused variable and cast the third parameter passed to
327         dbus_connection_get_object_path_data to avoid compiler warrnings
328
329         * test/name-test/test-names.c (clear_message_queue):
330         Remove unused function
331
332         * test/name-test/test-pending-call-dispatch.c:
333         Fix format string in printf
334
335
336 2006-08-14  John (J5) Palmieri  <johnp@redhat.com>
337
338         * dbus/dbus-bus.c:
339         * test/name-test/test-names.c:
340         Remove test method dbus_bus_connection_get_unique_name because 
341         we already have public method dbus_bus_get_unique_name that 
342         does the exact same thing
343
344 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
345
346         * dbus/dbus-signature.c:
347         fix typos in Julio's previous patch which cause make check to fail
348
349 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
350
351         * dbus/dbus-address.c (_dbus_address_test): Revert leaking strcmp.  
352         In any case it was wrong since this is a test checking to see if
353         address parsing is correct.  There was no need to get the true
354         tmp directory.  
355
356 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
357
358         * dbus/dbus-macros.h: Revert the addition of stddef.h
359         as we should not be adding it to library headers 
360
361 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
362
363         * dbus/dbus-signature.c:
364         Fix the unit tests so that they work if assertions are not enabled.
365         (patch from Julio M. Merino Vidal  <jmmv at NetBSD dot org>)
366
367 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
368
369         * tools/run-with-tmp-session-bus.sh:
370         * test/name-test/run-test.sh:
371         Remove bashisms (patch from Julio M. Merino Vidal
372         <jmmv at NetBSD dot org>)
373
374 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
375
376         * configure.in: add a version (>= 2.6.0) check for libxml2
377
378 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
379
380         * configure.in: make sure the compiler supports -Wfloat-equal
381         
382         * bus/dir-watch-dnotify.c: move functional code after 
383         variable declerations (C99 fix)  (patches from Jens Granseuer
384         <jensgr at gmx dot net>
385
386 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
387
388         * dbus/dbus-macros.h:
389         add #include <stddef.h> so that Sun compilers don't complain about
390         the defining NULL
391
392 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
393
394         * dbus/dbus-sysdeps.c:
395         * dbus/dbus-address.c:
396         * bus/activation.c:
397         * test/shell-test.c:
398         don't hardcode tmp directory (patch from Dave Meikle 
399         <dmk at davemeikle dot co dot uk>)
400
401 2006-08-09  John (J5) Palmieri  <johnp@redhat.com>
402
403         * dbus/dbus-dataslot.c (_dbus_data_slot_allocator_alloc):
404         Change an assert to a detailed warning and abort.  
405         When allocator->lock != mutex it indicates that the user has failed
406         to initalize threads before using the D-Bus library.  This warning
407         helps the user identify the issue and fix their app.
408
409 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
410
411         These are all patches from Kjartan Maraas <kmaraas at gnome dot org>
412         with cleanups of bugs found from Coverity reports:
413
414         * dbus/dbus-sysdeps-util.c (_dbus_write_pid_file):
415         close the file on error to avoid a leak
416
417         * bus/expirelist.c (bus_expire_list_test):
418         Check for NULL on dbus_new0
419
420         * bus/activation.c (update_directory):
421         remove dead code
422
423         * bus/config-parser.c (merge_service_context_hash, start_selinux_child):
424         Fix some leaks
425
426         * bus/bus.c (process_config_every_time):
427         Fixed a leak
428
429         * bus/desktop-file.c (parse_key_value):
430         Fixed leak
431
432         * bus/selinux.c (bus_selinux_id_table_insert):
433         Fixed leak
434
435 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
436
437         * dbus/dbus-object-tree.c (_dbus_object_subtree_new):
438         remove dead code
439
440 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
441
442         * tools/run-with-tmp-session-bus.sh: use #!/bin/sh instead of
443         #!/bin/bash
444
445 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
446
447         * Doxyfile.in: fix the INPUT line so we can generate docs 
448         when sourcedir != builddir (patch from Cygwin Ports maintainer
449         <yselkowitz at users dot sourceforge dot net>
450
451 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
452
453         * dbus/dbus-sysdeps.h:
454         * dbus/dbus-sysdeps.c: 
455         * dbus/dbus-string.c: 
456         s/_dbus_printf_length/_dbus_printf_string_upper_bound to comform with
457         GLib's function which does the same thing
458
459         * configure.in:
460         * bus/Makefile.am:
461         * bus/dir-watch-default.c:
462         * bus/dir-watch-dnotify.c:
463         * bus/dir-watch-kqueue.c:
464         Add kqueue directory watching for freebsd and split the directory
465         watching code into seperate files per method/arch
466         (patches from Timothy Redaelli <drizzt at gufi dotorg>)
467
468 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
469
470         * configure.in:
471         * tools/Makefile.am:
472         * tools/dbus-launch.c:
473         * bus/Makefile.am:
474         allow --with-dbus-daemondir switch to be used to make the
475         daemon install to a seperate bindir like /usr/libexec
476         (patch from Brian Cameron <brian dot cameron at sun dot com)
477
478 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
479
480         * bus/Makefile.am (install-data-hook): removed the slash after 
481         $(DESTDIR) so we don't get the double slash which does not work
482         in windows (patch from Andras Porjesz 
483         <andras dot porjesz at siemens dot com>)
484
485 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
486
487         * dbus/dbus-sysdeps.h:
488         * dbus/dbus-sysdeps.c: 
489           add _dbus_printf_length (patch from Peter Kümmel 
490           <syntheticpp at gmx dot net>)
491
492 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
493
494         * dbus/dbus-internals.c: unistd.h is not used 
495         (_dbus_verbose_real): only enable verbose printing 
496         if DBUS_VERBOSE environment var is set to '1'
497         (patch from Peter Kümmel <syntheticpp at gmx dot net>)
498
499 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
500
501         * configure.in: add a GCC flag check for -Wdeclaration-after-statement
502         so we still compile on older gcc (patch from Frederic Peters 
503         <fpeters at 0d dot be>
504
505 2006-08-04  Havoc Pennington  <hp@redhat.com>
506
507         * configure.in: add -Wdeclaration-after-statement
508
509         * dbus/dbus-connection.c: change all the pending call stuff to
510         reflect the fact that pending call operations use the connection
511         lock
512
513         * dbus/dbus-pending-call.c: add locking here
514
515         * dbus/dbus-errors.c (struct DBusRealError): don't make the name
516         field const consistent with how message field is done
517
518 2006-08-03  John (J5) Palmieri  <johnp@redhat.com>
519
520         * s/D-BUS/D-Bus/g
521
522 2006-08-03  John (J5) Palmieri  <johnp@redhat.com>
523
524         * dbus/dbus-object-tree.c: Patch by Benjamin Otte 
525         <in7y118 at public.uni-hamburg dot de> - fix invalid
526         read/write reported by valgrind
527
528 2006-07-24  John (J5) Palmieri  <johnp@redhat.com>
529
530         * Released 0.91
531
532 2006-07-22  John (J5) Palmieri  <johnp@redhat.com>
533
534         * dbus/dbus-connection.c:
535         (_dbus_connection_attach_pending_call_unlocked):
536         (connection_timeout_and_complete_all_pending_calls_unlocked):
537         Make sure we set timeout_added on pending calls to FALSE when
538         we remove the timeout from the connection
539
540 2006-07-21  John (J5) Palmieri  <johnp@redhat.com>
541
542         * Removed some extra bindings stuff lingering around (thanks timo)
543         * dbus-pendingcall.c (_dbus_pending_call_new): 
544         s/dbus_connection_ref/_dbus_connection_ref_unlocked fixes assertion
545         when we tried to take a lock on an already locked connection
546
547 2006-07-17  John (J5) Palmieri  <johnp@redhat.com>
548
549         * Released 0.90
550
551 2006-07-17  Havoc Pennington  <hp@redhat.com>
552
553         * dbus/dbus-marshal-basic.c (_dbus_type_to_string): support 64-bit
554         ints, reported by Owen Taylor
555
556 2006-07-17  John (J5) Palmieri  <johnp@redhat.com>
557
558         * doc/TODO:
559         * dbus/dbus-bus.c:
560         * dbus-errors.c:
561         * dbus/dbus-marshal-validate.c:
562           Removed TODO items which were fixed or are no longer relevent
563
564 2006-07-17  John (J5) Palmieri  <johnp@redhat.com>
565
566         * dbus-qt4-1.pc.in, dbus-sharp.pc.in:
567         Remove stray files from the stripped bindings
568
569 2006-07-16  Havoc Pennington  <hp@redhat.com>
570
571         * dbus/dbus-pending-call.c (_dbus_pending_call_set_timeout_error):
572         Improve the error message on reply timeout
573
574 2006-07-14  John (J5) Palmieri  <johnp@redhat.com>
575
576         * Remove all bindings
577
578 2006-07-13  John (J5) Palmieri  <johnp@redhat.com>
579
580         * dbus-connection.c (dbus_connection_send_with_reply): return TRUE
581         and set pending_reply out arg to NULL is connection is disconnected
582         (connection_timeout_and_complete_all_pending_calls_unlocked): New
583         static method for cleaning up pending calls on disconnect
584         (_dbus_connection_get_dispatch_status_unlocked): If we have pending 
585         calls queued timeouts on disconnect 
586
587          * dbus/dbus-pending-call.c (_dbus_pending_call_set_connection):
588         Remove 
589
590 2006-07-13  Carlos Garcia Campos  <carlosgc@gnome.org>
591
592         * bus/activation.[ch] (bus_activation_list_services): new function to 
593         get the list of services that can be activated
594
595         * bus/dispatch.c: test coverage for the new bus method
596         ListActivatableNames
597
598         * bus/driver.c: new bus method ListActivatableNames to get the list of
599         services that can be activated
600
601         * doc/dbus-specification.xml: ListActivatableNames method documentation
602
603 2006-07-12  John (J5) Palmieri  <johnp@redhat.com>
604         * dbus/Makefile.am: add dbus-pending-call-internal.h to the list of
605         source files
606
607 2006-07-12  John (J5) Palmieri  <johnp@redhat.com>
608         * dbus/dbus-message-factory.c:
609         Fix index into an array (patch by Peter Kümmel <syntheticpp at gmx.net>)
610
611 2006-07-12  John (J5) Palmieri  <johnp@redhat.com>
612         * dbus/dbus-connection-internal.h:
613         * dbus/dbus-connection.c:
614         * file dbus/dbus-pending-call.c:
615         * dbus/dbus-pending-call.h:
616         Make DBusPendingCall an opaque type even to D-Bus internals
617
618 2006-07-07  John (J5) Palmieri  <johnp@redhat.com>
619
620         * dbus/dbus-connection.h: remove connection_disconnect and replace with
621         connection_close
622
623         * dbus/dbus-connection.c: include dbus-bus.h
624         (_dbus_connection_read_write_dispatch): make static
625
626 2006-07-07  John (J5) Palmieri  <johnp@redhat.com>
627
628         * dbus/dbus-connection.c (dbus_connection_close): removed deprecated
629         function
630         (dbus_connection_dispatch): On disconnect unref any shared connections
631
632         * dbus/dbus-bus.c (_dbus_bus_check_connection_and_unref): new function
633         for cleaning up shared connections on disconnect
634         (internal_bus_get): get a hard refrence to shared connections when
635         they are created
636         
637         * doc/TODO: Remove items which are no longer relevent or have been fixed
638         Split 1.0 todo items with a 0.90 freeze todo list
639  
640 2006-06-14  Ross Burton  <ross@openedhand.com>
641
642         * glib/dbus-gobject.c:
643         Free a leaking GArray (surely not!) in dbus_g_method_return.
644
645 2006-06-14  Ross Burton  <ross@openedhand.com>
646
647         * tools/Makefile.am:
648         * tools/dbus-monitor.c:
649         Don't use the GLib bindings in dbus-monitor (patch from Ralf
650         Habacker).
651         
652 2006-06-14  Ross Burton  <ross@openedhand.com>
653
654         * tools/dbus-print-message.c:
655         Also print the object path when outputting signals or method calls.
656
657 2006-06-13  Thiago Macieira <thiago.macieira@trolltech.com>
658
659         * qt/src/Makefile.am: install the qdbus.h header.
660         This allows people to actually use the installed code.
661
662 2006-06-12  Ross Burton  <ross@openedhand.com>
663
664         * glib/dbus-gproxy.c:
665         Don't leak a GArray when firing signals (thank Rob Taylor for review).
666
667 2006-06-12  Thiago Macieira <thiago.macieira@trolltech.com>
668
669         * Released 0.62
670
671 2006-06-12  Thiago Macieira <thiago.macieira@trolltech.com>
672
673         * dbus/dbus-arch-deps.h.in: Remove spurious semi-colons that
674         break pedantic builds. Closes bug 6043 (patch approved by
675         Havoc back in February).
676
677 2006-06-12  Thiago Macieira <thiago.macieira@trolltech.com>
678
679         * qt/src/qdbusintegrator.cpp: Fix bug in parsing async methods
680         that took a QDBusMessage parameter.
681         * qt/src/qdbusbus.h: Add a default flag for RequestName.
682         * qt/tools/dbus.cpp: Don't use automatic call because we might
683         be calling an async method: request a reply.
684
685 2006-06-11  Thiago Macieira <thiago.macieira@trolltech.com>
686
687         * test/qt/*: Update the testcases, including testing the new
688         functionality of sending null QByteArray and QString over the
689         bus. Add new headertest test and restore the old
690         qdbusxmlparser test.
691
692 2006-06-11  Thiago Macieira <thiago.macieira@trolltech.com>
693
694         * qt/tools/dbuscpp2xml.cpp: Compile on Windows.
695         * qt/tools/dbusidl2cpp.cpp: Add missing newline.
696
697         * qt/examples/Makefile.am:
698         * qt/examples/chat.h: Use UI-generated files with the ui_*.h
699         form.
700
701         * qt/src/qdbusmarshall.cpp: Allow sending of QString() and
702         QByteArray() (nulls) over the bus.
703         * qt/src/qdbusabstractinterface.cpp: Use the correct variable,
704         the one that has the signature suffix stripped.
705         * qt/src/qdbusreply.h: Make some methods const.
706
707 2006-06-09  Thiago Macieira <thiago.macieira@trolltech.com>
708
709         Patch from Timo Hoenig <thoenig@suse.de>.
710
711         * qt/dbus/Makefile.am: New file.  Fix "make dist", add all headers
712         required during build to EXTRA_DIST.
713         * qt/src/Makefile.am: Fix "make dist", add 'qdbus.h' to EXTRA_DIST.
714         * qt/Makefile.am: Fix "make dist", add 'dbus' to DIST_SUBDIRS.
715         * configure.in: Fix "make dist", take care that the Makefile for
716         qt/dbus is being generated.
717
718 2006-06-07  John (J5) Palmieri  <johnp@redhat.com>
719
720         * bus/bus.c: Fix eavesdropping on method calls
721
722 2006-06-07  John (J5) Palmieri  <johnp@redhat.com>
723
724         * configure.in:
725         * dbus/dbus-userdb-util.c:
726         Add Solaris console owner patch from Artem Kachitchkine
727
728 2006-06-07  Thiago Macieira <thiago.macieira@trolltech.com>
729
730         * qt/Makfile.am:
731         * qt/src/Makefile.am: Fix the EXTRA_DIST after the
732         reorganisation. Thanks to Timo Hoenig for pointing this out.
733
734 2006-06-06  Robert McQueen  <robot101@debian.org>
735
736         * glib/dbus-gtype-specialized.c: Fix obvious leak of GArray in every
737           call to dbus_g_type_get_struct.
738
739 2006-06-06  Robert McQueen  <robot101@debian.org>
740
741         * glib/dbus-gvalue-utils.c: Fix the failing test where static string
742           pointers were put into a GPtrArray-based specialised collection, and
743           then freed along with the array. GValues which you add into
744           collections or maps which have the NOCOPY flag set are assumed to not
745           belong to the caller, so rather than the existing pointer-stealing
746           semantics, they are copied instead. Given that the main consumers of
747           this abstraction are the bindings themselves, I don't think this is
748           too bad, but others should watch their choice of take vs set_static.
749
750 2006-06-06  Robert McQueen  <robot101@debian.org>
751
752         * glib/dbus-gvalue-utils.c: Spotted a warning about the return value
753           of g_slist_prepend not being used. Fixed copying of slist-based
754           specialised collections, then wrote a test case and found that it was
755           all broken. Went on to fix iterating and appending too. Good thing
756           nobody uses this code yet.
757
758 2006-06-06  Robert McQueen  <robot101@debian.org>
759
760         * glib/dbus-gvalue-utils.c: Remove duplicated code by having all of
761           the iterators use gvalue_take_ptrarray_value (the GValues themselves
762           are discarded without unsetting, so it makes no difference whether
763           we take or set_static). Remove cases for G_TYPE_POINTER because
764           there really is nothing useful we can do with them in our
765           specialised types - we *need* boxed copy/free functions at the very
766           least.
767
768 2006-06-05  Thiago Macieira <thiago.macieira@trolltech.com>
769
770         * qt/dbus: Add directory. I had forgotten to add this
771         yesterday after the move...
772
773         * qt/examples/Makefile.am:
774         * qt/examples/dbus.cpp: Moved to qt/tools/dbus.cpp.
775
776         * qt/tools/Makefile.am:
777         * qt/tools/dbus.cpp: Moved from qt/examples/dbus.cpp.
778         Added feature to get and set properties.
779         Added validation of service, object path and interface names.
780
781         * qt/tools/dbusidl2cpp.cpp: Two new features:
782         1) Allow specifying both the header and the source file names,
783         by separating them with a colon.
784         2) Don't write an interface output if the -p switch wasn't
785         given, but the -a was.
786
787         * qt/src/*: Fix usage of Iterators and ConstIterators.
788         Fix shadowing of variables by other variables (-Wshadow).
789         Fix keyword-cleanliness in headers.
790         Fix ASCII-cast (QLatin1String, QLatin1Char).
791         Fix validation of member names.
792         Add extra checking of introspection data during XML parsing.
793         Various bug fixes.
794
795 2006-06-04  Thiago Macieira <thiago.macieira@trolltech.com>
796
797         * dbus/Makefile.am:
798         * dbus/qdbus.h: Remove unnecessary file. This is mirrored into
799         qt/dbus/qdbus.h now.
800
801 2006-06-04  Thiago Macieira <thiago.macieira@trolltech.com>
802
803         * configure.in: Make --disable-qt actually do
804           something. Patch inspired by Zack Rusin.
805
806 2006-06-04  Thiago Macieira <thiago.macieira@trolltech.com>
807
808         * qt/: Update to Subversion r548032.
809         This includes a big reorganisation of the files inside the
810         subdir.
811
812 2006-05-30  Sjoerd Simons  <sjoerd@luon.net>
813
814         * dbus/dbus-sysdeps.c: Make tcp socket connection error somewhat more
815         clear:  
816         "Failed to connect to socket <host>:<port> <error>" instead of
817         "Failed to connect to socket <host>: <error>:<port>"
818
819         * dbus/dbus-transport-unix.c: Fix crash when no host option is given
820         for a tcp transport. 
821
822 2006-05-29  Thiago Macieira  <thiago.macieira@trolltech.com>
823
824         * qt/*: Update the QtDBus bindings up to revision 546310 in
825         Subversion.
826         This adds the dbuscpp2xml tool, that parses a C++ header and
827         outputs a D-BUS Introspection XML.
828
829 2006-05-21  Havoc Pennington  <hp@redhat.com>
830
831         * glib/dbus-gproxy.c: Put in a pile of assertions that the proxy name
832         is not NULL when it shouldn't be. Also a couple of possible fixes
833         for #4637 though I don't understand why the bug happens, to be
834         honest... also the object constructor has an assert name != NULL
835         and the name is only currently NULL for peer-to-peer proxies that 
836         I don't think anyone uses? So it should be asserting.
837         Anyway, for now at least see if we get an earlier assertion failure.
838
839         * glib/dbus-gvalue-utils.c: Put in a couple of assertions for
840         apparently broken code to be sure the tests fail and someone 
841         will fix them...
842
843 2006-05-07  Thiago Macieira  <thiago.macieira@trolltech.com>
844
845         * qt/qdbusmarshall.cpp: Fix a problem of demarshalling lists
846         and arrays when they had a single element: has_next returns
847         false, even before you read the element. So, instead, check
848         the array length.
849
850 2006-05-06  Thiago Macieira  <thiago.macieira@trolltech.com>
851
852         * qt/qdbusmessage.cpp:
853         * qt/qdbustypehelper_p.h:
854         * qt/qdbusintegrator.cpp: gcc 3.4 doesn't like Q_FOREACH when
855         the list is a const-reference
856
857 2006-05-03  John (J5) Palmieri  <johnp@redhat.com>
858
859         * Adding old doc patch that never got applied
860         
861         * dbus/bus.c (dbus_bus_add_match): Add documentation
862
863         * doc/dbus-specification.xml: Add documentation for the match rules
864           and the AddMatch and RemoveMatch methods
865
866 2006-05-02  Thiago Macieira  <thiago.macieira@trolltech.com>
867
868         * qt/dbusidl2cpp.cpp: There's no callAsync. Use the correct
869         call (r535506)
870
871         * qt/dbusidl2cpp.cpp:
872         * qt/qdbusabstractadaptor.cpp:
873         * qt/qdbusabstractadaptor.h: Make QDBusAdaptorConnector be a
874         sibling of the QDBusAbstractAdaptor objects instead of the
875         parent. (r535848)
876
877         * qt/dbusidl2cpp.cpp:
878         * qt/qdbusabstractinterface.cpp:
879         * qt/qdbusabstractinterface.h:
880         * qt/qdbusabstractinterface_p.h:
881         * qt/qdbusinterface.cpp: Make properties in interfaces
882         actually work. The code that was generated would not compile,
883         due to moc calls to functions that did not exist. They now
884         shall. (r536571)
885
886 2006-04-30  Thiago Macieira  <thiago.macieira@trolltech.com>
887
888         * Makefile.am:
889         * configure.in:
890         * dbus-qt4-1.pc.in: Add a pkg-config file for libdbus-qt4-1.
891         Thanks to Brad Hards for providing the patch
892
893 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
894
895         * qt/dbusidl2cpp.cpp: There's no callAsync. Use the correct
896         call. (r535506)
897
898 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
899
900         * qt/examples/dbus.cpp: Enhance error messages and use
901         QDBusInterfacePtr.
902
903 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
904
905         * qt/qdbusinterface.h: Rename QDBusRef to QDBusInterfacePtr
906         and disable the copy operators. (r533772, r534746)
907
908         * qt/qdbuserror.h: Remove the automatic cast to bool. (r533929)
909
910         * qt/qdbusabstractinterface.cpp:
911         * qt/qdbusabstractinterface.h: Change the default call mode to
912         not use the event loop. Add convenience call() methods that
913         take a CallMode parameter. (r534042)
914
915         * qt/qdbusconnection.h: Change the default call mode to not
916         use the event loop. (r534042)
917
918         * qt/qdbusinterface.cpp:
919         * qt/qdbusinterface.h: Add a method to tell us if the
920         interface is valid (since we don't return a null pointer
921         anymore) (r534099)
922
923         * qt/qdbusinterface_p.h: Don't crash if metaObject is 0
924         (r534101)
925
926         * qt/qdbusinternalfilters.cpp: Decouple the introspection
927         function in two so taht we get the chance to introspect
928         without having a QDBusMessage (r534102)
929
930         * qt/qdbusbus.h:
931         * qt/qdbusconnection.cpp:
932         * qt/qdbusconnection_p.h:
933         * qt/qdbusintegrator.cpp: Keep a list of our own names to
934         avoid a round-trip to the server when attempting to introspect
935         one of our own objects. Also make sure the filter functions
936         match the empty interface as well. (r534108)
937         Don't keep the connection names. Instead, trust the unique
938         connection name (r534111)
939         Remove event loop usage (r534112)
940
941 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
942
943         * qt/qdbusintegrator.cpp: Fix assertion failure spotted by
944         Brad Hards.
945
946 2006-04-28  Robert McQueen  <robot101@debian.org>
947
948         * glib/dbus-gproxy.c: Fix properties so that they can be given in
949         any order, making it easier for people who inherit from this
950         object.
951
952 2006-04-28  Robert McQueen  <robot101@debian.org>
953
954         * glib/dbus-gvalue-utils.c: Patch from Jakub Stachowski to fix leaking
955         of memory from within pointer arrays and lists. Fixes bug #6300.
956
957 2006-04-28  Robert McQueen  <robot101@debian.org>
958
959         * glib/dbus-gvalue.c: Patch from Jakub Stachowski to fix a leak in
960         generating struct signatures. Fixes bug #6083.
961
962 2006-04-28  Robert McQueen  <robot101@debian.org>
963
964         * qt/Makefile.am: Tweak CLEANFILES from qdbusconnection.moc
965         to qdbusconnection_p.moc.
966
967 2006-04-24 John (J5) Palmieri <johnp@redhat.com>
968
969         * README, INSTALL: Doc fixes
970         Patch from Brad Hards <bradh at frogmouth.net>
971
972 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
973
974         * qt/examples/dbus.cpp: Use the new merged-interface mode for
975         the dynamic meta object. No need to guess which interface to
976         call.
977
978 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
979
980         * qt/qdbusconnection_p.h:
981         * qt/qdbusmetaobject.cpp:
982         * qt/qdbusmetaobject_p.h:
983         * qt/qdbusintegrator.cpp: Use the new merged-interface mode
984         for the dynamic meta object. No need to guess which
985         interface to call.
986         * qt/qdbusabstractinterface_p.h:
987         * qt/qdbusconnection.cpp:
988         * qt/qdbusintegrator.cpp:
989         * qt/qdbusinterface.cpp:
990         * qt/qdbusinterface.h: Make findInterface always return a non-null pointer.
991         Add a QDBusRef that looks and behaves like DCOPRef.
992
993 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
994
995         * dbus/dbus-connection.c: Interfaces are optional in method
996         calls, so don't give up if the interface parameter is NULL.
997         Patch reviewed by Havoc Pennington.
998
999 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
1000
1001         * qt/qdbusreply.h: Add default constructor and operator=
1002           (r532625)
1003         * qt/qdbustypehelper_p.h: Use a clean namespace: no foreach()
1004           in public headers (r532952)
1005         * qt/qdbusabstractinterface.cpp:
1006         * qt/qdbusabstractinterface_p.h: Add the AutoDetect mode and
1007           make it the default (r532951)
1008
1009 2006-04-19  John (J5) Palmieri  <johnp@redhat.com>
1010
1011         * dbus/dbus-connection.c: Fix asserts
1012         Patch from Tim Moloney <t.moloney at verizon.net>
1013
1014 2006-04-19  John (J5) Palmieri  <johnp@redhat.com>
1015
1016         * mono/Connection.cs, mono/Message.cs: Check Target type
1017         Patch from Aaron Bockover (abockover at novell.com)
1018
1019 2006-04-13  Thiago Macieira  <thiago.macieira@trolltech.com>
1020
1021         * INSTALL: fine-tune the requirements for the Qt4 binding.
1022
1023 2006-04-16  Daniel P. Berrange  <dan@berrange.com>
1024
1025         * tools/dbus-print-message.c: Added support for printing of all 
1026           remaining data types. Fixed logic for indentation of compound
1027           data types.
1028         
1029 2006-04-15  Daniel P. Berrange  <dan@berrange.com>
1030
1031         * INSTALL: fill out content of file providing DBus specific
1032           build installations, followed by generic Auto* INSTALL file
1033           content
1034         
1035 2006-04-13  Thiago Macieira  <thiago.macieira@trolltech.com>
1036
1037         * qt/qdbusintegrator.cpp: Work around g++ 3.3 bug.
1038           Patch by Stefan Eilers. (r529537)
1039
1040 2006-04-13  Thiago Macieira  <thiago.macieira@trolltech.com>
1041
1042         * qt/qdbusinternalfilters.cpp: Don't show the parent's
1043           contents (r528208)
1044
1045 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
1046
1047         * qt/Makefile.am: fix the dependency for
1048           qdbusconnection_p.moc. It's included in qdbusintegrator.cpp,
1049           not in qdbusconnection.cpp.
1050           Thanks to Jakub Stachowski <stachowski@hypair.net> for
1051           spotting this.
1052
1053 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
1054
1055         * qt/examples/listnames.cpp:
1056         * qt/examples/Makefile.am: Three ways to list the names on the
1057           bus.
1058
1059 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
1060
1061         * test/qt/tst_hal.cpp: Remove the waiting, since it's not
1062           needed anymore. Requires Qt 4.1.3 to work properly. (r528148)
1063
1064 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
1065
1066         Merge from Subversion:
1067         * qt/qt-dbus.qdocconf: Update Trolltech's webpage link to
1068           something that exists (r526315)
1069         * qt/qdbusinternalfilters.cpp: Correctly detect non-scriptable
1070           slots/signals (r526316)
1071         * qt/qdbusinternalfilters.cpp: Fix the setProperty call and
1072           also return an unknown-method error if the parameters don't
1073           match for org.freedesktop.DBus.Properties. (r526842)
1074         * qt/examples/dbus.cpp: Allow passing of QVariants (r526843)
1075         * qt/qdbusintegrator.cpp: Restore the proper order of
1076           delivery: don't make method returns be delivered on priority
1077           (r528150)
1078
1079 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
1080
1081         * configure.in qt/Makefile.am: add qt/examples
1082         * qt/examples: Add QtDBus example programs:
1083           - hello: Hello, World
1084           - ping: Simple method-calling program
1085           - pong: Simple object-exporting program (not using adaptors)
1086           - complexping: Interactive method-calling program 
1087                 (also gets and sets properties).
1088           - complexpong: Sample program exporting methods, signals and
1089                 properties, using adaptors.
1090           - dbus: Simple implementation of a generic method-calling
1091                 program, similar to 'dbus-send', but with semantics
1092                 similar to 'dcop'.
1093           - chat: Simplistic chat program, implemented using signals
1094                 and the system bus. Looks like IRC.
1095
1096 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
1097
1098         * configure.in: Detect QtGui (necessary for one of the
1099           example programs). Note: this increases the minimum required
1100           version of Qt to 4.1.3.
1101
1102 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
1103
1104         * test/qt/*: Sync with KDE Subversion revision 523647.
1105         Update the testcases to the new API. Remove testcases for
1106         classes that are no longer public or have been removed.
1107
1108 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
1109
1110         * qt/*: 
1111         * dbus/qdbus.h: Sync with KDE Subversion revision
1112         523647. Hopefully, this will be the last of the
1113         source-incompatible changes. Documentation has been improved;
1114         support for QList<basic-types> has been added; QDBusObject is
1115         gone; QDBus(Abstract)Interface is now a QObject with
1116         auto-generated meta-object; QDBusIntrospection is marked
1117         private, since QMetaObject can be used now; lots of bugfixes.
1118
1119 2006-03-16  John (J5) Palmieri  <johnp@redhat.com>
1120
1121         Patch from Milosz Derezynski <internalerror at gmail.com>
1122         
1123         * configure.in:
1124         Output the service directory in the configure summary
1125
1126         * dbus-1.pc.in:
1127         Add session_bus_services_dir
1128
1129 2006-03-10  Ross Burton  <ross@openedhand.com>
1130
1131         * tools/dbus-print-message.c:
1132         Add support for object paths and signatures.
1133
1134 2006-03-06  Sjoerd Simons <sjoerd@luon.net>
1135
1136         * bus/bus.c: (bus_context_reload_config): Flush the user database cache on
1137         config reload.
1138         * bus/dbus-daemon.1.in: Also note that SIGHUP flushes the user/group
1139         information caches
1140         * dbus/dbus-hash.c: (_dbus_hash_table_remove_all): 
1141         * dbus/dbus-hash.h: Add function to remove all entries from a hash table
1142         * dbus/dbus-userdb.c: (_dbus_user_database_flush):
1143         * dbus/dbus-userdb.h: Add function to flush all user/group information
1144         caches.
1145
1146 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
1147
1148         * qt/dbusidl2cpp.cpp:
1149         * qt/Makefile.am: add the dbusidl2cpp tool, the replacement
1150         for dcopidl2cpp, found in the KDE installations (or the more
1151         modern kalyptus): generate Qt4 C++ code for the input XML
1152         introspection. Currently no IDL parsing.
1153
1154 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
1155
1156         * test/qt/*: Update the self-tests.
1157
1158 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
1159
1160         * qt/*: 
1161         * dbus/qdbus.h: Sync with KDE Subversion revision 516237. This
1162         represents the first feature-complete version of the Qt4
1163         bindings since I took ove maintainership.
1164
1165 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
1166
1167         * qt/Doxyfile: Adding a Doxyfile for the Qt4 bindings
1168         dir. This is C++, so we can't use the DBus ones.
1169
1170 2006-03-02  John (J5) Palmieri  <johnp@redhat.com>
1171
1172         * python/dbus_bindings.pyx: Remove refrence to sys/cdefs.h
1173         (Patch from Artem Kachitchkine <Artem.Kachitchkin at Sun.COM>)
1174
1175 2006-03-02  John (J5) Palmieri  <johnp@redhat.com>
1176
1177         * dbus/dbus-connection.c: 
1178         (_dbus_connection_block_pending_call):
1179         Check to see if our data has already been read off the connection
1180         by another blocking pending call before we block in poll.
1181         (check_for_reply_and_update_dispatch_unlocked):
1182         Code taken from _dbus_connection_block_pending_call - checks for
1183         an already read reply and updates the dispatch if there is one.
1184
1185         * test/name-test/test-pending-call-dispatch.c:
1186         New test for making sure we don't get stuck polling a 
1187         dbus connection which has no data on the socket when
1188         blocking out of order on two or more pending calls.
1189
1190 2006-02-28  Thiago Macieira <thiago.macieira@trolltech.com>
1191
1192         * qt/Makefile.am: Patch by Sjoerd Simons. More .moc issues:
1193         make/automake don't detect that we're talking about the same
1194         .lo file if I specify the full path to the source files.
1195
1196 2006-02-26  Havoc Pennington  <hp@redhat.com>
1197
1198         * bus/dbus-daemon.1.in: improve the language in a couple spots I noticed
1199
1200         * dbus/dbus-bus.c (internal_bus_get): in the error message if the
1201         session bus variable is unset, suggest "man dbus-launch" and "man
1202         dbus-daemon" to figure out how to fix the problem
1203
1204 2006-02-25  Havoc Pennington  <hp@redhat.com>
1205
1206         * glib/dbus-glib-tool.c (usage): fix up the usage message, someone
1207         should make this thing use the new glib options parser
1208
1209 2006-02-25  Thiago Macieira <thiago.macieira@trolltech.com>
1210
1211         * qt/Makefile.am: Patch by Sjoerd Simons. Fix the path to the
1212         .lo files taking moc sources.
1213
1214 2006-02-25  Havoc Pennington  <hp@redhat.com>
1215
1216         * dbus/dbus.h, dbus/Makefile.am: add dbus-signature.h to dbus.h
1217         and install it as a public header
1218
1219 2006-02-24  John (J5) Palmieri  <johnp@redhat.com>
1220
1221         * Released 0.61
1222
1223 2006-02-24  John (J5) Palmieri  <johnp@redhat.com>
1224         
1225         * proxies.py: Fix the callchain
1226
1227 2006-02-24  John (J5) Palmieri <johnp@redhat.com>
1228         
1229         * patch from Sjoerd Simons <sjoerd at debian.org>:      
1230
1231         * dbus/dbus-sysdeps-util.c (_dbus_group_info_free): Moved to 
1232         dbus/dbus-sysdeps.c
1233
1234         * dbus/dbus-userdb.c (_dbus_group_info_free_allocated): Don't
1235         call _dbus_group_info_free_allocated which causes infinite loop,
1236         correctly call _dbus_group_info_free
1237
1238 2006-02-20  Thiago Macieira <thiago.macieira@trolltech.com>
1239
1240         * qt/qdbusinterface_p.h:
1241         * qt/qdbusinterface.cpp: Use the standard
1242         org.freedesktop.DBus.Method.NoReply annotation for the "async"
1243         calls instead of creating one for us.
1244
1245         * qt/qdbusconnection_p.h:
1246         * qt/qdbusintegrator.cpp: Remove debugging code.
1247
1248         * qt/qdbusintegrator.cpp:
1249         * qt/qdbusmessage.cpp:
1250         * qt/qdbusmessage_p.h:
1251         * qt/qdbusmessage.h: Change the behaviour of automatic
1252         reply-sending: now a reply is always sent, unless the caller
1253         didn't request one or if the user slot has already sent one.
1254
1255 2006-02-16  Robert McQueen  <robot101@debian.org>
1256
1257         * configure.in: Patch from Debian packages by Sjoerd Simons
1258         <sjoerd@debian.org> to add --with-qt-moc and --with-qt3-moc
1259         arguments so it's possible to build both bindings in the
1260         same tree.
1261
1262         * qt/Makefile.am: Fix truncated value so that make dist works.
1263
1264 2006-02-16  Robert McQueen  <robot101@debian.org>
1265
1266         * acinclude.m4, configure.in: Patch from Brad Hards
1267         <bradh@frogmouth.net> to avoid warnings from autoconf 1.9 by
1268         improving quoting, re-ordering a few checks, and a few other
1269         aesthetic tidy-ups.
1270
1271 2006-02-16  Robert McQueen  <robot101@debian.org>
1272
1273         * dbus/dbus-message.c (dbus_message_iter_get_fixed_array):
1274         Patch from Rob Taylor <rob.taylor@collabora.co.uk> to correct a bogus
1275         assertion that the next element to read from the iter is fixed in
1276         size. This is not the case when you are at the end of the iter,
1277         because the next element type is INVALID.
1278
1279         * dbus/dbus-string.c (_dbus_string_init_const_len): Correct a
1280         a bogus assert which means that you may not initialise a 0-length
1281         string unless you provide a non-NULL pointer. This prevented
1282         you from marshalling messages containing zero-length arrays in
1283         some cases.
1284
1285         * glib/dbus-gvalue.c (demarshal_collection_array): Another patch
1286         from Rob to correct bogus asserts when trying to demarshal an
1287         array and get_fixed_array got you 0 elements. Append nothing to
1288         the GArray in this case.
1289
1290         * test/glib/test-dbus-glib.c: Add a test case for round-tripping
1291         an empty array via the glib bindings. Without all of the above
1292         patches, this new test fails.
1293
1294 2006-02-16  Robert McQueen  <robot101@debian.org>
1295
1296         * glib/dbus-gmain.c: Make the previous commit compile.
1297
1298         * python/_dbus.py, python/matchrules.py: Patch from Ole Andre
1299         Ravnaas <ole.andre.ravnaas@collabora.co.uk> to allow you to
1300         specify sender_keyword="foo", path_keyword="bar" when adding
1301         a signal listener, so that you can bind to signals generically
1302         but still do something useful in your callback.
1303
1304         * python/dbus_bindings.pyx: Demarshal the byte type as unsigned
1305         chars so that they're not cast to chars and made negative. Thanks
1306         to Jakub Stachowski for reporting this and testing the fix.
1307
1308 2006-02-15  John (J5) Palmieri  <johnp@redhat.com>
1309
1310         * dbus/dbus-glib.h:
1311         * glib/dbus-gmain.h:
1312         (dbus_g_connection_open): new method for openning
1313         a connection to an arbitrary address in the glib bindings
1314
1315         * ChangeLog: checkin last entry which doesn't seem to be commited
1316
1317 2006-02-13  John (J5) Palmieri  <johnp@redhat.com>
1318
1319         * tools/dbus-launch.c: Fixed sh syntax output
1320
1321 2006-02-13  Robert McQueen  <robot101@debian.org>
1322
1323         * glib/dbus-binding-tool-glib.c, glib/dbus-gmain.c,
1324         glib/dbus-gsignature.c, glib/dbus-gtype-specialized.c,
1325         glib/dbus-gtype-specialized.h, glib/dbus-gvalue-utils.c,
1326         glib/dbus-gvalue-utils.h, glib/dbus-gvalue.c:
1327         Patch from Rob Taylor <rob.taylor@collabora.co.uk> to add a big
1328         missing piece of the glib bindings jigsaw puzzle. This modifies
1329         the existing specialised types to have N type parameters (rather
1330         than the current 1 or 2 for arrays and dictionaries respectively).
1331         You can then use this to get a glib type to represent any arbitrary
1332         D-Bus struct type using dbus_g_type_get_struct. The only
1333         implementation of these types is with GValueArrays as before,
1334         but it's now possible to store these in arrays, emit them in
1335         signals, etc.
1336
1337 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
1338
1339         * dbus/dbus-signature.c (dbus_signature_iter_recurse): Correctly
1340         deal with nested arrays (Bug #5823) Patch by Thiago Macieira 
1341         <thiago.macieira at trolltech.com>
1342
1343 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
1344
1345         * mono/doc/Makefile.am: Fix parallel make problem with mono-doc
1346         (Bug #4213) Patch from Doug Goldstein <cardoe at gentoo.org>
1347
1348 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
1349
1350         * bus/connection.c (bus_connections_expect_reply): Make
1351         pending reply limit not common to all connections (Bug #5416)
1352         Patch from Kimmo Hämäläinen <kimmo.hamalainen at nokia.com>
1353
1354 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
1355
1356         * tools/dbus-launch.c: Fixed csh syntax output (Bug #5720)
1357
1358 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
1359
1360         * gcj/Makefile.am: point to correct jar command (Bug #4529)
1361         patch from Doug Goldstein <cardoe at gentoo.org>
1362
1363 2006-02-09  Joe Shaw  <joeshaw@novell.com>
1364
1365         * mono/Arguments.cs: Fix a magic number in the mono bindings
1366         that doesn't work on 64 bit arches.  Patch from Peter Johanson.
1367
1368 2006-01-27  Robert McQueen  <robot101@debian.org>
1369
1370         * glib/dbus-binding-tool-glib.[ch]: Patch based on Ricardo Kekki's
1371         patch to use an annotation org.freedesktop.DBus.GLib.ClientCSymbol
1372         when generating the client-side methods, instead of overloading
1373         CSymbol which broke everything horribly. My apologies.
1374
1375 2006-01-27  Robert McQueen  <robot101@debian.org>
1376
1377         * glib/dbus-gtype-specialized.[ch], glib/dbus-gvalue-utils.c: Patch
1378         by me and Rob Taylor to add a simple_free function to D-Bus map
1379         and collection types, which allows those types which can be freed
1380         with a GDestroyNotify (such as GHashTables and GArrays, but not
1381         GPtrArrays) to be stored as the values in hashtables.
1382
1383         * test/glib/test-dbus-glib.c, test/glib/test-service-glib.{c,xml}:
1384         Patch by Rob Taylor to add nested dicts to the glib tests to check
1385         the above code works, and appears not to leak when called repeatedly.
1386
1387 2006-01-27  Robert McQueen  <robot101@debian.org>
1388
1389         * glib/dbus-gvalue.c (demarshal_valuearray): Patch from Rob Taylor
1390         to free a D-Bus allocated string with dbus_free () instead of
1391         g_free ().
1392
1393 2006-01-27  Iain Holmes  <iain@openedhand.com>
1394
1395         * glib/dbus-gproxy.c (dbus_g_proxy_dispose): Protect the dispose
1396         method from being called multiple times.
1397
1398 2006-01-19  Robert McQueen  <robot101@debian.org>
1399
1400         * glib/dbus-binding-tool-glib.c: Patch from Rob Taylor
1401         <rob.taylor@collabora.co.uk> to add support for generating bindings
1402         to arrays that are represented as GPtrArrays rather than GArrays (ie
1403         size-variable things, such as strings, objects, structs, etc).
1404
1405 2006-01-05  Robert McQueen  <robot101@debian.org>
1406
1407         * dbus/dbus-glib.h, glib/dbus-gproxy.c: Patch from Ricardo Kekki
1408         <ricardo.kekki@movial.fi> to make it possible to inherit from
1409         DBusGProxy, by splitting the DBusGProxy struct into a public part and
1410         a private part, and moving the setting of the DBusGProxyManager into a
1411         connection property, allowing proper GObject construction.
1412
1413 2006-01-05  Robert McQueen  <robot101@debian.org>
1414
1415         * glib/dbus-binding-tool-glib.c: Patch from Ricardo Kekki
1416         <ricardo.kekki@movial.fi> to make dbus-binding-tool heed C symbol name
1417         annotations when generating glib client bindings.
1418
1419 2005-12-19 John (J5) Palmieri  <johnp@redhat.com>
1420
1421         * dbus/dbus-shared.h: Call it shared constants instead of shared macros
1422
1423         * dbus/dbus-protocol.h: add DOxygen markup to quiet warnings
1424
1425 2005-12-19 John (J5) Palmieri  <johnp@redhat.com>
1426
1427         * dbus/dbus-shared.h: add DOxygen markup to quiet warnings
1428
1429 2005-12-19 John (J5) Palmieri  <johnp@redhat.com> 
1430
1431         * dbus/dbus-macros.h: correct DOxygen end of section (s/}@/@})
1432
1433 2005-12-19  Ross Burton  <ross@openedhand.com>
1434
1435         * doc/dbus-tutorial.xml:
1436         Document the Glib client-side bindings, and list all possible annotations.
1437
1438 2005-12-19  John (J5) Palmieri  <johnp@redhat.com>
1439
1440         * dbus/bus.c (dbus_bus_release_name): Add documentation
1441
1442 2005-12-06  Robert McQueen  <robot101@debian.org>
1443
1444         * python/service.py: s/sucessful/successful/ so we're allocating to
1445         and reading from the same variable. Oops.
1446
1447 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
1448
1449         * Released 0.60
1450
1451 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
1452
1453         * test/qt/Makefile.am: build from srcdir
1454
1455         * qt/qtconnection.cpp (requestName): Changed PROHIBIT_REPLACE to ALLOW_REPLACE
1456         Note - this code is wrong and needs to be fixed by the Qt binding
1457         developers.  The flags should be treated as bitfields and not enums.
1458
1459         * qt/qtconnection.h: Change ProhibitReplace to AllowReplace
1460
1461 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
1462
1463         * dbus/dbus-list.c (_dbus_list_insert_after_link, _dbus_list_insert_after, 
1464           link_after): remove #ifdef DBUS_BUILD_TESTS since we use these methods 
1465           in production code
1466
1467 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
1468
1469         * dbus/dbus-connection.c (dbus_connection_read_write): Add new
1470         method for getting messages off the bus in the absence of a
1471         mainloop.  This method is much like 
1472         dbus_connection_read_write_dispatch except it does not dispatch
1473         the messages to a registered filter function.  Instead it
1474         allows a developer to process messages by directly popping
1475         them off the bus.
1476
1477 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
1478
1479         * bus/desktop-file.c (parse_key_value): Ignore locales allowing 
1480         the parser to continue instead of returning error
1481         (bus_desktop_file_load): Do not free parser data when
1482         parse_section_start or parse_key_value fails because it was 
1483         already freed by parser_free (patch from Carlos Garcia Campos  
1484         <carlosgc at gnome.org>)
1485
1486 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
1487
1488         * dbus/dbus-auth.c, dbus/dbus-connection.c, dbus/dbus-keyring.c,
1489         dbus/dbus-server-debug-pipe.c, glib/dbus-binding-tool-glib.c
1490         glib/dbus-glib-tool.c, glib/dbus-gparser.c, glib/dbus-gproxy.c
1491         test/test-segfault.c, test/test-utils.c,
1492         test/glib/test-dbus-glib.c, tools/dbus-cleanup-sockets.c
1493         tools/dbus-launch.c, tools/dbus-tree-view.c, tools/dbus-viewer.c:
1494         Various cleanup of dead code and compiler warnings (patch from
1495         Kjartan Maraas <kmaraas at gnome.org>) 
1496
1497 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
1498
1499         * glib/dbus-gmain.c (connection_setup_add_watch): plugged a leak
1500         (patch from Carlos Garnacho Parro <carlosg at gnome.org>
1501
1502 2005-11-27  Robert McQueen  <robot101@debian.org>
1503
1504         * python/dbus_bindings.pyx: Repair my previous commit which reverted
1505         part of the preceding one. Oops. Merge patch by Johan Hedberg
1506         <johan.hedberg@nokia.com> to fix marshalling of 16-bit integer values
1507         on big-endian platforms.
1508
1509         * test/python/test-client.py: Add some 16-bit integers to the test
1510         values.
1511
1512 2005-11-27  Carlos Garcia Campos  <carlosgc@gnome.org>
1513
1514         * glib/dbus-gobject.c: Append a GValue instead of a basic type in
1515         method return message for property getters
1516
1517 2005-11-27  Robert McQueen  <robot101@debian.org>
1518
1519         * python/dbus_bindings.pyx: Fix a bug where doing a strict append
1520         with type v of an instance of dbus.Variant(foo, type='x') caused
1521         it to be boxed twice before sending over the bus.
1522
1523         * python/dbus_bindings.pyx, python/service.py,
1524         test/python/test-client.py: Update the constants for the new
1525         request_name flags, and update comments/test cases now that queueing
1526         is the default action.
1527
1528 2005-11-22  John (J5) Palmieri  <johnp@redhat.com>
1529
1530         * configure.in:
1531         - Change version to 0.60 for impending release
1532         - upped the sonames because of ABI and API breakage
1533
1534 2005-11-22  John (J5) Palmieri  <johnp@redhat.com>
1535
1536         * configure.in: Add test/name-test/Makefile to the generated
1537         Makefile list
1538
1539         * dbus/dbus-shared.h (#define DBUS_NAME_FLAG_ALLOW_REPLACEMENT):
1540         New flag which replaces DBUS_NAME_FLAG_PROHIBIT_REPLACEMENT
1541         (#define DBUS_NAME_FLAG_DO_NOT_QUEUE): New flag for specifying
1542         not to queue an ower if it can't be the primary owner
1543
1544         * bus/bus.h: Add new internal BusOwner struct
1545
1546         * bus/driver.c (bus_driver_handle_hello): Send flags (0 for default)
1547         to bus_registry_ensure and don't set the prohibit_replacement flag
1548         since they are now set per BusOwner and not per name.
1549         (bus_driver_handle_list_queued_owners): bus method (ListQueuedOwners) 
1550         that returns the list of connections in a name's connection queue
1551         
1552         * bus/services.c (struct BusService): remove prohibit_replacement field
1553         (struct BusOwner): new struct for keeping track of queued connections
1554         and their associated flags for the queue
1555         (struct BusRegistry): add a BusOwner memory pool
1556         (bus_registry_new): initialize the BusOwner memory pool
1557         (bus_registry_unref): free the BusOwner memory pool
1558         (_bus_service_find_owner_link): new internal method for
1559         searching the queue for a specific connection
1560         (bus_owner_set_flags): new method for adding setting the flags on a
1561         bus owner
1562         (bus_owner_new): new method that creates a BusOwner object from the
1563         pool and sets its flags
1564         (bus_owner_ref, bus_owner_unref): ref counting for BusOwner objects
1565         (bus_registry_ensure): Add the flags parameter
1566         (bus_registry_acquire_service): Switch from using raw connections to
1567         using the BusOwner struct
1568         Add new state machine for dealing with the new set of flags
1569         (bus_registry_set_service_context_table, struct OwnershipCancelData, 
1570         cancel_ownership, free_ownership_cancel_data, 
1571         add_cancel_ownership_to_transaction, struct OwnershipRestoreData, 
1572         restore_ownership, free_ownership_restore_data, 
1573         add_restore_ownership_to_transaction): Switch to using BusOwner 
1574         instead of raw connections
1575         (bus_service_add_owner): Add flags parameter
1576         Switch to using BusOwner instead of raw connections
1577         Add state machine for dealing with the new set of flags
1578         (bus_service_swap_owner): Swaps the first and second owners in the
1579         queue.  Used to make sure proper signals are sent when a service looses 
1580         or gains primary ownership.  We never insert an owner at the top of the
1581         queue.  Instead we insert it in the second position and then swap.
1582         (bus_service_remove_owner): Remove the owner from the queue sending
1583         out the NameLost and NameOwnerChanged signals if the we were the 
1584         primary owner
1585         (bus_service_get_primary_owners_connection): New method that extracts
1586         the connection from the primary owner
1587         (bus_service_get_primary_owner): Returns the BusOwner instead of the 
1588         connection
1589         (bus_service_get_allow_replacement): Changed from the old 
1590         bus_service_get_prohibit_replacement method.  Checks the flags of the 
1591         primary owner and returns if it can be replaced or not
1592         (bus_service_set_prohibit_replacement): removed
1593         (bus_service_has_owner): returns TRUE if and owner with
1594         the specified connection exists in the queue
1595         
1596         * dbus/dbus-bus.c (dbus_bus_connection_get_unique_name): New helper
1597         method that only compiles if tests are enabled.  Allows us to get the 
1598         unique name of a connection so we can check it against the queue when
1599         doing regression tests
1600
1601         * bus/activation.c (bus_activation_send_pending_auto_activate),
1602         bus/dispatch.c (bus_dispatch),  
1603         bus/driver.c (bus_driver_handle_get_service_owner, 
1604         bus_driver_handle_get_connection_unix_user, 
1605         bus_driver_handle_get_connection_unix_process_id,
1606         bus_driver_handle_get_connection_selinux_security_context),
1607         bus/signals.c (connection_is_primary_owner): 
1608         use bus_service_get_primary_owners_connection instead of
1609         bus_service_get_primary_owner
1610
1611         * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket, 
1612         _dbus_listen_unix_socket): Calculate the length of the socket
1613         path and use that instead of using a fixed length which was
1614         causing socket names to contain many trailing Nul bytes.
1615
1616         * dbus/dbus-glib-lowlevel.h, glib/dbus-gobject.c
1617         (dbus_g_method_get_sender): New method for extracting the sender 
1618         from a DBusGMethodInvocation
1619         (dbus_g_method_return_get_reply): changed name to 
1620         dbus_g_method_get_reply
1621         (dbus_g_method_return_send_reply): changed name to
1622         dbus_g_method_send reply
1623
1624         * doc/dbus-specification.xml: New docs that describe how the new
1625         queueing system works and talks about the changes to the how
1626         we specify socket names
1627
1628         * glib/examples/example-service.c, 
1629         glib/examples/example-signal-emitter.c,
1630         glib/examples/statemachine/statemachine-server.c:
1631         Changed the RequestName flags to the new system
1632
1633         * test/name-test/ (test-names.c, run-test.sh, Makefile.am): New
1634         regression test suite for testing various states of the new
1635         queueing system
1636         
1637 2005-11-15  Robert McQueen  <robot101@debian.org>
1638
1639         * dbus/dbus-glib-lowlevel.h, glib/dbus-gobject.c: Patch from Rob
1640         Taylor to add two methods, dbus_g_method_return_get_reply and
1641         dbus_g_method_return_send_reply, to allow you to get the reply
1642         message from a DBusGMethodInvocation, append arbitrary stuff to it,
1643         and send it. The GLib bindings can't marshal a return value of
1644         something like a(s) if the array is empty - ultimately they should be
1645         made to heed the signature of the out arguments as the Python bindings
1646         now can, but this is a workable interim solution which might have
1647         other applications.
1648
1649 2005-11-15  Robert McQueen  <robot101@debian.org>
1650
1651         * bus/driver.c, bus/services.c, bus/services.h: Add a ReleaseName
1652         method to org.freedesktop.DBus to release a bus name or give up
1653         waiting in the queue for it.
1654
1655         * dbus/dbus-bus.c, dbus/dbus-bus.h, dbus/dbus-shared.h: Add a
1656         dbus_bus_release_name method to send the ReleaseName method calls.
1657         Add constants for the return values to dbus/dbus-shared.h.
1658
1659         * doc/dbus-specification.xml: Document the new ReleaseName method
1660         in the specification.
1661
1662         * python/dbus_bindings.pyx: Add a low-level python binding for the
1663         release name method.
1664
1665         * python/exceptions.py, python/service.py: Make freeing BusName
1666         objects release the name. Add a NameExistsException, and fix a
1667         bug with creating UnknownMethodException.
1668
1669         * test/python/test-client.py: Add tests for freeing BusName
1670         objects causing names to be released.
1671
1672 2005-11-14  Robert McQueen  <robot101@debian.org>
1673
1674         * python/service.py: Include the traceback in the error reply when we
1675         send an exception over the bus. _BEST_ _PATCH_ _EVER_
1676
1677 2005-11-14  David Zeuthen  <davidz@redhat.com>
1678
1679         Patch from Timo Hoenig <thoenig@suse.de>.
1680
1681         * bus/bus.c: I've recently investigated why the automatic reload
1682         of configuration files does not work as expected.
1683
1684         Currently, reloading configuration files does only work when
1685         running dbus-daemon with --nodaemon.  If we are running as daemon
1686         we're hitting a dnotify bug once we fork the process.
1687
1688         We're initializing the dnotify fds before calling fork().  Once
1689         the child process forked it does still have the fds (and they
1690         still show up in /proc/`pidof dbus-daemon`/fd/) but we're not
1691         getting SIGIO as changes are made to the configuration files.
1692
1693         The attached patch moves the initialization of the dnotify fds to
1694         process_config_postinit().  This is safe for all current code
1695         paths and solves the dnotify disfunction.  If we're running
1696         dbus-daemon as daemon the fds for dnotify are now being
1697         initialized after fork() for the child process.
1698
1699         * configure.in: The current configure.in check for dnotify probes
1700         'x$target_os' for being 'xlinux-gnu'.  I've changed the check to
1701         match for 'xlinux', too. Additionally I have adapted the configure
1702         option's style to match with the others.
1703
1704 2005-11-14  Robert McQueen  <robot101@debian.org>
1705
1706         * python/decorators.py, python/service.py: Add a new argument to the
1707         dbus.service.method decorator called sender_keyword, which if set,
1708         specifies the name of an argument which will be provided the bus
1709         name of the method caller.
1710
1711         * test/python/test-client.py, test/python/test-service.py: Add a
1712         method and test to check the sender_keyword functionality.
1713
1714 2005-11-07  John (J5) Palmieri  <johnp@redhat.com>
1715
1716         * bus/driver.c (bus_driver_handle_reload_config): Make sure we send an 
1717         empty reply so blocking calls don't block forever (Patch from Sjoerd 
1718         Simons <sjoerd at luon.net>)
1719
1720         * AUTHORS: Add Robert McQueen for his work on the Python
1721         Bindings and other parts of D-Bus
1722
1723 2005-11-07  Robert McQueen  <robot101@debian.org>
1724
1725         * python/decorators.py: Change emit_signal function to use the
1726         signature annotation of the signal when marhsalling the arguments from
1727         the service. Fix a bug where the code checking signature length
1728         against argument length referenced the wrong variable.
1729
1730         * python/introspect_parser.py: Avoid adding the type signature of
1731         signal arguments to any methods which occur after them in the
1732         introspection data (!) by making the parser a little more careful
1733         about its current state.
1734
1735         * python/service.py: Remove debug prints from last commit (again :D).
1736
1737         * test/python/test-client.py, test/python/test-service.py: Add test
1738         signals with signature decorators to test the strict marshalling code
1739         gives errors at the right time. Could do with checking the signals
1740         actually get emitted too, given that the test does nothing with
1741         signals at the moment...
1742
1743 2005-11-07  Robert McQueen  <robot101@debian.org>
1744
1745         * python/_dbus.py: Add WeakReferenceDictionary cache of dbus.Bus
1746         instances to stop madness of creating new instances representing
1747         the same bus connection all the time, rendering any tracking of
1748         match rules and bus names quite meaningless. Caught a bug where
1749         the private argument to SessionBus() and friends was being passed
1750         in as use_default_mainloop by mistake. Still some problems with
1751         multiple dbus_binding.Connection instances representing the same
1752         low-level connection (eg when you use both SessionBus() and
1753         StarterBus() in same process), but it's a lot better now than it
1754         was.
1755
1756         * python/dbus_bindings.pyx: Add constants with the return values
1757         for bus_request_name().
1758
1759         * python/service.py: Store bus name instances in a per-dbus.Bus cache
1760         and retrieve the same instances for the same name, so deletion can be
1761         done with refcounting. Also now throws some kind of error if you
1762         don't actually get the name you requested, unlike previously...
1763
1764         * test/python/test-client.py: Add tests for instance caching of buses
1765         and bus name objects.
1766
1767 2005-11-04  Robert McQueen  <robot101@debian.org>
1768
1769         * python/dbus_bindings.pyx, test/python/test-client.py: Fix
1770         marshalling of boolean values. Add some booleans to the values in
1771         the test client.
1772
1773         * python/decorators.py, python/service.py: Add an 'async_callbacks'
1774         argument to the dbus.service.method decorator, which allows you to
1775         name arguments to take two callback functions for replying with
1776         return values or an exception.
1777
1778         * test/python/test-client.py, test/python/test-service.py: Add test
1779         case using asynchronous method reply functions, both return values and
1780         errors, and from within both the function itself and from a mainloop
1781         callback.
1782
1783         * python/decorators.py, python/service.py: Perform checking that the
1784         number of method/signal arguments matches the number of types in the
1785         signature at class loading time, not when you first introspect the
1786         class.
1787
1788         * python/service.py: Remove debug print left by the last commit.
1789
1790 2005-11-03  Robert McQueen  <robot101@debian.org>
1791
1792         * python/service.py: Heavy refactoring of method invocation, with
1793         hopefully no effect on functionality. Nuked _dispatch_dbus_method_call
1794         in favour of a new _message_cb that uses seperate functions for
1795         looking up the method to call, marshalling the return values, and
1796         sending exceptions as errors, and is easier to follow as a
1797         consequence.  Fixes some corner cases about returning things that
1798         don't match your declared out_signature, allows exceptions to define
1799         _dbus_error_name and have it be sent over the bus as the error name,
1800         and paves the way for cool stuff like heeding the message no reply
1801         flag, asynchronous method implementations, informing the method of the
1802         sender, and including backtraces in the error messages.
1803
1804         * test/python/test-client.py: Catch and print exceptions thrown in the
1805         async callback tests, rather than passing them to the low-level
1806         bindings to be ignored in a noisy and frustrating manner.
1807
1808 2005-11-03  Robert McQueen  <robot101@debian.org>
1809
1810         * python/_dbus.py, python/proxies.py, python/service.py: Add __repr__
1811         functions to dbus.Bus, dbus.service.BusName and dbus.service.Object,
1812         tweak others to be consistent.
1813
1814         * test/python/test-client.py: Tweak output of testInheritance.
1815
1816 2005-10-29  Robert McQueen  <robot101@debian.org>
1817
1818         * python/service.py: Major changes to allow multiple inheritance
1819         from classes that define D-Bus interfaces:
1820         
1821          1. Create a new Interface class which is the parent class of
1822             Object, and make the ObjectType metaclass into InterfaceType.
1823         
1824          2. Patch written with Rob Taylor to replace use of method_vtable
1825             with code that walks the class's __MRO__ (method resolution order)
1826             to behave like Python does when invoking methods and allow
1827             overriding as you'd expect. Code is quite tricky because
1828             we have to find two methods, the one to invoke which has the
1829             right name and isn't decorated with the /wrong/ interface,
1830             and the one to pick up the signatures from which is decorated
1831             with the right interface.
1832         
1833             The same caveats apply as to normal multiple inheritance -
1834             this has undefined behaviour if you try and inherit from two
1835             classes that define a method with the same name but are
1836             decorated with different interfaces. You should decorate
1837             your overriding method with the interface you want.
1838         
1839          3. Replace grungy introspection XML generation code in the metaclass
1840             with dictionaries that cope correctly with multiple inheritance
1841             and the overriding of methods. This also uses the signature
1842             decorations to provide correct introspection data, including
1843             the debut appearance of the types of your return values. :D
1844
1845         * test/python/test-client.py, test/python/test-service.py: Add a test
1846         case to try invoking an method that overrides one inherited from a
1847         D-Bus interface class.
1848
1849 2005-10-29  Robert McQueen  <robot101@debian.org>
1850
1851         * python/dbus_bindings.pyx: Tweak 'raise AssertionError' to assert().
1852         Add checking for the end of struct character when marshalling a
1853         struct in MessageIter.append_strict.
1854
1855         * python/examples/example-service.py,
1856         python/examples/gconf-proxy-service.py,
1857         python/examples/gconf-proxy-service2.py: Update to use gobject
1858         mainloop directly rather than appearing to depend on gtk.
1859
1860         * python/test/test-client.py, python/test/test-server.py: Remove
1861         obsolete and broken test scripts for old bindings. We have up to date
1862         and working tests in test/python/.
1863
1864 2005-10-29  Robert McQueen  <robot101@debian.org>
1865
1866         * python/decorators.py: Add optional arguments to the method and
1867         signal decorators to allow you to specify the signature of arguments
1868         and return values. Preserve the doc strings of signal functions in the
1869         decorated version, for pydoc and friends.
1870
1871         * python/dbus_bindings.pyx, python/proxies.py: Replace the
1872         parse_signature_block function with an iterable dbus.Signature()
1873         type. Fix a bug in MessageIter.append_strict where you could append
1874         anything by claiming it was a string.
1875
1876         * python/service.py: Use the out_signature decoration on methods to
1877         marshal return values, meaning you no longer require dbus.Array()
1878         or dbus.Dictionary() to indicate the type when returning empty
1879         arrays or dictionaries. Fix a bug where exceptions which are defined
1880         in __main__ are not turned into error replies.
1881
1882         * test/python/test-client.py, test/python/test-service.py: Add test
1883         for correct marshalling of return values according to out_signature.
1884         Fix a bug in the async call test where the error_handler is missing a
1885         self argument.
1886
1887 2005-10-29  Robert McQueen  <robot101@debian.org>
1888
1889         * glib/Makefile.am, glib/examples/Makefile.am,
1890         glib/examples/statemachine/Makefile.am: Merge patch from Ubuntu by
1891         Daniel Stone to replace explicit calls to libtool with $(LIBTOOL).
1892
1893         * test/python/.cvsignore: Add run-with-tmp-session-bus.conf.
1894
1895         * tools/dbus-monitor.1, tools/dbus-monitor.c: Merge dbus-monitor patch
1896         from Ubuntu by Daniel Silverstone to allow specifying match rules on
1897         the command line.
1898
1899 2005-10-27  Ross Burton  <ross@openedhand.com>
1900
1901         * dbus/dbus-marshal-header.c:
1902         Remove dead code.
1903
1904         * glib/dbus-gobject.c:
1905         Stop compiler warning.
1906
1907 2005-10-25  Ross Burton  <ross@openedhand.com>
1908
1909         * dbus/dbus-auth.c:
1910         * dbus/dbus-server-unix.c:
1911         * dbus/dbus-transport-unix.c:
1912         * glib/dbus-gmain.c:
1913         * glib/dbus-gobject.c:
1914         Add some const keywords.
1915
1916 2005-10-25  Ross Burton  <ross@openedhand.com>
1917
1918         * doc/dbus-specification.xml:
1919         Document the NoReply annotation.
1920
1921         * glib/dbus-binding-tool-glib.h:
1922         * glib/dbus-binding-tool-glib.c:
1923         Respect the NoReply annotation.
1924
1925 2005-10-24  Robert McQueen <robot101@debian.org>
1926
1927         * python/dbus_bindings.pyx (String, MessageIter): make D-Bus strings
1928         derive from unicode instead of str, and encode/decode UTF-8 when
1929         marshalling/unmarshalling bus messages
1930
1931         * python/introspect_parser.py: encode introspection data as UTF-8
1932         before passing the buffer into libxml2
1933
1934         * test/python/test-client.py: add unicode test strings
1935
1936         * test/data/valid-service-files/.cvsignore, test/python/.cvsignore:
1937         ignore generated python test files
1938
1939 2005-10-17  John (J5) Palmieri  <johnp@redhat.com>
1940
1941         * glib/dbus-gvalue-utils.c (hash_free_from_gtype): handle gdouble
1942         and G_TYPE_VALUE_ARRAY (DBUS_TYPE_STRUCT)
1943         (gvalue_from_hash_value, hash_value_from_gvalue): handle gdouble
1944
1945         * glib/dbus-gvalue.c (dbus_gvalue_to_signature): add missing
1946         DBUS_STRUCT_BEGIN_CHAR and DBUS_STRUCT_END_CHAR charaters
1947         when constructing struct signatures
1948
1949         * python/_dbus.py (Bus): handle private connections using the
1950         private keyword in the constructor. defaults to private=False
1951         (Bus::close): new method to close a connection to the bus
1952
1953         * python/dbus_bindings.pyx (Connection::close): renamed method
1954         was previously called disconnect
1955         (bus_get): now supports getting a private connection
1956
1957         * python/proxies.py (ProxyMethod::__call__): check if ignore_reply
1958         keyword is set to True.  if it is, execute the method without waiting
1959         for a reply
1960         (ProxyObject::_introspect_execute_queue): new method for executing
1961         all the pending methods that were waiting for the introspect to
1962         finish.  this is called when introspect either succeeds or fails
1963         (ProxyObject::_introspect_error_handler): call queued methods
1964
1965 2005-10-14  John (J5) Palmieri  <johnp@redhat.com>
1966
1967         * python/dbus_bindings.pyx (MessageIter::append_strict): check for
1968         STRUCT_BEGIN not TYPE_STRUCT in indicate we are marshalling a struct
1969
1970         * python/service.py (Object::_message_cb): handle exceptions correctly
1971         by sending them over the wire to the calling app.  This makes sure
1972         the client returns immediately instead of waiting the 15 seconds to
1973         timeout.
1974
1975         * test/python/test-client.py (TestDBusBindings::testBenchmarkIntrospect): 
1976         Add a test to benchmark how long it takes to introspect a service and 
1977         call a method which returns a large element (pretty fast)
1978
1979         * test/python/test-service.py (TestObject::GetComplexArray): new test 
1980         method which pushes a lot of data
1981
1982 2005-10-13  John (J5) Palmieri  <johnp@redhat.com>
1983
1984         * python/service.py(ObjectType::_reflect_on_signal, _reflect_on_method):        
1985         reclaim memory outside of the loop and use del istead of just setting
1986         the key to None
1987
1988 2005-10-13  John (J5) Palmieri  <johnp@redhat.com>
1989
1990         * python/service.py (ObjectType::_reflect_on_signal): Always close
1991         signal tag even when there are no arguments
1992
1993 2005-10-13  John (J5) Palmieri  <johnp@redhat.com>
1994
1995         * configure.in: Set mono, mono-docs and Qt3 to default
1996         to no instead of auto when building.  These bindings do not
1997         have full time maintainers and will not be supported for the
1998         1.0 release.
1999
2000 2005-10-12  John (J5) Palmieri  <johnp@redhat.com>
2001
2002         patches from Michael Krivoruchko <misha at sun.com>: 
2003         
2004         * dbus/dbus-connection.c (_dbus_connection_queue_received_message_link,
2005         _dbus_connection_message_sent, 
2006         _dbus_connection_send_preallocated_unlocked_no_update, 
2007         _dbus_connection_pop_message_link_unlocked): handle the case when path 
2008         is NULL when calling _dbus_verbose
2009
2010         * configure.in: check for functions getpeerucred and getpeereid
2011
2012         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): provides 
2013         support of auth EXTERNAL on Solaris 10+ (getpeerucred), FreeBSD 4.6+, 
2014         OpenBSD 3.0+ and FreeBSD 5.0+ as well as MacOSX 10.2+ (getpeereid). 
2015         Patch was only tested on Solaris 10 x86 so it might be issues
2016         with other platforms (i.e. BSDs and MacOSX)
2017         
2018
2019 2005-10-05  John (J5) Palmieri  <johnp@redhat.com>
2020
2021         * glib/dbus-gvalue.c (marshal_variant): call _dbus_gvalue_marshal 
2022         instead of marshal basic so we can handle recursive types in a variant
2023
2024         * test/glib/test-dbus-glib.c: Add test for marshaling recurive types
2025         in variants
2026
2027         * test/glib/test-service-glib.c, test-service-glib.xml
2028         (my_object_echo_variant [EchoVariant], 
2029         my_object_process_variant_of_array_of_ints123
2030         [ProcessVariantOfArrayOfInts123]): 
2031         Add two test methods
2032
2033         * python/introspect_parser.py: New module for parsing introspect
2034         data.
2035
2036         * python/dbus_bindings.pyx:
2037         (various places): when throwing errors fix to use errormsg instead 
2038         of message local variable because Pyrex can get confused with other 
2039         message variables (initial patch by Robert McQueen 
2040         <robert.mcqueen at collabora.co.uk>)
2041         (MessageIter::parse_signature_block): new method for getting the next
2042         block in a signiture.
2043         (MessageIter::append_strict): new method for appending values strictly
2044         using the passed in signature instead of guessing at the type
2045         (MessageItter:: append_dict, append_struct, append_array): use 
2046         signatures to marshal children if the signature is available
2047         
2048         * python/exceptions.py (IntrospectionParserException): new exception
2049
2050         * python/proxies.py (ProxyMethod::__call__): Marshal args with 
2051         introspected signatures if available, else we fall back to the
2052         old way of doing things.
2053         (ProxyObject::_introspect_reply_handler ): parse introspection data
2054         
2055         * python/service.py (ObjectType::_reflect_on_method): Properly
2056         terminate <method> if there are no args in the reflection data
2057
2058         * test/python/test-client.py: add tests for talking with the GLib
2059         test server.  This gives us better coverage for introspection since
2060         python to python will always generate arguments as variants.  It also
2061         allows us to test the robustness of the GLib bindings and interlanguage
2062         communications.
2063
2064         
2065 2005-10-03  John (J5) Palmieri  <johnp@redhat.com>
2066
2067         * bus/driver.c (bus_driver_handle_introspect): Add signals
2068         to the introspect data. (patch from Daniel P. Berrange 
2069         <dan at berrange.com>)
2070
2071         * bus/dispatch.c (check_existent_ping): Add testcase for Ping
2072         
2073         * dbus/dbus-connection.c (_dbus_connection_peer_filter,
2074         _dbus_connection_run_builtin_filters): Changed these to
2075         be unlock_no_update functions and call 
2076         _dbus_connection_send_unlocked_no_update instead of
2077         dbus_connection_send to avoid locking errors.
2078         
2079         * doc/TODO: Removed the make Ping test TODO
2080         
2081 2005-09-26  John (J5) Palmieri  <johnp@redhat.com>
2082
2083         * dbus/Python.pyx: Fixed memory leaks when throwing errors.
2084         We now copy the message from a DBusError and then free 
2085         the error object befor throwing the error
2086
2087         * glib/dbus-glib-tool.c: removed extra comma at the end of the
2088         DBusBindingOutputMode enum which was causing a warning.
2089         #include <time.h> so using time_t is explicitly defined
2090
2091 2005-09-26  John (J5) Palmieri  <johnp@redhat.com>
2092
2093         * Integrate patches from Lennart Poettering <mzsqb at 0pointer.de>:
2094         - dbus/dbus-bus.c
2095         (internal_bus_get): new method that take over the heavy lifting
2096         of dbus_bus_get and adds the ability to get a private connection
2097         to the bus
2098         (dbus_bus_get): wrapper to internal_bus_get that provides the same
2099         interface as in previous versions
2100         (dbus_bus_get_private): new method that is a wrapper to 
2101         internal_bus_get to get a private connection to the bus
2102
2103         - dbus/dbus-bus.h
2104         (dbus_bus_get_private): add as a public libdbus interface
2105
2106         - dbus-1.pc.in: output system_bus_default_address and 
2107         sysconfdir variables so apps can use them when compiling
2108
2109 2005-09-23  Harald Fernengel  <harry@kdevelop.org>
2110         * dbus/qt: New Qt bindings
2111
2112 2005-09-12  Waldo Bastian  <bastian@kde.org>
2113
2114         * dbus/dbus-marshal-validate.c,
2115         doc/dbus-specification.xml, test/Makefile.am,
2116         test/test-names.c: allow hyphens in bus names.
2117
2118 2005-09-11  Mark McLoughlin  <mark@skynet.ie>
2119
2120         * test/data/auth/fallback.auth-script: we don't
2121         retry the EXTERNAL method when we know its going
2122         to fail anymore.
2123
2124 2005-09-11  Mark McLoughlin  <mark@skynet.ie>
2125
2126         * dbus/dbus-connection-internal.h: rename
2127         (add|remove|toggle)_(watch|timeout) to unlocked()
2128         
2129         * dbus/dbus-connection.c: ditto.
2130         
2131         * dbus/dbus-timeout.c, dbus/dbus-transport-unix.c:
2132         Update some callers for the renaming.
2133
2134 2005-09-10  Mark McLoughlin  <mark@skynet.ie>
2135
2136         * dbus/dbus-auth.c: (record_mechanisms): don't
2137         retry the first auth mechanism because we know
2138         we're just going to get rejected again.
2139         
2140         * dbus/dbus-keyring.c: (_dbus_keyring_reload):
2141         Fix thinko ... and what a nasty little bugger to
2142         track down you were ...
2143
2144         * dbus/dbus-connection.c:
2145         (_dbus_connection_add_watch),
2146         (_dbus_connection_remove_watch): add note about
2147         these needing the connection to be locked.
2148         (_dbus_connection_get_dispatch_status_unlocked):
2149         set status to DATA_REMAINS when we queue the
2150         disconnected message.
2151         
2152         * bus/dispatch.c:
2153         (bus_dispatch): fix warning.
2154         (check_existent_service_no_auto_start):
2155         Expect ChildSignaled error too.
2156         (check_existent_hello_from_self): fix another
2157         couple of warnings.
2158         
2159 2005-09-08  Joe Shaw  <joeshaw@novell.com>
2160
2161         Patches from James Willcox <snorp@snorp.net>
2162
2163         * mono/Makefile.am: Add Int16.cs and UInt16.cs
2164
2165         * mono/DBusType/Array.cs: Handle multidimensional arrays, and
2166         support array "out" parameters.
2167
2168         * mono/DBusType/Int16.cs, mono/DBusType/UInt16.cs: New files,
2169         for 16-bit int support.
2170
2171 2005-09-06  John (J5) Palmieri  <johnp@redhat.com>
2172
2173         * Released 0.50
2174
2175         * Patch from Steve Grubb:
2176         - bus/activation.c (bus_activation_service_reload_test): clean up
2177         some indentation
2178         - dbus/dbus-keyring.c (_dbus_keyring_reload): fix conditional 
2179         - dbus/dbus-message-factory.c (generate_special): fix a couple of
2180         buffer overflows in the test suite.  This is non critical because
2181         it can not be exploited and this code is only run when doing a 
2182         make check.
2183
2184         * Patch from Yaakov Selkowitz: Build fixes for Cygwin
2185         - configure.in: Don't check and link against kdecore, only qt headers
2186         - dbus/Makefile.am: Add -no-undefined to libdbus_1_la_LDFLAGS
2187         - gcj/org/freedesktop/dbus/Makefile.am:
2188         add libdbus_gcj_1_la_LDFLAGS = -no-undefined
2189         - glib/Makefile.am: Add -no-undefined to libdbus_glib_1_la_LDFLAGS
2190         and $(DBUS_GLIB_LIBS) to dbus_binding_tool_LDADD
2191         - qt/Makefile.am: Add -no-undefined to libdbus_qt_1_la_LDFLAGS
2192         - tools/Makefile.am: Add platform extentions to binaries 
2193         (i.e. .exe on windows)
2194
2195         * configure.in: 
2196         - Make it so if no suitable version of python is found we only 
2197         disable building python instead of exiting the configure script
2198         - Require version 2.4 of glib for glib bindings
2199         - Up version to 0.50
2200
2201         * python/__init__.py: Sync version with libdbus to (0,50,0)
2202         
2203 2005-09-05  Olivier Andrieu  <oliv__a@users.sourceforge.net>
2204
2205         * dbus/dbus-object-tree.c (find_subtree_recurse):
2206         a couple of optimizations (bug #710):
2207         - do a binary search in the tree
2208         - insert a new child at the right place directly, no need for
2209           qsort anymore
2210         - do the "double alloc" thing when allocating children
2211
2212 2005-08-31  John (J5) Palmieri  <johnp@redhat.com>
2213
2214         * python/Makefile.am: Break on pyrexc errors instead of ignoring them
2215
2216         * python/dbus_bindings.pyx: Memory management foo
2217         (global): remove hacky _user_data_references global list
2218         (GIL_safe_cunregister_function_handler): userdata now stuffed into
2219         tuples. Unref user_data
2220         (GIL_safe_cmessage_function_handler): userdata now stuffed into tuples
2221         (Connection::__del__): Remove and replace with __dealloc__ method
2222         (Connection::add_filter): Stuff user_data into a tuple.  Use Py_INCREF
2223         to keep tuple from being deallocated instead of the global var hack
2224         (Connection::register_object_path): Stuff user_data into a tuple.
2225         Use Py_INCREF to keep tuple from being deallocated instead of the 
2226         global var hack
2227         (Connection::register_fallback): Stuff user_data into a tuple.
2228         Use Py_INCREF to keep tuple from being deallocated instead of the 
2229         global var hack
2230         (GIL_safe_pending_call_notification): Don't unref the message
2231         because it gets unreffed when going out of scope.  Py_XDECREF
2232         the user_data
2233         (PendingCall::__del__): Remove and replace with __dealloc__ method
2234         (PendingCall::set_notify): ref the pending call because we will
2235         need it to stick around for when the notify callback gets called
2236         (Message::__del__): Remove and replace with __dealloc__ method
2237
2238         * python/dbus_glib_bindings.pyx (init_gthreads): Changed to 
2239         gthreads_init to match up with the dbus call
2240
2241         * python/glib.py (init_threads): Changed to threads_init to match
2242         up with gobject.threads_init().  init_threads is kept for backwards
2243         compat but will most likely be deprecated in the future
2244
2245         * test/python/test-client.py: 
2246         - revamp to use Python's unittest functionality
2247         - add async call tests
2248         - setup threads in glib and dbus so we make sure locks are working
2249         
2250 2005-08-30  John (J5) Palmieri  <johnp@redhat.com>
2251
2252         * python/dbus_bindings.pyx 
2253         (_pending_call_notification, cunregister_function_handler, 
2254         cmessage_function_handler): All callback functions have been rearranged 
2255         to workaround a bug in Pyrex when working with the GIL which is Python's 
2256         global lock when dealing with threads.  They have been split into
2257         a wrapper function (which assumes the name of the old function) and
2258         a _GIL_safe_<function name> function which contains the functionality
2259         of the old function.  This ensures that Pyrex does not write code
2260         the lock is released.
2261         
2262
2263 2005-08-30  John (J5) Palmieri  <johnp@redhat.com>
2264
2265         * python/dbus_bindings.pyx (_pending_call_notification): Obtain the
2266         GIL global lock when calling back into Python
2267
2268 2005-08-29  John (J5) Palmieri  <johnp@redhat.com>
2269
2270         * Release 0.36.2
2271
2272         * Add Havoc's patch that never got applied to HEAD (Bug #2436):
2273
2274         * bus/policy.c (bus_policy_allow_user): change default "user is
2275         allowed" to be "user has same uid as the bus itself"; any
2276         allow/deny rules will override.
2277
2278         * bus/session.conf.in: don't allow all users, since now by default
2279         the user that ran the bus can connect.
2280
2281 2005-08-26  Colin Walters  <walters@verbum.org>
2282
2283         * tools/dbus-print-message.c (print_message): Flush stdout
2284         after printing a message, so that redirecting to a file, then
2285         hitting Ctrl-C works.
2286
2287 2005-08-25  John (J5) Palmieri  <johnp@redhat.com>
2288
2289         * python/dbus_bindings.pyx: Tracked down a major memleak and fixed it
2290         (EmptyMessage): new class that subclasses Message.  This is a workaround
2291         to a Pyrex bug that fails to call __del__ when the Message object goes out
2292         of scope.  For some reason subclassing Message fixes this bug
2293         (Bus::send_with_reply_and_block): use EmptyMessage instead of Message
2294         - s/Message(_create=0)/EmptyMessage everywhere else
2295         
2296         * test/python/test-{server|client}.py: add the python/.libs directory
2297         to the lookup path so dbus_bindings and dbus_glib_bindings don't
2298         get picked up from the system
2299
2300 2005-08-25  Colin Walters  <walters@verbum.org>
2301
2302         * glib/dbus-gproxy.c (dbus_g_proxy_call): Doc update, thanks
2303         to Ryan Lortie for the suggestion.
2304
2305 2005-08-24  John (J5) Palmieri  <johnp@redhat.com>
2306
2307         * test/python: Add python regression test
2308
2309         * configure.in: Add test/python/Makefile
2310
2311         * test/Makefile.am: Add the python directory to SUBDIRS
2312
2313 2005-08-24  John (J5) Palmieri  <johnp@redhat.com>
2314
2315         * Release 0.36.1
2316
2317         * python/_dbus.py: 
2318         (Interface::connect_to_signal): propigate keywords for match on args
2319         (Bus::add_signal_receiver): Fix typo s/dbus_inteface/dbus_interface
2320
2321         * python/proxies.py (ProxyObject::connect_to_signal):
2322         propigate keywords for match on args
2323
2324         * Makefile.am: point everything to pyexecdir since python borks
2325         on multilib
2326
2327 2005-08-23  John (J5) Palmieri  <johnp@redhat.com>
2328
2329         * Release 0.36
2330
2331 2005-08-23  Colin Walters  <walters@verbum.org>
2332
2333         * test/glib/Makefile.am: Don't multiply-define EXTRA_DIST.
2334
2335 2005-08-23  John (J5) Palmieri  <johnp@redhat.com>
2336
2337         * python/dbus_glib_bindings.pyx: reorder imports and c definitions
2338         to fix some wranings. We now use dbus_bindings.DBusConnection instead
2339         of defining DBusConnection ourselves.
2340
2341 2005-08-18  John (J5) Palmieri  <johnp@redhat.com>
2342
2343         * python/dbus.pth: New path file to fix up problems when installing
2344         c libraries to lib64 and python files to lib.
2345
2346         * python/Makefile.am: install dbus.pth in the correct spot
2347
2348 2005-08-17  John (J5) Palmieri  <johnp@redhat.com>
2349         * ChangeLog: clean up my last entry a bit
2350
2351         * doc/introspect.xsl: New stylesheet for converting introspection data
2352         into browser renderable xhtml. Contributed by Lennart Poettering.
2353
2354         * doc/introspect.dtd: Fixups in the introspect format from Lennart
2355         Poettering.
2356
2357         * doc/dbus-tutorial.xml: 
2358         - Add Colin Walter to the Authors section for authoring the GLib
2359         section
2360         - Add descriptions of the new signature and type functionality
2361         in the Python complex type mapping section
2362         - Add a sidenote on the new args matching functionality in 
2363         the Python bindings
2364         - Fixed up some of the examples to use the gobject.MainLoop
2365         instead of gtk.main
2366         
2367         * python/_dbus.py:
2368         (Bus::_create_args_dict): New. Converts a hash of arg matches
2369         to a more useable format
2370         (Bus::add_signal_receiver): add a **keywords parameter for catching
2371         arg match parameters
2372         (Bus::remove_signal_receiver): add a **keywords parameter for catching
2373         arg match parameters
2374         
2375         * python/matchrules.py:
2376         (MatchTree::exec_matches): Check for arg matches
2377         (SignalMatchRule::add_args_match): New method
2378         (SignalMatchRule::execute): Added args_list parameter as an optimization
2379         so we don't have to marshal the args more than once
2380         (SignalMatchRule::match_args_from_list): New method that checks to see
2381         if the rule's arg matches match an argument list.  Only arguments
2382         set in the rule are checked.
2383         (SignalMatchRule::match_args_from_rule): New method that checks to see
2384         if the rule's arg matches match another rule's.  All args have to match
2385         in order for this method to return true.  If either rule has more args
2386         then it is not a match.
2387         (SignalMatchRule::is_match): Add args match
2388         (SignalMatchRule::repr): Add args to the final output if they exist
2389
2390 2005-08-17  Ross Burton  <ross@burtonini.com>
2391
2392         * glib/dbus-gproxy.c:
2393         (dbus_g_proxy_call_no_reply): unref the message once sent.
2394         (dbus_g_proxy_call): protect against NULL proxy.
2395
2396 2005-08-16  John (J5) Palmieri  <johnp@redhat.com>
2397
2398         * python/__init__.py: Version updated (0, 43, 0)
2399         
2400         * python/dbus_bindings.pyx: 
2401         - Fixed type objects to have self passed into __init__
2402         - Added the Variant type
2403         - Add the ability to specify types or signatures for Array, Variant 
2404         and Dictionary
2405         (Connection::send_with_reply_handlers): return a PendingCall object
2406         (_pending_call_notification): handle the case when an error is returned 
2407         without an error message in the body
2408         (MessageIter::get_boolean): return True or False instead of an integer
2409         (MessageIter::python_value_to_dbus_sig): add direct checking of types 
2410         and add checks for objects with embeded signatures or types (Array, 
2411         Variant and Dictionary)
2412         (MessageIter::append_byte): handle case when the value is a dbus.Byte
2413         (MessageIter::append_dict): handle embeded types or signatures
2414         (MessageIter::append_array): handle embeded types or signatures
2415         (MessageIter::append_variant): new method
2416         
2417         * python/proxies.py:
2418         (DeferedMethod): New. Dummy executable object used when queuing calls 
2419         blocking on introspection data
2420         (ProxyMethod::__call__): add the timeout keyword for specifying longer 
2421         or shorter timeouts for method calls
2422         (ProxyObject): Add first pass at an introspection state machine
2423         (ProxyObject::__init__): Add introspect keyword for turing off an on 
2424         introspection. 
2425         (ProxyObject::_Introspect): Internal Introspect call that bypasses 
2426         the usual mechanisms for sending messages.  This is to avoid a deadlock
2427         where the Intospect call would be queued waiting for the Introspect 
2428         call to finish ;-)
2429         (ProxyObject::_introspect_reply_handler): New.  This method is called 
2430         when introspection returns with no error
2431         (ProxyObject::_introspect_error_handler): New.  This method is called 
2432         when introspection encounters an error
2433         (ProxyObject::__getattr__): Code to handle different introspection 
2434         states.  Queue async calls or block blocking calls if we are 
2435         introspecting.  Pass through as normal if we are not or are done with 
2436         introspecting.
2437         
2438         * python/service.py: Import signal and method from decorators.py
2439
2440         * python/types.py: Add Variant type
2441
2442 2005-08-16  Colin Walters  <walters@verbum.org>
2443
2444         * glib/dbus-gobject.c (dbus_set_g_error): Don't lose if the
2445         DBusError message is NULL.
2446
2447 2005-08-09  Havoc Pennington  <hp@redhat.com>
2448
2449         * dbus/dbus-errors.c: apply patch from Timo Teras to make a
2450         malloc'd copy of the name parameter
2451
2452 2005-08-09  Havoc Pennington  <hp@redhat.com>
2453
2454         * dbus/dbus-message.c (dbus_message_set_reply_serial): print
2455         warning if the reply serial is set to 0
2456
2457 2005-08-04  Colin Walters  <walters@verbum.org>
2458
2459         * glib/dbus-gvalue-utils.h (_dbus_g_type_specialized_builtins_init)
2460         (dbus_g_type_is_fixed, dbus_g_type_fixed_get_size)
2461         (dbus_gvalue_set_from_pointer, dbus_g_hash_table_value_foreach)
2462         (dbus_g_hash_table_insert_values, dbus_g_hash_table_insert_steal_values)
2463         (dbus_gtype_is_valid_hash_key, dbus_gtype_is_valid_hash_value)
2464         (dbus_g_hash_func_from_gtype, dbus_g_hash_free_from_gtype)
2465         (dbus_g_hash_equal_from_gtype, dbus_gvalue_stor, dbus_gvalue_take):
2466         * glib/dbus-gvalue.h (dbus_g_value_types_init)
2467         (dbus_gvalue_demarshal, dbus_gvalue_demarshal_variant)
2468         (dbus_gvalue_demarshal_message, dbus_gvalue_marshal):
2469         
2470         Prefix name with _ to ensure they're not exported.  All callers
2471         updated.
2472
2473         * glib/dbus-gvalue.c (typecode_to_gtype)
2474         (dbus_typecode_maps_to_basic, basic_typecode_to_gtype)
2475         (signature_iter_to_g_type_dict)
2476         (signature_iter_to_g_type_array)
2477         (dbus_gtype_from_signature_iter, dbus_gtype_from_signature)
2478         (dbus_gtypes_from_arg_signature):
2479         Move to dbus-gsignature.c.
2480
2481         * glib/dbus-binding-tool-glib.c (dbus_binding_tool_output_glib_server): Call
2482         dbus_g_type_specialized_builtins_init instead of dbus_g_value_types_init.
2483         (dbus_binding_tool_output_glib_client): Ditto.
2484
2485         * glib/Makefile.am (DBUS_GLIB_INTERNALS): Add dbus-gsignature.c
2486         and dbus-gsignature.h
2487
2488         * test/glib/test-service-glib.c (my_object_rec_arrays): Delete
2489         unused variable.
2490
2491 2005-08-03  Colin Walters  <walters@verbum.org>
2492
2493         * glib/dbus-gobject.c: Add tests on hardcoded object info; this should
2494         catch any incompatible changes accidentally made.
2495
2496 2005-08-03  Havoc Pennington  <hp@redhat.com>
2497
2498         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): fix
2499         typo, from Julien Puydt
2500
2501         * bus/connection.c (bus_connection_disconnected): we were always
2502         doing a wait_for_memory due to a buggy loop, found by Timo Hoenig
2503
2504 2005-08-01  Colin Walters  <walters@verbum.org>
2505
2506         Patch from Joe Markus Clarke:   
2507         
2508         * glib/dbus-gidl.c (property_info_unref, arg_info_unref): Fix
2509         use-after-free.
2510
2511 2005-08-01  Colin Walters  <walters@verbum.org>
2512         
2513         Patch from Joe Markus Clarke:   
2514         
2515         * tools/dbus-send.c (main): 
2516         
2517         Don't use C99 style initializers (bug #3933).
2518         
2519 2005-08-01  Colin Walters  <walters@verbum.org>
2520
2521         Patch from Joe Markus Clarke:   
2522
2523         * glib/dbus-gvalue.c (dbus_g_value_types_init): 
2524         * glib/dbus-gvalue-utils.c (dbus_g_type_specialized_builtins_init) 
2525         * glib/dbus-gobject.c (write_interface):
2526
2527         Don't use C99 style initializers (bug #3933).
2528
2529 2005-07-31  Havoc Pennington  <hp@redhat.com>
2530
2531         * tools/dbus-viewer.c (load_child_nodes): fix invocation of
2532         dbus_g_proxy_call, fix from Piotr Zielinski bug #3920
2533
2534 2005-07-30  Havoc Pennington  <hp@redhat.com>
2535
2536         * fix a bunch of Doxygen warnings and mistakes
2537
2538 2005-07-30  Havoc Pennington  <hp@redhat.com>
2539
2540         * dbus/dbus-sysdeps.c (_dbus_string_parse_uint): remove #ifdef
2541         DBUS_BUILD_TESTS since it's now used in production code
2542
2543 2005-07-29  Havoc Pennington  <hp@redhat.com>
2544
2545         * test/glib/test-profile.c (write_junk): initialize the junk
2546         buffer so valgrind doesn't have a breakdown
2547
2548 2005-07-29  Havoc Pennington  <hp@redhat.com>
2549
2550         * bus/signals.c (bus_signals_test): add match_rule_equal() tests
2551         (match_rule_matches): remove unused arg
2552         (test_matching): add tests for match_rule_matches()
2553
2554         * bus/signals.c (bus_match_rule_parse_arg_match): add ability to
2555         do arg0='foo' arg5='bar' in the match rules
2556         (match_rule_matches): don't match if the arg0='foo' doesn't match.
2557
2558         * dbus/dbus-protocol.h (DBUS_MAXIMUM_MATCH_RULE_ARG_NUMBER): add this
2559
2560 2005-07-29  Ross Burton  <ross@openedhand.com>
2561
2562         * dbus/dbus-connection.c:
2563         Don't create a DBusCondVar which is never used.
2564
2565 2005-07-27  Ross Burton  <ross@openedhand.com>
2566
2567         * dbus/dbus-message.c:
2568         Reduce the size of the maximum cached message to 10K.
2569
2570 2005-07-25  Ross Burton  <ross@openedhand.com>
2571
2572         * glib/dbus-gproxy.c:
2573         Remove matches when all proxies are unregistered.
2574
2575 2005-07-24  Colin Walters  <walters@verbum.org>
2576
2577         * glib/dbus-gvalue.c (signature_iter_to_g_type_array): Don't require
2578         typedata; recursive arrays won't have it.
2579
2580         * test/glib/test-dbus-glib.c:
2581         * test/glib/test-service-glib.c:
2582         * test/glib/test-service-glib.xml: Add recursive arrays tests.
2583         
2584 2005-07-20  John (J5) Palmieir  <johnp@redhat.com>
2585
2586         * python/_dbus.py, _util.py, decorators.py, extract.py, matchrules.py.
2587         proxies.py, service.py: Cleanup of code after running it through the
2588         pyflakes code checker mostly dealing with undefined names.  
2589         (Bug #3828, Patch from Anthony Baxter <anthony@interlink.com.au>)
2590
2591 2005-07-17  John (J5) Palmieri  <johnp@redhat.com>
2592
2593         * NEWS: Update to 0.35.2
2594
2595 2005-07-17  John (J5) Palmieri  <johnp@redhat.com>
2596
2597         * python/_dbus.py: Remove import of the dbus.services
2598         module as it no longer exists (patch from Dimitur Kirov)
2599
2600         * python/service.py (Object::__init__): Fixed typo
2601         s/name/bus_name (patch from Dimitur Kirov)
2602
2603         * python/examples/example-signal-emitter.py: import dbus.glib
2604         to get the main loop and use glib mainloop instead of gtk so
2605         X doesn't have to be running.
2606
2607         * python/examples/example-signal-recipient.py: import dbus.glib
2608         to get the main loop and use glib mainloop instead of gtk so
2609         X doesn't have to be running. Import the decorators module
2610         directly.
2611
2612         * test/glib/Makefile.am:  Added DIST_EXTRA files that distcheck
2613         didn't pick up on but are needed to build
2614
2615         * configure.in: upped version to 0.35.2
2616
2617         * bus/driver.c, bus/selinux.c, bus/selinux.h, dbus/dbus-protocol.h:
2618         added Colin Walters' SELinux API rename patch from head 
2619         s/unix sercurity context/selinux security context/
2620
2621 2005-07-16  John (J5) Palmieri  <johnp@redhat.com>
2622
2623         * python/Makefile.am: dbus_binding.pxd.in should be included 
2624         in EXTRA_DIST not dbus_binding.pxd
2625         fix up $(srcdir) hopefully for the last time
2626
2627         * NEWS: Update to 0.35.1
2628
2629 2005-07-16  Colin Walters  <walters@verbum.org>
2630
2631         * bus/driver.c (bus_driver_handle_get_connection_selinux_security_context): Renamed
2632         from bus_driver_handle_get_connection_unix_security_context.  Update for
2633         error usage.
2634         (message_handlers): Update for renames.
2635
2636         * bus/selinux.c (bus_selinux_allows_send): Handle OOM on
2637         _dbus_string_init failure correctly.
2638         (bus_selinux_append_context): Convert SID to context.  Append it
2639         as a byte array.
2640         (bus_selinux_shutdown): Handle the case where bus_selinux_full_init
2641         hasn't been called.
2642
2643         * bus/selinux.h: Update prototype.
2644
2645         * dbus/dbus-protocol.h (DBUS_ERROR_SELINUX_SECURITY_CONTEXT_UNKNOWN): Renamed
2646         from DBUS_ERROR_UNIX_SECURITY_CONTEXT_UNKNOWN.
2647
2648 2005-07-15  Colin Walters  <walters@verbum.org>
2649
2650         * doc/TODO: Add note about convenience wrappers.
2651
2652 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
2653
2654         * NEWS: Update to 0.35
2655
2656 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
2657
2658         * glib/Makefile.am: Add make-dbus-glib-error-switch.sh to EXTRA_DIST
2659         so distcheck doesn't fail
2660
2661         * glib/examples/Makefile.am: Add example-service.xml and 
2662         example-signal-emitter.xml to EXTRA_DIST so distcheck doesn't fail
2663
2664         * glib/examples/statemachine/Makefile.am: Add statemachine.xml and
2665         statemachine-server.xml to EXTRA_DIST so distcheck doesn't fail
2666
2667         * python/Makefile.am: Preprend $(srcdir)/ to source files so the
2668         compiler looks in the right places during distcheck
2669
2670 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
2671
2672         * glib/example/Makefile.am: Fix a typo which cause make distcheck
2673         to fail
2674
2675 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
2676
2677         * python/examples/example-service.py,
2678         python/examples/example-signal-emitter.py: Fixed up examples
2679         for API changes
2680
2681 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
2682
2683         * python/__init__.py: Upped to version (0,42,0) because of
2684         the API change
2685
2686 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
2687
2688         * ChangeLog: fix date in last entry
2689
2690         * configure.in, bus/system.conf.in: add the ability to configure 
2691         the system bus user at compiletime with the --with-dbus-user flag
2692         (patch from Kristof Vansant)
2693
2694 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
2695
2696         * bus/dispatch.c, test/test-service.c: Add testcase
2697         for sending messages to oneself (TODO item).
2698
2699         * python/service.py (class Object): Swap ordering of bus_name 
2700         and object_path parameters to better support inheritance.
2701
2702         * doc/dbus-tutorial.xml: change Python docs to reflect change
2703         in parameter ordering and fix the inheritance section.
2704
2705         * doc/TODO: remove sending message to oneself TODO item
2706
2707 2005-07-15  Ross Burton  <ross@openedhand.com>
2708
2709         * glib/dbus-gproxy.c:
2710         Fix a leak when calling methods via the proxy.
2711
2712 2005-07-15  Colin Walters  <walters@verbum.org>
2713
2714         * bus/selinux.c (bus_selinux_append_context): Wrap in
2715         HAVE_SELINUX.
2716
2717 2005-07-14  John (J5) Palmieri  <johnp@redhat.com>
2718
2719         * python/_dbus.py (Bus::remove_signal_receiver):
2720         don't add a callback to the match if none has been passed in
2721         
2722         * python/matchrules.py (SignalMatchTree::remove): if the rule
2723         being matched does not have a callback treat it as a wildcard
2724         fix matching logic
2725
2726         * doc/dbus-tutorial.xml: Add Python tutorial
2727
2728 2005-07-14  Colin Walters  <walters@verbum.org>
2729
2730         * bus/driver.c
2731         (bus_driver_handle_get_connection_unix_security_context): New function.
2732         (message_handlers): Add.
2733
2734         * bus/selinux.c (bus_selinux_append_context): New function; appends
2735         security context to message.
2736
2737         * bus/selinux.h: Prototype.
2738
2739         * dbus/dbus-protocol.h (DBUS_ERROR_UNIX_SECURITY_CONTEXT_UNKNOWN): New.
2740
2741 2005-07-14  John (J5) Palmieri  <johnp@redhat.com>
2742
2743         * bus/activation.c: clean up all tabs to be 8 spaces 
2744         (bus_activation_activate_service): make sure we clean up
2745         if activation fails
2746
2747         * bus/dispatch.c: clean up all tabs to be 8 spaces 
2748         (check_shell_fail_service_auto_start): New function
2749         tests to make sure we get fail properly when trying to auto start a service
2750         with a faulty command line
2751         (check_shell_service_success_auto_start): New function tests to make sure
2752         auto started services get the arguments on the command line
2753
2754         * test/test-shell-service.c: Added service for testing auto-starting with 
2755         command line arguments
2756
2757         * test/data/valid-service-files/debug-shell-echo-fail.service.in, 
2758         test/data/valid-service-files/debug-shell-echo-success.service.in:
2759         Added service files for testing auto-starting with command line arguments
2760
2761         * */.cvsignore: added a bunch of generated files to various .cvsignore files
2762
2763 2005-07-14  Rodrigo Moya  <rodrigo@novell.com>
2764
2765         * dbus/dbus-shell.[ch]: copy/pasted code from GLib.
2766         
2767         * dbus/Makefile.am: added new files to build.
2768
2769         * bus/activation.c (bus_activation_activate_service): support
2770         activation commands with parameters.
2771
2772         * test/shell-test.c: added test program for the shell parsing
2773         code.
2774
2775 2005-07-13  David Zeuthen  <davidz@redhat.com>
2776
2777         * tools/dbus-send.c (append_arg, type_from_name): Also support 16 and
2778         64 bit signed and unsigned parameters
2779
2780 2005-07-13  John (J5) Palmieri  <johnp@redhat.com>
2781
2782         * python/.cvsignore: remove dbus_bindings.pyx, add dbus_bindings.pxd
2783
2784         * python/service.py (class Name): renamed BusName to make it clearer
2785         what the object is for (a name on the bus)
2786
2787         * python/examples/example-service.py,
2788         python/examples/example-signal-emitter.py: change the Name object to
2789         BusName
2790
2791 2005-07-12  Colin Walters  <walters@verbum.org>
2792
2793         Patch from Jim Gettys <Jim.Gettys@hp.com>.
2794
2795         * tools/dbus-launch.c: Include sys/select.h.
2796
2797 2005-07-12  John (J5) Palmieri  <johnp@redhat.com>
2798         * python/dbus_bindings.pyx.in: removed
2799
2800         * python/dbus_bindings.pyx: Added.
2801         - Fixed some memleaks (patch from 
2802         Sean Meiners <sean.meiners@linspireinc.com>)
2803         - Broke out the #include "dbus_h_wrapper.h" and put it in its
2804         own pxd file (Pyrex definition)
2805         - Broke out glib dependancies into its own pyx module
2806         
2807         * python/dbus_bindings.pdx: Added.
2808         - Defines C class Connection for exporting to other modules
2809
2810         * python/dbus_glib_bindings.pyx: Added.
2811         - New module to handle lowlevel dbus-glib mainloop integration
2812
2813         * python/glib.py: Added.
2814         - Registers the glib mainloop when you import this module
2815
2816         * python/services.py: Removed (renamed to service.py)
2817         
2818         * python/service.py: Added.
2819         - (class Server): renamed Name
2820
2821         * python/__init__.py: Bump ro version (0,41,0)
2822         -don't import the decorators or service module
2823         by default.  These now reside in the dbus.service namespace
2824
2825         * python/_dbus.py (Bus::__init__): Add code run the main loop 
2826         setup function on creation 
2827
2828         * python/examples/example-service.py,
2829         python/examples/example-signal-emitter.py: update examples
2830
2831         * python/examples/gconf-proxy-service.py,
2832         python/examples/gconf-proxy-service2.py: TODO fix these up
2833
2834         * doc/TODO: Addition
2835         - Added a Python Bindings 1.0 section
2836         - added "Add match on args or match on details to match rules"
2837
2838
2839 2005-07-12  Colin Walters  <walters@verbum.org>
2840
2841         * glib/examples/statemachine/Makefile.am (statemachine-server-glue.h) 
2842         (statemachine-glue.h): 
2843         * glib/examples/Makefile.am (example-service-glue.h) 
2844         (example-signal-emitter-glue.h): 
2845         * glib/Makefile.am (dbus-glib-error-switch.h): 
2846         Add libtool --mode=execute so we use the built library instead
2847         of any installed one.
2848
2849 2005-07-11  Colin Walters  <walters@verbum.org>
2850
2851         * glib/dbus-gvalue.c (struct _DBusGValue): Delete.
2852         (dbus_g_value_types_init): Remove assertion.
2853         (dbus_g_value_get_g_type, dbus_g_value_open)
2854         (dbus_g_value_iterator_get_values, dbus_g_value_get_signature)
2855         (dbus_g_value_copy, dbus_g_value_free): Delete unimplemented
2856         functions related to DBusGValue.  Now we marshal/demarshal
2857         structures as GValueArray.
2858         (dbus_gtype_from_signature_iter): Return G_TYPE_VALUE_ARRAY for
2859         structures.
2860         (signature_iter_to_g_type_array): Don't call
2861         signature_iter_to_g_type_struct.
2862         (signature_iter_to_g_type_struct): Delete.
2863         (dbus_gvalue_to_signature): Delete.
2864         (dbus_gvalue_to_signature): New function with same name as other
2865         one; we can convert structures to signatures.
2866         (demarshal_valuearray): New function.
2867         (get_type_demarshaller): Use it.
2868         (demarshal_recurse): Delete.
2869         (marshal_proxy): New function.
2870         (marshal_map): Warn if we can't determine signature from type.
2871         (marshal_collection_ptrarray): Ditto.
2872         (marshal_collection_array): Ditto.
2873         (get_type_marshaller): Use marshal_valuearray.
2874         (marshal_recurse): Delete.
2875         (_dbus_gvalue_test): Add some tests.
2876
2877         * dbus/dbus-glib.h (struct _DBusGValueIterator): 
2878         (dbus_g_value_get_g_type, DBUS_TYPE_G_VALUE)
2879         (dbus_g_value_open, dbus_g_value_iterator_get_value)
2880         (dbus_g_value_iterator_get_values, dbus_g_value_iterator_recurse)
2881         (dbus_g_value_free): Remove prototypes.
2882
2883         * glib/dbus-binding-tool-glib.c (dbus_g_type_get_lookup_function): Handle
2884         G_TYPE_VALUE_ARRAY.
2885
2886         * glib/examples/example-service.c:
2887         * glib/examples/example-client.c: Implement GetTuple.
2888
2889         * test/glib/test-dbus-glib.c:
2890         * test/glib/test-service-glib.c:
2891         * test/glib/test-service-glib.xml: Add structure tests.
2892
2893 2005-07-10  Colin Walters  <walters@verbum.org>
2894
2895         * doc/TODO: Knock off some GLib items with this patch.
2896
2897         * glib/dbus-gvalue-utils.c (_dbus_gtype_can_signal_error) 
2898         (_dbus_gvalue_signals_error): New functions.
2899
2900         * glib/dbus-gvalue-utils.h: Prototype them.
2901
2902         * glib/dbus-gobject.c (arg_iterate): Update to handle return vals
2903         and change to not output const/retval flags for input args.  All
2904         callers updated.
2905         (invoke_object_method): Refactor to handle return values.  Add
2906         some more comments in various places.  Remove debug g_print.
2907
2908         * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_RETURNVAL): New.
2909
2910         * glib/dbus-binding-tool-glib.c (dbus_g_type_get_marshal_name):
2911         Handle G_TYPE_NONE.
2912         (compute_gsignature): New function; refactored from code from
2913         compute_marshaller and compute_marshaller_name.  Enhance to
2914         handle return values and async ops more cleanly.  Update for
2915         async ops returning NONE instead of BOOLEAN.
2916         (compute_marshaller, compute_marshaller_name): Call compute_gsignature
2917         and output appropriate string.
2918         (generate_glue): Handle return value annotation.  Also don't dump
2919         constness flag for input arguments.
2920
2921         * glib/Makefile.am (DBUS_GLIB_INTERNALS): New variable; contains
2922         files shared between installed library and utilities.
2923         (libdbus_glib_1_la_SOURCES): Move some stuf into DBUS_GLIB_INTERNALS.
2924         (libdbus_gtool_la_SOURCES): Suck in DBUS_GLIB_INTERNALS so the
2925         binding tool can access gtype utility functions.
2926
2927         * test/glib/test-service-glib.c: 
2928         * test/glib/test-service-glib.xml: 
2929         * test/glib/test-dbus-glib.c: Add some tests for return values.
2930
2931 2005-07-09  Colin Walters  <walters@verbum.org>
2932
2933         * glib/dbus-gparser.c (parse_annotation): Add annotations to
2934         argument if available, not method.
2935
2936         * glib/dbus-gobject.c (arg_iterate): More verbose warnings.
2937         (invoke_object_method): First, remove some redundant
2938         GValues (object_value, error_value) in favor of working on
2939         array directly.  Second, rework constness to be less buggy.
2940         Now we iterate directly over the argument metadata instead
2941         of parallel iterating over output signature and metadata.
2942
2943         * glib/dbus-glib-tool.h: Add INVALID_ANNOTATION error.
2944
2945         * glib/dbus-binding-tool-glib.c (generate_glue): Barf on const
2946         annotation on input args.
2947         
2948 2005-07-09  Colin Walters  <walters@verbum.org>
2949
2950         * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_CONST):
2951         Define.
2952
2953         * glib/dbus-binding-tool-glib.c (generate_glue): Handle Const
2954         annotation.
2955
2956         * glib/dbus-gobject.c (arg_iterate): Update to parse constval too.
2957         (method_dir_signature_from_object_info): Handle arg_iterate change.
2958         (write_interface): Ditto.
2959         (lookup_object_info): Don't barf if format_version is > 0.
2960         (invoke_object_method): Handle arg constness.
2961
2962         * glib/dbus-gidl.c (struct ArgInfo): Add annotations.
2963         (arg_info_new): Create.
2964         (arg_info_unref): Destroy.
2965         (arg_info_get_annotations, arg_info_get_annotation) 
2966         (arg_info_add_annotation): New functions.
2967
2968         * glib/dbus-gidl.h: Prototype them.
2969
2970         * glib/dbus-gparser.c (parse_annotation): Allow annotations in
2971         args, disallow them in properties.
2972         (parse_annotation): Handle arg annotations.
2973
2974         * test/glib/test-service-glib.xml: 
2975         * test/glib/test-service-glib.c: Update to make some methods
2976         const.
2977
2978 2005-07-08  Colin Walters  <walters@verbum.org>
2979
2980         * test/glib/test-service-glib.xml: 
2981         * test/glib/test-service-glib.c:
2982         * test/glib/test-dbus-glib.c: Test a{sv}.
2983
2984         * glib/examples/statemachine/statemachine.c:
2985         * glib/examples/statemachine/statemachine-server.c:
2986         * glib/examples/statemachine/statemachine-client.c: Fix some bugs,
2987         add progress bar, etc.
2988
2989         * glib/dbus-gvalue.c (register_array, register_dict): Delete; not
2990         needed anymore due to generic array/map marshalling.
2991         (dbus_g_value_types_init): Don't register basic arrays or the
2992         string/string hash.
2993         (dbus_gtype_from_signature_iter): Don't try to recurse into
2994         variants.
2995         (dbus_gtype_to_signature): Check collection/map before type
2996         metadata.
2997         (demarshal_garray_basic): Renamed to demarshal_collection_array.
2998         (demarshal_ghashtable): Renamed to demarshal_map; fix to use new
2999         generic map creation/append functions instead of hash table
3000         specifically.
3001         (get_type_demarshaller): Handle maps.
3002         (demarshal_collection): Dispatch on collection type to either
3003         demarshal_collection_ptrarray or demarshal_collection_array.
3004         (get_type_marshaller): Handle maps.
3005         (marshal_collection): Dispatch collection type to either
3006         marshal_collection_ptrarray or marshal_collection_array.
3007         (_dbus_gvalue_test): New test.
3008
3009         * glib/dbus-gvalue-utils.c (unset_and_free_g_value): New function.
3010         (hash_free_from_gtype): Use it to free GValues.
3011         (hashtable_append): New function.
3012         (ptrarray_append): Fix prototype.
3013         (slist_append): Ditto.
3014         (_dbus_gvalue_utils_test): Extend tests.
3015
3016         * glib/dbus-gtype-specialized.c
3017         (dbus_g_type_specialized_init_append): Renamed from
3018         dbus_g_type_specialized_collection_init_append.  Remove const from
3019         value, since we steal it.
3020         (dbus_g_type_specialized_map_append): New function.
3021
3022         * glib/dbus-gtype-specialized.h: Update prototypes.
3023         Add DBusGTypeSpecializedMapAppendFunc.
3024
3025         * glib/dbus-gtest.c (dbus_glib_internal_do_not_use_run_tests): Run
3026         _dbus_gvalue_test.
3027         
3028         * glib/dbus-gtest.h: Prototype it.
3029
3030 2005-07-08  Ross Burton  <ross@openedhand.com>
3031
3032         * dbus/dbus-glib.h:
3033         Add DBysGAsyncData for the async bindings.
3034
3035         * glib/dbus-binding-tool-glib.c:
3036         Re-enable the async bindings.
3037
3038         * test/glib/test-dbus-glib.c:
3039         Add a test for the generated async bindings.
3040
3041 2005-07-08  Colin Walters  <walters@verbum.org>
3042
3043         * doc/TODO: Update GLib todo bits, also add a post-1.0 TODO for a
3044         connection concept.
3045         
3046 2005-07-08  Colin Walters  <walters@verbum.org>
3047         
3048         * tools/Makefile.am: Kill of print-introspect in favor of using
3049         dbus-send --print-reply=literal.
3050
3051         * test/glib/test-service-glib.xml: 
3052         * test/glib/test-service-glib.c (my_object_get_objs): New test
3053         for "ao".
3054
3055         * test/glib/test-dbus-glib.c (echo_received_cb): Free echo data.
3056         (main): Test GetObjs.
3057
3058         * glib/examples/statemachine/Makefile.am:
3059         * glib/examples/statemachine/sm-marshal.list:
3060         * glib/examples/statemachine/statemachine-client.c:
3061         * glib/examples/statemachine/statemachine-server.c:
3062         * glib/examples/statemachine/statemachine-server.xml:
3063         * glib/examples/statemachine/statemachine.c:
3064         * glib/examples/statemachine/statemachine.h:
3065         * glib/examples/statemachine/statemachine.xml:
3066
3067         New example.
3068
3069         * glib/examples/example-service.c (main): Move invocation
3070         of dbus_g_object_type_install_info earlier, to emphasize it
3071         should only be done once.
3072
3073         * glib/examples/example-signal-emitter.c (main): Ditto.
3074
3075         * glib/examples/Makefile.am (SUBDIRS): Include statemachine.
3076
3077         * glib/dbus-gvalue.h (dbus_gtype_to_signature)
3078         (dbus_gvalue_marshal): Update prototypes.
3079
3080         * glib/dbus-gvalue.c: Update all marshalling functions to take
3081         const GValue instead of GValue.
3082         (signature_iter_to_g_type_array): Return a GPtrArray for nonfixed
3083         types.
3084         (dbus_gvalue_to_signature): Update for dbus_gtype_to_signature
3085         change.
3086         (dbus_gtype_to_signature): Handle generic collecitons and maps.
3087         Return a newly-allocated string.
3088         (demarshal_proxy, demarshal_object_path, demarshal_object)
3089         (demarshal_strv, demarshal_ghashtable): Set error, don't assert if
3090         we get the wrong types from message.
3091         (get_type_demarshaller): New function, extracted from
3092         dbus_gvalue_demarshal.
3093         (demarshal_collection): New function, demarshals generic
3094         collection.
3095         (dbus_gvalue_demarshal): Just invoke result of
3096         get_type_demarshaller.  Throw error if we don't have one.
3097         (marshal_garray_basic): Abort on OOM.
3098         (get_type_marshaller): New function, extracted from
3099         dbus_gvalue_marshal.
3100         (collection_marshal_iterator, marshal_collection): New functions;
3101         implements generic marshalling for an iteratable specialized
3102         collection.
3103         (dbus_gvalue_marshal): Just invoke result of get_type_marshaller.
3104
3105         * glib/dbus-gvalue-utils.c (gvalue_from_ptrarray_value): Handle
3106         G_TYPE_STRING.
3107         (ptrarray_value_from_gvalue): Ditto.
3108         (ptrarray_append, ptrarray_free): New functions.
3109         (slist_constructor, slist_iterator, slist_copy_elt, slist_copy) 
3110         (slist_append, slist_end_append, slist_free): New functions.
3111         (dbus_g_type_specialized_builtins_init): Add append fuctions
3112         for GPtrArray and GSList.  Register GSList.
3113         (test_specialized_hash, _dbus_gvalue_utils_test): New functions.
3114
3115         * glib/dbus-gtype-specialized.h (DBusGTypeSpecializedAppendContext):
3116         New.
3117         (dbus_g_type_specialized_collection_init_append)
3118         (dbus_g_type_specialized_collection_append)
3119         (dbus_g_type_specialized_collection_end_append): Prototype.
3120         (DBusGTypeSpecializedCollectionVtable): Add append_func and
3121         end_append_func.
3122
3123         * glib/dbus-gtype-specialized.c (dbus_g_type_specialized_collection_init_append) 
3124         (dbus_g_type_specialized_collection_append) 
3125         (dbus_g_type_specialized_collection_end_append): New functions.
3126         (dbus_g_type_map_value_iterate): Take const GValue.
3127         (dbus_g_type_collection_value_iterate): Ditto.
3128
3129         * glib/dbus-gtest.c (dbus_glib_internal_do_not_use_run_tests): Run
3130         _dbus_gvalue_utils_test.
3131         
3132         * glib/dbus-gtest.h: Prototype it.
3133
3134         * glib/dbus-gproxy.c (dbus_g_proxy_manager_filter): Avoid
3135         using uninitialized owner_list.
3136         (dbus_g_proxy_begin_call_internal): Move return_if_fail to
3137         public API.
3138         (dbus_g_proxy_end_call_internal): Update to use error set
3139         from dbus_gvalue_demarshal instead of setting it here.
3140         (dbus_g_proxy_begin_call): Move return_if_fail here.
3141
3142         * glib/dbus-gobject.c (write_interface): Update for
3143         dbus_gtype_to_signature returning new string.
3144
3145         * configure.in: Add glib/examples/statemachine.
3146
3147 2005-07-08  Joe Shaw  <joeshaw@novell.com>
3148
3149         * configure.in: Add a configure option, --with-console-auth-dir
3150         
3151         * dbus/dbus-sysdeps-util.c (_dbus_user_at_console): Use the
3152         new setting.  Patch from Kay Sievers.
3153
3154 2005-07-06  Colin Walters  <walters@verbum.org>
3155
3156         * dbus/dbus-glib.h (DBusGPendingCall, DBusGPendingCallNotify)
3157         (DBUS_TYPE_G_PENDING_CALL, dbus_g_pending_call_get_g_type)
3158         (dbus_g_pending_call_ref, dbus_g_pending_call_unref): Delete.
3159         (dbus_g_pending_call_set_notify, dbus_g_pending_call_cancel):
3160         Delete in favor of dbus_g_proxy_begin_call and
3161         dbus_g_proxy_cancel_call.
3162         (DBusGProxyCall, DBusGProxyCallNotify): New.
3163         (dbus_g_proxy_begin_call): Change prototype to take callback, user
3164         data, and destroy function.  This replaces
3165         dbus_g_pending_call_set_notify.
3166         (dbus_g_proxy_cancel_call): Prototype.
3167         (DBusGAsyncData): Delete, shouldn't be needed anymore.
3168
3169         * glib/dbus-gproxy.c (struct _DBusGProxy): Add call_id_counter and
3170         pending_calls map.
3171         (struct _DBusGProxyManager): Add bus_proxy member, which is an
3172         internal proxy for calls to the bus. Remove
3173         pending_nameowner_calls, now the internal proxy keeps track.
3174         (dbus_g_proxy_manager_unref): Unref bus proxy, remove reference to
3175         pending_nameowner_calls.
3176         (got_name_owner_cb): Update prototype, and use
3177         dbus_g_proxy_end_call.
3178         (got_name_owner_cb): Remove reference to pending_nameowner_calls.
3179         (dbus_g_proxy_manager_register): Delete directly libdbus code in
3180         favor of using internal proxy.
3181         (dbus_g_proxy_manager_unregister): Update to use
3182         dbus_g_proxy_cancel_call for any pending GetNameOwner call.
3183         (dbus_g_proxy_init): Initialize pending calls map.
3184         (dbus_g_proxy_constructor): New.
3185         (dbus_g_proxy_class_init): Add get/set property functions,
3186         constructor, and add NAME, PATH, and INTERFACE properties.
3187         (cancel_pending_call): New function.
3188         (dbus_g_proxy_dispose): Iterate over any outstanding calls and
3189         cancel them.
3190         (dbus_g_proxy_set_property, dbus_g_proxy_get_property): New.
3191         (GPendingNotifyClosure): New structure.
3192         (d_pending_call_notify, d_pending_call_free): Moved here from
3193         dbus-glib.c.
3194         (DBUS_G_VALUE_ARRAY_COLLECT_ALL): Moved around to satisfy function
3195         ordering.
3196         (manager_begin_bus_call): New internal function for talking to
3197         internal bus proxy.
3198         (dbus_g_proxy_new): Construct object using GObjet properties.
3199         (dbus_g_proxy_begin_call_internal): Update to take user data, etc.
3200         Create closure of same, and insert call into map of pending calls.
3201         (dbus_g_proxy_end_call_internal): Take call id instead of pending
3202         call.  Look up pending call in current set.  Remove it when we've
3203         completed.
3204         (dbus_g_pending_call_end, dbus_g_proxy_end_call_internal): Delete.
3205         (dbus_g_proxy_begin_call): Change API to take callback, user data,
3206         and destroy function directly.
3207         (dbus_g_proxy_end_call): Update to take DBusGProxyCall.
3208         (dbus_g_proxy_call): Invoke with NULL callback.
3209         (dbus_g_proxy_cancel_call): New function, replaces
3210         dbus_g_pending_call_cancel.
3211
3212         * glib/dbus-gparser.c (validate_signature): Fix call to
3213         dbus_set_g_error.
3214
3215         * glib/dbus-gobject.c (dbus_g_object_type_dbus_metadata_quark):
3216         New quark for attaching metadata to GType.
3217         (info_hash): Delete.
3218         (lookup_object_info): Look up using quark.
3219         (dbus_g_object_type_install_info): Check that a type is classed,
3220         not that it's an object.  Also just install type data using quark
3221         instead of using global hash.
3222
3223         * glib/dbus-glib.c (dbus_g_pending_call_ref) 
3224         (dbus_g_pending_call_unref, dbus_pending_call_get_g_type)
3225         (GPendingNotifyClosure): Delete.
3226         (d_pending_call_notify, d_pending_call_free): Move to dbus-gproxy.c.
3227         (dbus_g_pending_call_set_notify, dbus_g_pending_call_cancel): Delete.
3228
3229         * glib/dbus-binding-tool-glib.c (generate_client_glue): Disable async
3230         client method generation until we can fix it...
3231         
3232         * tools/dbus-viewer.c (load_child_nodes): Use dbus_g_proxy_call.
3233         (load_from_service_thread_func): Ditto.
3234
3235         * tools/dbus-names-model.c (struct NamesModel): Hold
3236         DBusGProxyCall.
3237         (have_names_notify): Update prototype, use
3238         dbus_g_proxy_cancel_call.
3239         (names_model_reload): Update for new dbus_g_proxy_begin_call API.
3240
3241         * tools/dbus-monitor.c (filter_func): Update for print_message
3242         API change.
3243
3244         * test/glib/test-dbus-glib.c: Add more tests for async
3245         invocations.  Update many begin_call/end_call pairs to just use
3246         dbus_g_proxy_call.
3247
3248         * tools/dbus-send.c (main): Add --print-reply=literal mode.  This
3249         allows us to dump print-introspect.c.
3250
3251         * tools/dbus-print-message.h (print_message): Add literal argument
3252         to print_message which is intended to allow printing arguments without
3253         metadata like "string=".
3254
3255         * tools/dbus-print-message.c (print_iter): Add literal argument.
3256         (print_message): Allow printing string messages literally.
3257
3258 2005-07-05  Colin Walters  <walters@verbum.org>
3259
3260         * glib/dbus-gproxy.c (marshal_dbus_message_to_g_marshaller):
3261         Remove value refcount leak, original patch from Jorn Baayen
3262         <jorn@openedhand.com>.  Also remove useless extra value in favor
3263         of prepending to value array directly.
3264
3265 2005-07-02  Colin Walters  <walters@verbum.org>
3266
3267         * glib/dbus-gmain.c (_dbus_gmain_test): Fix test.
3268
3269 2005-07-01  Colin Walters  <walters@verbum.org>
3270
3271         Patch from Jonathan Matthew <jonathan@kaolin.hn.org>
3272         
3273         * glib/dbus-gvalue.c (basic_typecode_to_gtype): Fix return type.
3274         (dbus_g_value_types_init): Marshal G_TYPE_CHAR as DBUS_TYPE_BYTE,
3275         G_TYPE_LONG as DBUS_TYPE_INT32, G_TYPE_ULONG as DBUS_TYPE_UINT32,
3276         and G_TYPE_FLOAT as DBUS_TYPE_DOUBLE.
3277
3278 2005-06-30  Colin Walters  <walters@verbum.org>
3279
3280         * test/glib/test-dbus-glib.c:
3281         * test/glib/test-service-glib.c:
3282         * test/glib/test-service-glib.xml: Update tests for new error
3283         setting bits, also add async tests (patch from Ross Burton).
3284
3285         * test/glib/Makefile.am (test_service_glib_LDADD): Add
3286         DBUS_GLIB_THREADS_LIBS.
3287
3288         * glib/dbus-gproxy.c (get_name_owner)
3289         (dbus_g_pending_call_end_valist): Ditto.
3290
3291         * glib/dbus-gobject.c (error_metadata): New mapping from GError
3292         domain (GQuark) to DBusGErrorInfo.  
3293         (gerror_domaincode_to_dbus_error_name): Attempt to look up error
3294         quark in error_metadata.  Take message interface as default
3295         error message interface.
3296         (gerror_to_dbus_error_message): Pass message interface.
3297         (dbus_set_g_error): Resurrected.
3298         (dbus_g_error_info_free): New function.
3299         (dbus_g_object_type_install_info): Use g_type_class_ref instead
3300         of _peek to actually create the object class if it hasn't been
3301         created yet.
3302         (dbus_g_error_domain_register): New function.
3303
3304         * glib/dbus-gmain.c (dbus_g_bus_get): Switch to dbus_set_g_error.
3305
3306         * glib/dbus-gparser.c (validate_signature): Ditto.
3307
3308         * dbus/dbus-glib.h (dbus_g_error_set): Delete.
3309         (dbus_g_error_domain_register): Prototype.
3310
3311         * glib/dbus-glib.c (dbus_g_error_set): Delete.
3312         Update tests.
3313
3314 2005-06-29  Colin Walters  <walters@verbum.org>
3315
3316         * dbus/dbus-glib.h: Delete DBUS_TYPE_G_PROXY_ARRAY.  Add
3317         DBUS_TYPE_G_OBJECT_PATH.
3318
3319         * glib/dbus-gvalue.c (dbus_g_value_types_init): Remove marshallers
3320         for G_TYPE_OBJECT and DBUS_TYPE_G_PROXY_ARRAY (the latter should
3321         be handled more generically).  Add DBUS_TYPE_G_OBJECT_PATH.
3322         (dbus_g_object_path_get_g_type): New function.
3323         (dbus_gtype_from_signature_iter): Map DBUS_TYPE_OBJECT_PATH
3324         to DBUS_TYPE_G_OBJECT_PATH by default.
3325         (demarshal_proxy): Remove unused name variable.
3326         (demarshal_object_path, marshal_object_path): New functions.
3327         (demarshal_proxy_array, marshal_proxy_array): Delete.
3328         
3329         * glib/dbus-binding-tool-glib.c (dbus_g_type_get_c_name): Map
3330         DBUS_TYPE_G_OBJECT_PATH to char *.
3331         (dbus_g_type_get_lookup_function): Map builtin
3332         DBUS_TYPE_G_OBJECT_PATH.
3333
3334         * test/glib/test-dbus-glib.c
3335         * test/glib/test-service-glib.c (my_object_objpath): 
3336         Adapt tests to new object path marshalling.
3337
3338 2005-06-29  John (J5) Palmieri  <johnp@redhat.com>
3339
3340         * configure.in: force check for Python >= 2.4
3341
3342 2005-06-29  Colin Walters  <walters@verbum.org>
3343         
3344         Patch from Ross Burton <ross@openedhand.com>
3345         
3346         * glib/dbus-gobject.c (invoke_object_method): Unset object
3347         value in all cases, not only in async case.
3348
3349 2005-06-29  Colin Walters  <walters@verbum.org>
3350
3351         * glib/dbus-gproxy.c (struct _DBusGProxy): Add new member
3352         name_call for keeping track of any outgoing GetNameOwner call.
3353         Also add for_owner and associated.
3354         (struct _DBusGProxyManager): Add owner_names, which is hash table
3355         that maps a base name to a list of names it owns (that we're
3356         interested in).  Add pending_nameowner_calls which is a list of
3357         all outstanding GetNameOwner; avoids us having to iterate over
3358         every proxy.  Add unassociated_proxies which keeps track of name
3359         proxies with no associated name owner.
3360         (dbus_g_proxy_manager_unref): Destroy owner_names.
3361         (struct DBusGProxyNameOwnerInfo): New struct for keeping track of
3362         name refcounts.
3363         (find_name_in_info, name_owner_foreach)
3364         (dbus_g_proxy_manager_lookup_name_owner, insert_nameinfo)
3365         (dbus_g_proxy_manager_monitor_name_owner)
3366         (dbus_g_proxy_manager_unmonitor_name_owner)
3367         (unassociate_proxies, dbus_g_proxy_manager_replace_name_owner):
3368         New functions; they manipulate the owner_names mapping.
3369         (got_name_owner_cb): New function.
3370         (get_name_owner): New function, extracted from
3371         dbus_g_proxy_new_for_name_owner.
3372         (dbus_g_proxy_manager_register): For now we need to keep track of
3373         all NameOwnerChanged.  Also if the proxy is for a name, if we
3374         don't already know the name owner, queue a new GetNameOwner
3375         request and add it to our list of unassociated proxies.  Otherwise
3376         inc the refcount.
3377         (dbus_g_proxy_manager_unregister): If this proxy is for a name,
3378         cancel any pending GetNameOwner call, etc.
3379         (dbus_g_proxy_manager_filter): Handle NameOwnerChanged.  Also use
3380         the owner_names mapping to look up the current names for the
3381         signal source, and dispatch to any proxies for that name.
3382         (dbus_g_proxy_new): Initialize new members.
3383         (dbus_g_proxy_new_for_name): Delete unused proxy variable.
3384         (dbus_g_proxy_new_for_name_owner): Use get_name_owner.
3385         (dbus_g_pending_call_end_valist): New function, extracted from
3386         dbus_g_proxy_end_call_internal.  Useful when we don't have a proxy
3387         but want to use the GLib infrastructure.  Also note how many
3388         arguments in reply were over.
3389         (dbus_g_pending_call_end): New function, just call
3390         dbus_g_pending_call_end_valist.
3391         (dbus_g_proxy_end_call_internal): Just call
3392         dbus_g_pending_call_end_valist.
3393
3394         * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller): Fix lookup
3395         of builtin marshaller for STRING_STRING_STRING.
3396
3397         * test/glib/test-dbus-glib.c: 
3398         * test/glib/test-service-glib.c:
3399         * test/glib/test-service-glib.xml:
3400         Extend tests to cover name proxies, destruction of owner proxies,
3401         etc.
3402         
3403         * glib/examples/example-signal-recipient.c
3404         (dbus_g_proxy_new_for_name_owner): Create a name proxy.
3405         
3406         * tools/dbus-send.c (main): Print D-BUS error name in addition
3407         to message.
3408
3409 2005-06-28  John (J5) Palmieri  <johnp@redhat.com>
3410
3411         * python/dbus_bindings.pyx.in (cunregister_function_handler,
3412         cmessage_function_handler): Patch from 
3413         Anthony Baxter <anthony@interlink.com.au> fixes threading problems
3414         by using the Py_GILState_Ensure/Release to synchronize with the
3415         python runtime.
3416         
3417 2005-06-28  Ray Strode  <rstrode@redhat.com>
3418
3419         *  dbus/dbus-spawn.c (_dbus_babysitter_unref): kill
3420         babysitter helper process on last unref, bug #2813.
3421
3422 2005-06-27  Colin Walters  <walters@verbum.org>
3423
3424         * test/glib/test-dbus-glib.c: 
3425         * test/glib/test-service-glib.c:
3426         * test/glib/test-service-glib.xml:
3427         Test hash table signal emitting.
3428
3429         * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller): Convert
3430         types to their fundamental basis types, since this is what
3431         marshallers operate on.  Also add an entry for VOID__BOXED.
3432         (dbus_g_object_register_marshaller_array): Convert to fundamental.
3433
3434 2005-06-26  Havoc Pennington  <hp@redhat.com>
3435
3436         * doc/dbus-tutorial.xml: fix names of interface/service/path, fix
3437         from Don Park
3438
3439 2005-06-26  Colin Walters  <walters@verbum.org>
3440
3441         * glib/dbus-glib.c (dbus_set_g_error): Delete.
3442         (dbus_g_error_set): New public function from its ashes; used by
3443         both service-side method implementation and GLib bindings
3444         internals.
3445         (dbus_g_error_has_name, dbus_g_error_get_name): New function.
3446         (_dbus_glib_test): Add some tests.
3447
3448         * test/glib/test-dbus-glib.c (main): Test dbus_g_error_has_name.
3449
3450         * test/glib/test-service-glib.c (my_object_throw_error): Use
3451         dbus_g_error_set.
3452
3453         * glib/dbus-gobject.c (gerror_to_dbus_error_message): Handle
3454         errors thrown by dbus_g_error_set.
3455
3456         * glib/dbus-gmain.c (dbus_g_bus_get): Change to dbus_g_error_set.
3457
3458         * glib/dbus-gparser.c (validate_signature): Ditto.
3459
3460         * glib/dbus-gproxy.c (dbus_g_proxy_new_for_name_owner) 
3461         (dbus_g_proxy_end_call_internal): Ditto.
3462
3463         * glib/Makefile.am: Generate dbus-glib-error-switch.h, which
3464         converts DBUS_ERROR_x to DBUS_GERROR_x.
3465         (libdbus_glib_1_la_SOURCES, BUILT_SOURCES, CLEANFILES): Add it.
3466
3467         * doc/TODO: Remove error TODO.
3468
3469         * doc/dbus-tutorial.xml: Update with documentation about error
3470         handling.
3471
3472         * dbus/make-dbus-glib-error-enum.sh: Tighten up regexp to make
3473         sure we only change DBUS_ERROR to DBUS_GERROR, not all ERROR to
3474         GERROR.  Also add DBUS_GERROR_REMOTE_EXCEPTION.
3475
3476 2005-06-22  Colin Walters  <walters@verbum.org>
3477         
3478         Patch from Ross Burton <ross@openedhand.com>
3479
3480         * glib/dbus-gobject.c (dbus_g_method_return): Free out_sig.
3481
3482 2005-06-20  Colin Walters  <walters@verbum.org>
3483
3484         * configure.in: Add glib/examples.
3485
3486         * glib/Makefile.am: Add examples/
3487
3488         * glib/examples/.cvsignore
3489         * glib/examples/Makefile.am
3490         * glib/examples/example-client.c
3491         * glib/examples/example-service.c
3492         * glib/examples/example-service.xml
3493         * glib/examples/example-signal-emitter.c
3494         * glib/examples/example-signal-emitter.xml
3495         * glib/examples/example-signal-recipient.c:
3496         New files; GLib binding examples, ported from
3497         python/examples.
3498
3499 2005-06-20  Colin Walters  <walters@verbum.org>
3500
3501         * dbus/dbus-glib.h: 
3502         * glib/dbus-gproxy.c: Rename dbus_g_proxy_invoke to
3503         dbus_g_proxy_call.
3504
3505         * glib/dbus-binding-tool-glib.c: 
3506         * doc/dbus-tutorial.xml: 
3507         * test/glib/test-dbus-glib.c: Update for rename.
3508         
3509 2005-06-20  Colin Walters  <walters@verbum.org>
3510
3511         Patch suggested by Ross Burton <ross@openedhand.com>
3512
3513         * glib/dbus-gobject.c (export_signals): Free signal name.
3514         (g_value_init): Use G_VALUE_NOCOPY_CONTENTS to plug
3515         memory leak.  Add a bit of documentation.
3516         (dbus_g_method_return_error): Free context, and note we do
3517         so.
3518
3519 2005-06-18  Murray Cumming  <murrayc@murrayc.com>
3520
3521         * dbus/dbus-glib.h:
3522         * glib/dbus-gobject.c:
3523         * glib/dbus-gproxy.c:
3524         * glib/dbus-gvalue.c: Predeclare structs as 
3525         typedef struct _Something Something instead of 
3526         typedef struct Something Something, so we can 
3527         redeclare the prototypes. Other GNOME libraries 
3528         do this already.
3529
3530 2005-06-17  Colin Walters  <walters@verbum.org>
3531
3532         * tools/dbus-names-model.c (have_names_notify): Fix call
3533         to dbus_g_proxy_end_call.
3534         
3535 2005-06-17  Colin Walters  <walters@verbum.org>
3536
3537         * glib/dbus-gproxy.c (dbus_g_proxy_emit_remote_signal): Don't
3538         spew warnings if we get malformed remote signals.
3539
3540         * glib/dbus-gobject.c (propsig_iterate): New function.
3541         (lookup_object_info): New function, extracted from
3542         lookup_object_and_method.
3543         (introspect_properties, introspect_signals): Delete; these
3544         are merged into write_interface.
3545         (write_interface): Write out signals and properties here;
3546         dump the org.gtk.object stuff and use the interface given
3547         in the introspection data blob.  Also fix up property XML.
3548         (lookup_values): New function.
3549         (introspect_interfaces): Gather a mapping from interface to a
3550         list of its methods, signals, and properties, then write out
3551         each interface.
3552         (lookup_object_and_method): Use lookup_object_info.
3553         (struct DBusGSignalClosure): Add interface.
3554         (dbus_g_signal_closure_new): Add interface. Don't dup signame;
3555         we can just use the constant data.
3556         (dbus_g_signal_closure_finalize): Don't free signal name.
3557         (signal_emitter_marshaller): Use interface from signal closure.
3558         (export_signals): Only export signals mentioned in introspection
3559         blob.
3560         (dbus_g_connection_register_g_object): Warn if we have no
3561         introspection data for an object.
3562         (funcsig_equal): Remove unused variable.
3563         (dbus_g_object_register_marshaller): Take varargs instead of
3564         list.
3565         (dbus_g_object_register_marshaller_array): New function,
3566         extracted from old dbus_g_object_register_marshaller.
3567
3568         * glib/dbus-binding-tool-glib.c (struct DBusBindingToolCData): Add
3569         signals and property data.
3570         (write_quoted_string): New function, extracted from generate_glue.
3571         (generate_glue): Write signals and properties to introspection
3572         blob.
3573
3574         * dbus/dbus-glib.h (struct DBusGObjectInfo): Include
3575         exported_signals and exported_properties.
3576         (dbus_g_object_register_marshaller): Update prototype.
3577         (dbus_g_object_register_marshaller_array): Prototype.
3578         
3579         * test/glib/test-dbus-glib.c: Extend testing to cover new signals.
3580
3581         * test/glib/test-service-glib.c: Add new test signals and method
3582         to emit them.
3583
3584         * test/glib/test-service-glib.xml: Add some test signals.
3585
3586         * test/glib/Makefile.am (BUILT_SOURCES): Add my-object-marshal.c
3587         and my-object-marshal.h
3588         (test_service_glib_SOURCES, test_dbus_glib_SOURCES): Add
3589         my-object-marshal.c.
3590         (my-object-marshal.c, my-object-marshal.h): Implement.
3591
3592         * test/glib/.cvsignore: Update.
3593
3594         * doc/TODO: Remove two GLib TODO items fixed by this
3595         patch.
3596
3597 2005-06-16  Colin Walters  <walters@verbum.org>
3598
3599         * doc/TODO: Update for GLib bindings.
3600         
3601 2005-06-16  Colin Walters  <walters@verbum.org>
3602
3603         * glib/dbus-binding-tool-glib.c:
3604         * glib/dbus-gobject.c:
3605         * glib/dbus-gproxy.c:  Add Nokia copyright; Patch
3606         from Ross Burton, for his GLib bindings work.
3607
3608 2005-06-16  Colin Walters  <walters@verbum.org>
3609
3610         * glib/dbus-gobject.c (funcsig_hash, funcsig_equal): Use n_params
3611         to iterate instead of walking to G_TYPE_INVALID.
3612
3613         Patch based on a patch from Ryan Gammon.
3614
3615 2005-06-16  Colin Walters  <walters@verbum.org>
3616
3617         * bus/bus.c (bus_context_new): Set parser to NULL
3618         after we unref it (Patch from Chris Boscolo, #2174).
3619         
3620 2005-06-16  Colin Walters  <walters@verbum.org>
3621
3622         * python/dbus_bindings.pyx.in: Import size_t,
3623         __int64_t, __uint64_t, and __signed.
3624
3625         * dbus/dbus-sysdeps.c <HAVE_CMSGCRED> (write_credentials_byte):
3626         Define cmsg struct, output it.
3627         (_dbus_read_credentials_unix_socket):
3628         Use cmsg struct.
3629         
3630         Patch from Joe Markus Clarke for FreeBSD support.
3631         
3632 2005-06-16  Colin Walters  <walters@verbum.org>
3633
3634         * tools/dbus-send.c (append_array): Use strtok.
3635         (append_dict): New function.
3636         (type_from_name): New function, extracted from main.
3637         (main): Handle sending dicts.
3638
3639         * tools/dbus-print-message.c (print_iter): Print dict
3640         entries.
3641         
3642 2005-06-16  Colin Walters  <walters@verbum.org>
3643
3644         * glib/dbus-gvalue.c (marshal_basic): Marshal NULL string
3645         values as the empty string (#2948).
3646         
3647 2005-06-16  Colin Walters  <walters@verbum.org>
3648
3649         * dbus/Makefile.am:
3650         * mono/doc/Makefile.am:
3651         * test/glib/Makefile.am:
3652
3653         Fix srcdir != builddir issues (Patch from Chris Wilson, #3477)
3654
3655 2005-06-16  Colin Walters  <walters@verbum.org>
3656
3657         * dbus/dbus-marshal-header.c (_dbus_header_load): Set
3658         header byte order from expected byte order (Patch from Chris Wilson, #3475).
3659
3660         * dbus/dbus-marshal-byteswap.c (byteswap_body_helper): 
3661         Increment pointer after swapping fixed array.  Add assertion
3662         for array length.
3663                 
3664 2005-06-15  Colin Walters  <walters@verbum.org>
3665
3666         * dbus/dbus-sysdeps.c <HAVE_CMSGCRED> (_dbus_read_credentials_unix_socket):
3667         Fix call to dbus_set_error.  (Patch from Michael Banck, #3461)
3668         
3669 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
3670
3671         * NEWS: Update to 0.34
3672
3673 2005-06-15  David Zeuthen  <davidz@redhat.com>
3674
3675         * configure.in (LT_CURRENT): Revert back to 1 as the library
3676         hasn't changed and we've certainly not committed to protocol
3677         stability yet.  All this does is to break ABI. See commit note
3678         from hp@redhat.com 2005-05-05 for details.
3679         
3680 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
3681
3682         * dbus/dbus-connection.c (_dbus_connection_peer_filter): New method 
3683         (_dbus_connection_run_builtin_filters): New method
3684         (dbus_connection_dispatch): Run the builtin filters which in turn
3685         runs the peer filter which handles Ping messages.
3686
3687         * doc/TODO: 
3688          - Ping isn't handled: This patch fixes it
3689          
3690          - Add a test case for the Ping message: added TODO item
3691
3692 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
3693
3694         * dbus/dbus-message.c:
3695         (dbus_message_has_path): New method
3696         (dbus_message_has_interface): New method
3697         (dbus_message_has_member): New method
3698
3699         * dbus/dbus/dbus-sysdeps.c (_dbus_check_dir_is_private_to_user):
3700         New method
3701
3702         * dbus/dbus-keyring.c (_dbus_keyring_reload): Check to see that 
3703         the keyring directory is private to the user
3704
3705         * doc/TODO:
3706          - The convenience functions in dbus-bus.h should perhaps have
3707          the signatures that they would have if they were autogenerated
3708          stubs. e.g. the acquire service function. We should also evaluate
3709          which of these functions to include, in light of the fact that
3710          GLib/Qt native stubs will probably also exist.: Punted
3711
3712          - add dbus_message_has_path(), maybe has_member/interface:
3713          fixed in this patch
3714
3715          - in dbus-keyring.c, enforce that the keyring dir is not
3716          world readable/writable: Fixed in this patch
3717
3718 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
3719
3720         * dbus/dbus-marshal-validate.h: Added a new validation
3721         error code DBUS_VALIDITY_UNKNOWN_OOM_ERROR = -4 for 
3722         out of memory errors when validating signitures
3723
3724         * dbus/dbus-marshal-header.c: use DBUS_VALIDITY_UNKNOWN_OOM_ERROR
3725         in places where we previously used DBUS_VALID and a FALSE return 
3726         value to indicate OOM
3727         
3728         * dbus/dbus-marshal-validate.c (_dbus_validate_signature_with_reason):
3729         Use a stack to track the number of elements inside containers.  The 
3730         stack values are then used to validate that dict entries have only two
3731         elements within them.
3732         (validate_body_helper): check the reason for failure when validating
3733         varients
3734         
3735         * dbus/dbus-message.c (load_message): use 
3736         DBUS_VALIDITY_UNKNOWN_OOM_ERROR in places where we previously used 
3737         DBUS_VALID and a FALSE return value to indicate OOM
3738
3739         * doc/TODO: remove "- validate dict entry number of fields" as this
3740         patch fixes it
3741
3742 2005-06-14  David Zeuthen  <davidz@redhat.com>
3743
3744         * bus/bus.c (process_config_every_time): Drop existing conf-dir
3745         watches (if applicable) and add new watches
3746
3747         * bus/main.c (signal_handler): Handle SIGIO if using D_NOTIFY
3748         (main): Setup SIGIO signal handler if using D_NOTIFY
3749
3750         * bus/config-parser.h: Add prototype bus_config_parser_get_conf_dirs
3751
3752         * bus/config-parser.c (struct BusConfigParser): Add conf_dirs list
3753         (merge_included): Also merge conf_dirs list
3754         (bus_config_parser_unref): Clear conf_dirs list
3755         (include_dir): Add directory to conf_dirs list
3756         (bus_config_parser_get_conf_dirs): New function
3757
3758         * bus/dir-watch.[ch]: New files
3759
3760         * bus/Makefile.am (BUS_SOURCES): Add dir-watch.[ch]
3761
3762         * configure.in: Add checks for D_NOTIFY on Linux
3763
3764 2005-06-14  Colin Walters  <walters@verbum.org>
3765
3766         * glib/dbus-binding-tool-glib.c:
3767         * glib/dbus-gobject.c:
3768         * glib/dbus-gvalue.c: Fix indentation and brace style.
3769         
3770 2005-06-14  Ross Burton <ross@openedhand.com>.
3771
3772         * glib/dbus-glib.h: Make DBusGMethodInvocation
3773         a private structure.  Rearrange prototypes a bit.
3774         
3775         * glib/dbus-gproxy.c (dbus_g_proxy_invoke): Add
3776         documentation for first_arg_type.
3777         
3778         * glib/dbus-gobject.c: Move DBusGMethodInvocation
3779         here, add documentation.  Move dbus_g_method_return
3780         and dbus_g_method_return_error into public API
3781         section.
3782
3783 2005-06-14  Colin Walters  <walters@verbum.org>
3784
3785         * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller):
3786         Add missing return statements, noticed by Ross Burton.
3787         
3788 2005-06-13  Ross Burton <ross@openedhand.com>.
3789
3790         * glib/dbus-gobject.c: Handle errors on message
3791         demarshalling by sending error message back.
3792         * glib/dbus-gvalue.c: Initialize return variables.
3793
3794 2005-06-13  Colin Walters  <walters@verbum.org>
3795
3796         * glib/Makefile.am: Fix thinko in last patch.
3797
3798 2005-06-13  Colin Walters  <walters@verbum.org>
3799
3800         * glib/Makefile.am: Move dbus-gtype-specialized.c
3801         and dbus-gtype-specialized.h into a _HEADERS variable,
3802         install them.
3803
3804 2005-06-12  Colin Walters  <walters@verbum.org>
3805
3806         Async signals and various bugfixes and testing by
3807         Ross Burton <ross@openedhand.com>.
3808
3809         * glib/dbus-gvalue.h: (struct DBusBasicGValue): Delete.
3810         (dbus_gvalue_genmarshal_name_from_type)
3811         (dbus_gvalue_ctype_from_type): Moved to dbus-binding-tool-glib.c.
3812         (dbus_gtype_to_dbus_type): Renamed to dbus_gtype_from_signature.
3813         (dbus_g_value_types_init, dbus_gtype_from_signature)
3814         (dbus_gtype_from_signature_iter, dbus_gtype_to_signature)
3815         (dbus_gtypes_from_arg_signature): New function prototypes.
3816         (dbus_gvalue_demarshal): Take context and error arguments.
3817         (dbus_gvalue_demarshal_variant): New function.
3818         (dbus_gvalue_demarshal_message): New function.
3819         (dbus_gvalue_store): Delete.
3820
3821         * glib/dbus-gvalue.c:
3822
3823         File has been almost entirely rewritten; now we special-case
3824         more types such as DBUS_TYPE_SIGNATURE, handle arrays and
3825         hash tables correctly, etc.  Full support for recursive values
3826         is not yet complete.
3827
3828         * glib/dbus-gproxy.c (dbus_g_proxy_class_init): Change last
3829         argument of signal to G_TYPE_POINTER since we now pass a
3830         structure.
3831         (lookup_g_marshaller): Delete in favor of
3832         _dbus_gobject_lookup_marshaller.
3833         (marshal_dbus_message_to_g_marshaller): Use
3834         _dbus_gobject_lookup_marshaller and dbus_gvalue_demarshal_message
3835         to handle remote signal callbacks.
3836         (dbus_g_proxy_new_from_proxy): New function; creates a new
3837         DBusGProxy by copying an existing one.
3838         (dbus_g_proxy_get_interface, dbus_g_proxy_set_interface)
3839         (dbus_g_proxy_get_path): New functions.
3840         (dbus_g_proxy_marshal_args_to_message): New function;
3841         factored out of existing code.
3842         (DBUS_G_VALUE_ARRAY_COLLECT_ALL): Collect all arguments
3843         from a varargs array.
3844         (dbus_g_proxy_begin_call_internal): New function.
3845         (dbus_g_proxy_end_call_internal): New function.
3846         (dbus_g_proxy_begin_call): Take GTypes instead of DBus types
3847         as arguments; simply invoke dbus_g_proxy_begin_call_internal
3848         after collecting args into value array.
3849         (dbus_g_proxy_end_call): Take GTypes instead of DBus types;
3850         invoke dbus_g_proxy_end_call_internal.
3851         (dbus_g_proxy_invoke): Simply invoke begin_call_interanl and
3852         end_call_internal.
3853         (dbus_g_proxy_call_no_reply): Take GTypes instead of DBus
3854         types.
3855         (array_free_all): New function.
3856         (dbus_g_proxy_add_signal): Take GTypes.
3857
3858         * glib/dbus-gobject.h:
3859         (_dbus_glib_marshal_dbus_message_to_gvalue_array): Delete.
3860         (_dbus_gobject_get_path, _dbus_gobject_lookup_marshaller):
3861         Prototype.
3862
3863         * glib/dbus-gobject.c: Add a global marshal_table hash which
3864         stores mappings from type signatures to marshallers.  Change lots
3865         of invocations of dbus_gtype_to_dbus_type to
3866         dbus_gtype_to_signature.
3867         (_dbus_glib_marshal_dbus_message_to_gvalue_array): Delete.
3868         (introspect_signals): Fix test for query.return_type.
3869         (set_object_property): Update invocation of dbus_gvalue_demarshal.
3870         (invoke_object_method): Many changes.  Handle asynchronous
3871         invocations.  Convert arguments with
3872         dbus_gvalue_demarshal_message.  Handle errors.  Use
3873         DBusSignatureIter instead of strlen on args. Handle all arguments
3874         generically.  Special-case variants.
3875         (dbus_g_method_return, dbus_g_method_return_error): New function.
3876         (DBusGSignalClosure): New structure, closes over signal
3877         information.
3878         (dbus_g_signal_closure_new): New function.
3879         (dbus_g_signal_closure_finalize): New function.
3880         (signal_emitter_marshaller): New function; is special marshaller
3881         which emits signals on bus.
3882         (export_signals): New function; introspects object signals and
3883         connects to them.
3884         (dbus_g_object_type_install_info): Take GType instead of
3885         GObjectClass.
3886         (dbus_g_connection_register_g_object): Invoke export_signals.
3887         (dbus_g_connection_lookup_g_object): New function.
3888         (DBusGFuncSignature) New structure; used for mapping type
3889         signatures to marshallers.
3890         (funcsig_hash): New function; hashes DBusGFuncSignature.
3891         (funcsig_equal): New function; compares DBusGFuncSignature.
3892         (_dbus_gobject_lookup_marshaller): New function.
3893         (dbus_g_object_register_marshaller): New function; used to
3894         register a marshaller at runtime for a particular signature.
3895
3896         * glib/dbus-gmain.c (_dbus_gmain_test): Add various tests.
3897
3898         * glib/dbus-binding-tool-glib.h: Add DBUS_GLIB_ANNOTATION_ASYNC
3899         which notes a server method implementation should be
3900         asynchronous.
3901
3902         * glib/dbus-binding-tool-glib.c
3903         (dbus_binding_tool_output_glib_server): Call
3904         dbus_g_value_types_init.
3905         (write_formal_parameters): Use dbus_gtype_from_signature.  Handle
3906         variants specially.
3907         (dbus_g_type_get_lookup_function): Turn GType into an invocation
3908         of a lookup function.
3909         (write_args_for_direction): Use dbus_g_type_get_lookup_function.
3910         (write_untyped_out_args): New method; write output arguments.
3911         (write_formal_declarations_for_direction): Function for
3912         writing prototypes.
3913         (write_formal_parameters_for_direction): Function for
3914         writing implementations.
3915         (write_typed_args_for_direction): Function for writing
3916         arguments prefixed with GTypes.
3917         (write_async_method_client): Write out async version
3918         of method.
3919
3920         * glib/dbus-binding-tool-glib.c: Include dbus-gvalue-utils.h.
3921         (dbus_g_type_get_marshal_name): Move mapping from GType
3922         to marshal name into here.
3923         (dbus_g_type_get_c_name): Move into here.
3924         (compute_marshaller): Convert signature to type with
3925         dbus_gtype_from_signature, use dbus_g_type_get_marshal_name.
3926         (compute_marshaller_name): Ditto.
3927         (compute_marshaller): Handle async signal annotations.
3928         (gather_marshallers): Return if we don't have a known
3929         prefix.
3930         (generate_glue): Collect introspection blob here, and
3931         write all of the blob at the end.  This allows an object
3932         with multiple interfaces to work.
3933         Mark async methods in introspection blob.
3934
3935         * glib/Makefile.am (libdbus_glib_1_la_SOURCES): Add
3936         dbus-gtype-specialized.c, dbus-gtype-specialized.h,
3937         dbus-gvalue-utils.h, dbus-gvalue-utils.c.
3938
3939         * dbus/dbus-glib.h: Don't include dbus-protocol.h; this
3940         avoids people accidentally using DBUS_TYPE_* which should
3941         not be necessary anymore.
3942         Do include dbus-gtype-specialized.h, which are utilities
3943         for GLib container types.
3944         Add various #defines for types such as
3945         DBUS_TYPE_G_BOOLEAN_ARRAY.
3946         (DBusGValueIterator, DBusGValue): Define, not fully used
3947         yet.
3948         (dbus_g_value_get_g_type): Type for recursive value.
3949         (dbus_g_value_open, dbus_g_value_iterator_get_value)
3950         (dbus_g_value_iterator_get_values, dbus_g_value_iterator_recurse)
3951         (dbus_g_value_free): Prototypes.
3952         (dbus_g_object_register_marshaller, dbus_g_proxy_new_from_proxy): Prototype.
3953         (dbus_g_proxy_set_interface): Prototype.
3954         (dbus_g_proxy_begin_call, dbus_g_proxy_end_call)
3955         (dbus_g_proxy_call_no_reply): Take GLib types instead of DBus
3956         types.
3957         (dbus_g_proxy_get_path, dbus_g_proxy_get_interface):
3958         Accessors.
3959         (DBusGAsyncData, DBusGMethodInvocation): Structures for
3960         doing async invocations.
3961         (dbus_g_method_return, dbus_g_method_return_error):
3962         Prototypes.
3963         * doc/dbus-tutorial.xml: Update GLib section.
3964         
3965         * tools/dbus-viewer.c (load_child_nodes): Update
3966         for new invocation type of dbus_g_proxy_end_call.
3967         (load_from_service_thread_func): Ditto.
3968
3969         * tools/print-introspect.c (main): Ditto.
3970
3971         * tools/dbus-names-model.c (have_names_notify)
3972         (names_model_reload, names_model_set_connection)
3973         Use GTypes.
3974
3975         * python/Makefile.am (INCLUDES): Define DBUS_COMPILATION,
3976         needed since Python bindings use GLib bindings.
3977
3978         * test/glib/Makefile.am (INCLUDES): Define DBUS_COMPILATION.
3979         Add --prefix argument.
3980
3981         * tools/Makefile.am: Define DBUS_COMPILATION.  Remove
3982         unneeded --ignore-unsupported arg.
3983         
3984         * test/glib/test-service-glib.c: 
3985         * test/glib/test-service-glib.xml:
3986         * test/glib/test-dbus-glib.c: Add many more tests.
3987
3988 2005-06-06  David Zeuthen  <davidz@redhat.com>
3989
3990         * doc/TODO: Add item about need to remove deprecated functions.
3991
3992         * dbus/dbus-connection.h: Add prototype for dbus_connection_disconnect
3993
3994         * dbus/dbus-connection.c (dbus_connection_disconnect): New function
3995         to repair the ABI which was broken with the last commit.
3996
3997 2005-06-02  John (J5) Palmieri <johnp@redhat.com>
3998
3999         *  dbus/dbus-connection.c, dbus/dbus-connection.h 
4000         (dbus_connection_disconnect): renamed to dbus_connection_close 
4001         for API symmetry with dbus_connection_open
4002         (_dbus_connection_open_internal): 
4003         s/dbus_connection_disconnect/dbus_connection_close
4004
4005         * dbus/dbus-bus.c (dbus_bus_get):
4006         s/dbus_connection_disconnect/dbus_connection_close
4007
4008         * bus/connection.c (bus_connections_unref, 
4009         bus_connections_setup_connection, bus_connections_expire_incomplete):
4010         s/dbus_connection_disconnect/dbus_connection_close
4011
4012         * bus/dispatch.c (bus_dispatch, kill_client_connection, 
4013         kill_client_connection_unchecked, check_hello_connection):
4014         s/dbus_connection_disconnect/dbus_connection_close
4015
4016         * bus/bus.c (new_connection_callback):
4017         s/dbus_connection_disconnect/dbus_connection_close
4018
4019         * tools/dbus-send.c (main):
4020         s/dbus_connection_disconnect/dbus_connection_close
4021
4022         * test/glib/test-profile.c (no_bus_thread_func, with_bus_thread_func):
4023         s/dbus_connection_disconnect/dbus_connection_close
4024         
4025         * test/test-service.c (path_message_func, filter_func):
4026         s/dbus_connection_disconnect/dbus_connection_close
4027         
4028         * doc/TODO: remove connection_open/connection_disconnect lacks symmetry         item that was just fixed
4029         
4030 2005-05-25  Colin Walters  <walters@verbum.org>
4031
4032         * dbus/dbus-protocol.h: Move various bus service #defines such
4033           as DBUS_SERVICE_DBUS and DBUS_NAME_FLAG_PROHIBIT_REPLACEMENT to
4034           dbus/dbus-shared.h.
4035         * dbus/dbus-shared.h: Various defines moved here.
4036         * dbus/dbus-marshal-header.c: Include dbus-shared.h.
4037
4038 2005-05-25  John (J5) Palmieri  <johnp@redhat.com>
4039
4040         * python/__init__.py: Python bindings deserve a minor version
4041         update.  Upped to (0, 40, 2)
4042
4043 2005-05-24  John (J5) Palmieri  <johnp@redhat.com>
4044
4045         * python/decorators.py: add explicitly_pass_message decorator
4046         for passing in the dbus message as keyword for edge case signal
4047         handling
4048
4049         * python/matchrules.py (SignalMatchRule.__repr__): fix output
4050         to conform with what dbus expects for match rules
4051         (SignalMatchRule.execute): add the dbus message as a keyword
4052         if the signal handler has requested it
4053
4054         * python/examples/example/signal-recipient.py: added some more
4055         examples on how to hook up to signals
4056
4057 2005-05-23  John (J5) Palmieri  <johnp@redhat.com>
4058
4059         * python/decorators.py: import dbus_bindings
4060
4061         * python/matchrules.py (SignalMatchRule, SignalMatchTree, 
4062         SignalMatchNode): new classes that implement wildcard signal
4063         callback matching using a tree lookup. Heavily modified from a
4064         patch sent by Celso Pinto (fd.o bug #3241)
4065
4066         * _dbus.py (add_signal_receiver, remove_signal_receiver, _signal_func):
4067         use new match classes to handle signals.
4068
4069 2005-05-19  John (J5) Palmieri  <johnp@redhat.com>
4070         
4071         * python/dbus_bindings.pyx.in: s/TYPE_PATH/TYPE_OBJECT_PATH
4072
4073 2005-05-18  Havoc Pennington  <hp@redhat.com>
4074
4075         * configure.in: use GLIB_GNU_GETTEXT to get INTLLIBS and require
4076         gettext. Not really worth requiring yet perhaps, but any
4077         production quality 1.0 would require it so we should go ahead and
4078         get things set up. We do have a couple token calls to
4079         bindtextdomain in the code already.
4080
4081 2005-05-16  John (J5) Palmieri  <johnp@redhat.com>
4082
4083         * glib/dbus-gmain.c (io_handler_dispatch): fix deadlock
4084         when using recursive g_main_loops
4085
4086         * python/_dbus.py (class Bus): add the ProxyObjectClass
4087         alias for ProxyObject to make it easier for the Twisted 
4088         networking framework to integrate dbus.
4089
4090         * python/proxies.py (class ProxyObject): add the ProxyMethodClass
4091         alias for ProxyMethod to make it easier for the Twisted 
4092         networking framework to integrate dbus. 
4093
4094 2005-05-11  Ross Burton  <ross@openedhand.com>
4095
4096         * glib/dbus-glib-tool.c: Add --prefix argument.
4097         * glib/dbus-binding-tool-glib.h: Add prefix argument.
4098         * glib/dbus-binding-tool-glib.c (compute_marshaller_name):
4099         Add prefix argument.
4100         (generate_glue): Pass prefix argument down.
4101         (dbus_binding_tool_output_glib_server): Pass prefix to
4102         glib-genmarshal.
4103         
4104 2005-05-11  Colin Walters  <walters@verbum.org>
4105
4106         * tools/dbus-send.c (append_array): New function.
4107         (append_arg): Broken out from main.
4108         (main): Add cheesy hack to send arrays and variants.
4109         (usage): Update.
4110         * tools/dbus-print-message.c (print_iter): Broken out
4111         from main.
4112
4113 2005-05-11  Colin Walters  <walters@verbum.org>
4114
4115         * dbus/dbus-signature.c (dbus_signature_iter_get_signature):
4116         New function, returns signature string for signature iter.
4117         * dbus/dbus-signature.h: Prototype it.
4118         * dbus/dbus-message.c (dbus_message_iter_get_signature):
4119         New function, returns signature string for message iter.
4120         (dbus_message_iter_get_array_len): New function, returns
4121         length of array.
4122         (dbus_message_iter_get_fixed_array): Fix assertion; this
4123         function should be used when the iter is pointing to the
4124         contents of an array
4125         * dbus/dbus-message.h: Prototypes.
4126         * dbus/dbus-marshal-recursive.c (_dbus_type_reader_get_array_length):
4127         New function; returns length of an array.
4128         * dbus/dbus-marshal-recursive.h: Prototype it.
4129         
4130 2005-05-11  Colin Walters  <walters@verbum.org>
4131
4132         * dbus/dbus-sysdeps-util.c <!HAVE_POSIX_GETPWNAM_R>: Fix
4133         compilation error.
4134         
4135 2005-05-08  Havoc Pennington  <hp@redhat.com>
4136
4137         * dbus/dbus-sysdeps-util.c (_dbus_become_daemon): write the
4138         daemon's pid, not the parent's pid, to the file descriptor.
4139         Reported by Taj Morton.
4140
4141 2005-05-05  Havoc Pennington  <hp@redhat.com>
4142
4143         * configure.in (LT_*): add notes on how the libtool versioning
4144         works to save thinking. Increment soname to indicate protocol
4145         breakage (though really the library interface hasn't changed I
4146         guess)
4147
4148         * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated):
4149         verify the GUID received from server matches what we were
4150         expecting, if we had an expectation
4151
4152         * dbus/dbus-auth.c (send_ok): send GUID along with the OK command
4153         (_dbus_auth_get_guid_from_server): new function
4154         (send_begin): parse the OK args
4155
4156         * doc/dbus-specification.xml: add GUID to the auth protocol
4157
4158 2005-05-05  John (J5) Palmieri  <johnp@redhat.com>
4159
4160         * Fix my name in previous changelog ;)
4161
4162         * python/proxies.py (ProxyObject.__getattr__): add further patch
4163         from Anthony Baxter to throw an AttributeError when python 
4164         __special__ functions are called instead of marshling them over 
4165         the bus (Bug#1685 comment 3).
4166
4167 2005-05-04  John (J5) Palmieri  <johnp@redhat.com>
4168
4169         * python/Makefile.am: changed to use pyexecdir for the binding
4170         shared libraries (Bug#2494)
4171
4172         * python/exceptions.py: bring exceptions over from the bindings
4173         so they can be used in applications (Bug#2036)
4174         Make all exceptions derive from DBusException
4175
4176         * python/_dbus.py, python/proxies.py: implement __repr__ in a couple
4177         of classes so that print obj doesn't throw an exception (Bug #1685)
4178
4179 2005-05-03  Ross Burton  <ross@openedhand.com>
4180
4181         * glib/dbus-gobject.c (dbus_g_connection_register_g_object):
4182         Return if we get an error during registration.  Set up a
4183         weak reference on object to unregister if object is destroyed.
4184         (unregister_gobject): New function.
4185         
4186 2005-05-01  John (J5) Palmieri  <johnp@redhat.com>
4187
4188         * python/dbus_bindings.pyx.in: 
4189         - added new type classes for hinting to the marashaler what type 
4190         to send over the wire
4191         - added int16 and uint16 marshalers
4192         - Fixed a bug in the type constants that caused int32 to go out
4193         as uint16 over the wire
4194         * python/dbus.py: split up into different files and renamed _dbus.py
4195         * python/__init__.py, python/_util.py, python/decorators.py, 
4196         python/exceptions.py, python/proxies.py, python/services.py,
4197         python/types.py: new files split off from dbus.py
4198         * python/Makefile.am: Add new files, remove dbus.py and 
4199         install all python files to <python module dir>/dbus
4200         * python/examples/*: Added #!/usr/bin/env python to the top of
4201         every example.  Patch provided by Tatavarty Kalyan
4202
4203 2005-04-25  John (J5) Palmieri  <johnp@redhat.com>
4204
4205         * NEWS: Update to 0.33
4206
4207 2005-04-25  John (J5) Palmieri  <johnp@redhat.com>
4208
4209         * python/dbus_bindings.pyx.in (send_with_reply_handlers): New send
4210         method for doing async calls
4211         (_pending_call_notification): New C function for handling pendning call
4212         callbacks
4213         (set_notify): New method for setting pending call notification
4214         
4215         * python/dbus.py: new version tuple "version" is set at (0, 40, 0)
4216         Async capabilities added to remote method calls
4217         (Sender): class removed
4218         (RemoteService): class removed
4219         (ObjectTree): class removed for now
4220         (RemoteObject): Renamed to ProxyObject
4221         (RemoteMethod): Renamed to ProxyMethod
4222         (method): Decorator added for decorating python methods as dbus methods
4223         (signal): Decorator added for decorating python methods as signal emitters
4224         (ObjectType): Metaclass added for generating introspection data and the
4225         method callback vtable
4226         (Interface): Wrapper class added to wrap objects in a dbus interface
4227         (Object): Uses ObjectType as its metaclass and exports Introspect
4228         of the org.freedesktop.DBus.Introspectable interface
4229         (ValidationException, UnknownMethodException): new exceptions
4230
4231         * python/examples/*: Modified to fit with the new bindings
4232
4233 2005-04-23  Havoc Pennington  <hp@redhat.com>
4234
4235         * dbus/dbus-message.c (dbus_message_append_args): fix doc comment,
4236         reported by Tony Houghton
4237
4238         * test/test-service.c (main): test
4239         dbus_connection_get_object_path_data()
4240
4241         * dbus/dbus-object-tree.c (find_handler): be sure we always init
4242         the exact_match
4243         (_dbus_object_tree_get_user_data_unlocked): new function used by
4244         dbus_connection_get_object_path_data()
4245         (do_register): add assertion test for get_user_data_unlocked
4246         (object_tree_test_iteration): more tests
4247
4248         * dbus/dbus-connection.c (dbus_connection_get_object_path_data):
4249         new function from Dan Reed to let you get the user data from 
4250         dbus_connection_register_object_path()
4251
4252 2005-04-23  John (J5) Palmieri  <johnp@redhat.com>
4253
4254         * dbus/dbus-marshal-recursive-util.c: Fixed buffer overflow
4255         in numerous places that did not account for the NULL terminator
4256         (signature_from_seed): changed the manual string copy loop to 
4257         just use strcpy instead
4258         make check should now pass
4259
4260 2005-04-19  John (J5) Palmieri  <johnp@redhat.com>
4261
4262         * dbus/dbus-marshal-header.c (_dbus_header_create): Fix assert
4263         so that it allows messages that are not signals to pass in 
4264         NULL as the interface.
4265
4266 2005-04-18  David Zeuthen  <davidz@redhat.com>
4267
4268         * glib/dbus-gmain.c (io_handler_destroy_source): 
4269         (timeout_handler_destroy_source, connection_setup_free): 
4270         Also unref the source to avoid memory leaks.
4271
4272 2005-04-13  David Zeuthen  <davidz@redhat.com>
4273
4274         * bus/config-parser.c (bus_config_parser_new): Bump this to a
4275         more reasonable, yet still totally arbitrary, value :-). 
4276
4277 2005-04-13  David Zeuthen  <davidz@redhat.com>
4278
4279         * doc/TODO: Added an "important for 1.0" item about selinux
4280         allow/deny messages
4281
4282 2005-04-13  David Zeuthen  <davidz@redhat.com>
4283
4284         * bus/selinux.c: Add c-file-style to top of file
4285         (log_audit_callback): Don't free the data here anymore
4286         (bus_selinux_check): Don't take spid and tpid since appending
4287         that to auxdata may OOM.
4288         (bus_selinux_allows_acquire_service): Handle OOM and signal back
4289         to the caller if we are OOM by taking an error object.
4290         (bus_selinux_allows_send): -do-
4291
4292         * bus/selinux.h: Fix prototypes for bus_selinux_allows_acquire_service
4293         and bus_selinux_allows_send
4294
4295         * bus/bus.c (bus_context_check_security_policy): Pass error and
4296         pass on OOM thrown by bus_selinux_allows_send()
4297
4298         * bus/services.c (bus_registry_acquire_service): Pass error and
4299         pass on OOM thrown by bus_selinux_allows_acquire_service()
4300
4301 2005-04-13  Havoc Pennington  <hp@redhat.com>
4302
4303         * glib/dbus-gmain.c (message_queue_dispatch): only dispatch one
4304         message at a time to avoid monopolizing the main loop, bug 
4305         #2953 from Benjamin Otte
4306
4307 2005-04-09  Havoc Pennington  <hp@redhat.com>
4308
4309         * dbus/dbus-string.c (copy): change a memcpy to memmove due to
4310         possible overlap, fix from Daniel Reed
4311         (fixup_alignment): fix signedness warnings
4312         (_dbus_string_append_unichar): ditto
4313
4314 2005-04-09  Havoc Pennington  <hp@redhat.com>
4315
4316         * dbus/dbus-message-util.c (_dbus_message_test): fix signedness warning
4317
4318         * glib/dbus-glib-tool.c (main): fix warning
4319
4320         * glib/dbus-binding-tool-glib.c (generate_glue): fix warning
4321
4322         * dbus/dbus-connection.c (dbus_connection_read_write_dispatch):
4323         add a new function that can be used in simple applications that
4324         don't have a main loop and are willing to block
4325
4326 2005-04-05  David Zeuthen  <davidz@redhat.com>
4327
4328         Fix https://bugs.freedesktop.org/show_bug.cgi?id=2889
4329
4330         * glib/dbus-gmain.c:
4331         (io_handler_destroy_source): Remove from list of IO handlers
4332         of the ConnectionSetup object
4333         (timeout_handler_destroy_source): -do- for timeout handlers
4334         (io_handler_source_finalized): Don't remove from list since
4335         we now do that in io_handler_destroy_source(). Renamed from
4336         io_handler_source_destroyed
4337         (timeout_handler_source_destroyed): -do- for timeout handlers
4338         (connection_setup_free): It is now safe to iterate over all
4339         IO and timeout handlers as the _destroy_source removes them
4340         from the list synchronously
4341
4342 2005-03-30  Havoc Pennington  <hp@redhat.com>
4343
4344         * configure.in: change check to gtk 2.4
4345
4346         * tools/dbus-viewer.c (name_combo_changed_callback): remove
4347         gtk_combo_box_get_active_text() usage to decrement GTK requirement
4348         to 2.4
4349
4350 2005-03-29  John (J5) Palmieri  <johnp@redhat.com>
4351
4352         * News: Update 0.32
4353
4354         * HACKING: Fixed realease instructions.  configure.in should be updated to
4355           the next release by the person who made the last release.
4356
4357 2005-03-29  John (J5) Palmieri  <johnp@redhat.com>
4358
4359         * python/lvalue_cast_post_process.py - removed.  Patch has been
4360           submitted to Pyrex maintainers that fixes gcc4.0 errors
4361
4362         * python/Makefile.am: removed refrences to lvalue_cast_post_process.py
4363
4364 2005-03-24  Daniel Reed  <n@ml.org>
4365
4366         * tools/Makefile.am: Make print-introspect and
4367         dbus-bus-introspect.xml building conditional on HAVE_GLIB.
4368
4369 2005-03-22  John (J5) Palmieri  <johnp@redhat.com>
4370
4371         * tools/Makefile.am: Patch by Colin Walters that fixes distcheck
4372
4373         * dbus/dbus-userdb.c, dbus/dbus-userdb-util.c: Add patch we have 
4374           had in Red Hat packages for a while but for some reason never 
4375           got merged upstream
4376           (_dbus_is_a_number): New checks if a string
4377           can be converted to a number and does the conversion if it can
4378           (_dbus_user_database_lookup): Add check to see if the given username
4379           is a udi.  This allows udi's to be used instead of usernames in the
4380           config file.
4381           (_dbus_user_database_lookup_group): Add check to see if the given groupname
4382           is a gdi.  This allows gdi's to be used instead of groupnames in the
4383           config file.
4384
4385 2005-03-21  John (J5) Palmieri  <johnp@redhat.com>
4386
4387         * python/lvalue_cast_post_process.py - added post processor to fix Pyrex
4388           code so that it compiles with gcc4.0
4389
4390         * python/Makefile.am: Added lvalue_cast_post_process.py to EXTRA_DIST
4391           run dbus_bindings.c through lvalue_cast_post_process.py and copy the
4392           results back to dbus_binding.c
4393
4394 2005-03-20  Colin Walters  <walters@verbum.org>
4395
4396         Patch suggested by Inguva Rajasekhar <ringuva@novell.com>.
4397
4398         * configure.in: Require GTK+ 2.6.
4399         
4400 2005-03-20  Colin Walters  <walters@verbum.org>
4401
4402         * Makefile.am (SUBDIRS, DIST_SUBDIRS): Build tools before test.
4403
4404 2005-03-17  Tom Parker  <palfrey@tevp.net>
4405
4406         * dbus/dbus-userdb.c (_dbus_user_database_lookup): Don't
4407         print DBUS_UID_UNSET; instead print passed username.  Also
4408         be sure to actually use gid looked up in cache.
4409         
4410         * dbus/dbus-userdb-util.c (_dbus_user_database_lookup_group): Ditto
4411         for DBUS_GID_UNSET and groupname.
4412
4413 2005-03-17  Colin Walters  <walters@verbum.org>
4414
4415         * bus/print-introspect.c: Move to tools/.
4416         * bus/run-with-tmp-session-bus.sh: Ditto.
4417         
4418         * glib/Makefile.am (dbus-glib-bindings.h): Move
4419         generation to tools/Makefile.am.
4420
4421         * test/glib/run-test.sh: Update to handle move
4422         of run-with-tmp-session-bus.sh.
4423
4424         * test/glib/test-service-glib.c: Update to handle
4425         move of dbus-glib-bindings.h.
4426
4427         * tools/print-introspect.c: Moved here
4428         from bus/, and ported to GLib bindings.
4429
4430         * tools/run-with-tmp-session-bus.sh: Moved here
4431         from bus/.
4432
4433         * tools/Makefile.am: Generate dbus-glib-bindings.h
4434         and dbus-bus-introspect.xml here.
4435
4436         * tools/.cvsignore, glib/.cvsignore, bus/.cvsignore:
4437         Update.
4438
4439 2005-03-17  Colin Walters  <walters@verbum.org>
4440
4441         * bus/driver.c (write_args_for_direction): Use
4442         _dbus_string_get_const_data to retrieve string;
4443         _dbus_string_get_const_data_len doesn't actually return
4444         a NULL-terminated substring.
4445
4446         * test/glib/test-service-glib.c: Include dbus-glib-bindings.h.
4447         (main): Change to use org_freedesktop_DBus_request_name
4448         instead of using g_proxy_begin_call/end_call.
4449
4450 2005-03-15  Joe Shaw  <joeshaw@novell.com>
4451
4452         * mono/ProxyBuilder.cs (BuildFinalizer): Fix some invalid IL when
4453         generating the finalizer.  Fixes from Ben Maurer.
4454
4455 2005-03-12  Joe Shaw  <joeshaw@novell.com>
4456
4457         * mono/BusDriver.cs: Update method names: ListServices
4458         becomes ListNames; GetOwner becomes GetNameOwner.
4459
4460         * mono/ProxyBuilder.cs (BuildFinalizer): Need to load arg 0
4461         onto the eval stack when removing the delegate.
4462
4463 2005-03-12  Joe Shaw  <joeshaw@novell.com>
4464
4465         * mono/dbus-sharp.dll.config.in: Don't hardcode 0 for
4466         LT_CURRENT.  Set it to the autoconf variable.
4467                                                                                 
4468         * mono/ProxyBuilder.cs: Add a finalizer to the generated proxy
4469         classes that disconnects the signal handler delegate from the
4470         service object.  Fixes a big leak of proxy objects on the
4471         client side of things.  Patch from Ben Maurer
4472         <bmaurer@ximian.com>
4473
4474 2005-03-12  Colin Walters  <walters@verbum.org>
4475
4476         * bus/driver.c (write_args_for_direction): New function,
4477         parses a type signature into arguments and outputs to
4478         XML.
4479         (bus_driver_handle_introspect): Use it instead of
4480         hardcoding XML for certain signatures.
4481         
4482         * bus/Makefile.am (dbus-bus-introspect.xml): Add
4483         dependency on dbus-daemon.
4484
4485         * glib/dbus-glib-tool.c (main): Parse ignore_unsupported
4486         argument, pass it to dbus_binding_tool_output_glib_client.
4487
4488         * glib/dbus-binding-tool-glib.c
4489         (generate_client_glue): Protect against multiple inclusion.
4490         (dbus_binding_tool_output_glib_client): Add
4491         G_BEGIN_DECLS/G_END_DECLS.
4492
4493         * glib/dbus-binding-tool-glib.c (compute_client_method_name):
4494         Change to just take iface prefix directly.
4495         (write_formal_parameters): Clarify error message.
4496         (check_supported_parameters): New function; checks to see type
4497         signatures of method parameters are supported.
4498         (generate_client_glue): Handle ignore_unsupported flag.
4499         (dbus_binding_tool_output_glib_client): Handle ignore_unsupported
4500         parameter.
4501
4502         * glib/Makefile.am (dbus-glib-bindings.h): Pass
4503         --ignore-unsupported by default until glib bindings
4504         support arrays.
4505
4506 2005-03-11  Colin Walters  <walters@verbum.org>
4507
4508         * glib/Makefile.am: Generate dbus-glib-bindings.h and
4509         install it.
4510
4511         * bus/print-introspect.c: New file; prints introspection
4512         data for a given name and object path.
4513
4514         * bus/run-with-tmp-session-bus.sh: New file, refactored
4515         from test/glib/run-test.sh.  Creates a temporary session
4516         bus and runs another program.
4517
4518         * test/glib/run-test.sh: Refactor to invoke
4519         run-with-tmp-session-bus.sh.
4520
4521         * bus/driver.c (bus_driver_handle_introspect): Fix to print new
4522         introspection format.  Also change to use DBUS_TYPE_x_AS_STRING
4523         macros instead of hardcoding.
4524
4525         * glib/.cvsignore, bus/.cvsignore, test/glib/.cvsignore: Update.
4526
4527 2005-03-11  Joe Shaw  <joeshaw@novell.com>
4528
4529         * dbus/dbus-connection.c (dbus_connection_send_with_reply): Remove
4530         this unref; it doesn't match up evenly in some codepaths.
4531         (_dbus_connection_block_pending_call): Unref at every exitpoint;
4532         this evenly matches with the ref near the top of this function.
4533
4534 2005-03-09  Joe Shaw  <joeshaw@novell.com>
4535
4536         * dbus/dbus-object-tree.c
4537         (_dbus_object_tree_unregister_and_unlock): If checks are enabled
4538         and we try to unregister a path that's not registered, still go
4539         through the process of unlocking and don't just return.
4540
4541 2005-03-09  Colin Walters  <walters@verbum.org>
4542
4543         * glib/dbus-gproxy.c (dbus_g_proxy_invoke): New method; calls
4544         to this are generated for client-side wrappers.  Invokes a
4545         D-BUS method and returns reply values.  
4546
4547         * glib/dbus-binding-tool-glib.c (write_args_sig_for_direction): New
4548         function; writes signature string for argument direction.
4549         (write_args_for_direction): Change to pass input values directly
4550         instead of via address, and fix indentation.
4551         (generate_client_glue): Change to invoke dbus_g_proxy_invoke.  Also
4552         make generated wrappers inlineable.
4553
4554         * dbus/dbus-message.c (dbus_message_iter_get_fixed_array): Add
4555         note about using dbus_type_is_fixed.
4556
4557         * dbus/dbus-marshal-basic.c (_dbus_type_is_fixed): Moved to
4558         dbus/dbus-signature.c as dbus_type_is_fixed.
4559
4560         All callers updated.
4561
4562         * dbus/dbus-signature.c (dbus_type_is_fixed): Moved here
4563         from dbus/dbus-marshal-basic.c:_dbus_type_is_fixed.
4564
4565         * dbus/dbus-signature.h: Prototype.
4566
4567         * glib/dbus-binding-tool-glib.c (compute_marshaller_name): Fix
4568         error printf code.
4569
4570         * test/glib/test-dbus-glib.c (main): Be sure to clear error as
4571         appropriate instead of just freeing it.
4572         (main): Free returned strings using g_free.
4573
4574         * test/glib/Makefile.am (test-service-glib-glue.h)
4575         (test-service-glib-bindings.h): Add dependency on dbus-binding-tool.
4576
4577         * glib/dbus-gvalue.c (MAP_BASIC): Refactored from MAP_BASIC_INIT;
4578         simply maps a simple D-BUS type to GType.
4579         (dbus_dbus_type_to_gtype): Function which maps D-BUS type to
4580         GType.
4581         (dbus_gvalue_init): Just invoke dbus_dbus_type_to_gtype and
4582         initialize the value with it.
4583         (dbus_gvalue_binding_type_from_type): Unused, delete.
4584         (dbus_gvalue_demarshal): Switch to hardcoding demarshalling for
4585         various types instead of unmarshalling to value data directly.
4586         Remove can_convert boolean.
4587         (dbus_gvalue_marshal): Remove duplicate initialization; switch to
4588         returning directly instead of using can_convert boolean.
4589         (dbus_gvalue_store): New function; not related to D-BUS per-se.
4590         Stores a GValue in a pointer to a value of its corresponding C
4591         type.
4592
4593         * glib/dbus-gvalue.h: Remove dbus_gvalue_binding_type_from_type,
4594         add dbus_gvalue_store.
4595
4596 2005-03-08  Joe Shaw  <joeshaw@novell.com>
4597
4598         Fix a bunch of lifecycle and memory management problems
4599         in the mono bindings.
4600
4601         * mono/Arguments.cs (Arguments): Implement IDisposable
4602
4603         * mono/Bus.cs (Bus): Don't allow public instantiation.  This is
4604         strictly a static class.
4605
4606         * mono/Connection.cs: Move the DBusObjectPathVTable and associated
4607         delegates into this file.
4608         (Connection): Implement IDisposable.
4609         (Dispose): Disconnect the connection and set the raw connection
4610         pointer to IntPtr.Zero.
4611         (~Connection): Call Dispose().
4612         (RegisterObjectPath): Added.  Manages the registration of object
4613         paths so we can cleanly disconnect them at dispose/finalize time.
4614         (UnregisterObjectPath): Ditto.
4615         (set_RawConnection): Unregister all of the object paths when
4616         changing the underlying DBusConnection.  Add them back onto the
4617         new connection, if any.
4618
4619         * mono/Handler.cs: Don't implement IDisposable; it doesn't use any
4620         more unmanaged resources anymore, so it's not necessary.  Move all
4621         the DBusObjectPathVTable stuff out of here.
4622         (Handler): Save references to our delegates so that they don't get
4623         finalized.  Call Connection.RegisterObjectPath() instead of
4624         dbus_connection_register_object_path() directly.
4625         (Message_Called): Dispose the message after we're finished with
4626         it.
4627
4628         * mono/Message.cs (Message): Implement IDisposable.
4629         (Dispose): Dispose the Arguments, and set the RawMessage to
4630         IntPtr.Zero.
4631         (SendWithReplyAndBlock): We own the ref to the reply that comes
4632         back from dbus_connection_send_with_reply_and_block() so add a
4633         comment about that and unref it after we've constructed a managed
4634         MethodReturn class around it.  Fixes a big, big leak.
4635
4636         * mono/ProxyBuilder.cs: Reflect into Message to get the Dispose
4637         method.
4638         (BuildSignalHandler): After we've sent the Signal message, dispose
4639         of it.
4640         (BuildMethod): Dispose of the method call and reply messages after
4641         we've sent the message and extracted the data we want from the
4642         reply.
4643
4644         * mono/Service.cs (UnregisterObject): Don't call handler.Dispose()
4645         anymore.
4646         (Service_FilterCalled): Dispose of the message after we're
4647         finished with it.
4648
4649 2005-03-08  Joe Shaw  <joeshaw@novell.com>
4650
4651         * dbus/dbus-connection.c (dbus_connection_send_with_reply):
4652         After we attach our pending call to the connection, unref
4653         it.  Fixes a leak.
4654  
4655         * mono/Connection.cs (set_RawConnection): Disconnect our
4656         filter and match callbacks from the old connection and
4657         reconnect them to the new connection, if any.
4658
4659         * mono/DBusType/Array.cs: "Code" is a static member, so
4660         don't use "this" to refer to it.  Fix for stricter checking
4661         in Mono 1.1.4.
4662  
4663         * mono/DBusType/ObjectPath.cs (Append): Don't leak the
4664         object path that we pass into unmanaged code.
4665  
4666         * mono/DBusType/String.cs (Append): Don't leak the string
4667         that we pass into unmanged code.
4668
4669 2005-03-07  John (J5) Palmieri  <johnp@redhat.com>
4670         * NEWS: Update for 0.31
4671
4672         * configure.in: Release 0.31
4673         add LT_CURRENT, LT_REVISION, LT_AGE for easy soname bumping
4674
4675         * qt/Makefile.am: fixed build
4676
4677         * dbus/Makefile.am: soname bump for libdbus
4678
4679         * glib/Makefile.am: soname bump for libdbus-glib
4680
4681 2005-03-05  Havoc Pennington  <hp@redhat.com>
4682
4683         * dbus/dbus-sysdeps.c:
4684         (pseudorandom_generate_random_bytes_buffer): fix to have no return
4685         value
4686         (_dbus_generate_random_bytes_buffer): fix return value
4687
4688         * dbus/dbus-sysdeps-util.c: s/GETPWNAME/GETPWNAM/ so configure
4689         checks actually work, from Tom Parker <fdo@tevp.net>
4690
4691 2005-03-01  Colin Walters  <walters@verbum.org>
4692
4693         * test/glib/test-dbus-glib.c (lose, lose_gerror): Utility
4694         functions copied from dbus-glib-tool.c.
4695         (main): Convert lots of error code to use them.
4696         Also add some testing for introspection bits.
4697
4698 2005-03-01  Colin Walters  <walters@verbum.org>
4699         
4700         * doc/TODO: Remove introspection signature TODO.
4701
4702 2005-02-27  Colin Walters  <walters@verbum.org>
4703
4704         * glib/dbus-gidl.c (property_info_get_type, arg_info_get_type):
4705         Change return value to const char * instead of int so we can do
4706         full signatures.
4707         (struct PropertyInfo, struct ArgInfo): Store char *.
4708         (property_info_new, arg_info_new): Update parameters, strdup.
4709         (property_info_unref, arg_info_unref): Free.
4710
4711         * glib/dbus-gidl.h: Update prototypes.
4712
4713         * glib/dbus-gparser.c (basic_type_from_string): Delete.
4714         (validate_signature): New function, just validates signature and
4715         sets GError.
4716         (parse_property, parse_arg): Invoke validate_signature.  Store
4717         signature instead of just type code.
4718
4719         * glib/dbus-gvalue.c (base_type_from_signature): New utility
4720         function to return a primary type for a signature, dropping
4721         information about types in container types.
4722         (dbus_gvalue_genmarshal_name_from_type)
4723         (dbus_gvalue_binding_type_from_type)
4724         (dbus_gvalue_ctype_from_type): Update to take full signature
4725          instead of type code.
4726         (dbus_gtype_to_dbus_type): Moved here from glib/dbus-gobject.c.
4727
4728         * glib/dbus-gvalue.h: Update prototypes for above.
4729
4730         * glib/dbus-gobject.c (gtype_to_dbus_type): Moved to
4731         glib/dbus-gvalue.c as dbus_gtype_to_dbus_type.
4732         (introspect_properties, introspect_signals, write_interface):
4733         Update to handle signatures, and remove usage of
4734         _dbus_gutils_type_to_string.
4735         (handle_introspect): Print out type codes instead of e.g. "string"
4736         in hardcoded introspection XML; also use x_AS_STRING constants
4737         instead of hardcoding in string.
4738
4739         * glib/dbus-glib-tool.c (pretty_print): Handle signature change
4740         to string.  Remove usage of _dbus_gutils_type_to_string.
4741
4742         * glib/dbus-gutils.c (_dbus_gutils_type_to_string): Delete.
4743
4744         * glib/dbus-gutils.h (_dbus_gutils_type_to_string): Update for
4745         deletion.
4746         
4747         * glib/dbus-binding-tool-glib.c (compute_marshaller)
4748         (compute_marshaller_name, generate_glue): Handle signature change
4749         to string.
4750         (write_formal_parameters, write_args_for_direction): Ditto, and
4751         remove FIXME.
4752
4753         * tools/dbus-tree-view.c (type_to_string): Delete.
4754         (info_set_func_text): Update to print full signatures.
4755
4756         * test/glib/test-service-glib.xml: Change types to new
4757         introspection format.
4758
4759 2005-02-26  Havoc Pennington  <hp@redhat.com>
4760
4761         * doc/TODO: remove the "guid" item
4762
4763         * test/glib/test-profile.c (no_bus_thread_func): use open_private
4764         (with_bus_thread_func): use open_private
4765
4766         * dbus/dbus-connection.c (dbus_connection_open_private): new
4767         function that works like the old dbus_connection_open()
4768         (dbus_connection_open): now returns an existing connection if
4769         possible
4770
4771         * dbus/dbus-server-unix.c (handle_new_client_fd_and_unlock): pass
4772         through the GUID to the transport
4773
4774         * dbus/dbus-server.c (_dbus_server_init_base): keep around the
4775         GUID in hex-encoded form.
4776
4777         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
4778         pass GUID argument in to the transport
4779
4780         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd): add
4781         guid argument
4782
4783         * dbus/dbus-transport.c (_dbus_transport_init_base): add guid argument
4784
4785         * dbus/dbus-auth.c (_dbus_auth_server_new): add guid argument
4786
4787 2005-02-25  Havoc Pennington  <hp@redhat.com>
4788
4789         * doc/dbus-specification.xml: document the GUID thing
4790
4791         * dbus/dbus-server.c (_dbus_server_init_base): initialize a
4792         globally unique ID for the server, and put a "guid=hexencoded"
4793         field in the address
4794
4795         * dbus/dbus-bus.c: fix missing #include of dbus-threads-internal.h
4796
4797         * dbus/dbus-message.c: ditto
4798
4799         * dbus/dbus-dataslot.c: ditto
4800
4801         * dbus/dbus-list.c: ditto
4802
4803         * dbus/dbus-internals.h: wait, just include
4804         dbus-threads-internal.h here
4805         
4806         * dbus/dbus-string.c (_dbus_string_copy_to_buffer): move back for
4807         use in main library
4808
4809         * dbus/dbus-sysdeps.c (_dbus_generate_random_bytes_buffer): new function
4810
4811 2005-02-24  Colin Walters  <walters@verbum.org>
4812
4813         * test/glib/Makefile.am (EXTRA_DIST): Add test-service-glib.xml
4814
4815 2005-02-24  John (J5) Palmieir  <johnp@redhat.com>
4816
4817         * glib/Makefile.am: added dbus-gobject.h to sources list
4818         so distcheck doesn't fail
4819         
4820 2005-02-24  Havoc Pennington  <hp@redhat.com>
4821
4822         * dbus/dbus-server.c, dbus/dbus-server-unix.c: change semantics so
4823         you must disconnect before unref, since locking and other things
4824         are screwed up otherwise. Fix assorted other locking stuff.
4825
4826         * dbus/dbus-signature.c (dbus_signature_iter_get_element_type):
4827         fix compilation
4828
4829         * dbus/dbus-threads-internal.h: move the mutex/condvar wrappers
4830         into a private header and don't export from the library
4831
4832         * throughout - call _dbus_thread_stuff vs. dbus_thread_stuff
4833
4834 2005-02-24  Colin Walters  <walters@verbum.org>
4835         
4836         * dbus/dbus-signature.c: New file; implements various functions
4837         related to type signatures.  Includes an interator for parsing,
4838         validation functions.
4839         (dbus_type_is_basic): Moved here from
4840         dbus-marshal-basic.c:_dbus_type_is_basic.
4841         (dbus_type_is_container): Moved here from
4842         dbus-marshal-basic.c:_dbus_type_is_container.
4843
4844         All callers of _dbus_type_is_container and _dbus_type_is_basic
4845         updated, and include dbus-signature.h.
4846
4847         * dbus/dbus-signature.h: New file; prototypes for the above.
4848
4849         * dbus/Makefile.am (DBUS_LIB_SOURCES): Add dbus-signature.c,
4850         dbus-signature.h.
4851
4852         * dbus/dbus-marshal-basic.c (map_type_char_to_type): New utility
4853         function factored out of _dbus_first_type_in_signature.
4854         (_dbus_first_type_in_signature_c_str): New function; returns first
4855         type code for a type signature character.
4856
4857         * dbus/dbus-marshal-basic.h: Prototype _dbus_first_type_in_signature_c_str,
4858         handle function moves.
4859
4860         * dbus/dbus-marshal-recursive.h: Export _dbus_type_signature_next.
4861
4862         * dbus/dbus-marshal-recursive.c (_dbus_type_signature_next): New
4863         function; skips to next complete type in type signature.
4864         Implemented using previous skip_one_complete_type.  Now
4865         skip_one_complete_type just delegates to
4866         _dbus_type_signature_next.
4867
4868         * dbus/dbus-marshal-basic.c (_dbus_type_is_basic): Moved
4869         to dbus-signature.c
4870         (_dbus_type_is_container): Ditto.
4871
4872         * doc/dbus-specification.xml: Update introspection sample to
4873         use real type signatures.
4874
4875         * dbus/dbus-test.h: Prototype signature test.
4876
4877         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): Run
4878         signature tests.
4879
4880         * dbus/dbus-protocol.h (DBUS_ERROR_INVALID_SIGNATURE): New error.
4881
4882 2005-02-23  John (J5) Palmieri  <johnp@redhat.com>
4883
4884         * python/dbus_bindings.pyx.in (PendingCall::get_reply):
4885         s/dbus_pending_call_get_reply/dbus_pending_call_steal_reply
4886
4887 2005-02-21  Colin Walters  <walters@verbum.org>
4888
4889         * dbus/dbus-test-main.c (main): Take optional specific test
4890         argument.
4891
4892         * dbus/dbus-test.c (run_test): New function, runs a test function
4893         with no data directory.
4894         (run_data_test): Like above, but takes data directory.
4895         (dbus_internal_do_not_use_run_tests): Take
4896         specific test argument.  Replace lots of cut n' paste code
4897         with run_test and run_data_test.
4898
4899         * dbus/dbus-test.h: Update prototype for
4900         dbus_internal_do_not_use_run_tests.
4901
4902 2005-02-20  Havoc Pennington  <hp@redhat.com>
4903
4904         Fix bugs reported by Daniel P. Berrange
4905         
4906         * dbus/dbus-server.c (_dbus_server_unref_unlocked): new function
4907         (protected_change_watch): new function
4908         (_dbus_server_toggle_watch, _dbus_server_remove_watch)
4909         (_dbus_server_add_watch): change to work like the
4910         dbus-connection.c equivalents; like those, probably kind of
4911         busted, but should at least mostly work for now
4912         (dbus_server_disconnect): drop the lock if we were already
4913         disconnected, patch from Daniel P. Berrange
4914
4915         * dbus/dbus-server.c (_dbus_server_toggle_timeout) 
4916         (_dbus_server_remove_timeout, _dbus_server_add_timeout): all the
4917         same stuff
4918
4919         * doc/TODO: todo about unscrewing this mess
4920
4921 2005-02-19  Colin Walters  <walters@verbum.org>
4922
4923         * glib/dbus-binding-tool-glib.c
4924         (dbus_binding_tool_output_glib_server): Fix iochannel refcounting.
4925
4926         * glib/dbus-glib-tool.c: Include dbus-glib-tool.h, as well
4927         as errno.h and sys/stat.h.
4928         (lose): New function, prints error with
4929         newline and exits.
4930         (lose_gerror): Similar, but takes GError for message.
4931         (main): Add --output argument to specify output file to write to,
4932         instead of always printing to stdout.  In this mode, determine
4933         timestamps on source files to see whether any are newer than the
4934         target file.  If not, exit.  Also convert a number of error
4935         messages to use lose (since it's shorter), and switch to using
4936         g_io_channel_shutdown.
4937
4938 2005-02-19  Havoc Pennington  <hp@redhat.com>
4939
4940         * glib/dbus-gobject.c
4941         (_dbus_glib_marshal_dbus_message_to_gvalue_array): add docs
4942
4943         * glib/dbus-glib.c: fix doxygen warnings
4944
4945         * glib/dbus-gparser.c (parse_annotation): error if an annotation
4946         is found on an <arg>
4947
4948 2005-02-17  Colin Walters  <walters@verbum.org>
4949
4950         * glib/dbus-gobject.h: Don't export
4951         _dbus_glib_marshal_dbus_message_to_gvalue_array.
4952         
4953         * glib/dbus-gobject.c (_dbus_glib_marshal_dbus_message_to_gvalue_array): Do rename.
4954         (invoke_object_method): Handle it.
4955
4956         * glib/dbus-gproxy.c (marshal_dbus_message_to_g_marshaller):
4957         Handle rename.
4958         
4959 2005-02-17  Colin Walters  <walters@verbum.org>
4960
4961         * bus/.cvsignore, doc/.cvsignore
4962         * test/data/valid-service-files/.cvsignore, test/glib/.cvsignore:
4963         Update.
4964
4965 2005-02-17  Colin Walters  <walters@verbum.org>
4966         
4967         * dbus/dbus-protocol.h (DBUS_SERVICE_ORG_FREEDESKTOP_DBUS):
4968         Rename to DBUS_SERVICE_DBUS.
4969         (DBUS_PATH_ORG_FREEDESKTOP_DBUS): Rename to DBUS_PATH_DBUS.
4970         (DBUS_PATH_ORG_FREEDESKTOP_LOCAL): Rename to DBUS_PATH_LOCAL.
4971         Change the value from "org.freedesktop.Local"
4972         to "org.freedesktop.DBus.Local".
4973         (DBUS_INTERFACE_ORG_FREEDESKTOP_DBUS): Rename to DBUS_INTERFACE_DBUS.
4974         (DBUS_INTERFACE_ORG_FREEDESKTOP_INTROSPECTABLE): Rename to
4975         DBUS_INTERFACE_INTROSPECTABLE.
4976         Change the value from "org.freedesktop.Introspectable"
4977         to "org.freedesktop.DBus.Introspectable".
4978         (DBUS_INTERFACE_ORG_FREEDESKTOP_PROPERTIES): Rename to
4979         DBUS_INTERFACE_PROPERTIES.
4980         Change the value from "org.freedesktop.Properties"
4981         to "org.freedesktop.DBus.Properties".
4982         (DBUS_INTERFACE_ORG_FREEDESKTOP_PEER): Rename to
4983         DBUS_INTERFACE_PEER.
4984         Change the value from "org.freedesktop.Peer"
4985         to "org.freedesktop.DBus.Peer".
4986         (DBUS_INTERFACE_ORG_FREEDESKTOP_LOCAL): 
4987         DBUS_INTERFACE_LOCAL.
4988         Change the value from "org.freedesktop.Local"
4989         to "org.freedesktop.DBus.Local".
4990
4991         All other users of those constants have been changed.
4992
4993         * bus/driver.c (bus_driver_handle_introspect): Use constants.
4994
4995         * glib/dbus-gobject.c (handle_introspect): Use constants.
4996
4997         * doc/dbus-faq.xml, doc/dbus-specification.xml: Update for rename.
4998
4999 2005-02-17  Colin Walters  <walters@verbum.org>
5000
5001         * glib/dbus-gparser.c (struct Parser): Add in_annotation boolean.
5002         (parse_node, parse_interface, parse_method, parse_signal)
5003         (parse_property, parse_annotation): Lose if we're currently in an
5004         annotation.
5005         (parse_annotation): New function.
5006         (parser_start_element, parser_end_element): Handle annotation.
5007         (parse_method, parse_interface): Remove support for c_name attribute,
5008         switch to annotations.
5009
5010         * glib/dbus-gidl.h (interface_info_get_binding_names)
5011         (method_info_get_binding_names)
5012         (interface_info_get_binding_name, method_info_get_binding_name)
5013         (interface_info_set_binding_name, method_info_set_binding_name):
5014         Remove.
5015         (interface_info_get_annotations, method_info_get_annotations)
5016         (interface_info_get_annotation, method_info_get_annotation)
5017         (interface_info_add_annotation, method_info_add_annotation):
5018         Prototype.
5019
5020         * glib/dbus-gidl.c (struct InterfaceInfo): Substitute "annotations"
5021         for "bindings".
5022         (struct MethodInfo): Ditto.
5023         Straightfoward conversion of binding methods into annotation methods
5024         as prototyped.
5025
5026         * glib/dbus-glib-tool.c (pretty_print): Print annotations.
5027
5028         * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_C_SYMBOL): Define.
5029
5030         * glib/dbus-binding-tool-glib.c (gather_marshallers, generate_glue):
5031         Use new annotation API.
5032
5033         * doc/introspect.dtd: Fix a number of DTD syntax errors.  Add
5034         annotation element.
5035         
5036         * doc/dbus-specification.xml: Discuss introspection annotations,
5037         include list of well-known annotations.
5038
5039         * test/glib/test-service-glib.xml: Make validate against new DTD.
5040
5041 2005-02-17  Colin Walters  <walters@verbum.org>
5042
5043         This patch is based on initial work from
5044         Paul Kuliniewicz <kuliniew@purdue.edu>.
5045
5046         * glib/dbus-gvalue.c (dbus_gvalue_init): New function; move
5047         initialization of GValue from dbus type to here.
5048         (dbus_gvalue_genmarshal_name_from_type): New function; generates a string
5049         for the "glib-genmarshal" program from a DBus type.
5050         (dbus_gvalue_binding_type_from_type): New function; turns a DBus type
5051         into the C name for it we use in the glib bindings.
5052         (dbus_gvalue_ctype_from_type): New function; maps a DBus type into a
5053         glib C type (not GValue).
5054         (dbus_gvalue_demarshal): invoke dbus_gvalue_init.
5055
5056         * glib/dbus-gutils.c (_dbus_gutils_wincaps_to_uscore): Moved here
5057         from dbus-gobject.c.
5058
5059         * glib/dbus-gutils.h: Prototype it.
5060
5061         * glib/dbus-gproxy.c: Include new dbus-gobject.h.
5062         (marshal_dbus_message_to_g_marshaller): Use new shared function
5063         dbus_glib_marshal_dbus_message_to_gvalue_array.
5064
5065         * glib/dbus-gparser.c (parse_interface, parse_method): Handle c_name attribute.
5066         Will be changed once we have annotations.
5067
5068         * glib/dbus-gobject.c: Change info_hash_mutex from GStaticMutex to
5069         GStaticRWLock.  Callers updated.
5070         (wincaps_to_uscore): Move to dbus-gutils.c.  Callers updated.
5071         (string_table_next): New function for iterating over zero-terminated
5072         string value array.
5073         (string_table_lookup): New function; retrieves specific entry in
5074         array.
5075         (get_method_data): New function; look up method data in object data chunk.
5076         (object_error_domain_prefix_from_object_info)
5077         (object_error_code_from_object_info): New functions, but not implemented yet.
5078         (method_interface_from_object_info): New function; retrieve interface name.
5079         (method_name_from_object_info): New function; retrieve method name.
5080         (method_arg_info_from_object_info): New function; retrieve argument data.
5081         (arg_iterate): New function; iterates over serialized argument data.
5082         (method_dir_signature_from_object_info): New function; returns a
5083         GString holding type signature for arguments for just one
5084         direction (input or output).
5085         (method_input_signature_from_object_info)
5086         (method_output_signature_from_object_info): New functions.
5087         (dbus_glib_marshal_dbus_message_to_gvalue_array): New shared function;
5088         converts dbus message arguments into a GValue array.  Used for both
5089         signal handling and method invocation.
5090         (struct DBusGlibWriteIterfaceData): New utility structure.
5091         (write_interface): New function; generate introspection XML for
5092         an interface.
5093         (introspect_interfaces): New function; gathers all interface->methods,
5094         generates introspection XML for them.
5095         (handle_introspect): Invoke introspect_interfaces.
5096         (get_object_property): Be sure to zero-initalize stack-allocated GValue.
5097         (lookup_object_and_method): New function; examines an incoming message
5098         and attempts to match it up (via interface, method name, and argument
5099         signature) with a known object and method.
5100         (gerror_domaincode_to_dbus_error_name): New function; converts a
5101         GError domain and code into a DBus error name.  Needs GError data
5102         added to object introspection to work well.
5103         (gerror_to_dbus_error_message): Creates a DBusMessage error return from
5104         GError.
5105         (invoke_object_method): New function to invoke an object method
5106         looked up via lookup_object_and_method.  Parses the incoming
5107         message, turns it into a GValue array, then invokes the marshaller
5108         specified in the DBusGMethodInfo.  Creates a new message with
5109         either return values or error message as appropriate.
5110         (gobject_message_function): Invoke lookup_object_and_method and
5111         invoke_object_method.
5112
5113         * glib/dbus-glib-tool.c: Include dbus-binding-tool-glib.h.
5114         (enum DBusBindingOutputMode): New enum for binding output modes.
5115         (pretty_print): Print binding names.
5116         (dbus_binding_tool_error_quark): GError bits.
5117         (version): Fix typo.
5118         (main): Create GIOChannel for output.  Parse new --mode argument,
5119         possible values are "pretty-print", "glib-server", "glib-client".
5120         Use mode to invoke appropriate function.
5121         
5122         * glib/dbus-gobject.h: Prototype dbus_glib_marshal_dbus_message_to_gvalue_array.
5123
5124         * glib/dbus-glib-tool.h: New header, just includes GError bits
5125         for now.
5126
5127         * glib/dbus-gidl.c (struct InterfaceInfo): Add bindings hashtable;
5128         maps binding style to name.
5129         (struct MethodInfo): Ditto.
5130         (get_hash_keys, get_hash_key): Utility function, returns keys for
5131         a GHashTable.
5132         (interface_info_new, method_info_new): Initialize bindings.
5133         (interface_info_unref, method_info_unref): Destroy bindings.
5134         (method_info_get_binding_names, method_info_get_binding_name)
5135         (interface_info_get_binding_names, interface_info_get_binding_name):
5136         Functions for retrieving binding names.
5137         (method_info_set_binding_name, interface_info_set_binding_name):
5138         Functions for setting binding names.
5139
5140         * glib/dbus-binding-tool-glib.h: New file, has prototypes
5141         for glib binding generation.
5142
5143         * glib/dbus-binding-tool-glib.c: New file, implements server-side
5144         and client-side glib glue generation.
5145
5146         * glib/Makefile.am (dbus_binding_tool_SOURCES): Add
5147         dbus-binding-tool-glib.c, dbus-binding-tool-glib.h,
5148         dbus-glib-tool.h.
5149
5150         * dbus/dbus-glib.h (struct DBusGMethodMarshaller): Remove in favor
5151         of using GClosureMarshal directly.
5152         (struct DBusGObjectInfo): Add n_infos member.
5153
5154         * test/glib/test-service-glib.xml: New file; contains introspection data
5155         for MyTestObject used in test-service-glib.c.
5156
5157         * test/glib/test-service-glib.c (enum MyObjectError): New GError enum.
5158         (my_object_do_nothing, my_object_increment, my_object_throw_error)
5159         (my_object_uppercase, my_object_many_args): New test methods.
5160         (main): Use dbus_g_object_class_install_info to include generated object
5161         info.
5162
5163         * test/glib/Makefile.am: Generate server-side glue for test-service-glib.c,
5164         as well as client-side bindings.
5165
5166         * test/glib/test-dbus-glib.c: Include test-service-glib-bindings.h.
5167         (main): Activate TestSuiteGLibService; test invoke a bunch of its methods
5168         using both the dbus_gproxy stuff directly as well as the generated bindings.
5169
5170 2005-02-15  Havoc Pennington  <hp@redhat.com>
5171
5172         * dbus/dbus-connection.c (dbus_connection_dispatch): always
5173         complete a pending call, don't run filters first.
5174
5175         * glib/dbus-gproxy.c (dbus_g_proxy_end_call): change to use
5176         dbus_pending_call_steal_reply
5177
5178         * dbus/dbus-pending-call.c (dbus_pending_call_block): just call
5179         _dbus_connection_block_pending_call
5180         (dbus_pending_call_get_reply): change to steal_reply and return a
5181         ref
5182
5183         * dbus/dbus-connection.c
5184         (dbus_connection_send_with_reply_and_block): port to work in terms
5185         of DBusPendingCall
5186         (_dbus_connection_block_pending_call): replace block_for_reply
5187         with this
5188
5189 2005-02-14  Havoc Pennington  <hp@redhat.com>
5190
5191         * dbus/dbus-userdb-util.c (_dbus_user_database_lookup_group):
5192         properly handle looking up group information by name; fix 
5193         from j@bootlab.org
5194
5195 2005-02-13  Havoc Pennington  <hp@redhat.com>
5196
5197         * dbus/dbus-connection.c (dbus_connection_return_message) 
5198         (dbus_connection_borrow_message): hold dispatch lock while message
5199         is outstanding
5200         (_dbus_connection_block_for_reply): hold dispatch lock while we
5201         block for the reply, so nobody steals our reply
5202         (dbus_connection_pop_message): hold the dispatch lock while we
5203         pluck the message
5204
5205 2005-02-13  Havoc Pennington  <hp@redhat.com>
5206
5207         * dbus/dbus-connection.c (_dbus_connection_acquire_dispatch)
5208         (_dbus_connection_release_dispatch)
5209         (_dbus_connection_acquire_io_path)
5210         (_dbus_connection_release_io_path): make the mutex and condvar
5211         control access to the "acquired" flag. Drop the connection lock
5212         while waiting on the condvar. Hopefully these are baby steps in
5213         roughly the right direction.
5214
5215 2005-02-13  Havoc Pennington  <hp@redhat.com>
5216
5217         * dbus/dbus-connection.c: use separate mutexes for the condition
5218         variables; this is some kind of baseline for sanity, but the
5219         condition variables still aren't used correctly afaict
5220
5221 2005-02-13  Havoc Pennington  <hp@redhat.com>
5222
5223         * dbus/dbus-object-tree.c (handle_default_introspect_and_unlock):
5224         fix a double-unlock
5225
5226         * dbus/dbus-connection.c
5227         (_dbus_connection_detach_pending_call_unlocked): add this
5228
5229         Initial semi-correct pass through to fix thread locking; there are
5230         still some issues with the condition variable paths I'm pretty
5231         sure
5232         
5233         * dbus/dbus-server.c: add a mutex on DBusServer and appropriate
5234         lock/unlock calls
5235
5236         * dbus/dbus-connection.c (_dbus_connection_do_iteration_unlocked):
5237         rename to add _unlocked
5238         (struct DBusConnection): move "dispatch_acquired" and
5239         "io_path_acquired" to use only one bit each.
5240         (CONNECTION_LOCK, CONNECTION_UNLOCK): add checks with !DBUS_DISABLE_CHECKS
5241         (dbus_connection_set_watch_functions): hacky fix to reentrancy
5242         (_dbus_connection_add_watch, _dbus_connection_remove_watch) 
5243         (_dbus_connection_toggle_watch, _dbus_connection_add_timeout) 
5244         (_dbus_connection_remove_timeout) 
5245         (_dbus_connection_toggle_timeout): drop lock when calling out to
5246         user functions; done in a hacky/bad way.
5247         (_dbus_connection_send_and_unlock): add a missing unlock
5248         (_dbus_connection_block_for_reply): add a missing unlock
5249
5250         * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated):
5251         drop lock in a hacky probably unsafe way to call out to user
5252         function
5253
5254 2005-02-12  Havoc Pennington  <hp@redhat.com>
5255
5256         * tools/dbus-tree-view.c (info_set_func_text): display more
5257         details on args
5258
5259         * bus/driver.c (bus_driver_handle_list_services): list the bus
5260         driver
5261
5262         * glib/dbus-gparser.c (parse_arg): generate an arg name if none is supplied
5263
5264         * glib/dbus-gidl.c (signal_info_get_n_args): new function
5265         (method_info_get_n_args): new function
5266
5267 2005-02-12  Havoc Pennington  <hp@redhat.com>
5268
5269         * bus/driver.c (bus_driver_handle_introspect): add introspection
5270         for bus driver
5271
5272 2005-02-12  Havoc Pennington  <hp@redhat.com>
5273
5274         * bus/driver.c: put the signature of each bus driver method in the
5275         table of handlers and check it on incoming calls; this isn't
5276         really useful, but going to add introspect support in a minute.
5277
5278 2005-02-11  Joe Shaw  <joeshaw@novell.com>
5279
5280         * mono/Connection.cs: The unpredictability of finalizers in mono
5281         prevents us from deterministically disconnecting the filters from
5282         the Service class's finalizer, so move tracking of filters and
5283         matches here.  Add API for that.
5284
5285         * mono/Service.cs: Remove the code, add code which calls the
5286         methods now on the Connection class.
5287
5288 2005-02-11  John (J5) Palmieri  <johnp@redhat.com>
5289
5290         * python/dbus.py (class Sender): added to support dbus signals better
5291         (Bus::add_signal_receiver): added expand_args parameter which defaults
5292         to True.  When expand args is True the signal handler will pass the 
5293         message arguments as parameters to the signal handler.  If False
5294         revert to previous behavior where the signal handler must get the
5295         argument list from the message.  This is to help port applications
5296         like HAL that have a tendancy to send variable length argument lists.
5297         self._match_rule_to_receivers is now a dict of dicts.
5298         (Bus::remove_signal_receiver): pop handler off the dict intead of 
5299         removing it from a list
5300         (Bus::_signal_func): change signal handlers so that interface,
5301         signal_name, service, path and message are packed into a Sender
5302         object and that is passed to the handler.  If expand_args is True
5303         extract the args list from the message and append it to the parameter
5304         list
5305         
5306         * python/dbus_bindings.pyx.in (class Signature): added to support 
5307         signiature types
5308         (MessageIter::__init__): changed iteration limit to match D-BUS
5309         (MessageIter::get*): added INT16, UINT16, SIGNATURE, DICT_ENTRY, 
5310         STRUCT and VARIENT type support
5311         (MessageIter::python_value_to_dbus_sig): made recursive to support
5312         recursive types
5313         (MessageIter::append*): added Signature, dict, tuple 
5314         support
5315
5316         * python/examples/example-client.py: added examples of getting tuples
5317         and dicts
5318
5319         * python/examples/example-service.py: added examples of sending tuples
5320         and dicts
5321
5322         * python/examples/example-signal-recipient.py: Fixed to handle new
5323         signal callback format
5324
5325 2005-02-10  Havoc Pennington  <hp@redhat.com>
5326
5327         * test/glib/test-dbus-glib.c (main): fix so this test doesn't fail
5328         (call dbus_g_proxy_add_signal)
5329
5330         * dbus/dbus-server-unix.c (_dbus_server_new_for_tcp_socket):
5331         escape the hostname
5332         (_dbus_server_new_for_domain_socket): escape the path
5333
5334         * dbus/dbus-address.c (dbus_address_escape_value): new
5335         (dbus_address_unescape_value): new
5336         (dbus_parse_address): unescape values
5337
5338         * dbus/dbus-string.c (_dbus_string_append_byte_as_hex): new function
5339
5340         * doc/dbus-specification.xml: explain how to escape values in
5341         addresses
5342
5343 2005-02-10  Havoc Pennington  <hp@redhat.com>
5344
5345         * dbus/dbus-message-factory.c (generate_special): modify test to
5346         avoid using a non-basic dict key
5347
5348         * dbus/dbus-marshal-validate-util.c: add test for the below
5349
5350         * doc/dbus-specification.xml: require that dict keys are a basic
5351         type
5352
5353         * dbus/dbus-marshal-validate.c
5354         (_dbus_validate_signature_with_reason): require that dict key is a
5355         basic type
5356
5357 2005-02-10  Havoc Pennington  <hp@redhat.com>
5358
5359         * dbus/dbus-object-tree.c (handle_default_introspect_and_unlock):
5360         change to be _and_unlock instead of _unlocked
5361
5362         * dbus/dbus-connection.c
5363         (_dbus_connection_send_preallocated_unlocked_no_update): rename to
5364         have no_update so we can find this bug quickly in future
5365
5366 2005-02-10  Havoc Pennington  <hp@redhat.com>
5367
5368         * dbus/dbus-message-util.c (verify_test_message): tests for string
5369         array
5370
5371         * dbus/dbus-message.c (dbus_message_append_args_valist): add
5372         support for arrays of string/signature/path
5373
5374 2005-02-10  Joe Shaw  <joeshaw@novell.com>
5375
5376         * dbus/dbus-connection.c
5377         (_dbus_connection_queue_received_message_link,
5378         _dbus_connection_message_sent): Add the path to
5379         the verbose output.
5380         (_dbus_connection_send_preallocated_and_unlock): Added.  Calls
5381         _dbus_connection_send_preallocated_unlocked(), updated the
5382         dispatch status, and unlocks.  Fixes a bug where certain
5383         situations (like a broken pipe) could cause a Disconnect message
5384         to not be sent, tricking the bus into thinking a service was still
5385         there when the process had quit.
5386         (_dbus_connection_send_preallocated): Call
5387         _dbus_connection_send_preallocated_and_unlock().
5388         (_dbus_connection_send_and_unlock): Added.  Calls
5389         _dbus_connection_send_preallocated_and_unlock().
5390         (dbus_connection_send): Call _dbus_connection_send_and_unlock().
5391         (dbus_connection_send_with_reply): Update the dispatch status and
5392         unlock.
5393
5394         * mono/Service.cs (~Service): Added.  Removes the filter so that
5395         we don't get unmanaged code calling back into a GCed delegate.
5396         (RemoveFilter); Added.
5397
5398 2005-02-09  John (J5) Palmieri  <johnp@redhat.com>
5399
5400         * dbus/dbus-message.c (dbus_message_iter_open_container):
5401         - Removed check for iterator type being an array because
5402         get_arg_type does not work with writer iterators
5403         - Pass NULL to _dbus_type_writer_recurse if signiture is NULL
5404
5405 2005-02-07  Havoc Pennington  <hp@redhat.com>
5406
5407         * doc/dbus-specification.xml: some more language cleanups; add
5408         stuff about how to deal with invalid protocol and extension
5409         points; add _ to allowed chars in auth commands; add EXTENSION_
5410         auth command prefix
5411
5412 2005-02-06  Havoc Pennington  <hp@redhat.com>
5413
5414         * s/expected/required/ in a couple places for clarity
5415
5416 2005-02-07  Colin Walters  <walters@verbum.org>
5417
5418         * bus/selinux.c (bus_selinux_allows_send): Handle NULL for
5419         sender or proposed_recipient.
5420
5421 2005-02-06  Havoc Pennington  <hp@redhat.com>
5422
5423         * dbus/dbus-message-factory.c (generate_special): more tests
5424
5425         * dbus/dbus-marshal-validate.c (validate_body_helper): detect
5426         array length that exceeds the maximum
5427
5428 2005-02-05  Havoc Pennington  <hp@redhat.com>
5429
5430         * dbus/dbus-message-factory.c (generate_special): more test cases,
5431         increasing coverage
5432
5433         * dbus/dbus-marshal-validate.c (validate_body_helper): return the
5434         reason why a signature was invalid
5435
5436         * dbus/dbus-marshal-header.c (load_and_validate_field): fix to
5437         skip the length of the string before we look at it in validation
5438
5439         * dbus/dbus-string-util.c (_dbus_string_test): add tests for
5440         equal_substring
5441
5442         * dbus/dbus-message.c (_dbus_message_loader_new): default
5443         max_message_length to DBUS_MAXIMUM_MESSAGE_LENGTH
5444
5445 2005-02-05  Havoc Pennington  <hp@redhat.com>
5446
5447         * dbus/dbus-marshal-validate.c (validate_body_helper): fix crash
5448         if the signature of a variant was empty
5449         (_dbus_validate_signature_with_reason): catch "(a)" (array inside
5450         struct with no element type)
5451
5452         * dbus/dbus-message-factory.c (generate_uint32_changed): add more
5453         mangled messages to break things
5454
5455 2005-02-04  Havoc Pennington  <hp@redhat.com>
5456
5457         * glib/dbus-gproxy.c (dbus_g_proxy_disconnect_signal): use
5458         g_quark_try_string() so it actually can return 0
5459         (dbus_g_proxy_connect_signal): ditto
5460
5461 2005-02-04  Havoc Pennington  <hp@redhat.com>
5462
5463         * glib/dbus-gproxy.c (dbus_g_proxy_emit_remote_signal): fix a
5464         bogus warning
5465         (tristring_from_message): assert cleanly on null path/interface
5466         (should not be possible though I decided later)
5467         (dbus_g_proxy_dispose): move proxy manager unregistration here
5468         (DBUS_G_PROXY_DESTROYED): add this macro, and use it in a bunch of
5469         g_return_if_fail() checks
5470
5471 2005-02-04  Havoc Pennington  <hp@redhat.com>
5472
5473         * doc/Makefile.am (EXTRA_DIST): add DTDs to makefile
5474
5475         * doc/introspect.dtd: add introspect.dtd from David A. Wheeler
5476         (with some minor changes)
5477
5478         * doc/dbus-specification.xml: add deprecated attribute to
5479         introspection format
5480
5481 2005-01-31  Havoc Pennington  <hp@redhat.com>
5482
5483         * glib/dbus-gproxy.c: rewrite how signals work again, this time I
5484         think it's sort of right
5485
5486 2005-01-30  Havoc Pennington  <hp@redhat.com>
5487
5488         * tools/dbus-viewer.c: kind of half-ass hook up the option menu.
5489
5490 2005-01-30  Havoc Pennington  <hp@redhat.com>
5491
5492         * tools/dbus-names-model.c: dynamically watch NameOwnerChanged
5493
5494         * autogen.sh: change to autotools 1.9
5495
5496         * glib/dbus-gproxy.c: completely change how signals work
5497         (dbus_g_proxy_add_signal): new function to specify signature of a
5498         signal
5499         (dbus_g_proxy_emit_received): marshal the dbus message to GValues,
5500         and g_warning if the incoming message has the wrong signature.
5501
5502 2005-01-30  Havoc Pennington  <hp@redhat.com>
5503
5504         * tools/dbus-names-model.c (have_names_notify): fix this
5505
5506         * dbus/dbus-message.c (_dbus_message_iter_get_args_valist): clean
5507         up the string array handling a bit 
5508
5509 2005-01-30  Havoc Pennington  <hp@redhat.com>
5510
5511         * glib/dbus-glib.c (dbus_g_pending_call_set_notify): new function
5512         (dbus_g_pending_call_cancel): new function
5513
5514         * dbus/dbus-glib.h: move GType decls for connection/message here;
5515         * dbus/dbus-glib.c: move all the g_type and ref/unref stuff in
5516         here, just kind of rationalizing how we handle all that
5517
5518         * tools/dbus-names-model.c: new file for a tree model listing the
5519         services on a bus
5520
5521         * tools/dbus-tree-view.c (model_new): use proper typing on the
5522         model rows
5523
5524 2005-01-30  Havoc Pennington  <hp@redhat.com>
5525
5526         * glib/dbus-gmain.c: add a custom GSource back that just checks
5527         whether the message queue has anything in it; otherwise, there are 
5528         cases where we won't see messages in the queue since there was no 
5529         IO visible to the glib main loop
5530
5531         * dbus/dbus-connection-internal.h (_DBUS_DEFAULT_TIMEOUT_VALUE):
5532         increase default message timeout to 25 seconds
5533
5534 2005-01-30  Havoc Pennington  <hp@redhat.com>
5535
5536         * test/glib/test-profile.c (no_bus_stop_server): remove the
5537         warning about the g_warning that I just fixed
5538
5539         * glib/dbus-gmain.c: rewrite the main loop stuff to avoid the
5540         custom source, seems to be a lot easier to understand and work
5541         better.
5542
5543 2005-01-30  Havoc Pennington  <hp@redhat.com>
5544
5545         I think this main loop thing is conceptually broken, but here are 
5546         some band aids. I'll maybe rewrite it in a minute.
5547         
5548         * glib/dbus-gmain.c (add_timeout): timeout stuff doesn't use the
5549         custom GSource, so don't pass it in; confusing
5550         (gsource_server_finalize, gsource_connection_finalize): add
5551         finalize handlers that remove all the watches.  
5552
5553 2005-01-30  Havoc Pennington  <hp@redhat.com>
5554
5555         * glib/dbus-gobject.c (introspect_properties): fix the XML
5556         generated
5557
5558         * dbus/dbus-message.c (dbus_message_unref): add an in_cache flag
5559         which effectively detects the use of freed messages
5560
5561         * glib/dbus-gobject.c (handle_introspect): modify and return the
5562         reply message instead of the incoming message
5563
5564         * dbus/dbus-object-tree.c (handle_default_introspect_unlocked):
5565         gee, maybe it should SEND THE XML instead of just making a string
5566         and freeing it again ;-)
5567
5568         * tools/dbus-print-message.c (print_message): improve printing of
5569         messages
5570
5571         * configure.in: add debug-glib.service to the output
5572
5573 2005-01-30  Havoc Pennington  <hp@redhat.com>
5574
5575         dbus-viewer introspected and displayed the bus driver
5576         
5577         * dbus/dbus-object-tree.c 
5578         (object_tree_test_iteration): add tests for a handler registered on "/"
5579
5580         * dbus/dbus-object-tree.c
5581         (_dbus_decompose_path): fix to handle path "/" properly
5582         (run_decompose_tests): add tests for path decomposition
5583         
5584         * glib/dbus-gutils.c (_dbus_gutils_split_path): fix to handle "/"
5585         properly
5586
5587         * glib/dbus-gobject.c (handle_introspect): fix quotes
5588
5589         * test/glib/run-test.sh: support launching the bus, then running
5590         dbus-viewer
5591
5592         * test/glib/test-service-glib.c (main): put in a trivial gobject
5593         subclass and register it on the connection
5594
5595         * bus/driver.c (bus_driver_handle_introspect): implement
5596         introspection of the bus driver service
5597
5598         * dbus/dbus-protocol.h: add #defines for the XML namespace,
5599         identifiers, doctype decl
5600
5601         * bus/driver.c (bus_driver_handle_get_service_owner): handle
5602         attempts to get owner of DBUS_SERVICE_ORG_FREEDESKTOP_DBUS by 
5603         returning the service unchanged.
5604         (bus_driver_handle_message): remove old check for reply_serial in
5605         method calls, now the message type deals with that
5606         (bus_driver_handle_message): handle NULL interface
5607
5608         * glib/dbus-gproxy.c (dbus_g_proxy_get_bus_name): new function
5609
5610         * glib/dbus-gloader-expat.c (description_load_from_string): allow
5611         -1 for len
5612
5613         * tools/dbus-viewer.c: add support for introspecting a service on
5614         a bus
5615
5616         * glib/dbus-gproxy.c (dbus_g_pending_call_ref): add
5617         (dbus_g_pending_call_unref): add
5618
5619 2005-01-29  Havoc Pennington  <hp@redhat.com>
5620
5621         * tools/dbus-tree-view.c: add support for displaying properties.
5622         (run dbus-viewer with an introspect xml file as arg, then resize
5623         the window so the tree elements show up, not sure what that is)
5624
5625         * glib/dbus-gobject.c (handle_introspect): return
5626         org.freedesktop.Properties and org.freedesktop.Introspectable
5627         interfaces when we are introspected.
5628
5629         * doc/dbus-specification.xml: allow empty interface name when 
5630         Get/Set a property
5631
5632 2005-01-29  Havoc Pennington  <hp@redhat.com>
5633
5634         * glib/Makefile.am: rename dbus-glib-tool to dbus-binding-tool;
5635         though it uses glib, it could be extended for any binding in
5636         principle
5637
5638         * glib/dbus-gobject.c (gobject_message_function): change to the
5639         new way properties work
5640
5641         * dbus/dbus-protocol.h: add the new interfaces
5642
5643         * doc/dbus-specification.xml: document the introspection format,
5644         Introspectable interface, and add an org.freedesktop.Properties
5645         interface.
5646
5647         * glib/dbus-gparser.c: add support for a <property> element
5648
5649         * glib/dbus-gidl.c: add PropertyInfo
5650
5651         * glib/dbus-gobject.c (handle_introspect): put the outermost
5652         <node> outside the signal and property descriptions.
5653         (introspect_properties): export properties as <property> rather
5654         than as method calls
5655
5656 2005-01-28  Havoc Pennington  <hp@redhat.com>
5657
5658         * doc/TODO, doc/dbus-specification.xml: spec and TODO tweaks
5659         related to authentication protocol
5660
5661 2005-01-28  John (J5) Palmieri  <johnp@redhat.com>
5662
5663         * python/dbus_bindings.pyx.in: Updated to handle new D-BUS type system
5664                 - BUS_ACTIVATION -> BUS_STARTER
5665                 - DBUS_BUS_ACTIVATION -> DBUS_BUS_STARTER
5666                 - class MessageIter (__init__): Added recursion checking 
5667                 so we throw a nice error instead of just disconnecting from the
5668                 bus.
5669                 (get): Added arg_type parameter for recursion.
5670                 Removed the nil type
5671                 Added signiture type placeholder (not implemented)
5672                 Added struct type placeholder (not implemented)
5673                 Added varient type placeholder (not implemented)
5674                 Commented out dict type for now     
5675                 (get_element_type): renamed from get_array_type
5676                 (get_*): changed to use the dbus_message_iter_get_basic API
5677                 (get_*_array): removed in favor of recursive get_array method
5678                 (get_array): new recursive method which calls get to marshal
5679                 the elements of the array
5680                 (value_to_dbus_sig): New method returns the corrasponding
5681                 dbus signiture to a python value
5682                 (append): Comment out dict handling for now
5683                 Handle lists with the new recursive API
5684                 Comment out None handling for now
5685                 (append_nil): removed
5686                 (append_*): changed to use dbus_message_iter_append_basic API
5687                 (append_*_array): removed in favor of recursive append_array 
5688                 method
5689                 (__str__): Make it easier to print out recursive iterators
5690                 for debugging
5691                 - class Message (__str__): moved type inspection to the
5692                 MessageIter class' __str__ method
5693                 (get_iter): Added an append parameter wich defaults to False
5694                 If True use the new API's to create an append iterator
5695
5696         * python/dbus.py: Update to use new bindings API
5697                 - TYPE_ACTIVATION -> TYPE_STARTER
5698                 - class Bus (_get_match_rule): GetServiceOwner -> GetNameOwner
5699                 - class ActivationBus -> class StarterBus
5700                 - class RemoteObject (__call__): get an append iterator
5701                 - (_dispatch_dbus_method_call): get an append iterator
5702                 - class Object (emit_signal): get an append iterator
5703
5704         * python/examples/: Fixed up the examples to work with the new API
5705                 
5706 2005-01-28  Joe Shaw  <joeshaw@novell.com>
5707
5708         * configure.in: Bump version up to 0.30.
5709
5710         * HACKING: Add a release item to bump the version number up after 
5711         a release.
5712
5713 2005-01-28  Havoc Pennington  <hp@redhat.com>
5714
5715         * doc/dbus-specification.xml: update to describe 16-bit types and
5716         dict entries
5717
5718         * dbus/dbus-marshal-basic.c (_dbus_unpack_uint16): fix broken
5719         assertion
5720
5721         * dbus/dbus-protocol.h (DBUS_TYPE_DICT_ENTRY): add DICT_ENTRY as a
5722         type
5723
5724         * dbus/dbus-marshal-recursive.c: implement
5725
5726 2005-01-27  Havoc Pennington  <hp@redhat.com>
5727
5728         * dbus/dbus-arch-deps.h.in: add 16/32-bit types
5729
5730         * configure.in: find the right type for 16 and 32 bit ints as well
5731         as 64
5732
5733         * dbus/dbus-protocol.h (DBUS_TYPE_INT16, DBUS_TYPE_UINT16): add
5734         the 16-bit types so people don't have to stuff them in 32-bit or
5735         byte arrays.
5736
5737 2005-01-27  Havoc Pennington  <hp@redhat.com>
5738
5739         * dbus/dbus-message.c: byteswap the message if you init an
5740         iterator to read/write from it
5741         
5742         * dbus/dbus-marshal-byteswap.c: new file implementing 
5743         _dbus_marshal_byteswap()
5744
5745         * dbus/dbus-marshal-basic.c: add _dbus_swap_array()
5746
5747 2005-01-26  Havoc Pennington  <hp@redhat.com>
5748         
5749         * dbus/dbus-marshal-validate-util.c: break this out (and fix
5750         build, apparently - nobody noticed?)
5751         
5752 2005-01-26  Havoc Pennington  <hp@redhat.com>
5753
5754         * dbus/dbus-marshal-recursive.h: remove todo comment
5755
5756 2005-01-25  Joe Shaw  <joeshaw@novell.com>
5757
5758         * Land the mono binding changes to conform to the new APIs.
5759
5760         * mono/Makefile.am: Remove Custom.cs, DBusType/Custom.cs,
5761         DBusType/Dict.cs, and DBusType/Nil.cs from the build.
5762
5763         * mono/Arguments.cs (GetCodeAsString): Added.  Returns the dbus
5764         type code as a string.
5765         (InitAppending): Rename dbus_message_append_iter_init() to
5766         dbus_message_iter_init_append().
5767
5768         * mono/BusDriver.cs: Rename ServiceEventHandler to
5769         NameOwnerChangedHandler.  Rename GetServiceOwner to GetOwner.
5770         Rename ServiceOwnerChanged to NameOwnerChanged.
5771
5772         * mono/Connection.cs: Rename BaseService to UniqueName, and the
5773         underlying C call.
5774
5775         * mono/Custom.cs: Removed.  The CUSTOM type has been removed.
5776
5777         * mono/Service.cs: Rename Exists to HasOwner, internally rename
5778         dbus_bus_acquire_service() to dbus_bus_request_name().
5779
5780         * mono/DBusType/Array.cs (ctor): Use Type.GetElementType() instead
5781         of Type.UnderlyingSystemType to get the correct element type for
5782         the array.
5783         (ctor): Update code for new APIs: use dbus_message_iter_recurse(),
5784         dbus_message_get_{element|arg}_type() instead of
5785         dbus_message_iter_init_array_iterator().
5786         (Append): Replace dbus_message_iter_append_array() with
5787         dbus_message_iter_open_container() and
5788         dbus_message_iter_close_container().
5789
5790         * mono/DBusType/Custom.cs, mono/DBusType/Nil.cs: Removed.  These
5791         types have been removed.
5792         
5793         * mono/DBusType/*.cs: Replace calls of
5794         dbus_message_iter_get_[type]() to dbus_message_iter_get_basic(),
5795         but specify the type in the DllImport extern declaration.  Ditto
5796         for dbus_message_iter_append_[type]() ->
5797         dbus_message_iter_append_basic().
5798
5799         * mono/example/BusListener.cs: Update for ServiceEventHandler ->
5800         NameOwnerChangedHandler.
5801
5802 2005-01-25  John (J5) Palmieri  <johnp@redhat.com>
5803
5804         * python/dbus_bindings.pyx.in: Rename of methods and bindings
5805                 - get_base_service -> get_unique_name
5806                 - bus_get_base_service -> bus_get_unique_name
5807                 - dbus_bus_get_base_service -> dbus_bus_get_unique_name
5808                 - ACTIVATION_REPLY_ACTIVATED -> DBUS_START_REPLY_SUCCESS 
5809                 - ACTIVATION_REPLY_ALREADY_ACTIVE -> DBUS_START_REPLY_ALREADY_RUNNING
5810                 - bus_activate_service -> bus_start_service_by_name
5811                 - dbus_bus_activate_service -> dbus_bus_start_service_by_name
5812                 - bus_acquire_service -> bus_request_name
5813                 - dbus_bus_acquire_service -> dbus_bus_request_name
5814                 - bus_service_exists -> bus_name_has_owner
5815                 - dbus_bus_service_exists -> dbus_bus_name_has_owner
5816
5817         * python/dbus.py: Rename of methods
5818                 - activate_service -> start_service_by_name
5819                 - bus_acquire_service -> bus_request_name
5820                 - ACTIVATION_REPLY_ACTIVATED -> START_REPLY_SUCCESS 
5821                 - ACTIVATION_REPLY_ALREADY_ACTIVE -> START_REPLY_ALREADY_RUNNING
5822
5823         
5824 2005-01-24  Joe Shaw  <joeshaw@novell.com>
5825
5826         * dbus/dbus-connection.c (dbus_connection_dispatch): Print out the
5827         signature for the method that can't be found.
5828
5829         * dbus/dbus-message.c (dbus_message_iter_init): To check to see if
5830         the message has any arguments, we need to call
5831         _dbus_type_reader_get_current_type(), not
5832         _dbus_type_reader_has_next().
5833
5834 2005-01-24  Havoc Pennington  <hp@redhat.com>
5835
5836         * dbus/dbus-message-factory.c: more testing of message validation
5837
5838         * dbus/dbus-protocol.h (DBUS_MINIMUM_HEADER_SIZE): move to this
5839         header
5840
5841 2005-01-23  Havoc Pennington  <hp@redhat.com>
5842
5843         * dbus/dbus-message-factory.c, dbus/dbus-message-util.c: 
5844         get this all working, not many tests in the framework yet though
5845
5846 2005-01-22  Havoc Pennington  <hp@redhat.com>
5847
5848         * doc/dbus-faq.xml, doc/dbus-tutorial: add a FAQ and update
5849         tutorial, based on work from David Wheeler.
5850
5851 2005-01-21  Havoc Pennington  <hp@redhat.com>
5852
5853         * dbus/dbus-bus.c: add more return_if_fail checks
5854
5855         * dbus/dbus-message.c (load_message): have the "no validation"
5856         mode (have to edit the code to toggle the mode for now though)
5857
5858         * dbus/dbus-marshal-header.c (_dbus_header_load): have a mode that
5859         skips all validation; I want to use this at least for benchmark
5860         baseline, I'm not sure if it should be a publicly-available switch.
5861
5862 2005-01-21  Havoc Pennington  <hp@redhat.com>
5863
5864         * glib/dbus-gmain.c: don't put the GLib bindings in the same
5865         toplevel doxygen group as the low-level API stuff
5866
5867         * dbus/dbus.h: note that libdbus is the low-level API
5868
5869 2005-01-20  Havoc Pennington  <hp@redhat.com>
5870
5871         * update-dbus-docs.sh: script to update docs on the web site, only
5872         works for me though. neener.
5873
5874 2005-01-20  Havoc Pennington  <hp@redhat.com>
5875
5876         * dbus/dbus-sysdeps.c (_dbus_poll): amazingly, trying to compile
5877         code can reveal bugs in it
5878
5879 2005-01-20  Havoc Pennington  <hp@redhat.com>
5880
5881         * dbus/dbus-sysdeps.c (_dbus_poll): fix several bugs in the
5882         select() version, patches from Tor Lillqvist
5883
5884 2005-01-20  Havoc Pennington  <hp@redhat.com>
5885
5886         * doc/dbus-tutorial.xml: replace > with &gt;
5887
5888         * bus/services.c (bus_registry_acquire_service): validate the name
5889         and return a better error if it's no good.
5890
5891         * doc/dbus-specification.xml: note NO_AUTO_START change
5892
5893         * dbus/dbus-protocol.h (DBUS_HEADER_FLAG_NO_AUTO_START): change
5894         from AUTO_START, we're toggling the default
5895
5896         * bus/dispatch.c: adapt the tests to change of auto-start default
5897
5898 2005-01-18  Havoc Pennington  <hp@redhat.com>
5899
5900         * rename dbus-daemon-1 to dbus-daemon throughout
5901
5902 2005-01-18  Havoc Pennington  <hp@redhat.com>
5903
5904         * Throughout, grand renaming to strip out the use of "service",
5905         just say "name" instead (or "bus name" when ambiguous).  Did not
5906         change the internal code of the message bus itself, only the
5907         programmer-facing API and messages.
5908         
5909         * doc/dbus-specification.xml: further update the message bus section
5910         
5911         * bus/config-parser.c (all_are_equiv): fix bug using freed string
5912         in error case
5913
5914 2005-01-17  Havoc Pennington  <hp@redhat.com>
5915
5916         * dbus/dbus-types.h: remove 16-bit types since we don't use them
5917         ever
5918
5919         * dbus/dbus-marshal-validate.c (_dbus_validate_path): disallow any
5920         "invalid name character" not only non-ASCII
5921
5922         * doc/dbus-specification.xml: further update spec, message bus 
5923         parts are still out-of-date but the marshaling etc. stuff is now
5924         accurate-ish
5925
5926 2005-01-17  Havoc Pennington  <hp@redhat.com>
5927
5928         * doc/dbus-specification.xml: partially update spec
5929
5930 2005-01-17  Havoc Pennington  <hp@redhat.com>
5931
5932         * Throughout, align variant bodies according to the contained
5933         type, rather than always to 8. Should save a fair bit of space in
5934         message headers.
5935         
5936         * dbus/dbus-marshal-validate.c (_dbus_validate_body_with_reason):
5937         fix handling of case where p == end
5938
5939         * doc/TODO: remove the dbus_bool_t item and variant alignment items
5940
5941 2005-01-17  Havoc Pennington  <hp@redhat.com>
5942
5943         * dbus/dbus-types.h: hardcode dbus_bool_t to 32 bits
5944
5945         * Throughout: modify DBUS_TYPE_BOOLEAN to be a 32-bit type instead
5946         of an 8-bit type. Now dbus_bool_t is the type to use whenever you 
5947         are marshaling/unmarshaling a boolean.
5948
5949 2005-01-16  Havoc Pennington  <hp@redhat.com>
5950
5951         This is about it on what can be disabled/deleted from libdbus
5952         easily, back below 150K anyhow. Deeper cuts are more work than 
5953         just turning the code off as I've done here.
5954         
5955         * dbus/dbus-marshal-basic.c (_dbus_pack_int32): we don't need the
5956         signed int convenience funcs
5957
5958         * dbus/dbus-internals.c (_dbus_verbose_real): omit when not in
5959         verbose mode
5960
5961         * dbus/dbus-string-util.c, dbus/dbus-string.c: more breaking
5962         things out of libdbus
5963
5964         * dbus/dbus-sysdeps.c, dbus/dbus-sysdeps-util.c: same
5965         
5966         * dbus/dbus-hash.c: purge the TWO_STRINGS crap (well, make it
5967         tests-enabled-only, though it should probably be deleted)
5968
5969         * dbus/dbus-message-util.c: same stuff
5970
5971         * dbus/dbus-auth-util.c: same stuff
5972
5973 2005-01-16  Havoc Pennington  <hp@redhat.com>
5974
5975         * dbus/dbus-userdb-util.c: split out part of dbus-userdb.c
5976
5977         * dbus/dbus-sysdeps.c (_dbus_uid_from_string): move here to pave
5978         way for stripping down dbus-userdb.c stuff included in libdbus.
5979         Rename _dbus_parse_uid for consistency.
5980
5981 2005-01-16  Havoc Pennington  <hp@redhat.com>
5982
5983         * dbus/dbus-internals.c (_dbus_real_assert): print the function
5984         name the assertion failed in
5985
5986         * dbus/dbus-internals.h (_dbus_return_if_fail) 
5987         (_dbus_return_val_if_fail): assert that the name of the function
5988         containing the check doesn't start with '_', since we only want to 
5989         use checks on public functions
5990         
5991         * dbus/dbus-connection.c (_dbus_connection_ref_unlocked): change
5992         checks to assertions
5993
5994         * dbus/dbus-marshal-header.c (_dbus_header_set_field_basic):
5995         change checks to asserts for private function
5996
5997         * dbus/dbus-message.c (_dbus_message_set_serial): checks
5998         to asserts for private function
5999
6000         * dbus/dbus-marshal-recursive.c (skip_one_complete_type): remove
6001         broken assertion that was breaking make check
6002         (_dbus_type_reader_array_is_empty): remove this rather than fix
6003         it, was only used in assertions
6004
6005 2005-01-16  Havoc Pennington  <hp@redhat.com>
6006
6007         * test/unused-code-gc.py: hacky script to find code that's used
6008         only by the bus (not libdbus) or used only by tests or not used at
6009         all. It has some false alarms, but looks like we can clean up a
6010         lot of size from libdbus.
6011
6012         * dbus/dbus-sysdeps.c, dbus/dbus-sysdeps-utils.c,
6013         dbus/Makefile.am: initially move 10K of binary size out of libdbus
6014         
6015 2005-01-16  Havoc Pennington  <hp@redhat.com>
6016
6017         * Add and fix docs according to Doxygen warnings throughout
6018         source.
6019         
6020         * dbus/dbus-marshal-recursive.c
6021         (_dbus_type_reader_array_is_empty): change this to just call
6022         array_reader_get_array_len() and make it static
6023
6024         * dbus/dbus-message.c (dbus_message_iter_get_element_type): rename
6025         from get_array_type
6026         (dbus_message_iter_init_append): rename from append_iter_init
6027
6028         * dbus/dbus-marshal-recursive.c
6029         (_dbus_type_reader_get_element_type): rename from
6030         _dbus_type_reader_get_array_type
6031
6032 2005-01-15  Havoc Pennington  <hp@redhat.com>
6033
6034         * test/glib/test-profile.c (with_bus_server_filter): fix crash
6035
6036         * dbus/dbus-marshal-basic.c (_dbus_unpack_uint32): inline as macro
6037         when DBUS_DISABLE_ASSERT
6038         (_dbus_marshal_set_basic): be sure we align for the string length
6039
6040         * dbus/dbus-marshal-recursive.c (skip_one_complete_type): make
6041         this look faster
6042
6043         * dbus/dbus-string.c (_dbus_string_get_const_data_len): add an
6044         inline macro version
6045         (_dbus_string_set_byte): provide inline macro version
6046
6047 2005-01-15  Havoc Pennington  <hp@redhat.com>
6048
6049         * Land the new message args API and type system.
6050
6051         This patch is huge, but the public API change is not 
6052         really large. The set of D-BUS types has changed somewhat, 
6053         and the arg "getters" are more geared toward language bindings;
6054         they don't make a copy, etc.
6055
6056         There are also some known issues. See these emails for details
6057         on this huge patch:
6058         http://lists.freedesktop.org/archives/dbus/2004-December/001836.html
6059         http://lists.freedesktop.org/archives/dbus/2005-January/001922.html
6060         
6061         * dbus/dbus-marshal-*: all the new stuff
6062
6063         * dbus/dbus-message.c: basically rewritten
6064
6065         * dbus/dbus-memory.c (check_guards): with "guards" enabled, init
6066         freed blocks to be all non-nul bytes so using freed memory is less
6067         likely to work right
6068
6069         * dbus/dbus-internals.c (_dbus_test_oom_handling): add
6070         DBUS_FAIL_MALLOC=N environment variable, so you can do
6071         DBUS_FAIL_MALLOC=0 to skip the out-of-memory checking, or
6072         DBUS_FAIL_MALLOC=10 to make it really, really, really slow and
6073         thorough.
6074
6075         * qt/message.cpp: port to the new message args API
6076         (operator<<): use str.utf8() rather than str.unicode()
6077         (pretty sure this is right from the Qt docs?)
6078
6079         * glib/dbus-gvalue.c: port to the new message args API
6080
6081         * bus/dispatch.c, bus/driver.c: port to the new message args API
6082
6083         * dbus/dbus-string.c (_dbus_string_init_const_len): initialize the
6084         "locked" flag to TRUE and align_offset to 0; I guess we never
6085         looked at these anyhow, but seems cleaner.
6086
6087         * dbus/dbus-string.h (_DBUS_STRING_ALLOCATION_PADDING):
6088         move allocation padding macro to this header; use it to implement
6089         (_DBUS_STRING_STATIC): ability to declare a static string.
6090
6091         * dbus/dbus-message.c (_dbus_message_has_type_interface_member):
6092         change to return TRUE if the interface is not set.
6093
6094         * dbus/dbus-string.[hc]: move the D-BUS specific validation stuff
6095         to dbus-marshal-validate.[hc]
6096
6097         * dbus/dbus-marshal-basic.c (_dbus_type_to_string): move here from
6098         dbus-internals.c
6099
6100         * dbus/Makefile.am: cut over from dbus-marshal.[hc]
6101         to dbus-marshal-*.[hc]
6102
6103         * dbus/dbus-object-tree.c (_dbus_decompose_path): move this
6104         function here from dbus-marshal.c
6105
6106 2005-01-12  Joe Shaw  <joeshaw@novell.com>
6107
6108         * NEWS: Update for 0.23.
6109
6110         * configure.in: Release 0.23.
6111
6112 2005-01-12  Joe Shaw  <joeshaw@novell.com>
6113
6114         * mono/Makefile.am, mono/example/Makefile.am: Always build the 
6115         dbus DLL with --debug.  Clean up after the .mdb files this leaves
6116         behind.
6117
6118         * mono/doc/Makefile.am: Need to uninstall the docs on "make
6119         uninstall"
6120
6121         * mono/Arguments.cs (GetDBusTypeConstructor): If the type
6122         is an enum, get the enum's underlying type.  Another mono
6123         1.1.3 fix.
6124
6125 2005-01-11  Joe Shaw  <joeshaw@novell.com>
6126
6127         Patch from Sjoerd Simons <sjoerd@luon.net>
6128
6129         * mono/Makefile.am, mono/example/Makefile.am: Don't redefine
6130         DESTDIR.  It breaks stuff.
6131
6132 2005-01-11  Joe Shaw  <joeshaw@novell.com>
6133
6134         Patch from Tambet Ingo <tambet@ximian.com>
6135
6136         * mono/DBusType/Array.cs (Get): Get the underlying element type by
6137         calling type.GetElementType().  The code previously depended on
6138         broken Mono behavior, which was fixed in Mono 1.1.3.
6139
6140         * mono/DBusType/Dict.cs (constructor): Fix the parameters for
6141         Activator.CreateInstance() so that the class's constructor is
6142         called with the right parameters.
6143
6144 2005-01-11  Joe Shaw  <joeshaw@novell.com>
6145
6146         Patch from Timo Teräs <ext-timo.teras@nokia.com>
6147
6148         * dbus/dbus-connection.c
6149         (_dbus_connection_queue_received_message_link): Call
6150         _dbus_connection_remove_timeout() instead of the _locked()
6151         variant, since it's always called from
6152         _dbus_connection_handle_watch(), which handles the locking.
6153         Removed the _locked() variant since it's no longer used.
6154
6155 2005-01-03  Havoc Pennington  <hp@redhat.com>
6156
6157         * dbus/dbus-internals.h: I'm an idiot, _dbus_assert certainly can
6158         return
6159         
6160 2004-12-26  Havoc Pennington  <hp@redhat.com>
6161
6162         * dbus/dbus-internals.h: add _DBUS_GNUC_NORETURN to _dbus_assert
6163
6164 2005-01-03  Havoc Pennington  <hp@redhat.com>
6165
6166         * dbus/dbus-sysdeps.c (_dbus_sysdeps_test): fix using == on
6167         floating point
6168
6169         * dbus/dbus-string.c (_dbus_string_insert_alignment): new function
6170
6171 2005-01-02  Havoc Pennington  <hp@redhat.com>
6172
6173         * dbus/dbus-internals.h (_DBUS_ALIGN_OFFSET): new macro
6174
6175 2005-01-01  Havoc Pennington  <hp@redhat.com>
6176
6177         * configure.in: add -Wfloat-equal
6178
6179 2005-01-01  Havoc Pennington  <hp@redhat.com>
6180
6181         * dbus/dbus-sysdeps.h: add _DBUS_DOUBLES_BITWISE_EQUAL macro, 
6182         for a variety of reasons '==' doesn't do this.
6183
6184 2004-12-31  Havoc Pennington  <hp@redhat.com>
6185
6186         * dbus/dbus-string.c (_dbus_string_equal_substrings): new function
6187         I keep wishing I had
6188
6189 2004-12-30  John (J5) Palmieri  <johnp@redhat.com>
6190
6191         * python/dbus.py: s/ACTIVATION_REPLY_ACTIVE/ACTIVATION_REPLY_ACTIVATED
6192
6193 2004-12-30  John (J5) Palmieri  <johnp@redhat.com>
6194
6195         * python/dbus_bindings.pyx.in: Change DBUS_ACTIVATION_REPLY_ACTIVATED
6196         and DBUS_ACTIVATION_REPLY_ALREADY_ACTIVE to match the values in
6197         dbus-protocol.h.  Because they are defines and not enums they are not
6198         autogenerated.
6199
6200 2004-12-26  John (J5) Palmieri  <johnp@redhat.com>
6201
6202         * python/dbus_bindings.pyx.in (bus_activate_service): Bind
6203         dbus_bus_activate_service
6204
6205         * python/dbus.py (Bus.activate_service): activate a service on the
6206         bus.
6207
6208 2004-12-24  Havoc Pennington  <hp@redhat.com>
6209
6210         * test/decode-gcov.c: change to use .gcno and .gcda files, but the
6211         file format has also changed and I haven't adapted to that yet
6212         
6213         * Makefile.am: load .gcno files from latest gcc
6214
6215 2004-12-23  John (J5) Palmieri  <johnp@redhat.com>
6216         * Patch from Rob Taylor <robtaylor@fastmail.fm>
6217
6218         * python/dbus_bindings.pyx.in (bus_get_unix_user): New
6219         lowlevel binding
6220
6221         * python/dbus.py (get_unix_user): Added binding to 
6222         call dbus_bindings.bus_get_unix_user
6223
6224         * python/extract.py: Modified the proto_pat regex to
6225         handle unsigned long
6226
6227 2004-12-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6228
6229         * dbus/make-dbus-glib-error-enum.sh: omit the function keyword for
6230         better POSIX compliance.
6231
6232 2004-12-19  Havoc Pennington  <hp@redhat.com>
6233
6234         * dbus/dbus-string.c (_dbus_string_insert_4_aligned) 
6235         (_dbus_string_insert_8_aligned): new functions
6236
6237         * dbus/dbus-string.c (_dbus_string_alloc_space): new function
6238
6239 2004-12-18  Havoc Pennington  <hp@redhat.com>
6240
6241         * dbus/dbus-string.c (_dbus_string_validate_ascii): use ISASCII
6242         macro
6243
6244         * dbus/dbus-message.c: fix a comment, and add a still-unused
6245         not-implemented function
6246
6247         * dbus/dbus-marshal.h: fix comment
6248
6249         * dbus/dbus-internals.h (_DBUS_ISASCII): new macro
6250
6251 2004-12-17  Joe Shaw  <joeshaw@novell.com>
6252
6253         * mono/DBusType/Byte.cs, mono/DBusType/Int32.cs,
6254         mono/DBusType/Int64.cs, mono/DBusType/UInt32.cs,
6255         mono/DBusType/UInt64.cs: Use Enum.GetUnderlyingType() instead of
6256         Type.UnderlyingSystemType to get the actual system type
6257         underneath.  This code previously depended on the broken Mono
6258         behavior, which was fixed in 1.1.3.
6259
6260 2004-11-27  Havoc Pennington  <hp@redhat.com>
6261
6262         * dbus/dbus-string.h (_dbus_string_get_byte): inline when asserts
6263         are disabled
6264         (_dbus_string_get_const_data): inline when asserts are disabled
6265
6266         * dbus/dbus-message.c: record the _dbus_current_generation of
6267         creation so we can complain if dbus_shutdown() is used improperly.
6268         Do this only if checks are enabled.
6269
6270         * dbus/dbus-connection.c: ditto
6271         
6272 2004-11-26  Havoc Pennington  <hp@redhat.com>
6273
6274         * test/glib/test-profile.c: add with_bus mode to profile echoes
6275         that go through the bus.
6276
6277         * test/glib/run-test.sh: add ability to run test-profile
6278
6279         * bus/dbus-daemon-1.1.in: fix to say that SIGHUP causes partial
6280         config file reload.
6281
6282 2004-11-26  Havoc Pennington  <hp@redhat.com>
6283
6284         * test/glib/test-profile.c: clean up how the fake_malloc_overhead
6285         thing was implemented
6286
6287 2004-11-26  Havoc Pennington  <hp@redhat.com>
6288
6289         * test/glib/test-profile.c: tweak a bit, add support for some
6290         made-up minimal malloc overhead with plain sockets, since in 
6291         real life some sort of buffers are unavoidable thus we could 
6292         count them in the theoretical best case
6293
6294 2004-11-26  Havoc Pennington  <hp@redhat.com>
6295
6296         * dbus/dbus-message.c (dbus_message_cache_or_finalize): fix bug
6297         where I was trying to cache one too many messages
6298
6299 2004-11-26  Havoc Pennington  <hp@redhat.com>
6300
6301         * dbus/dbus-message.c: reimplement message cache as an array which 
6302         makes the cache about twice as fast and saves maybe 1.5% overall
6303
6304 2004-11-26  Havoc Pennington  <hp@redhat.com>
6305
6306         * dbus/dbus-threads.c (init_global_locks): forgot to put the
6307         message cache lock here
6308
6309 2004-11-26  Havoc Pennington  <hp@redhat.com>
6310
6311         * dbus/dbus-message.c (struct DBusMessage): put the locked bit and
6312         the "char byte_order" next to each other to save 4 bytes
6313         (dbus_message_new_empty_header): reduce preallocation, since the
6314         message cache should achieve a similar effect
6315         (dbus_message_cache_or_finalize, dbus_message_get_cached): add a
6316         message cache that keeps a few DBusMessage around in a pool,
6317         another 8% speedup or so.
6318
6319         * dbus/dbus-dataslot.c (_dbus_data_slot_list_clear): new function
6320
6321 2004-11-25  Havoc Pennington  <hp@redhat.com>
6322
6323         * dbus/dbus-transport-unix.c (unix_do_iteration): if we're going
6324         to write, without reading or blocking, try it before the poll()
6325         and skip the poll() if nothing remains to write. This is about a
6326         3% speedup in the echo client/server
6327
6328 2004-11-25  Havoc Pennington  <hp@redhat.com>
6329
6330         The primary change here is to always write() once before adding
6331         the write watch, which gives us about a 10% performance increase.
6332         
6333         * dbus/dbus-transport-unix.c: a number of modifications to cope
6334         with removing messages_pending
6335         (check_write_watch): properly handle
6336         DBUS_AUTH_STATE_WAITING_FOR_MEMORY; adapt to removal of
6337         messages_pending stuff
6338         (check_read_watch): properly handle WAITING_FOR_MEMORY and
6339         AUTHENTICATED cases
6340         (unix_handle_watch): after writing, see if the write watch can be
6341         removed
6342         (unix_do_iteration): assert that write_watch/read_watch are
6343         non-NULL rather than testing that they aren't, since they 
6344         aren't allowed to be NULL. check_write_watch() at the end so 
6345         we add the watch if we did not finish writing (e.g. got EAGAIN)
6346
6347         * dbus/dbus-transport-protected.h: remove messages_pending call,
6348         since it resulted in too much inefficient watch adding/removing; 
6349         instead we now require that the transport user does an iteration 
6350         after queueing outgoing messages, and after trying the first
6351         write() we add a write watch if we got EAGAIN or exceeded our 
6352         max bytes to write per iteration setting
6353
6354         * dbus/dbus-string.c (_dbus_string_validate_signature): add this
6355         function
6356
6357         * dbus/dbus-server-unix.c (unix_finalize): the socket name was
6358         freed and then accessed, valgrind flagged this bug, fix it
6359
6360         * dbus/dbus-message.c: fix several bugs where HEADER_FIELD_LAST was taken
6361         as the last valid field plus 1, where really it is equal to the
6362         last valid field. Corrects some message corruption issues.
6363
6364         * dbus/dbus-mainloop.c: verbosity changes
6365
6366         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): handle OOM
6367         instead of aborting in one of the test codepaths
6368
6369         * dbus/dbus-internals.c (_dbus_verbose_real): fix a bug that
6370         caused not printing the pid ever again if a verbose was missing
6371         the newline at the end
6372         (_dbus_header_field_to_string): add HEADER_FIELD_SIGNATURE
6373
6374         * dbus/dbus-connection.c: verbosity changes; 
6375         (dbus_connection_has_messages_to_send): new function
6376         (_dbus_connection_message_sent): no longer call transport->messages_pending
6377         (_dbus_connection_send_preallocated_unlocked): do one iteration to
6378         try to write() immediately, so we can avoid the write watch. This
6379         is the core purpose of this patchset
6380         (_dbus_connection_get_dispatch_status_unlocked): if disconnected,
6381         dump the outgoing message queue, so nobody will get confused
6382         trying to send them or thinking stuff is pending to be sent
6383
6384         * bus/test.c: verbosity changes
6385
6386         * bus/driver.c: verbosity/assertion changes
6387
6388         * bus/dispatch.c: a bunch of little tweaks to get it working again
6389         because this patchset changes when/where you need to block.
6390
6391 2004-11-23  Havoc Pennington  <hp@redhat.com>
6392
6393         * test/glib/test-profile.c: modify to accept a plain_sockets
6394         argument in which case it will bench plain sockets instead of
6395         libdbus, for comparison purposes.
6396
6397 2004-11-22  Havoc Pennington  <hp@redhat.com>
6398
6399         * test/glib/test-profile.c (N_CLIENT_THREADS): run multiple
6400         threads for more time, so sysprof can get a grip on it.
6401
6402         * dbus/dbus-string.c (_dbus_string_validate_utf8): remove
6403         pointless variable
6404
6405 2004-11-13  Havoc Pennington  <hp@redhat.com>
6406
6407         * test/glib/test-profile.c: fix this thing up a bit
6408
6409         * dbus/dbus-message.c (dbus_message_new_empty_header): increase
6410         preallocation sizes by a fair bit; not sure if this will be an
6411         overall performance win or not, but it does reduce reallocs.
6412
6413         * dbus/dbus-string.c (set_length, reallocate_for_length): ignore
6414         the test hack that forced constant realloc if asserts are
6415         disabled, so we can profile sanely. Sprinkle in some
6416         _DBUS_UNLIKELY() which are probably pointless, but before I
6417         noticed the real performance problem I put them in.
6418         (_dbus_string_validate_utf8): micro-optimize this thing a little
6419         bit, though callgrind says it didn't help; then special-case
6420         ascii, which did help a lot; then be sure we detect nul bytes as
6421         invalid, which is a bugfix.
6422         (align_length_then_lengthen): add some more _DBUS_UNLIKELY
6423         superstition; use memset to nul the padding instead of a manual
6424         loop.
6425         (_dbus_string_get_length): inline this as a
6426         macro; it showed up in the profile because it's used for loop
6427         tests and so forth
6428
6429 2004-11-10  Colin Walters  <walters@verbum.org>
6430
6431         * dbus/dbus-spawn.c (check_babysit_events): Handle EINTR,
6432         for extra paranoia.
6433
6434 2004-11-09  Colin Walters  <walters@verbum.org>
6435
6436         * dbus/dbus-string.c (_dbus_string_get_length): New
6437         function, writes DBusString to C buffer.
6438
6439         * dbus/dbus-string.h: Prototype it.
6440
6441         * dbus/dbus-message.c (dbus_message_type_to_string): New
6442         function, converts message type into C string.
6443
6444         * dbus/dbus-message.h: Prototype it.
6445
6446         * bus/selinux.c (bus_selinux_check): Take source pid,
6447         target pid, and audit data.  Pass audit data to
6448         avc_has_perm.
6449         (log_audit_callback): New function, appends extra
6450         audit information.
6451         (bus_selinux_allows_acquire_service): Also take
6452         service name, add it to audit data.
6453         (bus_selinux_allows_send): Also take message
6454         type, interface, method member, error name,
6455         and destination, and add them to audit data.
6456         (log_cb): Initialize func_audit.
6457         
6458         * bus/selinux.h (bus_selinux_allows_acquire_service)
6459         (bus_selinux_allows_send): Update prototypes 
6460
6461         * bus/services.c (bus_registry_acquire_service): Pass
6462         service name to bus_selinux_allows_acquire_service.
6463
6464         * bus/bus.c (bus_context_check_security_policy): Pass
6465         additional audit data.  Move assignment of dest
6466         to its own line.
6467
6468 2004-11-07  Colin Walters  <walters@verbum.org>
6469
6470         * dbus/dbus-transport-unix.c (do_authentication): Always
6471         initialize auth_completed.
6472         
6473 2004-11-07  Colin Walters  <walters@verbum.org>
6474
6475         * bus/bus.c (load_config): Break into three
6476         separate functions: process_config_first_time_only,
6477         process_config_every_time, and process_config_postinit.
6478         (process_config_every_time): Move call of
6479         bus_registry_set_service_context_table into
6480         process_config_postinit.
6481         (process_config_postinit): New function, does
6482         any processing that needs to happen late
6483         in initialization (and also on reload).
6484         (bus_context_new): Instead of calling load_config,
6485         open config parser here and call process_config_first_time_only
6486         and process_config_every_time directly.  Later, after
6487         we have forked but before changing UID,
6488         invoke bus_selinux_full_init, and then call
6489         process_config_postinit.
6490         (bus_context_reload_config): As in bus_context_new,
6491         load parse file inside here, and call process_config_every_time
6492         and process_config_postinit.
6493
6494         * bus/services.h, bus/services.c
6495         (bus_registry_set_service_context_table): Rename
6496         from bus_registry_set_sid_table.  Take string hash from config
6497         parser, and convert them here into SIDs.
6498
6499         * bus/config-parser.c (struct BusConfigParser): Have
6500         config parser only store a mapping of service->context
6501         string.
6502         (merge_service_context_hash): New function.
6503         (merge_included): Merge context string hashes instead
6504         of using bus_selinux_id_table_union.
6505         (bus_config_parser_new): Don't use bus_selinux_id_table_new;
6506         simply create a new string hash.
6507         (bus_config_parser_unref): Unref it.
6508         (start_selinux_child): Simply insert strings into hash,
6509         don't call bus_selinux_id_table_copy_over.
6510
6511         * bus/selinux.h, bus/selinux.c (bus_selinux_id_table_union)
6512         (bus_selinux_id_table_copy_over): Delete.
6513
6514 2004-11-03  Colin Walters  <walters@verbum.org>
6515
6516         * bus/selinux.c (bus_selinux_pre_init): Kill some unused
6517         variables.
6518         
6519 2004-11-03  Colin Walters  <walters@verbum.org>
6520
6521         * bus/test-main.c (test_pre_hook): Fix test logic,
6522         thanks Joerg Barfurth <Joerg.Barfurth@Sun.COM>.
6523
6524 2004-11-02  Colin Walters  <walters@redhat.com>
6525
6526         * bus/selinux.c (bus_selinux_init): Split into two functions,
6527         bus_selinux_pre_init and bus_selinux_post_init.
6528         (bus_selinux_pre_init): Just determine whether SELinux is
6529         enabled.
6530         (bus_selinux_post_init): Do everything else.
6531
6532         * bus/main.c (main): Call bus_selinux_pre_init before parsing
6533         config file, and bus_selinux_post_init after.  This ensures that
6534         we don't lose the policyreload notification thread that
6535         bus_selinux_init created before forking previously.
6536         
6537         * bus/test-main.c (test_pre_hook): Update for split.
6538
6539 2004-10-31  Owen Fraser-Green  <owen@discobabe.net>
6540
6541         Patch from Johan Fischer <linux@fischaz.com>
6542         
6543         * mono/doc/Makefile.am (install-data-local): Added directory
6544         install for DESTDIR
6545
6546 2004-10-29  Colin Walters  <walters@redhat.com>
6547
6548         * dbus/dbus-sysdeps.h (_dbus_become_daemon): Also take
6549         parameter for fd to write pid to.       
6550
6551         * dbus/dbus-sysdeps.c (_dbus_become_daemon): Implement it.
6552         
6553         * bus/bus.c (bus_context_new): Pass print_pid_fd
6554         to _dbus_become_daemon (bug #1720)
6555
6556 2004-10-29  Colin Walters  <walters@redhat.com>
6557
6558         Patch from Ed Catmur <ed@catmur.co.uk>
6559
6560         * mono/doc/Makefile.am (install-data-local): Handle
6561         DESTDIR.
6562
6563 2004-10-29  Colin Walters  <walters@redhat.com>
6564
6565         * bus/.cvsignore, qt/.cvsignore: Update.
6566
6567 2004-10-29  Colin Walters  <walters@redhat.com>
6568
6569         Patch from Kristof Vansant <de_lupus@pandora.be>
6570
6571         * configure.in: Detect Slackware.
6572         * bus/Makefile.am (SCRIPT_IN_FILES): Add rc.messagebus.in.
6573         * bus/rc.messagebus.in: New file.
6574
6575 2004-10-29  Colin Walters  <walters@redhat.com>
6576
6577         * tools/dbus-monitor.c (filter_func): Return
6578         DBUS_HANDLER_RESULT_HANDLED in filter function
6579         for now.  See:
6580         http://freedesktop.org/pipermail/dbus/2004-August/001433.html
6581
6582 2004-10-29  Colin Walters  <walters@redhat.com>
6583
6584         Patch from Matthew Rickard <mjricka@epoch.ncsc.mil>
6585
6586         * bus/services.c (bus_registry_acquire_service): 
6587         Correctly retrieve service name from DBusString
6588         for printing.
6589
6590 2004-10-29  Colin Walters  <walters@redhat.com>
6591
6592         * dbus/dbus-glib.h: Update documentation to not
6593         refer to internal APIs.
6594
6595 2004-10-27  Joe Shaw  <joeshaw@novell.com>
6596
6597         * mono/Arguments.cs (GetDBusTypeConstructor):
6598         type.UnderlyingSystemType will return "System.Byte" if you do it
6599         on "byte[]", which is not what we want.  So check the type.IsArray
6600         property and use System.Array instead.
6601
6602 2004-10-25  John (J5) Palmieri  <johnp@redhat.com>
6603
6604         * dbus/dbus-sysdeps.c (fill_user_info): On errors do not free
6605         the DBusUserInfo structure since this is passed into the function.
6606         This would cause a double free when the function that allocated
6607         the structure would try to free it when an error occured.
6608
6609         * (bus/session.conf.in, bus/Makefile.am, dbus/configure.in):
6610         use /usr/share/dbus-1/services instead of /usr/lib/dbus-1.0/services
6611         for service activation to avoid 32bit/64bit parallel install issues
6612
6613 2004-10-21  Colin Walters  <walters@verbum.org>
6614
6615         * AUTHORS: Fix my email address, the @gnu.org one
6616         has been bouncing for some time.  Also add J5.
6617         
6618 2004-10-21  Colin Walters  <walters@verbum.org>
6619
6620         * dbus/dbus-transport-unix.c (do_authentication): Return
6621         authentication status to callers.
6622         (unix_handle_watch): If we completed authentication this round,
6623         don't do another read.  Instead wait until the next iteration,
6624         after we've read any pending data in the auth buffer.
6625         (unix_do_iteration): Ditto.
6626         (unix_handle_watch): Updated for new do_authentication prototype.
6627
6628 2004-10-18  Colin Walters  <walters@verbum.org>
6629
6630         * bus/selinux.c (bus_selinux_enabled): Handle
6631         --disable-selinux case.
6632         
6633 2004-10-18  Colin Walters  <walters@verbum.org>
6634
6635         * bus/selinux.h: Add bus_selinux_enabled.
6636         
6637         * bus/selinux.c (bus_selinux_enabled): Implement it.
6638         
6639         * bus/config-parser.c (struct include): Add
6640         if_selinux_enabled member.
6641         (start_busconfig_child): Parse if_selinux_enabled
6642         attribute for include.
6643         (bus_config_parser_content): Handle it.
6644
6645         * bus/session.conf.in, bus/system.conf.in: Add
6646         inclusion of context mapping to default config files;
6647         conditional on SELinux being enabled.
6648         
6649         * doc/busconfig.dtd: Add to if_selinux_enabled to default DTD.
6650         
6651         * test/data/invalid-config-files/badselinux-1.conf, 
6652         test/data/invalid-config-files/badselinux-2.conf:
6653         Test files for bad syntax.
6654         
6655 2004-10-17  Colin Walters  <walters@verbum.org>
6656
6657         * dbus/dbus-memory.c (_dbus_initialize_malloc_debug, check_guards)
6658         (dbus_malloc, dbus_malloc0, dbus_realloc): Fix up printf
6659         format specifier mismatches.
6660
6661 2004-10-07  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6662
6663         * dbus/dbus-sysdeps.c (_dbus_file_get_contents): fix an incorrect
6664         format string.
6665
6666         * glib/dbus-dbus-gmain.c (dbus_g_bus_get): do not mangle NULL
6667         pointer (bug #1540, Leonardo Boiko).
6668
6669 2004-09-28  Jon Trowbridge  <trow@ximian.com>
6670
6671         * mono/BusDriver.cs: Changed BusDriver struct to remove
6672         the ServiceCreated and ServiceDeleted events and replace them
6673         with the new ServiceOwnerChanged event.
6674
6675         * mono/example/BusListener.cs: Added a new example program,
6676         which listens for and reports any ServiceOwnerChanged events
6677         on the bus driver.
6678
6679         * mono/example/Makefile.am (DESTDIR): Build changes for the
6680         new BusListener.cs example.
6681
6682 2004-09-27  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6683
6684         * bus/signals.c (bus_match_rule_parse): validate the components of
6685         match rules (bug #1439).
6686
6687         * dbus/dbus-bus.c (dbus_bus_add_match): add a missing OOM test.
6688
6689 2004-09-24  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6690
6691         * doc/dbus-specification.xml: document ServiceOwnerChanged
6692         signal.
6693         
6694         * bus/driver.c, bus/driver.h, bus/services.c: Use
6695         ServiceOwnerChanged signal instead of ServiceCreated and
6696         ServiceDeleted.
6697         
6698         * bus/dispatch.c: update testcase for the new signal.
6699
6700 2004-09-20  Jon Trowbridge  <trow@ximian.com>
6701
6702         Patch from Nat Friedman <nat@novell.com>
6703
6704         * mono/Makefile.am: A number of small build fixes to allow "make
6705         distcheck" to succeed.
6706
6707         * mono/example/Makefile.am: "make distcheck" fixes.
6708
6709         * mono/AssemblyInfo.cs.in: When signing the assembly, look for the
6710         key in @srcdir@.
6711
6712         * test/Makefile.am: "make distcheck" fixes.
6713
6714 2004-09-17  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6715
6716         * dbus/dbus-sysdeps.c (_dbus_user_at_console): fix memleak in OOM.
6717
6718         * doc/busconfig.dtd: update the DTD for the at_console attribute.
6719
6720         * bus/driver.c (bus_driver_handle_hello): correctly handle Hello
6721         messages after the first one (bug #1389).
6722         
6723         * bus/dispatch.c (check_double_hello_message): add a test case for
6724         the double hello message bug.
6725         (check_existent_service_activation): fix check of spawning error.
6726         
6727 2004-09-16  David Zeuthen  <david@fubar.dk>
6728
6729         * python/dbus_bindings.pyx.in: Add support for int64 and uint64
6730
6731 2004-09-12  David Zeuthen  <david@fubar.dk>
6732
6733         Patch from Kay Sievers <kay.sievers@vrfy.org>
6734
6735         * bus/bus.c (bus_context_new):
6736         * bus/bus.h:
6737         * bus/main.c (usage)
6738         (main):
6739         Add commandline option --nofork to override configuration file
6740         setting.
6741
6742 2004-09-09  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6743
6744         * dbus/dbus-*.h: remove the ; after DBUS_(BEGIN|END)_DECLS. Some C
6745         compilers don't like it (bug #974).
6746
6747 2004-09-04  Harald Fernengel  <harry@kdevelop.org>
6748
6749         * qt/connection.*: Applied patch by Jérôme Lodewyck
6750         <lodewyck@clipper.ens.fr> to integrate an existing
6751         connection into the Qt eventloop
6752
6753 2004-08-30  Jon Trowbridge  <trow@ximian.com>
6754
6755         * mono/BusDriver.cs: Added.  This is a class for interacting with
6756         the org.freedesktop.DBus service.
6757
6758         * mono/Message.cs: Added a mechanism to expose the message that is
6759         currently being dispatched via the static Message.Current
6760         property.  Added Message.Sender and Message.Destination
6761         properties.
6762
6763         * mono/Handler.cs: Expose the dispatched message via
6764         Message.Current when handling method calls.
6765
6766         * mono/Service.cs: Expose the dispatched message via
6767         Message.Current when handling signal emissions.
6768         
6769         * mono/Connection.cs: Bind dbus_bus_get_base_service via the
6770         Connection.BaseService property.
6771
6772 2004-08-28  Havoc Pennington  <hp@redhat.com>
6773
6774         * dbus/dbus-userdb.c (_dbus_is_console_user): remove unused variable
6775
6776         More fixes from Steve Grubb
6777         
6778         * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): fix fd leak
6779         (_dbus_listen_tcp_socket): fix fd leak
6780
6781         * dbus/dbus-spawn.c (read_pid, read_ints): move the "again:" for
6782         EINTR to a bit lower in the code
6783
6784 2004-08-26  Jon Trowbridge  <trow@ximian.com>
6785
6786         * bus/driver.c (bus_driver_handle_service_exists): Respond with
6787         TRUE if we are inquiring about the existence of the built-in
6788         org.freedesktop.DBus service.
6789
6790 2004-08-25  John Palmieri  <johnp@redhat.com>
6791         * bus/config-parser.c:
6792         (struct PolicyType): Add POLICY_CONSOLE
6793         (struct Element.d.policy): s/gid_or_uid/gid_uid_or_at_console
6794         (start_busconfig_child): Sets up console element when
6795         <policy at_console=""> is encountered in a policy file
6796         (append_rule_from_element): Convert console elements to console
6797         rules.
6798
6799         * bus/policy.c: 
6800         (bus_policy_create_client_policy): Add console rules to the client
6801         policy based on if the client is at the console
6802         (bus_policy_append_console_rule): New function for adding a
6803         console rule to a policy
6804         (bus_policy_merge): Handle console rule merging
6805
6806         * dbus/dbus-sysdeps.h: Added the DBUS_CONSOLE_DIR constant
6807         where we check for console user files
6808         
6809         * dbus/dbus-sysdeps.c:
6810         (_dbus_file_exists): New function which checks if the given
6811         file exists
6812         (_dbus_user_at_console): New function which does the system
6813         specific process of checking if the user is at the console
6814
6815         * dbus/dbus-userdb.c:
6816         (_dbus_is_console_user): New function converts a UID to user name
6817         and then calls the system specific _dbus_user_at_console to 
6818         see if the user is at the console and therefor a console user
6819
6820 2004-08-25  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6821
6822         * bus/config-parser.c (set_limit):
6823         * bus/dbus-daemon-1.1.in:
6824         * test/data/valid-config-files/many-rules.conf: set the
6825         max_match_rules_per_connection limt from the config file. 
6826
6827         * doc/busconfig.dtd: update the DTD.
6828
6829         * bus/driver.c: remove some unused variables.
6830
6831 2004-08-24  Mikael Hallendal  <micke@imendio.com>
6832
6833         * dbus/dbus-glib-lowlevel.h: Removed dbus_bus_get_with_g_main since 
6834         it's been replaced by dbus_g_bus_get
6835
6836 2004-08-23  Colin Walters  <walters@redhat.com>
6837
6838         Updated SELinux support from Matthew Rickard <mjricka@epoch.ncsc.mil>
6839
6840         * bus/selinux.h: Prototype bus_selinux_get_policy_root.
6841
6842         * bus/selinux.c: Create a thread for policy reload notification.
6843         (bus_selinux_get_policy_root): Implement.
6844
6845         * bus/config-parser.c (start_busconfig_child)
6846         (bus_config_parser_content): Support SELinux-root relative
6847         inclusion.
6848
6849         * configure.in <HAVE_SELINUX>: Add -lpthread.
6850         
6851         * bus/test-main.c (test_pre_hook, test_post_hook): New.
6852         (test_post_hook): Move memory checking into here.
6853         (test_pre_hook, test_post_hook): Move SELinux checks in
6854         here, but conditional on a DBUS_TEST_SELINUX environment
6855         variable.  Unfortunately we can't run the SELinux checks
6856         as a normal user, since they won't have any permissions
6857         for /selinux.  So this will have to be tested manually
6858         for now, until we have virtualization for most of
6859         libselinux.
6860         
6861 2004-08-23  Havoc Pennington  <hp@redhat.com>
6862
6863         * dbus/dbus-sysdeps.c (_dbus_change_identity): add setgroups() to
6864         drop supplementary groups, suggested by Steve Grubb
6865
6866 2004-08-20  Colin Walters  <walters@redhat.com>
6867
6868         * bus/config-parser.c (start_busconfig_child): Remove some unused
6869         variables.
6870         
6871         * bus/selinux.c (bus_selinux_id_table_insert): Avoid compiler
6872         warning.
6873
6874 2004-08-17  Joe Shaw  <joeshaw@novell.com>
6875
6876         * configure.in: If --enable-mono is passed in, if we can't find
6877         mono error out.
6878
6879         * mono/Makefile.am: Use /gacutil to install assemblies into the
6880         GAC and not /root.
6881
6882 2004-08-12  Havoc Pennington  <hp@redhat.com>
6883
6884         * NEWS: update for 0.22
6885
6886         * configure.in: release 0.22
6887
6888 2004-08-11  Colin Walters  <walters@redhat.com>
6889
6890         * tools/dbus-send.c (main, usage): Add --reply-timeout
6891         argument.
6892
6893 2004-08-10  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6894
6895         * bus/bus.c (process_config_first_time_only): get rid of an unused
6896         DBusError that was causing a memoy leak (bug #989).
6897
6898         * dbus/dbus-keyring.c, dbus/dbus-message.c:
6899         fix compilation on Solaris/Forte C (bug #974)
6900
6901         * bus/main.c (main): plug two minuscule memleaks.
6902
6903 2004-08-10  Havoc Pennington  <hp@redhat.com>
6904
6905         * doc/dbus-tutorial.xml: add some more info on GLib bindings
6906
6907 2004-08-09  Havoc Pennington  <hp@redhat.com>
6908
6909         * COPYING: switch to Academic Free License version 2.1 instead of
6910         2.0, to resolve complaints about patent termination clause.
6911
6912 2004-07-31  John (J5) Palmieri  <johnp@redhat.com>
6913
6914         * README: added documentation for the --enable-python 
6915         configure switch.
6916
6917 2004-07-31  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6918
6919         * bus/config-parser.c (bus_config_parser_new): fix an invalid
6920         _unref in the SELinux support.
6921
6922         * doc/busconfig.dtd: update DTD for SELinux support.
6923
6924         * bus/config-loader-libxml.c: fix error handler and parser
6925         initialisation/cleanup. OOM test now works with libxml2 HEAD.
6926
6927         * configure.in: remove the warning about libxml2.
6928
6929         * dbus/dbus-bus.c: silence doxygen warning.
6930
6931 2004-07-31  Colin Walters  <walters@redhat.com>
6932
6933         * configure.in: Move #error in SELinux check to its own line.
6934
6935 2004-07-31  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6936
6937         * dbus/dbus-internals.h (_DBUS_SET_OOM):
6938         * bus/utils.h (BUS_SET_OOM): use dbus_error_set_const instead of
6939         dbus_error_set.
6940
6941         * bus/dispatch.c (check_send_exit_to_service): fix the test case,
6942         broken by the change in the _SET_OOM macros.
6943
6944 2004-07-31  Colin Walters  <walters@redhat.com>
6945
6946         * bus/selinux.c <HAVE_SELINUX>: Include utils.h to get
6947         BUS_SET_OOM.
6948
6949 2004-07-31  Colin Walters  <walters@redhat.com>
6950
6951         * configure.in: Use AC_TRY_COMPILE instead of AC_EGREP_HEADER
6952         to correctly detect DBUS__ACQUIRE_SVC.  Also add an
6953         AC_MSG_CHECKING.
6954
6955 2004-07-24  Havoc Pennington  <hp@redhat.com>
6956
6957         SELinux support from Matthew Rickard <mjricka@epoch.ncsc.mil>
6958
6959         * bus/selinux.c, bus/selinux.h: new file encapsulating selinux
6960         functionality
6961
6962         * configure.in: add --enable-selinux
6963         
6964         * bus/policy.c (bus_policy_merge): add FIXME to a comment
6965
6966         * bus/main.c (main): initialize and shut down selinux
6967
6968         * bus/connection.c: store SELinux ID on each connection, to avoid 
6969         repeated getting of the string context and converting it into 
6970         an ID
6971
6972         * bus/bus.c (bus_context_get_policy): new accessor, though it
6973         isn't used
6974         (bus_context_check_security_policy): check whether the security
6975         context of sender connection can send to the security context of
6976         recipient connection
6977
6978         * bus/config-parser.c: add parsing for <selinux> and <associate>
6979         
6980         * dbus/dbus-transport.c (_dbus_transport_get_unix_fd): to
6981         implement dbus_connection_get_unix_fd()
6982
6983         * dbus/dbus-connection.c (dbus_connection_get_unix_fd): new
6984         function, used by the selinux stuff
6985         
6986 2004-07-29  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6987
6988         * bus/config-loader-libxml.c: complete the implementation of
6989         libxml backend for config file loader. Doesn't work with full OOM
6990         test yet. 
6991         
6992         * configure.in: change error when selecting libxml into a warning.
6993         
6994         * test/data/invalid-config-files: add two non-well-formed XML
6995         files. 
6996         
6997         * glib/Makefile.am: libdbus_gtool always uses expat, not libxml.
6998         
6999         * dbus/dbus-transport-unix.c (unix_handle_watch): do not
7000         disconnect in case of DBUS_WATCH_HANGUP, several do_reading() may
7001         be necessary to read all the buffer. (bug #894)
7002
7003         * bus/activation.c (bus_activation_activate_service): fix a
7004         potential assertion failure (bug #896). Small optimization in the
7005         case of auto-activation messages.
7006
7007         * dbus/dbus-message.c (verify_test_message, _dbus_message_test):
7008         add test case for byte-through-vararg bug (#901). patch by Kimmo
7009         Hämäläinen. 
7010
7011 2004-07-28  Anders Carlsson  <andersca@gnome.org>
7012
7013         * python/dbus.py:
7014         * python/dbus_bindings.pyx.in:
7015         Add dbus.init_gthreads (), allow emit_signal to pass
7016         arguments to the signal.
7017         
7018 2004-07-24  Havoc Pennington  <hp@redhat.com>
7019
7020         * AUTHORS: add some people, not really comprehensively, let me
7021         know if I missed you
7022
7023 2004-07-24  Havoc Pennington  <hp@redhat.com>
7024
7025         * Makefile.am (DIST_SUBDIRS): add DIST_SUBDIRS, problem solved by
7026         Owen
7027
7028         * test/Makefile.am (DIST_SUBDIRS): here also
7029
7030 2004-07-22  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7031
7032         * dbus/dbus-sysdeps.c (fill_user_info): fix inexistent label name,
7033         breaking build on Solaris, reported by Farhad Saberi on the ML.
7034
7035         * dbus/dbus-message.c (dbus_message_append_args_valist): fix the
7036         va_arg invocation to account for integer promotion in the case of
7037         DBUS_TYPE_BYTE (unsigned char is promoted to int). (bug #901)
7038
7039         * bus/services.c (bus_service_remove_owner): fix bug #902, use
7040         _dbus_list_get_first_link, not _dbus_list_get_first.
7041
7042         * dbus/dbus-bus.c (dbus_bus_service_exists): plug a memory leak.
7043
7044         * dbus/dbus-object-tree.c (free_subtree_recurse): always null
7045         handler functions so that the asserts in _dbus_object_subtree_unref
7046         do not fail.
7047
7048         * dbus/dbus-transport-unix.c (do_reading):
7049         _dbus_transport_queue_messages return value is of type
7050         dbus_bool_t, not DBusDispatchStatus.
7051         
7052 2004-07-19  David Zeuthen  <david@fubar.dk>
7053
7054         * dbus/dbus-protocol.h: Add DBUS_ERROR_UNIX_PROCESS_ID_UNKNOWN
7055
7056         * bus/dispatch.c:
7057         (check_get_connection_unix_user): Debug says GetProperty; but the
7058         method is called GetConnectionUnixUser
7059         (check_get_connection_unix_process_id): New function
7060         (bus_dispatch_test): Actually call check_get_connection_unix_user();
7061         also call check_get_connection_unix_process_id()
7062         
7063         * bus/driver.c:
7064         (bus_driver_handle_get_connection_unix_process_id): New function,
7065         handles GetConnectionUnixProcessID on the org.freedesktop.DBus
7066         interface
7067         
7068         * dbus/dbus-auth.c:
7069         (handle_server_data_external_mech): Set pid from the credentials
7070         obtained from the socket
7071         
7072         * dbus/dbus-connection.c:
7073         (dbus_connection_get_unix_process_id): New function
7074         
7075         * dbus/dbus-connection.h: 
7076         Add prototype for dbus_connection_get_unix_process_id
7077         
7078         * dbus/dbus-transport.c:
7079         (_dbus_transport_get_unix_process_id): New function
7080         
7081         * dbus/dbus-transport.h:
7082         Add prototype for _dbus_transport_get_unix_process_id
7083         
7084 2004-07-19  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7085
7086         * dbus/dbus-message.c: Message counter fix, patch by Christian
7087         Hammond <chipx86@gnupdate.org>
7088
7089 2004-07-18  Seth Nickell  <seth@gnome.org>
7090
7091         * python/dbus.py:
7092         * python/dbus_bindings.pyx.in:
7093         * python/tests/test-client.py:
7094
7095         Add dbus.ByteArray and dbus_bindings.ByteArray
7096         types so that byte streams can be passed back.
7097
7098         Give jdahlin the heaps of credit that are so
7099         rightfully his.
7100         
7101 2004-07-12  Seth Nickell  <seth@gnome.org>
7102
7103         * python/dbus.py:
7104
7105         Add message argument to the default object_method_handler
7106         function.
7107         
7108         * python/dbus_bindings.pyx.in:
7109
7110         Automatically return NIL when passed an empty list
7111         (we can't pass back a list since lists are typed
7112         and we don't have any idea what type the the client
7113         intended the list to be... :-( )
7114         
7115 2004-07-10  Seth Nickell  <seth@gnome.org>
7116
7117         * python/examples/Makefile.am:
7118
7119         Fix distcheck breakage caused by new examples.
7120
7121 2004-07-10  Seth Nickell  <seth@gnome.org>
7122
7123         * python/dbus.py:
7124
7125         Add "message" argument to service-side dbus.Object
7126         methods. This will break existing services written
7127         using the python bindings, but will allow extraction
7128         of all the message information (e.g. who its from).
7129
7130         Add improved "object oriented" signal handling/emission.
7131         
7132         * python/examples/example-service.py:
7133
7134         Nix this example.
7135         
7136         * python/examples/example-signal-emitter.py:
7137         * python/examples/example-signal-recipient.py:
7138
7139         Two new examples that show how to emit and receive
7140         signals using the new APIs.
7141         
7142         * python/examples/example-signals.py:
7143         * python/examples/gconf-proxy-service.py:
7144         * python/examples/gconf-proxy-service2.py:
7145
7146         Add "message" argument to service methods.
7147
7148 2004-06-28  Kay Sievers <kay.sievers@vrfy.org>
7149
7150         * bus/driver.c (bus_driver_handle_get_connection_unix_user)
7151         * dbus/bus.c (dbus_bus_get_unix_user)
7152         * doc/dbus-specification.xml: implement GetConnectionUnixUser
7153         method of org.freedesktop.DBus interface.
7154
7155         * bus/dispatch.c: test case
7156
7157 2004-06-23  John (J5) Palmieri  <johnp@redhat.com>
7158
7159         * python/Makefile.am: switched include directory from glib/ to dbus/
7160         since dbus-glib.h moved
7161  
7162 2004-06-22  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7163
7164         * configure.in: prevent building the gcj stuff and libxml loader
7165         since they are broken.
7166
7167 2004-06-20  Havoc Pennington  <hp@redhat.com>
7168
7169         * dbus/dbus-glib-error-enum.h: autogenerate the GError enum 
7170         codes from the dbus error names
7171         
7172         * glib/dbus-glib.h: move to subdir dbus/ since it's included 
7173         as dbus/dbus-glib.h and that breakage is now visible due to 
7174         including dbus/dbus-glib.h in dbus-glib-lowlevel.h
7175         
7176         * glib/dbus-glib.h: s/gproxy/g_proxy/
7177
7178         * dbus/dbus-shared.h: new header to hold stuff shared with
7179         binding APIs
7180         
7181         * dbus/dbus-protocol.h (DBUS_ERROR_*): move errors here rather
7182         than dbus-errors.h
7183
7184         * glib/dbus-glib.h (dbus_set_g_error): move to
7185         dbus-glib-lowlevel.h
7186
7187         * glib/dbus-glib.h: remove dbus/dbus.h from here; change a bunch
7188         of stuff to enable this
7189
7190         * dbus/dbus-glib-lowlevel.h: put dbus/dbus.h here
7191
7192         * a bunch of other changes with the same basic "separate glib 
7193         bindings from dbus.h" theme
7194         
7195 2004-06-10  Owen Fraser-Green  <owen@discobabe.net>
7196
7197         * dbus-sharp.pc.in: Removed glib-sharp inclusion in Libs.
7198
7199         * python/examples/Makefile.am: Fixed typo in EXTRA_DIST.
7200
7201 2004-06-09  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7202
7203         * bus/driver.c, dbus/dbus-bus.c: use BOOLEAN instead of UINT32 for
7204         the reply value of the ServiceExists message.
7205
7206 2004-06-07  John (J5) Palmieri  <johnp@redhat.com>
7207
7208         * python/dbus_bindings.pyx.in: No longer need to parse path
7209         elements and pass them as arrays of strings.  The C API now
7210         accepts plain path strings.
7211         (_build_parsed_path): removed 
7212
7213 2004-06-07  Havoc Pennington  <hp@redhat.com>
7214
7215         * doc/TODO: remove auto-activation item since it's done; sort
7216         items by importance/milestone
7217
7218 2004-06-07  Havoc Pennington  <hp@redhat.com>
7219
7220         * dbus/dbus-message-builder.c (_dbus_message_data_load): append
7221         random signature when using REQUIRED_FIELDS (this hack won't work
7222         in the long term)
7223
7224         * dbus/dbus-message.c: change the signature to be a header field,
7225         instead of message->signature special-case string. Incremental
7226         step forward. Then we can fix up code to send the signature in the
7227         message, then fix up code to validate said signature, then fix up
7228         code to not put the typecodes inline, etc.
7229         (load_one_message): don't make up the signature after the fact
7230         (decode_header_data): require signature field for the known
7231         message types
7232
7233         * dbus/dbus-marshal.c (_dbus_marshal_string_len): new
7234
7235         * dbus/dbus-protocol.h: add DBUS_HEADER_FIELD_SIGNATURE
7236
7237 2004-06-07  Owen Fraser-Green  <owen@discobabe.net>
7238
7239         * mono/DBusType/ObjectPath.cs: Renamed PathName argument to Path
7240
7241         * mono/Handler.cs: Updated to follow new path argument for
7242         (un-)registering objects.
7243
7244         * mono/example/Makefile.am:
7245         * mono/Makefile.am:
7246         * configure.in: Bumped required version for mono and use new -pkg
7247         syntax for deps
7248
7249 2004-06-05  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7250
7251         * dbus/dbus-connection.h, dbus/dbus-connection.c: have object path
7252         registration functions take the path argument as char* instead of
7253         char**.
7254
7255         * dbus/dbus-marshal.h, dbus/dbus-marshal.c (_dbus_decompose_path):
7256         split off the path decompostion part of
7257         _dbus_demarshal_object_path. Some misc. fixes to silence compiler
7258         warnings. 
7259
7260         * glib/dbus-gobject.c, test/test-service.c: update accordingly.
7261         
7262 2004-06-02  Kristian Høgsberg  <krh@redhat.com>
7263  
7264         * dbus/dbus-auth.c: Rewrite auth protocol handling to use a state
7265         machine approach.  A state is implemented as a function that
7266         handles incoming events as specified for that state.
7267         
7268         * doc/dbus-specification.xml: Update auth protocol state machine
7269         specification to match implementation.  Remove some leftover
7270         base64 examples.
7271
7272 2004-06-02  Kristian Høgsberg  <krh@redhat.com>
7273
7274         * glib/dbus-gproxy.c, glib/dbus-gmain.c, dbus/dbus-string.c,
7275         dbus/dbus-object-tree.c, dbus/dbus-message.c: add comments to
7276         quiet doxygen.
7277
7278         * Doxyfile.in: remove deprecated options.
7279
7280         * dbus/dbus-message-handler.c, dbus/dbus-message-handler.h,
7281         glib/test-thread.h, glib/test-thread-client.c,
7282         glib/test-thread-server.c, glib/test-profile.c,
7283         glib/test-dbus-glib.c: remove these unused files.
7284
7285 2004-06-01  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7286
7287         * dbus/dbus-object-tree.c
7288         (_dbus_object_tree_dispatch_and_unlock): fix dispatch for
7289         non-fallback handlers (bug #684).
7290         (_dbus_object_subtree_new): initialize invoke_as_fallback field.
7291         (find_subtree_recurse): report wether the returned subtree is an
7292         exact match or a "fallback" match higher up in the tree.
7293         (object_tree_test_iteration): update test case.
7294
7295 2004-06-01  Seth Nickell  <seth@gnome.org>
7296
7297         * python/dbus_bindings.pyx.in:
7298         * python/tests/test-client.py:
7299
7300         Round off basic type support. Add dicts (yay!), and 
7301         remaining array types.
7302
7303         Make MessageIter more general so it works for dicts too.
7304
7305         Mark all loop variables as C integers.
7306         
7307 2004-05-31  Havoc Pennington  <hp@redhat.com>
7308
7309         * glib/dbus-gidl.c (method_info_add_arg): keep args sorted with
7310         "in" before "out"
7311
7312         * glib/dbus-gobject.c (dbus_type_to_string): move to dbus-gutils.c
7313
7314         * glib/dbus-glib-tool.c (main): set up to have a --self-test
7315         option that runs the tests, and start filling in some code
7316         including for starters just dumping the interfaces to stdout
7317
7318         * glib/Makefile.am (INCLUDES): define DBUS_LOCALEDIR
7319
7320         * test/data/valid-introspection-files/lots-of-types.xml: test of
7321         an example introspection file
7322
7323         * glib/dbus-gparser.c (parser_check_doctype): doctype should be
7324         "node" (I think...)
7325
7326 2004-05-31  Seth Nickell  <seth@gnome.org>
7327
7328         * python/dbus_bindings.pyx.in:
7329         * python/tests/test-client.py:
7330
7331         Test Suite: 1
7332         Python Bindings: 0
7333
7334         Fix string array memory trashing bug... oops...
7335
7336 2004-05-30  Seth Nickell  <seth@gnome.org>
7337
7338         * python/dbus.py:
7339
7340         Add a nicer-but-less-flexible alternate API for handling 
7341         calls to virtual objects in dbus.ObjectTree.
7342
7343         Screw up the argument order to the dbus.Object constructor
7344         for consistency with dbus.ObjectTree (and to make dbus_methods
7345         optional for future extension)
7346         
7347         * python/examples/Makefile.am:
7348         * python/examples/gconf-proxy-service.py:
7349         * python/examples/gconf-proxy-service2.py:
7350
7351         Alternate implementation of gconf-proxy-service using the
7352         nicer dbus.ObjectTree API.
7353         
7354         * python/examples/example-service.py:
7355         * python/tests/test-server.py
7356
7357         Reverse the argument order to deal with dbus.Object constructor
7358         changes.
7359         
7360 2004-05-30  Seth Nickell  <seth@gnome.org>
7361
7362         * python/examples/example-client.py:
7363         * python/examples/example-service.py:
7364
7365         Take it back. Lists seem to work but they're broken
7366         in the test suite. Make the base examples use
7367         lists (works fine).
7368
7369 2004-05-30  Seth Nickell  <seth@gnome.org>
7370
7371         * python/dbus_bindings.pyx.in:
7372         * python/tests/test-client.py:
7373
7374         Add some more tests and fix errors that crop up.
7375         Unfortunately, currently it seems like marshalling
7376         and unmarshalling of lists is completely broken :-(
7377
7378 2004-05-30  Seth Nickell  <seth@gnome.org>
7379
7380         * python/dbus_bindings.pyx.in:
7381
7382         Add support for ObjectPath type.
7383
7384         * python/dbus.py:
7385
7386         Refactor message handling code to a common function.
7387         
7388         * python/tests/test-client.py:
7389         * python/tests/test-server.py:
7390
7391         Add tests that check to make sure values of all types
7392         can be echoed from a service w/o mangling.
7393         
7394 2004-05-29  Seth Nickell  <seth@gnome.org>
7395
7396         * python/dbus.py:
7397
7398         Add ObjectTree class which allows implementation
7399         of trees of "virtual" objects. Basically the python
7400         wrapper for "register_fallback".
7401         
7402         * python/examples/Makefile.am
7403         * python/examples/gconf-proxy-client.py:
7404         * python/examples/gconf-proxy-service.py:
7405
7406         Implement a simple GConf proxy service that supports
7407         get/set on string and int GConf keys using the ObjectTree.
7408         
7409 2004-05-29  Seth Nickell  <seth@gnome.org>
7410
7411         * python/dbus.py:
7412         * python/examples/example-client.py:
7413         * python/examples/example-service.py:
7414         * python/examples/list-system-services.py:
7415
7416         Add SessionBus, SystemBus and ActivationBus classes
7417         so you don't need to know the special little BUS_TYPE
7418         flag.
7419         
7420 2004-05-29  Havoc Pennington  <hp@redhat.com>
7421
7422         * bus/config-parser.c (process_test_valid_subdir): temporarily
7423         stop testing config parser OOM handling, since expat has issues
7424         http://freedesktop.org/pipermail/dbus/2004-May/001153.html
7425
7426         * bus/dbus-daemon-1.1.in: change requested_reply to
7427         send_requested_reply/receive_requested_reply so we can send the
7428         replies, not just receive them.
7429
7430         * bus/config-parser.c: parse the new
7431         send_requested_reply/receive_requested_reply
7432
7433         * bus/policy.c (bus_client_policy_check_can_send): add
7434         requested_reply argument and use it
7435
7436         * bus/bus.c (bus_context_check_security_policy): pass through
7437         requested_reply status to message send check
7438
7439         * bus/system.conf.in: adapt to requested_reply change
7440         
7441 2004-05-28  Havoc Pennington  <hp@redhat.com>
7442
7443         * test/glib/test-service-glib.c (main): remove unused variable
7444
7445         * glib/dbus-gidl.c (base_info_ref): fix a silly compiler warning
7446
7447         * dbus/dbus-auth.h (enum): remove AUTHENTICATED_WITH_UNUSED_BYTES
7448         from the enum, no longer in use.
7449
7450         * dbus/dbus-sysdeps.h: include config.h so DBUS_VA_COPY actually
7451         works right.
7452
7453         * dbus/dbus-message.c: add various _dbus_return_val_if_fail for
7454         whether error_name passed in is a valid error name.
7455
7456 2004-05-28  John (J5) Palmieri  <johnp@redhat.com>
7457
7458         * dbus/dbus-message.c (dbus_message_get_args): Added support for
7459         OBJECT_PATH and OBJECT_PATH_ARRAY
7460
7461 2004-05-28  Seth Nickell  <seth@gnome.org>
7462
7463         * python/examples/Makefile.am:
7464
7465         Forget to add Makefile.am. Do not pass go.
7466
7467 2004-05-28  Michael Meeks  <michael@ximian.com>
7468
7469         * glib/dbus-gvalue.c (dbus_gvalue_marshal, dbus_gvalue_demarshal): 
7470         fix no int64 case.
7471
7472         * dbus/dbus-string.c (_dbus_string_parse_basic_type): impl.
7473
7474         * dbus/dbus-message.c (_dbus_message_iter_get_basic_type),
7475         (_dbus_message_iter_get_basic_type_array): impl.
7476         drastically simplify ~all relevant _get methods to use these.
7477         (_dbus_message_iter_append_basic_array),
7478         (dbus_message_iter_append_basic): impl
7479         drastically simplify ~all relevant _append methods to use these.
7480
7481         * dbus/dbus-message-builder.c (parse_basic_type) 
7482         (parse_basic_array, lookup_basic_type): impl.
7483         (_dbus_message_data_load): prune scads of duplicate /
7484         cut & paste coding.
7485
7486         * dbus/dbus-marshal.c (_dbus_demarshal_basic_type_array) 
7487         (_dbus_demarshal_basic_type): implement,
7488         (demarshal_and_validate_len/arg): beef up debug.
7489         (_dbus_marshal_basic_type, _dbus_marshal_basic_type_array): impl.
7490
7491 2004-05-27  Seth Nickell  <seth@gnome.org>
7492
7493         * configure.in:
7494         * python/Makefile.am:
7495
7496         Include the example python apps in the tarball.
7497         
7498         * python/examples/list-system-services.py
7499
7500         Add a python new example that fetches the list of services
7501         from the system bus.
7502         
7503 2004-05-27  Seth Nickell  <seth@gnome.org>
7504
7505         * python/dbus.py:
7506         * python/dbus_bindings.pyx.in:
7507
7508         Fix failure to notify that a signal was not handled,
7509         resulted in hung functions.
7510         
7511 2004-05-25  Colin Walters  <walters@redhat.com>
7512
7513         * tools/dbus-monitor.c (main): Monitor all types of messages.
7514
7515 2004-05-23  Owen Fraser-Green  <owen@discobabe.net>
7516
7517         * mono/Handler.cs, mono/Service.cs: Added UnregisterObject method
7518         which unregisters the object path and disposes the handler.
7519
7520 2004-05-23  Kristian Høgsberg  <krh@redhat.com>
7521  
7522         Patch from Timo Teräs <ext-timo.teras@nokia.com> (#614):
7523          
7524         * dbus/dbus-message.c (dbus_message_iter_get_args_valist): Swap
7525         operands to && so we call dbus_message_iter_next () for the last
7526         argument also.
7527
7528 2004-05-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7529
7530         * dbus/dbus-object-tree.c
7531         (_dbus_object_tree_list_registered_unlock, lookup_subtree): return
7532         children even if the requested path isn't registered.
7533         (object_tree_test_iteration): test object_tree_list_registered.
7534
7535         * configure.in: undefine HAVE_ABSTRACT_SOCKETS instead of defining
7536         it to 0.
7537         
7538 2004-05-20  Kristian Høgsberg  <krh@redhat.com>
7539
7540         * doc/TODO: Remove resolved items.
7541
7542         * bus/expirelist.h (struct BusExpireList): remove unused n_items
7543         field.
7544         
7545         * bus/connection.c (bus_connections_expect_reply): Enforce the
7546         per-connection limit on pending replies.
7547         
7548         Patch from Jon Trowbridge <trow@ximian.com>:
7549  
7550         * bus/main.c (setup_reload_pipe): Added.  Creates a pipe and sets
7551         up a watch that triggers a config reload when one end of the pipe
7552         becomes readable.
7553         (signal_handler): Instead of doing the config reload in our SIGHUP
7554         handler, just write to the reload pipe and let the associated
7555         watch handle the reload when control returns to the main loop.
7556  
7557         * bus/driver.c (bus_driver_handle_reload_config): Added.
7558         Implements a ReloadConfig method for requesting a configuration
7559         file reload via the bus driver.
7560  
7561 2004-05-19  Owen Fraser-Green  <owen@discobabe.net>
7562
7563         * HACKING: Updated release instructions concerning the wiki page.
7564
7565 2004-05-18  Kristian Høgsberg  <krh@redhat.com>
7566
7567         * dbus/dbus-auth.c (client_try_next_mechanism): Remove logic to
7568         filter against auth->allowed_mechs; we only add allowed mechs in
7569         record_mechanisms().
7570  
7571         * dbus/dbus-auth-script.c (_dbus_auth_script_run): Add an
7572         ALLOWED_MECHS to auth-script format so we can set the list of
7573         allowed mechanisms.
7574  
7575         * data/auth/client-out-of-mechanisms.auth-script: New test to
7576         check client disconnects when it is out of mechanisms to try.
7577  
7578         * dbus/dbus-auth.c (process_command): Remove check for lines
7579         longer that 1 MB; we only buffer up maximum 16 kB.
7580  
7581         * dbus/dbus-transport.c, dbus/dbus-transport-unix.c,
7582         dbus/dbus-auth-script.c, dbus/dbus-auth.c, dbus/dbus-auth.h:
7583         Remove auth state AUTHENTICATED_WITH_UNUSED_BYTES, instead always
7584         assume there might be unused bytes.
7585  
7586         * dbus/dbus-auth.c (_dbus_auth_do_work): Remove check for
7587         client-out-of-mechs, it is handled in process_reject(). Move check
7588         for max failures to send_rejected(), as it's a server-only thing.
7589
7590         * dbus/dbus-auth.c: Factor out protocol reply code into functions
7591         send_auth(), send_data(), send_rejected(), send_error(),
7592         send_ok(), send_begin() and send_cancel().
7593
7594 2004-05-17  Kristian Høgsberg  <krh@redhat.com>
7595
7596         Remove base64 encoding, replace with hex encoding. Original patch
7597         from trow@ximian.com, added error handling.
7598
7599         * dbus/dbus-string.c (_dbus_string_base64_encode)
7600         (_dbus_string_base64_decode): Remove.
7601         (_dbus_string_hex_decode): Add end_return argument so we can
7602         distinguish between OOM and invalid hex encoding.
7603         (_dbus_string_test): Remove base64 tests and add test case for
7604         invalid hex.
7605
7606         * dbus/dbus-keyring.c, dbus/dbus-auth-script.c, dbus/dbus-auth.c:
7607         Replace base64 with hex.
7608
7609         * test/data/auth/invalid-hex-encoding.auth-script: New test case
7610         for invalid hex encoded data in auth protocol.
7611
7612 2004-05-17  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7613
7614         * dbus/dbus-connection.c (check_for_reply_unlocked): plug a memory
7615         leak.
7616
7617 2004-05-15  Owen Fraser-Green  <owen@discobabe.net>
7618
7619         * mono/dbus-sharp.dll.config.in: Added for GAC
7620         * mono/dbus-sharp.snk: Added for GAC
7621         * mono/Assembly.cs.in: Added for GAC
7622         * mono/Makefile.am: Changes for GAC installation        
7623         * configure.in: Added refs for dbus-sharp.dll.config.in and
7624         Assembly.cs.in. More fixes for mono testing
7625         * mono/example/Makefile.am: Changed var to CSC
7626         * Makefile.am: Changed flag name to DBUS_USE_CSC
7627
7628 2004-05-15  Owen Fraser-Green  <owen@discobabe.net>
7629
7630         * mono/Makefile.am: Added SUBDIRS for docs. Changed SUBDIRS order
7631         * mono/doc/*: Added documentation framework
7632         * configure.in: Added monodoc check
7633         * README: Added description of mono configure flags
7634
7635 2004-05-11  John (J5) Palmieri  <johnp@redhat.com>:
7636
7637         * doc/dbus-specification.xml: Added a "Required" column to the 
7638         header fields table and changed the "zero or more" verbage in
7639         the above paragraph to read "The header must contain the required 
7640         named header fields and zero or more of the optional named header 
7641         fields".
7642         * test/data/invalid-messages/*.message: Added the required PATH 
7643         named header field to the tests so that they don't fail on 
7644         'Missing path field'
7645
7646 2004-05-07  John (J5) Palmieri  <johnp@redhat.com>
7647
7648         * python/dbus-bindings.pyx.in: Stopped the bindings from trashing
7649         the stack by implicitly defining variable and parameter types and
7650         removing the hack of defining C pointers as python objects and later
7651         casting them.
7652
7653 2004-05-02  Owen Fraser-Green  <owen@discobabe.net>
7654
7655         * mono/Makefile.am: Removed test-dbus-sharp.exe from all target
7656
7657 2004-05-01  Owen Fraser-Green  <owen@discobabe.net>
7658
7659         * mono/DBusType/Dict.cs: Handle empty dicts
7660         * mono/DBusType/Array.cs: Handle empty arrays
7661         * mono/Arguments.cs: Handle empty arguments
7662
7663 2004-04-30  Owen Fraser-Green  <owen@discobabe.net>
7664
7665         * dbus-sharp.pc.in: Modified to include include Libs and Requires
7666         field
7667
7668 2004-04-25  Kristian Høgsberg  <krh@redhat.com>
7669
7670         * test/data/valid-messages/standard-*.message: Update message
7671         test scripts to new header field names.
7672
7673 2004-04-22  John (J5) Palmieri  <johnp@redhat.com>
7674
7675         * test/break-loader.c (randomly_do_n_things): tracked down buffer
7676         overflow to times_we_did_each_thing array which would chop off the
7677         first character of the failure_dir string. Increased the size of
7678         the array to 7 to reflect the number of random mutation functions
7679         we have.
7680
7681 2004-04-21  Kristian Høgsberg  <krh@redhat.com>
7682
7683         * dbus/dbus-server-unix.c (unix_finalize): Don't unref
7684         unix_server->watch here, it is unreffed in disconnect.
7685         (_dbus_server_new_for_tcp_socket): convert NULL host to
7686         "localhost" here so we don't append NULL to address.
7687         
7688         * dbus/dbus-server.c (_dbus_server_test): Add test case for
7689         various addresses, including tcp with no explicit host.
7690
7691 2004-04-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7692
7693         * dbus/dbus-message.c (decode_header_data, decode_string_field):
7694         fix incorrect setting of .name_offset in the HeaderField (it was
7695         off by two bytes, positioned right after the name and typecode)
7696
7697         * bus/bus.c (bus_context_new, bus_context_unref): test before
7698         calling dbus_server_free_data_slot and _dbus_user_database_unref
7699         in case of an error.
7700
7701         * tools/Makefile.am: add $(DBUS_GLIB_TOOL_LIBS), xml libs needed
7702         by libdbus-gtool.
7703
7704 2004-04-19  Kristian Høgsberg  <krh@redhat.com>
7705
7706         * dbus/dbus-transport-unix.c (unix_do_iteration): Rewrite to use
7707         _dbus_poll() instead of select().
7708
7709 2004-04-15  Jon Trowbridge  <trow@ximian.com>
7710
7711         * bus/main.c (signal_handler): Reload the configuration files
7712         on SIGHUP.
7713         (main): Set up our SIGHUP handler.
7714
7715         * bus/bus.c (struct BusContext): Store the config file, user and
7716         fork flag in the BusContext.
7717         (process_config_first_time_only): Added.  Contains the code
7718         (previously in bus_context_new) for setting up the BusContext from
7719         the BusConfigParser that should only be run the first time the
7720         config files are read.
7721         (process_config_every_time): Added.  Contains the code (previously
7722         in bus_context_new) for setting up the BusContext from the
7723         BusConfigParser that should be run every time the config files are
7724         read.
7725         (load_config): Added.  Builds a BusConfigParser from the config
7726         files and passes the resulting structure off to
7727         process_config_first_time_only (assuming this is the first time)
7728         and process_config_every_time.
7729         (bus_context_new): All of the config-related code has been moved
7730         to process_config_first_time_only and process_config_every_time.
7731         Now this function just does the non-config-related initializations
7732         and calls load_config.
7733         (bus_context_reload_config): Added.
7734
7735 2004-04-15  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7736
7737         * bus/driver.c (bus_driver_handle_get_service_owner):
7738         implement a GetServiceOwner method.
7739         * doc/dbus-specification.xml: document it.
7740         * dbus/dbus-errors.h: add a 'ServiceHasNoOwner' error.
7741         
7742         * glib/dbus-gproxy.c (dbus_gproxy_new_for_service_owner):
7743         implement, using the bus GetServiceOwner method.
7744
7745         * test/glib/test-dbus-glib.c:
7746         use dbus_gproxy_new_for_service_owner so that we can receive the
7747         signal. 
7748
7749 2004-04-15  John (J5) Palmieri  <johnp@redhat.com>
7750
7751         * dbus/dbus-internals.c, dbus/dbus-message-builder.c,
7752         dbus/dbus-message.c, dbus/dbus-protocol.h
7753         (DBUS_HEADER_FIELD_SERVICE): renamed DBUS_HEADER_FIELD_DESTINATION
7754
7755         * dbus/dbus-internals.c, dbus/dbus-message-builder.c,
7756         dbus/dbus-message.c, dbus/dbus-protocol.h
7757         (DBUS_HEADER_FIELD_SENDER_SERVICE): renamed DBUS_HEADER_FIELD_SENDER
7758
7759         * dbus/dbus-internals.c (_dbus_header_field_to_string):
7760         DBUS_HEADER_FIELD_DESTINATION resolves to "destination"
7761         DBUS_HEADER_FIELD_SENDER resolves to "sender"
7762
7763         * doc/dbus-specification.xml (Header Fields Table):
7764         s/SERVICE/DESTINATION
7765         s/SENDER_SERVICE/SENDER
7766
7767
7768 2004-04-14  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7769
7770         * test/glib/test-dbus-glib.c (timed_exit): fail the test after
7771         a few seconds.
7772
7773 2004-04-13  Michael Meeks  <michael@ximian.com>
7774
7775         * glib/dbus-gobject.c (handle_introspect): split out
7776         (introspect_properties): this.
7777         (handle_introspect): implement this.
7778
7779         * test/glib/Makefile.am: use the absolute path so the bus
7780         daemon's chdir ("/") doesn't kill us dead.
7781
7782         * configure.in: subst ABSOLUTE_TOP_BUILDDIR
7783
7784 2004-04-12  Jon Trowbridge  <trow@ximian.com>
7785
7786         * bus/config-parser.c (struct BusConfigParser): Added
7787         included_files field.
7788         (seen_include): Added.  Checks whether or not a file has already
7789         been included by any parent BusConfigParser.
7790         (bus_config_parser_new): Copy the parent's included_files.
7791         (include_file): Track which files have been included, and fail on
7792         circular inclusions.
7793         (process_test_valid_subdir): Changed printf to report if we are
7794         testing valid or invalid conf files.
7795         (all_are_equiv): Changed printf to be a bit clearer about
7796         what we are actually doing.
7797         (bus_config_parser_test): Test invalid configuration files.
7798
7799 2004-04-09  Jon Trowbridge  <trow@ximian.com>
7800
7801         * bus/config-parser.c (bus_config_parser_new): Added a 'parent'
7802         argument.  If non-null, the newly-constructed BusConfigParser will
7803         be initialized with the parent's BusLimits instead of the default
7804         values.
7805         (include_file): When including a config file, pass in
7806         the current parser as the parent and then copy the BusLimits
7807         from the included BusConfigParser pack to the current parser.
7808         (process_test_valid_subdir): Renamed from process_test_subdir.
7809         (process_test_equiv_subdir): Added.  Walks through a directory,
7810         descending into each subdirectory and loading the config files
7811         it finds there.  If any subdirectory contains two config files
7812         that don't produce identical BusConfigParser structs, fail.
7813         For now, the BusConfigParser's BusPolicies are not compared.
7814         (bus_config_parser_test): Call both process_test_valid_subdir and
7815         process_test_equiv_subdir.
7816
7817         * bus/config-loader-libxml.c (bus_config_load): Take a parent
7818         argument and pass it along to the call to bus_config_parser_new.
7819         Also made a few small changes to allow this code to compile.
7820
7821         * bus/config-loader-expat.c (bus_config_load): Take a parent
7822         argument and pass it along to the call to bus_config_parser_new.
7823
7824         * bus/bus.c (bus_context_new): Load the config file
7825         with a NULL parent argument.
7826
7827 2004-03-29  Michael Meeks  <michael@ximian.com>
7828
7829         * glib/dbus-gobject.c (introspect_properties): split
7830         out, fix mangled 'while' flow control.
7831         (introspect_signals): implement.
7832         (handle_introspect): update.
7833
7834 2004-03-29  Michael Meeks  <michael@ximian.com>
7835
7836         * glib/dbus-gobject.c (set_object_property): split out / 
7837         re-work, use the property type, and not the message type(!)
7838         (get_object_property): ditto.
7839
7840         * glib/dbus-gvalue.c (dbus_gvalue_demarshal),
7841         (dbus_gvalue_marshal): make this code re-usable, needed
7842         for signals too, also on both proxy and server side.
7843         Re-write for more efficiency / readability.
7844
7845 2004-03-29  Michael Meeks  <michael@ximian.com>
7846
7847         * dbus/dbus-message.c
7848         (dbus_message_new_error_printf): impl.
7849
7850         * dbus/dbus-connection.c
7851         (dbus_connection_unregister_object_path): fix warning.
7852
7853         * configure.in: fix no-mono-installed situation.
7854
7855 2004-03-27  Havoc Pennington  <hp@redhat.com>
7856
7857         Patch from Timo Teräs:
7858         
7859         * tools/dbus-send.c (main): if --print-reply, assume type is
7860         method call; support boolean type args
7861         
7862         * dbus/dbus-connection.c (dbus_connection_send_with_reply): fix a
7863         bunch of memleak and logic bugs
7864         
7865 2004-03-23  Owen Fraser-Green  <owen@discobabe.net>
7866
7867         * mono/Arguments.cs:
7868         * mono/Introspector.cs:
7869         * mono/Handler.cs:
7870         * mono/InterfaceProxy.cs:
7871         * mono/Message.cs
7872         * mono/ProxyBuilder.cs:
7873         * mono/Service.cs:
7874         Added InterfaceProxy class to avoid building proxies for every
7875         object.
7876
7877         * dbus-message.h:
7878         * dbus-message.c (dbus_message_append_args_valist)
7879         (dbus_message_iter_get_object_path)
7880         (dbus_message_iter_get_object_path_array)
7881         (dbus_message_iter_append_object_path)
7882         (dbus_message_iter_append_object_path_array):
7883         Added object_path iter functions to handle OBJECT_PATH arguments
7884         
7885 2004-03-23  Owen Fraser-Green  <owen@discobabe.net>
7886
7887         First checkin of mono bindings.
7888         * configure.in:
7889         * Makefile.am:
7890         Build stuff for the bindings
7891         * dbus-sharp.pc.in: Added for pkgconfig
7892         
7893 2004-03-21  Havoc Pennington  <hp@redhat.com>
7894
7895         * test/test-service.c (main): remove debug spew
7896
7897 2004-03-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7898
7899         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): accept empty
7900         arrays
7901
7902         * dbus/dbus-message.h, bus/dbus-message.c (dbus_message_iter_init)
7903         (dbus_message_iter_init_array_iterator)
7904         (dbus_message_iter_init_dict_iterator): return a dbus_bool_t to
7905         indicate whether the iterator is empty
7906
7907         * dbus/dbus-pending-call.c, dbus/dbus-server.c: silence compiler
7908         warnings
7909
7910 2004-03-19  Havoc Pennington  <hp@redhat.com>
7911
7912         * NEWS: 0.21 updates
7913
7914         * configure.in: 0.21
7915
7916         * doc/Makefile.am: add all XMLTO usage to DBUS_XML_DOCS_ENABLED
7917         
7918         * python/Makefile.am: change to avoid dist of dbus_bindings.c so
7919         you don't need pyrex to make dist
7920
7921         * qt/Makefile.am (libdbus_qt_1_la_SOURCES): add integrator.h to
7922         sources; run moc
7923         
7924 2004-03-18  Richard Hult  <richard@imendio.com>
7925
7926         * dbus/dbus-message.c (dbus_message_get_auto_activation) 
7927         (dbus_message_set_auto_activation): Add doxygen docs.
7928
7929 2004-03-16  Richard Hult  <richard@imendio.com>
7930
7931         * bus/activation.c: (bus_activation_service_created),
7932         (bus_activation_send_pending_auto_activation_messages),
7933         (bus_activation_activate_service):
7934         * bus/activation.h:
7935         * bus/dispatch.c: (bus_dispatch),
7936         (check_nonexistent_service_auto_activation),
7937         (check_service_auto_activated),
7938         (check_segfault_service_auto_activation),
7939         (check_existent_service_auto_activation), (bus_dispatch_test):
7940         * bus/driver.c: (bus_driver_handle_activate_service):
7941         * bus/services.c: (bus_registry_acquire_service):
7942         * dbus/dbus-message.c: (dbus_message_set_auto_activation),
7943         (dbus_message_get_auto_activation):
7944         * dbus/dbus-message.h:
7945         * dbus/dbus-protocol.h: Implement auto-activation.
7946         
7947         * doc/dbus-specification.xml: Add auto-activation to the spec.
7948
7949 2004-03-12  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7950
7951         * dbus/dbus-marshal.c (_dbus_marshal_get_arg_end_pos):
7952         fix a bug with CUSTOM types.
7953
7954         * dbus/dbus-message.c (message_iter_test, _dbus_message_test): add
7955         a unit test for this bug (used to fail).
7956
7957 2004-03-12  Mikael Hallendal  <micke@imendio.com>
7958
7959         * bus/activation.c:
7960         (babysitter_watch_callback): notify all pending activations waiting for
7961           the same exec that the activation failed.
7962         (bus_activation_activate_service): shortcut the activation if we 
7963           already waiting for the same executable to start up.
7964
7965 2004-03-12  Mikael Hallendal  <micke@imendio.com>
7966
7967         * bus/activation.c: 
7968         - Added service file reloading. 
7969           Each service files directory is kept in an hash table in 
7970           BusActivation and each BusActivationEntry knows what .service-file it
7971           was read from. So when you try to activate a service the bus will 
7972           check if it's been updated, removed or if new .service-files has 
7973           been installed.
7974         - Test code at the bottom for the service file reloading.
7975         * bus/test-main.c: (main):
7976         * bus/test.h:
7977         - added service reloading test.
7978         * dbus/dbus-sysdeps.c: 
7979         * dbus/dbus-sysdeps.h: (_dbus_delete_directory): Added.
7980
7981 2004-03-08  Michael Meeks  <michael@ximian.com>
7982
7983         * dbus/dbus-connection.c (_dbus_connection_block_for_reply): 
7984         bail immediately if disconnected, to avoid busy loop.
7985
7986         * dbus/dbus-message.c (dbus_message_iter_get_args_valist):
7987         cleanup cut/paste/inefficiency.
7988
7989 2004-03-01  David Zeuthen  <david@fubar.dk>
7990
7991         * dbus/dbus-string.c (_dbus_string_append_printf_valist): Fix a
7992         bug where args were used twice. This bug resulted in a segfault
7993         on a Debian/PPC system when starting the messagebus daemon. Include
7994         dbus-sysdeps.h for DBUS_VA_COPY
7995
7996         * dbus/dbus-sysdeps.h: Define DBUS_VA_COPY if neccessary. From GLib
7997
7998         * configure.in: Check for va_copy; define DBUS_VA_COPY to the
7999         appropriate va_copy implementation. From GLib
8000         
8001 2004-02-24  Joe Shaw  <joe@ximian.com>
8002
8003         * bus/services.c (bus_registry_acquire_service): We need to pass
8004         in the service name to dbus_set_error() to prevent a crash.
8005
8006 2003-12-26  Anders Carlsson  <andersca@gnome.org>
8007
8008         * AUTHORS: Reveal my True identity.
8009
8010 2003-12-17  Mikael Hallendal  <micke@imendio.com>
8011
8012         * dbus/dbus-message.c: (dbus_message_append_args_valist): 
8013         - Added case for DBUS_TYPE_BYTE, patch from Johan Hedberg.
8014
8015 2003-12-13  Mikael Hallendal  <micke@imendio.com>
8016
8017         * doc/TODO: Added not about better error check of configuration files.
8018
8019 2003-12-02  Richard Hult  <richard@imendio.com>
8020
8021         * Update AFL version to 2.0 throughout the source files to reflect
8022         the update that was done a while ago.
8023
8024 2003-12-02  Richard Hult  <richard@imendio.com>
8025
8026         * dbus/dbus-message.c (dbus_message_iter_append_dict): Set
8027         wrote_dict_key to FALSE on the iter that the dict is appended to,
8028         just like when appending other types. Fixes a bug where a dict
8029         couldn't be put inside a dict.
8030         (dbus_message_iter_append_dict_key): Fix typo in warning message.
8031         (message_iter_test, _dbus_message_test): Add test case for dict
8032         inside dict.
8033
8034 2003-12-01  David Zeuthen  <david@fubar.dk>
8035
8036         * python/dbus.py: Add the actual message when calling the reciever
8037         of a signal such that parameters can be inspected. Add the method
8038         remove_signal_receiver
8039         
8040 2003-11-26  Mikael Hallendal  <micke@imendio.com>
8041
8042         * bus/*.[ch]:
8043         * dbus/*.[ch]:
8044         * glib/*.[ch]: Made ref functions return the pointer
8045
8046 2003-11-25  Zack Rusin  <zack@kde.org>
8047
8048         * qt/integrator.h, qt/integrator.cpp: Adding handling of DBusServer,
8049
8050         * qt/server.h, qt/server.cpp, qt/Makefile.am: Adding DBusServer 
8051         wrappers,
8052
8053         * qt/connection.h, qt/connection.cpp: Adjusting to changes in 
8054         the Integrator and to better fit with the server,
8055
8056 2003-11-24  Zack Rusin  <zack@kde.org>
8057
8058         * qt/connection.h, qt/connection.cpp: removing initDbus method since
8059         the integrator handles it now
8060
8061         * qt/integrator.h, qt/integrator.cpp: reworking handling of timeouts,
8062         since QTimer wasn't really meant to be used the way DBusTimeout is
8063
8064 2003-11-24  Zack Rusin  <zack@kde.org>
8065
8066         * qt/integrator.h, qt/integrator.cpp, Makefile.am: Adding 
8067         Integrator class which integrates D-BUS with the Qt event loop,
8068
8069         * qt/connection.h, qt/connection.cpp: Move all the code which
8070         was dealing with D-BUS integration to the Integrator class,
8071         and start using Integrator,
8072
8073 2003-11-23  Zack Rusin  <zack@kde.org>
8074
8075         * qt/connection.h, qt/connection.cpp: Adding the DBusConnection 
8076         wrapper
8077
8078         * qt/message.h, qt/message.cpp: updating to the current D-BUS api,
8079         switching namespaces to DBusQt, reworking the class,
8080
8081         * Makefile.cvs: switching dependencies so that it matches KDE 
8082         schematics,
8083         
8084         * qt/Makefile.am: adding connection.{h,cpp} and message.{h,cpp} to 
8085         the library
8086
8087 2003-11-19  Havoc Pennington  <hp@redhat.com>
8088
8089         * NEWS: update
8090
8091         * configure.in: bump version to 0.20
8092
8093         * configure.in (have_qt): add yet another place to look for qt
8094         (someone hand trolltech a .pc file...)
8095
8096 2003-11-01  Havoc Pennington  <hp@redhat.com>
8097
8098         * doc/dbus-specification.xml: add state machine docs on the auth
8099         protocol; just a first draft, I'm sure it's wrong.      
8100
8101 2003-10-28  David Zeuthen  <david@fubar.dk>
8102
8103         * python/dbus_bindings.pyx.in: add get_dict to handle dictionaries
8104         return types. Fixup TYPE_* to reflect changes in dbus/dbus-protocol.h
8105         
8106 2003-10-28  Havoc Pennington  <hp@redhat.com>
8107
8108         * dbus/dbus-message.c (get_next_field): delete unused function
8109
8110 2003-10-28  Havoc Pennington  <hp@redhat.com>
8111
8112         * bus/expirelist.c (do_expiration_with_current_time): detect
8113         failure of the expire_func due to OOM
8114
8115         * bus/connection.c (bus_pending_reply_expired): return FALSE on OOM
8116
8117         * bus/dispatch.c (check_send_exit_to_service): fix to handle the
8118         NoReply error that's now created by the bus when the service exits
8119
8120 2003-10-28  Havoc Pennington  <hp@redhat.com>
8121
8122         * dbus/dbus-message.c (_dbus_message_test): enable and fix the
8123         tests for set_path, set_interface, set_member, etc.
8124
8125         * dbus/dbus-string.c (_dbus_string_insert_bytes): allow 0 bytes
8126
8127         * dbus/dbus-message.c (set_string_field): always just delete and
8128         re-append the field; accept NULL for deletion
8129         (re_align_fields_recurse): reimplement
8130         
8131 2003-10-26  Havoc Pennington  <hp@redhat.com>
8132
8133         * dbus/dbus-connection.c: fix docs to properly describe the
8134         disconnected message
8135         (_dbus_connection_notify_disconnected): remove this function; 
8136         we can't synchronously add the disconnected message, we have to 
8137         do it after we've queued any remaining real messages
8138         (_dbus_connection_get_dispatch_status_unlocked): queue the
8139         disconnect message only if the transport has finished queueing all
8140         its real messages and is disconnected.
8141         (dbus_connection_disconnect): update the dispatch status here
8142
8143 2003-10-22  Havoc Pennington  <hp@redhat.com>
8144
8145         * bus/bus.c (bus_context_check_security_policy): fix up assertion
8146
8147         * bus/connection.c (bus_transaction_send_from_driver): set the
8148         destination to the connection's base service
8149
8150 2003-10-20  Havoc Pennington  <hp@redhat.com>
8151
8152         hmm, make check is currently not passing.
8153         
8154         * doc/dbus-specification.xml: add requirement that custom type
8155         names follow the same rules as interface names.
8156
8157         * dbus/dbus-protocol.h: change some of the byte codes, to avoid
8158         duplication and allow 'c' to be 'custom'; dict is now 'm' for
8159         'map'
8160
8161         * doc/dbus-specification.xml: update type codes to match
8162         dbus-protocol.h, using the ASCII byte values. Rename type NAMED to
8163         CUSTOM. Add type OBJECT_PATH to the spec.
8164
8165 2003-10-17  Havoc Pennington  <hp@redhat.com>
8166
8167         * bus/driver.c (create_unique_client_name): use "." as separator
8168         in base service names instead of '-'
8169
8170         * dbus/dbus-string.c (_dbus_string_get_byte): allow getting nul
8171         byte at the end of the string
8172
8173         * dbus/dbus-internals.h (_DBUS_LIKELY, _DBUS_UNLIKELY): add
8174         optimization macros since string validation seems to be a slow
8175         point.
8176         
8177         * doc/dbus-specification.xml: restrict valid
8178         service/interface/member/error names. Add test suite code for the
8179         name validation.
8180
8181         * dbus/dbus-string.c: limit service/interface/member/error names 
8182         to [0-9][A-Z][a-z]_
8183
8184         * dbus/dbus-connection.c (dbus_connection_dispatch): add missing
8185         format arg to verbose spew
8186
8187         * glib/dbus-gproxy.c (dbus_gproxy_call_no_reply): if not out of
8188         memory, return instead of g_error
8189
8190         * test/test-service.c (path_message_func): support emitting a
8191         signal on request
8192
8193         * dbus/dbus-bus.c (init_connections_unlocked): only fill in
8194         activation bus type if DBUS_BUS_ACTIVATION was set; default to
8195         assuming the activation bus was the session bus so that services
8196         started manually will still register.
8197         (init_connections_unlocked): fix so that in OOM situation we get
8198         the same semantics when retrying the function
8199         
8200         * test/test-service.c (main): change to use path registration, to
8201         test those codepaths; register with DBUS_BUS_ACTIVATION rather
8202         than DBUS_BUS_SESSION
8203
8204 2003-10-16  Havoc Pennington  <hp@redhat.com>
8205
8206         * glib/dbus-gtest-main.c: bracket with #ifdef DBUS_BUILD_TESTS
8207
8208         * Makefile.am (GCOV_DIRS): remove "test", we don't care about test
8209         coverage of the tests
8210         (coverage-report.txt): don't move the .da and .bbg files around
8211
8212 2003-10-16  Havoc Pennington  <hp@redhat.com>
8213
8214         * bus/bus.c (struct BusContext): remove struct field I didn't mean
8215         to put there
8216
8217 2003-10-16  Havoc Pennington  <hp@redhat.com>
8218
8219         * bus/connection.c (bus_pending_reply_expired): either cancel or
8220         execute, not both
8221         (bus_connections_check_reply): use unlink, not remove_link, as we
8222         don't want to free the link; fixes double free mess
8223
8224         * dbus/dbus-pending-call.c (dbus_pending_call_block): fix in case
8225         where no reply was received
8226
8227         * dbus/dbus-connection.c (_dbus_pending_call_complete_and_unlock):
8228         fix a refcount leak
8229
8230         * bus/signals.c (match_rule_matches): add special cases for the
8231         bus driver, so you can match on sender/destination for it.
8232
8233         * dbus/dbus-sysdeps.c (_dbus_abort): print backtrace if
8234         DBUS_PRINT_BACKTRACE is set
8235
8236         * dbus/dbus-internals.c: add pid to assertion failure messages
8237
8238         * dbus/dbus-connection.c: add message type code to the debug spew
8239
8240         * glib/dbus-gproxy.c (gproxy_get_match_rule): match rules want
8241         sender=foo not service=foo
8242
8243         * dbus/dbus-bus.c (dbus_bus_get): if the activation bus is the
8244         session bus but DBUS_SESSION_BUS_ADDRESS isn't set, use 
8245         DBUS_ACTIVATION_ADDRESS instead
8246
8247         * bus/activation.c: set DBUS_SESSION_BUS_ADDRESS,
8248         DBUS_SYSTEM_BUS_ADDRESS if appropriate
8249
8250         * bus/bus.c (bus_context_new): handle OOM copying bus type into
8251         context struct
8252
8253         * dbus/dbus-message.c (dbus_message_iter_get_object_path): new function
8254         (dbus_message_iter_get_object_path_array): new function (half
8255         finished, disabled for the moment)
8256         
8257         * glib/dbus-gproxy.c (dbus_gproxy_end_call): properly handle
8258         DBUS_MESSAGE_TYPE_ERROR
8259
8260         * tools/dbus-launch.c (babysit): support DBUS_DEBUG_OUTPUT to
8261         avoid redirecting stderr to /dev/null
8262         (babysit): close stdin if not doing the "exit_with_session" thing
8263
8264         * dbus/dbus-sysdeps.c (_dbus_become_daemon): delete some leftover
8265         debug code; change DBUS_DEBUG_OUTPUT to only enable stderr, not
8266         stdout/stdin, so things don't get confused
8267         
8268         * bus/system.conf.in: fix to allow replies, I modified .conf
8269         instead of .conf.in again.
8270
8271 2003-10-14  David Zeuthen  <david@fubar.dk>
8272
8273         * python/dbus_bindings.pyx.in (MessageIter.get): fixed typo in
8274         argtype to arg_type when raising unknown arg type exception.
8275         Changed type list to reflect the changes in dbus-protocol.h so 
8276         the bindings actually work.
8277
8278 2003-10-14  Havoc Pennington  <hp@redhat.com>
8279
8280         * test/decode-gcov.c: support gcc 3.3 also, though gcc 3.3 seems
8281         to have a bug keeping it from outputting the .da files sometimes
8282         (string_get_string): don't append garbage nul bytes to the string.
8283
8284 2003-10-15  Seth Nickell  <seth@gnome.org>
8285
8286         * python/Makefile.am:
8287
8288         Include dbus_h_wrapper.h in the dist tarball.
8289
8290 2003-10-14  Havoc Pennington  <hp@redhat.com>
8291
8292         * bus/bus.c (bus_context_check_security_policy): revamp this to
8293         work more sanely with new policy-based requested reply setup
8294
8295         * bus/connection.c (bus_transaction_send_from_driver): set bus
8296         driver messages as no reply
8297
8298         * bus/policy.c (bus_client_policy_check_can_receive): handle a
8299         requested_reply attribute on allow/deny rules
8300
8301         * bus/system.conf: add <allow requested_reply="true"/>
8302
8303         * bus/driver.c (bus_driver_handle_message): fix check for replies
8304         sent to the bus driver, which was backward. How did this ever work
8305         at all though? I think I'm missing something.
8306
8307         * dbus/dbus-message.c (decode_header_data): require error and
8308         method return messages to have a reply serial field to be valid
8309         (_dbus_message_loader_queue_messages): break up this function;
8310         validate that reply serial and plain serial are nonzero; 
8311         clean up the OOM/error handling.
8312         (get_uint_field): don't return -1 from this
8313         (dbus_message_create_header): fix signed/unsigned bug
8314
8315         * bus/connection.c (bus_connections_expect_reply): save serial of
8316         the incoming message, not reply serial
8317
8318 2003-10-14  Havoc Pennington  <hp@redhat.com>
8319
8320         * bus/connection.c: implement pending reply tracking using
8321         BusExpireList
8322
8323         * bus/bus.c (bus_context_check_security_policy): verify that a
8324         reply is pending in order to allow a reply to be sent. Deny 
8325         messages of unknown type.
8326
8327         * bus/dbus-daemon-1.1.in: update to mention new resource limits
8328
8329         * bus/bus.c (bus_context_get_max_replies_per_connection): new
8330         (bus_context_get_reply_timeout): new
8331
8332 2003-10-13  Seth Nickell  <seth@gnome.org>
8333
8334         * python/Makefile.am:
8335
8336         Pass "make distcheck": remove a couple files from DIST_FILES
8337         that weren't included in the final version.
8338
8339 2003-10-12  Havoc Pennington  <hp@pobox.com>
8340
8341         Added test code that 1) starts an actual bus daemon and 2) uses
8342         DBusGProxy; fixed bugs that were revealed by the test. Lots 
8343         more testing possible, but this is the basic framework.
8344         
8345         * glib/dbus-gproxy.c (dbus_gproxy_manager_unregister): remove
8346         empty proxy lists from the proxy list hash
8347
8348         * dbus/dbus-message.c (dbus_message_iter_get_args_valist): add a
8349         couple of return_if_fail checks
8350
8351         * dbus/dbus-pending-call.c (_dbus_pending_call_new): use dbus_new0
8352         to allocate, so everything is cleared to NULL as it should be.
8353
8354         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): pass
8355         source as data to dbus_connection_set_timeout_functions() as the 
8356         timeout functions expected
8357
8358         * test/glib/run-test.sh: add a little script to start up a message
8359         bus and run tests using it
8360
8361         * tools/dbus-launch.1: updates
8362
8363         * tools/dbus-launch.c (main): add --config-file option
8364
8365         * tools/dbus-launch.c (main): remove confusing else if (runprog)
8366         that could never be reached.
8367
8368         * dbus/dbus-message.c (dbus_message_new_method_return) 
8369         (dbus_message_new_error, dbus_message_new_signal): set the
8370         no-reply-expected flag on all these. Redundant, but may
8371         as well be consistent.
8372
8373 2003-10-11  Havoc Pennington  <hp@pobox.com>
8374
8375         * test/decode-gcov.c (function_solve_graph): make broken block
8376         graph a nonfatal error since it seems to be broken. Need to debug
8377         this.
8378
8379         * dbus/dbus-marshal.c (_dbus_type_is_valid): new function since we
8380         can't just check type > INVALID < LAST anymore
8381
8382         * dbus/dbus-message.c (dbus_message_get_signature): new function
8383         (dbus_message_has_signature): new function
8384         (struct DBusMessage): add signature field (right now it isn't sent
8385         over the wire, just generated on the fly)
8386         (dbus_message_copy): copy the signature, and init strings to
8387         proper length to avoid some reallocs
8388         (dbus_message_iter_init_array_iterator): return void, since it
8389         can't fail
8390         (dbus_message_iter_init_dict_iterator): return void since it can't fail
8391         (_dbus_message_loader_queue_messages): add silly temporary hack to
8392         fill in message->signature on load
8393
8394         * dbus/dbus-protocol.h: change DBUS_TYPE_* values to be ASCII
8395         characters, so they are relatively human-readable.
8396
8397 2003-10-11  Havoc Pennington  <hp@pobox.com>
8398
8399         * dbus/dbus-message.c (_dbus_message_test): add more test
8400         coverage, but #if 0 for now since they uncover a bug 
8401         not fixed yet; I think in re_align_field_recurse()
8402         (re_align_field_recurse): add FIXME about broken assertion
8403
8404         * dbus/dbus-sysdeps.c (_dbus_sysdeps_test): add more test coverage
8405
8406         * bus/connection.c: share a couple code bits with expirelist.c
8407
8408         * bus/expirelist.h, bus/expirelist.c: implement a generic
8409         expire-items-after-N-seconds facility, was going to share between
8410         expiring connections and replies, decided not to use for expiring
8411         connections for now.
8412
8413         * COPYING: include AFL 2.0 (still need to change all the file headers)
8414
8415 2003-10-09  Havoc Pennington  <hp@redhat.com>
8416
8417         * configure.in: define DBUS_HAVE_GCC33_GCOV if we have
8418         gcc 3.3. Not that we do anything about it yet.
8419
8420         * bus/signals.c (bus_match_rule_parse): impose max length on the
8421         match rule text
8422
8423         * dbus/dbus-protocol.h: add DBUS_MAXIMUM_MATCH_RULE_LENGTH
8424
8425 2003-10-09  Havoc Pennington  <hp@redhat.com>
8426
8427         Make matching rules theoretically work (add parser).
8428         
8429         * bus/bus.c (bus_context_check_security_policy): fix up to handle
8430         the case where destination is explicitly specified as bus driver
8431         and someone else is eavesdropping.
8432         
8433         * bus/policy.c (bus_client_policy_check_can_receive): fix up
8434         definition of eavesdropping and assertion
8435
8436         * tools/dbus-send.c (main): use dbus_message_type_from_string
8437
8438         * bus/signals.c (bus_match_rule_parse): implement
8439
8440         * dbus/dbus-message.c (dbus_message_type_from_string): new
8441
8442         * dbus/dbus-errors.h (DBUS_ERROR_MATCH_RULE_INVALID): add
8443
8444 2003-10-02  Havoc Pennington  <hp@pobox.com>
8445
8446         * glib/dbus-gproxy.c (dbus_gproxy_call_no_reply): rename from
8447         dbus_gproxy_oneway_call
8448
8449         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main) 
8450         (dbus_server_setup_with_g_main): fix to allow calling them more
8451         than once on the same args
8452         (dbus_bus_get_with_g_main): new function
8453
8454 2003-10-02  Havoc Pennington  <hp@redhat.com>
8455
8456         * doc/dbus-tutorial.xml: write some stuff
8457
8458 2003-09-29  Havoc Pennington  <hp@pobox.com>
8459
8460         * configure.in: split checks for Doxygen from XML docs, check for
8461         xmlto
8462
8463         * doc/Makefile.am: XML-ify all the docs, and add a blank
8464         dbus-tutorial.xml
8465
8466 2003-09-29  Havoc Pennington  <hp@pobox.com>
8467
8468         * Merge dbus-object-names branch. To see the entire patch 
8469         do cvs diff -r DBUS_OBJECT_NAMES_BRANCHPOINT -r dbus-object-names,
8470         it's huuuuge though.
8471         To revert, I tagged DBUS_BEFORE_OBJECT_NAMES_MERGE.
8472         
8473 2003-09-28  Havoc Pennington  <hp@pobox.com>
8474
8475         * HACKING: update to reflect new server
8476
8477 2003-09-26  Seth Nickell  <seth@gnome.org>
8478
8479         * python/dbus.py:
8480         * python/examples/example-signals.py:
8481
8482         Start implementing some notions of signals. The API
8483         is really terrible, but they sort of work (with the
8484         exception of being able to filter by service, and to
8485         transmit signals *as* a particular service). Need to
8486         figure out how to make messages come from the service
8487         we registered :-(
8488         
8489         * python/dbus_bindings.pyx.in:
8490
8491         Removed duplicate message_handler callbacks.
8492         
8493 2003-09-25  Havoc Pennington  <hp@redhat.com>
8494
8495         * bus/session.conf.in: fix my mess
8496
8497 2003-09-25  Havoc Pennington  <hp@pobox.com>
8498
8499         * bus/session.conf.in: fix security policy, reported by Seth Nickell
8500
8501 2003-09-25  Seth Nickell  <seth@gnome.org>
8502
8503         * python/examples/example-service.py:
8504
8505         Johan notices complete wrong code in example-service, but
8506         completely wrong in a way that works exactly the same (!).
8507         Johan is confused, how could this possibly work? Example
8508         code fails to serve purpose of making things clear.
8509         Seth fixes.
8510
8511 2003-09-25  Mark McLoughlin  <mark@skynet.ie>
8512
8513         * doc/dbus-specification.sgml: don't require header fields
8514         to be 4-byte aligned and specify that fields should be
8515         distinguished from padding by the fact that zero is not
8516         a valid field name.
8517         
8518         * doc/TODO: remove re-alignment item and add item to doc
8519         the OBJECT_PATH type.
8520         
8521         * dbus/dbus-message.c:
8522         (HeaderField): rename the original member to value_offset
8523         and introduce a name_offset member to keep track of where
8524         the field actually begins.
8525         (adjust_field_offsets): remove.
8526         (append_int_field), (append_uint_field),
8527         (append_string_field): don't align the start of the header
8528         field to a 4-byte boundary.
8529         (get_next_field): impl finding the next marhsalled field
8530         after a given field.
8531         (re_align_field_recurse): impl re-aligning a number of
8532         already marshalled fields.
8533         (delete_field): impl deleting a field of any type and
8534         re-aligning any following fields.
8535         (delete_int_or_uint_field), (delete_string_field): remove.
8536         (set_int_field), (set_uint_field): no need to re-check
8537         that we have the correct type for the field.
8538         (set_string_field): ditto and impl re-aligning any
8539         following fields.
8540         (decode_header_data): update to take into account that
8541         the fields aren't 4-byte aligned any more and the new
8542         way to distinguish padding from header fields. Also,
8543         don't exit when there is too much header padding.
8544         (process_test_subdir): print the directory.
8545         (_dbus_message_test): add test to make sure a following
8546         field is re-aligned correctly after field deletion.
8547         
8548         * dbus/dbus-string.[ch]:
8549         (_dbus_string_insert_bytes): rename from insert_byte and
8550         allow the insert of multiple bytes.
8551         (_dbus_string_test): test inserting multiple bytes.
8552
8553         * dbus/dbus-marshal.c: (_dbus_marshal_set_string): add
8554         warning note to docs about having to re-align any
8555         marshalled values following the string.
8556         
8557         * dbus/dbus-message-builder.c:
8558         (append_string_field), (_dbus_message_data_load):
8559         don't align the header field.
8560         
8561         * dbus/dbus-auth.c: (process_test_subdir): print the
8562         directory.
8563         
8564         * test/break-loader.c: (randomly_add_one_byte): upd. for
8565         insert_byte change.
8566         
8567         * test/data/invalid-messages/bad-header-field-alignment.message:
8568         new test case.
8569         
8570         * test/data/valid-messages/unknown-header-field.message: shove
8571         a dict in the unknown field.
8572
8573 2003-09-25  Seth Nickell  <seth@gnome.org>
8574
8575         * python/dbus.py:
8576         * python/dbus_bindings.pyx.in:
8577
8578         Handle return values.
8579         
8580         * python/examples/example-client.py:
8581         * python/examples/example-service.py:
8582
8583         Pass back return values from the service to the client.
8584         
8585 2003-09-24  Seth Nickell  <seth@gnome.org>
8586
8587         * python/dbus.py:
8588
8589         Connect Object methods (when you are sharing an object) up... pass
8590         in a list of methods to be shared. Sharing all the methods just
8591         worked out too weird. You can now create nice Services over the
8592         DBus in Python. :-)
8593         
8594         * python/dbus_bindings.pyx.in:
8595
8596         Keep references to user_data tuples passed into C functions so 
8597         Python doesn't garbage collect on us.
8598
8599         Implement MethodReturn and Error subclasses of Message for creating
8600         DBusMessage's of those types.
8601         
8602         * python/examples/example-client.py:
8603         * python/examples/example-service.py:
8604
8605         Simple example code showing both how create DBus services and objects,
8606         and how to use them.
8607
8608 2003-09-23  Havoc Pennington  <hp@pobox.com>
8609
8610         * glib/dbus-gproxy.c (dbus_gproxy_manager_filter): implement
8611
8612 2003-09-23  Havoc Pennington  <hp@redhat.com>
8613
8614         * glib/dbus-gproxy.c (dbus_gproxy_connect_signal): implement
8615         (dbus_gproxy_disconnect_signal): implement
8616         (dbus_gproxy_manager_remove_signal_match): implement
8617         (dbus_gproxy_manager_add_signal_match): implement
8618         (dbus_gproxy_oneway_call): implement
8619
8620 2003-09-23  Havoc Pennington  <hp@pobox.com>
8621
8622         * glib/dbus-gproxy.c (struct DBusGProxy): convert to a GObject
8623         subclass. This means dropping the transparent thread safety of the
8624         proxy; you now need a separate proxy per-thread, or your own
8625         locking on the proxy. Probably right anyway.
8626         (dbus_gproxy_ref, dbus_gproxy_unref): nuke, just use g_object_ref
8627
8628 2003-09-22  Havoc Pennington  <hp@redhat.com>
8629
8630         * glib/dbus-gproxy.c (dbus_gproxy_manager_get): implement
8631
8632 2003-09-21  Seth Nickell  <seth@gnome.org>
8633
8634         First checkin of the Python bindings.
8635         
8636         * python/.cvsignore:
8637         * python/Makefile.am:
8638         * python/dbus_bindings.pyx.in:
8639         * python/dbus_h_wrapper.h:
8640
8641         Pieces for Pyrex to operate on, building a dbus_bindings.so
8642         python module for low-level access to the DBus APIs.
8643         
8644         * python/dbus.py:
8645
8646         High-level Python module for accessing DBus objects.
8647
8648         * configure.in:
8649         * Makefile.am:
8650
8651         Build stuff for the python bindings.
8652
8653         * acinclude.m4:
8654
8655         Extra macro needed for finding the Python C header files.
8656
8657 2003-09-21  Havoc Pennington  <hp@pobox.com>
8658
8659         * glib/dbus-gproxy.c (dbus_gproxy_manager_new): start
8660         implementing the proxy manager, didn't get very far.
8661
8662         * dbus/dbus-bus.c (dbus_bus_add_match): new
8663         (dbus_bus_remove_match): new
8664
8665         * glib/dbus-gproxy.c (dbus_gproxy_new_for_service): add a
8666         path_name argument; adjust the other not-yet-implemented 
8667         gproxy constructors to be what I think they should be.
8668
8669 2003-09-21  Havoc Pennington  <hp@pobox.com>
8670
8671         * dbus/dbus-bus.c (dbus_bus_get): set exit_on_disconnect to TRUE
8672         by default for message bus connections.
8673
8674         * dbus/dbus-connection.c (dbus_connection_dispatch): exit if
8675         exit_on_disconnect flag is set and we process the disconnected
8676         signal.
8677         (dbus_connection_set_exit_on_disconnect): new function
8678
8679 2003-09-21  Havoc Pennington  <hp@pobox.com>
8680
8681         Get matching rules mostly working in the bus; only actually
8682         parsing the rule text remains. However, the client side of
8683         "signal connections" hasn't been started, this patch is only the
8684         bus side.
8685         
8686         * dbus/dispatch.c: fix for the matching rules changes
8687         
8688         * bus/driver.c (bus_driver_handle_remove_match)
8689         (bus_driver_handle_add_match): send an ack reply from these
8690         method calls
8691
8692         * glib/dbus-gproxy.c (dbus_gproxy_begin_call): fix order of
8693         arguments, reported by Seth Nickell
8694
8695         * bus/config-parser.c (append_rule_from_element): support
8696         eavesdrop=true|false attribute on policies so match rules 
8697         can be prevented from snooping on the system bus.
8698
8699         * bus/dbus-daemon-1.1.in: consistently use terminology "sender"
8700         and "destination" in attribute names; fix some docs bugs; 
8701         add eavesdrop=true|false attribute
8702
8703         * bus/driver.c (bus_driver_handle_add_match)
8704         (bus_driver_handle_remove_match): handle AddMatch, RemoveMatch
8705         messages
8706
8707         * dbus/dbus-protocol.h (DBUS_SERVICE_ORG_FREEDESKTOP_BROADCAST): get
8708         rid of broadcast service concept, signals are just always broadcast
8709
8710         * bus/signals.c, bus/dispatch.c, bus/connection.c, bus/bus.c:
8711         mostly implement matching rules stuff (currently only exposed as signal
8712         connections)
8713
8714 2003-09-21  Mark McLoughlin  <mark@skynet.ie>
8715
8716         * doc/dbus-specification.sgml: Change the header field name
8717         to be an enum and update the rest of the spec to reference
8718         the fields using the conventinal name.
8719
8720         * dbus/dbus-protocol.h: update to reflect the spec.
8721
8722         * doc/TODO: add item to remove the 4 byte alignment requirement.
8723         
8724         * dbus/dbus-message.c: Remove the code to generalise the
8725         header/body length and serial number header fields as named
8726         header fields so we can reference field names using the 
8727         protocol values.
8728         (append_int_field), (append_uint_field), (append_string_field):
8729         Append the field name as a byte rather than four chars.
8730         (delete_int_or_uint_field), (delete_string_field): reflect the
8731         fact that the field name and typecode now occupy 4 bytes instead
8732         of 8.
8733         (decode_string_field), (decode_header_data): update to reflect
8734         protocol changes and move the field specific encoding from
8735         decode_string_field() back into decode_header_data().
8736         
8737         * dbus/dbus-internals.[ch]: (_dbus_header_field_to_string):
8738         Add utility to aid debugging.
8739         
8740         * dbus/dbus-message-builder.c:
8741         (append_string_field), (_dbus_message_data_load): Update to
8742         reflect protocol changes; Change the FIELD_NAME directive
8743         to HEADER_FIELD and allow it to take the field's conventional
8744         name rather than the actual value.
8745         
8746         * test/data/*/*.message: Update to use HEADER_FIELD instead
8747         of FIELD_NAME; Always align the header on an 8 byte boundary
8748         *before* updating the header length.
8749
8750 2003-09-15  Havoc Pennington  <hp@pobox.com>
8751
8752         * dbus/dbus-pending-call.c: add the get/set object data
8753         boilerplate as for DBusConnection, etc. Use generic object data
8754         for the notify callback.
8755
8756         * glib/dbus-gparser.c (parse_node): parse child nodes
8757
8758         * tools/dbus-viewer.c: more hacking on the dbus-viewer
8759         
8760         * glib/dbus-gutils.c (_dbus_gutils_split_path): add a file to
8761         contain functions shared between the convenience lib and the
8762         installed lib
8763
8764         * glib/Makefile.am (libdbus_glib_1_la_LDFLAGS): add
8765         -export-symbols-regex to the GLib library
8766
8767         * dbus/dbus-object-tree.c (_dbus_object_tree_dispatch_and_unlock):
8768         fix the locking in here, and add a default handler for
8769         Introspect() that just returns sub-nodes.
8770
8771 2003-09-14  Havoc Pennington  <hp@pobox.com>
8772
8773         * glib/dbus-gthread.c (dbus_g_thread_init): rename to make g_foo
8774         rather than gfoo consistent
8775
8776         * glib/dbus-gproxy.h: delete for now, move contents to
8777         dbus-glib.h, because the include files don't work right since we
8778         aren't in the dbus/ subdir.
8779         
8780         * glib/dbus-gproxy.c (dbus_gproxy_send): finish implementing
8781         (dbus_gproxy_end_call): finish
8782         (dbus_gproxy_begin_call): finish
8783
8784         * glib/dbus-gmain.c (dbus_set_g_error): new
8785
8786         * glib/dbus-gobject.c (handle_introspect): include information
8787         about child nodes in the introspection
8788
8789         * dbus/dbus-connection.c (dbus_connection_list_registered): new
8790         function to help in implementation of introspection
8791
8792         * dbus/dbus-object-tree.c
8793         (_dbus_object_tree_list_registered_and_unlock): new function
8794
8795 2003-09-12  Havoc Pennington  <hp@pobox.com>
8796
8797         * glib/dbus-gidl.h: add common base class for all the foo_info
8798         types
8799
8800         * tools/dbus-viewer.c: add GTK-based introspection UI thingy
8801         similar to kdcop
8802
8803         * test/Makefile.am: try test srcdir -ef . in addition to test
8804         srcdir = ., one of them should work (yeah lame)
8805         
8806         * glib/Makefile.am: build the "idl" parser stuff as a convenience
8807         library
8808         
8809         * glib/dbus-gparser.h: make description_load routines return
8810         NodeInfo* not Parser*
8811
8812         * Makefile.am (SUBDIRS): build test dir after all library dirs
8813
8814         * configure.in: add GTK+ detection
8815
8816 2003-09-07  Havoc Pennington  <hp@pobox.com>
8817
8818         * Make Doxygen contented.
8819
8820 2003-09-07  Havoc Pennington  <hp@pobox.com>
8821
8822         * doc/dbus-specification.sgml: more updates
8823
8824 2003-09-06  Havoc Pennington  <hp@pobox.com>
8825
8826         * doc/dbus-specification.sgml: partial updates
8827
8828         * bus/dbus-daemon-1.1.in: fix the config file docs for the
8829         zillionth time; hopefully I edited the right file this time.
8830
8831         * bus/config-parser.c (append_rule_from_element): support
8832         send_type, send_path, receive_type, receive_path
8833
8834         * bus/policy.c: add message type and path to the list of things
8835         that can be "firewalled"
8836
8837 2003-09-06  Havoc Pennington  <hp@pobox.com>
8838
8839         * dbus/dbus-connection.c (dbus_connection_register_fallback): add this
8840         (dbus_connection_register_object_path): make this not handle
8841         messages to paths below the given path
8842
8843 2003-09-03  Havoc Pennington  <hp@pobox.com>
8844
8845         * test/glib/Makefile.am: add this with random glib-linked test
8846         programs
8847
8848         * glib/Makefile.am: remove the random test programs from here,
8849         leave only the unit tests
8850
8851         * glib/dbus-gobject.c (_dbus_gobject_test): add test for 
8852         uscore/javacaps conversion, and fix     
8853         (get_object_property, set_object_property): change to .NET
8854         convention for mapping props to methods, set_FooBar/get_FooBar, 
8855         since one language has such a convention we may as well copy it. 
8856         Plus real methods in either getFooBar or get_foo_bar style won't 
8857         collide with this convention.
8858
8859 2003-09-01  Havoc Pennington  <hp@pobox.com>
8860
8861         * glib/dbus-gparser.c: implement
8862
8863         * glib/dbus-gobject.c: start implementing skeletons support
8864
8865         * configure.in: when disabling checks/assert, also define
8866         G_DISABLE_ASSERT and G_DISABLE_CHECKS
8867
8868 2003-09-01  Havoc Pennington  <hp@pobox.com>
8869
8870         * glib/Makefile.am: rearrange a bunch of files and get "make
8871         check" framework set up
8872
8873 2003-08-31  Havoc Pennington  <hp@pobox.com>
8874
8875         * fix build with --disable-tests
8876
8877 2003-08-30  Havoc Pennington  <hp@pobox.com>
8878
8879         * dbus/dbus-connection.c: purge DBusMessageHandler
8880
8881         * dbus/dbus-message-handler.c: remove DBusMessageHandler, just 
8882         use callbacks everywhere
8883
8884 2003-08-30  Havoc Pennington  <hp@pobox.com>
8885
8886         * test/data/valid-config-files/system.d/test.conf: change to 
8887         root for the user so warnings don't get printed
8888
8889         * dbus/dbus-message.c: add dbus_message_get_path,
8890         dbus_message_set_path
8891         
8892         * dbus/dbus-object-tree.c (do_test_dispatch): add test of
8893         dispatching to a path
8894
8895         * dbus/dbus-string.c (_dbus_string_validate_path): add
8896
8897         * dbus/dbus-marshal.c (_dbus_demarshal_object_path): implement
8898         (_dbus_marshal_object_path): implement
8899
8900         * dbus/dbus-protocol.h (DBUS_HEADER_FIELD_PATH): new header field 
8901         to contain the path to the target object
8902         (DBUS_HEADER_FIELD_SENDER_SERVICE): rename
8903         DBUS_HEADER_FIELD_SENDER to explicitly say it's the sender service
8904
8905 2003-08-30  Havoc Pennington  <hp@pobox.com>
8906
8907         * dbus/dbus-object-tree.c: write tests and fix the discovered bugs
8908
8909 2003-08-29  Havoc Pennington  <hp@pobox.com>
8910
8911         * dbus/dbus-object-tree.c: modify to allow overlapping paths to be
8912         registered
8913         (struct DBusObjectSubtree): shrink this
8914         a lot, since we may have a lot of them
8915         (_dbus_object_tree_free_all_unlocked): implement
8916         (_dbus_object_tree_dispatch_and_unlock): implement
8917
8918 2003-08-29  Havoc Pennington  <hp@pobox.com>
8919
8920         * dbus/dbus-internals.h: fix _DBUS_N_GLOBAL_LOCKS
8921
8922 2003-08-28  Havoc Pennington  <hp@pobox.com>
8923
8924         purge DBusObjectID
8925         
8926         * dbus/dbus-connection.c: port to no ObjectID, create a
8927         DBusObjectTree, rename ObjectTree to ObjectPath in public API
8928
8929         * dbus/dbus-connection.h (struct DBusObjectTreeVTable): delete 
8930         everything except UnregisterFunction and MessageFunction
8931         
8932         * dbus/dbus-marshal.c: port away from DBusObjectID, 
8933         add DBUS_TYPE_OBJECT_PATH
8934         
8935         * dbus/dbus-object-registry.[hc], dbus/dbus-object.[hc], 
8936         dbus/dbus-objectid.[hc]: remove these, we are moving to 
8937         path-based object IDs
8938
8939 2003-08-25  Havoc Pennington  <hp@pobox.com>
8940
8941         Just noticed that dbus_message_test is hosed, I wonder when I
8942         broke that. I thought make check was passing earlier...
8943         
8944         * dbus/dbus-object-tree.c: add new "object tree" to match DCOP 
8945         container tree, will replace most of dbus-object-registry
8946
8947         * dbus/dbus-string.c (_dbus_string_append_printf_valist): fix C99
8948         screwup
8949
8950 2003-08-19  Havoc Pennington  <hp@pobox.com>
8951
8952         * dbus/dbus-message.c (decode_string_field): support FIELD_SENDER
8953         (dbus_message_is_error): fix this function
8954
8955         * bus/dbus-daemon-1.1: clarify logic on when <deny>/<allow> rules
8956         match
8957
8958         * bus/policy.c (bus_client_policy_check_can_receive): fix code to
8959         reflect clarified man page
8960         (bus_client_policy_check_can_send): ditto
8961         
8962         * bus/session.conf.in: fixup
8963
8964         * bus/system.conf.in: fixup
8965
8966 2003-08-18  Havoc Pennington  <hp@redhat.com>
8967
8968         * dbus/dbus-hash.c (_dbus_hash_table_insert_two_strings): fix
8969
8970         * dbus/dbus-message.c (_dbus_message_loader_queue_messages): fix
8971         dumb bug created earlier (wrong order of args to
8972         decode_header_data())
8973         
8974         * tools/dbus-send.c: port
8975
8976         * tools/dbus-print-message.c (print_message): port
8977
8978         * test/data/*messages: port all messages over
8979         
8980         * dbus/dbus-message-builder.c: support including 
8981         message type
8982         
8983         * bus/driver.c: port over
8984         
8985         * bus/dispatch.c: port over to new stuff
8986
8987         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
8988         rename disconnect signal to "Disconnected"
8989
8990 2003-08-17  Havoc Pennington  <hp@pobox.com>
8991
8992         This doesn't compile yet, but syncing up so I can hack on it from
8993         work. What are branches for if not broken code? ;-)
8994         
8995         * dbus/dbus-protocol.h: remove DBUS_HEADER_FIELD_NAME, add
8996         DBUS_HEADER_FIELD_INTERFACE, DBUS_HEADER_FIELD_MEMBER,
8997         DBUS_HEADER_FIELD_ERROR_NAME
8998         
8999         * dbus/dbus-hash.c: Introduce DBUS_HASH_TWO_STRINGS as hack to use
9000         for the interface+member pairs
9001         (string_hash): change to use g_str_hash algorithm
9002         (find_direct_function, find_string_function): refactor these to
9003         share most code.
9004         
9005         * dbus/dbus-message.c: port all of this over to support 
9006         interface/member fields instead of name field
9007
9008         * dbus/dbus-object-registry.c: port over
9009         
9010         * dbus/dbus-string.c (_dbus_string_validate_interface): rename
9011         from _dbus_string_validate_name
9012
9013         * bus/dbus-daemon-1.1: change file format for the 
9014         <deny>/<allow> stuff to match new message naming scheme
9015
9016         * bus/policy.c: port over
9017
9018         * bus/config-parser.c: parse new format
9019         
9020 2003-08-16  Havoc Pennington  <hp@pobox.com>
9021
9022         * dbus/dbus-object-registry.c (add_and_remove_objects): remove
9023         broken assertion
9024
9025         * glib/dbus-gproxy.c: some hacking
9026
9027 2003-08-15  Havoc Pennington  <hp@redhat.com>
9028
9029         * dbus/dbus-pending-call.c (dbus_pending_call_block): implement
9030
9031         * dbus/dbus-connection.c
9032         (dbus_connection_send_with_reply_and_block): factor out internals;
9033         change to convert any error replies to DBusError instead of 
9034         returning them as a message
9035
9036 2003-08-15  Havoc Pennington  <hp@pobox.com>
9037
9038         * dbus/dbus-connection.c, 
9039         dbus/dbus-pending-call.c: Finish the pending call stuff
9040
9041 2003-08-14  Havoc Pennington  <hp@redhat.com>
9042
9043         * dbus/dbus-pending-call.c: start on new object that will replace
9044         DBusMessageHandler and ReplyHandlerData for tracking outstanding
9045         replies
9046
9047         * dbus/dbus-gproxy.c: start on proxy object used to communicate
9048         with remote interfaces
9049
9050         * dbus/dbus-gidl.c: do the boring boilerplate in here
9051         
9052 2003-08-12  Havoc Pennington  <hp@pobox.com>
9053
9054         * bus/dispatch.c (bus_dispatch): make this return proper 
9055         DBusHandlerResult to avoid DBUS_ERROR_UNKNOWN_METHOD
9056
9057         * dbus/dbus-errors.c (dbus_set_error): use
9058         _dbus_string_append_printf_valist
9059
9060         * dbus/dbus-string.c (_dbus_string_append_printf_valist)
9061         (_dbus_string_append_printf): new
9062
9063         * dbus/dbus-errors.h (DBUS_ERROR_UNKNOWN_MESSAGE): change to
9064         UNKNOWN_METHOD
9065
9066         * dbus/dbus-connection.c (dbus_connection_dispatch): handle
9067         DBUS_HANDLER_RESULT_NEED_MEMORY; send default error reply if a
9068         message is unhandled.
9069
9070 2003-08-11  Havoc Pennington  <hp@pobox.com>
9071
9072         * bus/test.c (client_disconnect_handler): change to return
9073         HANDLED (would have been REMOVE_MESSAGE)
9074
9075         * dbus/dbus-object.h (enum DBusHandlerResult): rename to
9076         HANDLED/NOT_YET_HANDLED instead of
9077         REMOVE_MESSAGE/ALLOW_MORE_HANDLERS to make it clearer how it 
9078         should be used.
9079
9080 2003-08-10  Havoc Pennington  <hp@pobox.com>
9081
9082         * tools/dbus-send.c (main): add --type argument, for now
9083         supporting only method_call and signal types.
9084
9085         * tools/dbus-print-message.c: print message type
9086
9087         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
9088         init connection->objects
9089
9090         * doc/dbus-specification.sgml: fix sgml
9091
9092         * bus/*.c: port over to object-instance API changes
9093
9094         * test/test-service.c: ditto
9095         
9096         * dbus/dbus-message.c (dbus_message_create_header): allow #NULL
9097         name, we will have to fix up the rest of the code to also handle
9098         this
9099         (dbus_message_new): generic message-creation call
9100         (set_string_field): allow appending name field
9101
9102 2003-08-06  Havoc Pennington  <hp@pobox.com>
9103
9104         * dbus/dbus-object-registry.c: implement signal connection 
9105         and dispatch
9106
9107         * dbus/dbus-connection.c (_dbus_connection_unref_unlocked): new
9108
9109         * dbus/dbus-internals.c (_dbus_memdup): new function
9110
9111 2003-08-02  Havoc Pennington  <hp@pobox.com>
9112
9113         * dbus/dbus-message.c (dbus_message_get_no_reply)
9114         (dbus_message_set_no_reply): add these and remove
9115         set_is_error/get_is_error
9116
9117         * dbus/dbus-protocol.h, doc/dbus-specification.sgml: 
9118         remove the ERROR flag, since there's now an ERROR type
9119
9120 2003-08-01  Havoc Pennington  <hp@pobox.com>
9121
9122         * dbus/dbus-object-registry.c (_dbus_object_registry_handle_and_unlock):
9123         implement
9124
9125         * dbus/dbus-message.c (dbus_message_get_type): new function
9126
9127         * doc/dbus-specification.sgml: add "type" byte to messages
9128
9129 2003-08-01  Havoc Pennington  <hp@pobox.com>
9130
9131         * dbus/dbus-protocol.h (DBUS_MESSAGE_TYPE_*): introduce
9132         a message type enum to distinguish kinds of message
9133         (DBUS_HEADER_FLAG_NO_REPLY_EXPECTED): flag for a message 
9134         that need not be replied to
9135
9136 2003-08-01  Havoc Pennington  <hp@pobox.com>
9137
9138         * dbus/dbus-marshal.c: adapt to DBusObjectID changes
9139         (unpack_8_octets): fix no-64-bit-int bug
9140
9141         * dbus/dbus-object-registry.c (validate_id): validate the 
9142         connection ID bits, not just the instance ID.
9143
9144         * dbus/dbus-connection.c (_dbus_connection_init_id): initialize
9145         the connection-global 33 bits of the object ID
9146
9147         * dbus/dbus-object-registry.c (info_from_entry): fill in 
9148         object ID in the new way
9149
9150         * dbus/dbus-objectid.h: rather than high/low bits, specifically 
9151         define server/client/instance bits.
9152
9153 2003-07-30  Havoc Pennington  <hp@pobox.com>
9154
9155         * dbus/dbus-connection.c (dbus_connection_register_object): fix
9156         build
9157
9158 2003-07-13  Havoc Pennington  <hp@pobox.com>
9159
9160         * dbus/dbus-object.h (struct DBusObjectVTable): add padding
9161         fields to DBusObjectVTable and DBusObjectInfo
9162
9163 2003-07-12  Havoc Pennington  <hp@pobox.com>
9164
9165         * dbus/dbus-object-registry.c: implement unit test,
9166         fix bugs discovered in process
9167
9168         * dbus/dbus-connection.c: remove handler_table and
9169         register_handler(), add DBusObjectRegistry usage
9170
9171         * dbus/dbus-objectid.c (dbus_object_id_is_null)
9172         (dbus_object_id_set_null): new functions
9173
9174 2003-07-08  Havoc Pennington  <hp@pobox.com>
9175
9176         * dbus/dbus-object.c: implement some of this
9177
9178         * dbus/dbus-object-registry.c
9179         (_dbus_object_registry_add_and_unlock): fill in the object_id out
9180         param
9181         (_dbus_object_registry_new): handle OOM
9182
9183 2003-07-08  Havoc Pennington  <hp@pobox.com>
9184
9185         * dbus/dbus-object.h: sketch out an API for registering objects
9186         with a connection, that allows us to use as little as 24 bytes
9187         per object and lets application code represent an object in 
9188         any conceivable way.
9189
9190         * dbus/dbus-object-registry.c: implement the hard bits of the
9191         DBusConnection aspect of object API. Not yet wired up.
9192         
9193 2003-07-06  Havoc Pennington  <hp@pobox.com>
9194
9195         * dbus/dbus-marshal.c (_dbus_marshal_set_object_id): new function
9196         (_dbus_marshal_object_id): new
9197         (_dbus_demarshal_object_id): new
9198         (_dbus_marshal_get_arg_end_pos): support object ID type, and
9199         consolidate identical switch cases. Don't conditionalize handling
9200         of DBUS_TYPE_UINT64, need to handle the type always.
9201         (_dbus_marshal_validate_arg): consolidate identical cases, and
9202         handle DBUS_TYPE_OBJECT_ID
9203
9204         * dbus/dbus-objectid.c: new file with DBusObjectID data type.
9205
9206         * dbus/dbus-protocol.h: add DBUS_TYPE_OBJECT_ID
9207
9208 2003-09-28  Havoc Pennington  <hp@pobox.com>
9209
9210         * real 0.13 release
9211
9212 2003-09-28  Havoc Pennington  <hp@pobox.com>
9213
9214         * doc/Makefile.am (dbus-specification.html): testing a funky hack
9215         to work with Debian db2html
9216
9217 2003-09-28  Havoc Pennington  <hp@pobox.com>
9218
9219         * configure.in: 0.13
9220
9221         * doc/Makefile.am (dbus-test-plan.html): accept nonexistence of
9222         stylesheet-images for benefit of Debian
9223         
9224         Change back to using filesystem-linked sockets for the system
9225         bus, so only root can create the default system bus address.
9226         
9227         * bus/system.conf.in: change to use
9228         DBUS_SYSTEM_BUS_DEFAULT_ADDRESS
9229
9230         * dbus/Makefile.am (INCLUDES): remove DBUS_SYSTEM_BUS_PATH define
9231         from here.
9232
9233         * configure.in: define DBUS_SYSTEM_BUS_DEFAULT_ADDRESS
9234         here, and AC_DEFINE DBUS_SYSTEM_PATH
9235
9236 2003-08-09  Anders Carlsson  <andersca@codefactory.se>
9237
9238         * doc/TODO:
9239         * doc/busconfig.dtd:
9240         Add busconfig DTD.
9241         
9242 2003-08-09  Anders Carlsson  <andersca@codefactory.se>
9243
9244         * doc/dbus-specification.sgml:
9245         Add activation reply values.
9246         
9247 2003-08-05  Havoc Pennington  <hp@redhat.com>
9248
9249         * configure.in: 0.12
9250
9251 2003-08-05  Anders Carlsson  <andersca@codefactory.se>
9252
9253         * glib/dbus-gmain.c: (watch_fd_new), (watch_fd_ref),
9254         (watch_fd_unref), (dbus_gsource_check), (dbus_gsource_dispatch),
9255         (add_watch), (remove_watch), (create_source):
9256         Refcount fds, fixes some reentrancy issues.
9257         
9258 2003-07-30  Havoc Pennington  <hp@redhat.com>
9259
9260         * dbus/dbus-bus.c (init_connections_unlocked): fix default system
9261         bus address to be abstract if we have abstract sockets
9262
9263         * NEWS: update
9264
9265 2003-07-28  Havoc Pennington  <hp@redhat.com>
9266
9267         * bus/messagebus.in: fix to avoid processname/servicename 
9268         confusion, from Michael Kearey
9269         https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=100965
9270         
9271 2003-07-23  Havoc Pennington  <hp@pobox.com>
9272
9273         * dbus/dbus-message.c (dbus_message_iter_get_named): 
9274         fix from Andy Hanton to remove broken "+1"
9275
9276 2003-07-16  Havoc Pennington  <hp@pobox.com>
9277
9278         * tools/dbus-launch.c (babysit): close stdout/stderr in the
9279         babysitter process, as suggested by Thomas Leonard, so 
9280         an "eval `dbus-launch --exit-with-session`" will actually 
9281         return
9282
9283 2003-07-16  Havoc Pennington  <hp@pobox.com>
9284
9285         * configure.in: print out EXPANDED_* variables in the summary at
9286         the end; clean up the code that computes EXPANDED_ variables and
9287         get the ones using exec_prefix right. Should make things work
9288         when you build without --prefix
9289
9290 2003-06-29  Havoc Pennington  <hp@pobox.com>
9291
9292         * mono/Test.cs (class Test): fire up a main loop and run it
9293
9294         * mono/DBus.cs (DBus): don't g_thread_init since it can only be
9295         done once, the app has to do it
9296
9297 2003-06-26  Havoc Pennington  <hp@pobox.com>
9298
9299         * mono/Connection.cs: set up connection with the glib main loop
9300
9301 2003-07-01  Havoc Pennington  <hp@redhat.com>
9302
9303         * doc/dbus-specification.sgml: clarify the format of a type code,
9304         change suggested by Jim Blandy
9305
9306 2003-06-29  Miloslav Trmac  <mitr@volny.cz>
9307
9308         * doc/Makefile.am:
9309         * tools/Makefile.am: Don't assume srcdir == builddir.
9310
9311         * dbus/dbus-memory.c (dbus_realloc): Don't check guards after shrinking
9312         the allocated block.
9313         (_dbus_memory_test): New function.
9314         * dbus/dbus-test.h: Add _dbus_memory_test ().
9315         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): Call it.
9316
9317         * dbus/dbus-message.c (decode_header_data): Use %.4s instead
9318         of %c%c%c%c.
9319         (dbus_message_new): Remove obsolete @todo.
9320
9321         * dbus/dbus-marshal.c (_dbus_marshal_set_int64)
9322         (_dbus_marshal_set_uint64): Fix comment.
9323
9324         * dbus/dbus-message.c (append_int_field, append_uint_field): Don't
9325         hardcode FIELD_REPLY_SERIAL.
9326
9327         * dbus/dbus-mainloop.c (_dbus_loop_remove_watch)
9328         (_dbus_loop_remove_timeout): Cast function pointers to (void *) for %p
9329
9330         * configure.in: Add -D_POSIX_C_SOURCE=199309L -DBSD_SOURCE to CFLAGS
9331         and disable DBUS_USE_ATOMIC_INT_486 when --enable-ansi is used
9332
9333 2003-06-24  Havoc Pennington  <hp@pobox.com>
9334
9335         * mono/*.cs: Use IntPtr.Zero instead of ((IntPtr) 0)
9336
9337 2003-06-23  Anders Carlsson  <andersca@codefactory.se>
9338
9339         * configure.in:
9340         * gcj/.cvsignore:
9341         * gcj/Hello.java:
9342         * gcj/Makefile.am:
9343         * gcj/TestMessage.java: (TestMessage), (TestMessage.main):
9344         * gcj/org/.cvsignore:
9345         * gcj/org/Makefile.am:
9346         * gcj/org/freedesktop/.cvsignore:
9347         * gcj/org/freedesktop/Makefile.am:
9348         * gcj/org/freedesktop/dbus/.cvsignore:
9349         * gcj/org/freedesktop/dbus/Makefile.am:
9350         * gcj/org/freedesktop/dbus/Message.java: (Message),
9351         (Message.Message):
9352         * gcj/org/freedesktop/dbus/natMessage.cc:
9353         Fix the build system.
9354
9355 2003-06-22  Havoc Pennington  <hp@pobox.com>
9356
9357         * mono/Connection.cs: add more bindings
9358
9359         * dbus/dbus-threads.c (dbus_threads_init): allow calling this
9360         more than once.
9361
9362 2003-06-22  Havoc Pennington  <hp@pobox.com>
9363
9364         * mono/Connection.cs, mono/DBus.cs, mono/Error.cs:
9365         Start wrapping more stuff.
9366
9367 2003-06-22  Havoc Pennington  <hp@pobox.com>
9368
9369         * mono/Message.cs: implement Message.Wrap() that ensures we only
9370         have a single C# wrapper per DBusMessage, assuming it works which
9371         it probably doesn't.
9372
9373         * dbus/dbus-message.c (dbus_message_allocate_data_slot): new
9374         (dbus_message_free_data_slot): new
9375         (dbus_message_set_data): new
9376         (dbus_message_get_data): new
9377
9378 2003-06-22  Havoc Pennington  <hp@pobox.com>
9379
9380         * dbus/dbus-dataslot.c (_dbus_data_slot_allocator_unref)
9381         (_dbus_data_slot_allocator_alloc): rework these to keep a
9382         reference count on each slot and automatically manage a global
9383         slot ID variable passed in by address
9384
9385         * bus/bus.c: convert to new dataslot API
9386
9387         * dbus/dbus-bus.c: convert to new dataslot API
9388
9389         * dbus/dbus-connection.c: convert to new dataslot API
9390
9391         * dbus/dbus-server.c: convert to new dataslot API
9392
9393         * glib/dbus-gmain.c: ditto
9394
9395         * bus/test.c: ditto
9396
9397         * bus/connection.c: ditto
9398
9399 2003-06-22  Anders Carlsson  <andersca@codefactory.se>
9400
9401         * configure.in: Add AM_PROG_GCJ and move AM_PROG_LIBTOOL
9402         after the gcj checks so that the correct configuration tags
9403         will be added to libtool.
9404
9405         * dbus-glib-1.pc.in: No need to specify any includes since
9406         dbus-1.pc.in has those.
9407
9408 2003-06-22  Havoc Pennington  <hp@pobox.com>
9409
9410         * mono/*, gcj/*, configure.in, Makefile.am:
9411         Check in makefiles and subdirs for mono and gcj bindings.
9412         Neither binding actually exists, just trying to get through
9413         all the build and other boring bits.
9414
9415 2003-06-21  Philip Blundell  <philb@gnu.org>
9416
9417         * tools/dbus-monitor.1: Updated.
9418
9419         * tools/dbus-send.1: Likewise.
9420
9421 2003-06-20  Anders Carlsson  <andersca@codefactory.se>
9422
9423         * dbus/dbus-transport-unix.c (unix_handle_watch): Check
9424         for hangup and error after checking read so we won't discard
9425         pending data if both hangup and read are set.
9426
9427 2003-06-19  Philip Blundell  <philb@gnu.org>
9428
9429         * tools/dbus-print-message.c (print_message): Handle BOOLEAN.
9430
9431         * tools/dbus-send.c: Accept both --system and --session.
9432
9433         * tools/dbus-monitor.c: Same here.
9434
9435 2003-06-19  Anders Carlsson  <andersca@codefactory.se>
9436
9437         * glib/dbus-glib.h: Fix so that dbus-glib.h can be used
9438         from C++ (Patch by Miloslav Trmac).
9439
9440 2003-06-15  Joe Shaw  <joe@assbarn.com>
9441
9442         * configure.in: Check for socklen_t.
9443
9444         * dbus/dbus-sysdeps.c: Define socklen_t if it's not defined.
9445
9446         * test/test-segfault.c: Add #include <sys/time.h>
9447
9448         * tools/Makefile.am: Add DBUS_X_CFLAGS to the INCLUDES since
9449         dbus-launch needs it.
9450
9451 2003-06-09  Havoc Pennington  <hp@redhat.com>
9452
9453         * dbus/dbus-sysdeps.c (_dbus_listen_unix_socket): don't use
9454         SUN_LEN, it breaks abstract socket usage
9455
9456         * dbus/dbus-internals.c (_dbus_verbose_real): only print PID at
9457         starts of lines.
9458
9459 2003-06-04  Havoc Pennington  <hp@pobox.com>
9460
9461         * dbus/dbus-server.c (dbus_server_listen): allow abstract sockets
9462         using unix:abstract=/foo, and when listening in a tmpdir
9463         i.e. unix:tmpdir=/tmp, always use abstract sockets if we can.
9464
9465         * dbus/dbus-transport.c (_dbus_transport_open): support
9466         unix:abstract=/foo
9467
9468         * dbus/dbus-server-unix.c (_dbus_server_new_for_domain_socket):
9469         support abstract sockets
9470
9471         * dbus/dbus-transport-unix.c
9472         (_dbus_transport_new_for_domain_socket): support abstract sockets
9473
9474         * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket): add "abstract"
9475         toggle as an argument, implement abstract namespace support
9476         (_dbus_listen_unix_socket): ditto
9477
9478         * configure.in: add --enable-abstract-sockets and implement
9479         a configure check for autodetection of the right value.
9480
9481 2003-06-01  Havoc Pennington  <hp@pobox.com>
9482
9483         * tools/dbus-cleanup-sockets.c: add utility to clean up sockets
9484         in /tmp (though on Linux this will end up being useless,
9485         when we add abstract namespace support)
9486
9487         * configure.in: define DBUS_SESSION_SOCKET_DIR in addition to
9488         subst'ing it
9489
9490 2003-05-28  Colin Walters  <walters@verbum.org>
9491
9492         * tools/dbus-monitor.c (main): Fix silly typo (s/--session/--system/).
9493
9494 2003-05-18  Anders Carlsson  <andersca@codefactory.se>
9495
9496         * dbus/dbus-message.c (dbus_message_new): Remove @todo.
9497
9498 2003-05-17  Colin Walters  <walters@gnu.org>
9499
9500         * tools/dbus-send.c: Don't exit with an error code if --help was
9501         passed.  Default to using the session bus instead of the system
9502         one.
9503
9504         * tools/dbus-launch.c: Ditto.
9505
9506         * tools/dbus-monitor.c: Ditto.
9507
9508         * tools/dbus-send.1: Update with new arguments.
9509
9510         * tools/dbus-launch.c: Emit code to export variables.  New
9511         arguments -s and -c to specify shell syntax, and a bit of code to
9512         autodetect syntax.  Also, allow specifying a program to run.
9513
9514         * tools/dbus-launch.1: Update with new arguments.
9515
9516         * tools/dbus-send.1: Ditto.
9517
9518         * tools/dbus-monitor.1: Ditto.
9519
9520 2003-05-17  Havoc Pennington  <hp@pobox.com>
9521
9522         * bus/config-parser.c (merge_included): merge in policies from
9523         child configuration file.
9524
9525         * bus/policy.c (bus_policy_merge): function to merge two policies
9526         together
9527
9528 2003-05-16  Havoc Pennington  <hp@redhat.com>
9529
9530         * dbus/dbus-connection.c: disable verbose lock spew
9531
9532         * tools/dbus-send.c: add --print-reply command line option
9533
9534         * tools/dbus-print-message.h (print_message): new util function
9535         shared by dbus-send and dbus-monitor
9536
9537         * tools/dbus-monitor.c (handler_func): exit on disconnect
9538
9539         * dbus/dbus-transport-unix.c (do_reading): if the transport is
9540         disconnected, don't try to use the read_watch
9541
9542         * dbus/dbus-watch.c (dbus_watch_get_enabled): assert watch != NULL
9543         so we can find this bug more easily
9544
9545 2003-05-16  Havoc Pennington  <hp@redhat.com>
9546
9547         * bus/policy.c (free_rule_list_func): avoid a crash when passed
9548         NULL as DBusHashTable is annoyingly likely to do.
9549
9550 2003-05-16  Colin Walters  <walters@verbum.org>
9551
9552         * tools/dbus-monitor.c: Add --session argument and usage()
9553         function.
9554
9555         * tools/dbus-monitor.1: Update with new --session arg.
9556
9557         * bus/Makefile.am (install-data-hook): Create
9558         $(libdir)/dbus-1.0/services so that the session bus is happy.
9559
9560 2003-05-15  Havoc Pennington  <hp@redhat.com>
9561
9562         * dbus/dbus-sysdeps.c (_dbus_atomic_dec, _dbus_atomic_inc): work
9563         on non-x86. ifdef's are evil.
9564
9565 2003-05-15  Havoc Pennington  <hp@redhat.com>
9566
9567         * configure.in: 0.11
9568
9569         * NEWS: update
9570
9571         * bus/Makefile.am (initddir): apparently we are supposed to put
9572         init scripts in /etc/rc.d/init.d not /etc/init.d
9573
9574         * bus/Makefile.am: remove the "you must --enable-tests to make
9575         check" as it broke distcheck
9576
9577         * bus/Makefile.am (install-data-hook): create /etc/dbus-1/system.d
9578
9579 2003-05-13  James Willcox  <jwillcox@gnome.org>
9580
9581         * configure.in:
9582         * bus/activation.c: (bus_activation_service_created),
9583         (bus_activation_activate_service):
9584         * bus/driver.c: (bus_driver_send_service_deleted),
9585         (bus_driver_send_service_created), (bus_driver_send_service_lost),
9586         (bus_driver_send_service_acquired),
9587         (bus_driver_send_welcome_message),
9588         (bus_driver_handle_list_services):
9589         * bus/session.conf.in:
9590         * dbus/dbus-bus.c: (dbus_bus_acquire_service),
9591         (dbus_bus_service_exists), (dbus_bus_activate_service):
9592         * dbus/dbus-bus.h:
9593
9594         Add some convenience API which lets you activate a service, and did a
9595         bunch of s/0/DBUS_TYPE_INVALID/ in calls to dbus_message_append_args()
9596         and dbus_message_get_args()
9597
9598 2003-05-11  Havoc Pennington  <hp@pobox.com>
9599
9600         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): fix to avoid
9601         calling _dbus_marshal_validate_arg() for every byte in a byte
9602         array, etc.
9603
9604         * dbus/dbus-message-handler.c: use atomic reference counting to
9605         reduce number of locks slightly; the global lock in here sucks
9606
9607         * dbus/dbus-connection.c
9608         (_dbus_connection_update_dispatch_status_and_unlock): variant of
9609         update_dispatch_status that can be called with lock held; then use
9610         in a couple places to reduce locking/unlocking
9611         (dbus_connection_send): hold the lock over the whole function
9612         instead of acquiring it twice.
9613
9614         * dbus/dbus-timeout.c (_dbus_timeout_new): handle OOM
9615
9616         * bus/connection.c (bus_connections_setup_connection): fix access
9617         to already-freed memory.
9618
9619         * dbus/dbus-connection.c: keep a little cache of linked list
9620         nodes, to avoid using the global linked list alloc lock in the
9621         normal send-message case. Instead we just use the connection lock
9622         that we already have to take.
9623
9624         * dbus/dbus-list.c (_dbus_list_find_last): new function
9625
9626         * dbus/dbus-sysdeps.c (_dbus_atomic_inc, _dbus_atomic_dec):
9627         change to use a struct for the atomic type; fix docs,
9628         they return value before increment, not after increment.
9629
9630         * dbus/dbus-string.c (_dbus_string_append_4_aligned)
9631         (_dbus_string_append_8_aligned): new functions to try to
9632         microoptimize this operation.
9633         (reallocate_for_length): break this out of set_length(), to
9634         improve profile info, and also so we can consider inlining the
9635         set_length() part.
9636
9637         * dbus/dbus-message.c (dbus_message_new_empty_header): init data
9638         strings with some preallocation, cuts down on our calls to realloc
9639         a fair bit. Though if we can get the "move entire string to empty
9640         string" optimization below to kick in here, it would be better.
9641
9642         * dbus/dbus-string.c (_dbus_string_move): just call
9643         _dbus_string_move_len
9644         (_dbus_string_move_len): add a special case for moving
9645         an entire string into an empty string; we can just
9646         swap the string data instead of doing any reallocs.
9647         (_dbus_string_init_preallocated): new function
9648
9649 2003-05-11  Havoc Pennington  <hp@pobox.com>
9650
9651         Write a "test-profile" that does echo client-server with threads;
9652         profile reveals lock contention, memcpy/realloc of buffers, and
9653         UTF-8 validation as hot spots. 20% of lock contention eliminated
9654         with dbus_atomic_inc/dec implementation on x86.  Much remaining
9655         contention is global mempool locks for GList and DBusList.
9656
9657         * dbus/dbus-sysdeps.c (_dbus_atomic_inc, _dbus_atomic_dec): add
9658         x86 implementation
9659
9660         * dbus/dbus-connection.c (struct DBusConnection): use
9661         dbus_atomic_t for the reference count
9662
9663         * dbus/dbus-message.c (struct DBusMessage): declare
9664         dbus_atomic_t values as volatile
9665
9666         * configure.in: code to detect ability to use atomic integer
9667         operations in assembly, from GLib patch
9668
9669         * dbus/dbus-internals.c (_dbus_verbose_real): call getpid every
9670         time, tired of it being wrong in threads and forked processes
9671
9672         * glib/test-profile.c: a little program to bounce messages back
9673         and forth between threads and eat CPU
9674
9675         * dbus/dbus-connection.c: add debug spew macros for debugging
9676         thread locks; include config.h at top; fix deadlock in
9677         dbus_connection_flush()
9678
9679 2003-05-08  Havoc Pennington  <hp@pobox.com>
9680
9681         * dbus/dbus-spawn.c: s/_exit/exit/ because it was keeping gcov
9682         data from getting written, and there wasn't a good reason to
9683         use _exit really.
9684
9685         * test/decode-gcov.c (mark_inside_dbus_build_tests): don't count
9686         dbus_verbose lines in test coverage
9687         (main): add list of functions sorted by # of untested blocks
9688         to the coverage report
9689
9690         * dbus/dbus-mempool.c: put some test-only code in DBUS_BUILD_TESTS
9691
9692         * dbus/dbus-marshal.c (_dbus_marshal_test): extend test coverage
9693
9694         * dbus/dbus-message-handler.c (_dbus_message_handler_test):
9695         extend test coverage
9696
9697         * test/data/auth/cancel.auth-script: test canceling an
9698         authentication
9699
9700         * dbus/Makefile.am: remove dbus-server-debug.[hc] for now, as they
9701         aren't used. in CVS history if we end up needing them.
9702
9703 2003-05-04  Havoc Pennington  <hp@pobox.com>
9704
9705         * dbus/dbus-message-handler.c (_dbus_message_handler_test): add
9706         unit test
9707
9708         * dbus/dbus-marshal.c (_dbus_demarshal_string_array): fix this
9709         function, which assumed length was in # of strings, not bytes
9710
9711         * dbus/dbus-message.c (_dbus_message_test): add tests for some
9712         missing coverage
9713
9714         * dbus/dbus-connection.c
9715         (_dbus_connection_queue_received_message): disable function for
9716         now, we are only using it in test mode
9717
9718         * dbus/dbus-message.c (_dbus_message_loader_queue_messages):
9719         remove a mistaken FIXME
9720
9721 2003-05-04  Havoc Pennington  <hp@pobox.com>
9722
9723         * dbus/dbus-connection.c (dbus_connection_preallocate_send):
9724         unlock mutex on successful return, patch from Anders Gustafsson
9725
9726 2003-05-04  Havoc Pennington  <hp@pobox.com>
9727
9728         * dbus-glib-1.pc.in (Requires): fix dependencies, from
9729         Anders Gustafsson
9730
9731 2003-05-04  Havoc Pennington  <hp@pobox.com>
9732
9733         * tools/dbus-launch.c: implement
9734
9735         * bus/main.c (main), bus/bus.c (bus_context_new):
9736         implement --print-pid and --fork
9737
9738 2003-05-03  Havoc Pennington  <hp@redhat.com>
9739
9740         * dbus/dbus-address.c (dbus_parse_address): fix bug when a key in
9741         the address had no value, and add to test suite. Fix and
9742         regression test from Miloslav Trmac
9743
9744 2003-05-03  Havoc Pennington  <hp@pobox.com>
9745
9746         * dbus/dbus-watch.c (dbus_watch_handle): warn and return if a
9747         watch is invalid when handled
9748
9749         * tools/Makefile.am, tools/dbus-launch.c, tools/dbus-launch.1: add
9750         dbus-launch utility to launch the bus from a shell script.  Didn't
9751         actually implement dbus-launch yet, it's just a placeholder still.
9752
9753 2003-05-03  Havoc Pennington  <hp@pobox.com>
9754
9755         * bus/Makefile.am, bus/dbus-daemon-1.1.in: man page for the
9756         daemon; also documents daemon config file, so replaces
9757         doc/config-file.txt. Corrected some stuff from config-file.txt in
9758         the process of moving it.
9759
9760 2003-05-03  Havoc Pennington  <hp@pobox.com>
9761
9762         * tools/Makefile.am, tools/dbus-send.1, tools/dbus-monitor.1:
9763         add some man pages
9764
9765 2003-05-03  Colin Walters  <walters@verbum.org>
9766
9767         * dbus/dbus-sysdeps.c (fill_user_info): Test against
9768         DBUS_UID_UNSET to determine whether to do a uid lookup or not.
9769
9770         * Makefile.am: Update to use new .pc versioning scheme.
9771
9772 2003-05-02  Havoc Pennington  <hp@redhat.com>
9773
9774         * bus/system.conf.in: allow send/receive to/from message bus
9775         service
9776
9777 2003-04-30  Havoc Pennington  <hp@redhat.com>
9778
9779         * configure.in: print a note when building with unit tests and
9780         without assertions
9781
9782 2003-04-30  Havoc Pennington  <hp@redhat.com>
9783
9784         * Makefile.am: add a check-local that complains if you didn't
9785         configure with --enable-tests
9786
9787 2003-04-29  Havoc Pennington  <hp@redhat.com>
9788
9789         * glib/dbus-gmain.c: docs cleanups
9790
9791         * dbus/dbus-types.h: add docs on int64 types
9792
9793         * dbus/dbus-memory.c: fix docs to avoid putting private API in
9794         public API docs section
9795
9796 2003-04-29  Havoc Pennington  <hp@redhat.com>
9797
9798         * dbus-1.pc.in, dbus-glib-1.pc.in: rename these from
9799         dbus-1.0.pc.in, dbus-glib-1.0.pc.in. As these change with the
9800         parallel install API version, not with the D-BUS package version.
9801
9802         * HACKING: move some of README over here
9803
9804         * README: updates, and document API/ABI policy
9805
9806         * configure.in: reindentation
9807
9808 2003-04-29  Havoc Pennington  <hp@redhat.com>
9809
9810         * dbus/dbus.h: add "you have to define DBUS_API_SUBJECT_TO_CHANGE
9811         to use this library" to be sure people have the right
9812         expectations.
9813
9814 2003-04-28  Havoc Pennington  <hp@redhat.com>
9815
9816         * configure.in: add --enable-docs which by default is auto yes if
9817         doxygen and db2html found, no otherwise; but can be forced on/off
9818
9819         * doc/Makefile.am: conditionalize whether to build docs on
9820         --enable-docs
9821
9822 2003-04-28  Havoc Pennington  <hp@redhat.com>
9823
9824         * configure.in: 0.10
9825
9826         * NEWS: update
9827
9828         * bus/system.conf.in: add <includedir>system.d</includedir>
9829
9830         * dbus/dbus-userdb.c (_dbus_user_database_lookup): fix bug when
9831         username was provided but not uid
9832
9833         * bus/config-parser.c (struct BusConfigParser): keep track of
9834         whether the parser is toplevel or was included; change some
9835         of the error handling if it's included.
9836
9837 2003-04-27  Havoc Pennington  <hp@pobox.com>
9838
9839         Unbreak my code...
9840
9841         * dbus/dbus-transport.c (_dbus_transport_get_dispatch_status):
9842         report correct status if we finish processing authentication
9843         inside this function.
9844
9845         * bus/activation.c (try_send_activation_failure): use
9846         bus_transaction_send_error_reply
9847
9848         * bus/connection.c (bus_connection_get_groups): return an error
9849         explaining the problem
9850
9851         * bus/bus.c (bus_context_check_security_policy): implement
9852         restriction here that inactive connections can only send the
9853         hello message. Also, allow bus driver to send anything to
9854         any recipient.
9855
9856         * bus/connection.c (bus_connection_complete): create the
9857         BusClientPolicy here instead of on-demand.
9858         (bus_connection_get_policy): don't return an error
9859
9860         * dbus/dbus-message.c (dbus_message_new_error_reply): allow NULL
9861         sender field in message being replied to
9862
9863         * bus/bus.c (bus_context_check_security_policy): fix silly typo
9864         causing it to return FALSE always
9865
9866         * bus/policy.c (bus_client_policy_check_can_send): fix bug where
9867         we checked sender rather than destination
9868
9869 2003-04-25  Havoc Pennington  <hp@redhat.com>
9870
9871         test suite is slightly hosed at the moment, will fix soon
9872
9873         * bus/connection.c (bus_connections_expire_incomplete): fix to
9874         properly disable the timeout when required
9875         (bus_connection_set_name): check whether we can remove incomplete
9876         connections timeout after we complete each connection.
9877
9878         * dbus/dbus-mainloop.c (check_timeout): fix this up a bit,
9879         probably still broken.
9880
9881         * bus/services.c (bus_registry_acquire_service): implement max
9882         number of services owned, and honor allow/deny rules on which
9883         services a connection can own.
9884
9885         * bus/connection.c (bus_connection_get_policy): report errors here
9886
9887         * bus/activation.c: implement limit on number of pending
9888         activations
9889
9890 2003-04-25  Havoc Pennington  <hp@redhat.com>
9891
9892         * dbus/dbus-transport.c (_dbus_transport_get_unix_user): fix bug
9893         where we used >= 0 instead of != DBUS_UID_UNSET.
9894
9895 2003-04-25  Havoc Pennington  <hp@redhat.com>
9896
9897         * glib/dbus-gmain.c (remove_watch): fix for a crash when watches
9898         were toggled without add/remove, fix from Anders Gustafsson
9899
9900 2003-04-24  Havoc Pennington  <hp@redhat.com>
9901
9902         * test/data/valid-config-files/basic.conf: add <limit> tags to
9903         this test
9904
9905         * bus/config-parser.h, bus/config-parser.c, bus/bus.c: Implement
9906         <limit> tag in configuration file.
9907
9908 2003-04-24  Havoc Pennington  <hp@redhat.com>
9909
9910         * bus/dispatch.c: somehow missed some name_is
9911
9912         * dbus/dbus-timeout.c (_dbus_timeout_set_enabled)
9913         (_dbus_timeout_set_interval): new
9914
9915         * bus/connection.c (bus_connections_setup_connection): record time
9916         when each connection is first set up, and expire them after the
9917         auth timeout passes.
9918
9919 2003-04-24  Havoc Pennington  <hp@redhat.com>
9920
9921         * dbus/dbus-message.c (dbus_message_name_is): rename
9922         (dbus_message_service_is): rename
9923         (dbus_message_sender_is): rename
9924         (dbus_message_get_service): rename
9925
9926 2003-04-24  Havoc Pennington  <hp@redhat.com>
9927
9928         * configure.in: add --enable-checks
9929
9930         * dbus/dbus-message.c (dbus_message_new): reverse name/service arguments
9931
9932         * dbus/dbus-connection.c (dbus_connection_preallocate_send): fix
9933         to use thread locks.
9934         (_dbus_connection_handler_destroyed_locked): move some private
9935         functions into proper docs group
9936
9937         * dbus/dbus-internals.h: add _dbus_return_if_fail,
9938         _dbus_return_val_if_fail
9939
9940         Throughout: use dbus_return_if_fail
9941
9942 2003-04-23  James Willcox  <jwillcox@gnome.org>
9943
9944         * glib/dbus-glib.h:
9945         * glib/dbus-gmain.c: (add_timeout), (wakeup_main), (create_source),
9946         (dbus_connection_setup_with_g_main),
9947         (dbus_server_setup_with_g_main):
9948         * glib/test-dbus-glib.c: (main):
9949         * glib/test-thread-client.c: (main):
9950         * glib/test-thread-server.c: (new_connection_callback), (main):
9951         * tools/dbus-monitor.c: (main):
9952
9953         Added a GMainContext argument to dbus_connection_setup_with_g_main()
9954         and dbus_server_setup_with_g_main().
9955
9956 2003-04-20  Havoc Pennington  <hp@pobox.com>
9957
9958         * doc/dbus-specification.sgml: document the restrictions on
9959         message and service names
9960
9961 2003-04-22  Havoc Pennington  <hp@redhat.com>
9962
9963         * dbus/dbus-message.c, dbus/dbus-marshal.c: add 64-bit integer
9964         support, and do some code cleanups to share more code and
9965         speed up array marshal/demarshal.
9966
9967         * dbus-1.0.pc.in (Cflags): put libdir include file in cflags
9968
9969         * configure.in: generate dbus-arch-deps.h
9970
9971         * dbus/dbus-protocol.h (DBUS_TYPE_INT64, DBUS_TYPE_UINT64): add
9972         64-bit typecodes
9973
9974 2003-04-22  Havoc Pennington  <hp@redhat.com>
9975
9976         * test/data/valid-messages/opposite-endian.message: fix test
9977         to use proper type for rply field
9978
9979         * test/data/invalid-messages: add tests for below validation
9980
9981         * dbus/dbus-message.c (decode_header_data): validate field types,
9982         and validate that named fields are valid names
9983         (decode_name_field): consider messages in the
9984         org.freedesktop.Local. namespace to be invalid.
9985
9986         * dbus/dbus-string.c (_dbus_string_validate_name): new
9987
9988 2003-04-19  Havoc Pennington  <hp@pobox.com>
9989
9990         * bus/driver.c (bus_driver_handle_hello): check limits and
9991         return an error if they are exceeded.
9992
9993         * bus/connection.c: maintain separate lists of active and inactive
9994         connections, and a count of each. Maintain count of completed
9995         connections per user. Implement code to check connection limits.
9996
9997         * dbus/dbus-list.c (_dbus_list_unlink): export
9998
9999         * bus/bus.c (bus_context_check_security_policy): enforce a maximum
10000         number of bytes in the message queue for a connection
10001
10002 2003-04-18  Havoc Pennington  <hp@pobox.com>
10003
10004         * dbus/dbus-auth.c (record_mechanisms): memleak fixes
10005
10006         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): fix some
10007         memleaks
10008
10009         * dbus/dbus-keyring.c (add_new_key): fix a memleak, and
10010         on realloc be sure to update the pointer in the keyring
10011
10012         * dbus/dbus-string.c (_dbus_string_zero): compensate for align
10013         offset to avoid writing to unallocated memory
10014
10015         * dbus/dbus-auth.c (process_rejected): return FALSE if we fail to
10016         try the next mechanism, so we properly handle OOM
10017
10018         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): fix double-free
10019         on OOM.
10020         (_dbus_keyring_new): fix OOM bug
10021         (_dbus_keyring_new_homedir): always set error; impose a maximum
10022         number of keys we'll load from the file, mostly to speed up the
10023         test suite and make its OOM checks more useful, but also for
10024         general sanity.
10025
10026         * dbus/dbus-auth.c (process_error_server): reject authentication
10027         if we get an error from the client
10028         (process_cancel): on cancel, send REJECTED, per the spec
10029         (process_error_client): send CANCEL if we get an error from the
10030         server.
10031
10032 2003-04-18  Havoc Pennington  <hp@pobox.com>
10033
10034         * dbus/dbus-mainloop.c (_dbus_loop_iterate): fix UMR in verbose
10035         debug spew
10036
10037         * dbus/dbus-auth.c (handle_client_data_cookie_sha1_mech): fix OOM
10038         handling problem
10039
10040         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): only whine
10041         about DBUS_TEST_HOMEDIR once
10042
10043         * bus/Makefile.am (TESTS_ENVIRONMENT): put DBUS_TEST_HOMEDIR in
10044         the environment
10045
10046         * bus/dispatch.c (bus_dispatch_sha1_test): actually load sha1
10047         config file so we test the right thing
10048
10049         Throughout: assorted docs improvements
10050
10051 2003-04-18  Havoc Pennington  <hp@pobox.com>
10052
10053         * glib/dbus-gmain.c: adapt to watch changes
10054
10055         * bus/bus.c, bus/activation.c, etc.: adjust to watch changes
10056
10057         * dbus/dbus-server.h: remove dbus_server_handle_watch
10058
10059         * dbus/dbus-connection.h: remove dbus_connection_handle_watch
10060
10061         * dbus/dbus-watch.c (dbus_watch_handle): change DBusWatch to work
10062         like DBusTimeout, so we don't need dbus_connection_handle_watch
10063         etc.
10064
10065 2003-04-17  Havoc Pennington  <hp@redhat.com>
10066
10067         * dbus/dbus-userdb.c, dbus/dbus-sysdeps.c: redo all the passwd
10068         database usage so it all goes via the DBusUserDatabase cache.
10069
10070 2003-04-17  Havoc Pennington  <hp@redhat.com>
10071
10072         * dbus/dbus-mainloop.c (_dbus_loop_iterate): fix logic so that if
10073         there was an OOM watch we skipped, we always return TRUE so we
10074         iterate again to have a look at it again. Fixes test suite hang.
10075         Code rearrangement also lets us lose some memset and only iterate
10076         over callbacks once.
10077
10078         * bus/driver.c (bus_driver_handle_message): sense of test for
10079         reply was backward
10080
10081 2003-04-16  Havoc Pennington  <hp@pobox.com>
10082
10083         * doc/dbus-specification.sgml: make spec say serials are unsigned
10084
10085         * dbus/dbus-message.h: change message serials to unsigned
10086
10087         * dbus/dbus-connection.c: adapt to message serials being unsigned
10088
10089 2003-04-15  Havoc Pennington  <hp@pobox.com>
10090
10091         * bus/bus.c: create and keep around a shared DBusUserDatabase
10092         object.
10093
10094         * bus/connection.c (bus_connection_get_groups): don't cache
10095         groups for user in the connection object, since user database
10096         object now does that.
10097
10098 2003-04-16  Havoc Pennington  <hp@redhat.com>
10099
10100         * dbus/dbus-message.c (_dbus_message_add_size_counter): keep a
10101         list of size counters
10102         (_dbus_message_loader_putback_message_link): put back a popped link
10103
10104         * dbus/dbus-connection.c
10105         (dbus_connection_set_max_live_messages_size): rename
10106         max_received_size
10107         (dbus_connection_get_outgoing_size): get size of outgoing
10108         queue
10109         (_dbus_connection_set_connection_counter): remove this cruft
10110
10111 2003-04-14  Havoc Pennington  <hp@redhat.com>
10112
10113         * dbus/dbus-userdb.c: user database abstraction, mostly to get
10114         caching, but at some point we might want to be able to use a
10115         different database.
10116
10117         * bus/dispatch.c (bus_dispatch_sha1_test): add a test that uses
10118         SHA1 conf file to test the sha1 auth mechanism, since the regular
10119         test always uses EXTERNAL when available.
10120
10121         * configure.in,
10122         test/data/valid-config-files/debug-allow-all-sha1.conf.in:
10123         add conf file that requires use of sha1 auth
10124
10125 2003-04-13  Havoc Pennington  <hp@pobox.com>
10126
10127         * tools/dbus-send.c, tools/dbus-monitor.c: two utility programs
10128         from Philip Blundell to send messages and monitor them.
10129
10130 2003-04-13  Havoc Pennington  <hp@pobox.com>
10131
10132         * dbus/dbus-mainloop.c: fix some reentrancy issues by refcounting
10133         callbacks
10134
10135         * test/data/valid-config-files/debug-allow-all.conf.in: allow all
10136         users
10137
10138         * dbus/dbus-transport.c (_dbus_transport_get_dispatch_status):
10139         fix to only recover unused bytes if we're already authenticated
10140         (_dbus_transport_get_is_authenticated): fix to still mark us
10141         authenticated if there are unused bytes.
10142
10143         * bus/dispatch.c: implement security policy checking
10144
10145         * bus/connection.c (bus_transaction_send_from_driver): new
10146
10147         * bus/bus.c (bus_context_check_security_policy): new
10148
10149         * bus/dispatch.c (send_service_nonexistent_error): delete this,
10150         now we just set the DBusError and it gets converted to an error
10151         reply.
10152
10153         * bus/connection.c (allow_user_function): enable code using actual
10154         data from the config file
10155
10156         * bus/policy.c (list_allows_user): handle wildcard rules for
10157         user/group connection perms
10158
10159 2003-04-13  Havoc Pennington  <hp@pobox.com>
10160
10161         * bus/config-parser.c: Load up the BusPolicy and BusPolicyRules
10162
10163         * dbus/dbus-sysdeps.c (_dbus_get_user_id): new function
10164
10165         * bus/policy.c (bus_policy_append_mandatory_rule)
10166         (bus_policy_append_default_rule, bus_policy_append_user_rule)
10167         (bus_policy_append_group_rule): new functions
10168
10169 2003-04-12  Havoc Pennington  <hp@pobox.com>
10170
10171         * bus/config-parser.c (bus_config_parser_new): fix a memleak
10172
10173         * dbus/dbus-sysdeps.c: change DBusCredentials to use longs for
10174         the pid/gid/uid, just for paranoia.
10175
10176         * test/break-loader.c (randomly_do_n_things): find a byte
10177         containing a type code, and randomly change it to a different
10178         type code.
10179
10180 2003-04-12  Havoc Pennington  <hp@pobox.com>
10181
10182         * bus/policy.h: change BusPolicy to be the thing from the config
10183         file, and rename old BusPolicy to BusClientPolicy
10184
10185         * bus/bus.c, bus/connection.c, bus/config-parser.c: change to
10186         match change in how policy works
10187
10188         * dbus/dbus-internals.h: mark assert_not_reached as
10189         __attribute((noreturn))__
10190
10191 2003-04-11  Havoc Pennington  <hp@redhat.com>
10192
10193         * doc/dbus-specification.sgml: fix a spot with the wrong name for
10194         the broadcast service. Use boolean return for ServiceExists.
10195
10196 2003-04-11  Havoc Pennington  <hp@redhat.com>
10197
10198         * configure.in: add another directory to look for qt in.
10199
10200 2003-04-11  Havoc Pennington  <hp@redhat.com>
10201
10202         * AUTHORS: add Colin Walters
10203
10204 2003-04-11  Havoc Pennington  <hp@redhat.com>
10205
10206         * NEWS: update
10207
10208         * configure.in: 0.9
10209
10210 2003-04-11  Havoc Pennington  <hp@redhat.com>
10211
10212         * bus/messagebus.in: remove pid file when stopping the
10213         message bus, since the bus won't have privileges to remove it
10214         itself.
10215
10216 2003-04-11  Havoc Pennington  <hp@redhat.com>
10217
10218         * bus/bus.c (bus_context_new): move credentials change after
10219         creating pidfile
10220
10221 2003-04-11  Havoc Pennington  <hp@pobox.com>
10222
10223         * test/decode-gcov.c: add "below average functions" to the
10224         coverage report, and change how some of the code works.
10225
10226         * bus/test-main.c: bracket some stuff in DBUS_BUILD_TESTS so it's
10227         not in the coverage stats.
10228
10229         * test/test-service.c (main): use _dbus_verbose not fprintf in a
10230         couple places so running the test suite doesn't result in megaspam.
10231
10232 2003-04-11  Havoc Pennington  <hp@pobox.com>
10233
10234         * bus/dispatch.c (check_existent_service_activation): accept a no
10235         memory error in a place we didn't before
10236
10237         * bus/test.c (bus_test_run_everything): remove hacky "do it twice
10238         in case the first one failed," since the test suite is less
10239         broken now.
10240
10241 2003-04-10  Havoc Pennington  <hp@pobox.com>
10242
10243         * bus/dispatch.c (check_segfault_service_activation): add test
10244         for launching an executable that just crashes.
10245
10246         * test/test-segfault.c (main): try setting coredumpsize to 0 so we
10247         don't leave a million cores. We'll see how portable this is.
10248
10249 2003-04-10  Havoc Pennington  <hp@pobox.com>
10250
10251         * dbus/dbus-spawn.c (_dbus_spawn_async_with_babysitter): move all
10252         the possible parent failures before we fork, so that we don't
10253         fail to create a babysitter after creating the child.
10254
10255         * bus/activation.c (bus_activation_activate_service): kill child
10256         if we don't successfully complete the activation.
10257
10258 2003-04-10  Havoc Pennington  <hp@redhat.com>
10259
10260         * dbus/dbus-connection.c (dbus_connection_flush): don't spin on
10261         the connection if it's disconnected
10262
10263         * bus/activation.c (bus_activation_service_created): use new
10264         transaction features to roll back removal of pending activation if
10265         we don't successfully create the service after all. Don't remove
10266         pending activation if the function fails.
10267
10268         * dbus/dbus-list.c (_dbus_list_insert_before_link)
10269         (_dbus_list_insert_after_link): new code to facilitate
10270         services.c fixes
10271
10272         * dbus/dbus-hash.c (_dbus_hash_table_insert_string_preallocated):
10273         new functionality, so we can preallocate the ability to insert
10274         into a hash table.
10275
10276         * bus/connection.c (bus_transaction_add_cancel_hook): new function
10277         allowing us to put custom hooks in a transaction to be used for
10278         cancelling said transaction
10279
10280         * doc/dbus-specification.sgml: add some discussion of secondary
10281         service owners, and disallow zero-length service names
10282
10283         * bus/services.c (bus_registry_acquire_service): new function,
10284         splits out part of bus_driver_handle_acquire_service() and fixes
10285         a bug where we didn't remove the service doing the acquiring
10286         from the secondary queue if we failed to remove the current owner
10287         from the front of the queue.
10288
10289 2003-04-10  Alexander Larsson  <alexl@redhat.com>
10290
10291         * doc/dbus-specification.sgml:
10292         s/org.freedesktop.Broadcast/org.freedesktop.DBus.Broadcast/
10293
10294 2003-04-10  Alexander Larsson  <alexl@redhat.com>
10295
10296         * bus/.cvsignore:
10297         * glib/.cvsignore:
10298         * test/.cvsignore:
10299         Added files to cvsignore
10300
10301         * dbus/dbus-message.h:
10302         * dbus/dbus-message.c: (dbus_message_iter_get_named):
10303         Make get_named() take two out argument and return a boolean.
10304         (dbus_message_iter_get_args_valist):
10305         Update usage of get_named().
10306         (dbus_message_iter_append_byte):
10307         Fix typo
10308         (dbus_message_iter_append_named)
10309         Fix typo
10310         (message_iter_test), (check_message_handling_type), (_dbus_message_test):
10311         More tests.
10312
10313 2003-04-10  Alexander Larsson  <alexl@redhat.com>
10314
10315         * dbus/dbus-marshal.[ch]:
10316         Add array_type_pos argument to _dbus_marshal_validate_arg.
10317         Let you pass a NULL end_pos to _dbus_marshal_validate_type.
10318
10319         * dbus/dbus-message.[ch]:
10320         Multi-dimensional arrays have full type specification in the
10321         outermost array. Iter code re-arranged to handle this.
10322         Added some more iter tests.
10323
10324         * doc/dbus-specification.sgml:
10325         Add me to authors.
10326         Remove old FIXME.
10327         Update new array encoding description.
10328         Correct DBUS_SERVICE_FLAGS_REPLACE_EXISTING description.
10329
10330         * test/data/invalid-messages/array-with-mixed-types.message:
10331         * test/data/valid-messages/array-of-array-of-uint32.message:
10332         Change to the new array format.
10333
10334         * test/data/invalid-messages/too-short-dict.message:
10335         Fix bug in test.
10336
10337         * test/data/valid-messages/recursive-types.message:
10338         Fix up and extend test.
10339
10340 2003-04-10  Havoc Pennington  <hp@pobox.com>
10341
10342         * bus/dispatch.c: lots of fixes
10343
10344         * dbus/dbus-mainloop.c (_dbus_loop_dispatch): export
10345         (_dbus_loop_iterate): remove old "quit if no callbacks" code,
10346         that was crack, broke the test service.
10347
10348         * dbus/dbus-transport.c (_dbus_transport_open): fix error
10349         handling to avoid piling up errors if we get a failure on the
10350         first address.
10351
10352         * dbus/dbus-internals.c (_dbus_real_assert_not_reached): include
10353         pid in assertion failures.
10354
10355         * dbus/dbus-mainloop.c (_dbus_loop_iterate): use static arrays up
10356         to some fixed size of file descriptor array. Don't return TRUE
10357         anytime a timeout exists, that led to lots of busy loop silliness
10358         in the tests.
10359
10360 2003-04-09  Havoc Pennington  <hp@redhat.com>
10361
10362         * dbus/dbus-mainloop.c (check_timeout): fix timeouts, I thought
10363         I'd checked this in earlier but hadn't.
10364
10365 2003-04-09  Havoc Pennington  <hp@redhat.com>
10366
10367         * bus/dispatch.c (bus_dispatch_test): get a bit further through
10368         the activation test (man this is getting old!)
10369
10370 2003-04-09  Havoc Pennington  <hp@redhat.com>
10371
10372         * test/test-utils.c: use dispatch status function to fix this up
10373
10374         * bus/connection.c (connection_watch_callback): don't dispatch
10375         from here
10376         (connection_timeout_callback): don't dispatch from here
10377         (bus_connections_setup_connection): set the dispatch status function
10378         (bus_connection_disconnected): unset it
10379
10380         * dbus/dbus-mainloop.c (_dbus_loop_queue_dispatch): new function
10381         used to add a connection to be dispatched
10382         (_dbus_loop_iterate): do the dispatching at the end of each
10383         iteration
10384
10385         * dbus/dbus-connection.c
10386         (dbus_connection_set_dispatch_status_function): new function
10387         allowing us to fix up main loop usage
10388         (_dbus_connection_last_unref): free all the various function
10389         user data
10390         (dbus_connection_dispatch): call the DispatchStatusFunction
10391         whenever this function returns
10392         (dbus_connection_handle_watch): call DispatchStatusFunction
10393         (dbus_connection_send_with_reply_and_block): call DispatchStatusFunction
10394         (reply_handler_timeout): call DispatchStatusFunction
10395         (dbus_connection_flush): call DispatchStatusFunction
10396
10397 2003-04-09  Havoc Pennington  <hp@redhat.com>
10398
10399         * dbus/dbus-bus.c (dbus_bus_register): fix up error handling and
10400         a memory leak
10401
10402         * bus/dispatch.c (check_service_activated): fix bug in test
10403
10404         * dbus/dbus-mainloop.c (check_timeout): fix this up
10405
10406         * dbus/dbus-internals.c (_dbus_verbose_real): include PID in
10407         verbose output so we can sort out output from different processes,
10408         e.g. in the activation case.
10409
10410 2003-04-08  Colin Walters  <walters@gnu.org>
10411
10412         * bus/bus.c (struct BusContext) [pidfile]: New member, to store
10413         the pid file.
10414         (bus_context_new): Set it.
10415         (bus_context_unref): Use it to delete the pid file.
10416
10417 2003-04-08  Havoc Pennington  <hp@redhat.com>
10418
10419         * test/data/invalid-messages/array-with-mixed-types.message:
10420         regression test that fails for the moment
10421
10422         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): reorder
10423         tests for convenience
10424
10425         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): don't allow
10426         array of nil, it broke things.
10427
10428         * test/data/invalid-messages/array-of-nil.message: regression test
10429
10430         * test/data/valid-messages/array-of-array-of-uint32.message:
10431         happened to write this so added it to suite
10432
10433 2003-04-08  Havoc Pennington  <hp@redhat.com>
10434
10435         * bus/driver.c (bus_driver_handle_acquire_service): init
10436         retval/reply before checking name
10437
10438         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): add a
10439         recursion depth argument
10440
10441         * dbus/dbus-message.h (struct DBusMessageIter): put some padding
10442         in the public struct for future extension
10443
10444         * dbus/dbus-message-builder.c (_dbus_message_data_load): fix
10445         typo
10446
10447         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): fix a verbose
10448         message
10449
10450         * doc/dbus-specification.sgml: fix typo
10451
10452 2003-04-08  Alexander Larsson  <alexl@redhat.com>
10453
10454         Implemented recursive types, named types and new-style iters
10455
10456         * bus/driver.c:
10457         * glib/test-thread-client.c: (thread_func):
10458         * glib/test-thread-server.c: (handle_test_message):
10459         * test/test-service.c: (handle_echo):
10460         Update to new api
10461
10462         * dbus/Makefile.am:
10463         * dbus/dbus-dict.c:
10464         * dbus/dbus-dict.h:
10465         * dbus/dbus.h
10466         Remove DBusDict
10467
10468         * dbus/dbus-internals.c: (_dbus_type_to_string):
10469         Update for new types.
10470
10471         * dbus/dbus-marshal.[ch]:
10472         Implement recursive types and the new marshalling format.
10473         Remove hardcoded dict marshalling.
10474         Marshal named types.
10475
10476         * dbus/dbus-message-builder.c:
10477         Add BYTE_ARRAY.
10478         Remove references to old types
10479
10480         * dbus/dbus-message.[ch]:
10481         New non-refcounted iter API that supports recursive iters.
10482         Use iters for appending, including support for recursive
10483         iters.
10484         Add byte and named type support.
10485         Update everything to new marshalling formats.
10486         Add tests for new API.
10487
10488         * dbus/dbus-protocol.h:
10489         Remove old array types.
10490         Add types: BYTE, ARRAY, DICT, NAMED
10491
10492         * dbus/dbus-string.c:
10493         * dbus/dbus-sysdeps.c:
10494         Make parse_double locale safe.
10495
10496         * dbus/dbus-test-main.c:
10497         Call setlocale.
10498
10499         * dbus/dbus-test.c:
10500         Kill dict test
10501
10502         * doc/dbus-specification.sgml:
10503         Update spec
10504
10505         * test/data/incomplete-messages/missing-body.message:
10506         * test/data/invalid-messages/bad-boolean.message:
10507         * test/data/invalid-messages/bad-boolean-array.message:
10508         * test/data/invalid-messages/boolean-array-length-too-long.message-raw:
10509         * test/data/invalid-messages/boolean-has-no-value.message-raw:
10510         * test/data/invalid-messages/too-short-dict.message:
10511         * test/data/valid-messages/dict-simple.message:
10512         * test/data/valid-messages/dict.message:
10513         * test/data/valid-messages/emptiness.message:
10514         * test/data/valid-messages/lots-of-arguments.message:
10515         * test/data/valid-messages/no-padding.message:
10516         * test/data/valid-messages/recursive-types.message:
10517         Add missing NAME fields
10518         Fix up dicts & arrays
10519
10520         * test/data/invalid-messages/dict-with-nil-value.message:
10521         Removed, this is not invalid anymore.
10522
10523         * test/data/valid-messages/recursive-types.message:
10524         Add new test for deeply recursive types.
10525
10526 2003-04-07  Havoc Pennington  <hp@pobox.com>
10527
10528         * bus/driver.c (bus_driver_handle_acquire_service): return an
10529         error if you try to acquire a service that starts with ':'
10530
10531 2003-04-07  Havoc Pennington  <hp@redhat.com>
10532
10533         * doc/dbus-specification.sgml: require that base service names
10534         start with ':' and that the base service is created/deleted
10535         as first and last things a connection does on the bus
10536
10537         * bus/dispatch.c (check_existent_service_activation): lots more
10538         work on the activation test; it doesn't fully pass yet...
10539
10540         * test/test-service.c (main): fix so we don't memleak the
10541         connection to the message bus
10542         (filter_func): accept a message asking us to exit
10543
10544 2003-04-06  Havoc Pennington  <hp@pobox.com>
10545
10546         * qt/Makefile.am (dbusinclude_HEADERS): install dbus-qt.h,
10547         from Colin Walters
10548
10549         * configure.in: fixes to Qt detection from Colin Walters
10550
10551         * doc/Makefile.am: Only remove generated docbook dirs if they
10552         exist, from Colin Walters
10553
10554         * dbus/dbus-bus.c: change how we set well-known connections to
10555         NULL, so that it works if a single connection is stored in
10556         two well-known array slots.
10557
10558         * test/Makefile.am: remove a lot of stuff that isn't immediately
10559         useful, it's in CVS history if we want it.
10560
10561         * test/test-service.c: use dbus-mainloop instead of that
10562         watch.[hc] crack
10563
10564 2003-04-06  Havoc Pennington  <hp@pobox.com>
10565
10566         * dbus/Makefile.am: split lists of sources into stuff that goes in
10567         the library, util functions that go in the lib and are also used
10568         elsewhere, and util functions that are used in tests/daemon but
10569         don't go in the lib.
10570
10571         * dbus/dbus-mainloop.h, dbus/dbus-mainloop.c: move bus/loop.[hc]
10572         here so it can be used in test binaries also
10573
10574 2003-04-06  Havoc Pennington  <hp@pobox.com>
10575
10576         * dbus/dbus-sysdeps.c (_dbus_become_daemon): write the pidfile
10577         here in the parent process, so we can return an error if it
10578         fails. Also, move some of the code into the child so the parent
10579         is less hosed if we fail midway through.
10580
10581         * bus/bus.c (bus_context_new): move pidfile detection further up
10582         in the function, before we start overwriting sockets and such.
10583
10584         * bus/messagebus.in: adjust this a bit, not sure if it will work.
10585
10586         * configure.in: add --with-system-pid-file and --with-system-socket
10587
10588 2003-04-06  Colin Walters  <walters@verbum.org>
10589
10590         * configure.in (DBUS_SYSTEM_PID_FILE): New variable.
10591
10592         * bus/system.conf.in: Declare a pidfile.
10593
10594         * bus/bus.c (bus_context_new): Test for an existing pid file, and
10595         create one (if appropriate).
10596
10597         * bus/config-parser.c (enum ElementType) [ELEMENT_PIDFILE]: New.
10598         (struct BusConfigParser) [pidfile]: New.
10599         (element_type_to_name, merge_included, start_busconfig_child)
10600         (bus_config_parser_end_element, bus_config_parser_content): Handle it.
10601         (bus_config_parser_unref): Free it.
10602         (bus_config_parser_get_pidfile): New function.
10603
10604         * bus/config-parser.h (_dbus_write_pid_file): Prototype.
10605
10606         * dbus/dbus-errors.h (DBUS_ERROR_PIDFILE_EXISTS): New error.
10607
10608         * dbus/dbus-sysdeps.c (_dbus_write_pid_file): New function.
10609
10610         * dbus/dbus-sysdeps.h: Prototype it.
10611
10612 2003-04-06  Havoc Pennington  <hp@pobox.com>
10613
10614         * bus/bus.c (bus_context_new): print the address in here, rather
10615         than in main(), because we need to do it before forking the daemon
10616
10617         * bus/dispatch.c (send_service_nonexistent_error): set the sender
10618         on the service nonexistent error
10619
10620         * bus/driver.c (bus_driver_handle_acquire_service): set the
10621         sender on the AcquireService reply
10622
10623         * test/data/valid-config-files/debug-allow-all.conf.in: Make test
10624         server also listen on a UNIX socket so services can connect to it.
10625
10626 2003-04-06  Havoc Pennington  <hp@pobox.com>
10627
10628         * dbus/dbus-threads.c: Redo how the fake debug mutexes are done
10629         so it detects deadlocks and also we actually init threads when
10630         debugging.
10631
10632 2003-04-06  Havoc Pennington  <hp@pobox.com>
10633
10634         * dbus/dbus-server-unix.c (_dbus_server_new_for_domain_socket):
10635         save the domain socket name, and unlink it when we disconnect the
10636         server. Means that at least when we exit normally, we won't leave
10637         a bunch of junk in /tmp
10638
10639         * dbus/dbus-transport-unix.c
10640         (_dbus_transport_new_for_domain_socket): code cleanup (nicer
10641         memory management). (I was making a real change here but then
10642         didn't)
10643
10644 2003-04-06  Havoc Pennington  <hp@pobox.com>
10645
10646         * bus/bus.c (bus_context_new): fix wrong handling of
10647         server_data_slot_unref() in the error case.
10648
10649         * dbus/dbus-internals.h (_dbus_assert): change so it passes
10650         "(condition) != 0" to _dbus_real_assert so that
10651         "_dbus_assert (pointer)" doesn't cause a warning
10652
10653         * bus/main.c (main): accept --print-address option to print out
10654         the message bus address
10655
10656         * dbus/dbus-sysdeps.c (_dbus_generate_random_ascii): export this
10657
10658         * dbus/dbus-transport.c (_dbus_transport_open): special error for
10659         "tmpdir" option to unix: address on client side
10660
10661         * dbus/dbus-server.c (dbus_server_listen): handle "tmpdir" option
10662         to unix: address
10663
10664         * configure.in (TEST_SOCKET_DIR): locate a temporary directory
10665         we can use to create sockets in the test suite.
10666
10667         * bus/main.c (signal_handler): on SIGTERM, exit the daemon
10668         cleanly. To be used for testing.
10669
10670         * dbus/dbus-spawn.c (babysit): use _dbus_set_signal_handler()
10671
10672         * dbus/dbus-sysdeps.c (_dbus_set_signal_handler): new
10673
10674         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
10675         handle trying to call this when there's no servers active
10676
10677 2003-04-05  Havoc Pennington  <hp@pobox.com>
10678
10679         * NEWS: update
10680
10681         * configure.in: 0.8
10682
10683 2003-04-05  Havoc Pennington  <hp@pobox.com>
10684
10685         * bus/bus.c (setup_server): fix this so dbus-daemon-1 doesn't
10686         crash on startup. Need to get "try starting the daemon"
10687         in the test suite I guess. ;-)
10688
10689         * dbus/dbus-server.h, dbus/dbus-server.c: remove the stuff that
10690         tracked the number of open connections; it's better done in
10691         application-specific code as you want it to span all servers etc.
10692
10693 2003-04-05  Havoc Pennington  <hp@pobox.com>
10694
10695         * bus/Makefile.am (install-data-hook): add missing DESTDIR,
10696         patch from Colin Walters
10697
10698 2003-04-05  Havoc Pennington  <hp@pobox.com>
10699
10700         * doc/config-file.txt (Elements): fix docs of <auth> to reflect
10701         reality; in fact multiple mechanisms are allowed.
10702
10703         * dbus/dbus-internals.c (_dbus_real_assert)
10704         (_dbus_real_assert_not_reached): move guts of _dbus_assert() and
10705         _dbus_assert_not_reached() into functions, so that they don't show
10706         up in basic block counts for test coverage, and don't use up as
10707         much disk space. Does mean slower execution speed though, so
10708         assumes --disable-asserts is the normal production case.
10709
10710 2003-04-05  Havoc Pennington  <hp@pobox.com>
10711
10712         * test/Makefile.am (dist-hook): also dist *.in files
10713
10714         * NEWS: update
10715
10716         * configure.in: 0.7
10717
10718 2003-04-05  Havoc Pennington  <hp@pobox.com>
10719
10720         * dbus/dbus-string.c: docs warning
10721
10722         * dbus/dbus-spawn.c: missing docs
10723
10724         * dbus/dbus-memory.c (struct ShutdownClosure): missing docs
10725
10726 2003-04-05  Havoc Pennington  <hp@pobox.com>
10727
10728         * bus/loop.c (bus_loop_iterate): fix the timeout code, using
10729         magic from GLib
10730
10731         * dbus/dbus-spawn.c (_dbus_babysitter_unref): set sitter_pid
10732         to -1 once we've reaped the babysitter
10733         (_dbus_babysitter_handle_watch): do as much work as we can, not
10734         just one go of it
10735
10736         * bus/activation.c: add code using DBusBabysitter so that we
10737         handle it when a service fails to start up properly.
10738         (bus_activation_service_created): don't remove the activation
10739         entries as we go, just let them get removed when we free the pending
10740         activation. Unref reply messages after sending them.
10741
10742 2003-04-05  Havoc Pennington  <hp@pobox.com>
10743
10744         * test/decode-gcov.c (main): print per-directory stats in the report
10745
10746         * Makefile.am (coverage-report.txt): don't include test/* in gcov stats
10747
10748 2003-04-05  Havoc Pennington  <hp@pobox.com>
10749
10750         * Makefile.am (coverage-report.txt): add target "coverage-report.txt"
10751
10752         * test/decode-gcov.c: hack up a little program to suck data
10753         out of gcov files. Yes this is sort of silly.
10754
10755         * configure.in: define something in config.h and do an
10756         AM_CONDITIONAL when gcov is enabled
10757
10758 2003-04-04  Havoc Pennington  <hp@redhat.com>
10759
10760         * dbus/dbus-spawn.c, dbus/dbus-spawn.h: Change dbus_spawn to
10761         return a "babysitter" object that is used to monitor the status of
10762         the spawned process and reap it when required.
10763
10764         * test/test-segfault.c, test/test-exit.c,
10765         test/test-sleep-forever.c: binaries that do various lame things,
10766         used in the test suite.
10767
10768         * dbus/dbus-sysdeps.c: kill _dbus_errno_to_string()
10769
10770 2003-04-03  Havoc Pennington  <hp@pobox.com>
10771
10772         * dbus/dbus-spawn.c: Move dbus-spawn into a separate file
10773         in preparation for modifying it, dbus-sysdeps is getting
10774         a bit unmanageable.
10775
10776 2003-04-03  Havoc Pennington  <hp@redhat.com>
10777
10778         * bus/loop.h, bus/loop.c: make the mainloop an object so we can
10779         have multiple ones
10780
10781         * bus/*.[hc]: adapt to mainloop change
10782
10783 2003-04-03  Havoc Pennington  <hp@redhat.com>
10784
10785         * bus/activation.c (load_directory): fix up memleaks
10786         (bus_activation_entry_free): free the entry
10787
10788         * dbus/dbus-bus.c (dbus_bus_acquire_service): return an error if
10789         we get one from the message bus; fix memleaks.
10790
10791         * dbus/dbus-message.c (dbus_set_error_from_message): new function
10792
10793 2003-04-03  Havoc Pennington  <hp@pobox.com>
10794
10795         * bus/config-parser.c (bus_config_parser_unref): free
10796         list of mechanisms, bug discovered by test suite enhancements
10797         (putting system.conf and session.conf into suite)
10798
10799         * test/Makefile.am, test/test-service.c: add placeholder for a
10800         test service that we'll activate as part of test suite. Doesn't
10801         do anything yet.
10802
10803         * dbus/dbus-sysdeps.c (_dbus_setenv): support unsetenv by
10804         setting NULL value, and use system malloc not dbus_malloc()
10805         when we have unavoidable memleakage.
10806
10807         * dbus/dbus-bus.c (dbus_bus_get): fix bug where bus type of 0
10808         didn't work, and support DBUS_BUS_ACTIVATION.
10809
10810         * bus/activation.c (child_setup): pass our well-known bus type to
10811         the child
10812
10813         * bus/config-parser.c: support <type> to specify well-known type
10814
10815         * doc/dbus-specification.sgml: document the env variables to
10816         locate well-known buses and find service activator
10817
10818 2003-04-02  Havoc Pennington  <hp@redhat.com>
10819
10820         * test/Makefile.am (all-local): add a rule to copy tests to
10821         builddir, so we can have generated tests. Use this to remove the
10822         silly hack for testing system.conf and session.conf. Will use this
10823         shortly to generate .service files pointing to test binaries.
10824
10825 2003-04-02  Havoc Pennington  <hp@redhat.com>
10826
10827         * dbus/dbus-string.c (set_length): fix a bug - we allocated max of
10828         current alloc and needed new length, not max of the doubled
10829         allocation and needed new length. Also, when building tests,
10830         don't do the double-allocation stuff, just realloc every time.
10831
10832 2003-04-02  Havoc Pennington  <hp@redhat.com>
10833
10834         * dbus/dbus-sysdeps.c (_dbus_file_get_contents): include filenames
10835         in error messages
10836         (_dbus_string_get_dirname): new
10837         (_dbus_sysdeps_test): new
10838         (_dbus_directory_open): include dirnames in error messages
10839
10840         * bus/config-parser.c: interpret <include> and <includedir> and
10841         <servicedir> relative to config file location if the given
10842         filename is not absolute.
10843
10844         * dbus/dbus-string.c (_dbus_string_find_byte_backward): new
10845
10846 2003-04-02  Havoc Pennington  <hp@redhat.com>
10847
10848         * bus/connection.c (bus_transaction_send_error_reply): set sender
10849         service for the error, and unref the reply on success
10850
10851         * bus/activation.c: convert to use BusTransaction so OOM can be
10852         handled correctly
10853         (bus_activation_service_created): set sender of the message
10854
10855 2003-04-01  Havoc Pennington  <hp@redhat.com>
10856
10857         * bus/config-parser.c, bus/bus.c: implement <servicedir> and
10858         <includedir> (at least mostly)
10859
10860         * dbus/dbus-sysdeps.c (_dbus_change_identity): set the group ID
10861         first, then the user ID
10862
10863 2003-04-01  Havoc Pennington  <hp@pobox.com>
10864
10865         * dbus/dbus-server.c (dbus_server_set_auth_mechanisms): new
10866         function
10867
10868         * dbus/dbus-auth.c (_dbus_auth_set_mechanisms): new
10869
10870         * dbus/dbus-internals.c (_dbus_dup_string_array): new function
10871
10872         * dbus/dbus-sysdeps.c (_dbus_listen_unix_socket): chmod the
10873         socket 0777, and unlink any existing socket.
10874
10875         * bus/bus.c (bus_context_new): change our UID/GID and fork if
10876         the configuration file so specifies; set up auth mechanism
10877         restrictions
10878
10879         * bus/config-parser.c (bus_config_parser_content): add support
10880         for <fork> option and fill in code for <auth>
10881
10882         * bus/system.conf.in: add <fork/> to default configuration,
10883         and limit auth mechanisms to EXTERNAL
10884
10885         * doc/config-file.txt (Elements): add <fork>
10886
10887         * dbus/dbus-sysdeps.c (_dbus_become_daemon): new function
10888         (_dbus_change_identity): new function
10889
10890 2003-03-31  Havoc Pennington  <hp@redhat.com>
10891
10892         * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket)
10893         (_dbus_listen_unix_socket): fix off-by-one error in null
10894         termination spotted by Nalin
10895
10896 2003-03-31  Havoc Pennington  <hp@redhat.com>
10897
10898         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): allow setting
10899         DBUS_TEST_HOMEDIR when tests are enabled, so we can test without
10900         having a real home directory available.
10901
10902 2003-03-31  Havoc Pennington  <hp@redhat.com>
10903
10904         * bus/Makefile.am (install-data-hook): create /var/run/dbus
10905
10906         * bus/messagebus.in: add init script for Red Hat /etc/init.d
10907
10908         * configure.in: add support for specifying a style of init script
10909         to install
10910
10911 2003-03-31  Havoc Pennington  <hp@redhat.com>
10912
10913         Fix some annoying DBusString API and fix all affected code.
10914
10915         * dbus/dbus-string.c (_dbus_string_init): get rid of annoying
10916         max_length argument
10917         (_dbus_string_get_data): change to return string instead of using
10918         an out param
10919         (_dbus_string_get_const_data): ditto
10920         (_dbus_string_get_data_len): ditto
10921         (_dbus_string_get_const_data_len): ditto
10922
10923 2003-03-31  Havoc Pennington  <hp@redhat.com>
10924
10925         * bus/main.c (main): fix up the command line arguments to be nicer
10926
10927 2003-03-31  Havoc Pennington  <hp@redhat.com>
10928
10929         * dbus/Makefile.am (INCLUDES): use EXPANDED_LOCALSTATEDIR to
10930         define DBUS_SYSTEM_BUS_PATH as we want to compile in the same
10931         final location that lands in the config file
10932
10933         * bus/config-loader-expat.c (bus_config_load): fix type of
10934         XML_Parser variable
10935
10936         * doc/TODO: remove TODO item for dbus_bus_get()
10937
10938         * dbus/dbus-bus.c (bus_data_free): add missing lock/unlock
10939
10940 2003-03-31  Havoc Pennington  <hp@pobox.com>
10941
10942         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_domain_socket)
10943         (_dbus_transport_new_for_tcp_socket): these didn't need the "server"
10944         argument since they are always client side
10945
10946         * dbus/dbus-server.c (dbus_server_get_address): new function
10947
10948         * bus/main.c (main): take the configuration file as an argument.
10949
10950         * test/data/valid-config-files/debug-allow-all.conf: new file to
10951         use with dispatch.c tests for example
10952
10953         * bus/test-main.c (main): require test data dir
10954
10955         * bus/bus.c (bus_context_new): change this to take a
10956         configuration file name as argument
10957
10958         * doc/config-file.txt (Elements): add <servicedir>
10959
10960         * bus/system.conf, bus/session.conf: new files
10961
10962         * dbus/dbus-bus.c (dbus_bus_get): look for system bus on
10963         well-known socket if none set
10964
10965         * configure.in: create system.conf and session.conf
10966
10967 2003-03-30  Havoc Pennington  <hp@pobox.com>
10968
10969         * bus/config-parser.c: hacking
10970
10971         * dbus/dbus-memory.c: don't use DBusList for the list of stuff
10972         to shut down, since it could cause weirdness with the DBusList
10973         lock
10974
10975         * dbus/dbus-list.c (_dbus_list_test): add tests for the
10976         link-oriented stack routines
10977         (alloc_link): free the mempool if the first alloc from it fails
10978
10979         * dbus/dbus-mempool.c (struct DBusMemBlock): fix alignment issue
10980
10981         * dbus/dbus-string.c (UNICODE_VALID): sync new version of this
10982         from GLib
10983         (_dbus_string_skip_white): new
10984
10985         * doc/config-file.txt (Elements): add <includedir>
10986
10987 2003-03-28  Havoc Pennington  <hp@pobox.com>
10988
10989         * dbus/dbus-string.c (_dbus_string_copy_data_len)
10990         (_dbus_string_copy_data): new functions
10991
10992 2003-03-28  Anders Carlsson  <andersca@codefactory.se>
10993
10994         * dbus/dbus-bus.c: (bus_data_free), (dbus_bus_get):
10995         * dbus/dbus-bus.h:
10996         Add dbus_bus_get.
10997
10998         * dbus/dbus-memory.c:
10999         Fix a doc comment.
11000
11001 2003-03-28  Havoc Pennington  <hp@pobox.com>
11002
11003         * bus/test.c (bus_test_flush_bus): remove the sleep from here,
11004         I think it may have just been superstition. Not sure.
11005
11006         * dbus/dbus-string.c (_dbus_string_base64_decode): catch some OOM
11007         failures that were not being handled.
11008
11009         * dbus/dbus-auth.c (process_auth): fix a memleak in OOM handling
11010
11011         * dbus/dbus-memory.c: add ability to set number of mallocs in a
11012         row that will fail on out-of-memory.
11013
11014         * dbus/dbus-internals.c (_dbus_test_oom_handling): convenience
11015         function for testing out-of-memory handling.
11016
11017         * bus/config-loader-expat.c (memsuite): don't wrap the dbus
11018         allocation functions, they do map exactly to the expat ones.
11019
11020 2003-03-27  Havoc Pennington  <hp@redhat.com>
11021
11022         * bus/config-loader-libxml.c (bus_config_load): add another error
11023         check
11024
11025 2003-03-26  Anders Carlsson  <andersca@codefactory.se>
11026
11027         * doc/TODO:
11028         Add note about automatic service activation.
11029
11030         * doc/dbus-specification.sgml:
11031         Rename the specification and clarify a few things.
11032
11033 2003-03-26  Anders Carlsson  <andersca@codefactory.se>
11034
11035         * Doxyfile.in:
11036         * dbus/dbus-address.c:
11037         * dbus/dbus-dict.c:
11038         * dbus/dbus-marshal.c:
11039         * dbus/dbus-server-debug-pipe.c:
11040         * dbus/dbus-transport-unix.c:
11041         Fix documentation warnings.
11042
11043 2003-03-26  Havoc Pennington  <hp@pobox.com>
11044
11045         * bus/test-main.c, dbus/dbus-test.c (main): check memleaks
11046         after every test so it's quick and easy to see which leaked, and
11047         so we test multiple dbus_shutdown() calls
11048
11049         * configure.in: change configure.in XML stuff to also support
11050         expat
11051
11052         * config-loader-libxml.c: some hacking
11053
11054         * config-loader-expat.c: some hacking
11055
11056         * config-parser.c: some hacking, plus tests
11057
11058 2003-03-25  Havoc Pennington  <hp@redhat.com>
11059
11060         * throughout - add more _DBUS_ASSERT_ERROR_IS_CLEAR
11061
11062         * configure.in: add --with-xml option to specify XML library,
11063         right now only libxml is supported.
11064
11065         * bus/config-loader-libxml.c, config-parser.c: sync some minor
11066         nonworking code between home and work, still just stubs
11067
11068 2003-03-24  Havoc Pennington  <hp@redhat.com>
11069
11070         * dbus/dbus-sysdeps.c (_dbus_set_fd_nonblocking): move to this
11071         file
11072
11073         * dbus/dbus-errors.c (dbus_set_error, dbus_set_error_const): allow
11074         NULL argument for "message" if the error is a well-known one,
11075         fill in a generic message in this case.
11076
11077         * dbus/dbus-errors.h (DBusResultCode): Kill DBusResultCode in
11078         favor of DBusError
11079
11080         * bus/test.c (bus_test_flush_bus): add
11081
11082         * bus/policy.c (bus_policy_test): test code stub
11083
11084 2003-03-24  Havoc Pennington  <hp@pobox.com>
11085
11086         * bus/connection.c (bus_connections_setup_connection): set up
11087         the "can this user connect" function, but it always returns
11088         TRUE until we have a config file parser so we can have a config
11089         file that allows connections.
11090
11091 2003-03-23  Havoc Pennington  <hp@pobox.com>
11092
11093         * dbus/dbus-threads.c (dbus_mutex_new, dbus_condvar_new): with
11094         DBUS_BUILD_TESTS, actually alloc/free a block of memory for
11095         the mutex, so we can check for proper memory management
11096         and OOM handling.
11097
11098         * dbus/dbus-dataslot.c: remove the mutex from
11099         DBusDataSlotAllocator and lock it manually when using it,
11100         to simplify fitting it into the global slots framework.
11101
11102         * dbus/dbus-threads.c (init_static_locks): rework how we're
11103         handling global locks so they are easily shut down.
11104
11105         * bus/policy.c (bus_policy_append_rule): fix
11106
11107         * bus/test-main.c (main): check for memleaks
11108
11109         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): make
11110         test suite check for memleaks
11111
11112         * dbus/dbus-memory.c: add support in test mode for tracking
11113         number of outstanding blocks
11114
11115 2003-03-23  Havoc Pennington  <hp@pobox.com>
11116
11117         * bus/policy.c, bus/bus.c, bus/connection.c: implement allow/deny
11118         policies code
11119
11120         * dbus/dbus-hash.h: add ULONG hash keys
11121
11122         * dbus/dbus-sysdeps.c (_dbus_get_groups): new
11123         (_dbus_get_group_id): new function
11124
11125 2003-03-20  Havoc Pennington  <hp@redhat.com>
11126
11127         * dbus/dbus-connection.c (dbus_connection_set_unix_user_function):
11128         new function
11129         (dbus_connection_get_unix_user): new function
11130
11131 2003-03-20  Havoc Pennington  <hp@pobox.com>
11132
11133         * bus/connection.c (bus_connection_send_oom_error): assert that
11134         message has a sender
11135         (connection_execute_transaction): ditto
11136         (bus_connection_preallocate_oom_error): fix to set the sender, and
11137         set recipient to the destination service, not the bus driver
11138
11139         * bus/policy.c: hacking
11140
11141         * dbus/dbus-message.c (dbus_message_service_is): new function
11142         (dbus_message_sender_is): new
11143
11144 2003-03-19  Havoc Pennington  <hp@redhat.com>
11145
11146         * bus/policy.c: start sketching code for policy restrictions on
11147         what connections can do.
11148
11149 2003-03-18  Havoc Pennington  <hp@redhat.com>
11150
11151         * doc/TODO: some notes on high-level todo items. Little nitpick
11152         stuff is all in @todo, so no need to add it here.
11153
11154         * doc/config-file.txt: some notes on how config file might look
11155
11156 2003-03-18  Anders Carlsson  <andersca@codefactory.se>
11157
11158         * configure.in: 0.6
11159
11160         * NEWS: Update.
11161
11162 2003-03-17  Havoc Pennington  <hp@redhat.com>
11163
11164         * dbus/dbus-internals.h: add gcc attributes so that
11165         our printf-style functions warn on bad arguments to
11166         format
11167
11168         * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): fix printf
11169         format bug
11170
11171         * dbus/dbus-message.c (_dbus_message_loader_queue_messages): fix
11172         printf format bug
11173
11174 2003-03-17  Havoc Pennington  <hp@redhat.com>
11175
11176         * bus/test-main.c (main): make it print something as it runs
11177         so make check doesn't look stuck
11178
11179         * doc/negotiation.txt, doc/dbus-sasl-profile.txt: remove
11180         from CVS, now obsolete
11181
11182 2003-03-17  Anders Carlsson  <andersca@codefactory.se>
11183
11184         * bus/dispatch.c: (bus_dispatch):
11185         Refetch the service name since it may have been reallocated
11186         when dbus_message_set_sender was called.
11187
11188         * dbus/dbus-sysdeps.c: (_dbus_accept):
11189         Add address and address length variables and use them to stop
11190         valgrind from complaining.
11191
11192 2003-03-17  Havoc Pennington  <hp@pobox.com>
11193
11194         All tests pass, no memleaks, no valgrind complaints.
11195
11196         * bus/test.c: refcount handler_slot
11197
11198         * bus/connection.c (bus_connections_new): refcount
11199         connection_data_slot
11200
11201         * dbus/dbus-auth-script.c (_dbus_auth_script_run): delete unused
11202         bytes so that auth scripts pass.
11203
11204         * bus/dispatch.c: init message_handler_slot so it gets allocated
11205         properly
11206
11207         * bus/dispatch.c (message_handler_slot_ref): fix memleak
11208
11209         * dbus/dbus-server-debug-pipe.c (_dbus_server_debug_pipe_new):
11210         dealloc server_pipe_hash when no longer used for benefit of
11211         leak checking
11212
11213         * dbus/dbus-auth.c (process_command): memleak fix
11214
11215         * bus/dispatch.c (check_hello_message): memleak fix
11216
11217 2003-03-16  Havoc Pennington  <hp@pobox.com>
11218
11219         * dbus/dbus-bus.c (ensure_bus_data): fix double-unref of the data slot
11220
11221 2003-03-17  Anders Carlsson  <andersca@codefactory.se>
11222
11223         * bus/activation.c (bus_activation_activate_service): Append
11224         the pending activation entry to the list of pending activations.
11225
11226 2003-03-16  Havoc Pennington  <hp@pobox.com>
11227
11228         * bus/dispatch.c (bus_dispatch_test): remove double-unrefs of
11229         connections
11230
11231         * dbus/dbus-address.c (create_entry): fix OOM handling when
11232         failing to alloc entry->method
11233
11234 2003-03-16  Havoc Pennington  <hp@pobox.com>
11235
11236         * dbus/dbus-watch.c (_dbus_watch_new): handle failure to malloc
11237         the watch
11238
11239         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
11240         add some missing dbus_set_result
11241
11242         * bus/dispatch.c (bus_dispatch_add_connection): handle failure to
11243         alloc the DBusMessageHandler
11244
11245         * dbus/dbus-transport.c (_dbus_transport_disconnect): don't ref
11246         the transport here, since we call this from the finalizer; it
11247         resulted in a double-finalize.
11248
11249         * dbus/dbus-transport.c (_dbus_transport_disconnect): fix a bug
11250         where we tried to use transport->connection that was NULL,
11251         happened when transport was disconnected early on due to OOM
11252
11253         * bus/*.c: adapt to handle OOM for watches/timeouts
11254
11255         * dbus/dbus-transport-unix.c: port to handle OOM during
11256         watch handling
11257
11258         * dbus/dbus-auth.c (_dbus_auth_get_unused_bytes): return a
11259         reference to unused bytes instead of a copy
11260
11261         * dbus/dbus-server.c (dbus_server_handle_watch): return FALSE for
11262         out of memory
11263
11264         * dbus/dbus-connection.c (dbus_connection_handle_watch): return
11265         FALSE on OOM
11266
11267         * dbus/dbus-timeout.c (dbus_timeout_handle): return FALSE for out
11268         of memory
11269
11270 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
11271
11272         * doc/dbus-specification.sgml:
11273         Document reply message for ActivateService.
11274
11275 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
11276
11277         * bus/activation.c: (bus_pending_activation_entry_free),
11278         (bus_pending_activation_free), (bus_activation_new),
11279         (bus_activation_unref), (bus_activation_service_created),
11280         (bus_activation_activate_service):
11281         * bus/activation.h:
11282         * bus/bus.c: (bus_context_new):
11283         * bus/desktop-file.c: (new_section):
11284         * bus/driver.c: (bus_driver_send_service_deleted),
11285         (bus_driver_handle_activate_service):
11286         * bus/services.c: (bus_registry_new), (bus_registry_ensure):
11287         * bus/services.h:
11288         * dbus/dbus-connection.c:
11289         (dbus_connection_send_with_reply_and_block):
11290         * dbus/dbus-message.c: (dbus_message_append_args_valist):
11291         * dbus/dbus-protocol.h:
11292         Make activation work better. Now pending activations will be queued
11293         and the daemon won't try to activate services that are already registered.
11294
11295 2003-03-16  Havoc Pennington  <hp@pobox.com>
11296
11297         * dbus/dbus-bus.c (ensure_bus_data): handle failure to set
11298         connection data
11299
11300         * dbus/dbus-memory.c (_dbus_initialize_malloc_debug): support
11301         DBUS_MALLOC_BACKTRACES to print trace when failing an alloc
11302
11303 2003-03-16  Havoc Pennington  <hp@pobox.com>
11304
11305         * dbus/dbus-string.c (_dbus_string_validate_utf8): oops, unbreak
11306         this. always run the test suite before commit...
11307
11308         * bus/*: adapt to DBusConnection API changes
11309
11310         * glib/dbus-gmain.c: adapt to DBusConnection API changes,
11311         requires renaming stuff to avoid dbus_connection_dispatch name
11312         conflict.
11313
11314         * dbus/dbus-transport.c (_dbus_transport_queue_messages): new
11315         function
11316
11317         * dbus/dbus-message.c (_dbus_message_loader_queue_messages):
11318         separate from _dbus_message_loader_return_buffer()
11319
11320         * dbus/dbus-connection.c (dbus_connection_get_n_messages): remove
11321         this, because it's now always broken to use; the number of
11322         messages in queue vs. the number still buffered by the message
11323         loader is undefined/meaningless. Should use
11324         dbus_connection_get_dispatch_state().
11325         (dbus_connection_dispatch): rename from
11326         dbus_connection_dispatch_message
11327
11328 2003-03-16  Havoc Pennington  <hp@pobox.com>
11329
11330         * dbus/dbus-string.c (_dbus_string_validate_utf8): copy in a real
11331         implementation
11332
11333 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
11334
11335         * dbus/dbus-connection.c:
11336         (dbus_connection_send_with_reply_and_block):
11337         Decrease connection->n_incoming when removing an entry
11338         from the list.
11339         * dbus/dbus-dict.c: (dbus_dict_entry_free),
11340         (dbus_dict_set_boolean_array), (dbus_dict_set_int32_array),
11341         (dbus_dict_set_uint32_array), (dbus_dict_set_double_array),
11342         (dbus_dict_set_byte_array), (dbus_dict_set_string_array),
11343         (dbus_dict_get_boolean_array), (dbus_dict_get_double_array),
11344         (dbus_dict_get_byte_array):
11345         Handle NULL arrays and strings. Also add support for byte arrays.
11346
11347         * dbus/dbus-marshal.c: (_dbus_marshal_byte_array),
11348         (_dbus_marshal_dict), (_dbus_demarshal_byte_array),
11349         (_dbus_demarshal_int32_array), (_dbus_demarshal_uint32_array),
11350         (_dbus_demarshal_double_array), (_dbus_demarshal_string_array),
11351         (_dbus_demarshal_dict), (demarshal_and_validate_len),
11352         (_dbus_marshal_validate_arg), (_dbus_marshal_test):
11353         * dbus/dbus-marshal.h:
11354         Add support for marshalling and demarshalling empty arrays and strings.
11355
11356         * dbus/dbus-message.c: (dbus_message_append_args_valist),
11357         (dbus_message_append_string_array),
11358         (dbus_message_iter_get_boolean),
11359         (dbus_message_iter_get_boolean_array),
11360         (dbus_message_iter_get_int32_array),
11361         (dbus_message_iter_get_uint32_array),
11362         (dbus_message_iter_get_double_array),
11363         (dbus_message_iter_get_byte_array),
11364         (dbus_message_iter_get_string_array), (dbus_message_iter_get_dict),
11365         (check_message_handling):
11366         Add support for getting empty arrays and dicts.
11367
11368         * dbus/dbus-string.c: (_dbus_string_validate_utf8):
11369         Don't do any validation at all for now, that's better than just checking
11370         for ASCII.
11371
11372         * test/data/valid-messages/emptiness.message:
11373         New test message with lots of empty arrays.
11374
11375 2003-03-16  Havoc Pennington  <hp@pobox.com>
11376
11377         * dbus/dbus-connection.c
11378         (_dbus_connection_queue_received_message_link): new function that
11379         can't fail due to OOM
11380
11381         * dbus/dbus-message.c (_dbus_message_loader_pop_message_link):
11382         new function pops a message together with a list link
11383         containing it.
11384
11385         * dbus/dbus-transport-unix.c (queue_messages): use new link-based
11386         message queuing functions to avoid needing to alloc memory
11387
11388 2003-03-16  Havoc Pennington  <hp@pobox.com>
11389
11390         Oops - test code was only testing failure of around 30 of the
11391         mallocs in the test path, but it turns out there are 500+
11392         mallocs. I believe this was due to misguided linking setup such
11393         that there was one copy of dbus_malloc etc. in the daemon and one
11394         in the shared lib, and only daemon mallocs were tested. In any
11395         case, the test case now tests all 500+ mallocs, and doesn't pass
11396         yet, though there are lots of fixes in this patch.
11397
11398         * dbus/dbus-connection.c (dbus_connection_dispatch_message): fix
11399         this so that it doesn't need to allocate memory, since it
11400         has no way of indicating failure due to OOM (and would be
11401         annoying if it did).
11402
11403         * dbus/dbus-list.c (_dbus_list_pop_first_link): new function
11404
11405         * bus/Makefile.am: rearrange to create two self-contained
11406         libraries, to avoid having libraries with overlapping symbols.
11407         that was resulting in weirdness, e.g. I'm pretty sure there
11408         were two copies of global static variables.
11409
11410         * dbus/dbus-internals.c: move the malloc debug stuff to
11411         dbus-memory.c
11412
11413         * dbus/dbus-list.c (free_link): free list mempool if it becomes
11414         empty.
11415
11416         * dbus/dbus-memory.c (_dbus_disable_mem_pools): new function
11417
11418         * dbus/dbus-address.c (dbus_parse_address): free list nodes
11419         on failure.
11420
11421         * bus/dispatch.c (bus_dispatch_add_connection): free
11422         message_handler_slot when no longer using it, so
11423         memory leak checkers are happy for the test suite.
11424
11425         * dbus/dbus-server-debug-pipe.c (debug_finalize): free server name
11426
11427         * bus/bus.c (new_connection_callback): disconnect in here if
11428         bus_connections_setup_connection fails.
11429
11430         * bus/connection.c (bus_connections_unref): fix to free the
11431         connections
11432         (bus_connections_setup_connection): if this fails, don't
11433         disconnect the connection, just be sure there are no side
11434         effects.
11435
11436         * dbus/dbus-string.c (undo_alignment): unbreak this
11437
11438         * dbus/dbus-auth.c (_dbus_auth_unref): free some stuff we were
11439         leaking
11440         (_dbus_auth_new): fix the order in which we free strings
11441         on OOM failure
11442
11443         * bus/connection.c (bus_connection_disconnected): fix to
11444         not send ServiceDeleted multiple times in case of memory
11445         allocation failure
11446
11447         * dbus/dbus-bus.c (dbus_bus_get_base_service): new function to
11448         get the base service name
11449         (dbus_bus_register_client): don't return base service name,
11450         instead store it on the DBusConnection and have an accessor
11451         function for it.
11452         (dbus_bus_register_client): rename dbus_bus_register()
11453
11454         * bus/dispatch.c (check_hello_message): verify that other
11455         connections on the bus also got the correct results, not
11456         just the one sending hello
11457
11458 2003-03-15  Havoc Pennington  <hp@pobox.com>
11459
11460         Make it pass the Hello handling test including all OOM codepaths.
11461         Now to do other messages...
11462
11463         * bus/services.c (bus_service_remove_owner): fix crash when
11464         removing owner from an empty list of owners
11465         (bus_registry_ensure): don't leave service in the list of
11466         a connection's owned services if we fail to put the service
11467         in the hash table.
11468
11469         * bus/connection.c (bus_connection_preallocate_oom_error): set
11470         error flag on the OOM error.
11471
11472         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
11473         handle _dbus_transport_set_connection failure
11474
11475         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd): modify
11476         to create watches up front and simply enable/disable them as
11477         needed.
11478         (unix_connection_set): this can now fail on OOM
11479
11480         * dbus/dbus-timeout.c, dbus/dbus-watch.c: add concept
11481         of enabling/disabling a watch or timeout.
11482
11483         * bus/loop.c (bus_loop_iterate): don't touch disabled
11484         watches/timeouts
11485
11486         * glib/dbus-gmain.c: adapt to enable/disable watches and timeouts
11487
11488 2003-03-15  Havoc Pennington  <hp@pobox.com>
11489
11490         * bus/dispatch.c (bus_dispatch_test): OK, now finally actually
11491         write useful test code, after all that futzing around ;-)
11492
11493         Test does not yet pass because we can't handle OOM in
11494         _dbus_transport_messages_pending (basically,
11495         dbus_connection_preallocate_send() does not prealloc the write
11496         watch). To fix this, I think we need to add new stuff to
11497         set_watch_functions, namely a SetEnabled function so we can alloc
11498         the watch earlier, then enable it later.
11499
11500         * dbus/Makefile.am (libdbus_convenience_la_SOURCES): move
11501         dbus-memory.c to the convenience lib
11502
11503         * bus/test.c: rename some static functions to keep them clearly
11504         distinct from stuff in connection.c. Handle client disconnection.
11505
11506 2003-03-14  Havoc Pennington  <hp@pobox.com>
11507
11508         * bus/dispatch.c (bus_dispatch_test): do test using debug-pipe
11509         transport, tests more of the real codepath. Set up clients
11510         with bus_setup_debug_client.
11511
11512         * bus/test.c (bus_setup_debug_client): function to set up debug
11513         "clients" on the main loop
11514
11515         * dbus/dbus-transport.c (_dbus_transport_open): add debug-pipe
11516         support
11517
11518         * dbus/dbus-server.c (dbus_server_listen): add debug-pipe
11519         server type
11520
11521         * dbus/dbus-server-debug.c: support a debug server based on pipes
11522
11523         * dbus/dbus-sysdeps.c (_dbus_full_duplex_pipe): new function
11524         (_dbus_close): new function
11525
11526         * configure.in: check for socketpair
11527
11528 2003-03-14  Havoc Pennington  <hp@redhat.com>
11529
11530         * dbus/dbus-memory.c: add a "detect buffer overwrites on free"
11531         cheesy hack
11532
11533         * dbus/dbus-transport-debug.c: rework this a good bit to be
11534         less complicated. hopefully still works.
11535
11536         * dbus/dbus-server-debug.c (handle_new_client): remove timeout
11537         manually
11538
11539         * glib/dbus-gmain.c (timeout_handler): don't remove timeout
11540         after running it
11541
11542         * dbus/dbus-message.c (dbus_message_copy): rename from
11543         dbus_message_new_from_message, fix it up to copy
11544         all the message fields, add test case
11545
11546         * bus/dispatch.c (bus_dispatch_test): add some more test code,
11547         not quite passing yet
11548
11549 2003-03-14  Havoc Pennington  <hp@pobox.com>
11550
11551         * bus/loop.c (bus_loop_iterate): add this so we can "run loop
11552         until no work remains" in test code. (the large diff here
11553         is just code movement, no actual changes)
11554
11555         * dbus/dbus-server-debug.c (DEFAULT_INTERVAL): change interval to
11556         1, no point waiting around for test code.
11557         (_dbus_server_debug_accept_transport): unref the timeout
11558         after adding it (right?)
11559
11560         * dbus/dbus-transport-debug.c (DEFAULT_INTERVAL): ditto
11561
11562 2003-03-13  Havoc Pennington  <hp@redhat.com>
11563
11564         * dbus/dbus-timeout.c (_dbus_timeout_list_set_functions): handle
11565         out of memory
11566
11567         * dbus/dbus-watch.c (_dbus_watch_list_set_functions): handle out
11568         of memory
11569
11570         * dbus/dbus-connection.h: Make AddWatchFunction and
11571         AddTimeoutFunction return a bool so they can fail on out-of-memory
11572
11573         * bus/bus.c (bus_context_new): set up timeout handlers
11574
11575         * bus/connection.c (bus_connections_setup_connection): set up
11576         timeout handlers
11577
11578         * glib/dbus-gmain.c: adapt to the fact that set_functions stuff
11579         can fail
11580
11581         * bus/bus.c (bus_context_new): adapt to changes
11582
11583         * bus/connection.c: adapt to changes
11584
11585         * test/watch.c: adapt to DBusWatch changes
11586
11587         * bus/dispatch.c (bus_dispatch_test): started adding this but
11588         didn't finish
11589
11590 2003-03-14  Anders Carlsson  <andersca@codefactory.se>
11591
11592         * bus/dispatch.c (send_service_nonexistent_error): Fix typo.
11593
11594 2003-03-13  Havoc Pennington  <hp@pobox.com>
11595
11596         * bus/test.c, bus/test.h, bus/Makefile.am, bus/test-main.c:
11597         set up a test framework as for the library
11598
11599 2003-03-12  Havoc Pennington  <hp@pobox.com>
11600
11601         Throughout: purge global variables, introduce BusActivation,
11602         BusConnections, BusRegistry, etc. objects instead.
11603
11604         * bus/bus.h, bus/bus.c: introduce BusContext as a global
11605         message bus object
11606
11607         * test/Makefile.am (TEST_BINARIES): disable bus-test for now,
11608         going to redo this a bit differently I think
11609
11610 2003-03-12  Havoc Pennington  <hp@redhat.com>
11611
11612         Mega-patch that gets the message bus daemon initially handling
11613         out-of-memory. Work still needed. Also lots of random
11614         moving stuff to DBusError instead of ResultCode.
11615
11616         * dbus/dbus-list.c (_dbus_list_length_is_one): new function
11617
11618         * dbus/dbus-connection.c
11619         (dbus_connection_send_with_reply_and_block): use DBusError
11620
11621         * dbus/dbus-bus.c: adapt to API changes, make it use DBusError not
11622         DBusResultCode
11623
11624         * dbus/dbus-connection.c (dbus_connection_send): drop the result
11625         code here, as the only failure possible is OOM.
11626
11627         * bus/connection.c (bus_connection_disconnect):
11628         rename bus_connection_disconnected as it's a notification only
11629
11630         * bus/driver.c (bus_driver_handle_acquire_service): don't free
11631         "name" on get_args failure, should be done by get_args;
11632         don't disconnect client for bad args, just return an error.
11633         (bus_driver_handle_service_exists): ditto
11634
11635         * bus/services.c (bus_services_list): NULL-terminate returned array
11636
11637         * bus/driver.c (bus_driver_send_service_lost)
11638         (bus_driver_send_service_acquired): send messages from driver to a
11639         specific client to the client's unique name, not to the broadcast
11640         service.
11641
11642         * dbus/dbus-message.c (decode_header_data): reject messages that
11643         contain no name field
11644         (_dbus_message_get_client_serial): rename to
11645         dbus_message_get_serial and make public
11646         (_dbus_message_set_serial): rename from set_client_serial
11647         (_dbus_message_set_reply_serial): make public
11648         (_dbus_message_get_reply_serial): make public
11649
11650         * bus/connection.c (bus_connection_foreach): allow stopping
11651         iteration by returning FALSE from foreach function.
11652
11653         * dbus/dbus-connection.c (dbus_connection_send_preallocated)
11654         (dbus_connection_free_preallocated_send)
11655         (dbus_connection_preallocate_send): new API for sending a message
11656         without possibility of malloc failure.
11657         (dbus_connection_send_message): rename to just
11658         dbus_connection_send (and same for whole function family)
11659
11660         * dbus/dbus-errors.c (dbus_error_free): make this reinit the error
11661
11662         * dbus/dbus-sysdeps.c (_dbus_exit): new function
11663
11664         * bus/activation.c: handle/return errors
11665
11666         * dbus/dbus-errors.h: add more DBUS_ERROR #define
11667
11668         * dbus/dbus-sysdeps.c (_dbus_directory_open) (_dbus_file_get_contents)
11669         (_dbus_directory_get_next_file): use DBusError instead of DBusResultCode
11670         (_dbus_result_from_errno): move to this file
11671
11672 2003-03-10  Anders Carlsson  <andersca@codefactory.se>
11673
11674         * dbus/dbus-marshal.c:
11675         (_dbus_marshal_set_string):
11676         Take a length argument so we can marshal the correct string
11677         length.
11678
11679         (_dbus_marshal_dict), (_dbus_demarshal_dict),
11680         (_dbus_marshal_get_arg_end_pos), (_dbus_marshal_validate_arg),
11681         (_dbus_marshal_test):
11682         * dbus/dbus-marshal.h:
11683         Add support for marshalling and demarshalling dicts.
11684
11685         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
11686         Add support for TYPE DICT.
11687
11688         * dbus/dbus-message.c: (set_string_field):
11689         Adjust header padding.
11690
11691         (dbus_message_append_args_valist), (dbus_message_append_dict),
11692         (dbus_message_get_args_valist), (dbus_message_iter_get_arg_type),
11693         (dbus_message_iter_get_dict), (_dbus_message_loader_return_buffer),
11694         (check_message_handling), (check_have_valid_message):
11695         * dbus/dbus-message.h:
11696         Add functions for setting and getting dicts.
11697
11698         * dbus/dbus-protocol.h:
11699         Add DBUS_TYPE_DICT.
11700
11701         * dbus/dbus.h:
11702         Add dbus-dict.h
11703
11704         * doc/dbus-specification.sgml:
11705         Add information about how dicts are marshalled.
11706
11707         * test/data/invalid-messages/dict-with-nil-value.message:
11708         * test/data/invalid-messages/too-short-dict.message:
11709         * test/data/valid-messages/dict-simple.message:
11710         * test/data/valid-messages/dict.message:
11711         Add sample messages containing dicts.
11712
11713 2003-03-08  Anders Carlsson  <andersca@codefactory.se>
11714
11715         * dbus/dbus-dict.h: Add DBUS_END_DECLS.
11716
11717 2003-03-07  Anders Carlsson  <andersca@codefactory.se>
11718
11719         * dbus/Makefile.am:
11720         * dbus/dbus-dict.c: (dbus_dict_entry_free), (dbus_dict_new),
11721         (dbus_dict_get_keys), (insert_entry), (dbus_dict_set_boolean),
11722         (dbus_dict_set_int32), (dbus_dict_set_uint32),
11723         (dbus_dict_set_double), (dbus_dict_set_string),
11724         (dbus_dict_set_boolean_array), (dbus_dict_set_int32_array),
11725         (dbus_dict_set_uint32_array), (dbus_dict_set_double_array),
11726         (dbus_dict_set_string_array), (_dbus_dict_test):
11727         * dbus/dbus-dict.h:
11728         Fix according to comments from Havoc.
11729
11730 2003-03-06  Michael Meeks  <michael@server.home>
11731
11732         * configure.in: if we don't have kde-config, disable have_qt.
11733
11734 2003-03-07  Anders Carlsson  <andersca@codefactory.se>
11735
11736         * dbus/Makefile.am:
11737         Add dbus-dict.[ch]
11738
11739         * dbus/dbus-dict.c: (dbus_dict_entry_free), (dbus_dict_new),
11740         (dbus_dict_ref), (dbus_dict_unref), (dbus_dict_contains),
11741         (dbus_dict_remove), (dbus_dict_get_value_type),
11742         (dbus_dict_get_keys), (dbus_dict_put_boolean),
11743         (dbus_dict_put_int32), (dbus_dict_put_uint32),
11744         (dbus_dict_put_double), (dbus_dict_put_string),
11745         (dbus_dict_put_boolean_array), (dbus_dict_put_int32_array),
11746         (dbus_dict_put_uint32_array), (dbus_dict_put_double_array),
11747         (dbus_dict_put_string_array), (dbus_dict_get_boolean),
11748         (dbus_dict_get_int32), (dbus_dict_get_uint32),
11749         (dbus_dict_get_double), (dbus_dict_get_string),
11750         (dbus_dict_get_boolean_array), (dbus_dict_get_int32_array),
11751         (dbus_dict_get_uint32_array), (dbus_dict_get_double_array),
11752         (dbus_dict_get_string_array), (_dbus_dict_test):
11753         * dbus/dbus-dict.h:
11754         Add DBusDict implementation
11755
11756         * dbus/dbus-test.c: (dbus_internal_do_not_use_run_tests):
11757         * dbus/dbus-test.h:
11758         Add _dbus_dict_test
11759
11760 2003-03-04  Havoc Pennington  <hp@pobox.com>
11761
11762         * test/data/auth/*: adapt to changes
11763
11764         * dbus/dbus-auth-script.c (_dbus_auth_script_run): add
11765         USERID_BASE64 and change USERNAME_BASE64 to put in username not
11766         userid
11767
11768         * dbus/dbus-keyring.c (_dbus_keyring_validate_context): prevent
11769         more stuff from being in a context name, to make the protocol
11770         simpler to deal with
11771
11772         * dbus/dbus-errors.c (dbus_error_has_name): new function
11773         (dbus_error_is_set): new function
11774
11775         * dbus/dbus-auth.c: replace DBUS_STUPID_TEST_MECH auth
11776         with DBUS_COOKIE_SHA1, implement DBUS_COOKIE_SHA1
11777
11778         * dbus/dbus-connection.c (dbus_connection_flush): also read
11779         messages during a flush operation
11780
11781         * dbus/Makefile.am: remove dbus-md5 since it isn't currently used.
11782
11783 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
11784
11785         * configure.in: Check for gethostbyname on Solaris.
11786
11787         * dbus/dbus-transport.c: (_dbus_transport_open):
11788         Remove duplicate "tcp" entry.
11789
11790         * doc/dbus-specification.sgml:
11791         Clarify some things.
11792
11793 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
11794
11795         * dbus/dbus-auth.c: (send_rejected), (process_test_subdir):
11796         * dbus/dbus-keyring.c: (_dbus_keyring_new_homedir),
11797         (_dbus_keyring_test):
11798         * dbus/dbus-md5.c: (_dbus_md5_compute):
11799         * dbus/dbus-sha.c: (_dbus_sha_compute):
11800         Plug memory leaks.
11801
11802 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
11803
11804         * README: Add some things.
11805
11806 2003-03-04  Anders Carlsson  <andersca@codefactory.se>
11807
11808         * dbus/dbus-message.c (dbus_message_append_args_valist): Add a break;
11809         after case DBUS_TYPE_BOOELAN.
11810
11811 2003-03-02  Havoc Pennington  <hp@pobox.com>
11812
11813         * test/break-loader.c (randomly_set_extreme_ints): add test that
11814         sets really huge and small integers
11815
11816         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): add check
11817         that length of boolean array fits in the string, and that
11818         string has room for boolean value in single-bool case.
11819
11820         * dbus/dbus-message-builder.c (_dbus_message_data_load): add
11821         optional value to "ALIGN" command which is what to fill the
11822         alignment with.
11823
11824         * test/data/valid-messages/no-padding.message: add regression
11825         test for the message padding problem
11826
11827 2003-03-02  Havoc Pennington  <hp@pobox.com>
11828
11829         * dbus/dbus-message.c (decode_header_data): fix to always init
11830         message_padding, from Benjamin Dauvergne
11831
11832 2003-03-02  Havoc Pennington  <hp@pobox.com>
11833
11834         * configure.in: 0.5
11835
11836         * NEWS: Update.
11837
11838 2003-03-01  Joe Shaw  <joe@assbarn.com>
11839
11840         * configure.in: Check for "struct cmsgcred" and try to access its
11841         members for BSD-like unices.
11842
11843         * dbus/dbus-sysdeps.c (read_credentials_byte): Fold this back into
11844         _dbus_read_credentials_unix_socket().
11845         (_dbus_read_credentials_unix_socket): Use recvmsg() instead of
11846         read() for reading the credential byte off the unix socket.  Use
11847         struct cmsgcred on systems that support it.
11848
11849 2003-02-27  Alexander Larsson  <alexl@redhat.com>
11850
11851         * glib/Makefile.am:
11852         * configure.in:
11853         Make gthreads-2.0 dependency optional. Don't build thread test if
11854         its not found.
11855
11856 2003-02-27  Havoc Pennington  <hp@pobox.com>
11857
11858         * dbus/dbus-connection.c
11859         (dbus_connection_send_message_with_reply_and_block): fix doh!
11860         doh! doh! bug that resulted in never removing a reply from the
11861         queue, no wonder we called get_reply_serial so much ;-)
11862
11863         * dbus/dbus-message.c (struct DBusMessage): cache reply serial
11864         and client serial instead of demarshaling them every time
11865
11866 2003-02-27  Havoc Pennington  <hp@pobox.com>
11867
11868         * dbus/dbus-marshal.c (_dbus_demarshal_int32): rewrite to be much
11869         more inlined, using dbus-string-private.h, speeds things up
11870         substantially
11871
11872         * dbus/dbus-string.c (_dbus_string_free): apply align offset
11873         when freeing the string
11874         (_dbus_string_steal_data): fix for align offset
11875         (undo_alignment): new function
11876
11877 2003-02-26  Havoc Pennington  <hp@redhat.com>
11878
11879         All kinds of audit fixes from Owen, plus initial attempt to
11880         handle unaligned memory returned from malloc.
11881
11882         * dbus/dbus-string.c (_dbus_string_init): clamp max length to
11883         leave room for align_offset and nul byte
11884         (fixup_alignment): function to track an align_offset and
11885         ensure real->str is aligned
11886         (DBUS_GENERIC_STRING_PREAMBLE): len must be less than allocated,
11887         to allow a nul byte plus align offset
11888         (_dbus_string_lock): fix overflow issue
11889         (_dbus_string_init_const_len): add assertions on sanity of len,
11890         assign allocated to be ALLOCATION_PADDING larger than len
11891         (set_length): fixup the overflow handling
11892         (_dbus_string_get_data_len): fix overflow in assertion
11893         (open_gap): detect overflow in size of gap to be opened
11894         (_dbus_string_lengthen): add overflow check
11895         (_dbus_string_align_length): fix overflow with _DBUS_ALIGN_VALUE
11896         (_dbus_string_append): add overflow check
11897         (_dbus_string_append_unichar): overflow
11898         (_dbus_string_delete): fix overflow in assertion
11899         (_dbus_string_copy_len): overflow in assertion
11900         (_dbus_string_replace_len): overflows in assertions
11901         (_dbus_string_find): change to implement in terms of
11902         _dbus_string_find_to
11903         (_dbus_string_find_to): assorted fixage
11904         (_dbus_string_equal_c_str): assert c_str != NULL,
11905         fix logic so the function works
11906         (_dbus_string_ends_with_c_str): fix overflow thingy
11907         (_dbus_string_base64_encode): overflow fix
11908         (_dbus_string_validate_ascii): overflow
11909         (_dbus_string_validate_nul): overflow
11910
11911 2003-02-26  Havoc Pennington  <hp@redhat.com>
11912
11913         * dbus/dbus-marshal.c (_dbus_marshal_test): fix to work with DISABLE_ASSERTS
11914
11915 2003-02-26  Alexander Larsson  <alexl@redhat.com>
11916
11917         * configure.in:
11918         Set DBUS_GLIB_THREADS_LIBS for apps using gthread-2.0
11919
11920         * dbus/dbus-connection.c:
11921         * dbus/dbus-connection.h:
11922         Fix _dbus_connection_acquire_io_path and _dbus_connection_acquire_dispatch.
11923         Add dbus_connection_set_wakeup_main_function and use it when queueing
11924         incoming and outgoing messages.
11925
11926
11927         * dbus/dbus-dataslot.c:
11928         Threadsafe usage of DBusDataSlotAllocator
11929
11930         * dbus/dbus-message.c: (dbus_message_get_args_iter):
11931         dbus_new can fail.
11932
11933         * dbus/dbus-server-unix.c:
11934         Add todo comment
11935
11936         * glib/dbus-gmain.c:
11937         Implement the new wakeup functions for glib.
11938
11939         * glib/Makefile.am:
11940         * glib/test-thread-client.c:
11941         * glib/test-thread-server.c:
11942         * glib/test-thread.h:
11943         Initial cut at some thread test code. Not really done yet.
11944
11945 2003-02-26  Havoc Pennington  <hp@pobox.com>
11946
11947         * dbus/dbus-connection.c
11948         (dbus_connection_send_message_with_reply_and_block): fix crash
11949         where we ref'd the outgoing message instead of the returned reply
11950
11951         * dbus/dbus-transport-unix.c (do_authentication): check read watch
11952         at the end of this function, so if we didn't need to read for
11953         authentication, we reinstall it for receiving messages
11954
11955         * dbus/dbus-message.c (dbus_message_new_reply): allow replies to
11956         a NULL sender for peer-to-peer case
11957
11958         * dbus/dbus-transport-unix.c (check_read_watch): handle
11959         !authenticated case correctly
11960
11961         * glib/dbus-gmain.c: add support for DBusServer
11962
11963         * dbus/dbus-server.c: add data slot support
11964
11965         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): check
11966         return values and handle errors
11967
11968         * dbus/dbus-dataslot.c: factor out the data slot stuff from
11969         DBusConnection
11970
11971         * Doxyfile.in (INPUT): add glib subdir
11972
11973         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): rename
11974         setup_with_g_main instead of hookup_with_g_main; write docs
11975
11976 2003-02-24  Anders Carlsson  <andersca@codefactory.se>
11977
11978         * dbus/dbus-marshal.c: (_dbus_marshal_validate_arg):
11979         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
11980         * dbus/dbus-message.c: (dbus_message_append_boolean),
11981         (dbus_message_append_boolean_array),
11982         (dbus_message_get_args_valist), (_dbus_message_test):
11983         * dbus/dbus-message.h:
11984         * doc/dbus-specification.sgml:
11985         Various fixes as pointed out by Havoc.
11986
11987         * test/data/invalid-messages/bad-boolean-array.message:
11988         * test/data/invalid-messages/bad-boolean.message:
11989         Add invalid boolean value test cases.
11990
11991 2003-02-24  Anders Carlsson  <andersca@codefactory.se>
11992
11993         * dbus/dbus-internals.c: (_dbus_type_to_string):
11994         * dbus/dbus-marshal.c: (_dbus_marshal_get_arg_end_pos),
11995         (_dbus_marshal_validate_arg):
11996         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
11997         * dbus/dbus-message.c: (dbus_message_append_args_valist),
11998         (dbus_message_append_boolean), (dbus_message_append_boolean_array),
11999         (dbus_message_get_args_valist), (dbus_message_iter_get_boolean),
12000         (dbus_message_iter_get_int32), (dbus_message_iter_get_uint32),
12001         (dbus_message_iter_get_double),
12002         (dbus_message_iter_get_boolean_array), (message_iter_test):
12003         * dbus/dbus-message.h:
12004         * dbus/dbus-protocol.h:
12005         * doc/dbus-specification.sgml:
12006         * test/data/valid-messages/lots-of-arguments.message:
12007         Add support for boolean and boolean array types.
12008
12009 2003-02-23  Havoc Pennington  <hp@pobox.com>
12010
12011         * dbus/dbus-keyring.c: finish most of this implementation and
12012         simple unit test
12013
12014         * dbus/dbus-errors.c (dbus_set_error_const, dbus_set_error): make
12015         these barf if the error isn't cleared to NULL
12016
12017         * dbus/dbus-sysdeps.c (_dbus_delete_file): set error on failure
12018         (_dbus_create_directory): new function
12019
12020         * dbus/dbus-errors.c (dbus_set_error): fix warning
12021
12022         * dbus/dbus-string.c (_dbus_string_hex_encode): new function
12023         (_dbus_string_hex_decode): new function
12024         (test_hex_roundtrip): test code
12025
12026         * dbus/dbus-sha.c (_dbus_sha_compute): use dbus_string_hex_encode
12027
12028         * dbus/dbus-md5.c (_dbus_md5_compute): use dbus_string_hex_encode
12029
12030         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): make this use
12031         the save-to-temp/rename trick to atomically write the new file
12032         (_dbus_string_parse_uint): new function
12033
12034 2003-02-22  Havoc Pennington  <hp@pobox.com>
12035
12036         * test/Makefile.am (dist-hook): fix dist for test/data/sha-1
12037
12038 2003-02-22  Havoc Pennington  <hp@pobox.com>
12039
12040         * dbus/dbus-message.c (dbus_message_iter_get_string_array):
12041         (dbus_message_iter_get_byte_array): Fix up doxygen warnings
12042
12043         * dbus/dbus-sha.c: add implementation of SHA-1 algorithm
12044
12045         * dbus/test/data/sha-1: add US government test suite for SHA-1
12046
12047 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
12048
12049         * dbus/dbus-marshal.c: (_dbus_demarshal_string_array):
12050         Make string arrays NULL-terminated.
12051
12052         * dbus/dbus-memory.c: (dbus_free_string_array):
12053         * dbus/dbus-memory.h:
12054         New function for freeing NULL-terminated string arrays.
12055
12056         * dbus/dbus-message-builder.c: (append_quoted_string),
12057         (_dbus_message_data_load):
12058         Add support for array types.
12059
12060         * dbus/dbus-message.c: (check_message_handling):
12061         Add more types as test cases.
12062
12063         * dbus/dbus-sysdeps.c: (_dbus_string_parse_int),
12064         (_dbus_string_parse_double):
12065         Add the start offset to the end offset.
12066
12067         * test/data/valid-messages/lots-of-arguments.message:
12068         New test message with lots of arguments.
12069
12070 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
12071
12072         * dbus/dbus-message.c: (dbus_message_append_nil),
12073         (dbus_message_append_int32), (dbus_message_append_uint32),
12074         (dbus_message_append_double), (dbus_message_append_string),
12075         (dbus_message_append_int32_array),
12076         (dbus_message_append_uint32_array),
12077         (dbus_message_append_double_array),
12078         (dbus_message_append_byte_array),
12079         (dbus_message_append_string_array):
12080         Fix all out-of-memory handling in these functions.
12081
12082 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
12083
12084         * dbus/dbus-message.c: (dbus_message_append_nil):
12085         Fix a silly.
12086
12087 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
12088
12089         * dbus/dbus-message.c: (dbus_message_append_args_valist),
12090         (dbus_message_append_nil), (dbus_message_append_int32_array),
12091         (dbus_message_append_uint32_array),
12092         (dbus_message_append_double_array),
12093         (dbus_message_append_byte_array),
12094         (dbus_message_append_string_array), (dbus_message_get_args_valist),
12095         (dbus_message_iter_get_int32_array),
12096         (dbus_message_iter_get_uint32_array),
12097         (dbus_message_iter_get_double_array),
12098         (dbus_message_iter_get_byte_array),
12099         (dbus_message_iter_get_string_array):
12100
12101         * dbus/dbus-message.h:
12102         Add functions for appending and getting arrays.
12103
12104 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
12105
12106         * dbus/dbus-mempool.c (_dbus_mem_pool_new): Make the
12107         element size at least 8 bytes, fixes mempool tests on
12108         64-bit machines.
12109
12110 2003-02-20  Alexander Larsson  <alexl@redhat.com>
12111
12112         * dbus/dbus-transport-unix.c (unix_do_iteration):
12113         Unlock the connection mutex during a blocking select call.
12114         Add todo about how we need a way to wake up the select.
12115
12116         * dbus/dbus-connection-internal.h:
12117         * dbus/dbus-connection.c:
12118         Add _dbus_connection_lock and _dbus_connection_unlock.
12119
12120 2003-02-19  Havoc Pennington  <hp@pobox.com>
12121
12122         * Doxyfile.in (PREDEFINED): put DOXYGEN_SHOULD_SKIP_THIS in
12123         Doxyfile.in, not Doxyfile
12124
12125         * dbus/dbus-keyring.c: do some hacking on this
12126
12127         * dbus/dbus-sysdeps.c (_dbus_delete_file): new
12128
12129         * dbus/dbus-errors.c (dbus_set_error_const): do not call
12130         dbus_error_init
12131         (dbus_set_error): remove dbus_error_init, check for message ==
12132         NULL *before* we sprintf into it, and add @todo about including
12133         system headers in this file
12134
12135         * dbus/dbus-sysdeps.c (_dbus_create_file_exclusively): new
12136
12137         * dbus/dbus-errors.h (DBUS_ERROR_FAILED): add
12138
12139         * dbus/dbus-sysdeps.c (get_user_info): break this function out to
12140         get various bits of user information based on either username
12141         or user ID
12142         (_dbus_homedir_from_username): new function
12143
12144 2003-02-19  Anders Carlsson  <andersca@codefactory.se>
12145
12146         * configure.in:
12147         Add check for nonposix getpwnam_r
12148
12149         * dbus/dbus-mempool.c: (_dbus_mem_pool_new):
12150         Align the pool element size to a sizeof (void *) boundary.
12151
12152         * dbus/dbus-sysdeps.c: (_dbus_setenv), (_dbus_connect_unix_socket),
12153         (_dbus_listen_unix_socket), (_dbus_credentials_from_username):
12154         General Solaris fixes.
12155
12156         * test/data/valid-messages/simplest-manual.message:
12157         Explicitly state that we want little-endian packing.
12158
12159 2003-02-19  Mikael Hallendal  <micke@codefactory.se>
12160
12161         * dbus/dbus-server.c (dbus_server_listen): Support tcp: addresses.
12162
12163         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_tcp_socket):
12164         Added to create a transport connecting using a tcp/ip socket.
12165
12166         * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): Added to connect
12167         to a tcp socket at given host and port.
12168         (_dbus_listen_tcp_socket): added to listen on tcp socket for given
12169         hostname and port.
12170
12171         * dbus/dbus-server.c (dbus_server_listen): Support tcp: addresses.
12172
12173         * dbus/dbus-server-unix.c (_dbus_server_new_for_tcp_socket):
12174         Added to create a server listening on a TCP/IP socket.
12175
12176 2003-02-19  Havoc Pennington  <hp@pobox.com>
12177
12178         Throughout: mop up all the Doxygen warnings and undocumented
12179         stuff.
12180
12181         * dbus/dbus-sysdeps.c (do_exec): do not use execvp, we don't want
12182         to search any paths.
12183
12184         * dbus/dbus-threads.c: move global mutex initializers to
12185         dbus-internals.h, multiple prototypes was confusing doxygen
12186         besides being kind of ugly
12187
12188         * Doxyfile (PREDEFINED): have Doxygen define
12189         DOXYGEN_SHOULD_SKIP_THIS so we can exclude things from
12190         docs with #ifndef DOXYGEN_SHOULD_SKIP_THIS
12191         (do not abuse the feature! it's for stuff like the autogenerated
12192         macros in dbus-md5.c, not just for things you don't feel like
12193         documenting...)
12194
12195 2003-02-18  Havoc Pennington  <hp@pobox.com>
12196
12197         * dbus/dbus-string.c (_dbus_string_zero): new function
12198
12199         * dbus/dbus-md5.c: include MD5 implementation by L. Peter Deutsch,
12200         wrap it in some dbus-friendly API
12201
12202         * dbus/dbus-types.h: add 16-bit types
12203
12204 2003-02-18  Joe Shaw  <joe@assbarn.com>
12205
12206         * dbus/dbus-auth.c (handle_server_data_stupid_test_mech): Just get
12207         credentials from our currently running process.
12208         (get_word): Fix a buglet where we were copying the entire length
12209         instead of relative to our position.
12210
12211         * dbus/dbus-hash.c (_dbus_hash_test): Don't try to allocate the
12212         keys on the stack... it's 640k of data.
12213
12214         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): Always
12215         read the credentials byte off the socket, even if we don't have
12216         SO_PEERCRED.
12217         (_dbus_poll): Implement poll() using select() for systems which
12218         don't have it.
12219
12220         * glib/test-dbus-glib.c (main): Print out an error if no
12221         parameters are given.
12222
12223         * test/data/auth/fallback.auth-script: Added.  Tests that a client
12224         can fallback to a secondary auth mechanism if the first fails.
12225
12226 2003-02-18  Havoc Pennington  <hp@pobox.com>
12227
12228         * AUTHORS: add Alex
12229
12230 2003-02-17  Havoc Pennington  <hp@pobox.com>
12231
12232         * doc/dbus-specification.sgml: lots of cosmetic
12233         cleanups/rearrangement, add assorted FIXME, change DBUS_ADDRESS
12234         env variable to DBUS_BUS_ADDRESS, s/client/application/,
12235         s/server/bus/ (except in authentication section). Add a section
12236         "Message Bus Message Routing"
12237
12238 2003-02-17  Anders Carlsson  <andersca@codefactory.se.>
12239
12240         Release 0.4
12241
12242         * NEWS: Update
12243
12244 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
12245
12246         * doc/dbus-specification.sgml:
12247         Specification updates.
12248
12249 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
12250
12251         * bus/activation.c: (bus_activation_init), (child_setup),
12252         (bus_activation_activate_service):
12253         * bus/activation.h:
12254         * bus/main.c: (main):
12255         Set DBUS_ADDRESS environment variable.
12256
12257         * dbus/dbus-errors.c: (dbus_set_error):
12258         Don't use va_copy since that's a C99 feature.
12259
12260         * dbus/dbus-sysdeps.c: (_dbus_setenv), (do_exec),
12261         (_dbus_spawn_async):
12262         * dbus/dbus-sysdeps.h:
12263         Add child_setup_func to _dbus_spawn_async.
12264
12265         * doc/dbus-specification.sgml:
12266         Update specification.
12267
12268         * test/spawn-test.c: (setup_func), (main):
12269         Fix test.
12270
12271 2003-02-17  Alexander Larsson  <alexl@redhat.com>
12272
12273         * dbus/dbus-connection.c (_dbus_connection_handler_destroyed_locked):
12274         Added todo.
12275
12276 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
12277
12278         * doc/.cvsignore:
12279         * doc/Makefile.am:
12280         * doc/dbus-test-plan.sgml:
12281         Add test plan document.
12282
12283         * test/Makefile.am:
12284         Fix distcheck.
12285
12286 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
12287
12288         * dbus/dbus-message.c: (decode_header_data),
12289         (_dbus_message_loader_return_buffer):
12290         Set the header padding amount when loading a message.
12291
12292 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
12293
12294         * bus/dispatch.c: (send_one_message):
12295         Only send broadcast messages to registered connections.
12296
12297         * dbus/dbus-message.c: (dbus_message_name_is):
12298         * dbus/dbus-message.h:
12299         New convenience function.
12300
12301         * dbus/dbus-transport-debug.c: (do_reading):
12302         Only dispatch one message per run.
12303
12304         * test/Makefile.am:
12305         * test/bus-test.c: (new_connection_callback), (die),
12306         (test_hello_client1_handler), (test_hello_client2_handler),
12307         (test_hello_replies), (main):
12308
12309         * test/bus-test-loop.[ch]:
12310         Add these.
12311
12312 2003-02-16  Havoc Pennington  <hp@pobox.com>
12313
12314         * dbus/dbus-connection.c (dbus_connection_dispatch_message): fix
12315         backward conditional
12316
12317 2003-02-16  Alexander Larsson  <alexl@redhat.com>
12318
12319         * dbus/dbus-connection.c:
12320         Implement sent_message_with_reply. (with_reply_and block is still
12321         busted).
12322         Made dispatch_message not lose message if OOM.
12323
12324         * dbus/dbus-errors.h:
12325         Add NoReply error (for reply timeouts).
12326
12327 2003-02-16  Alexander Larsson  <alexl@redhat.com>
12328
12329         * dbus/dbus-hash.c (_dbus_hash_table_unref):
12330         Actually free keys and values when destroying hashtable.
12331
12332 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
12333
12334         * dbus/dbus-auth.c: (client_try_next_mechanism):
12335         Plug a leak.
12336
12337         * dbus/dbus-threads.c: (dbus_condvar_wait_timeout):
12338         Return TRUE if there's no thread implementation around.
12339
12340         * glib/dbus-gmain.c: (free_source),
12341         (dbus_connection_hookup_with_g_main):
12342         Make sure to remove the GSource when the connection is finalized.
12343
12344 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
12345
12346         * bus/dispatch.c: (bus_dispatch_message_handler):
12347         * dbus/dbus-errors.h:
12348         Return an error if someone tries to send a message to a service
12349         that doesn't exist.
12350
12351 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
12352
12353         * bus/activation.c: (load_directory), (bus_activation_init),
12354         (bus_activation_activate_service):
12355         * bus/activation.h:
12356         * bus/driver.c:
12357         (bus_driver_handle_activate_service), (bus_driver_handle_message):
12358         More work on the activation handling.
12359
12360         * dbus/dbus-errors.h:
12361         Add some error messages
12362
12363         * dbus/dbus-message.c: (dbus_message_new_error_reply):
12364         * dbus/dbus-message.h:
12365         New function that creates an error message.
12366
12367         * dbus/dbus-protocol.h:
12368         Add ACTIVATE_SERVER message.
12369
12370         * dbus/dbus-server-unix.c: (unix_handle_watch),
12371         (_dbus_server_new_for_domain_socket):
12372         Call _dbus_fd_set_close_on_exec.
12373
12374         * dbus/dbus-sysdeps.c: (make_pipe), (do_exec),
12375         (_dbus_spawn_async), (_dbus_disable_sigpipe),
12376         (_dbus_fd_set_close_on_exec):
12377         * dbus/dbus-sysdeps.h:
12378         Add _dbus_fd_set_close_on exec function. Also add function that checks
12379         that all open fds are set to close-on-exec and warns otherwise.
12380
12381         * dbus/dbus-transport-unix.c:
12382         (_dbus_transport_new_for_domain_socket):
12383         Call _dbus_fd_set_close_on_exec.
12384
12385 2003-02-16  Havoc Pennington  <hp@pobox.com>
12386
12387         * dbus/dbus-connection.c (dbus_connection_set_change_sigpipe):
12388         allow people to avoid setting SIGPIPE to SIG_IGN
12389         (_dbus_connection_new_for_transport): disable SIGPIPE unless
12390         we've been asked not to
12391
12392 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
12393
12394         * dbus/dbus-list.c: (_dbus_list_append_link),
12395         (_dbus_list_prepend_link):
12396         * dbus/dbus-memory.c: (dbus_malloc), (dbus_malloc0),
12397         (dbus_realloc):
12398         Warning fixes.
12399
12400 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
12401
12402         * bus/Makefile.am:
12403         * bus/activation.c: (bus_activation_entry_free),
12404         (add_desktop_file_entry), (load_directory), (bus_activation_init):
12405         * bus/activation.h:
12406         * bus/main.c: (main):
12407         Add simple activation support, doesn't work yet though.
12408
12409 2003-02-15   Zack Rusin  <zack@kde.org>
12410
12411         * qt/dbus-qthread.cpp:  small casting fix
12412
12413 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
12414
12415         * dbus/dbus-errors.c: (dbus_set_error):
12416         * dbus/dbus-errors.h:
12417         Add a few errors and make dbus_set_error void.
12418
12419         * dbus/dbus-sysdeps.c:
12420         (_dbus_errno_to_string), (close_and_invalidate), (make_pipe),
12421         (write_err_and_exit), (read_ints), (do_exec), (_dbus_spawn_async):
12422         * dbus/dbus-sysdeps.h:
12423         Add _dbus_spawn_async.
12424
12425         * test/spawn-test.c: (main):
12426         Test for _dbus_spawn_async.
12427
12428 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
12429
12430         * dbus/dbus-internals.h:
12431         Fix build without tests.
12432
12433         * dbus/dbus-list.c: (alloc_link):
12434         Fix a segfault when a malloc fails.
12435
12436         * dbus/dbus-memory.c: (initialize_malloc_debug), (dbus_malloc),
12437         (dbus_malloc0), (dbus_realloc):
12438         Add support for malloc debugging.
12439
12440 2003-02-15  Alexander Larsson  <alexl@redhat.com>
12441
12442         * dbus/dbus-threads.c:
12443         * dbus/dbus-threads.h:
12444         Add condvars. Remove static mutext from API.
12445         Implement static mutexes by initializing them from threads_init.
12446
12447         * glib/dbus-gthread.c:
12448         * qt/dbus-qthread.cpp:
12449         Update with the thread api changes.
12450
12451
12452         * dbus/dbus-list.c:
12453         * dbus/dbus-list.h:
12454         Turn StaticMutex into normal mutex + init function.
12455         Export new functions _dbus_list_alloc_link, _dbus_list_free_link,
12456         _dbus_list_append_link, _dbus_list_prepend_link
12457
12458
12459         * dbus/dbus-sysdeps.c:
12460         * dbus/dbus-sysdeps.h:
12461         New type dbus_atomic_t, and new functions _dbus_atomic_inc,
12462         _dbus_atomic_dec. Only slow fallback implementation at the moment.
12463
12464         * dbus/dbus-protocol.h:
12465         Add DBUS_MESSAGE_LOCAL_DISCONNECT define
12466
12467         * dbus/dbus-message.c:
12468         Make ref/unref atomic.
12469         Fix some docs.
12470
12471         * dbus/dbus-connection-internal.h:
12472         * dbus/dbus-connection.c:
12473         * dbus/dbus-connection.h:
12474         Make threadsafe.
12475         Change _peek to _borrow,_return & _steal_borrowed.
12476         Change disconnect callback to event.
12477         Make dbus_connection_dispatch_messages reentrant.
12478
12479         * dbus/dbus-transport.c:
12480         Don't ref the connection on calls to the transport
12481         implementation.
12482
12483         * dbus/dbus-message-handler.c:
12484         Make threadsafe.
12485
12486         * glib/dbus-gmain.c:
12487         Don't use peek_message anymore
12488
12489         * test/Makefile.am:
12490         * test/debug-thread.c:
12491         * test/debug-thread.h:
12492         Simple thread implementation that asserts() on deadlocks in
12493         single-threaded code.
12494
12495         * test/bus-test.c:
12496         (main) Call debug_threads_init.
12497
12498         * test/watch.c:
12499         Use disconnect message instead of disconnect callback.
12500
12501         * bus/connection.c:
12502         * bus/connection.h:
12503         Don't call dbus_connection_set_disconnect_function. Instead export
12504         bus_connection_disconnect.
12505
12506         * bus/dispatch.c:
12507         Call bus_connection_disconnect when we get a disconnected message.
12508
12509 2003-02-15  Havoc Pennington  <hp@pobox.com>
12510
12511         * dbus/dbus-message.c (dbus_message_new): fool around with the
12512         docs
12513
12514 2003-02-14  Havoc Pennington  <hp@pobox.com>
12515
12516         * dbus/dbus-mempool.c: fail if the debug functions so indicate
12517
12518         * dbus/dbus-memory.c: fail if the debug functions indicate we
12519         should
12520
12521         * dbus/dbus-internals.c (_dbus_set_fail_alloc_counter)
12522         (_dbus_decrement_fail_alloc_counter): debug functions to
12523         simulate memory allocation failures
12524
12525 2003-02-14  Havoc Pennington  <hp@pobox.com>
12526
12527         * dbus/dbus-errors.h (struct DBusError): add a word of padding
12528         to DBusError
12529
12530 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12531
12532         * bus/driver.c: (bus_driver_handle_hello):
12533         * bus/driver.h:
12534         * bus/services.c: (bus_service_lookup):
12535         Reorder message sending so we get a more sane order.
12536
12537         * test/bus-test.c: (message_handler):
12538         Fix tyop.
12539
12540 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12541
12542         * bus/driver.c: (bus_driver_send_service_deleted),
12543         (bus_driver_send_service_created), (bus_driver_send_service_lost),
12544         (bus_driver_send_service_acquired), (bus_driver_handle_hello),
12545         (bus_driver_send_welcome_message),
12546         (bus_driver_handle_list_services),
12547         (bus_driver_handle_acquire_service),
12548         (bus_driver_handle_service_exists):
12549         * dbus/dbus-bus.c: (dbus_bus_register_client),
12550         (dbus_bus_acquire_service), (dbus_bus_service_exists):
12551         * dbus/dbus-errors.c: (dbus_result_to_string):
12552         * dbus/dbus-errors.h:
12553         * dbus/dbus-message.c: (dbus_message_append_args),
12554         (dbus_message_append_args_valist), (dbus_message_get_args),
12555         (dbus_message_get_args_valist), (dbus_message_get_args_iter),
12556         (dbus_message_iter_get_arg_type), (dbus_message_iter_get_string),
12557         (dbus_message_iter_get_byte_array),
12558         (dbus_message_iter_get_string_array), (message_iter_test),
12559         (check_message_handling), (_dbus_message_test):
12560         * dbus/dbus-message.h:
12561         * test/bus-test.c: (main):
12562         Change fields to arguments in messages, so that they won't be
12563         confused with header fields.
12564
12565         * glib/test-dbus-glib.c: (main):
12566         Remove append_fields from hello message.
12567
12568 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12569
12570         * dbus/dbus-errors.c:
12571         * dbus/dbus-message.c:
12572         * dbus/dbus-string.c:
12573         Documentation fixes.
12574
12575 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12576
12577         * glib/dbus-gmain.c: (timeout_handler), (add_timeout),
12578         (remove_timeout):
12579         Implement support for timeouts in dbus-glib.
12580
12581 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12582
12583         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
12584         * dbus/dbus-message.c: (process_test_subdir):
12585         * test/break-loader.c: (find_breaks_based_on):
12586         Plug some memory leaks.
12587
12588 2003-02-13  Richard Hult  <rhult@codefactory.se>
12589
12590         * bus/main.c: Fix build.
12591
12592         * dbus/dbus-errors.h:
12593         * dbus/dbus-errors.c: Fix copyright for Anders.
12594
12595 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12596
12597         * bus/Makefile.am:
12598         Add utils.[ch]
12599
12600         * bus/connection.c: (bus_connection_foreach):
12601         Fix a warning.
12602
12603         * bus/desktop-file.c: (grow_lines_in_section), (grow_sections),
12604         (unescape_string), (new_section), (parse_section_start),
12605         (parse_key_value), (report_error), (bus_desktop_file_load),
12606         (bus_desktop_file_get_string):
12607         * bus/desktop-file.h:
12608         Use DBusError for error reporting.
12609
12610         * bus/dispatch.c: (send_one_message),
12611         (bus_dispatch_message_handler):
12612         * bus/driver.c: (bus_driver_send_service_deleted),
12613         (bus_driver_send_service_created), (bus_driver_send_service_lost),
12614         (bus_driver_send_service_acquired), (bus_driver_handle_hello),
12615         (bus_driver_send_welcome_message),
12616         (bus_driver_handle_list_services),
12617         (bus_driver_handle_acquire_service),
12618         (bus_driver_handle_service_exists):
12619         * bus/loop.c: (bus_loop_run):
12620         * bus/main.c:
12621         Use BUS_HANDLE_OOM instead of _DBUS_HANDLE_OOM.
12622
12623         * bus/utils.c: (bus_wait_for_memory):
12624         * bus/utils.h:
12625         New files with general utility functions.
12626
12627         * dbus/dbus-internals.h:
12628         Remove _DBUS_HANDLE_OOM.
12629
12630 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12631
12632         * dbus/dbus-errors.c: (dbus_result_to_string), (dbus_error_init),
12633         (dbus_error_free), (dbus_set_error_const), (dbus_set_error):
12634         * dbus/dbus-errors.h:
12635         Add DBusError structure.
12636
12637 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12638
12639         * test/data/valid-messages/standard-acquire-service.message:
12640         * test/data/valid-messages/standard-hello.message:
12641         * test/data/valid-messages/standard-list-services.message:
12642         * test/data/valid-messages/standard-service-exists.message:
12643         Add some standard messages.
12644
12645 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12646
12647         * bus/driver.c: (bus_driver_send_welcome_message),
12648         (bus_driver_handle_list_services),
12649         (bus_driver_handle_acquire_service),
12650         (bus_driver_handle_service_exists), (bus_driver_handle_message):
12651         Update for API changes in libdbus.
12652
12653         * dbus/dbus-message.c: (dbus_message_new_reply):
12654         * dbus/dbus-message.h:
12655         Remove the name argument. The spec states that replies shouldn't
12656         have a name.
12657
12658 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12659
12660         * bus/desktop-file.c: (parse_section_start), (parse_key_value),
12661         (report_error), (bus_desktop_file_load), (lookup_section),
12662         (lookup_line), (bus_desktop_file_get_raw),
12663         (bus_desktop_file_get_string):
12664         * bus/desktop-file.h:
12665         Some fixes, and new functions for getting a key value from a section.
12666
12667 2003-02-13  Havoc Pennington  <hp@pobox.com>
12668
12669         * test/data/auth/fail-after-n-attempts.auth-script: new test
12670
12671         * dbus/dbus-auth.c (send_rejected): shutdown_mech() when we
12672         reject the client.
12673
12674 2003-02-13  Havoc Pennington  <hp@pobox.com>
12675
12676         * dbus/dbus-auth.c (handle_server_data_external_mech): args to
12677         dbus_credentials_match were backward
12678
12679         * dbus/dbus-auth-script.c (_dbus_auth_script_run): support
12680         NO_CREDENTIALS and ROOT_CREDENTIALS
12681
12682         * dbus/dbus-auth.c (_dbus_auth_do_work): move get_state() routine
12683         into here. Never process more commands after we've reached an
12684         end state; store further data as unused bytes.
12685
12686         * test/data/auth/*: add more auth tests
12687
12688         * dbus/dbus-auth-script.c (_dbus_auth_script_run): support EXPECT
12689         command to match exact string and EXPECT_UNUSED to match unused
12690         bytes
12691
12692         * test/Makefile.am (dist-hook): fix to dist all the test stuff
12693
12694 2003-02-12  Havoc Pennington  <hp@pobox.com>
12695
12696         * dbus/dbus-string.c (_dbus_string_pop_line): fix to also strip
12697         \r off of popped lines
12698
12699         * dbus/dbus-auth.c (_dbus_auth_test): write code to run auth
12700         scripts
12701
12702         * dbus/dbus-auth-script.c (_dbus_auth_script_run): when doing a
12703         SEND, append \r\n
12704
12705 2003-02-12  Havoc Pennington  <hp@pobox.com>
12706
12707         * dbus/Makefile.am: remove break-loader from the build, since it
12708         moved.
12709
12710         * configure.in: add --enable-gcov to turn on coverage profiling
12711         flags and disable optimization
12712
12713 2003-02-10  Havoc Pennington  <hp@pobox.com>
12714
12715         * dbus/dbus-auth-script.c, dbus/dbus-auth-script.h: sync
12716         initial cut at test framework for DBusAuth from laptop.
12717         Doesn't quite work yet but it compiles and I need to get
12718         it off the 266mhz laptop. ;-)
12719
12720         * dbus/dbus-server-debug.c (_dbus_server_debug_accept_transport):
12721         fix a memleak in error case
12722
12723 2003-02-12  Anders Carlsson  <andersca@codefactory.se>
12724
12725         * bus/Makefile.am:
12726         * bus/desktop-file.c:
12727         * bus/desktop-file.h:
12728         Add a desktop file parser.
12729
12730 2003-02-11  Zack Rusin  <zack@kde.org>
12731
12732         * qt/message.[h|cpp]: sample implementation
12733         of the KDE wrapper for DBusMessage
12734
12735 2003-02-09  Zack Rusin  <zack@kde.org>
12736
12737         * test/bus-test.c: make_it_compile
12738         * doc/dbus-specification.sgml: minimal semantic fix
12739
12740 2003-02-06  Anders Carlsson  <andersca@codefactory.se>
12741
12742         Release 0.3
12743
12744         * NEWS: Update
12745
12746 2003-02-06  Anders Carlsson  <andersca@codefactory.se>
12747
12748         * dbus/Makefile.am:
12749         * dbus/dbus-break-loader.c:
12750         * test/Makefile.am:
12751         * test/break-loader.c:
12752         Move dbus-break-loader to test/ and rename it to break-loader.
12753
12754 2003-02-02  Havoc Pennington  <hp@pobox.com>
12755
12756         * dbus/dbus-keyring.c, dbus/dbus-keyring.h: template files
12757         for code to manage cookies in your home directory
12758
12759         * dbus/dbus-sysdeps.c (_dbus_generate_random_bytes): new function
12760
12761         * dbus/dbus-auth.c (get_state): impose a maximum number of tries
12762         to authenticate, then disconnect the client.
12763
12764 2003-02-03  Alexander Larsson  <alexl@redhat.com>
12765
12766         * dbus/dbus-message.c (dbus_message_append_fields):
12767         Correct docs.
12768
12769 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
12770
12771         * doc/dbus-specification.sgml:
12772         Update address format section.
12773
12774 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
12775
12776         * test/Makefile.am:
12777         * test/bus-test.c: (get_time), (add_timeout), (remove_timeout),
12778         (message_handler), (new_connection_callback), (loop_quit),
12779         (loop_run), (main):
12780         Add bus test.
12781
12782 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
12783
12784         * bus/driver.c: (bus_driver_handle_service_exists):
12785         Simplify the code a bit.
12786
12787         * dbus/dbus-bus.c: (dbus_bus_service_exists):
12788         Fix a silly.
12789
12790 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
12791
12792         * bus/Makefile.am:
12793         Add libdbus-daemon.la and link to it.
12794
12795 2003-02-01  James Willcox  <jwillcox@gnome.org>
12796
12797         * bus/driver.c: (bus_driver_handle_own_service):
12798         Actually include the service reply code in the message.
12799
12800 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
12801
12802         * bus/driver.c: (bus_driver_handle_service_exists):
12803         Don't unref the incoming message.
12804
12805 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
12806
12807         * dbus/dbus.h: Add dbus-address.h and dbus-bus.h
12808
12809 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
12810
12811         * dbus/dbus-server.c: (dbus_server_listen):
12812         * dbus/dbus-transport.c: (_dbus_transport_open):
12813         ifdef out the calls to the debug transport and server.
12814
12815 2003-02-02  Alexander Larsson  <alexl@redhat.com>
12816
12817         * dbus/dbus-watch.c (dbus_watch_get_flags):
12818         Add note in the docs that ERROR or HANGUP won't be returned
12819         and are assumed always on.
12820
12821         * glib/dbus-gmain.c (add_watch):
12822         Always add IO_ERR | IO_HUP
12823
12824         * dbus/dbus-message.h:
12825         Add semicolon after dbus_message_iter_get_string_array().
12826         Makes qt code build again
12827
12828 2003-02-01  Anders Carlsson  <andersca@codefactory.se>
12829
12830         * bus/driver.c: (create_unique_client_name),
12831         (bus_driver_handle_hello):
12832         Don't take a name, just use a numeric id to identify
12833         each client.
12834
12835         * dbus/Makefile.am:
12836         * dbus/dbus-bus.c: (dbus_bus_register_client),
12837         (dbus_bus_acquire_service), (dbus_bus_service_exists):
12838         * dbus/dbus-bus.h:
12839         Add new convenience functions for communicating with the bus.
12840
12841         * dbus/dbus-message.h:
12842
12843         * dbus/dbus-protocol.h:
12844         Fix a typo.
12845
12846 2003-02-01  Alexander Larsson  <alexl@redhat.com>
12847
12848         * dbus/dbus-message.c (dbus_message_append_fields):
12849         Add some more doc comments.
12850
12851 2003-02-01  Havoc Pennington  <hp@pobox.com>
12852
12853         * dbus/dbus-break-loader.c (randomly_modify_length): change
12854         a 4-byte value in the message as if it were a length
12855
12856         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): don't set
12857         execute bit on saved files
12858
12859 2003-02-01  Havoc Pennington  <hp@pobox.com>
12860
12861         * dbus/dbus-break-loader.c (main): new program to find messages
12862         that break the loader.
12863
12864         * dbus/dbus-sysdeps.c (_dbus_string_append_uint): new function
12865         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): new function
12866
12867         * dbus/dbus-string.c (_dbus_string_set_byte): new
12868
12869 2003-01-31  Havoc Pennington  <hp@pobox.com>
12870
12871         * dbus/dbus-message.c: refactor the test code to be more general,
12872         in preparation for writing a "randomly permute test cases to
12873         try to break the loader" program.
12874
12875 2003-01-31  Havoc Pennington  <hp@pobox.com>
12876
12877         * doc/dbus-specification.sgml: work on the specification
12878
12879         * dbus/dbus-message.c (_dbus_message_loader_return_buffer): check
12880         the protocol version of the message.
12881
12882         * dbus/dbus-protocol.h: drop special _REPLY names, the spec
12883         no longer specifies that.
12884         (DBUS_SERVICE_REPLY_SERVICE_EXISTS): fix flags (1/2/4/8 not
12885         1/2/3/4)
12886
12887         * dbus/dbus-marshal.c (_dbus_marshal_get_arg_end_pos): add missing
12888         "break" for DBUS_TYPE_NIL, remove @todo
12889
12890 2003-01-31  Havoc Pennington  <hp@pobox.com>
12891
12892         * dbus/dbus-message.c (dbus_message_set_is_error_reply): rename
12893         just set_is_error/get_is_error as this is a commonly-used
12894         function, and write docs.
12895
12896 2003-01-31  Anders Carlsson  <andersca@codefactory.se>
12897
12898         * dbus/dbus-address.c: (dbus_address_entry_free):
12899         Free key and value lists.
12900
12901         * dbus/dbus-internals.c: (_dbus_type_to_string):
12902         Add the types we didn't have.
12903
12904         * dbus/dbus-marshal.c: (_dbus_marshal_get_arg_end_pos),
12905         (_dbus_marshal_validate_arg):
12906         Add NIL types.
12907
12908         * dbus/dbus-message.c: (dbus_message_set_sender):
12909         Remove todo about being able to set sender to NULL.
12910
12911         (dbus_message_set_is_error_reply),
12912         (dbus_message_get_is_error_reply):
12913         * dbus/dbus-message.h:
12914         New functions.
12915
12916         * dbus/dbus-protocol.h:
12917         Add error reply flag.
12918
12919         * test/data/valid-messages/opposite-endian.message:
12920         Add NIL type to test.
12921
12922 2003-01-31  Havoc Pennington  <hp@pobox.com>
12923
12924         * doc/dbus-specification.sgml: fully specify the header.  Add
12925         flags and major protocol version, and change header/body len to
12926         unsigned.
12927
12928         * dbus/dbus-message-builder.c (append_saved_length): append length
12929         as uint32
12930
12931         * dbus/dbus-message.c (dbus_message_create_header): change header
12932         length and body length to unsigned. Add the new fields from the
12933         spec
12934         (_dbus_message_loader_return_buffer): unsigned header/body len
12935
12936 2003-01-30  Havoc Pennington  <hp@pobox.com>
12937
12938         * dbus/dbus-auth.c: rework to use only REJECTED, no
12939         MECHANISMS
12940
12941         * doc/dbus-sasl-profile.txt: drop MECHANISMS and just
12942         use REJECTED, suggested by Mark McLoughlin
12943
12944 2003-01-30  Havoc Pennington  <hp@pobox.com>
12945
12946         * dbus/dbus-server.c (dbus_server_listen): @todo about how we need
12947         a better way to report errors here. e.g.  "unix address lacks
12948         path" or something. also "no such file" when the path doesn't
12949         exist, etc.
12950
12951         * dbus/dbus-address.c (dbus_address_entries_free): add @todo about
12952         leaking list nodes
12953         (dbus_parse_address): add @todo about documenting address format,
12954         and allowing , and ; to be escaped
12955
12956 2003-01-30  Anders Carlsson  <andersca@codefactory.se>
12957
12958         * dbus/Makefile.am:
12959         Add dbus-address.[ch]
12960
12961         * dbus/dbus-address.c: (dbus_address_entry_free),
12962         (dbus_address_entries_free), (create_entry),
12963         (dbus_address_entry_get_method), (dbus_address_entry_get_value),
12964         (dbus_parse_address), (_dbus_address_test):
12965         * dbus/dbus-address.h:
12966         New files for dealing with address parsing.
12967
12968         * dbus/dbus-connection.c:
12969         Document timeout functions.
12970
12971         * dbus/dbus-message.c:
12972         Document dbus_message_new_from_message.
12973
12974         * dbus/dbus-server-debug.c:
12975         Document.
12976
12977         * dbus/dbus-server.c: (dbus_server_listen):
12978         Parse address and use correct server implementation.
12979
12980         * dbus/dbus-string.c: (_dbus_string_find_to), (_dbus_string_test):
12981         * dbus/dbus-string.h:
12982         New function with test.
12983
12984         * dbus/dbus-test.c: (dbus_internal_symbol_do_not_use_run_tests):
12985         * dbus/dbus-test.h:
12986         Add address tests.
12987
12988         * dbus/dbus-transport-debug.c:
12989         Document.
12990
12991         * dbus/dbus-transport.c: (_dbus_transport_open):
12992         Parse address and use correct transport implementation.
12993
12994 2003-01-30  Havoc Pennington  <hp@pobox.com>
12995
12996         * dbus/dbus-message.c: use message->byte_order instead of
12997         DBUS_COMPILER_BYTE_ORDER throughout.
12998         (dbus_message_create_header): pad header to align the
12999         start of the body of the message to 8-byte boundary
13000
13001         * dbus/dbus-marshal.h: make all the demarshalers take const
13002         DBusString arguments.
13003
13004         * dbus/dbus-message.c (_dbus_message_loader_return_buffer):
13005         validate message args here, so we don't have to do slow validation
13006         later, and so we catch bad messages as they are incoming. Also add
13007         better checks on header_len and body_len. Also fill in
13008         message->byte_order
13009
13010         * dbus/dbus-string.c (_dbus_string_validate_utf8): new (not
13011         implemented properly)
13012         (_dbus_string_validate_nul): new function to check all-nul
13013
13014         * dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): rename
13015         get_arg_end_pos and remove all validation
13016         (_dbus_marshal_validate_arg): actually do validation here.
13017
13018 2003-01-29  Havoc Pennington  <hp@pobox.com>
13019
13020         * dbus/dbus-message.c (check_message_handling): fix assertion
13021         failure on set_client_serial
13022
13023 2003-01-28  Havoc Pennington  <hp@pobox.com>
13024
13025         * dbus/dbus-server-debug.c: Add doc section comments
13026
13027         * dbus/dbus-transport-debug.c: add doc section comments
13028
13029 2003-01-28  Havoc Pennington  <hp@redhat.com>
13030
13031         * dbus/dbus-string.c (_dbus_string_base64_decode): append bytes in
13032         the reverse order from how I had it
13033         (_dbus_string_base64_encode): reverse encoding order. I was
13034         basically byteswapping everything during encoding.
13035
13036 2003-01-28  Anders Carlsson  <andersca@codefactory.se>
13037
13038         * dbus/dbus-connection-internal.h:
13039         * dbus/dbus-connection.c: (_dbus_connection_add_timeout),
13040         (_dbus_connection_remove_timeout):
13041         Add functions for adding and removing timeouts.
13042
13043         * dbus/dbus-message.c: (dbus_message_new_from_message):
13044         Add new function that takes a message and creates an exact
13045         copy of it, but with the refcount set to 1.
13046         (check_message_handling):
13047         Fix build error.
13048
13049         * dbus/dbus-server-protected.h:
13050         * dbus/dbus-server.c: (_dbus_server_init_base),
13051         (_dbus_server_finalize_base), (_dbus_server_add_timeout),
13052         (dbus_server_set_timeout_functions):
13053         (_dbus_server_remove_timeout):
13054         New functions so that a server can add and remove timeouts.
13055
13056         (dbus_server_listen):
13057         Add commented out call to dbus_server_debug_new.
13058
13059         * dbus/dbus-timeout.c: (_dbus_timeout_new):
13060         Actually set the handler, doh.
13061
13062         * dbus/dbus-transport.c: (_dbus_transport_open):
13063         Add commented out call to dbus_transport_debug_client_new.
13064
13065         * dbus/Makefile.am:
13066         Add dbus-transport-debug.[ch] and dbus-server-debug.[ch]
13067
13068 2003-01-28  Havoc Pennington  <hp@pobox.com>
13069
13070         * dbus/dbus-message.c (check_message_handling): function to check
13071         on the loaded message, iterates over it etc.
13072
13073 2003-01-28  Havoc Pennington  <hp@pobox.com>
13074
13075         * test/Makefile.am (dist-hook): fix make distdir
13076
13077         * dbus/Makefile.am (TESTS_ENVIRONMENT): fix make check
13078
13079 2003-01-27  Havoc Pennington  <hp@pobox.com>
13080
13081         * dbus/dbus-mempool.c (time_for_size): replace printf with
13082         _dbus_verbose
13083
13084         * dbus/dbus-message-builder.c (_dbus_message_data_load): allow
13085         empty lines; fix the SAVE_LENGTH stuff to be
13086         START_LENGTH/END_LENGTH so it actually works; couple other
13087         bugfixes
13088
13089         * test/Makefile.am (dist-hook): add dist-hook for .message files
13090
13091         * dbus/dbus-string.c (DBUS_STRING_COPY_PREAMBLE): source of a copy
13092         can be constant or locked.
13093         (_dbus_string_free): allow freeing a const string as
13094         documented/intended
13095
13096         * dbus/dbus-sysdeps.c (_dbus_concat_dir_and_file): utility
13097
13098         * dbus/dbus-test-main.c (main): take an argument which is the
13099         directory containing test data
13100
13101         * dbus/dbus-message.c (_dbus_message_test): pass a test_data_dir
13102         argument to this and load all the messages in test/data/
13103         checking that they can be loaded or not loaded as appropriate.
13104
13105 2003-01-27  Anders Carlsson  <andersca@codefactory.se>
13106
13107         * bus/dispatch.c: (bus_dispatch_message_handler):
13108         Dispatch messages sent to services.
13109
13110         * bus/driver.c: (bus_driver_send_service_deleted),
13111         (bus_driver_send_service_created), (bus_driver_send_service_lost),
13112         (bus_driver_send_service_acquired):
13113         Add helper functions for sending service related messages.
13114
13115         (bus_driver_send_welcome_message):
13116         Send HELLO_REPLY instead of WELCOME.
13117
13118         (bus_driver_handle_list_services):
13119         Send LIST_SERVICES_REPLY instead of SERVICES.
13120
13121         (bus_driver_handle_own_service),
13122         (bus_driver_handle_service_exists):
13123         New message handlers.
13124
13125         (bus_driver_handle_message):
13126         Invoke new message handlers.
13127
13128         (bus_driver_remove_connection):
13129         Don't remove any services here since that's done automatically
13130         by bus_service_remove_owner now.
13131
13132         * bus/driver.h:
13133         New function signatures.
13134
13135         * bus/services.c: (bus_service_add_owner):
13136         Send ServiceAcquired message if we're the only primary owner.
13137
13138         (bus_service_remove_owner):
13139         Send ServiceAcquired/ServiceLost messages.
13140
13141         (bus_service_set_prohibit_replacement),
13142         (bus_service_get_prohibit_replacement):
13143         Functions for setting prohibit replacement.
13144
13145         (bus_service_has_owner):
13146         New function that checks if a connection is in the owner queue of
13147         a certain service.
13148
13149         * bus/services.h:
13150         Add new function signatures.
13151
13152         * dbus/dbus-list.c: (_dbus_list_test):
13153         Add tests for _dbus_list_remove_last and traversing the list backwards.
13154
13155         * dbus/dbus-list.h:
13156         Fix a typo in _dbus_list_get_prev_link, if we're at the first element we can't
13157         go any further, so return NULL then.
13158
13159         * dbus/dbus-protocol.h:
13160         Add new messages, service flags and service replies.
13161
13162 2003-01-26  Havoc Pennington  <hp@pobox.com>
13163
13164         * dbus/dbus-message-builder.c: implement, completely untested.
13165
13166         * test/data/*: add data to be used in testing.
13167         ".message" files are our simple loadable text format.
13168         ".message-raw" will be binary dumps of messages.
13169
13170         * dbus/dbus-string.c (_dbus_string_starts_with_c_str): new
13171
13172 2003-01-26  Havoc Pennington  <hp@pobox.com>
13173
13174         * dbus/dbus-sysdeps.c (_dbus_file_get_contents): new function
13175
13176         * dbus/dbus-errors.c (dbus_result_to_string): add
13177         file errors
13178
13179         * dbus/dbus-message-builder.c: new file, will contain code to load
13180         up messages from files. Not implemented yet.
13181
13182 2003-01-26  Havoc Pennington  <hp@pobox.com>
13183
13184         * dbus/dbus-message.c (dbus_message_set_sender): support deleting
13185         the sender by setting to NULL
13186
13187 2003-01-26  Havoc Pennington  <hp@pobox.com>
13188
13189         The unit tests pass, but otherwise untested.  If it breaks, the
13190         tests should have been better. ;-)
13191
13192         * bus/driver.c (bus_driver_handle_hello): return if we disconnect
13193         the connection.
13194
13195         * dbus/dbus-message.c: redo everything so we maintain
13196         message->header as the only copy of the various fields.
13197         This avoids the possibility of out-of-memory in some cases,
13198         for example dbus_message_lock() can't run out of memory anymore,
13199         and avoids extra copying. Figured I may as well go ahead and do
13200         this since it was busted for dbus_message_lock to not return
13201         failure on OOM, and dbus_message_write_header was totally
13202         unchecked for OOM. Also fixed some random other bugs.
13203
13204         * dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): verify
13205         that strings are nul-terminated. Also, end_pos can be equal
13206         to string length just not greater than, I think.
13207         (_dbus_marshal_set_int32): new function
13208         (_dbus_marshal_set_uint32): new function
13209         (_dbus_marshal_set_string): new function
13210
13211         * dbus/dbus-connection.c (_dbus_connection_new_for_transport): fix
13212         a warning, init timeout_list to NULL
13213         (dbus_connection_send_message): don't use uninitialized variable
13214         "serial"
13215
13216         * dbus/dbus-string.c (_dbus_string_replace_len): new function
13217
13218 2003-01-26  Anders Carlsson  <andersca@codefactory.se>
13219
13220         * bus/driver.c: (bus_driver_handle_hello),
13221         (bus_driver_send_welcome_message):
13222         Plug leaks
13223
13224 2003-01-26  Anders Carlsson  <andersca@codefactory.se>
13225
13226         * dbus/dbus-auth.c: (process_auth), (_dbus_auth_unref):
13227         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport),
13228         (dbus_connection_unref):
13229         * dbus/dbus-marshal.c: (_dbus_marshal_test):
13230         * dbus/dbus-message.c: (dbus_message_unref),
13231         Plug memory leaks.
13232
13233         (dbus_message_get_fields):
13234         Remove debugging printout.
13235
13236         (_dbus_message_loader_return_buffer):
13237         Don't store the header string.
13238
13239         (_dbus_message_test):
13240         Plug leaks.
13241
13242 2003-01-26  Richard Hult  <rhult@codefactory.se>
13243
13244         * glib/dbus-gmain.c (dbus_connection_dispatch): Traverse a copy of
13245         the file descriptor list, since it can change under us.
13246
13247 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
13248
13249         * glib/dbus-gmain.c: (dbus_connection_prepare),
13250         (dbus_connection_check), (dbus_connection_dispatch), (add_watch),
13251         (remove_watch), (dbus_connection_hookup_with_g_main):
13252         Rewrite the glib handling to use its own GSource instead of a
13253         GIOChannel so we can catch messages put in the queue while waiting
13254         for a reply.
13255
13256 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
13257
13258         * bus/Makefile.am:
13259         * bus/connection.c: (connection_disconnect_handler),
13260         (connection_watch_callback), (bus_connection_setup):
13261         * bus/dispatch.c: (send_one_message),
13262         (bus_dispatch_broadcast_message), (bus_dispatch_message_handler),
13263         (bus_dispatch_add_connection), (bus_dispatch_remove_connection):
13264         * bus/dispatch.h:
13265         * bus/driver.c: (bus_driver_send_service_deleted),
13266         (bus_driver_send_service_created), (bus_driver_handle_hello),
13267         (bus_driver_send_welcome_message),
13268         (bus_driver_handle_list_services), (bus_driver_remove_connection),
13269         (bus_driver_handle_message):
13270         * bus/driver.h:
13271         Refactor code, put the message dispatching in its own file. Use
13272         _DBUS_HANDLE_OOM. Also send ServiceDeleted messages when a client
13273         is disconnected.
13274
13275 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
13276
13277         * dbus/dbus-internals.h:
13278         Add _DBUS_HANDLE_OOM macro, it doesn't do anything currently.
13279
13280         * dbus/dbus-message.c: (dbus_message_get_sender):
13281         * dbus/dbus-message.h:
13282         Implement dbus_message_get_sender.
13283
13284         * dbus/dbus-protocol.h:
13285         Add message and service defines.
13286
13287 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
13288
13289         * dbus/dbus-connection.c: (dbus_connection_send_message):
13290         * dbus/dbus-message-internal.h:
13291         * dbus/dbus-message.c: (_dbus_message_get_client_serial),
13292         (dbus_message_write_header):
13293         Remove _dbus_messag_unlock and don't set the client serial on a
13294         message if one already exists.
13295
13296 2003-01-24  Havoc Pennington  <hp@pobox.com>
13297
13298         * dbus/dbus-list.c (alloc_link): put a thread lock on the global
13299         list_pool
13300
13301         * bus/driver.c (bus_driver_handle_list_services): fix a leak
13302         on OOM
13303
13304 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
13305
13306         * dbus/dbus-list.c: (alloc_link), (free_link):
13307         Use a memory pool for the links.
13308
13309 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
13310
13311         * bus/connection.c: (bus_connection_foreach):
13312         * bus/connection.h:
13313         Add new bus_connection_foreach function.
13314
13315         * bus/driver.c: (send_one_message), (bus_driver_broadcast_message):
13316         Add function that broadcasts a message to all clients.
13317
13318         (bus_driver_send_service_created), (bus_driver_handle_hello),
13319         (bus_driver_send_welcome_message),
13320         (bus_driver_handle_list_services), (bus_driver_message_handler):
13321         Implement functions that take care of listing services, and notifying
13322         clients when new services are created.
13323
13324         * bus/services.c: (bus_services_list):
13325         * bus/services.h:
13326         Add new function that returns an array of strings with the currently
13327         registered services.
13328
13329         * glib/dbus-glib.h:
13330         * glib/dbus-gmain.c:
13331         Update copyright year.
13332
13333 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
13334
13335         * dbus/dbus-connection.c: (dbus_connection_send_message):
13336         Unlock the message in case it was sent earlier.
13337
13338         (dbus_connection_send_message_with_reply_and_block):
13339         Remove the reply message from the list.
13340
13341         * dbus/dbus-marshal.c: (_dbus_demarshal_string_array):
13342         Set array_len and new_pos correctly.
13343
13344         (_dbus_marshal_test):
13345         Remove debug output.
13346
13347         * dbus/dbus-message-internal.h:
13348         * dbus/dbus-message.c: (_dbus_message_get_reply_serial):
13349         New function that returns the reply serial.
13350
13351         (_dbus_message_unlock):
13352         New function that unlocks a message and resets its header.
13353
13354         (dbus_message_append_string_array),
13355         (dbus_message_get_fields_valist),
13356         (dbus_message_iter_get_field_type),
13357         (dbus_message_iter_get_string_array),
13358         (dbus_message_get_fields),
13359         (dbus_message_append_fields_valist):
13360         Handle string arrays.
13361
13362         (dbus_message_set_sender):
13363         Make this function public since the bus daemon needs it.
13364
13365         (decode_header_data):
13366         Set the reply serial to -1 initially.
13367
13368         * dbus/dbus-message.h:
13369         Add dbus_message_set_sender.
13370
13371 2003-01-24  Havoc Pennington  <hp@pobox.com>
13372
13373         * doc/dbus-specification.sgml: add some stuff
13374
13375 2003-01-22  Havoc Pennington  <hp@pobox.com>
13376
13377         * doc/dbus-specification.sgml: Start to document the protocol.
13378
13379 2003-01-22  Havoc Pennington  <hp@pobox.com>
13380
13381         * dbus/dbus-connection.c
13382         (dbus_connection_send_message_with_reply_and_block): add some @todo
13383
13384         * bus/driver.c (bus_driver_add_connection): add a FIXME about memleak
13385
13386 2003-01-21  Havoc Pennington  <hp@pobox.com>
13387
13388         (patch untested because can't compile)
13389
13390         * bus/driver.c (create_unique_client_name): make this function
13391         never recycle client names. Also, caller should initialize
13392         the DBusString.
13393
13394         * dbus/dbus-sysdeps.c (_dbus_get_current_time): new function
13395
13396 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
13397
13398         * dbus/dbus-marshal.c: (_dbus_marshal_double),
13399         (_dbus_marshal_int32), (_dbus_marshal_uint32),
13400         (_dbus_marshal_int32_array), (_dbus_marshal_uint32_array),
13401         (_dbus_marshal_double_array), (_dbus_marshal_string_array),
13402         (_dbus_demarshal_int32_array), (_dbus_demarshal_uint32_array),
13403         (_dbus_demarshal_double_array), (_dbus_demarshal_string_array),
13404         (_dbus_marshal_get_field_end_pos), (_dbus_marshal_test):
13405         * dbus/dbus-marshal.h:
13406         * dbus/dbus-protocol.h:
13407         Add support for marshalling and demarshalling integer, double
13408         and string arrays.
13409
13410 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
13411
13412         * bus/Makefile.am:
13413         Add driver.[ch]
13414
13415         * bus/connection.c: (connection_disconnect_handler):
13416         Remove the connection from the bus driver's list.
13417
13418         (connection_watch_callback): Dispatch messages.
13419
13420         (free_connection_data): Free connection name.
13421
13422         (bus_connection_setup): Add connection to the bus driver's list.
13423         (bus_connection_remove_owned_service):
13424         (bus_connection_set_name), (bus_connection_get_name):
13425         Add functions for setting and getting the connection's name.
13426
13427         * bus/connection.h:
13428         Add function headers.
13429
13430         * bus/driver.c: (create_unique_client_name),
13431         (bus_driver_handle_hello_message),
13432         (bus_driver_send_welcome_message), (bus_driver_message_handler),
13433         (bus_driver_add_connection), (bus_driver_remove_connection):
13434         * bus/driver.h:
13435         * bus/main.c:
13436         * bus/services.c: (bus_service_free):
13437         * bus/services.h:
13438         New file that handles communication and registreation with the bus
13439         itself.
13440
13441 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
13442
13443         * dbus/dbus-connection.c: (dbus_connection_send_message):
13444         Add a new client_serial parameter.
13445
13446         (dbus_connection_send_message_with_reply):
13447         Remove a @todo since we've implemented the blocking function.
13448
13449         (dbus_connection_send_message_with_reply_and_block):
13450         New function that sends a message and waits for a reply and
13451         then returns the reply.
13452
13453         * dbus/dbus-connection.h:
13454         Add new functions.
13455
13456         * dbus/dbus-errors.c: (dbus_result_to_string):
13457         * dbus/dbus-errors.h:
13458         Add new DBUS_RESULT.
13459
13460         * dbus/dbus-message-internal.h:
13461         * dbus/dbus-message.c: (_dbus_message_get_reply_serial),
13462         (_dbus_message_set_sender), (dbus_message_write_header),
13463         (dbus_message_new_reply), (decode_header_data),
13464         (_dbus_message_loader_return_buffer), (_dbus_message_test):
13465         * dbus/dbus-message.h:
13466         Add new functions that set the reply serial and sender.
13467         Also marshal and demarshal them correctly and add test.
13468
13469         * dbus/dbus-protocol.h:
13470         Add new DBUS_MESSAGE_TYPE_SENDER.
13471
13472         * glib/dbus-glib.h:
13473         * glib/dbus-gmain.c: (watch_callback), (free_callback_data),
13474         (add_watch), (remove_watch), (add_timeout), (remove_timeout),
13475         (dbus_connection_hookup_with_g_main):
13476         * glib/test-dbus-glib.c: (main):
13477         Rewrite to use GIOChannel and remove the GSource crack.
13478
13479         * test/echo-client.c: (main):
13480         * test/watch.c: (check_messages):
13481         Update for changed APIs
13482
13483 2003-01-19  Anders Carlsson  <andersca@codefactory.se>
13484
13485         * dbus/Makefile.am: Add dbus-timeout.[cħ]
13486
13487         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport):
13488         Create a DBusTimeoutList.
13489         (dbus_connection_set_timeout_functions): Add new function to
13490         set timeout callbacks
13491
13492         * dbus/dbus-connection.h: Add public DBusTimeout API.
13493
13494         * dbus/dbus-message.c: (dbus_message_get_service):
13495         * dbus/dbus-message.h:  New function.
13496
13497         * dbus/dbus-server.c: Fix small doc typo.
13498
13499         * dbus/dbus-timeout.[ch]: New files for mainloop timeouts.
13500
13501 2003-01-19  Anders Carlsson  <andersca@codefactory.se>
13502
13503         * dbus/dbus-string.c (_dbus_string_move_len): Don't delete all
13504         of the string, just as long as specified.
13505
13506 2003-01-19  Havoc Pennington  <hp@pobox.com>
13507
13508         * dbus/dbus-connection.c (dbus_connection_get_is_authenticated):
13509         new function
13510
13511         * dbus/dbus-server.c (dbus_server_set_max_connections)
13512         (dbus_server_get_max_connections, dbus_server_get_n_connections):
13513         keep track of current number of connections, and add API for
13514         setting a max (but haven't implemented enforcing the max yet)
13515
13516 2003-01-18  Havoc Pennington  <hp@pobox.com>
13517
13518         * dbus/dbus-transport-unix.c (unix_do_iteration): only do the
13519         reading/writing if read_watch != NULL or write_watch != NULL.
13520
13521         * dbus/dbus-message.c (_dbus_message_loader_return_buffer): fix
13522         the message loader code to actually load message->header and
13523         message->body into the newly-created message.
13524
13525         * dbus/dbus-transport-unix.c (check_write_watch): fix a mem leak
13526         in OOM case
13527
13528         * dbus/dbus-connection.c (dbus_connection_set_max_message_size)
13529         (dbus_connection_get_max_message_size)
13530         (dbus_connection_set_max_live_messages_size)
13531         (dbus_connection_get_max_live_messages_size): implement some
13532         resource limitation functions
13533
13534         * dbus/dbus-resources.c: new file implementing some of the
13535         resource limits stuff
13536
13537         * dbus/dbus-message.c (dbus_message_iter_get_byte_array): add
13538         missing docs, add @todo to handle OOM etc.
13539
13540         * dbus/dbus-marshal.c (_dbus_demarshal_byte_array): add missing
13541         docs
13542
13543 2003-01-18  Havoc Pennington  <hp@pobox.com>
13544
13545         * dbus/dbus-connection.c (dbus_connection_unref): disconnect the
13546         connection if it hasn't been already.
13547
13548         * dbus/dbus-connection.h: kill off the idea of an ErrorFunction,
13549         replace with DisconnectFunction.
13550
13551 2003-01-18  Havoc Pennington  <hp@pobox.com>
13552
13553         Building --disable-verbose-mode --disable-asserts --disable-tests
13554         cuts the library from 112K to 45K or so
13555
13556         * configure.in: check for varargs macro support,
13557         add --enable-verbose-mode, --enable-asserts.
13558
13559         * dbus/dbus-internals.h (_dbus_assert): support
13560         DBUS_DISABLE_ASSERT
13561         (_dbus_verbose): support DBUS_ENABLE_VERBOSE_MODE
13562
13563 2003-01-18  Havoc Pennington  <hp@pobox.com>
13564
13565         * dbus/dbus-test.c: include config.h so that tests actually run
13566
13567         * dbus/dbus-string.c: add assertions that stuff is 8-byte aligned,
13568         so the failure mode when that assumption fails will be plenty
13569         obvious.
13570
13571 2003-01-18  Havoc Pennington  <hp@pobox.com>
13572
13573         * configure.in: default --enable-tests to $USE_MAINTAINER_MODE
13574
13575         * dbus/Makefile.am: fix it up so dubs-test-main.c is included in
13576         the distribution
13577
13578         * test/Makefile.am: don't use special variable "TESTS" for echo-*
13579         since we don't want to use those in make check
13580
13581 2003-01-15  Havoc Pennington  <hp@redhat.com>
13582
13583         Release 0.2
13584
13585         * NEWS: update
13586
13587 2003-01-15  Havoc Pennington  <hp@redhat.com>
13588
13589         * test/Makefile.am: fix so that test source code ends up in the
13590         distribution on make distcheck
13591
13592 2003-01-15  Havoc Pennington  <hp@redhat.com>
13593
13594         Release 0.1.
13595
13596         * NEWS: update
13597
13598 2003-01-15  Havoc Pennington  <hp@redhat.com>
13599
13600         * dbus/dbus-test.c (dbus_internal_symbol_do_not_use_run_tests):
13601         fix build when --disable-tests
13602
13603         * Makefile.am (EXTRA_DIST): put HACKING in here
13604
13605         * HACKING: document procedure for making a tarball release.
13606
13607 2003-01-14  Anders Carlsson  <andersca@codefactory.se>
13608
13609         * bus/connection.c: (connection_error_handler),
13610         (bus_connection_setup):
13611         * bus/main.c: (main):
13612         Make sure that the DBusConnectionData struct is NULLed
13613         out to prevent a segfault.
13614
13615         * dbus/dbus-errors.c: (dbus_result_to_string):
13616         * dbus/dbus-errors.h:
13617         * dbus/dbus-message.c: (dbus_message_get_fields),
13618         (dbus_message_get_fields_valist), (_dbus_message_test):
13619         * dbus/dbus-message.h:
13620         Make dbus_message_get_fields return a result code so we can
13621         track invalid fields as well as oom.
13622
13623 2003-01-11  Havoc Pennington  <hp@pobox.com>
13624
13625         * configure.in: change --enable-test/--enable-ansi action-if-given
13626         to enable_foo=$enableval instead of enable_foo=yes
13627
13628 2003-01-08  Havoc Pennington  <hp@pobox.com>
13629
13630         * dbus/dbus-string.c (_dbus_string_align_length): new function
13631
13632         * dbus/dbus-test-main.c: move main() for test app here
13633         * dbus/dbus-test.c
13634         (dbus_internal_symbol_do_not_use_run_tests): we have to export a
13635         symbol to run tests, because dbus-test isn't in the main
13636         library
13637
13638         Code review nitpicks.
13639
13640         * dbus/dbus-message.c (dbus_message_write_header): add newlines
13641         for people with narrow emacs ;-). Assert client_serial was filled
13642         in. Assert message->name != NULL.
13643         (dbus_message_append_fields): have "first_field_type" arg separate
13644         from va list, needed for C++ binding that also uses varargs IIRC
13645         and helps with type safety
13646         (dbus_message_new): add @todo about using DBusString to store
13647         service/name internally
13648         (dbus_message_new): don't leak ->service and ->name on OOM later
13649         in the function
13650         (dbus_message_unref): free the service name
13651         (dbus_message_get_fields): same change to varargs
13652         i.e. first_field_type
13653         (_dbus_message_loader_return_buffer): assert that the message data
13654         is aligned (if not it's a bug in our code). Put in verbose griping
13655         about why we set corrupted = TRUE.
13656         (decode_header_data): add FIXME that char* is evil.  Was going to
13657         add FIXME about evil locale-specific string.h strncmp, but just
13658         switched to wacky string-as-uint32 optimization. Move check for
13659         "no room for field name" above get_const_data_len() to avoid
13660         assertion failure in get_const_data_len if we have trailing 2
13661         bytes or the like. Check for service and name fields being
13662         provided twice. Don't leak service/name on error. Require field
13663         names to be aligned to 4 bytes.
13664
13665         * dbus/dbus-marshal.c: move byte swap stuff to header
13666         (_dbus_pack_int32): uscore-prefix
13667         (_dbus_unpack_int32): uscore-prefix
13668         (_dbus_unpack_uint32): export
13669         (_dbus_demarshal_string): add @todo complaining about use of
13670         memcpy()
13671         (_dbus_marshal_get_field_end_pos): add @todo about bad error
13672         handling allowing corrupt data to go unchecked
13673
13674 2003-01-08  Havoc Pennington  <hp@redhat.com>
13675
13676         * dbus/dbus-transport-unix.c (unix_do_iteration): add read/write
13677         to the select() as needed for authentication. (should be using
13678         _dbus_poll() not select, but for another day)
13679
13680         * dbus/dbus.h: include dbus/dbus-protocol.h
13681
13682 2003-01-08  Anders Carlsson  <andersca@codefactory.se>
13683
13684         * dbus/Makefile.am (dbusinclude_HEADERS): Install
13685         dbus-connection.h
13686
13687 2003-01-08  Anders Carlsson  <andersca@codefactory.se>
13688
13689         * dbus/dbus-internals.c: (_dbus_type_to_string):
13690         New function that returns a string describing a type.
13691
13692         * dbus/dbus-marshal.c: (_dbus_demarshal_byte_array):
13693         * dbus/dbus-marshal.h:
13694         * dbus/dbus-message.c: (dbus_message_get_fields_valist),
13695         (dbus_message_iter_get_field_type), (dbus_message_iter_get_double),
13696         (dbus_message_iter_get_byte_array):
13697         * dbus/dbus-message.h:
13698         Add new convenience functions for appending and getting message fields.
13699         Also add demarshalling routines for byte arrays.
13700
13701 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
13702
13703         * dbus/dbus-connection-internal.h:
13704         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport),
13705         (_dbus_connection_get_next_client_serial),
13706         (dbus_connection_send_message):
13707         * dbus/dbus-internals.h:
13708         * dbus/dbus-marshal.c: (unpack_uint32), (dbus_unpack_int32),
13709         (dbus_pack_int32), (_dbus_marshal_double), (_dbus_marshal_int32),
13710         (_dbus_marshal_uint32), (_dbus_demarshal_double),
13711         (_dbus_demarshal_int32), (_dbus_demarshal_uint32),
13712         (_dbus_demarshal_string), (_dbus_marshal_get_field_end_pos),
13713         (_dbus_verbose_bytes), (_dbus_marshal_test):
13714         * dbus/dbus-marshal.h:
13715         * dbus/dbus-message-internal.h:
13716         * dbus/dbus-message.c: (_dbus_message_set_client_serial),
13717         (dbus_message_write_header), (_dbus_message_lock),
13718         (dbus_message_new), (dbus_message_ref), (dbus_message_unref),
13719         (dbus_message_get_name), (dbus_message_append_int32),
13720         (dbus_message_append_uint32), (dbus_message_append_double),
13721         (dbus_message_append_string), (dbus_message_append_byte_array),
13722         (dbus_message_get_fields_iter), (dbus_message_iter_ref),
13723         (dbus_message_iter_unref), (dbus_message_iter_has_next),
13724         (dbus_message_iter_next), (dbus_message_iter_get_field_type),
13725         (dbus_message_iter_get_string), (dbus_message_iter_get_int32),
13726         (dbus_message_iter_get_uint32), (dbus_message_iter_get_double),
13727         (decode_header_data), (_dbus_message_loader_return_buffer),
13728         (message_iter_test), (_dbus_message_test):
13729         * dbus/dbus-message.h:
13730         * dbus/dbus-protocol.h:
13731         * dbus/dbus-test.c: (main):
13732         * dbus/dbus-test.h:
13733         * glib/test-dbus-glib.c: (message_handler), (main):
13734         * test/echo-client.c: (main):
13735         * test/watch.c: (check_messages):
13736         Make messages sendable and receivable for real.
13737
13738 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
13739
13740         * dbus/dbus-marshal.c: (_dbus_marshal_double),
13741         (_dbus_marshal_string), (_dbus_marshal_byte_array):
13742         * dbus/dbus-message.c: (dbus_message_append_int32),
13743         (dbus_message_append_uint32), (dbus_message_append_double),
13744         (dbus_message_append_string), (dbus_message_append_byte_array):
13745         Handle OOM restoration.
13746
13747 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
13748
13749         * dbus/dbus-marshal.c: (_dbus_marshal_string),
13750         (_dbus_demarshal_string), (_dbus_marshal_test):
13751         * dbus/dbus-marshal.h:
13752         * dbus/dbus-message.c: (dbus_message_get_name),
13753         Document these functions.
13754
13755         (dbus_message_append_int32), (dbus_message_append_uint32),
13756         (dbus_message_append_double), (dbus_message_append_string),
13757         (dbus_message_append_byte_array):
13758         * dbus/dbus-message.h:
13759         Add functions for adding message fields of different types.
13760
13761         * dbus/dbus-protocol.h:
13762         Add the different types.
13763
13764 2003-01-05  Havoc Pennington  <hp@pobox.com>
13765
13766         * bus/connection.c: implement routines for handling connections,
13767         first thing is keeping a list of owned services on each connection
13768         and setting up watches etc.
13769
13770         * bus/services.c: implement a mapping from service names to lists
13771         of connections
13772
13773         * dbus/dbus-hash.c: add DBUS_HASH_POINTER
13774
13775         * dbus/dbus-threads.c (dbus_static_mutex_lock): add functions
13776         to use static mutexes for global data
13777
13778         * dbus/dbus-connection.c (dbus_connection_set_data): add new
13779         collection of functions to set/get application-specific data
13780         on the DBusConnection.
13781
13782 2003-01-04  Havoc Pennington  <hp@pobox.com>
13783
13784         * dbus/dbus-sysdeps.c (_dbus_sleep_milliseconds): new function
13785         (_dbus_poll): new function
13786
13787         * dbus/dbus-internals.h (_DBUS_STRUCT_OFFSET): new macro
13788         copied from GLib
13789
13790         * bus/loop.c: initial code for the daemon main loop
13791
13792 2003-01-04  Havoc Pennington  <hp@pobox.com>
13793
13794         * test/watch.c (error_handler): make it safe if the error handler
13795         is called multiple times (if we s/error handler/disconnect
13796         handler/ we should just guarantee it's called only once)
13797
13798         * dbus/dbus-transport.c (_dbus_transport_disconnect): call the
13799         error handler on disconnect (it's quite possible we should
13800         just change the error handler to a "disconnect handler," I'm
13801         not sure we have any other meaningful errors)
13802
13803         * configure.in: check for getpwnam_r
13804
13805         * dbus/dbus-transport.c, dbus/dbus-transport-unix.c,
13806         dbus/dbus-auth.c: add credentials support, add EXTERNAL auth
13807         mechanism as in SASL spec, using socket credentials
13808
13809         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): new function
13810         (_dbus_send_credentials_unix_socket): new function
13811
13812         * dbus/dbus-sysdeps.c (_dbus_accept_unix_socket): rename just
13813         dbus_accept()
13814         (_dbus_write): only check errno if <0 returned
13815         (_dbus_write_two): ditto
13816
13817 2003-01-02  Anders Carlsson  <andersca@codefactory.se>
13818
13819         * dbus/dbus-marshal.c: (_dbus_marshal_utf8_string),
13820         (_dbus_marshal_byte_array), (_dbus_demarshal_utf8_string),
13821         (_dbus_marshal_test):
13822         * dbus/dbus-marshal.h:
13823         Add _dbus_marshal_byte_array and rename _dbus_marshal_string
13824         to _dbus_marshal_utf8_string. Also fix some tests.
13825
13826 2002-12-28  Harri Porten  <porten@kde.org>
13827
13828         * configure.in: added check for C++ compiler and a very cheesy
13829         check for the Qt integration
13830
13831         * Makefile.am (SUBDIRS): compile qt subdir if support is enabled
13832
13833         * qt/Makefile.am: added
13834
13835         * qt/.cvsignore: added
13836
13837         * qt/dbus-qthread.cc, qt/dbus-qthread.cpp: renamed former to
13838         latter, added #ifdef QT_THREAD_SUPPORT guard.
13839
13840         * dbus/Makefile.am: added missing headers for make dist
13841
13842 2002-12-28  Kristian Rietveld  <kris@gtk.org>
13843
13844         * dbus/Makefile.am: fixup export-symbols-regex.
13845
13846 2002-12-27  Anders Carlsson  <andersca@codefactory.se>
13847
13848         * acinclude.m4: Add this file and put the
13849         PKG_CHECK_MODULE macro in it.
13850
13851 2002-12-27  Anders Carlsson  <andersca@codefactory.se>
13852
13853         * dbus/dbus-marshal.c: (_dbus_marshal_string),
13854         (_dbus_demarshal_double), (_dbus_demarshal_int32),
13855         (_dbus_demarshal_uint32), (_dbus_demarshal_string),
13856         (_dbus_marshal_test):
13857         Make the demarshalling routines align the pos argument.
13858         Add string marshalling tests and fix the obvious bugs
13859         discovered.
13860
13861 2002-12-26  Havoc Pennington  <hp@pobox.com>
13862
13863         * dbus/dbus-auth.c: fixes fixes fixes
13864
13865         * dbus/dbus-transport-unix.c: wire up support for
13866         encoding/decoding data on the wire
13867
13868         * dbus/dbus-auth.c (_dbus_auth_encode_data)
13869         (_dbus_auth_decode_data): append to target string
13870         instead of nuking it.
13871
13872 2002-12-26  Havoc Pennington  <hp@pobox.com>
13873
13874         * dbus/dbus-marshal.h (DBUS_COMPILER_BYTE_ORDER): #ifdef
13875         WORDS_BIGENDIAN then compiler byte order is DBUS_BIG_ENDIAN,
13876         doh
13877
13878         * dbus/dbus-marshal.c: Add macros to do int swapping in-place and
13879         avoid swap_bytes() overhead (ignoring possible assembly stuff for
13880         now). Main point is because I wanted unpack_uint32 to implement
13881         _dbus_verbose_bytes
13882         (_dbus_verbose_bytes): new function
13883
13884         * dbus/dbus-string.c (_dbus_string_validate_ascii): new function
13885
13886         * dbus/dbus-message.c (_dbus_message_loader_get_is_corrupted): add
13887         mechanism to handle a corrupt message stream
13888         (_dbus_message_loader_new): fix preallocation to only prealloc,
13889         not prelengthen
13890
13891         * dbus/dbus-string.c (_dbus_string_skip_blank): fix this function
13892         (_dbus_string_test): enhance tests for copy/move and fix the
13893         functions
13894
13895         * dbus/dbus-transport-unix.c: Hold references in more places to
13896         avoid reentrancy problems
13897
13898         * dbus/dbus-transport.c: ditto
13899
13900         * dbus/dbus-connection.c (dbus_connection_dispatch_message): don't
13901         leak reference count in no-message case
13902
13903         * test/watch.c (do_mainloop): handle adding/removing watches
13904         during iteration over the watches. Also, ref the connection/server
13905         stored on a watch, so we don't try to mangle a destroyed one.
13906
13907         * dbus/dbus-transport-unix.c (do_authentication): perform
13908         authentication
13909
13910         * dbus/dbus-auth.c (get_state): add a state
13911         AUTHENTICATED_WITH_UNUSED_BYTES and return it if required
13912         (_dbus_auth_get_unused_bytes): append the unused bytes
13913         to the passed in string, rather than prepend
13914
13915         * dbus/dbus-transport.c (_dbus_transport_init_base): create
13916         the auth conversation DBusAuth
13917
13918         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd)
13919         (_dbus_transport_new_for_domain_socket): when creating a
13920         transport, pass in whether it's a client-side or server-side
13921         transport so we know which DBusAuth to create
13922
13923 2002-12-03  Havoc Pennington  <hp@pobox.com>
13924
13925         * dbus/dbus-transport-unix.c (unix_finalize): finalize base
13926         _after_ finalizing the derived members
13927         (unix_connection_set): unref watch if we fail to add it
13928
13929         * dbus/dbus-connection.c (dbus_connection_unref): delete the
13930         transport first, so that the connection owned by the
13931         transport will be valid as the transport finalizes.
13932
13933         * dbus/dbus-transport-unix.c (unix_finalize): free the write_watch
13934         if necessary, and remove watches from the connection.
13935
13936         * dbus/dbus-watch.c (_dbus_watch_list_free): improve a comment
13937
13938 2002-12-26  Anders Carlsson  <andersca@codefactory.se>
13939
13940         * dbus/dbus-marshal.c: (_dbus_marshal_string),
13941         (_dbus_demarshal_double), (_dbus_demarshal_int32),
13942         (_dbus_demarshal_uint32), (_dbus_demarshal_string),
13943         (_dbus_marshal_test):
13944         * dbus/dbus-marshal.h:
13945         Add string marshal functions and have the demarshal functions
13946         return the new position.
13947
13948 2002-12-25  Havoc Pennington  <hp@pobox.com>
13949
13950         * doc/dbus-sasl-profile.txt: docs on the authentication protocol,
13951         it is a simple protocol that just maps directly to SASL.
13952
13953         * dbus/dbus-auth.h, dbus/dbus-auth.c: authentication protocol
13954         initial implementation, not actually used yet.
13955
13956         * dbus/dbus-string.c (_dbus_string_find): new function
13957         (_dbus_string_equal): new function
13958         (_dbus_string_base64_encode): new function
13959         (_dbus_string_base64_decode): new function
13960
13961 2002-12-25  Anders Carlsson  <andersca@codefactory.se>
13962
13963         * dbus/Makefile.am:
13964         * dbus/dbus-marshal.c: (swap_bytes), (_dbus_marshal_double),
13965         (_dbus_marshal_int32), (_dbus_marshal_uint32),
13966         (_dbus_demarshal_double), (_dbus_demarshal_int32),
13967         (_dbus_demarshal_uint32), (_dbus_marshal_test):
13968         * dbus/dbus-marshal.h:
13969         * dbus/dbus-protocol.h:
13970         * dbus/dbus-test.c: (main):
13971         * dbus/dbus-test.h:
13972         Add un-optimized marshalling/demarshalling routines.
13973
13974 2002-12-25  Harri Porten  <porten@kde.org>
13975
13976         * qt/dbus-qt.h: adjusted ctor and getter to KDE/Qt conventions
13977
13978 2002-12-24  Zack Rusin  <zack@kde.org>
13979
13980         * qt/dbus-qthread.cc: adding - integrates QMutex into Dbus
13981         * qt/dbus-qt.h: skeleton with two sample implemenatation of the
13982         main loop stuff
13983
13984 2002-12-24  Havoc Pennington  <hp@pobox.com>
13985
13986         * glib/dbus-gthread.c: fix include
13987
13988         * glib/dbus-glib.h: rename DBusMessageHandler for now.
13989         I think glib API needs to change, though, as you don't
13990         want to use DBusMessageFunction, you want to use the
13991         DBusMessageHandler object. Probably
13992         dbus_connection_open_with_g_main_loop()
13993         and dbus_connection_setup_g_main_loop() or something like that
13994         (but think of better names...) that just create a connection
13995         that has watch/timeout functions etc. already set up.
13996
13997         * dbus/dbus-connection.c
13998         (dbus_connection_send_message_with_reply): new function just to
13999         show how the message handler helps us deal with replies.
14000
14001         * dbus/dbus-list.c (_dbus_list_remove_last): new function
14002
14003         * dbus/dbus-string.c (_dbus_string_test): free a string that
14004         wasn't
14005
14006         * dbus/dbus-hash.c: use memory pools for the hash entries
14007         (rebuild_table): be more paranoid about overflow, and
14008         shrink table when we can
14009         (_dbus_hash_test): reduce number of sprintfs and write
14010         valid C89. Add tests for case where we grow and then
14011         shrink the hash table.
14012
14013         * dbus/dbus-mempool.h, dbus/dbus-mempool.c: memory pools
14014
14015         * dbus/dbus-connection.c (dbus_connection_register_handler)
14016         (dbus_connection_unregister_handler): new functions
14017
14018         * dbus/dbus-message.c (dbus_message_get_name): new
14019
14020         * dbus/dbus-list.c: fix docs typo
14021
14022         * dbus/dbus-message-handler.h, dbus/dbus-message-handler.c:
14023         an object representing a handler for messages.
14024
14025 2002-12-16  Anders Carlsson  <andersca@codefactory.se>
14026
14027         * glib/dbus-glib.h:
14028         * glib/dbus-gthread.c: (dbus_gthread_init):
14029         Don't use the gdbus prefix for public functions.
14030
14031 2002-12-16  Anders Carlsson  <andersca@codefactory.se>
14032
14033         * Makefile.am:
14034         * configure.in:
14035         Add GLib checks and fixup .pc files
14036
14037         * glib/Makefile.am:
14038         * glib/dbus-glib.h:
14039         * glib/dbus-gmain.c: (gdbus_connection_prepare),
14040         (gdbus_connection_check), (gdbus_connection_dispatch),
14041         (gdbus_add_connection_watch), (gdbus_remove_connection_watch),
14042         (dbus_connection_gsource_new):
14043         * glib/dbus-gthread.c: (dbus_gmutex_new), (dbus_gmutex_free),
14044         (dbus_gmutex_lock), (dbus_gmutex_unlock), (dbus_gthread_init):
14045         * glib/test-dbus-glib.c: (message_handler), (main):
14046         Add GLib support.
14047
14048 2002-12-15  Harri Porten  <porten@kde.org>
14049
14050         * autogen.sh: check for libtoolize before attempting to use it
14051
14052         * dbus/dbus-transport-unix.c: include <sys/time.h> for timeval
14053         struct.
14054
14055         * .cvsignore: ignore more stamp files
14056
14057         * dbus/dbus-watch.c (_dbus_watch_list_new): fixed doc error
14058
14059         * test/Makefile.am: added -I$(top_srcdir) to be able to compile
14060         without make install.
14061
14062 2002-12-15  Havoc Pennington  <hp@pobox.com>
14063
14064         * dbus/dbus-threads.c: add thread stubs that a higher library
14065         layer can fill in. e.g. the GLib wrapper might fill them in with
14066         GThread stuff. We still need to use this thread API to
14067         thread-safe-ize the library.
14068
14069 2002-12-12  Havoc Pennington  <hp@pobox.com>
14070
14071         * dbus/dbus-transport-unix.c, dbus/dbus-server-unix.c: use the
14072         below new interfaces and include fewer system headers.
14073
14074         * dbus/dbus-sysdeps.c (_dbus_read): new function
14075         (_dbus_write): new function
14076         (_dbus_write_two): new function
14077         (_dbus_connect_unix_socket): new function
14078         (_dbus_listen_unix_socket): new function
14079
14080         * dbus/dbus-message-internal.h: change interfaces to use
14081         DBusString
14082
14083 2002-12-11  Havoc Pennington  <hp@pobox.com>
14084
14085         * dbus/dbus-types.h: add dbus_unichar
14086
14087         * dbus/dbus-internals.c (_dbus_verbose): use _dbus_getenv
14088
14089         * dbus/dbus-connection.c (dbus_connection_send_message): return
14090         TRUE on success
14091
14092         * dbus/dbus-transport.c: include dbus-watch.h
14093
14094         * dbus/dbus-connection.c: include dbus-message-internal.h
14095
14096         * HACKING: add file with coding guidelines stuff.
14097
14098         * dbus/dbus-string.h, dbus/dbus-string.c: Encapsulate all string
14099         handling here, for security purposes (as in vsftpd). Not actually
14100         using this class yet.
14101
14102         * dbus/dbus-sysdeps.h, dbus/dbus-sysdeps.c: Encapsulate all
14103         system/libc usage here, as in vsftpd, for ease of auditing (and
14104         should also simplify portability). Haven't actually moved all the
14105         system/libc usage into here yet.
14106
14107 2002-11-25  Havoc Pennington  <hp@pobox.com>
14108
14109         * dbus/dbus-internals.c (_dbus_verbose): fix to not
14110         always print the first verbose message.
14111
14112 2002-11-24  Havoc Pennington  <hp@pobox.com>
14113
14114         * test/echo-client.c, test/echo-server.c: cheesy test
14115         clients.
14116
14117         * configure.in (AC_CHECK_FUNCS): check for writev
14118
14119         * dbus/dbus-message.c (_dbus_message_get_network_data): new
14120         function
14121
14122         * dbus/dbus-list.c (_dbus_list_foreach): new function
14123
14124         * dbus/dbus-internals.c (_dbus_verbose): new function
14125
14126         * dbus/dbus-server.c, dbus/dbus-server.h: public object
14127         representing a server that listens for connections.
14128
14129         * dbus/.cvsignore: create
14130
14131         * dbus/dbus-errors.h, dbus/dbus-errors.c:
14132         public API for reporting errors
14133
14134         * dbus/dbus-connection.h, dbus/dbus-connection.c:
14135         public object representing a connection that
14136         sends/receives messages. (Same object used for
14137         both client and server.)
14138
14139         * dbus/dbus-transport.h, dbus/dbus-transport.c:
14140         Basic abstraction for different kinds of stream
14141         that we might read/write messages from.
14142
14143 2002-11-23  Havoc Pennington  <hp@pobox.com>
14144
14145         * dbus/dbus-internals.h (_DBUS_INT_MAX): add _DBUS_INT_MIN
14146         _DBUS_INT_MAX
14147
14148         * dbus/dbus-test.c (main): add list test, and include
14149         dbus-test.h as intended
14150
14151         * dbus/dbus-hash.c (_dbus_hash_table_remove_string)
14152         (_dbus_hash_table_remove_int): return value indicates
14153         whether the entry existed to remove
14154
14155         * dbus/dbus-list.c: add linked list utility class,
14156         with docs and tests
14157
14158         * dbus/dbus-hash.c: add TODO item about shrinking the hash bucket
14159         array sometimes.
14160
14161 2002-11-23  Havoc Pennington  <hp@pobox.com>
14162
14163         * Doxyfile.in (INCLUDE_FILE_PATTERNS): expand DBUS_BEGIN_DECLS/
14164         DBUS_END_DECLS to nothing, that should fix this once and for all
14165
14166         * Doxyfile.in (JAVADOC_AUTOBRIEF): set to YES
14167
14168         * dbus/dbus-message.c, dbus/dbus-hash.c:
14169         add some missing @brief
14170
14171 2002-11-23  Havoc Pennington  <hp@pobox.com>
14172
14173         * dbus/dbus-message.h: put semicolons after DEBUG_BEGIN_DECLS
14174         to avoid confusing Doxygen
14175
14176         * dbus/dbus-hash.c: @} not }@
14177
14178         * dbus/dbus-message.c (struct DBusMessage): split out
14179         internals docs
14180
14181 2002-11-23  Havoc Pennington  <hp@pobox.com>
14182
14183         * configure.in: pile on more warning flags if using gcc
14184
14185         * Doxyfile.in (EXTRACT_STATIC): set to NO, so we don't have
14186         to document static functions
14187
14188         * configure.in: add summary to end of configure so it
14189         looks nice and attractive
14190
14191         * dbus/dbus-hash.c: finish implementation and write unit
14192         tests and docs
14193
14194         * configure.in: add --enable-tests to enable unit tests
14195
14196         * dbus/dbus-test.c: test program to run unit tests
14197         for all files in dbus/*, initially runs a test for
14198         dbus-hash.c
14199
14200         * dbus/dbus-internals.h: file to hold some internal utility stuff
14201
14202 2002-11-22  Havoc Pennington  <hp@redhat.com>
14203
14204         * dbus/dbus-hash.c: copy in Tcl hash table, not yet
14205         "ported" away from Tcl
14206
14207         * dbus/dbus-types.h: header for types such as dbus_bool_t
14208
14209 2002-11-22  Havoc Pennington  <hp@redhat.com>
14210
14211         * dbus/dbus.h: fixups for doc warnings
14212
14213         * Doxyfile.in (FILE_PATTERNS): we need to scan .h to pick up
14214         macros
14215         (QUIET): make it quiet so we can see warnings
14216
14217         * dbus/dbus-memory.c: teach D-BUS to allocate and free memory
14218
14219 2002-11-22  Havoc Pennington  <hp@redhat.com>
14220
14221         * Makefile.am: include "Doxyfile" target in all-local
14222
14223         * configure.in: generate the Doxyfile
14224
14225         * Doxyfile.in: move Doxyfile here, so we can use
14226         configure to generate a Doxyfile with the right
14227         version number etc.
14228
14229 2002-11-22  Havoc Pennington  <hp@redhat.com>
14230
14231         * dbus/dbus-message.c: move inline docs into .c file
14232
14233         * Doxyfile (OUTPUT_DIRECTORY): move output to doc/api
14234         so all docs are under doc/
14235         (MAN_EXTENSION): generate man pages. Use extension
14236         ".3dbus" which matches ".3qt" on my system,
14237         I guess this is OK, I don't know really.
14238         (FILE_PATTERNS): look for .c files not .h, makes sense
14239         for plain C I think
14240
14241 2002-11-22  Havoc Pennington  <hp@pobox.com>
14242
14243         * Makefile.am (SUBDIRS): rename subdir "server" to "bus"
14244         because any app can be a server, and any app can be a client,
14245         the bus is a special kind of server.
14246
14247 Thu Nov 21 23:35:31 2002  Zack Rusin  <zack@kde.org>
14248
14249         * Doxyfile : adding. Still needs Makefile rules to be generated
14250         automatically (just run "doxygen" in the toplevel dir for now to
14251         generate docs)
14252
14253         * dbus/dbus-message.h : Adding sample docs (javadoc since
14254         resembles gtk-doc a little more)
14255
14256         * dbus/dbus.h : Adding sample docs
14257
14258 2002-11-21  Havoc Pennington  <hp@redhat.com>
14259
14260         * dbus/Makefile.am (INCLUDES): define DBUS_COMPILATION
14261         so we can allow ourselves to include files directly,
14262         instead of having to use dbus.h
14263
14264         * dbus/dbus.h: fill in
14265
14266         * dbus/dbus-message.h: sketch out a sample header file.
14267         Include griping if you include it directly instead of
14268         via dbus.h
14269
14270         * dbus/dbus-macros.h: new file with macros for extern "C",
14271         TRUE/FALSE, NULL, etc.
14272
14273         * doc/file-boilerplate.c: put include guards in here
14274
14275 2002-11-21  Havoc Pennington  <hp@redhat.com>
14276
14277         * doc/file-boilerplate.c: include both AFL and GPL boilerplate.
14278
14279         * COPYING: include the GPL as well, and license code
14280         under both AFL and GPL.
14281
14282 2002-11-21  Havoc Pennington  <hp@redhat.com>
14283
14284         * acconfig.h: get rid of this
14285
14286         * autogen.sh (run_configure): add --no-configure option
14287
14288         * configure.in: remove AC_ARG_PROGRAM to make
14289         autoconf complain less. add AC_PREREQ.
14290         add AC_DEFINE third arg.
14291
14292 2002-11-21  Anders Carlsson  <andersca@codefactory.se>
14293
14294         * doc/Makefile.am:
14295         Fix references so we can distcheck.
14296
14297 2002-11-21  Havoc Pennington  <hp@redhat.com>
14298
14299         * Initial module creation
14300