2006-09-10 Havoc Pennington <hp@redhat.com>
[platform/upstream/dbus.git] / ChangeLog
1 2006-09-10  Havoc Pennington  <hp@redhat.com>
2
3        patch mostly by Peter Kümmel, bug #8211
4         
5         * dbus/dbus-sysdeps-unix.c: new file, which splits out
6         unix-specific stuff in dbus-sysdeps.c
7
8         * dbus/dbus-sysdeps.c: don't include any UNIX-only headers, 
9         and move unix-specific stuff to dbus-sysdeps-unix.c
10
11         * configure.in: check HAVE_ERRNO_H
12         
13 2006-09-08  John (J5) Palmieri  <johnp@redhat.com>
14
15         * bus/test-main.c (main): Initialize threading during tests
16
17         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
18         Unlock connection on error
19         (generate_local_error_message): static method for generating
20         an error message when we don't have a message to reply to
21         (_dbus_connection_block_pending_call): Send a disconnect error
22         instead of just a timeout (NULL) when the bus gets disconnected
23         while blocking for a reply.
24         
25
26 2006-09-08  John (J5) Palmieri  <johnp@redhat.com>
27
28         * dbus/dbus-connection.c (dbus_connection_dispatch): Properly remove
29         filters (Patch from Kimmo Hämäläinen 
30         <kimmo dot hamalainen at nokia dot com>)
31
32 2006-09-07  John (J5) Palmieri  <johnp@redhat.com>
33
34         * dbus/dbus-connection-internal.h: Add prototype for 
35         _dbus_connection_test_get_locks to remove warning
36
37 2006-09-07  John (J5) Palmieri  <johnp@redhat.com>
38
39         * dbus/dbus-spawn.c (_dbus_spawn_async_with_babysitter): Make sure we
40         close child_err_report_pipe[WRITE_END] on exec (Patch from 
41         Kimmo Hämäläinen <kimmo dot hamalainen at nokia dot com>)
42
43 2006-09-07  John (J5) Palmieri  <johnp@redhat.com>
44
45         * Clean up close calls to use _dbus_close (Patch from 
46         Kimmo Hämäläinen <kimmo dot hamalainen at nokia dot com>)
47
48 2006-09-06  John (J5) Palmieri  <johnp@redhat.com>
49
50         * doc/TODO:
51         - Remove pending call locking todo item
52         - dbus_connection_open now holds hard ref.  Remove todo item
53         - do proper locking on _dbus_bus_check_connection_and_unref
54           and handle DBUS_BUS_STARTER. Remove todo item
55         - Warn on closing of a shared connection.  Remove todo item
56
57         * bus/bus.c, bus/connection.c, bus/dispatch.c, dbus/dbus-bus.c,
58         dbus/dbus-connection.c: Use the dbus_connection_close_internal
59         so we don't get the warning when closing shared connections
60
61         * test/test-service.c, test/test-shell-service.c: Applications
62         don't close shared connections themselves so we unref instead of
63         close
64
65         * test/test-utils.c (test_connection_shutdown): Close the connection
66
67         * dbus/dbus-bus.c (_dbus_bus_check_connection_and_unref): Changed to
68         _dbus_bus_check_connection_and_unref_unlocked since we only call this
69         method on a locked connection.  
70         Make sure we call _dbus_connection_unref_unlocked instead of 
71         dbus_connection_unref also.
72         Handle DBUS_BUS_STARTER correctly
73
74         * dbus/dbus-connection.c (connection_record_shared_unlocked):
75         Mark as shared and hard ref the connection
76         (connection_forget_shared_unlocked): Remove the hard ref from the 
77         connection
78         (_dbus_connection_close_internal_and_unlock):  New internal function
79         which takes a locked connection and unlocks it after closing it
80         (_dbus_connection_close_internal): New internal function which acts
81         like the origonal dbus_connection_close method by grabbing a connection
82         lock and calling _dbus_connection_close_internal_and_unlock
83         (dbus_connection_close): Public close method, warns when the app
84         trys to close a shared connection
85
86 2006-09-06  John (J5) Palmieri  <johnp@redhat.com>
87
88         * bus/driver.c:
89         (bus_driver_generate_introspect_string): New method for populating
90         a DBusString with the introspect data
91         (bus_driver_handle_introspect): Move introspect generation code to 
92         bus_driver_generate_introspect_string
93
94         * bus/main.c:
95         (introspect): New function which prints out the intropect data and
96         exits
97         (main): Add a --introspect switch
98
99 2006-09-06  John (J5) Palmieri  <johnp@redhat.com>
100
101         * doc/TODO: Removed dtd publishing item.  
102         It seems the dtd has already been added at
103         http://www.freedesktop.org/standards/dbus/1.0/introspect.dtd
104
105 2006-09-05  John (J5) Palmieri  <johnp@redhat.com>
106
107         * doc/TODO, various source files: Audited todo's and FIXME's and
108         prepended the ones we should be looking at with 1.0.  Those
109         prepended with 1.0? need clerification or might not be needed
110         for 1.0
111
112 2006-09-05  John (J5) Palmieri  <johnp@redhat.com>
113
114         * dbus/dbus-pending-call.c: Add some checks so we don't crash on
115         NULL in the public API (Patch from Kimmo Hämäläinen 
116         <kimmo dot hamalainen at nokia dot com>)
117
118 2006-09-05  John (J5) Palmieri  <johnp@redhat.com>
119
120         * configure.in: Fix for OS-X compile time endian issues (patch from
121         Benjamin Reed <ranger at befunk dot com>)
122
123 2006-09-05  John (J5) Palmieri  <johnp@redhat.com>
124
125         * configure.in: Check for no-common compiler flag (OS-X fix from
126         Benjamin Reed <ranger at befunk dot com>)
127
128 2006-09-01  John (J5) Palmieri  <johnp@redhat.com>
129
130         * tools/dbus-launch.c: Add a sigterm handler (patch from Frederic Crozat
131         <fcrozat at mandriva dot com>)
132
133 2006-08-29  Havoc Pennington  <hp@redhat.com>
134
135         * test/test-service.c (path_message_func): fix lack of return value
136
137         * dbus/dbus-sysdeps.c (_dbus_printf_string_upper_bound): fix
138         formatting, remove #ifdef, and fix docs. #ifdef doesn't make
139         any more sense than on anything else in this file.
140         (_dbus_get_tmpdir): add const to return value, and keep the
141         results of the various getenv around in a static variable.
142
143 2006-08-29  Havoc Pennington  <hp@redhat.com>
144
145         * dbus/dbus-sysdeps-util.c, dbus/dbus-sysdeps-util-unix.c: change
146         from Ralf Habacker to move UNIX-specific sysdeps into a separate file.
147
148 2006-08-25  John (J5) Palmieri  <johnp@redhat.com>
149
150         * test/Makefile.am: change find to use syntax that works with non
151         gnu versions of find
152
153 2006-08-25  John (J5) Palmieri  <johnp@redhat.com>
154
155         * dbus/dbus-transport.c: fix invalid deref when checking if
156         a vtable method exists (Patch from Christian Ehrlicher 
157         <ch dot ehrlicher at gmx dot de>)
158
159 2006-08-25  John (J5) Palmieri  <johnp@redhat.com>
160
161         * configure.in, dbus/Makefile.am, test/name-test/run-test.sh, 
162         test/name-test/Makefile.am: Fixed some issues with getting get dbus 
163         to build with builddir != srcdir (Taken from a patch by Bernard Leak
164         <bernard at brenda-arkle dot demon dot co dot uk>)
165
166 2006-08-25  John (J5) Palmieri  <johnp@redhat.com>
167
168         * configure.in: Fix DBUS_DAEMONDIR to use EXPANDED_BINDIR for the
169         default case
170
171 2006-08-25  John (J5) Palmieri  <johnp@redhat.com>
172
173         * configure.ac, bus/Makefile.am: Generalize kqueue support so that
174         it works on any system providing this interface, not only FreeBSD.
175         For example, NetBSD. (Patch by Julio M. Merino Vidal  <jmmv at NetBSD dot org>)
176
177 2006-08-20  Havoc Pennington  <hp@redhat.com>
178
179         * doc/dbus-faq.xml, doc/dbus-tutorial.xml: some improvements to
180         the docs
181
182 2006-08-18  John (J5) Palmieri  <johnp@redhat.com>
183
184         * Released 0.92 
185
186 2006-08-18  John (J5) Palmieri  <johnp@redhat.com>
187
188         * dbus/dbus-threads.c (dbus_threads_init): change the documentation
189         to reflect the init late change
190
191         * bus/bus.c (bus_context_new): Check user before we fork so we can
192         print out an error message a user will be able to see
193
194 2006-08-18  John (J5) Palmieri  <johnp@redhat.com>
195
196         Patch provided by Ralf Habacker (ralf dot habacker at freenet dot de) 
197
198         * dbus/dbus-sysdeps.c, dbus/dbus-threads.c, dbus/dbus-internals.h:
199         Add two more global locks for use on windows platforms.  These are
200         unused on non-windows platforms but are not ifdefed out to avoid
201         potential bugs (i.e. the few bytes lost does not warrent the extra
202         maintanence and complexity that having seperate sets of locks would
203         cause)
204
205 2006-08-18  John (J5) Palmieri  <johnp@redhat.com>
206
207         * bus/services.c (bus_registry_acquire_service): Return an error
208         when an application tries to register the org.freedesktop.DBus Bus Name
209
210         * bus/services.c (bus_registry_release_service): Return an error
211         when an application tries to release the org.freedesktop.DBus Bus Name
212
213 2006-08-17  Alp Toker  <alp@atoker.com>
214
215         * doc/dbus-specification.xml: Fix some minor typos.
216
217 2006-08-17  John (J5) Palmieri  <johnp@redhat.com>
218
219         * configure.in: use $with_init_scripts instead of $operating_system
220         to determine where to store the pid since the init scripts manipulate 
221         the pid file (patch from Marcelo Ricardo Leitner 
222         <marcelo dot leitner at terra dot com dot br>.  
223
224 2006-08-16  John (J5) Palmieri  <johnp@redhat.com>
225
226         * dbus/dbus-threads.c: Add static DBusList *uninitialized_mutex_list and
227         static DBusList *uninitialized_condvar_list to support new late 
228         initialization threading model.  In this model threads can be initialized
229         even after the D-Bus API has been used but still needs to be initialized 
230         before the second thread has been started.  Mutexes and condvar addresses
231         are stored in the two static lists and are replaced with actuall locks
232         when threads are initalized.
233         (_dbus_mutex_new_at_location): New method for creating a mutex and placing
234         the location into the static list
235         (_dbus_mutex_free_at_location): New method for removing a mutex location 
236         from the static list and freeing the mutex
237         (_dbus_condvar_new_at_location): New method for creating a conditional 
238         variable and placing the location into the static list
239         (_dbus_condvar_free_at_location): New method for removing a conditional
240         variable location from the static list and freeing the conditional variable 
241         (init_uninitialized_locks): Atomic method which goes through the static 
242         lists of mutex and condvar location and updates them with actuall locks
243         (init_global_locks): changed to init_locks
244         
245         * dbus/dbus-connection.c:
246         (_dbus_connection_test_get_locks): New method for tests to check connections
247         (_dbus_connection_new_for_transport): Use the new at_location mutex and
248         condvar API
249         (dbus_connection_allocate_data_slot): Pass in the global lock address
250         to _dbus_data_slot_allocator_alloc
251
252         * dbus/dbus-dataslot.c:
253         (_dbus_data_slot_allocator_alloc): Use the address of the mutex
254         instead of the mutex itself
255
256         * dbus/dbus-message.c:
257         (dbus_message_allocate_data_slot): Pass in the global lock address
258         to _dbus_data_slot_allocator_alloc
259
260         * dbus/dbus-pending-call.c:
261         (dbus_pending_call_allocate_data_slot): Pass in the global lock address
262         to _dbus_data_slot_allocator_alloc
263
264         * dbus/dbus-server.c:
265         (_dbus_server_init_base): Use the new at_location mutex API
266         (dbus_server_allocate_data_slot): Pass in the global lock address
267         to _dbus_data_slot_allocator_alloc
268
269         * test/name-test/test-threads-init.c: New test case for late thread
270         initialization
271
272 2006-08-14  John (J5) Palmieri  <johnp@redhat.com>
273
274         * dbus/dbus-dataslot.c (_dbus_data_slot_allocator_alloc):
275         Change _dbus_abort to _dbus_assert_not_reached because _dbus_abort
276         causes compile problems when asserts are turned off
277         Keeping _dbus_warn for printing out the message so even if
278         asserts are turned off the user gets the messages that something is 
279         wrong 
280
281 2006-08-14  John (J5) Palmieri  <johnp@redhat.com>
282
283         Patches by Kjartan Maraas <kmaraas at gnome dot org>
284
285         * bus/services.c (bus_service_list_queued_owners):
286         Add a pointer cast to fix compiler warning
287
288         * dbus/dbus-dataslot.c (_dbus_data_slot_list_get):
289         return a NULL instead of FALSE since the return type
290         is not expecting a boolean
291
292         * dbus/dbus-marshal-basic.c (_dbus_marshal_test):
293         Remove unused variable
294
295         * dbus/dbus-marshal-recursive-util.c (node_new):
296         return a NULL instead of FALSE since the return type
297         is not expecting a boolean
298
299         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
300         Send a NULL into _dbus_transport_new_for_fd instead of a FALSE
301         because we are expecting a pointer not a boolean
302
303         * dbus/dbus-sysdeps-util.c (_dbus_get_tmpdir): 
304         add void as the parameter so some compilers
305         don't complain
306
307         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_domain_socket,
308           _dbus_transport_new_for_tcp_socket):
309         Send a NULL into _dbus_transport_new_for_fd instead of a FALSE
310         because we are expecting a pointer not a boolean
311
312         * test/shell-test.c (test_command_line):
313         cast the second argument to _dbus_list_append to avoid compiler
314         warnings
315
316         * test/test-names.c (main): remove unused variable
317
318         * test/test-service.c (check_hello_from_self_reply):
319         Initialize echo_message and echo_reply to NULL
320         
321         * test/test-shell-service.c (handle_echo):
322         Remove unused variable and cast the third parameter passed to
323         dbus_connection_get_object_path_data to avoid compiler warrnings
324
325         * test/name-test/test-names.c (clear_message_queue):
326         Remove unused function
327
328         * test/name-test/test-pending-call-dispatch.c:
329         Fix format string in printf
330
331
332 2006-08-14  John (J5) Palmieri  <johnp@redhat.com>
333
334         * dbus/dbus-bus.c:
335         * test/name-test/test-names.c:
336         Remove test method dbus_bus_connection_get_unique_name because 
337         we already have public method dbus_bus_get_unique_name that 
338         does the exact same thing
339
340 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
341
342         * dbus/dbus-signature.c:
343         fix typos in Julio's previous patch which cause make check to fail
344
345 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
346
347         * dbus/dbus-address.c (_dbus_address_test): Revert leaking strcmp.  
348         In any case it was wrong since this is a test checking to see if
349         address parsing is correct.  There was no need to get the true
350         tmp directory.  
351
352 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
353
354         * dbus/dbus-macros.h: Revert the addition of stddef.h
355         as we should not be adding it to library headers 
356
357 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
358
359         * dbus/dbus-signature.c:
360         Fix the unit tests so that they work if assertions are not enabled.
361         (patch from Julio M. Merino Vidal  <jmmv at NetBSD dot org>)
362
363 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
364
365         * tools/run-with-tmp-session-bus.sh:
366         * test/name-test/run-test.sh:
367         Remove bashisms (patch from Julio M. Merino Vidal
368         <jmmv at NetBSD dot org>)
369
370 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
371
372         * configure.in: add a version (>= 2.6.0) check for libxml2
373
374 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
375
376         * configure.in: make sure the compiler supports -Wfloat-equal
377         
378         * bus/dir-watch-dnotify.c: move functional code after 
379         variable declerations (C99 fix)  (patches from Jens Granseuer
380         <jensgr at gmx dot net>
381
382 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
383
384         * dbus/dbus-macros.h:
385         add #include <stddef.h> so that Sun compilers don't complain about
386         the defining NULL
387
388 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
389
390         * dbus/dbus-sysdeps.c:
391         * dbus/dbus-address.c:
392         * bus/activation.c:
393         * test/shell-test.c:
394         don't hardcode tmp directory (patch from Dave Meikle 
395         <dmk at davemeikle dot co dot uk>)
396
397 2006-08-09  John (J5) Palmieri  <johnp@redhat.com>
398
399         * dbus/dbus-dataslot.c (_dbus_data_slot_allocator_alloc):
400         Change an assert to a detailed warning and abort.  
401         When allocator->lock != mutex it indicates that the user has failed
402         to initalize threads before using the D-Bus library.  This warning
403         helps the user identify the issue and fix their app.
404
405 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
406
407         These are all patches from Kjartan Maraas <kmaraas at gnome dot org>
408         with cleanups of bugs found from Coverity reports:
409
410         * dbus/dbus-sysdeps-util.c (_dbus_write_pid_file):
411         close the file on error to avoid a leak
412
413         * bus/expirelist.c (bus_expire_list_test):
414         Check for NULL on dbus_new0
415
416         * bus/activation.c (update_directory):
417         remove dead code
418
419         * bus/config-parser.c (merge_service_context_hash, start_selinux_child):
420         Fix some leaks
421
422         * bus/bus.c (process_config_every_time):
423         Fixed a leak
424
425         * bus/desktop-file.c (parse_key_value):
426         Fixed leak
427
428         * bus/selinux.c (bus_selinux_id_table_insert):
429         Fixed leak
430
431 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
432
433         * dbus/dbus-object-tree.c (_dbus_object_subtree_new):
434         remove dead code
435
436 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
437
438         * tools/run-with-tmp-session-bus.sh: use #!/bin/sh instead of
439         #!/bin/bash
440
441 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
442
443         * Doxyfile.in: fix the INPUT line so we can generate docs 
444         when sourcedir != builddir (patch from Cygwin Ports maintainer
445         <yselkowitz at users dot sourceforge dot net>
446
447 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
448
449         * dbus/dbus-sysdeps.h:
450         * dbus/dbus-sysdeps.c: 
451         * dbus/dbus-string.c: 
452         s/_dbus_printf_length/_dbus_printf_string_upper_bound to comform with
453         GLib's function which does the same thing
454
455         * configure.in:
456         * bus/Makefile.am:
457         * bus/dir-watch-default.c:
458         * bus/dir-watch-dnotify.c:
459         * bus/dir-watch-kqueue.c:
460         Add kqueue directory watching for freebsd and split the directory
461         watching code into seperate files per method/arch
462         (patches from Timothy Redaelli <drizzt at gufi dotorg>)
463
464 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
465
466         * configure.in:
467         * tools/Makefile.am:
468         * tools/dbus-launch.c:
469         * bus/Makefile.am:
470         allow --with-dbus-daemondir switch to be used to make the
471         daemon install to a seperate bindir like /usr/libexec
472         (patch from Brian Cameron <brian dot cameron at sun dot com)
473
474 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
475
476         * bus/Makefile.am (install-data-hook): removed the slash after 
477         $(DESTDIR) so we don't get the double slash which does not work
478         in windows (patch from Andras Porjesz 
479         <andras dot porjesz at siemens dot com>)
480
481 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
482
483         * dbus/dbus-sysdeps.h:
484         * dbus/dbus-sysdeps.c: 
485           add _dbus_printf_length (patch from Peter Kümmel 
486           <syntheticpp at gmx dot net>)
487
488 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
489
490         * dbus/dbus-internals.c: unistd.h is not used 
491         (_dbus_verbose_real): only enable verbose printing 
492         if DBUS_VERBOSE environment var is set to '1'
493         (patch from Peter Kümmel <syntheticpp at gmx dot net>)
494
495 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
496
497         * configure.in: add a GCC flag check for -Wdeclaration-after-statement
498         so we still compile on older gcc (patch from Frederic Peters 
499         <fpeters at 0d dot be>
500
501 2006-08-04  Havoc Pennington  <hp@redhat.com>
502
503         * configure.in: add -Wdeclaration-after-statement
504
505         * dbus/dbus-connection.c: change all the pending call stuff to
506         reflect the fact that pending call operations use the connection
507         lock
508
509         * dbus/dbus-pending-call.c: add locking here
510
511         * dbus/dbus-errors.c (struct DBusRealError): don't make the name
512         field const consistent with how message field is done
513
514 2006-08-03  John (J5) Palmieri  <johnp@redhat.com>
515
516         * s/D-BUS/D-Bus/g
517
518 2006-08-03  John (J5) Palmieri  <johnp@redhat.com>
519
520         * dbus/dbus-object-tree.c: Patch by Benjamin Otte 
521         <in7y118 at public.uni-hamburg dot de> - fix invalid
522         read/write reported by valgrind
523
524 2006-07-24  John (J5) Palmieri  <johnp@redhat.com>
525
526         * Released 0.91
527
528 2006-07-22  John (J5) Palmieri  <johnp@redhat.com>
529
530         * dbus/dbus-connection.c:
531         (_dbus_connection_attach_pending_call_unlocked):
532         (connection_timeout_and_complete_all_pending_calls_unlocked):
533         Make sure we set timeout_added on pending calls to FALSE when
534         we remove the timeout from the connection
535
536 2006-07-21  John (J5) Palmieri  <johnp@redhat.com>
537
538         * Removed some extra bindings stuff lingering around (thanks timo)
539         * dbus-pendingcall.c (_dbus_pending_call_new): 
540         s/dbus_connection_ref/_dbus_connection_ref_unlocked fixes assertion
541         when we tried to take a lock on an already locked connection
542
543 2006-07-17  John (J5) Palmieri  <johnp@redhat.com>
544
545         * Released 0.90
546
547 2006-07-17  Havoc Pennington  <hp@redhat.com>
548
549         * dbus/dbus-marshal-basic.c (_dbus_type_to_string): support 64-bit
550         ints, reported by Owen Taylor
551
552 2006-07-17  John (J5) Palmieri  <johnp@redhat.com>
553
554         * doc/TODO:
555         * dbus/dbus-bus.c:
556         * dbus-errors.c:
557         * dbus/dbus-marshal-validate.c:
558           Removed TODO items which were fixed or are no longer relevent
559
560 2006-07-17  John (J5) Palmieri  <johnp@redhat.com>
561
562         * dbus-qt4-1.pc.in, dbus-sharp.pc.in:
563         Remove stray files from the stripped bindings
564
565 2006-07-16  Havoc Pennington  <hp@redhat.com>
566
567         * dbus/dbus-pending-call.c (_dbus_pending_call_set_timeout_error):
568         Improve the error message on reply timeout
569
570 2006-07-14  John (J5) Palmieri  <johnp@redhat.com>
571
572         * Remove all bindings
573
574 2006-07-13  John (J5) Palmieri  <johnp@redhat.com>
575
576         * dbus-connection.c (dbus_connection_send_with_reply): return TRUE
577         and set pending_reply out arg to NULL is connection is disconnected
578         (connection_timeout_and_complete_all_pending_calls_unlocked): New
579         static method for cleaning up pending calls on disconnect
580         (_dbus_connection_get_dispatch_status_unlocked): If we have pending 
581         calls queued timeouts on disconnect 
582
583          * dbus/dbus-pending-call.c (_dbus_pending_call_set_connection):
584         Remove 
585
586 2006-07-13  Carlos Garcia Campos  <carlosgc@gnome.org>
587
588         * bus/activation.[ch] (bus_activation_list_services): new function to 
589         get the list of services that can be activated
590
591         * bus/dispatch.c: test coverage for the new bus method
592         ListActivatableNames
593
594         * bus/driver.c: new bus method ListActivatableNames to get the list of
595         services that can be activated
596
597         * doc/dbus-specification.xml: ListActivatableNames method documentation
598
599 2006-07-12  John (J5) Palmieri  <johnp@redhat.com>
600         * dbus/Makefile.am: add dbus-pending-call-internal.h to the list of
601         source files
602
603 2006-07-12  John (J5) Palmieri  <johnp@redhat.com>
604         * dbus/dbus-message-factory.c:
605         Fix index into an array (patch by Peter Kümmel <syntheticpp at gmx.net>)
606
607 2006-07-12  John (J5) Palmieri  <johnp@redhat.com>
608         * dbus/dbus-connection-internal.h:
609         * dbus/dbus-connection.c:
610         * file dbus/dbus-pending-call.c:
611         * dbus/dbus-pending-call.h:
612         Make DBusPendingCall an opaque type even to D-Bus internals
613
614 2006-07-07  John (J5) Palmieri  <johnp@redhat.com>
615
616         * dbus/dbus-connection.h: remove connection_disconnect and replace with
617         connection_close
618
619         * dbus/dbus-connection.c: include dbus-bus.h
620         (_dbus_connection_read_write_dispatch): make static
621
622 2006-07-07  John (J5) Palmieri  <johnp@redhat.com>
623
624         * dbus/dbus-connection.c (dbus_connection_close): removed deprecated
625         function
626         (dbus_connection_dispatch): On disconnect unref any shared connections
627
628         * dbus/dbus-bus.c (_dbus_bus_check_connection_and_unref): new function
629         for cleaning up shared connections on disconnect
630         (internal_bus_get): get a hard refrence to shared connections when
631         they are created
632         
633         * doc/TODO: Remove items which are no longer relevent or have been fixed
634         Split 1.0 todo items with a 0.90 freeze todo list
635  
636 2006-06-14  Ross Burton  <ross@openedhand.com>
637
638         * glib/dbus-gobject.c:
639         Free a leaking GArray (surely not!) in dbus_g_method_return.
640
641 2006-06-14  Ross Burton  <ross@openedhand.com>
642
643         * tools/Makefile.am:
644         * tools/dbus-monitor.c:
645         Don't use the GLib bindings in dbus-monitor (patch from Ralf
646         Habacker).
647         
648 2006-06-14  Ross Burton  <ross@openedhand.com>
649
650         * tools/dbus-print-message.c:
651         Also print the object path when outputting signals or method calls.
652
653 2006-06-13  Thiago Macieira <thiago.macieira@trolltech.com>
654
655         * qt/src/Makefile.am: install the qdbus.h header.
656         This allows people to actually use the installed code.
657
658 2006-06-12  Ross Burton  <ross@openedhand.com>
659
660         * glib/dbus-gproxy.c:
661         Don't leak a GArray when firing signals (thank Rob Taylor for review).
662
663 2006-06-12  Thiago Macieira <thiago.macieira@trolltech.com>
664
665         * Released 0.62
666
667 2006-06-12  Thiago Macieira <thiago.macieira@trolltech.com>
668
669         * dbus/dbus-arch-deps.h.in: Remove spurious semi-colons that
670         break pedantic builds. Closes bug 6043 (patch approved by
671         Havoc back in February).
672
673 2006-06-12  Thiago Macieira <thiago.macieira@trolltech.com>
674
675         * qt/src/qdbusintegrator.cpp: Fix bug in parsing async methods
676         that took a QDBusMessage parameter.
677         * qt/src/qdbusbus.h: Add a default flag for RequestName.
678         * qt/tools/dbus.cpp: Don't use automatic call because we might
679         be calling an async method: request a reply.
680
681 2006-06-11  Thiago Macieira <thiago.macieira@trolltech.com>
682
683         * test/qt/*: Update the testcases, including testing the new
684         functionality of sending null QByteArray and QString over the
685         bus. Add new headertest test and restore the old
686         qdbusxmlparser test.
687
688 2006-06-11  Thiago Macieira <thiago.macieira@trolltech.com>
689
690         * qt/tools/dbuscpp2xml.cpp: Compile on Windows.
691         * qt/tools/dbusidl2cpp.cpp: Add missing newline.
692
693         * qt/examples/Makefile.am:
694         * qt/examples/chat.h: Use UI-generated files with the ui_*.h
695         form.
696
697         * qt/src/qdbusmarshall.cpp: Allow sending of QString() and
698         QByteArray() (nulls) over the bus.
699         * qt/src/qdbusabstractinterface.cpp: Use the correct variable,
700         the one that has the signature suffix stripped.
701         * qt/src/qdbusreply.h: Make some methods const.
702
703 2006-06-09  Thiago Macieira <thiago.macieira@trolltech.com>
704
705         Patch from Timo Hoenig <thoenig@suse.de>.
706
707         * qt/dbus/Makefile.am: New file.  Fix "make dist", add all headers
708         required during build to EXTRA_DIST.
709         * qt/src/Makefile.am: Fix "make dist", add 'qdbus.h' to EXTRA_DIST.
710         * qt/Makefile.am: Fix "make dist", add 'dbus' to DIST_SUBDIRS.
711         * configure.in: Fix "make dist", take care that the Makefile for
712         qt/dbus is being generated.
713
714 2006-06-07  John (J5) Palmieri  <johnp@redhat.com>
715
716         * bus/bus.c: Fix eavesdropping on method calls
717
718 2006-06-07  John (J5) Palmieri  <johnp@redhat.com>
719
720         * configure.in:
721         * dbus/dbus-userdb-util.c:
722         Add Solaris console owner patch from Artem Kachitchkine
723
724 2006-06-07  Thiago Macieira <thiago.macieira@trolltech.com>
725
726         * qt/Makfile.am:
727         * qt/src/Makefile.am: Fix the EXTRA_DIST after the
728         reorganisation. Thanks to Timo Hoenig for pointing this out.
729
730 2006-06-06  Robert McQueen  <robot101@debian.org>
731
732         * glib/dbus-gtype-specialized.c: Fix obvious leak of GArray in every
733           call to dbus_g_type_get_struct.
734
735 2006-06-06  Robert McQueen  <robot101@debian.org>
736
737         * glib/dbus-gvalue-utils.c: Fix the failing test where static string
738           pointers were put into a GPtrArray-based specialised collection, and
739           then freed along with the array. GValues which you add into
740           collections or maps which have the NOCOPY flag set are assumed to not
741           belong to the caller, so rather than the existing pointer-stealing
742           semantics, they are copied instead. Given that the main consumers of
743           this abstraction are the bindings themselves, I don't think this is
744           too bad, but others should watch their choice of take vs set_static.
745
746 2006-06-06  Robert McQueen  <robot101@debian.org>
747
748         * glib/dbus-gvalue-utils.c: Spotted a warning about the return value
749           of g_slist_prepend not being used. Fixed copying of slist-based
750           specialised collections, then wrote a test case and found that it was
751           all broken. Went on to fix iterating and appending too. Good thing
752           nobody uses this code yet.
753
754 2006-06-06  Robert McQueen  <robot101@debian.org>
755
756         * glib/dbus-gvalue-utils.c: Remove duplicated code by having all of
757           the iterators use gvalue_take_ptrarray_value (the GValues themselves
758           are discarded without unsetting, so it makes no difference whether
759           we take or set_static). Remove cases for G_TYPE_POINTER because
760           there really is nothing useful we can do with them in our
761           specialised types - we *need* boxed copy/free functions at the very
762           least.
763
764 2006-06-05  Thiago Macieira <thiago.macieira@trolltech.com>
765
766         * qt/dbus: Add directory. I had forgotten to add this
767         yesterday after the move...
768
769         * qt/examples/Makefile.am:
770         * qt/examples/dbus.cpp: Moved to qt/tools/dbus.cpp.
771
772         * qt/tools/Makefile.am:
773         * qt/tools/dbus.cpp: Moved from qt/examples/dbus.cpp.
774         Added feature to get and set properties.
775         Added validation of service, object path and interface names.
776
777         * qt/tools/dbusidl2cpp.cpp: Two new features:
778         1) Allow specifying both the header and the source file names,
779         by separating them with a colon.
780         2) Don't write an interface output if the -p switch wasn't
781         given, but the -a was.
782
783         * qt/src/*: Fix usage of Iterators and ConstIterators.
784         Fix shadowing of variables by other variables (-Wshadow).
785         Fix keyword-cleanliness in headers.
786         Fix ASCII-cast (QLatin1String, QLatin1Char).
787         Fix validation of member names.
788         Add extra checking of introspection data during XML parsing.
789         Various bug fixes.
790
791 2006-06-04  Thiago Macieira <thiago.macieira@trolltech.com>
792
793         * dbus/Makefile.am:
794         * dbus/qdbus.h: Remove unnecessary file. This is mirrored into
795         qt/dbus/qdbus.h now.
796
797 2006-06-04  Thiago Macieira <thiago.macieira@trolltech.com>
798
799         * configure.in: Make --disable-qt actually do
800           something. Patch inspired by Zack Rusin.
801
802 2006-06-04  Thiago Macieira <thiago.macieira@trolltech.com>
803
804         * qt/: Update to Subversion r548032.
805         This includes a big reorganisation of the files inside the
806         subdir.
807
808 2006-05-30  Sjoerd Simons  <sjoerd@luon.net>
809
810         * dbus/dbus-sysdeps.c: Make tcp socket connection error somewhat more
811         clear:  
812         "Failed to connect to socket <host>:<port> <error>" instead of
813         "Failed to connect to socket <host>: <error>:<port>"
814
815         * dbus/dbus-transport-unix.c: Fix crash when no host option is given
816         for a tcp transport. 
817
818 2006-05-29  Thiago Macieira  <thiago.macieira@trolltech.com>
819
820         * qt/*: Update the QtDBus bindings up to revision 546310 in
821         Subversion.
822         This adds the dbuscpp2xml tool, that parses a C++ header and
823         outputs a D-BUS Introspection XML.
824
825 2006-05-21  Havoc Pennington  <hp@redhat.com>
826
827         * glib/dbus-gproxy.c: Put in a pile of assertions that the proxy name
828         is not NULL when it shouldn't be. Also a couple of possible fixes
829         for #4637 though I don't understand why the bug happens, to be
830         honest... also the object constructor has an assert name != NULL
831         and the name is only currently NULL for peer-to-peer proxies that 
832         I don't think anyone uses? So it should be asserting.
833         Anyway, for now at least see if we get an earlier assertion failure.
834
835         * glib/dbus-gvalue-utils.c: Put in a couple of assertions for
836         apparently broken code to be sure the tests fail and someone 
837         will fix them...
838
839 2006-05-07  Thiago Macieira  <thiago.macieira@trolltech.com>
840
841         * qt/qdbusmarshall.cpp: Fix a problem of demarshalling lists
842         and arrays when they had a single element: has_next returns
843         false, even before you read the element. So, instead, check
844         the array length.
845
846 2006-05-06  Thiago Macieira  <thiago.macieira@trolltech.com>
847
848         * qt/qdbusmessage.cpp:
849         * qt/qdbustypehelper_p.h:
850         * qt/qdbusintegrator.cpp: gcc 3.4 doesn't like Q_FOREACH when
851         the list is a const-reference
852
853 2006-05-03  John (J5) Palmieri  <johnp@redhat.com>
854
855         * Adding old doc patch that never got applied
856         
857         * dbus/bus.c (dbus_bus_add_match): Add documentation
858
859         * doc/dbus-specification.xml: Add documentation for the match rules
860           and the AddMatch and RemoveMatch methods
861
862 2006-05-02  Thiago Macieira  <thiago.macieira@trolltech.com>
863
864         * qt/dbusidl2cpp.cpp: There's no callAsync. Use the correct
865         call (r535506)
866
867         * qt/dbusidl2cpp.cpp:
868         * qt/qdbusabstractadaptor.cpp:
869         * qt/qdbusabstractadaptor.h: Make QDBusAdaptorConnector be a
870         sibling of the QDBusAbstractAdaptor objects instead of the
871         parent. (r535848)
872
873         * qt/dbusidl2cpp.cpp:
874         * qt/qdbusabstractinterface.cpp:
875         * qt/qdbusabstractinterface.h:
876         * qt/qdbusabstractinterface_p.h:
877         * qt/qdbusinterface.cpp: Make properties in interfaces
878         actually work. The code that was generated would not compile,
879         due to moc calls to functions that did not exist. They now
880         shall. (r536571)
881
882 2006-04-30  Thiago Macieira  <thiago.macieira@trolltech.com>
883
884         * Makefile.am:
885         * configure.in:
886         * dbus-qt4-1.pc.in: Add a pkg-config file for libdbus-qt4-1.
887         Thanks to Brad Hards for providing the patch
888
889 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
890
891         * qt/dbusidl2cpp.cpp: There's no callAsync. Use the correct
892         call. (r535506)
893
894 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
895
896         * qt/examples/dbus.cpp: Enhance error messages and use
897         QDBusInterfacePtr.
898
899 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
900
901         * qt/qdbusinterface.h: Rename QDBusRef to QDBusInterfacePtr
902         and disable the copy operators. (r533772, r534746)
903
904         * qt/qdbuserror.h: Remove the automatic cast to bool. (r533929)
905
906         * qt/qdbusabstractinterface.cpp:
907         * qt/qdbusabstractinterface.h: Change the default call mode to
908         not use the event loop. Add convenience call() methods that
909         take a CallMode parameter. (r534042)
910
911         * qt/qdbusconnection.h: Change the default call mode to not
912         use the event loop. (r534042)
913
914         * qt/qdbusinterface.cpp:
915         * qt/qdbusinterface.h: Add a method to tell us if the
916         interface is valid (since we don't return a null pointer
917         anymore) (r534099)
918
919         * qt/qdbusinterface_p.h: Don't crash if metaObject is 0
920         (r534101)
921
922         * qt/qdbusinternalfilters.cpp: Decouple the introspection
923         function in two so taht we get the chance to introspect
924         without having a QDBusMessage (r534102)
925
926         * qt/qdbusbus.h:
927         * qt/qdbusconnection.cpp:
928         * qt/qdbusconnection_p.h:
929         * qt/qdbusintegrator.cpp: Keep a list of our own names to
930         avoid a round-trip to the server when attempting to introspect
931         one of our own objects. Also make sure the filter functions
932         match the empty interface as well. (r534108)
933         Don't keep the connection names. Instead, trust the unique
934         connection name (r534111)
935         Remove event loop usage (r534112)
936
937 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
938
939         * qt/qdbusintegrator.cpp: Fix assertion failure spotted by
940         Brad Hards.
941
942 2006-04-28  Robert McQueen  <robot101@debian.org>
943
944         * glib/dbus-gproxy.c: Fix properties so that they can be given in
945         any order, making it easier for people who inherit from this
946         object.
947
948 2006-04-28  Robert McQueen  <robot101@debian.org>
949
950         * glib/dbus-gvalue-utils.c: Patch from Jakub Stachowski to fix leaking
951         of memory from within pointer arrays and lists. Fixes bug #6300.
952
953 2006-04-28  Robert McQueen  <robot101@debian.org>
954
955         * glib/dbus-gvalue.c: Patch from Jakub Stachowski to fix a leak in
956         generating struct signatures. Fixes bug #6083.
957
958 2006-04-28  Robert McQueen  <robot101@debian.org>
959
960         * qt/Makefile.am: Tweak CLEANFILES from qdbusconnection.moc
961         to qdbusconnection_p.moc.
962
963 2006-04-24 John (J5) Palmieri <johnp@redhat.com>
964
965         * README, INSTALL: Doc fixes
966         Patch from Brad Hards <bradh at frogmouth.net>
967
968 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
969
970         * qt/examples/dbus.cpp: Use the new merged-interface mode for
971         the dynamic meta object. No need to guess which interface to
972         call.
973
974 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
975
976         * qt/qdbusconnection_p.h:
977         * qt/qdbusmetaobject.cpp:
978         * qt/qdbusmetaobject_p.h:
979         * qt/qdbusintegrator.cpp: Use the new merged-interface mode
980         for the dynamic meta object. No need to guess which
981         interface to call.
982         * qt/qdbusabstractinterface_p.h:
983         * qt/qdbusconnection.cpp:
984         * qt/qdbusintegrator.cpp:
985         * qt/qdbusinterface.cpp:
986         * qt/qdbusinterface.h: Make findInterface always return a non-null pointer.
987         Add a QDBusRef that looks and behaves like DCOPRef.
988
989 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
990
991         * dbus/dbus-connection.c: Interfaces are optional in method
992         calls, so don't give up if the interface parameter is NULL.
993         Patch reviewed by Havoc Pennington.
994
995 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
996
997         * qt/qdbusreply.h: Add default constructor and operator=
998           (r532625)
999         * qt/qdbustypehelper_p.h: Use a clean namespace: no foreach()
1000           in public headers (r532952)
1001         * qt/qdbusabstractinterface.cpp:
1002         * qt/qdbusabstractinterface_p.h: Add the AutoDetect mode and
1003           make it the default (r532951)
1004
1005 2006-04-19  John (J5) Palmieri  <johnp@redhat.com>
1006
1007         * dbus/dbus-connection.c: Fix asserts
1008         Patch from Tim Moloney <t.moloney at verizon.net>
1009
1010 2006-04-19  John (J5) Palmieri  <johnp@redhat.com>
1011
1012         * mono/Connection.cs, mono/Message.cs: Check Target type
1013         Patch from Aaron Bockover (abockover at novell.com)
1014
1015 2006-04-13  Thiago Macieira  <thiago.macieira@trolltech.com>
1016
1017         * INSTALL: fine-tune the requirements for the Qt4 binding.
1018
1019 2006-04-16  Daniel P. Berrange  <dan@berrange.com>
1020
1021         * tools/dbus-print-message.c: Added support for printing of all 
1022           remaining data types. Fixed logic for indentation of compound
1023           data types.
1024         
1025 2006-04-15  Daniel P. Berrange  <dan@berrange.com>
1026
1027         * INSTALL: fill out content of file providing DBus specific
1028           build installations, followed by generic Auto* INSTALL file
1029           content
1030         
1031 2006-04-13  Thiago Macieira  <thiago.macieira@trolltech.com>
1032
1033         * qt/qdbusintegrator.cpp: Work around g++ 3.3 bug.
1034           Patch by Stefan Eilers. (r529537)
1035
1036 2006-04-13  Thiago Macieira  <thiago.macieira@trolltech.com>
1037
1038         * qt/qdbusinternalfilters.cpp: Don't show the parent's
1039           contents (r528208)
1040
1041 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
1042
1043         * qt/Makefile.am: fix the dependency for
1044           qdbusconnection_p.moc. It's included in qdbusintegrator.cpp,
1045           not in qdbusconnection.cpp.
1046           Thanks to Jakub Stachowski <stachowski@hypair.net> for
1047           spotting this.
1048
1049 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
1050
1051         * qt/examples/listnames.cpp:
1052         * qt/examples/Makefile.am: Three ways to list the names on the
1053           bus.
1054
1055 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
1056
1057         * test/qt/tst_hal.cpp: Remove the waiting, since it's not
1058           needed anymore. Requires Qt 4.1.3 to work properly. (r528148)
1059
1060 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
1061
1062         Merge from Subversion:
1063         * qt/qt-dbus.qdocconf: Update Trolltech's webpage link to
1064           something that exists (r526315)
1065         * qt/qdbusinternalfilters.cpp: Correctly detect non-scriptable
1066           slots/signals (r526316)
1067         * qt/qdbusinternalfilters.cpp: Fix the setProperty call and
1068           also return an unknown-method error if the parameters don't
1069           match for org.freedesktop.DBus.Properties. (r526842)
1070         * qt/examples/dbus.cpp: Allow passing of QVariants (r526843)
1071         * qt/qdbusintegrator.cpp: Restore the proper order of
1072           delivery: don't make method returns be delivered on priority
1073           (r528150)
1074
1075 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
1076
1077         * configure.in qt/Makefile.am: add qt/examples
1078         * qt/examples: Add QtDBus example programs:
1079           - hello: Hello, World
1080           - ping: Simple method-calling program
1081           - pong: Simple object-exporting program (not using adaptors)
1082           - complexping: Interactive method-calling program 
1083                 (also gets and sets properties).
1084           - complexpong: Sample program exporting methods, signals and
1085                 properties, using adaptors.
1086           - dbus: Simple implementation of a generic method-calling
1087                 program, similar to 'dbus-send', but with semantics
1088                 similar to 'dcop'.
1089           - chat: Simplistic chat program, implemented using signals
1090                 and the system bus. Looks like IRC.
1091
1092 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
1093
1094         * configure.in: Detect QtGui (necessary for one of the
1095           example programs). Note: this increases the minimum required
1096           version of Qt to 4.1.3.
1097
1098 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
1099
1100         * test/qt/*: Sync with KDE Subversion revision 523647.
1101         Update the testcases to the new API. Remove testcases for
1102         classes that are no longer public or have been removed.
1103
1104 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
1105
1106         * qt/*: 
1107         * dbus/qdbus.h: Sync with KDE Subversion revision
1108         523647. Hopefully, this will be the last of the
1109         source-incompatible changes. Documentation has been improved;
1110         support for QList<basic-types> has been added; QDBusObject is
1111         gone; QDBus(Abstract)Interface is now a QObject with
1112         auto-generated meta-object; QDBusIntrospection is marked
1113         private, since QMetaObject can be used now; lots of bugfixes.
1114
1115 2006-03-16  John (J5) Palmieri  <johnp@redhat.com>
1116
1117         Patch from Milosz Derezynski <internalerror at gmail.com>
1118         
1119         * configure.in:
1120         Output the service directory in the configure summary
1121
1122         * dbus-1.pc.in:
1123         Add session_bus_services_dir
1124
1125 2006-03-10  Ross Burton  <ross@openedhand.com>
1126
1127         * tools/dbus-print-message.c:
1128         Add support for object paths and signatures.
1129
1130 2006-03-06  Sjoerd Simons <sjoerd@luon.net>
1131
1132         * bus/bus.c: (bus_context_reload_config): Flush the user database cache on
1133         config reload.
1134         * bus/dbus-daemon.1.in: Also note that SIGHUP flushes the user/group
1135         information caches
1136         * dbus/dbus-hash.c: (_dbus_hash_table_remove_all): 
1137         * dbus/dbus-hash.h: Add function to remove all entries from a hash table
1138         * dbus/dbus-userdb.c: (_dbus_user_database_flush):
1139         * dbus/dbus-userdb.h: Add function to flush all user/group information
1140         caches.
1141
1142 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
1143
1144         * qt/dbusidl2cpp.cpp:
1145         * qt/Makefile.am: add the dbusidl2cpp tool, the replacement
1146         for dcopidl2cpp, found in the KDE installations (or the more
1147         modern kalyptus): generate Qt4 C++ code for the input XML
1148         introspection. Currently no IDL parsing.
1149
1150 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
1151
1152         * test/qt/*: Update the self-tests.
1153
1154 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
1155
1156         * qt/*: 
1157         * dbus/qdbus.h: Sync with KDE Subversion revision 516237. This
1158         represents the first feature-complete version of the Qt4
1159         bindings since I took ove maintainership.
1160
1161 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
1162
1163         * qt/Doxyfile: Adding a Doxyfile for the Qt4 bindings
1164         dir. This is C++, so we can't use the DBus ones.
1165
1166 2006-03-02  John (J5) Palmieri  <johnp@redhat.com>
1167
1168         * python/dbus_bindings.pyx: Remove refrence to sys/cdefs.h
1169         (Patch from Artem Kachitchkine <Artem.Kachitchkin at Sun.COM>)
1170
1171 2006-03-02  John (J5) Palmieri  <johnp@redhat.com>
1172
1173         * dbus/dbus-connection.c: 
1174         (_dbus_connection_block_pending_call):
1175         Check to see if our data has already been read off the connection
1176         by another blocking pending call before we block in poll.
1177         (check_for_reply_and_update_dispatch_unlocked):
1178         Code taken from _dbus_connection_block_pending_call - checks for
1179         an already read reply and updates the dispatch if there is one.
1180
1181         * test/name-test/test-pending-call-dispatch.c:
1182         New test for making sure we don't get stuck polling a 
1183         dbus connection which has no data on the socket when
1184         blocking out of order on two or more pending calls.
1185
1186 2006-02-28  Thiago Macieira <thiago.macieira@trolltech.com>
1187
1188         * qt/Makefile.am: Patch by Sjoerd Simons. More .moc issues:
1189         make/automake don't detect that we're talking about the same
1190         .lo file if I specify the full path to the source files.
1191
1192 2006-02-26  Havoc Pennington  <hp@redhat.com>
1193
1194         * bus/dbus-daemon.1.in: improve the language in a couple spots I noticed
1195
1196         * dbus/dbus-bus.c (internal_bus_get): in the error message if the
1197         session bus variable is unset, suggest "man dbus-launch" and "man
1198         dbus-daemon" to figure out how to fix the problem
1199
1200 2006-02-25  Havoc Pennington  <hp@redhat.com>
1201
1202         * glib/dbus-glib-tool.c (usage): fix up the usage message, someone
1203         should make this thing use the new glib options parser
1204
1205 2006-02-25  Thiago Macieira <thiago.macieira@trolltech.com>
1206
1207         * qt/Makefile.am: Patch by Sjoerd Simons. Fix the path to the
1208         .lo files taking moc sources.
1209
1210 2006-02-25  Havoc Pennington  <hp@redhat.com>
1211
1212         * dbus/dbus.h, dbus/Makefile.am: add dbus-signature.h to dbus.h
1213         and install it as a public header
1214
1215 2006-02-24  John (J5) Palmieri  <johnp@redhat.com>
1216
1217         * Released 0.61
1218
1219 2006-02-24  John (J5) Palmieri  <johnp@redhat.com>
1220         
1221         * proxies.py: Fix the callchain
1222
1223 2006-02-24  John (J5) Palmieri <johnp@redhat.com>
1224         
1225         * patch from Sjoerd Simons <sjoerd at debian.org>:      
1226
1227         * dbus/dbus-sysdeps-util.c (_dbus_group_info_free): Moved to 
1228         dbus/dbus-sysdeps.c
1229
1230         * dbus/dbus-userdb.c (_dbus_group_info_free_allocated): Don't
1231         call _dbus_group_info_free_allocated which causes infinite loop,
1232         correctly call _dbus_group_info_free
1233
1234 2006-02-20  Thiago Macieira <thiago.macieira@trolltech.com>
1235
1236         * qt/qdbusinterface_p.h:
1237         * qt/qdbusinterface.cpp: Use the standard
1238         org.freedesktop.DBus.Method.NoReply annotation for the "async"
1239         calls instead of creating one for us.
1240
1241         * qt/qdbusconnection_p.h:
1242         * qt/qdbusintegrator.cpp: Remove debugging code.
1243
1244         * qt/qdbusintegrator.cpp:
1245         * qt/qdbusmessage.cpp:
1246         * qt/qdbusmessage_p.h:
1247         * qt/qdbusmessage.h: Change the behaviour of automatic
1248         reply-sending: now a reply is always sent, unless the caller
1249         didn't request one or if the user slot has already sent one.
1250
1251 2006-02-16  Robert McQueen  <robot101@debian.org>
1252
1253         * configure.in: Patch from Debian packages by Sjoerd Simons
1254         <sjoerd@debian.org> to add --with-qt-moc and --with-qt3-moc
1255         arguments so it's possible to build both bindings in the
1256         same tree.
1257
1258         * qt/Makefile.am: Fix truncated value so that make dist works.
1259
1260 2006-02-16  Robert McQueen  <robot101@debian.org>
1261
1262         * acinclude.m4, configure.in: Patch from Brad Hards
1263         <bradh@frogmouth.net> to avoid warnings from autoconf 1.9 by
1264         improving quoting, re-ordering a few checks, and a few other
1265         aesthetic tidy-ups.
1266
1267 2006-02-16  Robert McQueen  <robot101@debian.org>
1268
1269         * dbus/dbus-message.c (dbus_message_iter_get_fixed_array):
1270         Patch from Rob Taylor <rob.taylor@collabora.co.uk> to correct a bogus
1271         assertion that the next element to read from the iter is fixed in
1272         size. This is not the case when you are at the end of the iter,
1273         because the next element type is INVALID.
1274
1275         * dbus/dbus-string.c (_dbus_string_init_const_len): Correct a
1276         a bogus assert which means that you may not initialise a 0-length
1277         string unless you provide a non-NULL pointer. This prevented
1278         you from marshalling messages containing zero-length arrays in
1279         some cases.
1280
1281         * glib/dbus-gvalue.c (demarshal_collection_array): Another patch
1282         from Rob to correct bogus asserts when trying to demarshal an
1283         array and get_fixed_array got you 0 elements. Append nothing to
1284         the GArray in this case.
1285
1286         * test/glib/test-dbus-glib.c: Add a test case for round-tripping
1287         an empty array via the glib bindings. Without all of the above
1288         patches, this new test fails.
1289
1290 2006-02-16  Robert McQueen  <robot101@debian.org>
1291
1292         * glib/dbus-gmain.c: Make the previous commit compile.
1293
1294         * python/_dbus.py, python/matchrules.py: Patch from Ole Andre
1295         Ravnaas <ole.andre.ravnaas@collabora.co.uk> to allow you to
1296         specify sender_keyword="foo", path_keyword="bar" when adding
1297         a signal listener, so that you can bind to signals generically
1298         but still do something useful in your callback.
1299
1300         * python/dbus_bindings.pyx: Demarshal the byte type as unsigned
1301         chars so that they're not cast to chars and made negative. Thanks
1302         to Jakub Stachowski for reporting this and testing the fix.
1303
1304 2006-02-15  John (J5) Palmieri  <johnp@redhat.com>
1305
1306         * dbus/dbus-glib.h:
1307         * glib/dbus-gmain.h:
1308         (dbus_g_connection_open): new method for openning
1309         a connection to an arbitrary address in the glib bindings
1310
1311         * ChangeLog: checkin last entry which doesn't seem to be commited
1312
1313 2006-02-13  John (J5) Palmieri  <johnp@redhat.com>
1314
1315         * tools/dbus-launch.c: Fixed sh syntax output
1316
1317 2006-02-13  Robert McQueen  <robot101@debian.org>
1318
1319         * glib/dbus-binding-tool-glib.c, glib/dbus-gmain.c,
1320         glib/dbus-gsignature.c, glib/dbus-gtype-specialized.c,
1321         glib/dbus-gtype-specialized.h, glib/dbus-gvalue-utils.c,
1322         glib/dbus-gvalue-utils.h, glib/dbus-gvalue.c:
1323         Patch from Rob Taylor <rob.taylor@collabora.co.uk> to add a big
1324         missing piece of the glib bindings jigsaw puzzle. This modifies
1325         the existing specialised types to have N type parameters (rather
1326         than the current 1 or 2 for arrays and dictionaries respectively).
1327         You can then use this to get a glib type to represent any arbitrary
1328         D-Bus struct type using dbus_g_type_get_struct. The only
1329         implementation of these types is with GValueArrays as before,
1330         but it's now possible to store these in arrays, emit them in
1331         signals, etc.
1332
1333 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
1334
1335         * dbus/dbus-signature.c (dbus_signature_iter_recurse): Correctly
1336         deal with nested arrays (Bug #5823) Patch by Thiago Macieira 
1337         <thiago.macieira at trolltech.com>
1338
1339 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
1340
1341         * mono/doc/Makefile.am: Fix parallel make problem with mono-doc
1342         (Bug #4213) Patch from Doug Goldstein <cardoe at gentoo.org>
1343
1344 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
1345
1346         * bus/connection.c (bus_connections_expect_reply): Make
1347         pending reply limit not common to all connections (Bug #5416)
1348         Patch from Kimmo Hämäläinen <kimmo.hamalainen at nokia.com>
1349
1350 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
1351
1352         * tools/dbus-launch.c: Fixed csh syntax output (Bug #5720)
1353
1354 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
1355
1356         * gcj/Makefile.am: point to correct jar command (Bug #4529)
1357         patch from Doug Goldstein <cardoe at gentoo.org>
1358
1359 2006-02-09  Joe Shaw  <joeshaw@novell.com>
1360
1361         * mono/Arguments.cs: Fix a magic number in the mono bindings
1362         that doesn't work on 64 bit arches.  Patch from Peter Johanson.
1363
1364 2006-01-27  Robert McQueen  <robot101@debian.org>
1365
1366         * glib/dbus-binding-tool-glib.[ch]: Patch based on Ricardo Kekki's
1367         patch to use an annotation org.freedesktop.DBus.GLib.ClientCSymbol
1368         when generating the client-side methods, instead of overloading
1369         CSymbol which broke everything horribly. My apologies.
1370
1371 2006-01-27  Robert McQueen  <robot101@debian.org>
1372
1373         * glib/dbus-gtype-specialized.[ch], glib/dbus-gvalue-utils.c: Patch
1374         by me and Rob Taylor to add a simple_free function to D-Bus map
1375         and collection types, which allows those types which can be freed
1376         with a GDestroyNotify (such as GHashTables and GArrays, but not
1377         GPtrArrays) to be stored as the values in hashtables.
1378
1379         * test/glib/test-dbus-glib.c, test/glib/test-service-glib.{c,xml}:
1380         Patch by Rob Taylor to add nested dicts to the glib tests to check
1381         the above code works, and appears not to leak when called repeatedly.
1382
1383 2006-01-27  Robert McQueen  <robot101@debian.org>
1384
1385         * glib/dbus-gvalue.c (demarshal_valuearray): Patch from Rob Taylor
1386         to free a D-Bus allocated string with dbus_free () instead of
1387         g_free ().
1388
1389 2006-01-27  Iain Holmes  <iain@openedhand.com>
1390
1391         * glib/dbus-gproxy.c (dbus_g_proxy_dispose): Protect the dispose
1392         method from being called multiple times.
1393
1394 2006-01-19  Robert McQueen  <robot101@debian.org>
1395
1396         * glib/dbus-binding-tool-glib.c: Patch from Rob Taylor
1397         <rob.taylor@collabora.co.uk> to add support for generating bindings
1398         to arrays that are represented as GPtrArrays rather than GArrays (ie
1399         size-variable things, such as strings, objects, structs, etc).
1400
1401 2006-01-05  Robert McQueen  <robot101@debian.org>
1402
1403         * dbus/dbus-glib.h, glib/dbus-gproxy.c: Patch from Ricardo Kekki
1404         <ricardo.kekki@movial.fi> to make it possible to inherit from
1405         DBusGProxy, by splitting the DBusGProxy struct into a public part and
1406         a private part, and moving the setting of the DBusGProxyManager into a
1407         connection property, allowing proper GObject construction.
1408
1409 2006-01-05  Robert McQueen  <robot101@debian.org>
1410
1411         * glib/dbus-binding-tool-glib.c: Patch from Ricardo Kekki
1412         <ricardo.kekki@movial.fi> to make dbus-binding-tool heed C symbol name
1413         annotations when generating glib client bindings.
1414
1415 2005-12-19 John (J5) Palmieri  <johnp@redhat.com>
1416
1417         * dbus/dbus-shared.h: Call it shared constants instead of shared macros
1418
1419         * dbus/dbus-protocol.h: add DOxygen markup to quiet warnings
1420
1421 2005-12-19 John (J5) Palmieri  <johnp@redhat.com>
1422
1423         * dbus/dbus-shared.h: add DOxygen markup to quiet warnings
1424
1425 2005-12-19 John (J5) Palmieri  <johnp@redhat.com> 
1426
1427         * dbus/dbus-macros.h: correct DOxygen end of section (s/}@/@})
1428
1429 2005-12-19  Ross Burton  <ross@openedhand.com>
1430
1431         * doc/dbus-tutorial.xml:
1432         Document the Glib client-side bindings, and list all possible annotations.
1433
1434 2005-12-19  John (J5) Palmieri  <johnp@redhat.com>
1435
1436         * dbus/bus.c (dbus_bus_release_name): Add documentation
1437
1438 2005-12-06  Robert McQueen  <robot101@debian.org>
1439
1440         * python/service.py: s/sucessful/successful/ so we're allocating to
1441         and reading from the same variable. Oops.
1442
1443 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
1444
1445         * Released 0.60
1446
1447 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
1448
1449         * test/qt/Makefile.am: build from srcdir
1450
1451         * qt/qtconnection.cpp (requestName): Changed PROHIBIT_REPLACE to ALLOW_REPLACE
1452         Note - this code is wrong and needs to be fixed by the Qt binding
1453         developers.  The flags should be treated as bitfields and not enums.
1454
1455         * qt/qtconnection.h: Change ProhibitReplace to AllowReplace
1456
1457 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
1458
1459         * dbus/dbus-list.c (_dbus_list_insert_after_link, _dbus_list_insert_after, 
1460           link_after): remove #ifdef DBUS_BUILD_TESTS since we use these methods 
1461           in production code
1462
1463 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
1464
1465         * dbus/dbus-connection.c (dbus_connection_read_write): Add new
1466         method for getting messages off the bus in the absence of a
1467         mainloop.  This method is much like 
1468         dbus_connection_read_write_dispatch except it does not dispatch
1469         the messages to a registered filter function.  Instead it
1470         allows a developer to process messages by directly popping
1471         them off the bus.
1472
1473 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
1474
1475         * bus/desktop-file.c (parse_key_value): Ignore locales allowing 
1476         the parser to continue instead of returning error
1477         (bus_desktop_file_load): Do not free parser data when
1478         parse_section_start or parse_key_value fails because it was 
1479         already freed by parser_free (patch from Carlos Garcia Campos  
1480         <carlosgc at gnome.org>)
1481
1482 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
1483
1484         * dbus/dbus-auth.c, dbus/dbus-connection.c, dbus/dbus-keyring.c,
1485         dbus/dbus-server-debug-pipe.c, glib/dbus-binding-tool-glib.c
1486         glib/dbus-glib-tool.c, glib/dbus-gparser.c, glib/dbus-gproxy.c
1487         test/test-segfault.c, test/test-utils.c,
1488         test/glib/test-dbus-glib.c, tools/dbus-cleanup-sockets.c
1489         tools/dbus-launch.c, tools/dbus-tree-view.c, tools/dbus-viewer.c:
1490         Various cleanup of dead code and compiler warnings (patch from
1491         Kjartan Maraas <kmaraas at gnome.org>) 
1492
1493 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
1494
1495         * glib/dbus-gmain.c (connection_setup_add_watch): plugged a leak
1496         (patch from Carlos Garnacho Parro <carlosg at gnome.org>
1497
1498 2005-11-27  Robert McQueen  <robot101@debian.org>
1499
1500         * python/dbus_bindings.pyx: Repair my previous commit which reverted
1501         part of the preceding one. Oops. Merge patch by Johan Hedberg
1502         <johan.hedberg@nokia.com> to fix marshalling of 16-bit integer values
1503         on big-endian platforms.
1504
1505         * test/python/test-client.py: Add some 16-bit integers to the test
1506         values.
1507
1508 2005-11-27  Carlos Garcia Campos  <carlosgc@gnome.org>
1509
1510         * glib/dbus-gobject.c: Append a GValue instead of a basic type in
1511         method return message for property getters
1512
1513 2005-11-27  Robert McQueen  <robot101@debian.org>
1514
1515         * python/dbus_bindings.pyx: Fix a bug where doing a strict append
1516         with type v of an instance of dbus.Variant(foo, type='x') caused
1517         it to be boxed twice before sending over the bus.
1518
1519         * python/dbus_bindings.pyx, python/service.py,
1520         test/python/test-client.py: Update the constants for the new
1521         request_name flags, and update comments/test cases now that queueing
1522         is the default action.
1523
1524 2005-11-22  John (J5) Palmieri  <johnp@redhat.com>
1525
1526         * configure.in:
1527         - Change version to 0.60 for impending release
1528         - upped the sonames because of ABI and API breakage
1529
1530 2005-11-22  John (J5) Palmieri  <johnp@redhat.com>
1531
1532         * configure.in: Add test/name-test/Makefile to the generated
1533         Makefile list
1534
1535         * dbus/dbus-shared.h (#define DBUS_NAME_FLAG_ALLOW_REPLACEMENT):
1536         New flag which replaces DBUS_NAME_FLAG_PROHIBIT_REPLACEMENT
1537         (#define DBUS_NAME_FLAG_DO_NOT_QUEUE): New flag for specifying
1538         not to queue an ower if it can't be the primary owner
1539
1540         * bus/bus.h: Add new internal BusOwner struct
1541
1542         * bus/driver.c (bus_driver_handle_hello): Send flags (0 for default)
1543         to bus_registry_ensure and don't set the prohibit_replacement flag
1544         since they are now set per BusOwner and not per name.
1545         (bus_driver_handle_list_queued_owners): bus method (ListQueuedOwners) 
1546         that returns the list of connections in a name's connection queue
1547         
1548         * bus/services.c (struct BusService): remove prohibit_replacement field
1549         (struct BusOwner): new struct for keeping track of queued connections
1550         and their associated flags for the queue
1551         (struct BusRegistry): add a BusOwner memory pool
1552         (bus_registry_new): initialize the BusOwner memory pool
1553         (bus_registry_unref): free the BusOwner memory pool
1554         (_bus_service_find_owner_link): new internal method for
1555         searching the queue for a specific connection
1556         (bus_owner_set_flags): new method for adding setting the flags on a
1557         bus owner
1558         (bus_owner_new): new method that creates a BusOwner object from the
1559         pool and sets its flags
1560         (bus_owner_ref, bus_owner_unref): ref counting for BusOwner objects
1561         (bus_registry_ensure): Add the flags parameter
1562         (bus_registry_acquire_service): Switch from using raw connections to
1563         using the BusOwner struct
1564         Add new state machine for dealing with the new set of flags
1565         (bus_registry_set_service_context_table, struct OwnershipCancelData, 
1566         cancel_ownership, free_ownership_cancel_data, 
1567         add_cancel_ownership_to_transaction, struct OwnershipRestoreData, 
1568         restore_ownership, free_ownership_restore_data, 
1569         add_restore_ownership_to_transaction): Switch to using BusOwner 
1570         instead of raw connections
1571         (bus_service_add_owner): Add flags parameter
1572         Switch to using BusOwner instead of raw connections
1573         Add state machine for dealing with the new set of flags
1574         (bus_service_swap_owner): Swaps the first and second owners in the
1575         queue.  Used to make sure proper signals are sent when a service looses 
1576         or gains primary ownership.  We never insert an owner at the top of the
1577         queue.  Instead we insert it in the second position and then swap.
1578         (bus_service_remove_owner): Remove the owner from the queue sending
1579         out the NameLost and NameOwnerChanged signals if the we were the 
1580         primary owner
1581         (bus_service_get_primary_owners_connection): New method that extracts
1582         the connection from the primary owner
1583         (bus_service_get_primary_owner): Returns the BusOwner instead of the 
1584         connection
1585         (bus_service_get_allow_replacement): Changed from the old 
1586         bus_service_get_prohibit_replacement method.  Checks the flags of the 
1587         primary owner and returns if it can be replaced or not
1588         (bus_service_set_prohibit_replacement): removed
1589         (bus_service_has_owner): returns TRUE if and owner with
1590         the specified connection exists in the queue
1591         
1592         * dbus/dbus-bus.c (dbus_bus_connection_get_unique_name): New helper
1593         method that only compiles if tests are enabled.  Allows us to get the 
1594         unique name of a connection so we can check it against the queue when
1595         doing regression tests
1596
1597         * bus/activation.c (bus_activation_send_pending_auto_activate),
1598         bus/dispatch.c (bus_dispatch),  
1599         bus/driver.c (bus_driver_handle_get_service_owner, 
1600         bus_driver_handle_get_connection_unix_user, 
1601         bus_driver_handle_get_connection_unix_process_id,
1602         bus_driver_handle_get_connection_selinux_security_context),
1603         bus/signals.c (connection_is_primary_owner): 
1604         use bus_service_get_primary_owners_connection instead of
1605         bus_service_get_primary_owner
1606
1607         * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket, 
1608         _dbus_listen_unix_socket): Calculate the length of the socket
1609         path and use that instead of using a fixed length which was
1610         causing socket names to contain many trailing Nul bytes.
1611
1612         * dbus/dbus-glib-lowlevel.h, glib/dbus-gobject.c
1613         (dbus_g_method_get_sender): New method for extracting the sender 
1614         from a DBusGMethodInvocation
1615         (dbus_g_method_return_get_reply): changed name to 
1616         dbus_g_method_get_reply
1617         (dbus_g_method_return_send_reply): changed name to
1618         dbus_g_method_send reply
1619
1620         * doc/dbus-specification.xml: New docs that describe how the new
1621         queueing system works and talks about the changes to the how
1622         we specify socket names
1623
1624         * glib/examples/example-service.c, 
1625         glib/examples/example-signal-emitter.c,
1626         glib/examples/statemachine/statemachine-server.c:
1627         Changed the RequestName flags to the new system
1628
1629         * test/name-test/ (test-names.c, run-test.sh, Makefile.am): New
1630         regression test suite for testing various states of the new
1631         queueing system
1632         
1633 2005-11-15  Robert McQueen  <robot101@debian.org>
1634
1635         * dbus/dbus-glib-lowlevel.h, glib/dbus-gobject.c: Patch from Rob
1636         Taylor to add two methods, dbus_g_method_return_get_reply and
1637         dbus_g_method_return_send_reply, to allow you to get the reply
1638         message from a DBusGMethodInvocation, append arbitrary stuff to it,
1639         and send it. The GLib bindings can't marshal a return value of
1640         something like a(s) if the array is empty - ultimately they should be
1641         made to heed the signature of the out arguments as the Python bindings
1642         now can, but this is a workable interim solution which might have
1643         other applications.
1644
1645 2005-11-15  Robert McQueen  <robot101@debian.org>
1646
1647         * bus/driver.c, bus/services.c, bus/services.h: Add a ReleaseName
1648         method to org.freedesktop.DBus to release a bus name or give up
1649         waiting in the queue for it.
1650
1651         * dbus/dbus-bus.c, dbus/dbus-bus.h, dbus/dbus-shared.h: Add a
1652         dbus_bus_release_name method to send the ReleaseName method calls.
1653         Add constants for the return values to dbus/dbus-shared.h.
1654
1655         * doc/dbus-specification.xml: Document the new ReleaseName method
1656         in the specification.
1657
1658         * python/dbus_bindings.pyx: Add a low-level python binding for the
1659         release name method.
1660
1661         * python/exceptions.py, python/service.py: Make freeing BusName
1662         objects release the name. Add a NameExistsException, and fix a
1663         bug with creating UnknownMethodException.
1664
1665         * test/python/test-client.py: Add tests for freeing BusName
1666         objects causing names to be released.
1667
1668 2005-11-14  Robert McQueen  <robot101@debian.org>
1669
1670         * python/service.py: Include the traceback in the error reply when we
1671         send an exception over the bus. _BEST_ _PATCH_ _EVER_
1672
1673 2005-11-14  David Zeuthen  <davidz@redhat.com>
1674
1675         Patch from Timo Hoenig <thoenig@suse.de>.
1676
1677         * bus/bus.c: I've recently investigated why the automatic reload
1678         of configuration files does not work as expected.
1679
1680         Currently, reloading configuration files does only work when
1681         running dbus-daemon with --nodaemon.  If we are running as daemon
1682         we're hitting a dnotify bug once we fork the process.
1683
1684         We're initializing the dnotify fds before calling fork().  Once
1685         the child process forked it does still have the fds (and they
1686         still show up in /proc/`pidof dbus-daemon`/fd/) but we're not
1687         getting SIGIO as changes are made to the configuration files.
1688
1689         The attached patch moves the initialization of the dnotify fds to
1690         process_config_postinit().  This is safe for all current code
1691         paths and solves the dnotify disfunction.  If we're running
1692         dbus-daemon as daemon the fds for dnotify are now being
1693         initialized after fork() for the child process.
1694
1695         * configure.in: The current configure.in check for dnotify probes
1696         'x$target_os' for being 'xlinux-gnu'.  I've changed the check to
1697         match for 'xlinux', too. Additionally I have adapted the configure
1698         option's style to match with the others.
1699
1700 2005-11-14  Robert McQueen  <robot101@debian.org>
1701
1702         * python/decorators.py, python/service.py: Add a new argument to the
1703         dbus.service.method decorator called sender_keyword, which if set,
1704         specifies the name of an argument which will be provided the bus
1705         name of the method caller.
1706
1707         * test/python/test-client.py, test/python/test-service.py: Add a
1708         method and test to check the sender_keyword functionality.
1709
1710 2005-11-07  John (J5) Palmieri  <johnp@redhat.com>
1711
1712         * bus/driver.c (bus_driver_handle_reload_config): Make sure we send an 
1713         empty reply so blocking calls don't block forever (Patch from Sjoerd 
1714         Simons <sjoerd at luon.net>)
1715
1716         * AUTHORS: Add Robert McQueen for his work on the Python
1717         Bindings and other parts of D-Bus
1718
1719 2005-11-07  Robert McQueen  <robot101@debian.org>
1720
1721         * python/decorators.py: Change emit_signal function to use the
1722         signature annotation of the signal when marhsalling the arguments from
1723         the service. Fix a bug where the code checking signature length
1724         against argument length referenced the wrong variable.
1725
1726         * python/introspect_parser.py: Avoid adding the type signature of
1727         signal arguments to any methods which occur after them in the
1728         introspection data (!) by making the parser a little more careful
1729         about its current state.
1730
1731         * python/service.py: Remove debug prints from last commit (again :D).
1732
1733         * test/python/test-client.py, test/python/test-service.py: Add test
1734         signals with signature decorators to test the strict marshalling code
1735         gives errors at the right time. Could do with checking the signals
1736         actually get emitted too, given that the test does nothing with
1737         signals at the moment...
1738
1739 2005-11-07  Robert McQueen  <robot101@debian.org>
1740
1741         * python/_dbus.py: Add WeakReferenceDictionary cache of dbus.Bus
1742         instances to stop madness of creating new instances representing
1743         the same bus connection all the time, rendering any tracking of
1744         match rules and bus names quite meaningless. Caught a bug where
1745         the private argument to SessionBus() and friends was being passed
1746         in as use_default_mainloop by mistake. Still some problems with
1747         multiple dbus_binding.Connection instances representing the same
1748         low-level connection (eg when you use both SessionBus() and
1749         StarterBus() in same process), but it's a lot better now than it
1750         was.
1751
1752         * python/dbus_bindings.pyx: Add constants with the return values
1753         for bus_request_name().
1754
1755         * python/service.py: Store bus name instances in a per-dbus.Bus cache
1756         and retrieve the same instances for the same name, so deletion can be
1757         done with refcounting. Also now throws some kind of error if you
1758         don't actually get the name you requested, unlike previously...
1759
1760         * test/python/test-client.py: Add tests for instance caching of buses
1761         and bus name objects.
1762
1763 2005-11-04  Robert McQueen  <robot101@debian.org>
1764
1765         * python/dbus_bindings.pyx, test/python/test-client.py: Fix
1766         marshalling of boolean values. Add some booleans to the values in
1767         the test client.
1768
1769         * python/decorators.py, python/service.py: Add an 'async_callbacks'
1770         argument to the dbus.service.method decorator, which allows you to
1771         name arguments to take two callback functions for replying with
1772         return values or an exception.
1773
1774         * test/python/test-client.py, test/python/test-service.py: Add test
1775         case using asynchronous method reply functions, both return values and
1776         errors, and from within both the function itself and from a mainloop
1777         callback.
1778
1779         * python/decorators.py, python/service.py: Perform checking that the
1780         number of method/signal arguments matches the number of types in the
1781         signature at class loading time, not when you first introspect the
1782         class.
1783
1784         * python/service.py: Remove debug print left by the last commit.
1785
1786 2005-11-03  Robert McQueen  <robot101@debian.org>
1787
1788         * python/service.py: Heavy refactoring of method invocation, with
1789         hopefully no effect on functionality. Nuked _dispatch_dbus_method_call
1790         in favour of a new _message_cb that uses seperate functions for
1791         looking up the method to call, marshalling the return values, and
1792         sending exceptions as errors, and is easier to follow as a
1793         consequence.  Fixes some corner cases about returning things that
1794         don't match your declared out_signature, allows exceptions to define
1795         _dbus_error_name and have it be sent over the bus as the error name,
1796         and paves the way for cool stuff like heeding the message no reply
1797         flag, asynchronous method implementations, informing the method of the
1798         sender, and including backtraces in the error messages.
1799
1800         * test/python/test-client.py: Catch and print exceptions thrown in the
1801         async callback tests, rather than passing them to the low-level
1802         bindings to be ignored in a noisy and frustrating manner.
1803
1804 2005-11-03  Robert McQueen  <robot101@debian.org>
1805
1806         * python/_dbus.py, python/proxies.py, python/service.py: Add __repr__
1807         functions to dbus.Bus, dbus.service.BusName and dbus.service.Object,
1808         tweak others to be consistent.
1809
1810         * test/python/test-client.py: Tweak output of testInheritance.
1811
1812 2005-10-29  Robert McQueen  <robot101@debian.org>
1813
1814         * python/service.py: Major changes to allow multiple inheritance
1815         from classes that define D-Bus interfaces:
1816         
1817          1. Create a new Interface class which is the parent class of
1818             Object, and make the ObjectType metaclass into InterfaceType.
1819         
1820          2. Patch written with Rob Taylor to replace use of method_vtable
1821             with code that walks the class's __MRO__ (method resolution order)
1822             to behave like Python does when invoking methods and allow
1823             overriding as you'd expect. Code is quite tricky because
1824             we have to find two methods, the one to invoke which has the
1825             right name and isn't decorated with the /wrong/ interface,
1826             and the one to pick up the signatures from which is decorated
1827             with the right interface.
1828         
1829             The same caveats apply as to normal multiple inheritance -
1830             this has undefined behaviour if you try and inherit from two
1831             classes that define a method with the same name but are
1832             decorated with different interfaces. You should decorate
1833             your overriding method with the interface you want.
1834         
1835          3. Replace grungy introspection XML generation code in the metaclass
1836             with dictionaries that cope correctly with multiple inheritance
1837             and the overriding of methods. This also uses the signature
1838             decorations to provide correct introspection data, including
1839             the debut appearance of the types of your return values. :D
1840
1841         * test/python/test-client.py, test/python/test-service.py: Add a test
1842         case to try invoking an method that overrides one inherited from a
1843         D-Bus interface class.
1844
1845 2005-10-29  Robert McQueen  <robot101@debian.org>
1846
1847         * python/dbus_bindings.pyx: Tweak 'raise AssertionError' to assert().
1848         Add checking for the end of struct character when marshalling a
1849         struct in MessageIter.append_strict.
1850
1851         * python/examples/example-service.py,
1852         python/examples/gconf-proxy-service.py,
1853         python/examples/gconf-proxy-service2.py: Update to use gobject
1854         mainloop directly rather than appearing to depend on gtk.
1855
1856         * python/test/test-client.py, python/test/test-server.py: Remove
1857         obsolete and broken test scripts for old bindings. We have up to date
1858         and working tests in test/python/.
1859
1860 2005-10-29  Robert McQueen  <robot101@debian.org>
1861
1862         * python/decorators.py: Add optional arguments to the method and
1863         signal decorators to allow you to specify the signature of arguments
1864         and return values. Preserve the doc strings of signal functions in the
1865         decorated version, for pydoc and friends.
1866
1867         * python/dbus_bindings.pyx, python/proxies.py: Replace the
1868         parse_signature_block function with an iterable dbus.Signature()
1869         type. Fix a bug in MessageIter.append_strict where you could append
1870         anything by claiming it was a string.
1871
1872         * python/service.py: Use the out_signature decoration on methods to
1873         marshal return values, meaning you no longer require dbus.Array()
1874         or dbus.Dictionary() to indicate the type when returning empty
1875         arrays or dictionaries. Fix a bug where exceptions which are defined
1876         in __main__ are not turned into error replies.
1877
1878         * test/python/test-client.py, test/python/test-service.py: Add test
1879         for correct marshalling of return values according to out_signature.
1880         Fix a bug in the async call test where the error_handler is missing a
1881         self argument.
1882
1883 2005-10-29  Robert McQueen  <robot101@debian.org>
1884
1885         * glib/Makefile.am, glib/examples/Makefile.am,
1886         glib/examples/statemachine/Makefile.am: Merge patch from Ubuntu by
1887         Daniel Stone to replace explicit calls to libtool with $(LIBTOOL).
1888
1889         * test/python/.cvsignore: Add run-with-tmp-session-bus.conf.
1890
1891         * tools/dbus-monitor.1, tools/dbus-monitor.c: Merge dbus-monitor patch
1892         from Ubuntu by Daniel Silverstone to allow specifying match rules on
1893         the command line.
1894
1895 2005-10-27  Ross Burton  <ross@openedhand.com>
1896
1897         * dbus/dbus-marshal-header.c:
1898         Remove dead code.
1899
1900         * glib/dbus-gobject.c:
1901         Stop compiler warning.
1902
1903 2005-10-25  Ross Burton  <ross@openedhand.com>
1904
1905         * dbus/dbus-auth.c:
1906         * dbus/dbus-server-unix.c:
1907         * dbus/dbus-transport-unix.c:
1908         * glib/dbus-gmain.c:
1909         * glib/dbus-gobject.c:
1910         Add some const keywords.
1911
1912 2005-10-25  Ross Burton  <ross@openedhand.com>
1913
1914         * doc/dbus-specification.xml:
1915         Document the NoReply annotation.
1916
1917         * glib/dbus-binding-tool-glib.h:
1918         * glib/dbus-binding-tool-glib.c:
1919         Respect the NoReply annotation.
1920
1921 2005-10-24  Robert McQueen <robot101@debian.org>
1922
1923         * python/dbus_bindings.pyx (String, MessageIter): make D-Bus strings
1924         derive from unicode instead of str, and encode/decode UTF-8 when
1925         marshalling/unmarshalling bus messages
1926
1927         * python/introspect_parser.py: encode introspection data as UTF-8
1928         before passing the buffer into libxml2
1929
1930         * test/python/test-client.py: add unicode test strings
1931
1932         * test/data/valid-service-files/.cvsignore, test/python/.cvsignore:
1933         ignore generated python test files
1934
1935 2005-10-17  John (J5) Palmieri  <johnp@redhat.com>
1936
1937         * glib/dbus-gvalue-utils.c (hash_free_from_gtype): handle gdouble
1938         and G_TYPE_VALUE_ARRAY (DBUS_TYPE_STRUCT)
1939         (gvalue_from_hash_value, hash_value_from_gvalue): handle gdouble
1940
1941         * glib/dbus-gvalue.c (dbus_gvalue_to_signature): add missing
1942         DBUS_STRUCT_BEGIN_CHAR and DBUS_STRUCT_END_CHAR charaters
1943         when constructing struct signatures
1944
1945         * python/_dbus.py (Bus): handle private connections using the
1946         private keyword in the constructor. defaults to private=False
1947         (Bus::close): new method to close a connection to the bus
1948
1949         * python/dbus_bindings.pyx (Connection::close): renamed method
1950         was previously called disconnect
1951         (bus_get): now supports getting a private connection
1952
1953         * python/proxies.py (ProxyMethod::__call__): check if ignore_reply
1954         keyword is set to True.  if it is, execute the method without waiting
1955         for a reply
1956         (ProxyObject::_introspect_execute_queue): new method for executing
1957         all the pending methods that were waiting for the introspect to
1958         finish.  this is called when introspect either succeeds or fails
1959         (ProxyObject::_introspect_error_handler): call queued methods
1960
1961 2005-10-14  John (J5) Palmieri  <johnp@redhat.com>
1962
1963         * python/dbus_bindings.pyx (MessageIter::append_strict): check for
1964         STRUCT_BEGIN not TYPE_STRUCT in indicate we are marshalling a struct
1965
1966         * python/service.py (Object::_message_cb): handle exceptions correctly
1967         by sending them over the wire to the calling app.  This makes sure
1968         the client returns immediately instead of waiting the 15 seconds to
1969         timeout.
1970
1971         * test/python/test-client.py (TestDBusBindings::testBenchmarkIntrospect): 
1972         Add a test to benchmark how long it takes to introspect a service and 
1973         call a method which returns a large element (pretty fast)
1974
1975         * test/python/test-service.py (TestObject::GetComplexArray): new test 
1976         method which pushes a lot of data
1977
1978 2005-10-13  John (J5) Palmieri  <johnp@redhat.com>
1979
1980         * python/service.py(ObjectType::_reflect_on_signal, _reflect_on_method):        
1981         reclaim memory outside of the loop and use del istead of just setting
1982         the key to None
1983
1984 2005-10-13  John (J5) Palmieri  <johnp@redhat.com>
1985
1986         * python/service.py (ObjectType::_reflect_on_signal): Always close
1987         signal tag even when there are no arguments
1988
1989 2005-10-13  John (J5) Palmieri  <johnp@redhat.com>
1990
1991         * configure.in: Set mono, mono-docs and Qt3 to default
1992         to no instead of auto when building.  These bindings do not
1993         have full time maintainers and will not be supported for the
1994         1.0 release.
1995
1996 2005-10-12  John (J5) Palmieri  <johnp@redhat.com>
1997
1998         patches from Michael Krivoruchko <misha at sun.com>: 
1999         
2000         * dbus/dbus-connection.c (_dbus_connection_queue_received_message_link,
2001         _dbus_connection_message_sent, 
2002         _dbus_connection_send_preallocated_unlocked_no_update, 
2003         _dbus_connection_pop_message_link_unlocked): handle the case when path 
2004         is NULL when calling _dbus_verbose
2005
2006         * configure.in: check for functions getpeerucred and getpeereid
2007
2008         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): provides 
2009         support of auth EXTERNAL on Solaris 10+ (getpeerucred), FreeBSD 4.6+, 
2010         OpenBSD 3.0+ and FreeBSD 5.0+ as well as MacOSX 10.2+ (getpeereid). 
2011         Patch was only tested on Solaris 10 x86 so it might be issues
2012         with other platforms (i.e. BSDs and MacOSX)
2013         
2014
2015 2005-10-05  John (J5) Palmieri  <johnp@redhat.com>
2016
2017         * glib/dbus-gvalue.c (marshal_variant): call _dbus_gvalue_marshal 
2018         instead of marshal basic so we can handle recursive types in a variant
2019
2020         * test/glib/test-dbus-glib.c: Add test for marshaling recurive types
2021         in variants
2022
2023         * test/glib/test-service-glib.c, test-service-glib.xml
2024         (my_object_echo_variant [EchoVariant], 
2025         my_object_process_variant_of_array_of_ints123
2026         [ProcessVariantOfArrayOfInts123]): 
2027         Add two test methods
2028
2029         * python/introspect_parser.py: New module for parsing introspect
2030         data.
2031
2032         * python/dbus_bindings.pyx:
2033         (various places): when throwing errors fix to use errormsg instead 
2034         of message local variable because Pyrex can get confused with other 
2035         message variables (initial patch by Robert McQueen 
2036         <robert.mcqueen at collabora.co.uk>)
2037         (MessageIter::parse_signature_block): new method for getting the next
2038         block in a signiture.
2039         (MessageIter::append_strict): new method for appending values strictly
2040         using the passed in signature instead of guessing at the type
2041         (MessageItter:: append_dict, append_struct, append_array): use 
2042         signatures to marshal children if the signature is available
2043         
2044         * python/exceptions.py (IntrospectionParserException): new exception
2045
2046         * python/proxies.py (ProxyMethod::__call__): Marshal args with 
2047         introspected signatures if available, else we fall back to the
2048         old way of doing things.
2049         (ProxyObject::_introspect_reply_handler ): parse introspection data
2050         
2051         * python/service.py (ObjectType::_reflect_on_method): Properly
2052         terminate <method> if there are no args in the reflection data
2053
2054         * test/python/test-client.py: add tests for talking with the GLib
2055         test server.  This gives us better coverage for introspection since
2056         python to python will always generate arguments as variants.  It also
2057         allows us to test the robustness of the GLib bindings and interlanguage
2058         communications.
2059
2060         
2061 2005-10-03  John (J5) Palmieri  <johnp@redhat.com>
2062
2063         * bus/driver.c (bus_driver_handle_introspect): Add signals
2064         to the introspect data. (patch from Daniel P. Berrange 
2065         <dan at berrange.com>)
2066
2067         * bus/dispatch.c (check_existent_ping): Add testcase for Ping
2068         
2069         * dbus/dbus-connection.c (_dbus_connection_peer_filter,
2070         _dbus_connection_run_builtin_filters): Changed these to
2071         be unlock_no_update functions and call 
2072         _dbus_connection_send_unlocked_no_update instead of
2073         dbus_connection_send to avoid locking errors.
2074         
2075         * doc/TODO: Removed the make Ping test TODO
2076         
2077 2005-09-26  John (J5) Palmieri  <johnp@redhat.com>
2078
2079         * dbus/Python.pyx: Fixed memory leaks when throwing errors.
2080         We now copy the message from a DBusError and then free 
2081         the error object befor throwing the error
2082
2083         * glib/dbus-glib-tool.c: removed extra comma at the end of the
2084         DBusBindingOutputMode enum which was causing a warning.
2085         #include <time.h> so using time_t is explicitly defined
2086
2087 2005-09-26  John (J5) Palmieri  <johnp@redhat.com>
2088
2089         * Integrate patches from Lennart Poettering <mzsqb at 0pointer.de>:
2090         - dbus/dbus-bus.c
2091         (internal_bus_get): new method that take over the heavy lifting
2092         of dbus_bus_get and adds the ability to get a private connection
2093         to the bus
2094         (dbus_bus_get): wrapper to internal_bus_get that provides the same
2095         interface as in previous versions
2096         (dbus_bus_get_private): new method that is a wrapper to 
2097         internal_bus_get to get a private connection to the bus
2098
2099         - dbus/dbus-bus.h
2100         (dbus_bus_get_private): add as a public libdbus interface
2101
2102         - dbus-1.pc.in: output system_bus_default_address and 
2103         sysconfdir variables so apps can use them when compiling
2104
2105 2005-09-23  Harald Fernengel  <harry@kdevelop.org>
2106         * dbus/qt: New Qt bindings
2107
2108 2005-09-12  Waldo Bastian  <bastian@kde.org>
2109
2110         * dbus/dbus-marshal-validate.c,
2111         doc/dbus-specification.xml, test/Makefile.am,
2112         test/test-names.c: allow hyphens in bus names.
2113
2114 2005-09-11  Mark McLoughlin  <mark@skynet.ie>
2115
2116         * test/data/auth/fallback.auth-script: we don't
2117         retry the EXTERNAL method when we know its going
2118         to fail anymore.
2119
2120 2005-09-11  Mark McLoughlin  <mark@skynet.ie>
2121
2122         * dbus/dbus-connection-internal.h: rename
2123         (add|remove|toggle)_(watch|timeout) to unlocked()
2124         
2125         * dbus/dbus-connection.c: ditto.
2126         
2127         * dbus/dbus-timeout.c, dbus/dbus-transport-unix.c:
2128         Update some callers for the renaming.
2129
2130 2005-09-10  Mark McLoughlin  <mark@skynet.ie>
2131
2132         * dbus/dbus-auth.c: (record_mechanisms): don't
2133         retry the first auth mechanism because we know
2134         we're just going to get rejected again.
2135         
2136         * dbus/dbus-keyring.c: (_dbus_keyring_reload):
2137         Fix thinko ... and what a nasty little bugger to
2138         track down you were ...
2139
2140         * dbus/dbus-connection.c:
2141         (_dbus_connection_add_watch),
2142         (_dbus_connection_remove_watch): add note about
2143         these needing the connection to be locked.
2144         (_dbus_connection_get_dispatch_status_unlocked):
2145         set status to DATA_REMAINS when we queue the
2146         disconnected message.
2147         
2148         * bus/dispatch.c:
2149         (bus_dispatch): fix warning.
2150         (check_existent_service_no_auto_start):
2151         Expect ChildSignaled error too.
2152         (check_existent_hello_from_self): fix another
2153         couple of warnings.
2154         
2155 2005-09-08  Joe Shaw  <joeshaw@novell.com>
2156
2157         Patches from James Willcox <snorp@snorp.net>
2158
2159         * mono/Makefile.am: Add Int16.cs and UInt16.cs
2160
2161         * mono/DBusType/Array.cs: Handle multidimensional arrays, and
2162         support array "out" parameters.
2163
2164         * mono/DBusType/Int16.cs, mono/DBusType/UInt16.cs: New files,
2165         for 16-bit int support.
2166
2167 2005-09-06  John (J5) Palmieri  <johnp@redhat.com>
2168
2169         * Released 0.50
2170
2171         * Patch from Steve Grubb:
2172         - bus/activation.c (bus_activation_service_reload_test): clean up
2173         some indentation
2174         - dbus/dbus-keyring.c (_dbus_keyring_reload): fix conditional 
2175         - dbus/dbus-message-factory.c (generate_special): fix a couple of
2176         buffer overflows in the test suite.  This is non critical because
2177         it can not be exploited and this code is only run when doing a 
2178         make check.
2179
2180         * Patch from Yaakov Selkowitz: Build fixes for Cygwin
2181         - configure.in: Don't check and link against kdecore, only qt headers
2182         - dbus/Makefile.am: Add -no-undefined to libdbus_1_la_LDFLAGS
2183         - gcj/org/freedesktop/dbus/Makefile.am:
2184         add libdbus_gcj_1_la_LDFLAGS = -no-undefined
2185         - glib/Makefile.am: Add -no-undefined to libdbus_glib_1_la_LDFLAGS
2186         and $(DBUS_GLIB_LIBS) to dbus_binding_tool_LDADD
2187         - qt/Makefile.am: Add -no-undefined to libdbus_qt_1_la_LDFLAGS
2188         - tools/Makefile.am: Add platform extentions to binaries 
2189         (i.e. .exe on windows)
2190
2191         * configure.in: 
2192         - Make it so if no suitable version of python is found we only 
2193         disable building python instead of exiting the configure script
2194         - Require version 2.4 of glib for glib bindings
2195         - Up version to 0.50
2196
2197         * python/__init__.py: Sync version with libdbus to (0,50,0)
2198         
2199 2005-09-05  Olivier Andrieu  <oliv__a@users.sourceforge.net>
2200
2201         * dbus/dbus-object-tree.c (find_subtree_recurse):
2202         a couple of optimizations (bug #710):
2203         - do a binary search in the tree
2204         - insert a new child at the right place directly, no need for
2205           qsort anymore
2206         - do the "double alloc" thing when allocating children
2207
2208 2005-08-31  John (J5) Palmieri  <johnp@redhat.com>
2209
2210         * python/Makefile.am: Break on pyrexc errors instead of ignoring them
2211
2212         * python/dbus_bindings.pyx: Memory management foo
2213         (global): remove hacky _user_data_references global list
2214         (GIL_safe_cunregister_function_handler): userdata now stuffed into
2215         tuples. Unref user_data
2216         (GIL_safe_cmessage_function_handler): userdata now stuffed into tuples
2217         (Connection::__del__): Remove and replace with __dealloc__ method
2218         (Connection::add_filter): Stuff user_data into a tuple.  Use Py_INCREF
2219         to keep tuple from being deallocated instead of the global var hack
2220         (Connection::register_object_path): Stuff user_data into a tuple.
2221         Use Py_INCREF to keep tuple from being deallocated instead of the 
2222         global var hack
2223         (Connection::register_fallback): Stuff user_data into a tuple.
2224         Use Py_INCREF to keep tuple from being deallocated instead of the 
2225         global var hack
2226         (GIL_safe_pending_call_notification): Don't unref the message
2227         because it gets unreffed when going out of scope.  Py_XDECREF
2228         the user_data
2229         (PendingCall::__del__): Remove and replace with __dealloc__ method
2230         (PendingCall::set_notify): ref the pending call because we will
2231         need it to stick around for when the notify callback gets called
2232         (Message::__del__): Remove and replace with __dealloc__ method
2233
2234         * python/dbus_glib_bindings.pyx (init_gthreads): Changed to 
2235         gthreads_init to match up with the dbus call
2236
2237         * python/glib.py (init_threads): Changed to threads_init to match
2238         up with gobject.threads_init().  init_threads is kept for backwards
2239         compat but will most likely be deprecated in the future
2240
2241         * test/python/test-client.py: 
2242         - revamp to use Python's unittest functionality
2243         - add async call tests
2244         - setup threads in glib and dbus so we make sure locks are working
2245         
2246 2005-08-30  John (J5) Palmieri  <johnp@redhat.com>
2247
2248         * python/dbus_bindings.pyx 
2249         (_pending_call_notification, cunregister_function_handler, 
2250         cmessage_function_handler): All callback functions have been rearranged 
2251         to workaround a bug in Pyrex when working with the GIL which is Python's 
2252         global lock when dealing with threads.  They have been split into
2253         a wrapper function (which assumes the name of the old function) and
2254         a _GIL_safe_<function name> function which contains the functionality
2255         of the old function.  This ensures that Pyrex does not write code
2256         the lock is released.
2257         
2258
2259 2005-08-30  John (J5) Palmieri  <johnp@redhat.com>
2260
2261         * python/dbus_bindings.pyx (_pending_call_notification): Obtain the
2262         GIL global lock when calling back into Python
2263
2264 2005-08-29  John (J5) Palmieri  <johnp@redhat.com>
2265
2266         * Release 0.36.2
2267
2268         * Add Havoc's patch that never got applied to HEAD (Bug #2436):
2269
2270         * bus/policy.c (bus_policy_allow_user): change default "user is
2271         allowed" to be "user has same uid as the bus itself"; any
2272         allow/deny rules will override.
2273
2274         * bus/session.conf.in: don't allow all users, since now by default
2275         the user that ran the bus can connect.
2276
2277 2005-08-26  Colin Walters  <walters@verbum.org>
2278
2279         * tools/dbus-print-message.c (print_message): Flush stdout
2280         after printing a message, so that redirecting to a file, then
2281         hitting Ctrl-C works.
2282
2283 2005-08-25  John (J5) Palmieri  <johnp@redhat.com>
2284
2285         * python/dbus_bindings.pyx: Tracked down a major memleak and fixed it
2286         (EmptyMessage): new class that subclasses Message.  This is a workaround
2287         to a Pyrex bug that fails to call __del__ when the Message object goes out
2288         of scope.  For some reason subclassing Message fixes this bug
2289         (Bus::send_with_reply_and_block): use EmptyMessage instead of Message
2290         - s/Message(_create=0)/EmptyMessage everywhere else
2291         
2292         * test/python/test-{server|client}.py: add the python/.libs directory
2293         to the lookup path so dbus_bindings and dbus_glib_bindings don't
2294         get picked up from the system
2295
2296 2005-08-25  Colin Walters  <walters@verbum.org>
2297
2298         * glib/dbus-gproxy.c (dbus_g_proxy_call): Doc update, thanks
2299         to Ryan Lortie for the suggestion.
2300
2301 2005-08-24  John (J5) Palmieri  <johnp@redhat.com>
2302
2303         * test/python: Add python regression test
2304
2305         * configure.in: Add test/python/Makefile
2306
2307         * test/Makefile.am: Add the python directory to SUBDIRS
2308
2309 2005-08-24  John (J5) Palmieri  <johnp@redhat.com>
2310
2311         * Release 0.36.1
2312
2313         * python/_dbus.py: 
2314         (Interface::connect_to_signal): propigate keywords for match on args
2315         (Bus::add_signal_receiver): Fix typo s/dbus_inteface/dbus_interface
2316
2317         * python/proxies.py (ProxyObject::connect_to_signal):
2318         propigate keywords for match on args
2319
2320         * Makefile.am: point everything to pyexecdir since python borks
2321         on multilib
2322
2323 2005-08-23  John (J5) Palmieri  <johnp@redhat.com>
2324
2325         * Release 0.36
2326
2327 2005-08-23  Colin Walters  <walters@verbum.org>
2328
2329         * test/glib/Makefile.am: Don't multiply-define EXTRA_DIST.
2330
2331 2005-08-23  John (J5) Palmieri  <johnp@redhat.com>
2332
2333         * python/dbus_glib_bindings.pyx: reorder imports and c definitions
2334         to fix some wranings. We now use dbus_bindings.DBusConnection instead
2335         of defining DBusConnection ourselves.
2336
2337 2005-08-18  John (J5) Palmieri  <johnp@redhat.com>
2338
2339         * python/dbus.pth: New path file to fix up problems when installing
2340         c libraries to lib64 and python files to lib.
2341
2342         * python/Makefile.am: install dbus.pth in the correct spot
2343
2344 2005-08-17  John (J5) Palmieri  <johnp@redhat.com>
2345         * ChangeLog: clean up my last entry a bit
2346
2347         * doc/introspect.xsl: New stylesheet for converting introspection data
2348         into browser renderable xhtml. Contributed by Lennart Poettering.
2349
2350         * doc/introspect.dtd: Fixups in the introspect format from Lennart
2351         Poettering.
2352
2353         * doc/dbus-tutorial.xml: 
2354         - Add Colin Walter to the Authors section for authoring the GLib
2355         section
2356         - Add descriptions of the new signature and type functionality
2357         in the Python complex type mapping section
2358         - Add a sidenote on the new args matching functionality in 
2359         the Python bindings
2360         - Fixed up some of the examples to use the gobject.MainLoop
2361         instead of gtk.main
2362         
2363         * python/_dbus.py:
2364         (Bus::_create_args_dict): New. Converts a hash of arg matches
2365         to a more useable format
2366         (Bus::add_signal_receiver): add a **keywords parameter for catching
2367         arg match parameters
2368         (Bus::remove_signal_receiver): add a **keywords parameter for catching
2369         arg match parameters
2370         
2371         * python/matchrules.py:
2372         (MatchTree::exec_matches): Check for arg matches
2373         (SignalMatchRule::add_args_match): New method
2374         (SignalMatchRule::execute): Added args_list parameter as an optimization
2375         so we don't have to marshal the args more than once
2376         (SignalMatchRule::match_args_from_list): New method that checks to see
2377         if the rule's arg matches match an argument list.  Only arguments
2378         set in the rule are checked.
2379         (SignalMatchRule::match_args_from_rule): New method that checks to see
2380         if the rule's arg matches match another rule's.  All args have to match
2381         in order for this method to return true.  If either rule has more args
2382         then it is not a match.
2383         (SignalMatchRule::is_match): Add args match
2384         (SignalMatchRule::repr): Add args to the final output if they exist
2385
2386 2005-08-17  Ross Burton  <ross@burtonini.com>
2387
2388         * glib/dbus-gproxy.c:
2389         (dbus_g_proxy_call_no_reply): unref the message once sent.
2390         (dbus_g_proxy_call): protect against NULL proxy.
2391
2392 2005-08-16  John (J5) Palmieri  <johnp@redhat.com>
2393
2394         * python/__init__.py: Version updated (0, 43, 0)
2395         
2396         * python/dbus_bindings.pyx: 
2397         - Fixed type objects to have self passed into __init__
2398         - Added the Variant type
2399         - Add the ability to specify types or signatures for Array, Variant 
2400         and Dictionary
2401         (Connection::send_with_reply_handlers): return a PendingCall object
2402         (_pending_call_notification): handle the case when an error is returned 
2403         without an error message in the body
2404         (MessageIter::get_boolean): return True or False instead of an integer
2405         (MessageIter::python_value_to_dbus_sig): add direct checking of types 
2406         and add checks for objects with embeded signatures or types (Array, 
2407         Variant and Dictionary)
2408         (MessageIter::append_byte): handle case when the value is a dbus.Byte
2409         (MessageIter::append_dict): handle embeded types or signatures
2410         (MessageIter::append_array): handle embeded types or signatures
2411         (MessageIter::append_variant): new method
2412         
2413         * python/proxies.py:
2414         (DeferedMethod): New. Dummy executable object used when queuing calls 
2415         blocking on introspection data
2416         (ProxyMethod::__call__): add the timeout keyword for specifying longer 
2417         or shorter timeouts for method calls
2418         (ProxyObject): Add first pass at an introspection state machine
2419         (ProxyObject::__init__): Add introspect keyword for turing off an on 
2420         introspection. 
2421         (ProxyObject::_Introspect): Internal Introspect call that bypasses 
2422         the usual mechanisms for sending messages.  This is to avoid a deadlock
2423         where the Intospect call would be queued waiting for the Introspect 
2424         call to finish ;-)
2425         (ProxyObject::_introspect_reply_handler): New.  This method is called 
2426         when introspection returns with no error
2427         (ProxyObject::_introspect_error_handler): New.  This method is called 
2428         when introspection encounters an error
2429         (ProxyObject::__getattr__): Code to handle different introspection 
2430         states.  Queue async calls or block blocking calls if we are 
2431         introspecting.  Pass through as normal if we are not or are done with 
2432         introspecting.
2433         
2434         * python/service.py: Import signal and method from decorators.py
2435
2436         * python/types.py: Add Variant type
2437
2438 2005-08-16  Colin Walters  <walters@verbum.org>
2439
2440         * glib/dbus-gobject.c (dbus_set_g_error): Don't lose if the
2441         DBusError message is NULL.
2442
2443 2005-08-09  Havoc Pennington  <hp@redhat.com>
2444
2445         * dbus/dbus-errors.c: apply patch from Timo Teras to make a
2446         malloc'd copy of the name parameter
2447
2448 2005-08-09  Havoc Pennington  <hp@redhat.com>
2449
2450         * dbus/dbus-message.c (dbus_message_set_reply_serial): print
2451         warning if the reply serial is set to 0
2452
2453 2005-08-04  Colin Walters  <walters@verbum.org>
2454
2455         * glib/dbus-gvalue-utils.h (_dbus_g_type_specialized_builtins_init)
2456         (dbus_g_type_is_fixed, dbus_g_type_fixed_get_size)
2457         (dbus_gvalue_set_from_pointer, dbus_g_hash_table_value_foreach)
2458         (dbus_g_hash_table_insert_values, dbus_g_hash_table_insert_steal_values)
2459         (dbus_gtype_is_valid_hash_key, dbus_gtype_is_valid_hash_value)
2460         (dbus_g_hash_func_from_gtype, dbus_g_hash_free_from_gtype)
2461         (dbus_g_hash_equal_from_gtype, dbus_gvalue_stor, dbus_gvalue_take):
2462         * glib/dbus-gvalue.h (dbus_g_value_types_init)
2463         (dbus_gvalue_demarshal, dbus_gvalue_demarshal_variant)
2464         (dbus_gvalue_demarshal_message, dbus_gvalue_marshal):
2465         
2466         Prefix name with _ to ensure they're not exported.  All callers
2467         updated.
2468
2469         * glib/dbus-gvalue.c (typecode_to_gtype)
2470         (dbus_typecode_maps_to_basic, basic_typecode_to_gtype)
2471         (signature_iter_to_g_type_dict)
2472         (signature_iter_to_g_type_array)
2473         (dbus_gtype_from_signature_iter, dbus_gtype_from_signature)
2474         (dbus_gtypes_from_arg_signature):
2475         Move to dbus-gsignature.c.
2476
2477         * glib/dbus-binding-tool-glib.c (dbus_binding_tool_output_glib_server): Call
2478         dbus_g_type_specialized_builtins_init instead of dbus_g_value_types_init.
2479         (dbus_binding_tool_output_glib_client): Ditto.
2480
2481         * glib/Makefile.am (DBUS_GLIB_INTERNALS): Add dbus-gsignature.c
2482         and dbus-gsignature.h
2483
2484         * test/glib/test-service-glib.c (my_object_rec_arrays): Delete
2485         unused variable.
2486
2487 2005-08-03  Colin Walters  <walters@verbum.org>
2488
2489         * glib/dbus-gobject.c: Add tests on hardcoded object info; this should
2490         catch any incompatible changes accidentally made.
2491
2492 2005-08-03  Havoc Pennington  <hp@redhat.com>
2493
2494         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): fix
2495         typo, from Julien Puydt
2496
2497         * bus/connection.c (bus_connection_disconnected): we were always
2498         doing a wait_for_memory due to a buggy loop, found by Timo Hoenig
2499
2500 2005-08-01  Colin Walters  <walters@verbum.org>
2501
2502         Patch from Joe Markus Clarke:   
2503         
2504         * glib/dbus-gidl.c (property_info_unref, arg_info_unref): Fix
2505         use-after-free.
2506
2507 2005-08-01  Colin Walters  <walters@verbum.org>
2508         
2509         Patch from Joe Markus Clarke:   
2510         
2511         * tools/dbus-send.c (main): 
2512         
2513         Don't use C99 style initializers (bug #3933).
2514         
2515 2005-08-01  Colin Walters  <walters@verbum.org>
2516
2517         Patch from Joe Markus Clarke:   
2518
2519         * glib/dbus-gvalue.c (dbus_g_value_types_init): 
2520         * glib/dbus-gvalue-utils.c (dbus_g_type_specialized_builtins_init) 
2521         * glib/dbus-gobject.c (write_interface):
2522
2523         Don't use C99 style initializers (bug #3933).
2524
2525 2005-07-31  Havoc Pennington  <hp@redhat.com>
2526
2527         * tools/dbus-viewer.c (load_child_nodes): fix invocation of
2528         dbus_g_proxy_call, fix from Piotr Zielinski bug #3920
2529
2530 2005-07-30  Havoc Pennington  <hp@redhat.com>
2531
2532         * fix a bunch of Doxygen warnings and mistakes
2533
2534 2005-07-30  Havoc Pennington  <hp@redhat.com>
2535
2536         * dbus/dbus-sysdeps.c (_dbus_string_parse_uint): remove #ifdef
2537         DBUS_BUILD_TESTS since it's now used in production code
2538
2539 2005-07-29  Havoc Pennington  <hp@redhat.com>
2540
2541         * test/glib/test-profile.c (write_junk): initialize the junk
2542         buffer so valgrind doesn't have a breakdown
2543
2544 2005-07-29  Havoc Pennington  <hp@redhat.com>
2545
2546         * bus/signals.c (bus_signals_test): add match_rule_equal() tests
2547         (match_rule_matches): remove unused arg
2548         (test_matching): add tests for match_rule_matches()
2549
2550         * bus/signals.c (bus_match_rule_parse_arg_match): add ability to
2551         do arg0='foo' arg5='bar' in the match rules
2552         (match_rule_matches): don't match if the arg0='foo' doesn't match.
2553
2554         * dbus/dbus-protocol.h (DBUS_MAXIMUM_MATCH_RULE_ARG_NUMBER): add this
2555
2556 2005-07-29  Ross Burton  <ross@openedhand.com>
2557
2558         * dbus/dbus-connection.c:
2559         Don't create a DBusCondVar which is never used.
2560
2561 2005-07-27  Ross Burton  <ross@openedhand.com>
2562
2563         * dbus/dbus-message.c:
2564         Reduce the size of the maximum cached message to 10K.
2565
2566 2005-07-25  Ross Burton  <ross@openedhand.com>
2567
2568         * glib/dbus-gproxy.c:
2569         Remove matches when all proxies are unregistered.
2570
2571 2005-07-24  Colin Walters  <walters@verbum.org>
2572
2573         * glib/dbus-gvalue.c (signature_iter_to_g_type_array): Don't require
2574         typedata; recursive arrays won't have it.
2575
2576         * test/glib/test-dbus-glib.c:
2577         * test/glib/test-service-glib.c:
2578         * test/glib/test-service-glib.xml: Add recursive arrays tests.
2579         
2580 2005-07-20  John (J5) Palmieir  <johnp@redhat.com>
2581
2582         * python/_dbus.py, _util.py, decorators.py, extract.py, matchrules.py.
2583         proxies.py, service.py: Cleanup of code after running it through the
2584         pyflakes code checker mostly dealing with undefined names.  
2585         (Bug #3828, Patch from Anthony Baxter <anthony@interlink.com.au>)
2586
2587 2005-07-17  John (J5) Palmieri  <johnp@redhat.com>
2588
2589         * NEWS: Update to 0.35.2
2590
2591 2005-07-17  John (J5) Palmieri  <johnp@redhat.com>
2592
2593         * python/_dbus.py: Remove import of the dbus.services
2594         module as it no longer exists (patch from Dimitur Kirov)
2595
2596         * python/service.py (Object::__init__): Fixed typo
2597         s/name/bus_name (patch from Dimitur Kirov)
2598
2599         * python/examples/example-signal-emitter.py: import dbus.glib
2600         to get the main loop and use glib mainloop instead of gtk so
2601         X doesn't have to be running.
2602
2603         * python/examples/example-signal-recipient.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. Import the decorators module
2606         directly.
2607
2608         * test/glib/Makefile.am:  Added DIST_EXTRA files that distcheck
2609         didn't pick up on but are needed to build
2610
2611         * configure.in: upped version to 0.35.2
2612
2613         * bus/driver.c, bus/selinux.c, bus/selinux.h, dbus/dbus-protocol.h:
2614         added Colin Walters' SELinux API rename patch from head 
2615         s/unix sercurity context/selinux security context/
2616
2617 2005-07-16  John (J5) Palmieri  <johnp@redhat.com>
2618
2619         * python/Makefile.am: dbus_binding.pxd.in should be included 
2620         in EXTRA_DIST not dbus_binding.pxd
2621         fix up $(srcdir) hopefully for the last time
2622
2623         * NEWS: Update to 0.35.1
2624
2625 2005-07-16  Colin Walters  <walters@verbum.org>
2626
2627         * bus/driver.c (bus_driver_handle_get_connection_selinux_security_context): Renamed
2628         from bus_driver_handle_get_connection_unix_security_context.  Update for
2629         error usage.
2630         (message_handlers): Update for renames.
2631
2632         * bus/selinux.c (bus_selinux_allows_send): Handle OOM on
2633         _dbus_string_init failure correctly.
2634         (bus_selinux_append_context): Convert SID to context.  Append it
2635         as a byte array.
2636         (bus_selinux_shutdown): Handle the case where bus_selinux_full_init
2637         hasn't been called.
2638
2639         * bus/selinux.h: Update prototype.
2640
2641         * dbus/dbus-protocol.h (DBUS_ERROR_SELINUX_SECURITY_CONTEXT_UNKNOWN): Renamed
2642         from DBUS_ERROR_UNIX_SECURITY_CONTEXT_UNKNOWN.
2643
2644 2005-07-15  Colin Walters  <walters@verbum.org>
2645
2646         * doc/TODO: Add note about convenience wrappers.
2647
2648 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
2649
2650         * NEWS: Update to 0.35
2651
2652 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
2653
2654         * glib/Makefile.am: Add make-dbus-glib-error-switch.sh to EXTRA_DIST
2655         so distcheck doesn't fail
2656
2657         * glib/examples/Makefile.am: Add example-service.xml and 
2658         example-signal-emitter.xml to EXTRA_DIST so distcheck doesn't fail
2659
2660         * glib/examples/statemachine/Makefile.am: Add statemachine.xml and
2661         statemachine-server.xml to EXTRA_DIST so distcheck doesn't fail
2662
2663         * python/Makefile.am: Preprend $(srcdir)/ to source files so the
2664         compiler looks in the right places during distcheck
2665
2666 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
2667
2668         * glib/example/Makefile.am: Fix a typo which cause make distcheck
2669         to fail
2670
2671 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
2672
2673         * python/examples/example-service.py,
2674         python/examples/example-signal-emitter.py: Fixed up examples
2675         for API changes
2676
2677 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
2678
2679         * python/__init__.py: Upped to version (0,42,0) because of
2680         the API change
2681
2682 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
2683
2684         * ChangeLog: fix date in last entry
2685
2686         * configure.in, bus/system.conf.in: add the ability to configure 
2687         the system bus user at compiletime with the --with-dbus-user flag
2688         (patch from Kristof Vansant)
2689
2690 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
2691
2692         * bus/dispatch.c, test/test-service.c: Add testcase
2693         for sending messages to oneself (TODO item).
2694
2695         * python/service.py (class Object): Swap ordering of bus_name 
2696         and object_path parameters to better support inheritance.
2697
2698         * doc/dbus-tutorial.xml: change Python docs to reflect change
2699         in parameter ordering and fix the inheritance section.
2700
2701         * doc/TODO: remove sending message to oneself TODO item
2702
2703 2005-07-15  Ross Burton  <ross@openedhand.com>
2704
2705         * glib/dbus-gproxy.c:
2706         Fix a leak when calling methods via the proxy.
2707
2708 2005-07-15  Colin Walters  <walters@verbum.org>
2709
2710         * bus/selinux.c (bus_selinux_append_context): Wrap in
2711         HAVE_SELINUX.
2712
2713 2005-07-14  John (J5) Palmieri  <johnp@redhat.com>
2714
2715         * python/_dbus.py (Bus::remove_signal_receiver):
2716         don't add a callback to the match if none has been passed in
2717         
2718         * python/matchrules.py (SignalMatchTree::remove): if the rule
2719         being matched does not have a callback treat it as a wildcard
2720         fix matching logic
2721
2722         * doc/dbus-tutorial.xml: Add Python tutorial
2723
2724 2005-07-14  Colin Walters  <walters@verbum.org>
2725
2726         * bus/driver.c
2727         (bus_driver_handle_get_connection_unix_security_context): New function.
2728         (message_handlers): Add.
2729
2730         * bus/selinux.c (bus_selinux_append_context): New function; appends
2731         security context to message.
2732
2733         * bus/selinux.h: Prototype.
2734
2735         * dbus/dbus-protocol.h (DBUS_ERROR_UNIX_SECURITY_CONTEXT_UNKNOWN): New.
2736
2737 2005-07-14  John (J5) Palmieri  <johnp@redhat.com>
2738
2739         * bus/activation.c: clean up all tabs to be 8 spaces 
2740         (bus_activation_activate_service): make sure we clean up
2741         if activation fails
2742
2743         * bus/dispatch.c: clean up all tabs to be 8 spaces 
2744         (check_shell_fail_service_auto_start): New function
2745         tests to make sure we get fail properly when trying to auto start a service
2746         with a faulty command line
2747         (check_shell_service_success_auto_start): New function tests to make sure
2748         auto started services get the arguments on the command line
2749
2750         * test/test-shell-service.c: Added service for testing auto-starting with 
2751         command line arguments
2752
2753         * test/data/valid-service-files/debug-shell-echo-fail.service.in, 
2754         test/data/valid-service-files/debug-shell-echo-success.service.in:
2755         Added service files for testing auto-starting with command line arguments
2756
2757         * */.cvsignore: added a bunch of generated files to various .cvsignore files
2758
2759 2005-07-14  Rodrigo Moya  <rodrigo@novell.com>
2760
2761         * dbus/dbus-shell.[ch]: copy/pasted code from GLib.
2762         
2763         * dbus/Makefile.am: added new files to build.
2764
2765         * bus/activation.c (bus_activation_activate_service): support
2766         activation commands with parameters.
2767
2768         * test/shell-test.c: added test program for the shell parsing
2769         code.
2770
2771 2005-07-13  David Zeuthen  <davidz@redhat.com>
2772
2773         * tools/dbus-send.c (append_arg, type_from_name): Also support 16 and
2774         64 bit signed and unsigned parameters
2775
2776 2005-07-13  John (J5) Palmieri  <johnp@redhat.com>
2777
2778         * python/.cvsignore: remove dbus_bindings.pyx, add dbus_bindings.pxd
2779
2780         * python/service.py (class Name): renamed BusName to make it clearer
2781         what the object is for (a name on the bus)
2782
2783         * python/examples/example-service.py,
2784         python/examples/example-signal-emitter.py: change the Name object to
2785         BusName
2786
2787 2005-07-12  Colin Walters  <walters@verbum.org>
2788
2789         Patch from Jim Gettys <Jim.Gettys@hp.com>.
2790
2791         * tools/dbus-launch.c: Include sys/select.h.
2792
2793 2005-07-12  John (J5) Palmieri  <johnp@redhat.com>
2794         * python/dbus_bindings.pyx.in: removed
2795
2796         * python/dbus_bindings.pyx: Added.
2797         - Fixed some memleaks (patch from 
2798         Sean Meiners <sean.meiners@linspireinc.com>)
2799         - Broke out the #include "dbus_h_wrapper.h" and put it in its
2800         own pxd file (Pyrex definition)
2801         - Broke out glib dependancies into its own pyx module
2802         
2803         * python/dbus_bindings.pdx: Added.
2804         - Defines C class Connection for exporting to other modules
2805
2806         * python/dbus_glib_bindings.pyx: Added.
2807         - New module to handle lowlevel dbus-glib mainloop integration
2808
2809         * python/glib.py: Added.
2810         - Registers the glib mainloop when you import this module
2811
2812         * python/services.py: Removed (renamed to service.py)
2813         
2814         * python/service.py: Added.
2815         - (class Server): renamed Name
2816
2817         * python/__init__.py: Bump ro version (0,41,0)
2818         -don't import the decorators or service module
2819         by default.  These now reside in the dbus.service namespace
2820
2821         * python/_dbus.py (Bus::__init__): Add code run the main loop 
2822         setup function on creation 
2823
2824         * python/examples/example-service.py,
2825         python/examples/example-signal-emitter.py: update examples
2826
2827         * python/examples/gconf-proxy-service.py,
2828         python/examples/gconf-proxy-service2.py: TODO fix these up
2829
2830         * doc/TODO: Addition
2831         - Added a Python Bindings 1.0 section
2832         - added "Add match on args or match on details to match rules"
2833
2834
2835 2005-07-12  Colin Walters  <walters@verbum.org>
2836
2837         * glib/examples/statemachine/Makefile.am (statemachine-server-glue.h) 
2838         (statemachine-glue.h): 
2839         * glib/examples/Makefile.am (example-service-glue.h) 
2840         (example-signal-emitter-glue.h): 
2841         * glib/Makefile.am (dbus-glib-error-switch.h): 
2842         Add libtool --mode=execute so we use the built library instead
2843         of any installed one.
2844
2845 2005-07-11  Colin Walters  <walters@verbum.org>
2846
2847         * glib/dbus-gvalue.c (struct _DBusGValue): Delete.
2848         (dbus_g_value_types_init): Remove assertion.
2849         (dbus_g_value_get_g_type, dbus_g_value_open)
2850         (dbus_g_value_iterator_get_values, dbus_g_value_get_signature)
2851         (dbus_g_value_copy, dbus_g_value_free): Delete unimplemented
2852         functions related to DBusGValue.  Now we marshal/demarshal
2853         structures as GValueArray.
2854         (dbus_gtype_from_signature_iter): Return G_TYPE_VALUE_ARRAY for
2855         structures.
2856         (signature_iter_to_g_type_array): Don't call
2857         signature_iter_to_g_type_struct.
2858         (signature_iter_to_g_type_struct): Delete.
2859         (dbus_gvalue_to_signature): Delete.
2860         (dbus_gvalue_to_signature): New function with same name as other
2861         one; we can convert structures to signatures.
2862         (demarshal_valuearray): New function.
2863         (get_type_demarshaller): Use it.
2864         (demarshal_recurse): Delete.
2865         (marshal_proxy): New function.
2866         (marshal_map): Warn if we can't determine signature from type.
2867         (marshal_collection_ptrarray): Ditto.
2868         (marshal_collection_array): Ditto.
2869         (get_type_marshaller): Use marshal_valuearray.
2870         (marshal_recurse): Delete.
2871         (_dbus_gvalue_test): Add some tests.
2872
2873         * dbus/dbus-glib.h (struct _DBusGValueIterator): 
2874         (dbus_g_value_get_g_type, DBUS_TYPE_G_VALUE)
2875         (dbus_g_value_open, dbus_g_value_iterator_get_value)
2876         (dbus_g_value_iterator_get_values, dbus_g_value_iterator_recurse)
2877         (dbus_g_value_free): Remove prototypes.
2878
2879         * glib/dbus-binding-tool-glib.c (dbus_g_type_get_lookup_function): Handle
2880         G_TYPE_VALUE_ARRAY.
2881
2882         * glib/examples/example-service.c:
2883         * glib/examples/example-client.c: Implement GetTuple.
2884
2885         * test/glib/test-dbus-glib.c:
2886         * test/glib/test-service-glib.c:
2887         * test/glib/test-service-glib.xml: Add structure tests.
2888
2889 2005-07-10  Colin Walters  <walters@verbum.org>
2890
2891         * doc/TODO: Knock off some GLib items with this patch.
2892
2893         * glib/dbus-gvalue-utils.c (_dbus_gtype_can_signal_error) 
2894         (_dbus_gvalue_signals_error): New functions.
2895
2896         * glib/dbus-gvalue-utils.h: Prototype them.
2897
2898         * glib/dbus-gobject.c (arg_iterate): Update to handle return vals
2899         and change to not output const/retval flags for input args.  All
2900         callers updated.
2901         (invoke_object_method): Refactor to handle return values.  Add
2902         some more comments in various places.  Remove debug g_print.
2903
2904         * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_RETURNVAL): New.
2905
2906         * glib/dbus-binding-tool-glib.c (dbus_g_type_get_marshal_name):
2907         Handle G_TYPE_NONE.
2908         (compute_gsignature): New function; refactored from code from
2909         compute_marshaller and compute_marshaller_name.  Enhance to
2910         handle return values and async ops more cleanly.  Update for
2911         async ops returning NONE instead of BOOLEAN.
2912         (compute_marshaller, compute_marshaller_name): Call compute_gsignature
2913         and output appropriate string.
2914         (generate_glue): Handle return value annotation.  Also don't dump
2915         constness flag for input arguments.
2916
2917         * glib/Makefile.am (DBUS_GLIB_INTERNALS): New variable; contains
2918         files shared between installed library and utilities.
2919         (libdbus_glib_1_la_SOURCES): Move some stuf into DBUS_GLIB_INTERNALS.
2920         (libdbus_gtool_la_SOURCES): Suck in DBUS_GLIB_INTERNALS so the
2921         binding tool can access gtype utility functions.
2922
2923         * test/glib/test-service-glib.c: 
2924         * test/glib/test-service-glib.xml: 
2925         * test/glib/test-dbus-glib.c: Add some tests for return values.
2926
2927 2005-07-09  Colin Walters  <walters@verbum.org>
2928
2929         * glib/dbus-gparser.c (parse_annotation): Add annotations to
2930         argument if available, not method.
2931
2932         * glib/dbus-gobject.c (arg_iterate): More verbose warnings.
2933         (invoke_object_method): First, remove some redundant
2934         GValues (object_value, error_value) in favor of working on
2935         array directly.  Second, rework constness to be less buggy.
2936         Now we iterate directly over the argument metadata instead
2937         of parallel iterating over output signature and metadata.
2938
2939         * glib/dbus-glib-tool.h: Add INVALID_ANNOTATION error.
2940
2941         * glib/dbus-binding-tool-glib.c (generate_glue): Barf on const
2942         annotation on input args.
2943         
2944 2005-07-09  Colin Walters  <walters@verbum.org>
2945
2946         * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_CONST):
2947         Define.
2948
2949         * glib/dbus-binding-tool-glib.c (generate_glue): Handle Const
2950         annotation.
2951
2952         * glib/dbus-gobject.c (arg_iterate): Update to parse constval too.
2953         (method_dir_signature_from_object_info): Handle arg_iterate change.
2954         (write_interface): Ditto.
2955         (lookup_object_info): Don't barf if format_version is > 0.
2956         (invoke_object_method): Handle arg constness.
2957
2958         * glib/dbus-gidl.c (struct ArgInfo): Add annotations.
2959         (arg_info_new): Create.
2960         (arg_info_unref): Destroy.
2961         (arg_info_get_annotations, arg_info_get_annotation) 
2962         (arg_info_add_annotation): New functions.
2963
2964         * glib/dbus-gidl.h: Prototype them.
2965
2966         * glib/dbus-gparser.c (parse_annotation): Allow annotations in
2967         args, disallow them in properties.
2968         (parse_annotation): Handle arg annotations.
2969
2970         * test/glib/test-service-glib.xml: 
2971         * test/glib/test-service-glib.c: Update to make some methods
2972         const.
2973
2974 2005-07-08  Colin Walters  <walters@verbum.org>
2975
2976         * test/glib/test-service-glib.xml: 
2977         * test/glib/test-service-glib.c:
2978         * test/glib/test-dbus-glib.c: Test a{sv}.
2979
2980         * glib/examples/statemachine/statemachine.c:
2981         * glib/examples/statemachine/statemachine-server.c:
2982         * glib/examples/statemachine/statemachine-client.c: Fix some bugs,
2983         add progress bar, etc.
2984
2985         * glib/dbus-gvalue.c (register_array, register_dict): Delete; not
2986         needed anymore due to generic array/map marshalling.
2987         (dbus_g_value_types_init): Don't register basic arrays or the
2988         string/string hash.
2989         (dbus_gtype_from_signature_iter): Don't try to recurse into
2990         variants.
2991         (dbus_gtype_to_signature): Check collection/map before type
2992         metadata.
2993         (demarshal_garray_basic): Renamed to demarshal_collection_array.
2994         (demarshal_ghashtable): Renamed to demarshal_map; fix to use new
2995         generic map creation/append functions instead of hash table
2996         specifically.
2997         (get_type_demarshaller): Handle maps.
2998         (demarshal_collection): Dispatch on collection type to either
2999         demarshal_collection_ptrarray or demarshal_collection_array.
3000         (get_type_marshaller): Handle maps.
3001         (marshal_collection): Dispatch collection type to either
3002         marshal_collection_ptrarray or marshal_collection_array.
3003         (_dbus_gvalue_test): New test.
3004
3005         * glib/dbus-gvalue-utils.c (unset_and_free_g_value): New function.
3006         (hash_free_from_gtype): Use it to free GValues.
3007         (hashtable_append): New function.
3008         (ptrarray_append): Fix prototype.
3009         (slist_append): Ditto.
3010         (_dbus_gvalue_utils_test): Extend tests.
3011
3012         * glib/dbus-gtype-specialized.c
3013         (dbus_g_type_specialized_init_append): Renamed from
3014         dbus_g_type_specialized_collection_init_append.  Remove const from
3015         value, since we steal it.
3016         (dbus_g_type_specialized_map_append): New function.
3017
3018         * glib/dbus-gtype-specialized.h: Update prototypes.
3019         Add DBusGTypeSpecializedMapAppendFunc.
3020
3021         * glib/dbus-gtest.c (dbus_glib_internal_do_not_use_run_tests): Run
3022         _dbus_gvalue_test.
3023         
3024         * glib/dbus-gtest.h: Prototype it.
3025
3026 2005-07-08  Ross Burton  <ross@openedhand.com>
3027
3028         * dbus/dbus-glib.h:
3029         Add DBysGAsyncData for the async bindings.
3030
3031         * glib/dbus-binding-tool-glib.c:
3032         Re-enable the async bindings.
3033
3034         * test/glib/test-dbus-glib.c:
3035         Add a test for the generated async bindings.
3036
3037 2005-07-08  Colin Walters  <walters@verbum.org>
3038
3039         * doc/TODO: Update GLib todo bits, also add a post-1.0 TODO for a
3040         connection concept.
3041         
3042 2005-07-08  Colin Walters  <walters@verbum.org>
3043         
3044         * tools/Makefile.am: Kill of print-introspect in favor of using
3045         dbus-send --print-reply=literal.
3046
3047         * test/glib/test-service-glib.xml: 
3048         * test/glib/test-service-glib.c (my_object_get_objs): New test
3049         for "ao".
3050
3051         * test/glib/test-dbus-glib.c (echo_received_cb): Free echo data.
3052         (main): Test GetObjs.
3053
3054         * glib/examples/statemachine/Makefile.am:
3055         * glib/examples/statemachine/sm-marshal.list:
3056         * glib/examples/statemachine/statemachine-client.c:
3057         * glib/examples/statemachine/statemachine-server.c:
3058         * glib/examples/statemachine/statemachine-server.xml:
3059         * glib/examples/statemachine/statemachine.c:
3060         * glib/examples/statemachine/statemachine.h:
3061         * glib/examples/statemachine/statemachine.xml:
3062
3063         New example.
3064
3065         * glib/examples/example-service.c (main): Move invocation
3066         of dbus_g_object_type_install_info earlier, to emphasize it
3067         should only be done once.
3068
3069         * glib/examples/example-signal-emitter.c (main): Ditto.
3070
3071         * glib/examples/Makefile.am (SUBDIRS): Include statemachine.
3072
3073         * glib/dbus-gvalue.h (dbus_gtype_to_signature)
3074         (dbus_gvalue_marshal): Update prototypes.
3075
3076         * glib/dbus-gvalue.c: Update all marshalling functions to take
3077         const GValue instead of GValue.
3078         (signature_iter_to_g_type_array): Return a GPtrArray for nonfixed
3079         types.
3080         (dbus_gvalue_to_signature): Update for dbus_gtype_to_signature
3081         change.
3082         (dbus_gtype_to_signature): Handle generic collecitons and maps.
3083         Return a newly-allocated string.
3084         (demarshal_proxy, demarshal_object_path, demarshal_object)
3085         (demarshal_strv, demarshal_ghashtable): Set error, don't assert if
3086         we get the wrong types from message.
3087         (get_type_demarshaller): New function, extracted from
3088         dbus_gvalue_demarshal.
3089         (demarshal_collection): New function, demarshals generic
3090         collection.
3091         (dbus_gvalue_demarshal): Just invoke result of
3092         get_type_demarshaller.  Throw error if we don't have one.
3093         (marshal_garray_basic): Abort on OOM.
3094         (get_type_marshaller): New function, extracted from
3095         dbus_gvalue_marshal.
3096         (collection_marshal_iterator, marshal_collection): New functions;
3097         implements generic marshalling for an iteratable specialized
3098         collection.
3099         (dbus_gvalue_marshal): Just invoke result of get_type_marshaller.
3100
3101         * glib/dbus-gvalue-utils.c (gvalue_from_ptrarray_value): Handle
3102         G_TYPE_STRING.
3103         (ptrarray_value_from_gvalue): Ditto.
3104         (ptrarray_append, ptrarray_free): New functions.
3105         (slist_constructor, slist_iterator, slist_copy_elt, slist_copy) 
3106         (slist_append, slist_end_append, slist_free): New functions.
3107         (dbus_g_type_specialized_builtins_init): Add append fuctions
3108         for GPtrArray and GSList.  Register GSList.
3109         (test_specialized_hash, _dbus_gvalue_utils_test): New functions.
3110
3111         * glib/dbus-gtype-specialized.h (DBusGTypeSpecializedAppendContext):
3112         New.
3113         (dbus_g_type_specialized_collection_init_append)
3114         (dbus_g_type_specialized_collection_append)
3115         (dbus_g_type_specialized_collection_end_append): Prototype.
3116         (DBusGTypeSpecializedCollectionVtable): Add append_func and
3117         end_append_func.
3118
3119         * glib/dbus-gtype-specialized.c (dbus_g_type_specialized_collection_init_append) 
3120         (dbus_g_type_specialized_collection_append) 
3121         (dbus_g_type_specialized_collection_end_append): New functions.
3122         (dbus_g_type_map_value_iterate): Take const GValue.
3123         (dbus_g_type_collection_value_iterate): Ditto.
3124
3125         * glib/dbus-gtest.c (dbus_glib_internal_do_not_use_run_tests): Run
3126         _dbus_gvalue_utils_test.
3127         
3128         * glib/dbus-gtest.h: Prototype it.
3129
3130         * glib/dbus-gproxy.c (dbus_g_proxy_manager_filter): Avoid
3131         using uninitialized owner_list.
3132         (dbus_g_proxy_begin_call_internal): Move return_if_fail to
3133         public API.
3134         (dbus_g_proxy_end_call_internal): Update to use error set
3135         from dbus_gvalue_demarshal instead of setting it here.
3136         (dbus_g_proxy_begin_call): Move return_if_fail here.
3137
3138         * glib/dbus-gobject.c (write_interface): Update for
3139         dbus_gtype_to_signature returning new string.
3140
3141         * configure.in: Add glib/examples/statemachine.
3142
3143 2005-07-08  Joe Shaw  <joeshaw@novell.com>
3144
3145         * configure.in: Add a configure option, --with-console-auth-dir
3146         
3147         * dbus/dbus-sysdeps-util.c (_dbus_user_at_console): Use the
3148         new setting.  Patch from Kay Sievers.
3149
3150 2005-07-06  Colin Walters  <walters@verbum.org>
3151
3152         * dbus/dbus-glib.h (DBusGPendingCall, DBusGPendingCallNotify)
3153         (DBUS_TYPE_G_PENDING_CALL, dbus_g_pending_call_get_g_type)
3154         (dbus_g_pending_call_ref, dbus_g_pending_call_unref): Delete.
3155         (dbus_g_pending_call_set_notify, dbus_g_pending_call_cancel):
3156         Delete in favor of dbus_g_proxy_begin_call and
3157         dbus_g_proxy_cancel_call.
3158         (DBusGProxyCall, DBusGProxyCallNotify): New.
3159         (dbus_g_proxy_begin_call): Change prototype to take callback, user
3160         data, and destroy function.  This replaces
3161         dbus_g_pending_call_set_notify.
3162         (dbus_g_proxy_cancel_call): Prototype.
3163         (DBusGAsyncData): Delete, shouldn't be needed anymore.
3164
3165         * glib/dbus-gproxy.c (struct _DBusGProxy): Add call_id_counter and
3166         pending_calls map.
3167         (struct _DBusGProxyManager): Add bus_proxy member, which is an
3168         internal proxy for calls to the bus. Remove
3169         pending_nameowner_calls, now the internal proxy keeps track.
3170         (dbus_g_proxy_manager_unref): Unref bus proxy, remove reference to
3171         pending_nameowner_calls.
3172         (got_name_owner_cb): Update prototype, and use
3173         dbus_g_proxy_end_call.
3174         (got_name_owner_cb): Remove reference to pending_nameowner_calls.
3175         (dbus_g_proxy_manager_register): Delete directly libdbus code in
3176         favor of using internal proxy.
3177         (dbus_g_proxy_manager_unregister): Update to use
3178         dbus_g_proxy_cancel_call for any pending GetNameOwner call.
3179         (dbus_g_proxy_init): Initialize pending calls map.
3180         (dbus_g_proxy_constructor): New.
3181         (dbus_g_proxy_class_init): Add get/set property functions,
3182         constructor, and add NAME, PATH, and INTERFACE properties.
3183         (cancel_pending_call): New function.
3184         (dbus_g_proxy_dispose): Iterate over any outstanding calls and
3185         cancel them.
3186         (dbus_g_proxy_set_property, dbus_g_proxy_get_property): New.
3187         (GPendingNotifyClosure): New structure.
3188         (d_pending_call_notify, d_pending_call_free): Moved here from
3189         dbus-glib.c.
3190         (DBUS_G_VALUE_ARRAY_COLLECT_ALL): Moved around to satisfy function
3191         ordering.
3192         (manager_begin_bus_call): New internal function for talking to
3193         internal bus proxy.
3194         (dbus_g_proxy_new): Construct object using GObjet properties.
3195         (dbus_g_proxy_begin_call_internal): Update to take user data, etc.
3196         Create closure of same, and insert call into map of pending calls.
3197         (dbus_g_proxy_end_call_internal): Take call id instead of pending
3198         call.  Look up pending call in current set.  Remove it when we've
3199         completed.
3200         (dbus_g_pending_call_end, dbus_g_proxy_end_call_internal): Delete.
3201         (dbus_g_proxy_begin_call): Change API to take callback, user data,
3202         and destroy function directly.
3203         (dbus_g_proxy_end_call): Update to take DBusGProxyCall.
3204         (dbus_g_proxy_call): Invoke with NULL callback.
3205         (dbus_g_proxy_cancel_call): New function, replaces
3206         dbus_g_pending_call_cancel.
3207
3208         * glib/dbus-gparser.c (validate_signature): Fix call to
3209         dbus_set_g_error.
3210
3211         * glib/dbus-gobject.c (dbus_g_object_type_dbus_metadata_quark):
3212         New quark for attaching metadata to GType.
3213         (info_hash): Delete.
3214         (lookup_object_info): Look up using quark.
3215         (dbus_g_object_type_install_info): Check that a type is classed,
3216         not that it's an object.  Also just install type data using quark
3217         instead of using global hash.
3218
3219         * glib/dbus-glib.c (dbus_g_pending_call_ref) 
3220         (dbus_g_pending_call_unref, dbus_pending_call_get_g_type)
3221         (GPendingNotifyClosure): Delete.
3222         (d_pending_call_notify, d_pending_call_free): Move to dbus-gproxy.c.
3223         (dbus_g_pending_call_set_notify, dbus_g_pending_call_cancel): Delete.
3224
3225         * glib/dbus-binding-tool-glib.c (generate_client_glue): Disable async
3226         client method generation until we can fix it...
3227         
3228         * tools/dbus-viewer.c (load_child_nodes): Use dbus_g_proxy_call.
3229         (load_from_service_thread_func): Ditto.
3230
3231         * tools/dbus-names-model.c (struct NamesModel): Hold
3232         DBusGProxyCall.
3233         (have_names_notify): Update prototype, use
3234         dbus_g_proxy_cancel_call.
3235         (names_model_reload): Update for new dbus_g_proxy_begin_call API.
3236
3237         * tools/dbus-monitor.c (filter_func): Update for print_message
3238         API change.
3239
3240         * test/glib/test-dbus-glib.c: Add more tests for async
3241         invocations.  Update many begin_call/end_call pairs to just use
3242         dbus_g_proxy_call.
3243
3244         * tools/dbus-send.c (main): Add --print-reply=literal mode.  This
3245         allows us to dump print-introspect.c.
3246
3247         * tools/dbus-print-message.h (print_message): Add literal argument
3248         to print_message which is intended to allow printing arguments without
3249         metadata like "string=".
3250
3251         * tools/dbus-print-message.c (print_iter): Add literal argument.
3252         (print_message): Allow printing string messages literally.
3253
3254 2005-07-05  Colin Walters  <walters@verbum.org>
3255
3256         * glib/dbus-gproxy.c (marshal_dbus_message_to_g_marshaller):
3257         Remove value refcount leak, original patch from Jorn Baayen
3258         <jorn@openedhand.com>.  Also remove useless extra value in favor
3259         of prepending to value array directly.
3260
3261 2005-07-02  Colin Walters  <walters@verbum.org>
3262
3263         * glib/dbus-gmain.c (_dbus_gmain_test): Fix test.
3264
3265 2005-07-01  Colin Walters  <walters@verbum.org>
3266
3267         Patch from Jonathan Matthew <jonathan@kaolin.hn.org>
3268         
3269         * glib/dbus-gvalue.c (basic_typecode_to_gtype): Fix return type.
3270         (dbus_g_value_types_init): Marshal G_TYPE_CHAR as DBUS_TYPE_BYTE,
3271         G_TYPE_LONG as DBUS_TYPE_INT32, G_TYPE_ULONG as DBUS_TYPE_UINT32,
3272         and G_TYPE_FLOAT as DBUS_TYPE_DOUBLE.
3273
3274 2005-06-30  Colin Walters  <walters@verbum.org>
3275
3276         * test/glib/test-dbus-glib.c:
3277         * test/glib/test-service-glib.c:
3278         * test/glib/test-service-glib.xml: Update tests for new error
3279         setting bits, also add async tests (patch from Ross Burton).
3280
3281         * test/glib/Makefile.am (test_service_glib_LDADD): Add
3282         DBUS_GLIB_THREADS_LIBS.
3283
3284         * glib/dbus-gproxy.c (get_name_owner)
3285         (dbus_g_pending_call_end_valist): Ditto.
3286
3287         * glib/dbus-gobject.c (error_metadata): New mapping from GError
3288         domain (GQuark) to DBusGErrorInfo.  
3289         (gerror_domaincode_to_dbus_error_name): Attempt to look up error
3290         quark in error_metadata.  Take message interface as default
3291         error message interface.
3292         (gerror_to_dbus_error_message): Pass message interface.
3293         (dbus_set_g_error): Resurrected.
3294         (dbus_g_error_info_free): New function.
3295         (dbus_g_object_type_install_info): Use g_type_class_ref instead
3296         of _peek to actually create the object class if it hasn't been
3297         created yet.
3298         (dbus_g_error_domain_register): New function.
3299
3300         * glib/dbus-gmain.c (dbus_g_bus_get): Switch to dbus_set_g_error.
3301
3302         * glib/dbus-gparser.c (validate_signature): Ditto.
3303
3304         * dbus/dbus-glib.h (dbus_g_error_set): Delete.
3305         (dbus_g_error_domain_register): Prototype.
3306
3307         * glib/dbus-glib.c (dbus_g_error_set): Delete.
3308         Update tests.
3309
3310 2005-06-29  Colin Walters  <walters@verbum.org>
3311
3312         * dbus/dbus-glib.h: Delete DBUS_TYPE_G_PROXY_ARRAY.  Add
3313         DBUS_TYPE_G_OBJECT_PATH.
3314
3315         * glib/dbus-gvalue.c (dbus_g_value_types_init): Remove marshallers
3316         for G_TYPE_OBJECT and DBUS_TYPE_G_PROXY_ARRAY (the latter should
3317         be handled more generically).  Add DBUS_TYPE_G_OBJECT_PATH.
3318         (dbus_g_object_path_get_g_type): New function.
3319         (dbus_gtype_from_signature_iter): Map DBUS_TYPE_OBJECT_PATH
3320         to DBUS_TYPE_G_OBJECT_PATH by default.
3321         (demarshal_proxy): Remove unused name variable.
3322         (demarshal_object_path, marshal_object_path): New functions.
3323         (demarshal_proxy_array, marshal_proxy_array): Delete.
3324         
3325         * glib/dbus-binding-tool-glib.c (dbus_g_type_get_c_name): Map
3326         DBUS_TYPE_G_OBJECT_PATH to char *.
3327         (dbus_g_type_get_lookup_function): Map builtin
3328         DBUS_TYPE_G_OBJECT_PATH.
3329
3330         * test/glib/test-dbus-glib.c
3331         * test/glib/test-service-glib.c (my_object_objpath): 
3332         Adapt tests to new object path marshalling.
3333
3334 2005-06-29  John (J5) Palmieri  <johnp@redhat.com>
3335
3336         * configure.in: force check for Python >= 2.4
3337
3338 2005-06-29  Colin Walters  <walters@verbum.org>
3339         
3340         Patch from Ross Burton <ross@openedhand.com>
3341         
3342         * glib/dbus-gobject.c (invoke_object_method): Unset object
3343         value in all cases, not only in async case.
3344
3345 2005-06-29  Colin Walters  <walters@verbum.org>
3346
3347         * glib/dbus-gproxy.c (struct _DBusGProxy): Add new member
3348         name_call for keeping track of any outgoing GetNameOwner call.
3349         Also add for_owner and associated.
3350         (struct _DBusGProxyManager): Add owner_names, which is hash table
3351         that maps a base name to a list of names it owns (that we're
3352         interested in).  Add pending_nameowner_calls which is a list of
3353         all outstanding GetNameOwner; avoids us having to iterate over
3354         every proxy.  Add unassociated_proxies which keeps track of name
3355         proxies with no associated name owner.
3356         (dbus_g_proxy_manager_unref): Destroy owner_names.
3357         (struct DBusGProxyNameOwnerInfo): New struct for keeping track of
3358         name refcounts.
3359         (find_name_in_info, name_owner_foreach)
3360         (dbus_g_proxy_manager_lookup_name_owner, insert_nameinfo)
3361         (dbus_g_proxy_manager_monitor_name_owner)
3362         (dbus_g_proxy_manager_unmonitor_name_owner)
3363         (unassociate_proxies, dbus_g_proxy_manager_replace_name_owner):
3364         New functions; they manipulate the owner_names mapping.
3365         (got_name_owner_cb): New function.
3366         (get_name_owner): New function, extracted from
3367         dbus_g_proxy_new_for_name_owner.
3368         (dbus_g_proxy_manager_register): For now we need to keep track of
3369         all NameOwnerChanged.  Also if the proxy is for a name, if we
3370         don't already know the name owner, queue a new GetNameOwner
3371         request and add it to our list of unassociated proxies.  Otherwise
3372         inc the refcount.
3373         (dbus_g_proxy_manager_unregister): If this proxy is for a name,
3374         cancel any pending GetNameOwner call, etc.
3375         (dbus_g_proxy_manager_filter): Handle NameOwnerChanged.  Also use
3376         the owner_names mapping to look up the current names for the
3377         signal source, and dispatch to any proxies for that name.
3378         (dbus_g_proxy_new): Initialize new members.
3379         (dbus_g_proxy_new_for_name): Delete unused proxy variable.
3380         (dbus_g_proxy_new_for_name_owner): Use get_name_owner.
3381         (dbus_g_pending_call_end_valist): New function, extracted from
3382         dbus_g_proxy_end_call_internal.  Useful when we don't have a proxy
3383         but want to use the GLib infrastructure.  Also note how many
3384         arguments in reply were over.
3385         (dbus_g_pending_call_end): New function, just call
3386         dbus_g_pending_call_end_valist.
3387         (dbus_g_proxy_end_call_internal): Just call
3388         dbus_g_pending_call_end_valist.
3389
3390         * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller): Fix lookup
3391         of builtin marshaller for STRING_STRING_STRING.
3392
3393         * test/glib/test-dbus-glib.c: 
3394         * test/glib/test-service-glib.c:
3395         * test/glib/test-service-glib.xml:
3396         Extend tests to cover name proxies, destruction of owner proxies,
3397         etc.
3398         
3399         * glib/examples/example-signal-recipient.c
3400         (dbus_g_proxy_new_for_name_owner): Create a name proxy.
3401         
3402         * tools/dbus-send.c (main): Print D-BUS error name in addition
3403         to message.
3404
3405 2005-06-28  John (J5) Palmieri  <johnp@redhat.com>
3406
3407         * python/dbus_bindings.pyx.in (cunregister_function_handler,
3408         cmessage_function_handler): Patch from 
3409         Anthony Baxter <anthony@interlink.com.au> fixes threading problems
3410         by using the Py_GILState_Ensure/Release to synchronize with the
3411         python runtime.
3412         
3413 2005-06-28  Ray Strode  <rstrode@redhat.com>
3414
3415         *  dbus/dbus-spawn.c (_dbus_babysitter_unref): kill
3416         babysitter helper process on last unref, bug #2813.
3417
3418 2005-06-27  Colin Walters  <walters@verbum.org>
3419
3420         * test/glib/test-dbus-glib.c: 
3421         * test/glib/test-service-glib.c:
3422         * test/glib/test-service-glib.xml:
3423         Test hash table signal emitting.
3424
3425         * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller): Convert
3426         types to their fundamental basis types, since this is what
3427         marshallers operate on.  Also add an entry for VOID__BOXED.
3428         (dbus_g_object_register_marshaller_array): Convert to fundamental.
3429
3430 2005-06-26  Havoc Pennington  <hp@redhat.com>
3431
3432         * doc/dbus-tutorial.xml: fix names of interface/service/path, fix
3433         from Don Park
3434
3435 2005-06-26  Colin Walters  <walters@verbum.org>
3436
3437         * glib/dbus-glib.c (dbus_set_g_error): Delete.
3438         (dbus_g_error_set): New public function from its ashes; used by
3439         both service-side method implementation and GLib bindings
3440         internals.
3441         (dbus_g_error_has_name, dbus_g_error_get_name): New function.
3442         (_dbus_glib_test): Add some tests.
3443
3444         * test/glib/test-dbus-glib.c (main): Test dbus_g_error_has_name.
3445
3446         * test/glib/test-service-glib.c (my_object_throw_error): Use
3447         dbus_g_error_set.
3448
3449         * glib/dbus-gobject.c (gerror_to_dbus_error_message): Handle
3450         errors thrown by dbus_g_error_set.
3451
3452         * glib/dbus-gmain.c (dbus_g_bus_get): Change to dbus_g_error_set.
3453
3454         * glib/dbus-gparser.c (validate_signature): Ditto.
3455
3456         * glib/dbus-gproxy.c (dbus_g_proxy_new_for_name_owner) 
3457         (dbus_g_proxy_end_call_internal): Ditto.
3458
3459         * glib/Makefile.am: Generate dbus-glib-error-switch.h, which
3460         converts DBUS_ERROR_x to DBUS_GERROR_x.
3461         (libdbus_glib_1_la_SOURCES, BUILT_SOURCES, CLEANFILES): Add it.
3462
3463         * doc/TODO: Remove error TODO.
3464
3465         * doc/dbus-tutorial.xml: Update with documentation about error
3466         handling.
3467
3468         * dbus/make-dbus-glib-error-enum.sh: Tighten up regexp to make
3469         sure we only change DBUS_ERROR to DBUS_GERROR, not all ERROR to
3470         GERROR.  Also add DBUS_GERROR_REMOTE_EXCEPTION.
3471
3472 2005-06-22  Colin Walters  <walters@verbum.org>
3473         
3474         Patch from Ross Burton <ross@openedhand.com>
3475
3476         * glib/dbus-gobject.c (dbus_g_method_return): Free out_sig.
3477
3478 2005-06-20  Colin Walters  <walters@verbum.org>
3479
3480         * configure.in: Add glib/examples.
3481
3482         * glib/Makefile.am: Add examples/
3483
3484         * glib/examples/.cvsignore
3485         * glib/examples/Makefile.am
3486         * glib/examples/example-client.c
3487         * glib/examples/example-service.c
3488         * glib/examples/example-service.xml
3489         * glib/examples/example-signal-emitter.c
3490         * glib/examples/example-signal-emitter.xml
3491         * glib/examples/example-signal-recipient.c:
3492         New files; GLib binding examples, ported from
3493         python/examples.
3494
3495 2005-06-20  Colin Walters  <walters@verbum.org>
3496
3497         * dbus/dbus-glib.h: 
3498         * glib/dbus-gproxy.c: Rename dbus_g_proxy_invoke to
3499         dbus_g_proxy_call.
3500
3501         * glib/dbus-binding-tool-glib.c: 
3502         * doc/dbus-tutorial.xml: 
3503         * test/glib/test-dbus-glib.c: Update for rename.
3504         
3505 2005-06-20  Colin Walters  <walters@verbum.org>
3506
3507         Patch suggested by Ross Burton <ross@openedhand.com>
3508
3509         * glib/dbus-gobject.c (export_signals): Free signal name.
3510         (g_value_init): Use G_VALUE_NOCOPY_CONTENTS to plug
3511         memory leak.  Add a bit of documentation.
3512         (dbus_g_method_return_error): Free context, and note we do
3513         so.
3514
3515 2005-06-18  Murray Cumming  <murrayc@murrayc.com>
3516
3517         * dbus/dbus-glib.h:
3518         * glib/dbus-gobject.c:
3519         * glib/dbus-gproxy.c:
3520         * glib/dbus-gvalue.c: Predeclare structs as 
3521         typedef struct _Something Something instead of 
3522         typedef struct Something Something, so we can 
3523         redeclare the prototypes. Other GNOME libraries 
3524         do this already.
3525
3526 2005-06-17  Colin Walters  <walters@verbum.org>
3527
3528         * tools/dbus-names-model.c (have_names_notify): Fix call
3529         to dbus_g_proxy_end_call.
3530         
3531 2005-06-17  Colin Walters  <walters@verbum.org>
3532
3533         * glib/dbus-gproxy.c (dbus_g_proxy_emit_remote_signal): Don't
3534         spew warnings if we get malformed remote signals.
3535
3536         * glib/dbus-gobject.c (propsig_iterate): New function.
3537         (lookup_object_info): New function, extracted from
3538         lookup_object_and_method.
3539         (introspect_properties, introspect_signals): Delete; these
3540         are merged into write_interface.
3541         (write_interface): Write out signals and properties here;
3542         dump the org.gtk.object stuff and use the interface given
3543         in the introspection data blob.  Also fix up property XML.
3544         (lookup_values): New function.
3545         (introspect_interfaces): Gather a mapping from interface to a
3546         list of its methods, signals, and properties, then write out
3547         each interface.
3548         (lookup_object_and_method): Use lookup_object_info.
3549         (struct DBusGSignalClosure): Add interface.
3550         (dbus_g_signal_closure_new): Add interface. Don't dup signame;
3551         we can just use the constant data.
3552         (dbus_g_signal_closure_finalize): Don't free signal name.
3553         (signal_emitter_marshaller): Use interface from signal closure.
3554         (export_signals): Only export signals mentioned in introspection
3555         blob.
3556         (dbus_g_connection_register_g_object): Warn if we have no
3557         introspection data for an object.
3558         (funcsig_equal): Remove unused variable.
3559         (dbus_g_object_register_marshaller): Take varargs instead of
3560         list.
3561         (dbus_g_object_register_marshaller_array): New function,
3562         extracted from old dbus_g_object_register_marshaller.
3563
3564         * glib/dbus-binding-tool-glib.c (struct DBusBindingToolCData): Add
3565         signals and property data.
3566         (write_quoted_string): New function, extracted from generate_glue.
3567         (generate_glue): Write signals and properties to introspection
3568         blob.
3569
3570         * dbus/dbus-glib.h (struct DBusGObjectInfo): Include
3571         exported_signals and exported_properties.
3572         (dbus_g_object_register_marshaller): Update prototype.
3573         (dbus_g_object_register_marshaller_array): Prototype.
3574         
3575         * test/glib/test-dbus-glib.c: Extend testing to cover new signals.
3576
3577         * test/glib/test-service-glib.c: Add new test signals and method
3578         to emit them.
3579
3580         * test/glib/test-service-glib.xml: Add some test signals.
3581
3582         * test/glib/Makefile.am (BUILT_SOURCES): Add my-object-marshal.c
3583         and my-object-marshal.h
3584         (test_service_glib_SOURCES, test_dbus_glib_SOURCES): Add
3585         my-object-marshal.c.
3586         (my-object-marshal.c, my-object-marshal.h): Implement.
3587
3588         * test/glib/.cvsignore: Update.
3589
3590         * doc/TODO: Remove two GLib TODO items fixed by this
3591         patch.
3592
3593 2005-06-16  Colin Walters  <walters@verbum.org>
3594
3595         * doc/TODO: Update for GLib bindings.
3596         
3597 2005-06-16  Colin Walters  <walters@verbum.org>
3598
3599         * glib/dbus-binding-tool-glib.c:
3600         * glib/dbus-gobject.c:
3601         * glib/dbus-gproxy.c:  Add Nokia copyright; Patch
3602         from Ross Burton, for his GLib bindings work.
3603
3604 2005-06-16  Colin Walters  <walters@verbum.org>
3605
3606         * glib/dbus-gobject.c (funcsig_hash, funcsig_equal): Use n_params
3607         to iterate instead of walking to G_TYPE_INVALID.
3608
3609         Patch based on a patch from Ryan Gammon.
3610
3611 2005-06-16  Colin Walters  <walters@verbum.org>
3612
3613         * bus/bus.c (bus_context_new): Set parser to NULL
3614         after we unref it (Patch from Chris Boscolo, #2174).
3615         
3616 2005-06-16  Colin Walters  <walters@verbum.org>
3617
3618         * python/dbus_bindings.pyx.in: Import size_t,
3619         __int64_t, __uint64_t, and __signed.
3620
3621         * dbus/dbus-sysdeps.c <HAVE_CMSGCRED> (write_credentials_byte):
3622         Define cmsg struct, output it.
3623         (_dbus_read_credentials_unix_socket):
3624         Use cmsg struct.
3625         
3626         Patch from Joe Markus Clarke for FreeBSD support.
3627         
3628 2005-06-16  Colin Walters  <walters@verbum.org>
3629
3630         * tools/dbus-send.c (append_array): Use strtok.
3631         (append_dict): New function.
3632         (type_from_name): New function, extracted from main.
3633         (main): Handle sending dicts.
3634
3635         * tools/dbus-print-message.c (print_iter): Print dict
3636         entries.
3637         
3638 2005-06-16  Colin Walters  <walters@verbum.org>
3639
3640         * glib/dbus-gvalue.c (marshal_basic): Marshal NULL string
3641         values as the empty string (#2948).
3642         
3643 2005-06-16  Colin Walters  <walters@verbum.org>
3644
3645         * dbus/Makefile.am:
3646         * mono/doc/Makefile.am:
3647         * test/glib/Makefile.am:
3648
3649         Fix srcdir != builddir issues (Patch from Chris Wilson, #3477)
3650
3651 2005-06-16  Colin Walters  <walters@verbum.org>
3652
3653         * dbus/dbus-marshal-header.c (_dbus_header_load): Set
3654         header byte order from expected byte order (Patch from Chris Wilson, #3475).
3655
3656         * dbus/dbus-marshal-byteswap.c (byteswap_body_helper): 
3657         Increment pointer after swapping fixed array.  Add assertion
3658         for array length.
3659                 
3660 2005-06-15  Colin Walters  <walters@verbum.org>
3661
3662         * dbus/dbus-sysdeps.c <HAVE_CMSGCRED> (_dbus_read_credentials_unix_socket):
3663         Fix call to dbus_set_error.  (Patch from Michael Banck, #3461)
3664         
3665 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
3666
3667         * NEWS: Update to 0.34
3668
3669 2005-06-15  David Zeuthen  <davidz@redhat.com>
3670
3671         * configure.in (LT_CURRENT): Revert back to 1 as the library
3672         hasn't changed and we've certainly not committed to protocol
3673         stability yet.  All this does is to break ABI. See commit note
3674         from hp@redhat.com 2005-05-05 for details.
3675         
3676 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
3677
3678         * dbus/dbus-connection.c (_dbus_connection_peer_filter): New method 
3679         (_dbus_connection_run_builtin_filters): New method
3680         (dbus_connection_dispatch): Run the builtin filters which in turn
3681         runs the peer filter which handles Ping messages.
3682
3683         * doc/TODO: 
3684          - Ping isn't handled: This patch fixes it
3685          
3686          - Add a test case for the Ping message: added TODO item
3687
3688 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
3689
3690         * dbus/dbus-message.c:
3691         (dbus_message_has_path): New method
3692         (dbus_message_has_interface): New method
3693         (dbus_message_has_member): New method
3694
3695         * dbus/dbus/dbus-sysdeps.c (_dbus_check_dir_is_private_to_user):
3696         New method
3697
3698         * dbus/dbus-keyring.c (_dbus_keyring_reload): Check to see that 
3699         the keyring directory is private to the user
3700
3701         * doc/TODO:
3702          - The convenience functions in dbus-bus.h should perhaps have
3703          the signatures that they would have if they were autogenerated
3704          stubs. e.g. the acquire service function. We should also evaluate
3705          which of these functions to include, in light of the fact that
3706          GLib/Qt native stubs will probably also exist.: Punted
3707
3708          - add dbus_message_has_path(), maybe has_member/interface:
3709          fixed in this patch
3710
3711          - in dbus-keyring.c, enforce that the keyring dir is not
3712          world readable/writable: Fixed in this patch
3713
3714 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
3715
3716         * dbus/dbus-marshal-validate.h: Added a new validation
3717         error code DBUS_VALIDITY_UNKNOWN_OOM_ERROR = -4 for 
3718         out of memory errors when validating signitures
3719
3720         * dbus/dbus-marshal-header.c: use DBUS_VALIDITY_UNKNOWN_OOM_ERROR
3721         in places where we previously used DBUS_VALID and a FALSE return 
3722         value to indicate OOM
3723         
3724         * dbus/dbus-marshal-validate.c (_dbus_validate_signature_with_reason):
3725         Use a stack to track the number of elements inside containers.  The 
3726         stack values are then used to validate that dict entries have only two
3727         elements within them.
3728         (validate_body_helper): check the reason for failure when validating
3729         varients
3730         
3731         * dbus/dbus-message.c (load_message): use 
3732         DBUS_VALIDITY_UNKNOWN_OOM_ERROR in places where we previously used 
3733         DBUS_VALID and a FALSE return value to indicate OOM
3734
3735         * doc/TODO: remove "- validate dict entry number of fields" as this
3736         patch fixes it
3737
3738 2005-06-14  David Zeuthen  <davidz@redhat.com>
3739
3740         * bus/bus.c (process_config_every_time): Drop existing conf-dir
3741         watches (if applicable) and add new watches
3742
3743         * bus/main.c (signal_handler): Handle SIGIO if using D_NOTIFY
3744         (main): Setup SIGIO signal handler if using D_NOTIFY
3745
3746         * bus/config-parser.h: Add prototype bus_config_parser_get_conf_dirs
3747
3748         * bus/config-parser.c (struct BusConfigParser): Add conf_dirs list
3749         (merge_included): Also merge conf_dirs list
3750         (bus_config_parser_unref): Clear conf_dirs list
3751         (include_dir): Add directory to conf_dirs list
3752         (bus_config_parser_get_conf_dirs): New function
3753
3754         * bus/dir-watch.[ch]: New files
3755
3756         * bus/Makefile.am (BUS_SOURCES): Add dir-watch.[ch]
3757
3758         * configure.in: Add checks for D_NOTIFY on Linux
3759
3760 2005-06-14  Colin Walters  <walters@verbum.org>
3761
3762         * glib/dbus-binding-tool-glib.c:
3763         * glib/dbus-gobject.c:
3764         * glib/dbus-gvalue.c: Fix indentation and brace style.
3765         
3766 2005-06-14  Ross Burton <ross@openedhand.com>.
3767
3768         * glib/dbus-glib.h: Make DBusGMethodInvocation
3769         a private structure.  Rearrange prototypes a bit.
3770         
3771         * glib/dbus-gproxy.c (dbus_g_proxy_invoke): Add
3772         documentation for first_arg_type.
3773         
3774         * glib/dbus-gobject.c: Move DBusGMethodInvocation
3775         here, add documentation.  Move dbus_g_method_return
3776         and dbus_g_method_return_error into public API
3777         section.
3778
3779 2005-06-14  Colin Walters  <walters@verbum.org>
3780
3781         * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller):
3782         Add missing return statements, noticed by Ross Burton.
3783         
3784 2005-06-13  Ross Burton <ross@openedhand.com>.
3785
3786         * glib/dbus-gobject.c: Handle errors on message
3787         demarshalling by sending error message back.
3788         * glib/dbus-gvalue.c: Initialize return variables.
3789
3790 2005-06-13  Colin Walters  <walters@verbum.org>
3791
3792         * glib/Makefile.am: Fix thinko in last patch.
3793
3794 2005-06-13  Colin Walters  <walters@verbum.org>
3795
3796         * glib/Makefile.am: Move dbus-gtype-specialized.c
3797         and dbus-gtype-specialized.h into a _HEADERS variable,
3798         install them.
3799
3800 2005-06-12  Colin Walters  <walters@verbum.org>
3801
3802         Async signals and various bugfixes and testing by
3803         Ross Burton <ross@openedhand.com>.
3804
3805         * glib/dbus-gvalue.h: (struct DBusBasicGValue): Delete.
3806         (dbus_gvalue_genmarshal_name_from_type)
3807         (dbus_gvalue_ctype_from_type): Moved to dbus-binding-tool-glib.c.
3808         (dbus_gtype_to_dbus_type): Renamed to dbus_gtype_from_signature.
3809         (dbus_g_value_types_init, dbus_gtype_from_signature)
3810         (dbus_gtype_from_signature_iter, dbus_gtype_to_signature)
3811         (dbus_gtypes_from_arg_signature): New function prototypes.
3812         (dbus_gvalue_demarshal): Take context and error arguments.
3813         (dbus_gvalue_demarshal_variant): New function.
3814         (dbus_gvalue_demarshal_message): New function.
3815         (dbus_gvalue_store): Delete.
3816
3817         * glib/dbus-gvalue.c:
3818
3819         File has been almost entirely rewritten; now we special-case
3820         more types such as DBUS_TYPE_SIGNATURE, handle arrays and
3821         hash tables correctly, etc.  Full support for recursive values
3822         is not yet complete.
3823
3824         * glib/dbus-gproxy.c (dbus_g_proxy_class_init): Change last
3825         argument of signal to G_TYPE_POINTER since we now pass a
3826         structure.
3827         (lookup_g_marshaller): Delete in favor of
3828         _dbus_gobject_lookup_marshaller.
3829         (marshal_dbus_message_to_g_marshaller): Use
3830         _dbus_gobject_lookup_marshaller and dbus_gvalue_demarshal_message
3831         to handle remote signal callbacks.
3832         (dbus_g_proxy_new_from_proxy): New function; creates a new
3833         DBusGProxy by copying an existing one.
3834         (dbus_g_proxy_get_interface, dbus_g_proxy_set_interface)
3835         (dbus_g_proxy_get_path): New functions.
3836         (dbus_g_proxy_marshal_args_to_message): New function;
3837         factored out of existing code.
3838         (DBUS_G_VALUE_ARRAY_COLLECT_ALL): Collect all arguments
3839         from a varargs array.
3840         (dbus_g_proxy_begin_call_internal): New function.
3841         (dbus_g_proxy_end_call_internal): New function.
3842         (dbus_g_proxy_begin_call): Take GTypes instead of DBus types
3843         as arguments; simply invoke dbus_g_proxy_begin_call_internal
3844         after collecting args into value array.
3845         (dbus_g_proxy_end_call): Take GTypes instead of DBus types;
3846         invoke dbus_g_proxy_end_call_internal.
3847         (dbus_g_proxy_invoke): Simply invoke begin_call_interanl and
3848         end_call_internal.
3849         (dbus_g_proxy_call_no_reply): Take GTypes instead of DBus
3850         types.
3851         (array_free_all): New function.
3852         (dbus_g_proxy_add_signal): Take GTypes.
3853
3854         * glib/dbus-gobject.h:
3855         (_dbus_glib_marshal_dbus_message_to_gvalue_array): Delete.
3856         (_dbus_gobject_get_path, _dbus_gobject_lookup_marshaller):
3857         Prototype.
3858
3859         * glib/dbus-gobject.c: Add a global marshal_table hash which
3860         stores mappings from type signatures to marshallers.  Change lots
3861         of invocations of dbus_gtype_to_dbus_type to
3862         dbus_gtype_to_signature.
3863         (_dbus_glib_marshal_dbus_message_to_gvalue_array): Delete.
3864         (introspect_signals): Fix test for query.return_type.
3865         (set_object_property): Update invocation of dbus_gvalue_demarshal.
3866         (invoke_object_method): Many changes.  Handle asynchronous
3867         invocations.  Convert arguments with
3868         dbus_gvalue_demarshal_message.  Handle errors.  Use
3869         DBusSignatureIter instead of strlen on args. Handle all arguments
3870         generically.  Special-case variants.
3871         (dbus_g_method_return, dbus_g_method_return_error): New function.
3872         (DBusGSignalClosure): New structure, closes over signal
3873         information.
3874         (dbus_g_signal_closure_new): New function.
3875         (dbus_g_signal_closure_finalize): New function.
3876         (signal_emitter_marshaller): New function; is special marshaller
3877         which emits signals on bus.
3878         (export_signals): New function; introspects object signals and
3879         connects to them.
3880         (dbus_g_object_type_install_info): Take GType instead of
3881         GObjectClass.
3882         (dbus_g_connection_register_g_object): Invoke export_signals.
3883         (dbus_g_connection_lookup_g_object): New function.
3884         (DBusGFuncSignature) New structure; used for mapping type
3885         signatures to marshallers.
3886         (funcsig_hash): New function; hashes DBusGFuncSignature.
3887         (funcsig_equal): New function; compares DBusGFuncSignature.
3888         (_dbus_gobject_lookup_marshaller): New function.
3889         (dbus_g_object_register_marshaller): New function; used to
3890         register a marshaller at runtime for a particular signature.
3891
3892         * glib/dbus-gmain.c (_dbus_gmain_test): Add various tests.
3893
3894         * glib/dbus-binding-tool-glib.h: Add DBUS_GLIB_ANNOTATION_ASYNC
3895         which notes a server method implementation should be
3896         asynchronous.
3897
3898         * glib/dbus-binding-tool-glib.c
3899         (dbus_binding_tool_output_glib_server): Call
3900         dbus_g_value_types_init.
3901         (write_formal_parameters): Use dbus_gtype_from_signature.  Handle
3902         variants specially.
3903         (dbus_g_type_get_lookup_function): Turn GType into an invocation
3904         of a lookup function.
3905         (write_args_for_direction): Use dbus_g_type_get_lookup_function.
3906         (write_untyped_out_args): New method; write output arguments.
3907         (write_formal_declarations_for_direction): Function for
3908         writing prototypes.
3909         (write_formal_parameters_for_direction): Function for
3910         writing implementations.
3911         (write_typed_args_for_direction): Function for writing
3912         arguments prefixed with GTypes.
3913         (write_async_method_client): Write out async version
3914         of method.
3915
3916         * glib/dbus-binding-tool-glib.c: Include dbus-gvalue-utils.h.
3917         (dbus_g_type_get_marshal_name): Move mapping from GType
3918         to marshal name into here.
3919         (dbus_g_type_get_c_name): Move into here.
3920         (compute_marshaller): Convert signature to type with
3921         dbus_gtype_from_signature, use dbus_g_type_get_marshal_name.
3922         (compute_marshaller_name): Ditto.
3923         (compute_marshaller): Handle async signal annotations.
3924         (gather_marshallers): Return if we don't have a known
3925         prefix.
3926         (generate_glue): Collect introspection blob here, and
3927         write all of the blob at the end.  This allows an object
3928         with multiple interfaces to work.
3929         Mark async methods in introspection blob.
3930
3931         * glib/Makefile.am (libdbus_glib_1_la_SOURCES): Add
3932         dbus-gtype-specialized.c, dbus-gtype-specialized.h,
3933         dbus-gvalue-utils.h, dbus-gvalue-utils.c.
3934
3935         * dbus/dbus-glib.h: Don't include dbus-protocol.h; this
3936         avoids people accidentally using DBUS_TYPE_* which should
3937         not be necessary anymore.
3938         Do include dbus-gtype-specialized.h, which are utilities
3939         for GLib container types.
3940         Add various #defines for types such as
3941         DBUS_TYPE_G_BOOLEAN_ARRAY.
3942         (DBusGValueIterator, DBusGValue): Define, not fully used
3943         yet.
3944         (dbus_g_value_get_g_type): Type for recursive value.
3945         (dbus_g_value_open, dbus_g_value_iterator_get_value)
3946         (dbus_g_value_iterator_get_values, dbus_g_value_iterator_recurse)
3947         (dbus_g_value_free): Prototypes.
3948         (dbus_g_object_register_marshaller, dbus_g_proxy_new_from_proxy): Prototype.
3949         (dbus_g_proxy_set_interface): Prototype.
3950         (dbus_g_proxy_begin_call, dbus_g_proxy_end_call)
3951         (dbus_g_proxy_call_no_reply): Take GLib types instead of DBus
3952         types.
3953         (dbus_g_proxy_get_path, dbus_g_proxy_get_interface):
3954         Accessors.
3955         (DBusGAsyncData, DBusGMethodInvocation): Structures for
3956         doing async invocations.
3957         (dbus_g_method_return, dbus_g_method_return_error):
3958         Prototypes.
3959         * doc/dbus-tutorial.xml: Update GLib section.
3960         
3961         * tools/dbus-viewer.c (load_child_nodes): Update
3962         for new invocation type of dbus_g_proxy_end_call.
3963         (load_from_service_thread_func): Ditto.
3964
3965         * tools/print-introspect.c (main): Ditto.
3966
3967         * tools/dbus-names-model.c (have_names_notify)
3968         (names_model_reload, names_model_set_connection)
3969         Use GTypes.
3970
3971         * python/Makefile.am (INCLUDES): Define DBUS_COMPILATION,
3972         needed since Python bindings use GLib bindings.
3973
3974         * test/glib/Makefile.am (INCLUDES): Define DBUS_COMPILATION.
3975         Add --prefix argument.
3976
3977         * tools/Makefile.am: Define DBUS_COMPILATION.  Remove
3978         unneeded --ignore-unsupported arg.
3979         
3980         * test/glib/test-service-glib.c: 
3981         * test/glib/test-service-glib.xml:
3982         * test/glib/test-dbus-glib.c: Add many more tests.
3983
3984 2005-06-06  David Zeuthen  <davidz@redhat.com>
3985
3986         * doc/TODO: Add item about need to remove deprecated functions.
3987
3988         * dbus/dbus-connection.h: Add prototype for dbus_connection_disconnect
3989
3990         * dbus/dbus-connection.c (dbus_connection_disconnect): New function
3991         to repair the ABI which was broken with the last commit.
3992
3993 2005-06-02  John (J5) Palmieri <johnp@redhat.com>
3994
3995         *  dbus/dbus-connection.c, dbus/dbus-connection.h 
3996         (dbus_connection_disconnect): renamed to dbus_connection_close 
3997         for API symmetry with dbus_connection_open
3998         (_dbus_connection_open_internal): 
3999         s/dbus_connection_disconnect/dbus_connection_close
4000
4001         * dbus/dbus-bus.c (dbus_bus_get):
4002         s/dbus_connection_disconnect/dbus_connection_close
4003
4004         * bus/connection.c (bus_connections_unref, 
4005         bus_connections_setup_connection, bus_connections_expire_incomplete):
4006         s/dbus_connection_disconnect/dbus_connection_close
4007
4008         * bus/dispatch.c (bus_dispatch, kill_client_connection, 
4009         kill_client_connection_unchecked, check_hello_connection):
4010         s/dbus_connection_disconnect/dbus_connection_close
4011
4012         * bus/bus.c (new_connection_callback):
4013         s/dbus_connection_disconnect/dbus_connection_close
4014
4015         * tools/dbus-send.c (main):
4016         s/dbus_connection_disconnect/dbus_connection_close
4017
4018         * test/glib/test-profile.c (no_bus_thread_func, with_bus_thread_func):
4019         s/dbus_connection_disconnect/dbus_connection_close
4020         
4021         * test/test-service.c (path_message_func, filter_func):
4022         s/dbus_connection_disconnect/dbus_connection_close
4023         
4024         * doc/TODO: remove connection_open/connection_disconnect lacks symmetry         item that was just fixed
4025         
4026 2005-05-25  Colin Walters  <walters@verbum.org>
4027
4028         * dbus/dbus-protocol.h: Move various bus service #defines such
4029           as DBUS_SERVICE_DBUS and DBUS_NAME_FLAG_PROHIBIT_REPLACEMENT to
4030           dbus/dbus-shared.h.
4031         * dbus/dbus-shared.h: Various defines moved here.
4032         * dbus/dbus-marshal-header.c: Include dbus-shared.h.
4033
4034 2005-05-25  John (J5) Palmieri  <johnp@redhat.com>
4035
4036         * python/__init__.py: Python bindings deserve a minor version
4037         update.  Upped to (0, 40, 2)
4038
4039 2005-05-24  John (J5) Palmieri  <johnp@redhat.com>
4040
4041         * python/decorators.py: add explicitly_pass_message decorator
4042         for passing in the dbus message as keyword for edge case signal
4043         handling
4044
4045         * python/matchrules.py (SignalMatchRule.__repr__): fix output
4046         to conform with what dbus expects for match rules
4047         (SignalMatchRule.execute): add the dbus message as a keyword
4048         if the signal handler has requested it
4049
4050         * python/examples/example/signal-recipient.py: added some more
4051         examples on how to hook up to signals
4052
4053 2005-05-23  John (J5) Palmieri  <johnp@redhat.com>
4054
4055         * python/decorators.py: import dbus_bindings
4056
4057         * python/matchrules.py (SignalMatchRule, SignalMatchTree, 
4058         SignalMatchNode): new classes that implement wildcard signal
4059         callback matching using a tree lookup. Heavily modified from a
4060         patch sent by Celso Pinto (fd.o bug #3241)
4061
4062         * _dbus.py (add_signal_receiver, remove_signal_receiver, _signal_func):
4063         use new match classes to handle signals.
4064
4065 2005-05-19  John (J5) Palmieri  <johnp@redhat.com>
4066         
4067         * python/dbus_bindings.pyx.in: s/TYPE_PATH/TYPE_OBJECT_PATH
4068
4069 2005-05-18  Havoc Pennington  <hp@redhat.com>
4070
4071         * configure.in: use GLIB_GNU_GETTEXT to get INTLLIBS and require
4072         gettext. Not really worth requiring yet perhaps, but any
4073         production quality 1.0 would require it so we should go ahead and
4074         get things set up. We do have a couple token calls to
4075         bindtextdomain in the code already.
4076
4077 2005-05-16  John (J5) Palmieri  <johnp@redhat.com>
4078
4079         * glib/dbus-gmain.c (io_handler_dispatch): fix deadlock
4080         when using recursive g_main_loops
4081
4082         * python/_dbus.py (class Bus): add the ProxyObjectClass
4083         alias for ProxyObject to make it easier for the Twisted 
4084         networking framework to integrate dbus.
4085
4086         * python/proxies.py (class ProxyObject): add the ProxyMethodClass
4087         alias for ProxyMethod to make it easier for the Twisted 
4088         networking framework to integrate dbus. 
4089
4090 2005-05-11  Ross Burton  <ross@openedhand.com>
4091
4092         * glib/dbus-glib-tool.c: Add --prefix argument.
4093         * glib/dbus-binding-tool-glib.h: Add prefix argument.
4094         * glib/dbus-binding-tool-glib.c (compute_marshaller_name):
4095         Add prefix argument.
4096         (generate_glue): Pass prefix argument down.
4097         (dbus_binding_tool_output_glib_server): Pass prefix to
4098         glib-genmarshal.
4099         
4100 2005-05-11  Colin Walters  <walters@verbum.org>
4101
4102         * tools/dbus-send.c (append_array): New function.
4103         (append_arg): Broken out from main.
4104         (main): Add cheesy hack to send arrays and variants.
4105         (usage): Update.
4106         * tools/dbus-print-message.c (print_iter): Broken out
4107         from main.
4108
4109 2005-05-11  Colin Walters  <walters@verbum.org>
4110
4111         * dbus/dbus-signature.c (dbus_signature_iter_get_signature):
4112         New function, returns signature string for signature iter.
4113         * dbus/dbus-signature.h: Prototype it.
4114         * dbus/dbus-message.c (dbus_message_iter_get_signature):
4115         New function, returns signature string for message iter.
4116         (dbus_message_iter_get_array_len): New function, returns
4117         length of array.
4118         (dbus_message_iter_get_fixed_array): Fix assertion; this
4119         function should be used when the iter is pointing to the
4120         contents of an array
4121         * dbus/dbus-message.h: Prototypes.
4122         * dbus/dbus-marshal-recursive.c (_dbus_type_reader_get_array_length):
4123         New function; returns length of an array.
4124         * dbus/dbus-marshal-recursive.h: Prototype it.
4125         
4126 2005-05-11  Colin Walters  <walters@verbum.org>
4127
4128         * dbus/dbus-sysdeps-util.c <!HAVE_POSIX_GETPWNAM_R>: Fix
4129         compilation error.
4130         
4131 2005-05-08  Havoc Pennington  <hp@redhat.com>
4132
4133         * dbus/dbus-sysdeps-util.c (_dbus_become_daemon): write the
4134         daemon's pid, not the parent's pid, to the file descriptor.
4135         Reported by Taj Morton.
4136
4137 2005-05-05  Havoc Pennington  <hp@redhat.com>
4138
4139         * configure.in (LT_*): add notes on how the libtool versioning
4140         works to save thinking. Increment soname to indicate protocol
4141         breakage (though really the library interface hasn't changed I
4142         guess)
4143
4144         * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated):
4145         verify the GUID received from server matches what we were
4146         expecting, if we had an expectation
4147
4148         * dbus/dbus-auth.c (send_ok): send GUID along with the OK command
4149         (_dbus_auth_get_guid_from_server): new function
4150         (send_begin): parse the OK args
4151
4152         * doc/dbus-specification.xml: add GUID to the auth protocol
4153
4154 2005-05-05  John (J5) Palmieri  <johnp@redhat.com>
4155
4156         * Fix my name in previous changelog ;)
4157
4158         * python/proxies.py (ProxyObject.__getattr__): add further patch
4159         from Anthony Baxter to throw an AttributeError when python 
4160         __special__ functions are called instead of marshling them over 
4161         the bus (Bug#1685 comment 3).
4162
4163 2005-05-04  John (J5) Palmieri  <johnp@redhat.com>
4164
4165         * python/Makefile.am: changed to use pyexecdir for the binding
4166         shared libraries (Bug#2494)
4167
4168         * python/exceptions.py: bring exceptions over from the bindings
4169         so they can be used in applications (Bug#2036)
4170         Make all exceptions derive from DBusException
4171
4172         * python/_dbus.py, python/proxies.py: implement __repr__ in a couple
4173         of classes so that print obj doesn't throw an exception (Bug #1685)
4174
4175 2005-05-03  Ross Burton  <ross@openedhand.com>
4176
4177         * glib/dbus-gobject.c (dbus_g_connection_register_g_object):
4178         Return if we get an error during registration.  Set up a
4179         weak reference on object to unregister if object is destroyed.
4180         (unregister_gobject): New function.
4181         
4182 2005-05-01  John (J5) Palmieri  <johnp@redhat.com>
4183
4184         * python/dbus_bindings.pyx.in: 
4185         - added new type classes for hinting to the marashaler what type 
4186         to send over the wire
4187         - added int16 and uint16 marshalers
4188         - Fixed a bug in the type constants that caused int32 to go out
4189         as uint16 over the wire
4190         * python/dbus.py: split up into different files and renamed _dbus.py
4191         * python/__init__.py, python/_util.py, python/decorators.py, 
4192         python/exceptions.py, python/proxies.py, python/services.py,
4193         python/types.py: new files split off from dbus.py
4194         * python/Makefile.am: Add new files, remove dbus.py and 
4195         install all python files to <python module dir>/dbus
4196         * python/examples/*: Added #!/usr/bin/env python to the top of
4197         every example.  Patch provided by Tatavarty Kalyan
4198
4199 2005-04-25  John (J5) Palmieri  <johnp@redhat.com>
4200
4201         * NEWS: Update to 0.33
4202
4203 2005-04-25  John (J5) Palmieri  <johnp@redhat.com>
4204
4205         * python/dbus_bindings.pyx.in (send_with_reply_handlers): New send
4206         method for doing async calls
4207         (_pending_call_notification): New C function for handling pendning call
4208         callbacks
4209         (set_notify): New method for setting pending call notification
4210         
4211         * python/dbus.py: new version tuple "version" is set at (0, 40, 0)
4212         Async capabilities added to remote method calls
4213         (Sender): class removed
4214         (RemoteService): class removed
4215         (ObjectTree): class removed for now
4216         (RemoteObject): Renamed to ProxyObject
4217         (RemoteMethod): Renamed to ProxyMethod
4218         (method): Decorator added for decorating python methods as dbus methods
4219         (signal): Decorator added for decorating python methods as signal emitters
4220         (ObjectType): Metaclass added for generating introspection data and the
4221         method callback vtable
4222         (Interface): Wrapper class added to wrap objects in a dbus interface
4223         (Object): Uses ObjectType as its metaclass and exports Introspect
4224         of the org.freedesktop.DBus.Introspectable interface
4225         (ValidationException, UnknownMethodException): new exceptions
4226
4227         * python/examples/*: Modified to fit with the new bindings
4228
4229 2005-04-23  Havoc Pennington  <hp@redhat.com>
4230
4231         * dbus/dbus-message.c (dbus_message_append_args): fix doc comment,
4232         reported by Tony Houghton
4233
4234         * test/test-service.c (main): test
4235         dbus_connection_get_object_path_data()
4236
4237         * dbus/dbus-object-tree.c (find_handler): be sure we always init
4238         the exact_match
4239         (_dbus_object_tree_get_user_data_unlocked): new function used by
4240         dbus_connection_get_object_path_data()
4241         (do_register): add assertion test for get_user_data_unlocked
4242         (object_tree_test_iteration): more tests
4243
4244         * dbus/dbus-connection.c (dbus_connection_get_object_path_data):
4245         new function from Dan Reed to let you get the user data from 
4246         dbus_connection_register_object_path()
4247
4248 2005-04-23  John (J5) Palmieri  <johnp@redhat.com>
4249
4250         * dbus/dbus-marshal-recursive-util.c: Fixed buffer overflow
4251         in numerous places that did not account for the NULL terminator
4252         (signature_from_seed): changed the manual string copy loop to 
4253         just use strcpy instead
4254         make check should now pass
4255
4256 2005-04-19  John (J5) Palmieri  <johnp@redhat.com>
4257
4258         * dbus/dbus-marshal-header.c (_dbus_header_create): Fix assert
4259         so that it allows messages that are not signals to pass in 
4260         NULL as the interface.
4261
4262 2005-04-18  David Zeuthen  <davidz@redhat.com>
4263
4264         * glib/dbus-gmain.c (io_handler_destroy_source): 
4265         (timeout_handler_destroy_source, connection_setup_free): 
4266         Also unref the source to avoid memory leaks.
4267
4268 2005-04-13  David Zeuthen  <davidz@redhat.com>
4269
4270         * bus/config-parser.c (bus_config_parser_new): Bump this to a
4271         more reasonable, yet still totally arbitrary, value :-). 
4272
4273 2005-04-13  David Zeuthen  <davidz@redhat.com>
4274
4275         * doc/TODO: Added an "important for 1.0" item about selinux
4276         allow/deny messages
4277
4278 2005-04-13  David Zeuthen  <davidz@redhat.com>
4279
4280         * bus/selinux.c: Add c-file-style to top of file
4281         (log_audit_callback): Don't free the data here anymore
4282         (bus_selinux_check): Don't take spid and tpid since appending
4283         that to auxdata may OOM.
4284         (bus_selinux_allows_acquire_service): Handle OOM and signal back
4285         to the caller if we are OOM by taking an error object.
4286         (bus_selinux_allows_send): -do-
4287
4288         * bus/selinux.h: Fix prototypes for bus_selinux_allows_acquire_service
4289         and bus_selinux_allows_send
4290
4291         * bus/bus.c (bus_context_check_security_policy): Pass error and
4292         pass on OOM thrown by bus_selinux_allows_send()
4293
4294         * bus/services.c (bus_registry_acquire_service): Pass error and
4295         pass on OOM thrown by bus_selinux_allows_acquire_service()
4296
4297 2005-04-13  Havoc Pennington  <hp@redhat.com>
4298
4299         * glib/dbus-gmain.c (message_queue_dispatch): only dispatch one
4300         message at a time to avoid monopolizing the main loop, bug 
4301         #2953 from Benjamin Otte
4302
4303 2005-04-09  Havoc Pennington  <hp@redhat.com>
4304
4305         * dbus/dbus-string.c (copy): change a memcpy to memmove due to
4306         possible overlap, fix from Daniel Reed
4307         (fixup_alignment): fix signedness warnings
4308         (_dbus_string_append_unichar): ditto
4309
4310 2005-04-09  Havoc Pennington  <hp@redhat.com>
4311
4312         * dbus/dbus-message-util.c (_dbus_message_test): fix signedness warning
4313
4314         * glib/dbus-glib-tool.c (main): fix warning
4315
4316         * glib/dbus-binding-tool-glib.c (generate_glue): fix warning
4317
4318         * dbus/dbus-connection.c (dbus_connection_read_write_dispatch):
4319         add a new function that can be used in simple applications that
4320         don't have a main loop and are willing to block
4321
4322 2005-04-05  David Zeuthen  <davidz@redhat.com>
4323
4324         Fix https://bugs.freedesktop.org/show_bug.cgi?id=2889
4325
4326         * glib/dbus-gmain.c:
4327         (io_handler_destroy_source): Remove from list of IO handlers
4328         of the ConnectionSetup object
4329         (timeout_handler_destroy_source): -do- for timeout handlers
4330         (io_handler_source_finalized): Don't remove from list since
4331         we now do that in io_handler_destroy_source(). Renamed from
4332         io_handler_source_destroyed
4333         (timeout_handler_source_destroyed): -do- for timeout handlers
4334         (connection_setup_free): It is now safe to iterate over all
4335         IO and timeout handlers as the _destroy_source removes them
4336         from the list synchronously
4337
4338 2005-03-30  Havoc Pennington  <hp@redhat.com>
4339
4340         * configure.in: change check to gtk 2.4
4341
4342         * tools/dbus-viewer.c (name_combo_changed_callback): remove
4343         gtk_combo_box_get_active_text() usage to decrement GTK requirement
4344         to 2.4
4345
4346 2005-03-29  John (J5) Palmieri  <johnp@redhat.com>
4347
4348         * News: Update 0.32
4349
4350         * HACKING: Fixed realease instructions.  configure.in should be updated to
4351           the next release by the person who made the last release.
4352
4353 2005-03-29  John (J5) Palmieri  <johnp@redhat.com>
4354
4355         * python/lvalue_cast_post_process.py - removed.  Patch has been
4356           submitted to Pyrex maintainers that fixes gcc4.0 errors
4357
4358         * python/Makefile.am: removed refrences to lvalue_cast_post_process.py
4359
4360 2005-03-24  Daniel Reed  <n@ml.org>
4361
4362         * tools/Makefile.am: Make print-introspect and
4363         dbus-bus-introspect.xml building conditional on HAVE_GLIB.
4364
4365 2005-03-22  John (J5) Palmieri  <johnp@redhat.com>
4366
4367         * tools/Makefile.am: Patch by Colin Walters that fixes distcheck
4368
4369         * dbus/dbus-userdb.c, dbus/dbus-userdb-util.c: Add patch we have 
4370           had in Red Hat packages for a while but for some reason never 
4371           got merged upstream
4372           (_dbus_is_a_number): New checks if a string
4373           can be converted to a number and does the conversion if it can
4374           (_dbus_user_database_lookup): Add check to see if the given username
4375           is a udi.  This allows udi's to be used instead of usernames in the
4376           config file.
4377           (_dbus_user_database_lookup_group): Add check to see if the given groupname
4378           is a gdi.  This allows gdi's to be used instead of groupnames in the
4379           config file.
4380
4381 2005-03-21  John (J5) Palmieri  <johnp@redhat.com>
4382
4383         * python/lvalue_cast_post_process.py - added post processor to fix Pyrex
4384           code so that it compiles with gcc4.0
4385
4386         * python/Makefile.am: Added lvalue_cast_post_process.py to EXTRA_DIST
4387           run dbus_bindings.c through lvalue_cast_post_process.py and copy the
4388           results back to dbus_binding.c
4389
4390 2005-03-20  Colin Walters  <walters@verbum.org>
4391
4392         Patch suggested by Inguva Rajasekhar <ringuva@novell.com>.
4393
4394         * configure.in: Require GTK+ 2.6.
4395         
4396 2005-03-20  Colin Walters  <walters@verbum.org>
4397
4398         * Makefile.am (SUBDIRS, DIST_SUBDIRS): Build tools before test.
4399
4400 2005-03-17  Tom Parker  <palfrey@tevp.net>
4401
4402         * dbus/dbus-userdb.c (_dbus_user_database_lookup): Don't
4403         print DBUS_UID_UNSET; instead print passed username.  Also
4404         be sure to actually use gid looked up in cache.
4405         
4406         * dbus/dbus-userdb-util.c (_dbus_user_database_lookup_group): Ditto
4407         for DBUS_GID_UNSET and groupname.
4408
4409 2005-03-17  Colin Walters  <walters@verbum.org>
4410
4411         * bus/print-introspect.c: Move to tools/.
4412         * bus/run-with-tmp-session-bus.sh: Ditto.
4413         
4414         * glib/Makefile.am (dbus-glib-bindings.h): Move
4415         generation to tools/Makefile.am.
4416
4417         * test/glib/run-test.sh: Update to handle move
4418         of run-with-tmp-session-bus.sh.
4419
4420         * test/glib/test-service-glib.c: Update to handle
4421         move of dbus-glib-bindings.h.
4422
4423         * tools/print-introspect.c: Moved here
4424         from bus/, and ported to GLib bindings.
4425
4426         * tools/run-with-tmp-session-bus.sh: Moved here
4427         from bus/.
4428
4429         * tools/Makefile.am: Generate dbus-glib-bindings.h
4430         and dbus-bus-introspect.xml here.
4431
4432         * tools/.cvsignore, glib/.cvsignore, bus/.cvsignore:
4433         Update.
4434
4435 2005-03-17  Colin Walters  <walters@verbum.org>
4436
4437         * bus/driver.c (write_args_for_direction): Use
4438         _dbus_string_get_const_data to retrieve string;
4439         _dbus_string_get_const_data_len doesn't actually return
4440         a NULL-terminated substring.
4441
4442         * test/glib/test-service-glib.c: Include dbus-glib-bindings.h.
4443         (main): Change to use org_freedesktop_DBus_request_name
4444         instead of using g_proxy_begin_call/end_call.
4445
4446 2005-03-15  Joe Shaw  <joeshaw@novell.com>
4447
4448         * mono/ProxyBuilder.cs (BuildFinalizer): Fix some invalid IL when
4449         generating the finalizer.  Fixes from Ben Maurer.
4450
4451 2005-03-12  Joe Shaw  <joeshaw@novell.com>
4452
4453         * mono/BusDriver.cs: Update method names: ListServices
4454         becomes ListNames; GetOwner becomes GetNameOwner.
4455
4456         * mono/ProxyBuilder.cs (BuildFinalizer): Need to load arg 0
4457         onto the eval stack when removing the delegate.
4458
4459 2005-03-12  Joe Shaw  <joeshaw@novell.com>
4460
4461         * mono/dbus-sharp.dll.config.in: Don't hardcode 0 for
4462         LT_CURRENT.  Set it to the autoconf variable.
4463                                                                                 
4464         * mono/ProxyBuilder.cs: Add a finalizer to the generated proxy
4465         classes that disconnects the signal handler delegate from the
4466         service object.  Fixes a big leak of proxy objects on the
4467         client side of things.  Patch from Ben Maurer
4468         <bmaurer@ximian.com>
4469
4470 2005-03-12  Colin Walters  <walters@verbum.org>
4471
4472         * bus/driver.c (write_args_for_direction): New function,
4473         parses a type signature into arguments and outputs to
4474         XML.
4475         (bus_driver_handle_introspect): Use it instead of
4476         hardcoding XML for certain signatures.
4477         
4478         * bus/Makefile.am (dbus-bus-introspect.xml): Add
4479         dependency on dbus-daemon.
4480
4481         * glib/dbus-glib-tool.c (main): Parse ignore_unsupported
4482         argument, pass it to dbus_binding_tool_output_glib_client.
4483
4484         * glib/dbus-binding-tool-glib.c
4485         (generate_client_glue): Protect against multiple inclusion.
4486         (dbus_binding_tool_output_glib_client): Add
4487         G_BEGIN_DECLS/G_END_DECLS.
4488
4489         * glib/dbus-binding-tool-glib.c (compute_client_method_name):
4490         Change to just take iface prefix directly.
4491         (write_formal_parameters): Clarify error message.
4492         (check_supported_parameters): New function; checks to see type
4493         signatures of method parameters are supported.
4494         (generate_client_glue): Handle ignore_unsupported flag.
4495         (dbus_binding_tool_output_glib_client): Handle ignore_unsupported
4496         parameter.
4497
4498         * glib/Makefile.am (dbus-glib-bindings.h): Pass
4499         --ignore-unsupported by default until glib bindings
4500         support arrays.
4501
4502 2005-03-11  Colin Walters  <walters@verbum.org>
4503
4504         * glib/Makefile.am: Generate dbus-glib-bindings.h and
4505         install it.
4506
4507         * bus/print-introspect.c: New file; prints introspection
4508         data for a given name and object path.
4509
4510         * bus/run-with-tmp-session-bus.sh: New file, refactored
4511         from test/glib/run-test.sh.  Creates a temporary session
4512         bus and runs another program.
4513
4514         * test/glib/run-test.sh: Refactor to invoke
4515         run-with-tmp-session-bus.sh.
4516
4517         * bus/driver.c (bus_driver_handle_introspect): Fix to print new
4518         introspection format.  Also change to use DBUS_TYPE_x_AS_STRING
4519         macros instead of hardcoding.
4520
4521         * glib/.cvsignore, bus/.cvsignore, test/glib/.cvsignore: Update.
4522
4523 2005-03-11  Joe Shaw  <joeshaw@novell.com>
4524
4525         * dbus/dbus-connection.c (dbus_connection_send_with_reply): Remove
4526         this unref; it doesn't match up evenly in some codepaths.
4527         (_dbus_connection_block_pending_call): Unref at every exitpoint;
4528         this evenly matches with the ref near the top of this function.
4529
4530 2005-03-09  Joe Shaw  <joeshaw@novell.com>
4531
4532         * dbus/dbus-object-tree.c
4533         (_dbus_object_tree_unregister_and_unlock): If checks are enabled
4534         and we try to unregister a path that's not registered, still go
4535         through the process of unlocking and don't just return.
4536
4537 2005-03-09  Colin Walters  <walters@verbum.org>
4538
4539         * glib/dbus-gproxy.c (dbus_g_proxy_invoke): New method; calls
4540         to this are generated for client-side wrappers.  Invokes a
4541         D-BUS method and returns reply values.  
4542
4543         * glib/dbus-binding-tool-glib.c (write_args_sig_for_direction): New
4544         function; writes signature string for argument direction.
4545         (write_args_for_direction): Change to pass input values directly
4546         instead of via address, and fix indentation.
4547         (generate_client_glue): Change to invoke dbus_g_proxy_invoke.  Also
4548         make generated wrappers inlineable.
4549
4550         * dbus/dbus-message.c (dbus_message_iter_get_fixed_array): Add
4551         note about using dbus_type_is_fixed.
4552
4553         * dbus/dbus-marshal-basic.c (_dbus_type_is_fixed): Moved to
4554         dbus/dbus-signature.c as dbus_type_is_fixed.
4555
4556         All callers updated.
4557
4558         * dbus/dbus-signature.c (dbus_type_is_fixed): Moved here
4559         from dbus/dbus-marshal-basic.c:_dbus_type_is_fixed.
4560
4561         * dbus/dbus-signature.h: Prototype.
4562
4563         * glib/dbus-binding-tool-glib.c (compute_marshaller_name): Fix
4564         error printf code.
4565
4566         * test/glib/test-dbus-glib.c (main): Be sure to clear error as
4567         appropriate instead of just freeing it.
4568         (main): Free returned strings using g_free.
4569
4570         * test/glib/Makefile.am (test-service-glib-glue.h)
4571         (test-service-glib-bindings.h): Add dependency on dbus-binding-tool.
4572
4573         * glib/dbus-gvalue.c (MAP_BASIC): Refactored from MAP_BASIC_INIT;
4574         simply maps a simple D-BUS type to GType.
4575         (dbus_dbus_type_to_gtype): Function which maps D-BUS type to
4576         GType.
4577         (dbus_gvalue_init): Just invoke dbus_dbus_type_to_gtype and
4578         initialize the value with it.
4579         (dbus_gvalue_binding_type_from_type): Unused, delete.
4580         (dbus_gvalue_demarshal): Switch to hardcoding demarshalling for
4581         various types instead of unmarshalling to value data directly.
4582         Remove can_convert boolean.
4583         (dbus_gvalue_marshal): Remove duplicate initialization; switch to
4584         returning directly instead of using can_convert boolean.
4585         (dbus_gvalue_store): New function; not related to D-BUS per-se.
4586         Stores a GValue in a pointer to a value of its corresponding C
4587         type.
4588
4589         * glib/dbus-gvalue.h: Remove dbus_gvalue_binding_type_from_type,
4590         add dbus_gvalue_store.
4591
4592 2005-03-08  Joe Shaw  <joeshaw@novell.com>
4593
4594         Fix a bunch of lifecycle and memory management problems
4595         in the mono bindings.
4596
4597         * mono/Arguments.cs (Arguments): Implement IDisposable
4598
4599         * mono/Bus.cs (Bus): Don't allow public instantiation.  This is
4600         strictly a static class.
4601
4602         * mono/Connection.cs: Move the DBusObjectPathVTable and associated
4603         delegates into this file.
4604         (Connection): Implement IDisposable.
4605         (Dispose): Disconnect the connection and set the raw connection
4606         pointer to IntPtr.Zero.
4607         (~Connection): Call Dispose().
4608         (RegisterObjectPath): Added.  Manages the registration of object
4609         paths so we can cleanly disconnect them at dispose/finalize time.
4610         (UnregisterObjectPath): Ditto.
4611         (set_RawConnection): Unregister all of the object paths when
4612         changing the underlying DBusConnection.  Add them back onto the
4613         new connection, if any.
4614
4615         * mono/Handler.cs: Don't implement IDisposable; it doesn't use any
4616         more unmanaged resources anymore, so it's not necessary.  Move all
4617         the DBusObjectPathVTable stuff out of here.
4618         (Handler): Save references to our delegates so that they don't get
4619         finalized.  Call Connection.RegisterObjectPath() instead of
4620         dbus_connection_register_object_path() directly.
4621         (Message_Called): Dispose the message after we're finished with
4622         it.
4623
4624         * mono/Message.cs (Message): Implement IDisposable.
4625         (Dispose): Dispose the Arguments, and set the RawMessage to
4626         IntPtr.Zero.
4627         (SendWithReplyAndBlock): We own the ref to the reply that comes
4628         back from dbus_connection_send_with_reply_and_block() so add a
4629         comment about that and unref it after we've constructed a managed
4630         MethodReturn class around it.  Fixes a big, big leak.
4631
4632         * mono/ProxyBuilder.cs: Reflect into Message to get the Dispose
4633         method.
4634         (BuildSignalHandler): After we've sent the Signal message, dispose
4635         of it.
4636         (BuildMethod): Dispose of the method call and reply messages after
4637         we've sent the message and extracted the data we want from the
4638         reply.
4639
4640         * mono/Service.cs (UnregisterObject): Don't call handler.Dispose()
4641         anymore.
4642         (Service_FilterCalled): Dispose of the message after we're
4643         finished with it.
4644
4645 2005-03-08  Joe Shaw  <joeshaw@novell.com>
4646
4647         * dbus/dbus-connection.c (dbus_connection_send_with_reply):
4648         After we attach our pending call to the connection, unref
4649         it.  Fixes a leak.
4650  
4651         * mono/Connection.cs (set_RawConnection): Disconnect our
4652         filter and match callbacks from the old connection and
4653         reconnect them to the new connection, if any.
4654
4655         * mono/DBusType/Array.cs: "Code" is a static member, so
4656         don't use "this" to refer to it.  Fix for stricter checking
4657         in Mono 1.1.4.
4658  
4659         * mono/DBusType/ObjectPath.cs (Append): Don't leak the
4660         object path that we pass into unmanaged code.
4661  
4662         * mono/DBusType/String.cs (Append): Don't leak the string
4663         that we pass into unmanged code.
4664
4665 2005-03-07  John (J5) Palmieri  <johnp@redhat.com>
4666         * NEWS: Update for 0.31
4667
4668         * configure.in: Release 0.31
4669         add LT_CURRENT, LT_REVISION, LT_AGE for easy soname bumping
4670
4671         * qt/Makefile.am: fixed build
4672
4673         * dbus/Makefile.am: soname bump for libdbus
4674
4675         * glib/Makefile.am: soname bump for libdbus-glib
4676
4677 2005-03-05  Havoc Pennington  <hp@redhat.com>
4678
4679         * dbus/dbus-sysdeps.c:
4680         (pseudorandom_generate_random_bytes_buffer): fix to have no return
4681         value
4682         (_dbus_generate_random_bytes_buffer): fix return value
4683
4684         * dbus/dbus-sysdeps-util.c: s/GETPWNAME/GETPWNAM/ so configure
4685         checks actually work, from Tom Parker <fdo@tevp.net>
4686
4687 2005-03-01  Colin Walters  <walters@verbum.org>
4688
4689         * test/glib/test-dbus-glib.c (lose, lose_gerror): Utility
4690         functions copied from dbus-glib-tool.c.
4691         (main): Convert lots of error code to use them.
4692         Also add some testing for introspection bits.
4693
4694 2005-03-01  Colin Walters  <walters@verbum.org>
4695         
4696         * doc/TODO: Remove introspection signature TODO.
4697
4698 2005-02-27  Colin Walters  <walters@verbum.org>
4699
4700         * glib/dbus-gidl.c (property_info_get_type, arg_info_get_type):
4701         Change return value to const char * instead of int so we can do
4702         full signatures.
4703         (struct PropertyInfo, struct ArgInfo): Store char *.
4704         (property_info_new, arg_info_new): Update parameters, strdup.
4705         (property_info_unref, arg_info_unref): Free.
4706
4707         * glib/dbus-gidl.h: Update prototypes.
4708
4709         * glib/dbus-gparser.c (basic_type_from_string): Delete.
4710         (validate_signature): New function, just validates signature and
4711         sets GError.
4712         (parse_property, parse_arg): Invoke validate_signature.  Store
4713         signature instead of just type code.
4714
4715         * glib/dbus-gvalue.c (base_type_from_signature): New utility
4716         function to return a primary type for a signature, dropping
4717         information about types in container types.
4718         (dbus_gvalue_genmarshal_name_from_type)
4719         (dbus_gvalue_binding_type_from_type)
4720         (dbus_gvalue_ctype_from_type): Update to take full signature
4721          instead of type code.
4722         (dbus_gtype_to_dbus_type): Moved here from glib/dbus-gobject.c.
4723
4724         * glib/dbus-gvalue.h: Update prototypes for above.
4725
4726         * glib/dbus-gobject.c (gtype_to_dbus_type): Moved to
4727         glib/dbus-gvalue.c as dbus_gtype_to_dbus_type.
4728         (introspect_properties, introspect_signals, write_interface):
4729         Update to handle signatures, and remove usage of
4730         _dbus_gutils_type_to_string.
4731         (handle_introspect): Print out type codes instead of e.g. "string"
4732         in hardcoded introspection XML; also use x_AS_STRING constants
4733         instead of hardcoding in string.
4734
4735         * glib/dbus-glib-tool.c (pretty_print): Handle signature change
4736         to string.  Remove usage of _dbus_gutils_type_to_string.
4737
4738         * glib/dbus-gutils.c (_dbus_gutils_type_to_string): Delete.
4739
4740         * glib/dbus-gutils.h (_dbus_gutils_type_to_string): Update for
4741         deletion.
4742         
4743         * glib/dbus-binding-tool-glib.c (compute_marshaller)
4744         (compute_marshaller_name, generate_glue): Handle signature change
4745         to string.
4746         (write_formal_parameters, write_args_for_direction): Ditto, and
4747         remove FIXME.
4748
4749         * tools/dbus-tree-view.c (type_to_string): Delete.
4750         (info_set_func_text): Update to print full signatures.
4751
4752         * test/glib/test-service-glib.xml: Change types to new
4753         introspection format.
4754
4755 2005-02-26  Havoc Pennington  <hp@redhat.com>
4756
4757         * doc/TODO: remove the "guid" item
4758
4759         * test/glib/test-profile.c (no_bus_thread_func): use open_private
4760         (with_bus_thread_func): use open_private
4761
4762         * dbus/dbus-connection.c (dbus_connection_open_private): new
4763         function that works like the old dbus_connection_open()
4764         (dbus_connection_open): now returns an existing connection if
4765         possible
4766
4767         * dbus/dbus-server-unix.c (handle_new_client_fd_and_unlock): pass
4768         through the GUID to the transport
4769
4770         * dbus/dbus-server.c (_dbus_server_init_base): keep around the
4771         GUID in hex-encoded form.
4772
4773         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
4774         pass GUID argument in to the transport
4775
4776         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd): add
4777         guid argument
4778
4779         * dbus/dbus-transport.c (_dbus_transport_init_base): add guid argument
4780
4781         * dbus/dbus-auth.c (_dbus_auth_server_new): add guid argument
4782
4783 2005-02-25  Havoc Pennington  <hp@redhat.com>
4784
4785         * doc/dbus-specification.xml: document the GUID thing
4786
4787         * dbus/dbus-server.c (_dbus_server_init_base): initialize a
4788         globally unique ID for the server, and put a "guid=hexencoded"
4789         field in the address
4790
4791         * dbus/dbus-bus.c: fix missing #include of dbus-threads-internal.h
4792
4793         * dbus/dbus-message.c: ditto
4794
4795         * dbus/dbus-dataslot.c: ditto
4796
4797         * dbus/dbus-list.c: ditto
4798
4799         * dbus/dbus-internals.h: wait, just include
4800         dbus-threads-internal.h here
4801         
4802         * dbus/dbus-string.c (_dbus_string_copy_to_buffer): move back for
4803         use in main library
4804
4805         * dbus/dbus-sysdeps.c (_dbus_generate_random_bytes_buffer): new function
4806
4807 2005-02-24  Colin Walters  <walters@verbum.org>
4808
4809         * test/glib/Makefile.am (EXTRA_DIST): Add test-service-glib.xml
4810
4811 2005-02-24  John (J5) Palmieir  <johnp@redhat.com>
4812
4813         * glib/Makefile.am: added dbus-gobject.h to sources list
4814         so distcheck doesn't fail
4815         
4816 2005-02-24  Havoc Pennington  <hp@redhat.com>
4817
4818         * dbus/dbus-server.c, dbus/dbus-server-unix.c: change semantics so
4819         you must disconnect before unref, since locking and other things
4820         are screwed up otherwise. Fix assorted other locking stuff.
4821
4822         * dbus/dbus-signature.c (dbus_signature_iter_get_element_type):
4823         fix compilation
4824
4825         * dbus/dbus-threads-internal.h: move the mutex/condvar wrappers
4826         into a private header and don't export from the library
4827
4828         * throughout - call _dbus_thread_stuff vs. dbus_thread_stuff
4829
4830 2005-02-24  Colin Walters  <walters@verbum.org>
4831         
4832         * dbus/dbus-signature.c: New file; implements various functions
4833         related to type signatures.  Includes an interator for parsing,
4834         validation functions.
4835         (dbus_type_is_basic): Moved here from
4836         dbus-marshal-basic.c:_dbus_type_is_basic.
4837         (dbus_type_is_container): Moved here from
4838         dbus-marshal-basic.c:_dbus_type_is_container.
4839
4840         All callers of _dbus_type_is_container and _dbus_type_is_basic
4841         updated, and include dbus-signature.h.
4842
4843         * dbus/dbus-signature.h: New file; prototypes for the above.
4844
4845         * dbus/Makefile.am (DBUS_LIB_SOURCES): Add dbus-signature.c,
4846         dbus-signature.h.
4847
4848         * dbus/dbus-marshal-basic.c (map_type_char_to_type): New utility
4849         function factored out of _dbus_first_type_in_signature.
4850         (_dbus_first_type_in_signature_c_str): New function; returns first
4851         type code for a type signature character.
4852
4853         * dbus/dbus-marshal-basic.h: Prototype _dbus_first_type_in_signature_c_str,
4854         handle function moves.
4855
4856         * dbus/dbus-marshal-recursive.h: Export _dbus_type_signature_next.
4857
4858         * dbus/dbus-marshal-recursive.c (_dbus_type_signature_next): New
4859         function; skips to next complete type in type signature.
4860         Implemented using previous skip_one_complete_type.  Now
4861         skip_one_complete_type just delegates to
4862         _dbus_type_signature_next.
4863
4864         * dbus/dbus-marshal-basic.c (_dbus_type_is_basic): Moved
4865         to dbus-signature.c
4866         (_dbus_type_is_container): Ditto.
4867
4868         * doc/dbus-specification.xml: Update introspection sample to
4869         use real type signatures.
4870
4871         * dbus/dbus-test.h: Prototype signature test.
4872
4873         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): Run
4874         signature tests.
4875
4876         * dbus/dbus-protocol.h (DBUS_ERROR_INVALID_SIGNATURE): New error.
4877
4878 2005-02-23  John (J5) Palmieri  <johnp@redhat.com>
4879
4880         * python/dbus_bindings.pyx.in (PendingCall::get_reply):
4881         s/dbus_pending_call_get_reply/dbus_pending_call_steal_reply
4882
4883 2005-02-21  Colin Walters  <walters@verbum.org>
4884
4885         * dbus/dbus-test-main.c (main): Take optional specific test
4886         argument.
4887
4888         * dbus/dbus-test.c (run_test): New function, runs a test function
4889         with no data directory.
4890         (run_data_test): Like above, but takes data directory.
4891         (dbus_internal_do_not_use_run_tests): Take
4892         specific test argument.  Replace lots of cut n' paste code
4893         with run_test and run_data_test.
4894
4895         * dbus/dbus-test.h: Update prototype for
4896         dbus_internal_do_not_use_run_tests.
4897
4898 2005-02-20  Havoc Pennington  <hp@redhat.com>
4899
4900         Fix bugs reported by Daniel P. Berrange
4901         
4902         * dbus/dbus-server.c (_dbus_server_unref_unlocked): new function
4903         (protected_change_watch): new function
4904         (_dbus_server_toggle_watch, _dbus_server_remove_watch)
4905         (_dbus_server_add_watch): change to work like the
4906         dbus-connection.c equivalents; like those, probably kind of
4907         busted, but should at least mostly work for now
4908         (dbus_server_disconnect): drop the lock if we were already
4909         disconnected, patch from Daniel P. Berrange
4910
4911         * dbus/dbus-server.c (_dbus_server_toggle_timeout) 
4912         (_dbus_server_remove_timeout, _dbus_server_add_timeout): all the
4913         same stuff
4914
4915         * doc/TODO: todo about unscrewing this mess
4916
4917 2005-02-19  Colin Walters  <walters@verbum.org>
4918
4919         * glib/dbus-binding-tool-glib.c
4920         (dbus_binding_tool_output_glib_server): Fix iochannel refcounting.
4921
4922         * glib/dbus-glib-tool.c: Include dbus-glib-tool.h, as well
4923         as errno.h and sys/stat.h.
4924         (lose): New function, prints error with
4925         newline and exits.
4926         (lose_gerror): Similar, but takes GError for message.
4927         (main): Add --output argument to specify output file to write to,
4928         instead of always printing to stdout.  In this mode, determine
4929         timestamps on source files to see whether any are newer than the
4930         target file.  If not, exit.  Also convert a number of error
4931         messages to use lose (since it's shorter), and switch to using
4932         g_io_channel_shutdown.
4933
4934 2005-02-19  Havoc Pennington  <hp@redhat.com>
4935
4936         * glib/dbus-gobject.c
4937         (_dbus_glib_marshal_dbus_message_to_gvalue_array): add docs
4938
4939         * glib/dbus-glib.c: fix doxygen warnings
4940
4941         * glib/dbus-gparser.c (parse_annotation): error if an annotation
4942         is found on an <arg>
4943
4944 2005-02-17  Colin Walters  <walters@verbum.org>
4945
4946         * glib/dbus-gobject.h: Don't export
4947         _dbus_glib_marshal_dbus_message_to_gvalue_array.
4948         
4949         * glib/dbus-gobject.c (_dbus_glib_marshal_dbus_message_to_gvalue_array): Do rename.
4950         (invoke_object_method): Handle it.
4951
4952         * glib/dbus-gproxy.c (marshal_dbus_message_to_g_marshaller):
4953         Handle rename.
4954         
4955 2005-02-17  Colin Walters  <walters@verbum.org>
4956
4957         * bus/.cvsignore, doc/.cvsignore
4958         * test/data/valid-service-files/.cvsignore, test/glib/.cvsignore:
4959         Update.
4960
4961 2005-02-17  Colin Walters  <walters@verbum.org>
4962         
4963         * dbus/dbus-protocol.h (DBUS_SERVICE_ORG_FREEDESKTOP_DBUS):
4964         Rename to DBUS_SERVICE_DBUS.
4965         (DBUS_PATH_ORG_FREEDESKTOP_DBUS): Rename to DBUS_PATH_DBUS.
4966         (DBUS_PATH_ORG_FREEDESKTOP_LOCAL): Rename to DBUS_PATH_LOCAL.
4967         Change the value from "org.freedesktop.Local"
4968         to "org.freedesktop.DBus.Local".
4969         (DBUS_INTERFACE_ORG_FREEDESKTOP_DBUS): Rename to DBUS_INTERFACE_DBUS.
4970         (DBUS_INTERFACE_ORG_FREEDESKTOP_INTROSPECTABLE): Rename to
4971         DBUS_INTERFACE_INTROSPECTABLE.
4972         Change the value from "org.freedesktop.Introspectable"
4973         to "org.freedesktop.DBus.Introspectable".
4974         (DBUS_INTERFACE_ORG_FREEDESKTOP_PROPERTIES): Rename to
4975         DBUS_INTERFACE_PROPERTIES.
4976         Change the value from "org.freedesktop.Properties"
4977         to "org.freedesktop.DBus.Properties".
4978         (DBUS_INTERFACE_ORG_FREEDESKTOP_PEER): Rename to
4979         DBUS_INTERFACE_PEER.
4980         Change the value from "org.freedesktop.Peer"
4981         to "org.freedesktop.DBus.Peer".
4982         (DBUS_INTERFACE_ORG_FREEDESKTOP_LOCAL): 
4983         DBUS_INTERFACE_LOCAL.
4984         Change the value from "org.freedesktop.Local"
4985         to "org.freedesktop.DBus.Local".
4986
4987         All other users of those constants have been changed.
4988
4989         * bus/driver.c (bus_driver_handle_introspect): Use constants.
4990
4991         * glib/dbus-gobject.c (handle_introspect): Use constants.
4992
4993         * doc/dbus-faq.xml, doc/dbus-specification.xml: Update for rename.
4994
4995 2005-02-17  Colin Walters  <walters@verbum.org>
4996
4997         * glib/dbus-gparser.c (struct Parser): Add in_annotation boolean.
4998         (parse_node, parse_interface, parse_method, parse_signal)
4999         (parse_property, parse_annotation): Lose if we're currently in an
5000         annotation.
5001         (parse_annotation): New function.
5002         (parser_start_element, parser_end_element): Handle annotation.
5003         (parse_method, parse_interface): Remove support for c_name attribute,
5004         switch to annotations.
5005
5006         * glib/dbus-gidl.h (interface_info_get_binding_names)
5007         (method_info_get_binding_names)
5008         (interface_info_get_binding_name, method_info_get_binding_name)
5009         (interface_info_set_binding_name, method_info_set_binding_name):
5010         Remove.
5011         (interface_info_get_annotations, method_info_get_annotations)
5012         (interface_info_get_annotation, method_info_get_annotation)
5013         (interface_info_add_annotation, method_info_add_annotation):
5014         Prototype.
5015
5016         * glib/dbus-gidl.c (struct InterfaceInfo): Substitute "annotations"
5017         for "bindings".
5018         (struct MethodInfo): Ditto.
5019         Straightfoward conversion of binding methods into annotation methods
5020         as prototyped.
5021
5022         * glib/dbus-glib-tool.c (pretty_print): Print annotations.
5023
5024         * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_C_SYMBOL): Define.
5025
5026         * glib/dbus-binding-tool-glib.c (gather_marshallers, generate_glue):
5027         Use new annotation API.
5028
5029         * doc/introspect.dtd: Fix a number of DTD syntax errors.  Add
5030         annotation element.
5031         
5032         * doc/dbus-specification.xml: Discuss introspection annotations,
5033         include list of well-known annotations.
5034
5035         * test/glib/test-service-glib.xml: Make validate against new DTD.
5036
5037 2005-02-17  Colin Walters  <walters@verbum.org>
5038
5039         This patch is based on initial work from
5040         Paul Kuliniewicz <kuliniew@purdue.edu>.
5041
5042         * glib/dbus-gvalue.c (dbus_gvalue_init): New function; move
5043         initialization of GValue from dbus type to here.
5044         (dbus_gvalue_genmarshal_name_from_type): New function; generates a string
5045         for the "glib-genmarshal" program from a DBus type.
5046         (dbus_gvalue_binding_type_from_type): New function; turns a DBus type
5047         into the C name for it we use in the glib bindings.
5048         (dbus_gvalue_ctype_from_type): New function; maps a DBus type into a
5049         glib C type (not GValue).
5050         (dbus_gvalue_demarshal): invoke dbus_gvalue_init.
5051
5052         * glib/dbus-gutils.c (_dbus_gutils_wincaps_to_uscore): Moved here
5053         from dbus-gobject.c.
5054
5055         * glib/dbus-gutils.h: Prototype it.
5056
5057         * glib/dbus-gproxy.c: Include new dbus-gobject.h.
5058         (marshal_dbus_message_to_g_marshaller): Use new shared function
5059         dbus_glib_marshal_dbus_message_to_gvalue_array.
5060
5061         * glib/dbus-gparser.c (parse_interface, parse_method): Handle c_name attribute.
5062         Will be changed once we have annotations.
5063
5064         * glib/dbus-gobject.c: Change info_hash_mutex from GStaticMutex to
5065         GStaticRWLock.  Callers updated.
5066         (wincaps_to_uscore): Move to dbus-gutils.c.  Callers updated.
5067         (string_table_next): New function for iterating over zero-terminated
5068         string value array.
5069         (string_table_lookup): New function; retrieves specific entry in
5070         array.
5071         (get_method_data): New function; look up method data in object data chunk.
5072         (object_error_domain_prefix_from_object_info)
5073         (object_error_code_from_object_info): New functions, but not implemented yet.
5074         (method_interface_from_object_info): New function; retrieve interface name.
5075         (method_name_from_object_info): New function; retrieve method name.
5076         (method_arg_info_from_object_info): New function; retrieve argument data.
5077         (arg_iterate): New function; iterates over serialized argument data.
5078         (method_dir_signature_from_object_info): New function; returns a
5079         GString holding type signature for arguments for just one
5080         direction (input or output).
5081         (method_input_signature_from_object_info)
5082         (method_output_signature_from_object_info): New functions.
5083         (dbus_glib_marshal_dbus_message_to_gvalue_array): New shared function;
5084         converts dbus message arguments into a GValue array.  Used for both
5085         signal handling and method invocation.
5086         (struct DBusGlibWriteIterfaceData): New utility structure.
5087         (write_interface): New function; generate introspection XML for
5088         an interface.
5089         (introspect_interfaces): New function; gathers all interface->methods,
5090         generates introspection XML for them.
5091         (handle_introspect): Invoke introspect_interfaces.
5092         (get_object_property): Be sure to zero-initalize stack-allocated GValue.
5093         (lookup_object_and_method): New function; examines an incoming message
5094         and attempts to match it up (via interface, method name, and argument
5095         signature) with a known object and method.
5096         (gerror_domaincode_to_dbus_error_name): New function; converts a
5097         GError domain and code into a DBus error name.  Needs GError data
5098         added to object introspection to work well.
5099         (gerror_to_dbus_error_message): Creates a DBusMessage error return from
5100         GError.
5101         (invoke_object_method): New function to invoke an object method
5102         looked up via lookup_object_and_method.  Parses the incoming
5103         message, turns it into a GValue array, then invokes the marshaller
5104         specified in the DBusGMethodInfo.  Creates a new message with
5105         either return values or error message as appropriate.
5106         (gobject_message_function): Invoke lookup_object_and_method and
5107         invoke_object_method.
5108
5109         * glib/dbus-glib-tool.c: Include dbus-binding-tool-glib.h.
5110         (enum DBusBindingOutputMode): New enum for binding output modes.
5111         (pretty_print): Print binding names.
5112         (dbus_binding_tool_error_quark): GError bits.
5113         (version): Fix typo.
5114         (main): Create GIOChannel for output.  Parse new --mode argument,
5115         possible values are "pretty-print", "glib-server", "glib-client".
5116         Use mode to invoke appropriate function.
5117         
5118         * glib/dbus-gobject.h: Prototype dbus_glib_marshal_dbus_message_to_gvalue_array.
5119
5120         * glib/dbus-glib-tool.h: New header, just includes GError bits
5121         for now.
5122
5123         * glib/dbus-gidl.c (struct InterfaceInfo): Add bindings hashtable;
5124         maps binding style to name.
5125         (struct MethodInfo): Ditto.
5126         (get_hash_keys, get_hash_key): Utility function, returns keys for
5127         a GHashTable.
5128         (interface_info_new, method_info_new): Initialize bindings.
5129         (interface_info_unref, method_info_unref): Destroy bindings.
5130         (method_info_get_binding_names, method_info_get_binding_name)
5131         (interface_info_get_binding_names, interface_info_get_binding_name):
5132         Functions for retrieving binding names.
5133         (method_info_set_binding_name, interface_info_set_binding_name):
5134         Functions for setting binding names.
5135
5136         * glib/dbus-binding-tool-glib.h: New file, has prototypes
5137         for glib binding generation.
5138
5139         * glib/dbus-binding-tool-glib.c: New file, implements server-side
5140         and client-side glib glue generation.
5141
5142         * glib/Makefile.am (dbus_binding_tool_SOURCES): Add
5143         dbus-binding-tool-glib.c, dbus-binding-tool-glib.h,
5144         dbus-glib-tool.h.
5145
5146         * dbus/dbus-glib.h (struct DBusGMethodMarshaller): Remove in favor
5147         of using GClosureMarshal directly.
5148         (struct DBusGObjectInfo): Add n_infos member.
5149
5150         * test/glib/test-service-glib.xml: New file; contains introspection data
5151         for MyTestObject used in test-service-glib.c.
5152
5153         * test/glib/test-service-glib.c (enum MyObjectError): New GError enum.
5154         (my_object_do_nothing, my_object_increment, my_object_throw_error)
5155         (my_object_uppercase, my_object_many_args): New test methods.
5156         (main): Use dbus_g_object_class_install_info to include generated object
5157         info.
5158
5159         * test/glib/Makefile.am: Generate server-side glue for test-service-glib.c,
5160         as well as client-side bindings.
5161
5162         * test/glib/test-dbus-glib.c: Include test-service-glib-bindings.h.
5163         (main): Activate TestSuiteGLibService; test invoke a bunch of its methods
5164         using both the dbus_gproxy stuff directly as well as the generated bindings.
5165
5166 2005-02-15  Havoc Pennington  <hp@redhat.com>
5167
5168         * dbus/dbus-connection.c (dbus_connection_dispatch): always
5169         complete a pending call, don't run filters first.
5170
5171         * glib/dbus-gproxy.c (dbus_g_proxy_end_call): change to use
5172         dbus_pending_call_steal_reply
5173
5174         * dbus/dbus-pending-call.c (dbus_pending_call_block): just call
5175         _dbus_connection_block_pending_call
5176         (dbus_pending_call_get_reply): change to steal_reply and return a
5177         ref
5178
5179         * dbus/dbus-connection.c
5180         (dbus_connection_send_with_reply_and_block): port to work in terms
5181         of DBusPendingCall
5182         (_dbus_connection_block_pending_call): replace block_for_reply
5183         with this
5184
5185 2005-02-14  Havoc Pennington  <hp@redhat.com>
5186
5187         * dbus/dbus-userdb-util.c (_dbus_user_database_lookup_group):
5188         properly handle looking up group information by name; fix 
5189         from j@bootlab.org
5190
5191 2005-02-13  Havoc Pennington  <hp@redhat.com>
5192
5193         * dbus/dbus-connection.c (dbus_connection_return_message) 
5194         (dbus_connection_borrow_message): hold dispatch lock while message
5195         is outstanding
5196         (_dbus_connection_block_for_reply): hold dispatch lock while we
5197         block for the reply, so nobody steals our reply
5198         (dbus_connection_pop_message): hold the dispatch lock while we
5199         pluck the message
5200
5201 2005-02-13  Havoc Pennington  <hp@redhat.com>
5202
5203         * dbus/dbus-connection.c (_dbus_connection_acquire_dispatch)
5204         (_dbus_connection_release_dispatch)
5205         (_dbus_connection_acquire_io_path)
5206         (_dbus_connection_release_io_path): make the mutex and condvar
5207         control access to the "acquired" flag. Drop the connection lock
5208         while waiting on the condvar. Hopefully these are baby steps in
5209         roughly the right direction.
5210
5211 2005-02-13  Havoc Pennington  <hp@redhat.com>
5212
5213         * dbus/dbus-connection.c: use separate mutexes for the condition
5214         variables; this is some kind of baseline for sanity, but the
5215         condition variables still aren't used correctly afaict
5216
5217 2005-02-13  Havoc Pennington  <hp@redhat.com>
5218
5219         * dbus/dbus-object-tree.c (handle_default_introspect_and_unlock):
5220         fix a double-unlock
5221
5222         * dbus/dbus-connection.c
5223         (_dbus_connection_detach_pending_call_unlocked): add this
5224
5225         Initial semi-correct pass through to fix thread locking; there are
5226         still some issues with the condition variable paths I'm pretty
5227         sure
5228         
5229         * dbus/dbus-server.c: add a mutex on DBusServer and appropriate
5230         lock/unlock calls
5231
5232         * dbus/dbus-connection.c (_dbus_connection_do_iteration_unlocked):
5233         rename to add _unlocked
5234         (struct DBusConnection): move "dispatch_acquired" and
5235         "io_path_acquired" to use only one bit each.
5236         (CONNECTION_LOCK, CONNECTION_UNLOCK): add checks with !DBUS_DISABLE_CHECKS
5237         (dbus_connection_set_watch_functions): hacky fix to reentrancy
5238         (_dbus_connection_add_watch, _dbus_connection_remove_watch) 
5239         (_dbus_connection_toggle_watch, _dbus_connection_add_timeout) 
5240         (_dbus_connection_remove_timeout) 
5241         (_dbus_connection_toggle_timeout): drop lock when calling out to
5242         user functions; done in a hacky/bad way.
5243         (_dbus_connection_send_and_unlock): add a missing unlock
5244         (_dbus_connection_block_for_reply): add a missing unlock
5245
5246         * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated):
5247         drop lock in a hacky probably unsafe way to call out to user
5248         function
5249
5250 2005-02-12  Havoc Pennington  <hp@redhat.com>
5251
5252         * tools/dbus-tree-view.c (info_set_func_text): display more
5253         details on args
5254
5255         * bus/driver.c (bus_driver_handle_list_services): list the bus
5256         driver
5257
5258         * glib/dbus-gparser.c (parse_arg): generate an arg name if none is supplied
5259
5260         * glib/dbus-gidl.c (signal_info_get_n_args): new function
5261         (method_info_get_n_args): new function
5262
5263 2005-02-12  Havoc Pennington  <hp@redhat.com>
5264
5265         * bus/driver.c (bus_driver_handle_introspect): add introspection
5266         for bus driver
5267
5268 2005-02-12  Havoc Pennington  <hp@redhat.com>
5269
5270         * bus/driver.c: put the signature of each bus driver method in the
5271         table of handlers and check it on incoming calls; this isn't
5272         really useful, but going to add introspect support in a minute.
5273
5274 2005-02-11  Joe Shaw  <joeshaw@novell.com>
5275
5276         * mono/Connection.cs: The unpredictability of finalizers in mono
5277         prevents us from deterministically disconnecting the filters from
5278         the Service class's finalizer, so move tracking of filters and
5279         matches here.  Add API for that.
5280
5281         * mono/Service.cs: Remove the code, add code which calls the
5282         methods now on the Connection class.
5283
5284 2005-02-11  John (J5) Palmieri  <johnp@redhat.com>
5285
5286         * python/dbus.py (class Sender): added to support dbus signals better
5287         (Bus::add_signal_receiver): added expand_args parameter which defaults
5288         to True.  When expand args is True the signal handler will pass the 
5289         message arguments as parameters to the signal handler.  If False
5290         revert to previous behavior where the signal handler must get the
5291         argument list from the message.  This is to help port applications
5292         like HAL that have a tendancy to send variable length argument lists.
5293         self._match_rule_to_receivers is now a dict of dicts.
5294         (Bus::remove_signal_receiver): pop handler off the dict intead of 
5295         removing it from a list
5296         (Bus::_signal_func): change signal handlers so that interface,
5297         signal_name, service, path and message are packed into a Sender
5298         object and that is passed to the handler.  If expand_args is True
5299         extract the args list from the message and append it to the parameter
5300         list
5301         
5302         * python/dbus_bindings.pyx.in (class Signature): added to support 
5303         signiature types
5304         (MessageIter::__init__): changed iteration limit to match D-BUS
5305         (MessageIter::get*): added INT16, UINT16, SIGNATURE, DICT_ENTRY, 
5306         STRUCT and VARIENT type support
5307         (MessageIter::python_value_to_dbus_sig): made recursive to support
5308         recursive types
5309         (MessageIter::append*): added Signature, dict, tuple 
5310         support
5311
5312         * python/examples/example-client.py: added examples of getting tuples
5313         and dicts
5314
5315         * python/examples/example-service.py: added examples of sending tuples
5316         and dicts
5317
5318         * python/examples/example-signal-recipient.py: Fixed to handle new
5319         signal callback format
5320
5321 2005-02-10  Havoc Pennington  <hp@redhat.com>
5322
5323         * test/glib/test-dbus-glib.c (main): fix so this test doesn't fail
5324         (call dbus_g_proxy_add_signal)
5325
5326         * dbus/dbus-server-unix.c (_dbus_server_new_for_tcp_socket):
5327         escape the hostname
5328         (_dbus_server_new_for_domain_socket): escape the path
5329
5330         * dbus/dbus-address.c (dbus_address_escape_value): new
5331         (dbus_address_unescape_value): new
5332         (dbus_parse_address): unescape values
5333
5334         * dbus/dbus-string.c (_dbus_string_append_byte_as_hex): new function
5335
5336         * doc/dbus-specification.xml: explain how to escape values in
5337         addresses
5338
5339 2005-02-10  Havoc Pennington  <hp@redhat.com>
5340
5341         * dbus/dbus-message-factory.c (generate_special): modify test to
5342         avoid using a non-basic dict key
5343
5344         * dbus/dbus-marshal-validate-util.c: add test for the below
5345
5346         * doc/dbus-specification.xml: require that dict keys are a basic
5347         type
5348
5349         * dbus/dbus-marshal-validate.c
5350         (_dbus_validate_signature_with_reason): require that dict key is a
5351         basic type
5352
5353 2005-02-10  Havoc Pennington  <hp@redhat.com>
5354
5355         * dbus/dbus-object-tree.c (handle_default_introspect_and_unlock):
5356         change to be _and_unlock instead of _unlocked
5357
5358         * dbus/dbus-connection.c
5359         (_dbus_connection_send_preallocated_unlocked_no_update): rename to
5360         have no_update so we can find this bug quickly in future
5361
5362 2005-02-10  Havoc Pennington  <hp@redhat.com>
5363
5364         * dbus/dbus-message-util.c (verify_test_message): tests for string
5365         array
5366
5367         * dbus/dbus-message.c (dbus_message_append_args_valist): add
5368         support for arrays of string/signature/path
5369
5370 2005-02-10  Joe Shaw  <joeshaw@novell.com>
5371
5372         * dbus/dbus-connection.c
5373         (_dbus_connection_queue_received_message_link,
5374         _dbus_connection_message_sent): Add the path to
5375         the verbose output.
5376         (_dbus_connection_send_preallocated_and_unlock): Added.  Calls
5377         _dbus_connection_send_preallocated_unlocked(), updated the
5378         dispatch status, and unlocks.  Fixes a bug where certain
5379         situations (like a broken pipe) could cause a Disconnect message
5380         to not be sent, tricking the bus into thinking a service was still
5381         there when the process had quit.
5382         (_dbus_connection_send_preallocated): Call
5383         _dbus_connection_send_preallocated_and_unlock().
5384         (_dbus_connection_send_and_unlock): Added.  Calls
5385         _dbus_connection_send_preallocated_and_unlock().
5386         (dbus_connection_send): Call _dbus_connection_send_and_unlock().
5387         (dbus_connection_send_with_reply): Update the dispatch status and
5388         unlock.
5389
5390         * mono/Service.cs (~Service): Added.  Removes the filter so that
5391         we don't get unmanaged code calling back into a GCed delegate.
5392         (RemoveFilter); Added.
5393
5394 2005-02-09  John (J5) Palmieri  <johnp@redhat.com>
5395
5396         * dbus/dbus-message.c (dbus_message_iter_open_container):
5397         - Removed check for iterator type being an array because
5398         get_arg_type does not work with writer iterators
5399         - Pass NULL to _dbus_type_writer_recurse if signiture is NULL
5400
5401 2005-02-07  Havoc Pennington  <hp@redhat.com>
5402
5403         * doc/dbus-specification.xml: some more language cleanups; add
5404         stuff about how to deal with invalid protocol and extension
5405         points; add _ to allowed chars in auth commands; add EXTENSION_
5406         auth command prefix
5407
5408 2005-02-06  Havoc Pennington  <hp@redhat.com>
5409
5410         * s/expected/required/ in a couple places for clarity
5411
5412 2005-02-07  Colin Walters  <walters@verbum.org>
5413
5414         * bus/selinux.c (bus_selinux_allows_send): Handle NULL for
5415         sender or proposed_recipient.
5416
5417 2005-02-06  Havoc Pennington  <hp@redhat.com>
5418
5419         * dbus/dbus-message-factory.c (generate_special): more tests
5420
5421         * dbus/dbus-marshal-validate.c (validate_body_helper): detect
5422         array length that exceeds the maximum
5423
5424 2005-02-05  Havoc Pennington  <hp@redhat.com>
5425
5426         * dbus/dbus-message-factory.c (generate_special): more test cases,
5427         increasing coverage
5428
5429         * dbus/dbus-marshal-validate.c (validate_body_helper): return the
5430         reason why a signature was invalid
5431
5432         * dbus/dbus-marshal-header.c (load_and_validate_field): fix to
5433         skip the length of the string before we look at it in validation
5434
5435         * dbus/dbus-string-util.c (_dbus_string_test): add tests for
5436         equal_substring
5437
5438         * dbus/dbus-message.c (_dbus_message_loader_new): default
5439         max_message_length to DBUS_MAXIMUM_MESSAGE_LENGTH
5440
5441 2005-02-05  Havoc Pennington  <hp@redhat.com>
5442
5443         * dbus/dbus-marshal-validate.c (validate_body_helper): fix crash
5444         if the signature of a variant was empty
5445         (_dbus_validate_signature_with_reason): catch "(a)" (array inside
5446         struct with no element type)
5447
5448         * dbus/dbus-message-factory.c (generate_uint32_changed): add more
5449         mangled messages to break things
5450
5451 2005-02-04  Havoc Pennington  <hp@redhat.com>
5452
5453         * glib/dbus-gproxy.c (dbus_g_proxy_disconnect_signal): use
5454         g_quark_try_string() so it actually can return 0
5455         (dbus_g_proxy_connect_signal): ditto
5456
5457 2005-02-04  Havoc Pennington  <hp@redhat.com>
5458
5459         * glib/dbus-gproxy.c (dbus_g_proxy_emit_remote_signal): fix a
5460         bogus warning
5461         (tristring_from_message): assert cleanly on null path/interface
5462         (should not be possible though I decided later)
5463         (dbus_g_proxy_dispose): move proxy manager unregistration here
5464         (DBUS_G_PROXY_DESTROYED): add this macro, and use it in a bunch of
5465         g_return_if_fail() checks
5466
5467 2005-02-04  Havoc Pennington  <hp@redhat.com>
5468
5469         * doc/Makefile.am (EXTRA_DIST): add DTDs to makefile
5470
5471         * doc/introspect.dtd: add introspect.dtd from David A. Wheeler
5472         (with some minor changes)
5473
5474         * doc/dbus-specification.xml: add deprecated attribute to
5475         introspection format
5476
5477 2005-01-31  Havoc Pennington  <hp@redhat.com>
5478
5479         * glib/dbus-gproxy.c: rewrite how signals work again, this time I
5480         think it's sort of right
5481
5482 2005-01-30  Havoc Pennington  <hp@redhat.com>
5483
5484         * tools/dbus-viewer.c: kind of half-ass hook up the option menu.
5485
5486 2005-01-30  Havoc Pennington  <hp@redhat.com>
5487
5488         * tools/dbus-names-model.c: dynamically watch NameOwnerChanged
5489
5490         * autogen.sh: change to autotools 1.9
5491
5492         * glib/dbus-gproxy.c: completely change how signals work
5493         (dbus_g_proxy_add_signal): new function to specify signature of a
5494         signal
5495         (dbus_g_proxy_emit_received): marshal the dbus message to GValues,
5496         and g_warning if the incoming message has the wrong signature.
5497
5498 2005-01-30  Havoc Pennington  <hp@redhat.com>
5499
5500         * tools/dbus-names-model.c (have_names_notify): fix this
5501
5502         * dbus/dbus-message.c (_dbus_message_iter_get_args_valist): clean
5503         up the string array handling a bit 
5504
5505 2005-01-30  Havoc Pennington  <hp@redhat.com>
5506
5507         * glib/dbus-glib.c (dbus_g_pending_call_set_notify): new function
5508         (dbus_g_pending_call_cancel): new function
5509
5510         * dbus/dbus-glib.h: move GType decls for connection/message here;
5511         * dbus/dbus-glib.c: move all the g_type and ref/unref stuff in
5512         here, just kind of rationalizing how we handle all that
5513
5514         * tools/dbus-names-model.c: new file for a tree model listing the
5515         services on a bus
5516
5517         * tools/dbus-tree-view.c (model_new): use proper typing on the
5518         model rows
5519
5520 2005-01-30  Havoc Pennington  <hp@redhat.com>
5521
5522         * glib/dbus-gmain.c: add a custom GSource back that just checks
5523         whether the message queue has anything in it; otherwise, there are 
5524         cases where we won't see messages in the queue since there was no 
5525         IO visible to the glib main loop
5526
5527         * dbus/dbus-connection-internal.h (_DBUS_DEFAULT_TIMEOUT_VALUE):
5528         increase default message timeout to 25 seconds
5529
5530 2005-01-30  Havoc Pennington  <hp@redhat.com>
5531
5532         * test/glib/test-profile.c (no_bus_stop_server): remove the
5533         warning about the g_warning that I just fixed
5534
5535         * glib/dbus-gmain.c: rewrite the main loop stuff to avoid the
5536         custom source, seems to be a lot easier to understand and work
5537         better.
5538
5539 2005-01-30  Havoc Pennington  <hp@redhat.com>
5540
5541         I think this main loop thing is conceptually broken, but here are 
5542         some band aids. I'll maybe rewrite it in a minute.
5543         
5544         * glib/dbus-gmain.c (add_timeout): timeout stuff doesn't use the
5545         custom GSource, so don't pass it in; confusing
5546         (gsource_server_finalize, gsource_connection_finalize): add
5547         finalize handlers that remove all the watches.  
5548
5549 2005-01-30  Havoc Pennington  <hp@redhat.com>
5550
5551         * glib/dbus-gobject.c (introspect_properties): fix the XML
5552         generated
5553
5554         * dbus/dbus-message.c (dbus_message_unref): add an in_cache flag
5555         which effectively detects the use of freed messages
5556
5557         * glib/dbus-gobject.c (handle_introspect): modify and return the
5558         reply message instead of the incoming message
5559
5560         * dbus/dbus-object-tree.c (handle_default_introspect_unlocked):
5561         gee, maybe it should SEND THE XML instead of just making a string
5562         and freeing it again ;-)
5563
5564         * tools/dbus-print-message.c (print_message): improve printing of
5565         messages
5566
5567         * configure.in: add debug-glib.service to the output
5568
5569 2005-01-30  Havoc Pennington  <hp@redhat.com>
5570
5571         dbus-viewer introspected and displayed the bus driver
5572         
5573         * dbus/dbus-object-tree.c 
5574         (object_tree_test_iteration): add tests for a handler registered on "/"
5575
5576         * dbus/dbus-object-tree.c
5577         (_dbus_decompose_path): fix to handle path "/" properly
5578         (run_decompose_tests): add tests for path decomposition
5579         
5580         * glib/dbus-gutils.c (_dbus_gutils_split_path): fix to handle "/"
5581         properly
5582
5583         * glib/dbus-gobject.c (handle_introspect): fix quotes
5584
5585         * test/glib/run-test.sh: support launching the bus, then running
5586         dbus-viewer
5587
5588         * test/glib/test-service-glib.c (main): put in a trivial gobject
5589         subclass and register it on the connection
5590
5591         * bus/driver.c (bus_driver_handle_introspect): implement
5592         introspection of the bus driver service
5593
5594         * dbus/dbus-protocol.h: add #defines for the XML namespace,
5595         identifiers, doctype decl
5596
5597         * bus/driver.c (bus_driver_handle_get_service_owner): handle
5598         attempts to get owner of DBUS_SERVICE_ORG_FREEDESKTOP_DBUS by 
5599         returning the service unchanged.
5600         (bus_driver_handle_message): remove old check for reply_serial in
5601         method calls, now the message type deals with that
5602         (bus_driver_handle_message): handle NULL interface
5603
5604         * glib/dbus-gproxy.c (dbus_g_proxy_get_bus_name): new function
5605
5606         * glib/dbus-gloader-expat.c (description_load_from_string): allow
5607         -1 for len
5608
5609         * tools/dbus-viewer.c: add support for introspecting a service on
5610         a bus
5611
5612         * glib/dbus-gproxy.c (dbus_g_pending_call_ref): add
5613         (dbus_g_pending_call_unref): add
5614
5615 2005-01-29  Havoc Pennington  <hp@redhat.com>
5616
5617         * tools/dbus-tree-view.c: add support for displaying properties.
5618         (run dbus-viewer with an introspect xml file as arg, then resize
5619         the window so the tree elements show up, not sure what that is)
5620
5621         * glib/dbus-gobject.c (handle_introspect): return
5622         org.freedesktop.Properties and org.freedesktop.Introspectable
5623         interfaces when we are introspected.
5624
5625         * doc/dbus-specification.xml: allow empty interface name when 
5626         Get/Set a property
5627
5628 2005-01-29  Havoc Pennington  <hp@redhat.com>
5629
5630         * glib/Makefile.am: rename dbus-glib-tool to dbus-binding-tool;
5631         though it uses glib, it could be extended for any binding in
5632         principle
5633
5634         * glib/dbus-gobject.c (gobject_message_function): change to the
5635         new way properties work
5636
5637         * dbus/dbus-protocol.h: add the new interfaces
5638
5639         * doc/dbus-specification.xml: document the introspection format,
5640         Introspectable interface, and add an org.freedesktop.Properties
5641         interface.
5642
5643         * glib/dbus-gparser.c: add support for a <property> element
5644
5645         * glib/dbus-gidl.c: add PropertyInfo
5646
5647         * glib/dbus-gobject.c (handle_introspect): put the outermost
5648         <node> outside the signal and property descriptions.
5649         (introspect_properties): export properties as <property> rather
5650         than as method calls
5651
5652 2005-01-28  Havoc Pennington  <hp@redhat.com>
5653
5654         * doc/TODO, doc/dbus-specification.xml: spec and TODO tweaks
5655         related to authentication protocol
5656
5657 2005-01-28  John (J5) Palmieri  <johnp@redhat.com>
5658
5659         * python/dbus_bindings.pyx.in: Updated to handle new D-BUS type system
5660                 - BUS_ACTIVATION -> BUS_STARTER
5661                 - DBUS_BUS_ACTIVATION -> DBUS_BUS_STARTER
5662                 - class MessageIter (__init__): Added recursion checking 
5663                 so we throw a nice error instead of just disconnecting from the
5664                 bus.
5665                 (get): Added arg_type parameter for recursion.
5666                 Removed the nil type
5667                 Added signiture type placeholder (not implemented)
5668                 Added struct type placeholder (not implemented)
5669                 Added varient type placeholder (not implemented)
5670                 Commented out dict type for now     
5671                 (get_element_type): renamed from get_array_type
5672                 (get_*): changed to use the dbus_message_iter_get_basic API
5673                 (get_*_array): removed in favor of recursive get_array method
5674                 (get_array): new recursive method which calls get to marshal
5675                 the elements of the array
5676                 (value_to_dbus_sig): New method returns the corrasponding
5677                 dbus signiture to a python value
5678                 (append): Comment out dict handling for now
5679                 Handle lists with the new recursive API
5680                 Comment out None handling for now
5681                 (append_nil): removed
5682                 (append_*): changed to use dbus_message_iter_append_basic API
5683                 (append_*_array): removed in favor of recursive append_array 
5684                 method
5685                 (__str__): Make it easier to print out recursive iterators
5686                 for debugging
5687                 - class Message (__str__): moved type inspection to the
5688                 MessageIter class' __str__ method
5689                 (get_iter): Added an append parameter wich defaults to False
5690                 If True use the new API's to create an append iterator
5691
5692         * python/dbus.py: Update to use new bindings API
5693                 - TYPE_ACTIVATION -> TYPE_STARTER
5694                 - class Bus (_get_match_rule): GetServiceOwner -> GetNameOwner
5695                 - class ActivationBus -> class StarterBus
5696                 - class RemoteObject (__call__): get an append iterator
5697                 - (_dispatch_dbus_method_call): get an append iterator
5698                 - class Object (emit_signal): get an append iterator
5699
5700         * python/examples/: Fixed up the examples to work with the new API
5701                 
5702 2005-01-28  Joe Shaw  <joeshaw@novell.com>
5703
5704         * configure.in: Bump version up to 0.30.
5705
5706         * HACKING: Add a release item to bump the version number up after 
5707         a release.
5708
5709 2005-01-28  Havoc Pennington  <hp@redhat.com>
5710
5711         * doc/dbus-specification.xml: update to describe 16-bit types and
5712         dict entries
5713
5714         * dbus/dbus-marshal-basic.c (_dbus_unpack_uint16): fix broken
5715         assertion
5716
5717         * dbus/dbus-protocol.h (DBUS_TYPE_DICT_ENTRY): add DICT_ENTRY as a
5718         type
5719
5720         * dbus/dbus-marshal-recursive.c: implement
5721
5722 2005-01-27  Havoc Pennington  <hp@redhat.com>
5723
5724         * dbus/dbus-arch-deps.h.in: add 16/32-bit types
5725
5726         * configure.in: find the right type for 16 and 32 bit ints as well
5727         as 64
5728
5729         * dbus/dbus-protocol.h (DBUS_TYPE_INT16, DBUS_TYPE_UINT16): add
5730         the 16-bit types so people don't have to stuff them in 32-bit or
5731         byte arrays.
5732
5733 2005-01-27  Havoc Pennington  <hp@redhat.com>
5734
5735         * dbus/dbus-message.c: byteswap the message if you init an
5736         iterator to read/write from it
5737         
5738         * dbus/dbus-marshal-byteswap.c: new file implementing 
5739         _dbus_marshal_byteswap()
5740
5741         * dbus/dbus-marshal-basic.c: add _dbus_swap_array()
5742
5743 2005-01-26  Havoc Pennington  <hp@redhat.com>
5744         
5745         * dbus/dbus-marshal-validate-util.c: break this out (and fix
5746         build, apparently - nobody noticed?)
5747         
5748 2005-01-26  Havoc Pennington  <hp@redhat.com>
5749
5750         * dbus/dbus-marshal-recursive.h: remove todo comment
5751
5752 2005-01-25  Joe Shaw  <joeshaw@novell.com>
5753
5754         * Land the mono binding changes to conform to the new APIs.
5755
5756         * mono/Makefile.am: Remove Custom.cs, DBusType/Custom.cs,
5757         DBusType/Dict.cs, and DBusType/Nil.cs from the build.
5758
5759         * mono/Arguments.cs (GetCodeAsString): Added.  Returns the dbus
5760         type code as a string.
5761         (InitAppending): Rename dbus_message_append_iter_init() to
5762         dbus_message_iter_init_append().
5763
5764         * mono/BusDriver.cs: Rename ServiceEventHandler to
5765         NameOwnerChangedHandler.  Rename GetServiceOwner to GetOwner.
5766         Rename ServiceOwnerChanged to NameOwnerChanged.
5767
5768         * mono/Connection.cs: Rename BaseService to UniqueName, and the
5769         underlying C call.
5770
5771         * mono/Custom.cs: Removed.  The CUSTOM type has been removed.
5772
5773         * mono/Service.cs: Rename Exists to HasOwner, internally rename
5774         dbus_bus_acquire_service() to dbus_bus_request_name().
5775
5776         * mono/DBusType/Array.cs (ctor): Use Type.GetElementType() instead
5777         of Type.UnderlyingSystemType to get the correct element type for
5778         the array.
5779         (ctor): Update code for new APIs: use dbus_message_iter_recurse(),
5780         dbus_message_get_{element|arg}_type() instead of
5781         dbus_message_iter_init_array_iterator().
5782         (Append): Replace dbus_message_iter_append_array() with
5783         dbus_message_iter_open_container() and
5784         dbus_message_iter_close_container().
5785
5786         * mono/DBusType/Custom.cs, mono/DBusType/Nil.cs: Removed.  These
5787         types have been removed.
5788         
5789         * mono/DBusType/*.cs: Replace calls of
5790         dbus_message_iter_get_[type]() to dbus_message_iter_get_basic(),
5791         but specify the type in the DllImport extern declaration.  Ditto
5792         for dbus_message_iter_append_[type]() ->
5793         dbus_message_iter_append_basic().
5794
5795         * mono/example/BusListener.cs: Update for ServiceEventHandler ->
5796         NameOwnerChangedHandler.
5797
5798 2005-01-25  John (J5) Palmieri  <johnp@redhat.com>
5799
5800         * python/dbus_bindings.pyx.in: Rename of methods and bindings
5801                 - get_base_service -> get_unique_name
5802                 - bus_get_base_service -> bus_get_unique_name
5803                 - dbus_bus_get_base_service -> dbus_bus_get_unique_name
5804                 - ACTIVATION_REPLY_ACTIVATED -> DBUS_START_REPLY_SUCCESS 
5805                 - ACTIVATION_REPLY_ALREADY_ACTIVE -> DBUS_START_REPLY_ALREADY_RUNNING
5806                 - bus_activate_service -> bus_start_service_by_name
5807                 - dbus_bus_activate_service -> dbus_bus_start_service_by_name
5808                 - bus_acquire_service -> bus_request_name
5809                 - dbus_bus_acquire_service -> dbus_bus_request_name
5810                 - bus_service_exists -> bus_name_has_owner
5811                 - dbus_bus_service_exists -> dbus_bus_name_has_owner
5812
5813         * python/dbus.py: Rename of methods
5814                 - activate_service -> start_service_by_name
5815                 - bus_acquire_service -> bus_request_name
5816                 - ACTIVATION_REPLY_ACTIVATED -> START_REPLY_SUCCESS 
5817                 - ACTIVATION_REPLY_ALREADY_ACTIVE -> START_REPLY_ALREADY_RUNNING
5818
5819         
5820 2005-01-24  Joe Shaw  <joeshaw@novell.com>
5821
5822         * dbus/dbus-connection.c (dbus_connection_dispatch): Print out the
5823         signature for the method that can't be found.
5824
5825         * dbus/dbus-message.c (dbus_message_iter_init): To check to see if
5826         the message has any arguments, we need to call
5827         _dbus_type_reader_get_current_type(), not
5828         _dbus_type_reader_has_next().
5829
5830 2005-01-24  Havoc Pennington  <hp@redhat.com>
5831
5832         * dbus/dbus-message-factory.c: more testing of message validation
5833
5834         * dbus/dbus-protocol.h (DBUS_MINIMUM_HEADER_SIZE): move to this
5835         header
5836
5837 2005-01-23  Havoc Pennington  <hp@redhat.com>
5838
5839         * dbus/dbus-message-factory.c, dbus/dbus-message-util.c: 
5840         get this all working, not many tests in the framework yet though
5841
5842 2005-01-22  Havoc Pennington  <hp@redhat.com>
5843
5844         * doc/dbus-faq.xml, doc/dbus-tutorial: add a FAQ and update
5845         tutorial, based on work from David Wheeler.
5846
5847 2005-01-21  Havoc Pennington  <hp@redhat.com>
5848
5849         * dbus/dbus-bus.c: add more return_if_fail checks
5850
5851         * dbus/dbus-message.c (load_message): have the "no validation"
5852         mode (have to edit the code to toggle the mode for now though)
5853
5854         * dbus/dbus-marshal-header.c (_dbus_header_load): have a mode that
5855         skips all validation; I want to use this at least for benchmark
5856         baseline, I'm not sure if it should be a publicly-available switch.
5857
5858 2005-01-21  Havoc Pennington  <hp@redhat.com>
5859
5860         * glib/dbus-gmain.c: don't put the GLib bindings in the same
5861         toplevel doxygen group as the low-level API stuff
5862
5863         * dbus/dbus.h: note that libdbus is the low-level API
5864
5865 2005-01-20  Havoc Pennington  <hp@redhat.com>
5866
5867         * update-dbus-docs.sh: script to update docs on the web site, only
5868         works for me though. neener.
5869
5870 2005-01-20  Havoc Pennington  <hp@redhat.com>
5871
5872         * dbus/dbus-sysdeps.c (_dbus_poll): amazingly, trying to compile
5873         code can reveal bugs in it
5874
5875 2005-01-20  Havoc Pennington  <hp@redhat.com>
5876
5877         * dbus/dbus-sysdeps.c (_dbus_poll): fix several bugs in the
5878         select() version, patches from Tor Lillqvist
5879
5880 2005-01-20  Havoc Pennington  <hp@redhat.com>
5881
5882         * doc/dbus-tutorial.xml: replace > with &gt;
5883
5884         * bus/services.c (bus_registry_acquire_service): validate the name
5885         and return a better error if it's no good.
5886
5887         * doc/dbus-specification.xml: note NO_AUTO_START change
5888
5889         * dbus/dbus-protocol.h (DBUS_HEADER_FLAG_NO_AUTO_START): change
5890         from AUTO_START, we're toggling the default
5891
5892         * bus/dispatch.c: adapt the tests to change of auto-start default
5893
5894 2005-01-18  Havoc Pennington  <hp@redhat.com>
5895
5896         * rename dbus-daemon-1 to dbus-daemon throughout
5897
5898 2005-01-18  Havoc Pennington  <hp@redhat.com>
5899
5900         * Throughout, grand renaming to strip out the use of "service",
5901         just say "name" instead (or "bus name" when ambiguous).  Did not
5902         change the internal code of the message bus itself, only the
5903         programmer-facing API and messages.
5904         
5905         * doc/dbus-specification.xml: further update the message bus section
5906         
5907         * bus/config-parser.c (all_are_equiv): fix bug using freed string
5908         in error case
5909
5910 2005-01-17  Havoc Pennington  <hp@redhat.com>
5911
5912         * dbus/dbus-types.h: remove 16-bit types since we don't use them
5913         ever
5914
5915         * dbus/dbus-marshal-validate.c (_dbus_validate_path): disallow any
5916         "invalid name character" not only non-ASCII
5917
5918         * doc/dbus-specification.xml: further update spec, message bus 
5919         parts are still out-of-date but the marshaling etc. stuff is now
5920         accurate-ish
5921
5922 2005-01-17  Havoc Pennington  <hp@redhat.com>
5923
5924         * doc/dbus-specification.xml: partially update spec
5925
5926 2005-01-17  Havoc Pennington  <hp@redhat.com>
5927
5928         * Throughout, align variant bodies according to the contained
5929         type, rather than always to 8. Should save a fair bit of space in
5930         message headers.
5931         
5932         * dbus/dbus-marshal-validate.c (_dbus_validate_body_with_reason):
5933         fix handling of case where p == end
5934
5935         * doc/TODO: remove the dbus_bool_t item and variant alignment items
5936
5937 2005-01-17  Havoc Pennington  <hp@redhat.com>
5938
5939         * dbus/dbus-types.h: hardcode dbus_bool_t to 32 bits
5940
5941         * Throughout: modify DBUS_TYPE_BOOLEAN to be a 32-bit type instead
5942         of an 8-bit type. Now dbus_bool_t is the type to use whenever you 
5943         are marshaling/unmarshaling a boolean.
5944
5945 2005-01-16  Havoc Pennington  <hp@redhat.com>
5946
5947         This is about it on what can be disabled/deleted from libdbus
5948         easily, back below 150K anyhow. Deeper cuts are more work than 
5949         just turning the code off as I've done here.
5950         
5951         * dbus/dbus-marshal-basic.c (_dbus_pack_int32): we don't need the
5952         signed int convenience funcs
5953
5954         * dbus/dbus-internals.c (_dbus_verbose_real): omit when not in
5955         verbose mode
5956
5957         * dbus/dbus-string-util.c, dbus/dbus-string.c: more breaking
5958         things out of libdbus
5959
5960         * dbus/dbus-sysdeps.c, dbus/dbus-sysdeps-util.c: same
5961         
5962         * dbus/dbus-hash.c: purge the TWO_STRINGS crap (well, make it
5963         tests-enabled-only, though it should probably be deleted)
5964
5965         * dbus/dbus-message-util.c: same stuff
5966
5967         * dbus/dbus-auth-util.c: same stuff
5968
5969 2005-01-16  Havoc Pennington  <hp@redhat.com>
5970
5971         * dbus/dbus-userdb-util.c: split out part of dbus-userdb.c
5972
5973         * dbus/dbus-sysdeps.c (_dbus_uid_from_string): move here to pave
5974         way for stripping down dbus-userdb.c stuff included in libdbus.
5975         Rename _dbus_parse_uid for consistency.
5976
5977 2005-01-16  Havoc Pennington  <hp@redhat.com>
5978
5979         * dbus/dbus-internals.c (_dbus_real_assert): print the function
5980         name the assertion failed in
5981
5982         * dbus/dbus-internals.h (_dbus_return_if_fail) 
5983         (_dbus_return_val_if_fail): assert that the name of the function
5984         containing the check doesn't start with '_', since we only want to 
5985         use checks on public functions
5986         
5987         * dbus/dbus-connection.c (_dbus_connection_ref_unlocked): change
5988         checks to assertions
5989
5990         * dbus/dbus-marshal-header.c (_dbus_header_set_field_basic):
5991         change checks to asserts for private function
5992
5993         * dbus/dbus-message.c (_dbus_message_set_serial): checks
5994         to asserts for private function
5995
5996         * dbus/dbus-marshal-recursive.c (skip_one_complete_type): remove
5997         broken assertion that was breaking make check
5998         (_dbus_type_reader_array_is_empty): remove this rather than fix
5999         it, was only used in assertions
6000
6001 2005-01-16  Havoc Pennington  <hp@redhat.com>
6002
6003         * test/unused-code-gc.py: hacky script to find code that's used
6004         only by the bus (not libdbus) or used only by tests or not used at
6005         all. It has some false alarms, but looks like we can clean up a
6006         lot of size from libdbus.
6007
6008         * dbus/dbus-sysdeps.c, dbus/dbus-sysdeps-utils.c,
6009         dbus/Makefile.am: initially move 10K of binary size out of libdbus
6010         
6011 2005-01-16  Havoc Pennington  <hp@redhat.com>
6012
6013         * Add and fix docs according to Doxygen warnings throughout
6014         source.
6015         
6016         * dbus/dbus-marshal-recursive.c
6017         (_dbus_type_reader_array_is_empty): change this to just call
6018         array_reader_get_array_len() and make it static
6019
6020         * dbus/dbus-message.c (dbus_message_iter_get_element_type): rename
6021         from get_array_type
6022         (dbus_message_iter_init_append): rename from append_iter_init
6023
6024         * dbus/dbus-marshal-recursive.c
6025         (_dbus_type_reader_get_element_type): rename from
6026         _dbus_type_reader_get_array_type
6027
6028 2005-01-15  Havoc Pennington  <hp@redhat.com>
6029
6030         * test/glib/test-profile.c (with_bus_server_filter): fix crash
6031
6032         * dbus/dbus-marshal-basic.c (_dbus_unpack_uint32): inline as macro
6033         when DBUS_DISABLE_ASSERT
6034         (_dbus_marshal_set_basic): be sure we align for the string length
6035
6036         * dbus/dbus-marshal-recursive.c (skip_one_complete_type): make
6037         this look faster
6038
6039         * dbus/dbus-string.c (_dbus_string_get_const_data_len): add an
6040         inline macro version
6041         (_dbus_string_set_byte): provide inline macro version
6042
6043 2005-01-15  Havoc Pennington  <hp@redhat.com>
6044
6045         * Land the new message args API and type system.
6046
6047         This patch is huge, but the public API change is not 
6048         really large. The set of D-BUS types has changed somewhat, 
6049         and the arg "getters" are more geared toward language bindings;
6050         they don't make a copy, etc.
6051
6052         There are also some known issues. See these emails for details
6053         on this huge patch:
6054         http://lists.freedesktop.org/archives/dbus/2004-December/001836.html
6055         http://lists.freedesktop.org/archives/dbus/2005-January/001922.html
6056         
6057         * dbus/dbus-marshal-*: all the new stuff
6058
6059         * dbus/dbus-message.c: basically rewritten
6060
6061         * dbus/dbus-memory.c (check_guards): with "guards" enabled, init
6062         freed blocks to be all non-nul bytes so using freed memory is less
6063         likely to work right
6064
6065         * dbus/dbus-internals.c (_dbus_test_oom_handling): add
6066         DBUS_FAIL_MALLOC=N environment variable, so you can do
6067         DBUS_FAIL_MALLOC=0 to skip the out-of-memory checking, or
6068         DBUS_FAIL_MALLOC=10 to make it really, really, really slow and
6069         thorough.
6070
6071         * qt/message.cpp: port to the new message args API
6072         (operator<<): use str.utf8() rather than str.unicode()
6073         (pretty sure this is right from the Qt docs?)
6074
6075         * glib/dbus-gvalue.c: port to the new message args API
6076
6077         * bus/dispatch.c, bus/driver.c: port to the new message args API
6078
6079         * dbus/dbus-string.c (_dbus_string_init_const_len): initialize the
6080         "locked" flag to TRUE and align_offset to 0; I guess we never
6081         looked at these anyhow, but seems cleaner.
6082
6083         * dbus/dbus-string.h (_DBUS_STRING_ALLOCATION_PADDING):
6084         move allocation padding macro to this header; use it to implement
6085         (_DBUS_STRING_STATIC): ability to declare a static string.
6086
6087         * dbus/dbus-message.c (_dbus_message_has_type_interface_member):
6088         change to return TRUE if the interface is not set.
6089
6090         * dbus/dbus-string.[hc]: move the D-BUS specific validation stuff
6091         to dbus-marshal-validate.[hc]
6092
6093         * dbus/dbus-marshal-basic.c (_dbus_type_to_string): move here from
6094         dbus-internals.c
6095
6096         * dbus/Makefile.am: cut over from dbus-marshal.[hc]
6097         to dbus-marshal-*.[hc]
6098
6099         * dbus/dbus-object-tree.c (_dbus_decompose_path): move this
6100         function here from dbus-marshal.c
6101
6102 2005-01-12  Joe Shaw  <joeshaw@novell.com>
6103
6104         * NEWS: Update for 0.23.
6105
6106         * configure.in: Release 0.23.
6107
6108 2005-01-12  Joe Shaw  <joeshaw@novell.com>
6109
6110         * mono/Makefile.am, mono/example/Makefile.am: Always build the 
6111         dbus DLL with --debug.  Clean up after the .mdb files this leaves
6112         behind.
6113
6114         * mono/doc/Makefile.am: Need to uninstall the docs on "make
6115         uninstall"
6116
6117         * mono/Arguments.cs (GetDBusTypeConstructor): If the type
6118         is an enum, get the enum's underlying type.  Another mono
6119         1.1.3 fix.
6120
6121 2005-01-11  Joe Shaw  <joeshaw@novell.com>
6122
6123         Patch from Sjoerd Simons <sjoerd@luon.net>
6124
6125         * mono/Makefile.am, mono/example/Makefile.am: Don't redefine
6126         DESTDIR.  It breaks stuff.
6127
6128 2005-01-11  Joe Shaw  <joeshaw@novell.com>
6129
6130         Patch from Tambet Ingo <tambet@ximian.com>
6131
6132         * mono/DBusType/Array.cs (Get): Get the underlying element type by
6133         calling type.GetElementType().  The code previously depended on
6134         broken Mono behavior, which was fixed in Mono 1.1.3.
6135
6136         * mono/DBusType/Dict.cs (constructor): Fix the parameters for
6137         Activator.CreateInstance() so that the class's constructor is
6138         called with the right parameters.
6139
6140 2005-01-11  Joe Shaw  <joeshaw@novell.com>
6141
6142         Patch from Timo Teräs <ext-timo.teras@nokia.com>
6143
6144         * dbus/dbus-connection.c
6145         (_dbus_connection_queue_received_message_link): Call
6146         _dbus_connection_remove_timeout() instead of the _locked()
6147         variant, since it's always called from
6148         _dbus_connection_handle_watch(), which handles the locking.
6149         Removed the _locked() variant since it's no longer used.
6150
6151 2005-01-03  Havoc Pennington  <hp@redhat.com>
6152
6153         * dbus/dbus-internals.h: I'm an idiot, _dbus_assert certainly can
6154         return
6155         
6156 2004-12-26  Havoc Pennington  <hp@redhat.com>
6157
6158         * dbus/dbus-internals.h: add _DBUS_GNUC_NORETURN to _dbus_assert
6159
6160 2005-01-03  Havoc Pennington  <hp@redhat.com>
6161
6162         * dbus/dbus-sysdeps.c (_dbus_sysdeps_test): fix using == on
6163         floating point
6164
6165         * dbus/dbus-string.c (_dbus_string_insert_alignment): new function
6166
6167 2005-01-02  Havoc Pennington  <hp@redhat.com>
6168
6169         * dbus/dbus-internals.h (_DBUS_ALIGN_OFFSET): new macro
6170
6171 2005-01-01  Havoc Pennington  <hp@redhat.com>
6172
6173         * configure.in: add -Wfloat-equal
6174
6175 2005-01-01  Havoc Pennington  <hp@redhat.com>
6176
6177         * dbus/dbus-sysdeps.h: add _DBUS_DOUBLES_BITWISE_EQUAL macro, 
6178         for a variety of reasons '==' doesn't do this.
6179
6180 2004-12-31  Havoc Pennington  <hp@redhat.com>
6181
6182         * dbus/dbus-string.c (_dbus_string_equal_substrings): new function
6183         I keep wishing I had
6184
6185 2004-12-30  John (J5) Palmieri  <johnp@redhat.com>
6186
6187         * python/dbus.py: s/ACTIVATION_REPLY_ACTIVE/ACTIVATION_REPLY_ACTIVATED
6188
6189 2004-12-30  John (J5) Palmieri  <johnp@redhat.com>
6190
6191         * python/dbus_bindings.pyx.in: Change DBUS_ACTIVATION_REPLY_ACTIVATED
6192         and DBUS_ACTIVATION_REPLY_ALREADY_ACTIVE to match the values in
6193         dbus-protocol.h.  Because they are defines and not enums they are not
6194         autogenerated.
6195
6196 2004-12-26  John (J5) Palmieri  <johnp@redhat.com>
6197
6198         * python/dbus_bindings.pyx.in (bus_activate_service): Bind
6199         dbus_bus_activate_service
6200
6201         * python/dbus.py (Bus.activate_service): activate a service on the
6202         bus.
6203
6204 2004-12-24  Havoc Pennington  <hp@redhat.com>
6205
6206         * test/decode-gcov.c: change to use .gcno and .gcda files, but the
6207         file format has also changed and I haven't adapted to that yet
6208         
6209         * Makefile.am: load .gcno files from latest gcc
6210
6211 2004-12-23  John (J5) Palmieri  <johnp@redhat.com>
6212         * Patch from Rob Taylor <robtaylor@fastmail.fm>
6213
6214         * python/dbus_bindings.pyx.in (bus_get_unix_user): New
6215         lowlevel binding
6216
6217         * python/dbus.py (get_unix_user): Added binding to 
6218         call dbus_bindings.bus_get_unix_user
6219
6220         * python/extract.py: Modified the proto_pat regex to
6221         handle unsigned long
6222
6223 2004-12-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6224
6225         * dbus/make-dbus-glib-error-enum.sh: omit the function keyword for
6226         better POSIX compliance.
6227
6228 2004-12-19  Havoc Pennington  <hp@redhat.com>
6229
6230         * dbus/dbus-string.c (_dbus_string_insert_4_aligned) 
6231         (_dbus_string_insert_8_aligned): new functions
6232
6233         * dbus/dbus-string.c (_dbus_string_alloc_space): new function
6234
6235 2004-12-18  Havoc Pennington  <hp@redhat.com>
6236
6237         * dbus/dbus-string.c (_dbus_string_validate_ascii): use ISASCII
6238         macro
6239
6240         * dbus/dbus-message.c: fix a comment, and add a still-unused
6241         not-implemented function
6242
6243         * dbus/dbus-marshal.h: fix comment
6244
6245         * dbus/dbus-internals.h (_DBUS_ISASCII): new macro
6246
6247 2004-12-17  Joe Shaw  <joeshaw@novell.com>
6248
6249         * mono/DBusType/Byte.cs, mono/DBusType/Int32.cs,
6250         mono/DBusType/Int64.cs, mono/DBusType/UInt32.cs,
6251         mono/DBusType/UInt64.cs: Use Enum.GetUnderlyingType() instead of
6252         Type.UnderlyingSystemType to get the actual system type
6253         underneath.  This code previously depended on the broken Mono
6254         behavior, which was fixed in 1.1.3.
6255
6256 2004-11-27  Havoc Pennington  <hp@redhat.com>
6257
6258         * dbus/dbus-string.h (_dbus_string_get_byte): inline when asserts
6259         are disabled
6260         (_dbus_string_get_const_data): inline when asserts are disabled
6261
6262         * dbus/dbus-message.c: record the _dbus_current_generation of
6263         creation so we can complain if dbus_shutdown() is used improperly.
6264         Do this only if checks are enabled.
6265
6266         * dbus/dbus-connection.c: ditto
6267         
6268 2004-11-26  Havoc Pennington  <hp@redhat.com>
6269
6270         * test/glib/test-profile.c: add with_bus mode to profile echoes
6271         that go through the bus.
6272
6273         * test/glib/run-test.sh: add ability to run test-profile
6274
6275         * bus/dbus-daemon-1.1.in: fix to say that SIGHUP causes partial
6276         config file reload.
6277
6278 2004-11-26  Havoc Pennington  <hp@redhat.com>
6279
6280         * test/glib/test-profile.c: clean up how the fake_malloc_overhead
6281         thing was implemented
6282
6283 2004-11-26  Havoc Pennington  <hp@redhat.com>
6284
6285         * test/glib/test-profile.c: tweak a bit, add support for some
6286         made-up minimal malloc overhead with plain sockets, since in 
6287         real life some sort of buffers are unavoidable thus we could 
6288         count them in the theoretical best case
6289
6290 2004-11-26  Havoc Pennington  <hp@redhat.com>
6291
6292         * dbus/dbus-message.c (dbus_message_cache_or_finalize): fix bug
6293         where I was trying to cache one too many messages
6294
6295 2004-11-26  Havoc Pennington  <hp@redhat.com>
6296
6297         * dbus/dbus-message.c: reimplement message cache as an array which 
6298         makes the cache about twice as fast and saves maybe 1.5% overall
6299
6300 2004-11-26  Havoc Pennington  <hp@redhat.com>
6301
6302         * dbus/dbus-threads.c (init_global_locks): forgot to put the
6303         message cache lock here
6304
6305 2004-11-26  Havoc Pennington  <hp@redhat.com>
6306
6307         * dbus/dbus-message.c (struct DBusMessage): put the locked bit and
6308         the "char byte_order" next to each other to save 4 bytes
6309         (dbus_message_new_empty_header): reduce preallocation, since the
6310         message cache should achieve a similar effect
6311         (dbus_message_cache_or_finalize, dbus_message_get_cached): add a
6312         message cache that keeps a few DBusMessage around in a pool,
6313         another 8% speedup or so.
6314
6315         * dbus/dbus-dataslot.c (_dbus_data_slot_list_clear): new function
6316
6317 2004-11-25  Havoc Pennington  <hp@redhat.com>
6318
6319         * dbus/dbus-transport-unix.c (unix_do_iteration): if we're going
6320         to write, without reading or blocking, try it before the poll()
6321         and skip the poll() if nothing remains to write. This is about a
6322         3% speedup in the echo client/server
6323
6324 2004-11-25  Havoc Pennington  <hp@redhat.com>
6325
6326         The primary change here is to always write() once before adding
6327         the write watch, which gives us about a 10% performance increase.
6328         
6329         * dbus/dbus-transport-unix.c: a number of modifications to cope
6330         with removing messages_pending
6331         (check_write_watch): properly handle
6332         DBUS_AUTH_STATE_WAITING_FOR_MEMORY; adapt to removal of
6333         messages_pending stuff
6334         (check_read_watch): properly handle WAITING_FOR_MEMORY and
6335         AUTHENTICATED cases
6336         (unix_handle_watch): after writing, see if the write watch can be
6337         removed
6338         (unix_do_iteration): assert that write_watch/read_watch are
6339         non-NULL rather than testing that they aren't, since they 
6340         aren't allowed to be NULL. check_write_watch() at the end so 
6341         we add the watch if we did not finish writing (e.g. got EAGAIN)
6342
6343         * dbus/dbus-transport-protected.h: remove messages_pending call,
6344         since it resulted in too much inefficient watch adding/removing; 
6345         instead we now require that the transport user does an iteration 
6346         after queueing outgoing messages, and after trying the first
6347         write() we add a write watch if we got EAGAIN or exceeded our 
6348         max bytes to write per iteration setting
6349
6350         * dbus/dbus-string.c (_dbus_string_validate_signature): add this
6351         function
6352
6353         * dbus/dbus-server-unix.c (unix_finalize): the socket name was
6354         freed and then accessed, valgrind flagged this bug, fix it
6355
6356         * dbus/dbus-message.c: fix several bugs where HEADER_FIELD_LAST was taken
6357         as the last valid field plus 1, where really it is equal to the
6358         last valid field. Corrects some message corruption issues.
6359
6360         * dbus/dbus-mainloop.c: verbosity changes
6361
6362         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): handle OOM
6363         instead of aborting in one of the test codepaths
6364
6365         * dbus/dbus-internals.c (_dbus_verbose_real): fix a bug that
6366         caused not printing the pid ever again if a verbose was missing
6367         the newline at the end
6368         (_dbus_header_field_to_string): add HEADER_FIELD_SIGNATURE
6369
6370         * dbus/dbus-connection.c: verbosity changes; 
6371         (dbus_connection_has_messages_to_send): new function
6372         (_dbus_connection_message_sent): no longer call transport->messages_pending
6373         (_dbus_connection_send_preallocated_unlocked): do one iteration to
6374         try to write() immediately, so we can avoid the write watch. This
6375         is the core purpose of this patchset
6376         (_dbus_connection_get_dispatch_status_unlocked): if disconnected,
6377         dump the outgoing message queue, so nobody will get confused
6378         trying to send them or thinking stuff is pending to be sent
6379
6380         * bus/test.c: verbosity changes
6381
6382         * bus/driver.c: verbosity/assertion changes
6383
6384         * bus/dispatch.c: a bunch of little tweaks to get it working again
6385         because this patchset changes when/where you need to block.
6386
6387 2004-11-23  Havoc Pennington  <hp@redhat.com>
6388
6389         * test/glib/test-profile.c: modify to accept a plain_sockets
6390         argument in which case it will bench plain sockets instead of
6391         libdbus, for comparison purposes.
6392
6393 2004-11-22  Havoc Pennington  <hp@redhat.com>
6394
6395         * test/glib/test-profile.c (N_CLIENT_THREADS): run multiple
6396         threads for more time, so sysprof can get a grip on it.
6397
6398         * dbus/dbus-string.c (_dbus_string_validate_utf8): remove
6399         pointless variable
6400
6401 2004-11-13  Havoc Pennington  <hp@redhat.com>
6402
6403         * test/glib/test-profile.c: fix this thing up a bit
6404
6405         * dbus/dbus-message.c (dbus_message_new_empty_header): increase
6406         preallocation sizes by a fair bit; not sure if this will be an
6407         overall performance win or not, but it does reduce reallocs.
6408
6409         * dbus/dbus-string.c (set_length, reallocate_for_length): ignore
6410         the test hack that forced constant realloc if asserts are
6411         disabled, so we can profile sanely. Sprinkle in some
6412         _DBUS_UNLIKELY() which are probably pointless, but before I
6413         noticed the real performance problem I put them in.
6414         (_dbus_string_validate_utf8): micro-optimize this thing a little
6415         bit, though callgrind says it didn't help; then special-case
6416         ascii, which did help a lot; then be sure we detect nul bytes as
6417         invalid, which is a bugfix.
6418         (align_length_then_lengthen): add some more _DBUS_UNLIKELY
6419         superstition; use memset to nul the padding instead of a manual
6420         loop.
6421         (_dbus_string_get_length): inline this as a
6422         macro; it showed up in the profile because it's used for loop
6423         tests and so forth
6424
6425 2004-11-10  Colin Walters  <walters@verbum.org>
6426
6427         * dbus/dbus-spawn.c (check_babysit_events): Handle EINTR,
6428         for extra paranoia.
6429
6430 2004-11-09  Colin Walters  <walters@verbum.org>
6431
6432         * dbus/dbus-string.c (_dbus_string_get_length): New
6433         function, writes DBusString to C buffer.
6434
6435         * dbus/dbus-string.h: Prototype it.
6436
6437         * dbus/dbus-message.c (dbus_message_type_to_string): New
6438         function, converts message type into C string.
6439
6440         * dbus/dbus-message.h: Prototype it.
6441
6442         * bus/selinux.c (bus_selinux_check): Take source pid,
6443         target pid, and audit data.  Pass audit data to
6444         avc_has_perm.
6445         (log_audit_callback): New function, appends extra
6446         audit information.
6447         (bus_selinux_allows_acquire_service): Also take
6448         service name, add it to audit data.
6449         (bus_selinux_allows_send): Also take message
6450         type, interface, method member, error name,
6451         and destination, and add them to audit data.
6452         (log_cb): Initialize func_audit.
6453         
6454         * bus/selinux.h (bus_selinux_allows_acquire_service)
6455         (bus_selinux_allows_send): Update prototypes 
6456
6457         * bus/services.c (bus_registry_acquire_service): Pass
6458         service name to bus_selinux_allows_acquire_service.
6459
6460         * bus/bus.c (bus_context_check_security_policy): Pass
6461         additional audit data.  Move assignment of dest
6462         to its own line.
6463
6464 2004-11-07  Colin Walters  <walters@verbum.org>
6465
6466         * dbus/dbus-transport-unix.c (do_authentication): Always
6467         initialize auth_completed.
6468         
6469 2004-11-07  Colin Walters  <walters@verbum.org>
6470
6471         * bus/bus.c (load_config): Break into three
6472         separate functions: process_config_first_time_only,
6473         process_config_every_time, and process_config_postinit.
6474         (process_config_every_time): Move call of
6475         bus_registry_set_service_context_table into
6476         process_config_postinit.
6477         (process_config_postinit): New function, does
6478         any processing that needs to happen late
6479         in initialization (and also on reload).
6480         (bus_context_new): Instead of calling load_config,
6481         open config parser here and call process_config_first_time_only
6482         and process_config_every_time directly.  Later, after
6483         we have forked but before changing UID,
6484         invoke bus_selinux_full_init, and then call
6485         process_config_postinit.
6486         (bus_context_reload_config): As in bus_context_new,
6487         load parse file inside here, and call process_config_every_time
6488         and process_config_postinit.
6489
6490         * bus/services.h, bus/services.c
6491         (bus_registry_set_service_context_table): Rename
6492         from bus_registry_set_sid_table.  Take string hash from config
6493         parser, and convert them here into SIDs.
6494
6495         * bus/config-parser.c (struct BusConfigParser): Have
6496         config parser only store a mapping of service->context
6497         string.
6498         (merge_service_context_hash): New function.
6499         (merge_included): Merge context string hashes instead
6500         of using bus_selinux_id_table_union.
6501         (bus_config_parser_new): Don't use bus_selinux_id_table_new;
6502         simply create a new string hash.
6503         (bus_config_parser_unref): Unref it.
6504         (start_selinux_child): Simply insert strings into hash,
6505         don't call bus_selinux_id_table_copy_over.
6506
6507         * bus/selinux.h, bus/selinux.c (bus_selinux_id_table_union)
6508         (bus_selinux_id_table_copy_over): Delete.
6509
6510 2004-11-03  Colin Walters  <walters@verbum.org>
6511
6512         * bus/selinux.c (bus_selinux_pre_init): Kill some unused
6513         variables.
6514         
6515 2004-11-03  Colin Walters  <walters@verbum.org>
6516
6517         * bus/test-main.c (test_pre_hook): Fix test logic,
6518         thanks Joerg Barfurth <Joerg.Barfurth@Sun.COM>.
6519
6520 2004-11-02  Colin Walters  <walters@redhat.com>
6521
6522         * bus/selinux.c (bus_selinux_init): Split into two functions,
6523         bus_selinux_pre_init and bus_selinux_post_init.
6524         (bus_selinux_pre_init): Just determine whether SELinux is
6525         enabled.
6526         (bus_selinux_post_init): Do everything else.
6527
6528         * bus/main.c (main): Call bus_selinux_pre_init before parsing
6529         config file, and bus_selinux_post_init after.  This ensures that
6530         we don't lose the policyreload notification thread that
6531         bus_selinux_init created before forking previously.
6532         
6533         * bus/test-main.c (test_pre_hook): Update for split.
6534
6535 2004-10-31  Owen Fraser-Green  <owen@discobabe.net>
6536
6537         Patch from Johan Fischer <linux@fischaz.com>
6538         
6539         * mono/doc/Makefile.am (install-data-local): Added directory
6540         install for DESTDIR
6541
6542 2004-10-29  Colin Walters  <walters@redhat.com>
6543
6544         * dbus/dbus-sysdeps.h (_dbus_become_daemon): Also take
6545         parameter for fd to write pid to.       
6546
6547         * dbus/dbus-sysdeps.c (_dbus_become_daemon): Implement it.
6548         
6549         * bus/bus.c (bus_context_new): Pass print_pid_fd
6550         to _dbus_become_daemon (bug #1720)
6551
6552 2004-10-29  Colin Walters  <walters@redhat.com>
6553
6554         Patch from Ed Catmur <ed@catmur.co.uk>
6555
6556         * mono/doc/Makefile.am (install-data-local): Handle
6557         DESTDIR.
6558
6559 2004-10-29  Colin Walters  <walters@redhat.com>
6560
6561         * bus/.cvsignore, qt/.cvsignore: Update.
6562
6563 2004-10-29  Colin Walters  <walters@redhat.com>
6564
6565         Patch from Kristof Vansant <de_lupus@pandora.be>
6566
6567         * configure.in: Detect Slackware.
6568         * bus/Makefile.am (SCRIPT_IN_FILES): Add rc.messagebus.in.
6569         * bus/rc.messagebus.in: New file.
6570
6571 2004-10-29  Colin Walters  <walters@redhat.com>
6572
6573         * tools/dbus-monitor.c (filter_func): Return
6574         DBUS_HANDLER_RESULT_HANDLED in filter function
6575         for now.  See:
6576         http://freedesktop.org/pipermail/dbus/2004-August/001433.html
6577
6578 2004-10-29  Colin Walters  <walters@redhat.com>
6579
6580         Patch from Matthew Rickard <mjricka@epoch.ncsc.mil>
6581
6582         * bus/services.c (bus_registry_acquire_service): 
6583         Correctly retrieve service name from DBusString
6584         for printing.
6585
6586 2004-10-29  Colin Walters  <walters@redhat.com>
6587
6588         * dbus/dbus-glib.h: Update documentation to not
6589         refer to internal APIs.
6590
6591 2004-10-27  Joe Shaw  <joeshaw@novell.com>
6592
6593         * mono/Arguments.cs (GetDBusTypeConstructor):
6594         type.UnderlyingSystemType will return "System.Byte" if you do it
6595         on "byte[]", which is not what we want.  So check the type.IsArray
6596         property and use System.Array instead.
6597
6598 2004-10-25  John (J5) Palmieri  <johnp@redhat.com>
6599
6600         * dbus/dbus-sysdeps.c (fill_user_info): On errors do not free
6601         the DBusUserInfo structure since this is passed into the function.
6602         This would cause a double free when the function that allocated
6603         the structure would try to free it when an error occured.
6604
6605         * (bus/session.conf.in, bus/Makefile.am, dbus/configure.in):
6606         use /usr/share/dbus-1/services instead of /usr/lib/dbus-1.0/services
6607         for service activation to avoid 32bit/64bit parallel install issues
6608
6609 2004-10-21  Colin Walters  <walters@verbum.org>
6610
6611         * AUTHORS: Fix my email address, the @gnu.org one
6612         has been bouncing for some time.  Also add J5.
6613         
6614 2004-10-21  Colin Walters  <walters@verbum.org>
6615
6616         * dbus/dbus-transport-unix.c (do_authentication): Return
6617         authentication status to callers.
6618         (unix_handle_watch): If we completed authentication this round,
6619         don't do another read.  Instead wait until the next iteration,
6620         after we've read any pending data in the auth buffer.
6621         (unix_do_iteration): Ditto.
6622         (unix_handle_watch): Updated for new do_authentication prototype.
6623
6624 2004-10-18  Colin Walters  <walters@verbum.org>
6625
6626         * bus/selinux.c (bus_selinux_enabled): Handle
6627         --disable-selinux case.
6628         
6629 2004-10-18  Colin Walters  <walters@verbum.org>
6630
6631         * bus/selinux.h: Add bus_selinux_enabled.
6632         
6633         * bus/selinux.c (bus_selinux_enabled): Implement it.
6634         
6635         * bus/config-parser.c (struct include): Add
6636         if_selinux_enabled member.
6637         (start_busconfig_child): Parse if_selinux_enabled
6638         attribute for include.
6639         (bus_config_parser_content): Handle it.
6640
6641         * bus/session.conf.in, bus/system.conf.in: Add
6642         inclusion of context mapping to default config files;
6643         conditional on SELinux being enabled.
6644         
6645         * doc/busconfig.dtd: Add to if_selinux_enabled to default DTD.
6646         
6647         * test/data/invalid-config-files/badselinux-1.conf, 
6648         test/data/invalid-config-files/badselinux-2.conf:
6649         Test files for bad syntax.
6650         
6651 2004-10-17  Colin Walters  <walters@verbum.org>
6652
6653         * dbus/dbus-memory.c (_dbus_initialize_malloc_debug, check_guards)
6654         (dbus_malloc, dbus_malloc0, dbus_realloc): Fix up printf
6655         format specifier mismatches.
6656
6657 2004-10-07  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6658
6659         * dbus/dbus-sysdeps.c (_dbus_file_get_contents): fix an incorrect
6660         format string.
6661
6662         * glib/dbus-dbus-gmain.c (dbus_g_bus_get): do not mangle NULL
6663         pointer (bug #1540, Leonardo Boiko).
6664
6665 2004-09-28  Jon Trowbridge  <trow@ximian.com>
6666
6667         * mono/BusDriver.cs: Changed BusDriver struct to remove
6668         the ServiceCreated and ServiceDeleted events and replace them
6669         with the new ServiceOwnerChanged event.
6670
6671         * mono/example/BusListener.cs: Added a new example program,
6672         which listens for and reports any ServiceOwnerChanged events
6673         on the bus driver.
6674
6675         * mono/example/Makefile.am (DESTDIR): Build changes for the
6676         new BusListener.cs example.
6677
6678 2004-09-27  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6679
6680         * bus/signals.c (bus_match_rule_parse): validate the components of
6681         match rules (bug #1439).
6682
6683         * dbus/dbus-bus.c (dbus_bus_add_match): add a missing OOM test.
6684
6685 2004-09-24  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6686
6687         * doc/dbus-specification.xml: document ServiceOwnerChanged
6688         signal.
6689         
6690         * bus/driver.c, bus/driver.h, bus/services.c: Use
6691         ServiceOwnerChanged signal instead of ServiceCreated and
6692         ServiceDeleted.
6693         
6694         * bus/dispatch.c: update testcase for the new signal.
6695
6696 2004-09-20  Jon Trowbridge  <trow@ximian.com>
6697
6698         Patch from Nat Friedman <nat@novell.com>
6699
6700         * mono/Makefile.am: A number of small build fixes to allow "make
6701         distcheck" to succeed.
6702
6703         * mono/example/Makefile.am: "make distcheck" fixes.
6704
6705         * mono/AssemblyInfo.cs.in: When signing the assembly, look for the
6706         key in @srcdir@.
6707
6708         * test/Makefile.am: "make distcheck" fixes.
6709
6710 2004-09-17  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6711
6712         * dbus/dbus-sysdeps.c (_dbus_user_at_console): fix memleak in OOM.
6713
6714         * doc/busconfig.dtd: update the DTD for the at_console attribute.
6715
6716         * bus/driver.c (bus_driver_handle_hello): correctly handle Hello
6717         messages after the first one (bug #1389).
6718         
6719         * bus/dispatch.c (check_double_hello_message): add a test case for
6720         the double hello message bug.
6721         (check_existent_service_activation): fix check of spawning error.
6722         
6723 2004-09-16  David Zeuthen  <david@fubar.dk>
6724
6725         * python/dbus_bindings.pyx.in: Add support for int64 and uint64
6726
6727 2004-09-12  David Zeuthen  <david@fubar.dk>
6728
6729         Patch from Kay Sievers <kay.sievers@vrfy.org>
6730
6731         * bus/bus.c (bus_context_new):
6732         * bus/bus.h:
6733         * bus/main.c (usage)
6734         (main):
6735         Add commandline option --nofork to override configuration file
6736         setting.
6737
6738 2004-09-09  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6739
6740         * dbus/dbus-*.h: remove the ; after DBUS_(BEGIN|END)_DECLS. Some C
6741         compilers don't like it (bug #974).
6742
6743 2004-09-04  Harald Fernengel  <harry@kdevelop.org>
6744
6745         * qt/connection.*: Applied patch by Jérôme Lodewyck
6746         <lodewyck@clipper.ens.fr> to integrate an existing
6747         connection into the Qt eventloop
6748
6749 2004-08-30  Jon Trowbridge  <trow@ximian.com>
6750
6751         * mono/BusDriver.cs: Added.  This is a class for interacting with
6752         the org.freedesktop.DBus service.
6753
6754         * mono/Message.cs: Added a mechanism to expose the message that is
6755         currently being dispatched via the static Message.Current
6756         property.  Added Message.Sender and Message.Destination
6757         properties.
6758
6759         * mono/Handler.cs: Expose the dispatched message via
6760         Message.Current when handling method calls.
6761
6762         * mono/Service.cs: Expose the dispatched message via
6763         Message.Current when handling signal emissions.
6764         
6765         * mono/Connection.cs: Bind dbus_bus_get_base_service via the
6766         Connection.BaseService property.
6767
6768 2004-08-28  Havoc Pennington  <hp@redhat.com>
6769
6770         * dbus/dbus-userdb.c (_dbus_is_console_user): remove unused variable
6771
6772         More fixes from Steve Grubb
6773         
6774         * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): fix fd leak
6775         (_dbus_listen_tcp_socket): fix fd leak
6776
6777         * dbus/dbus-spawn.c (read_pid, read_ints): move the "again:" for
6778         EINTR to a bit lower in the code
6779
6780 2004-08-26  Jon Trowbridge  <trow@ximian.com>
6781
6782         * bus/driver.c (bus_driver_handle_service_exists): Respond with
6783         TRUE if we are inquiring about the existence of the built-in
6784         org.freedesktop.DBus service.
6785
6786 2004-08-25  John Palmieri  <johnp@redhat.com>
6787         * bus/config-parser.c:
6788         (struct PolicyType): Add POLICY_CONSOLE
6789         (struct Element.d.policy): s/gid_or_uid/gid_uid_or_at_console
6790         (start_busconfig_child): Sets up console element when
6791         <policy at_console=""> is encountered in a policy file
6792         (append_rule_from_element): Convert console elements to console
6793         rules.
6794
6795         * bus/policy.c: 
6796         (bus_policy_create_client_policy): Add console rules to the client
6797         policy based on if the client is at the console
6798         (bus_policy_append_console_rule): New function for adding a
6799         console rule to a policy
6800         (bus_policy_merge): Handle console rule merging
6801
6802         * dbus/dbus-sysdeps.h: Added the DBUS_CONSOLE_DIR constant
6803         where we check for console user files
6804         
6805         * dbus/dbus-sysdeps.c:
6806         (_dbus_file_exists): New function which checks if the given
6807         file exists
6808         (_dbus_user_at_console): New function which does the system
6809         specific process of checking if the user is at the console
6810
6811         * dbus/dbus-userdb.c:
6812         (_dbus_is_console_user): New function converts a UID to user name
6813         and then calls the system specific _dbus_user_at_console to 
6814         see if the user is at the console and therefor a console user
6815
6816 2004-08-25  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6817
6818         * bus/config-parser.c (set_limit):
6819         * bus/dbus-daemon-1.1.in:
6820         * test/data/valid-config-files/many-rules.conf: set the
6821         max_match_rules_per_connection limt from the config file. 
6822
6823         * doc/busconfig.dtd: update the DTD.
6824
6825         * bus/driver.c: remove some unused variables.
6826
6827 2004-08-24  Mikael Hallendal  <micke@imendio.com>
6828
6829         * dbus/dbus-glib-lowlevel.h: Removed dbus_bus_get_with_g_main since 
6830         it's been replaced by dbus_g_bus_get
6831
6832 2004-08-23  Colin Walters  <walters@redhat.com>
6833
6834         Updated SELinux support from Matthew Rickard <mjricka@epoch.ncsc.mil>
6835
6836         * bus/selinux.h: Prototype bus_selinux_get_policy_root.
6837
6838         * bus/selinux.c: Create a thread for policy reload notification.
6839         (bus_selinux_get_policy_root): Implement.
6840
6841         * bus/config-parser.c (start_busconfig_child)
6842         (bus_config_parser_content): Support SELinux-root relative
6843         inclusion.
6844
6845         * configure.in <HAVE_SELINUX>: Add -lpthread.
6846         
6847         * bus/test-main.c (test_pre_hook, test_post_hook): New.
6848         (test_post_hook): Move memory checking into here.
6849         (test_pre_hook, test_post_hook): Move SELinux checks in
6850         here, but conditional on a DBUS_TEST_SELINUX environment
6851         variable.  Unfortunately we can't run the SELinux checks
6852         as a normal user, since they won't have any permissions
6853         for /selinux.  So this will have to be tested manually
6854         for now, until we have virtualization for most of
6855         libselinux.
6856         
6857 2004-08-23  Havoc Pennington  <hp@redhat.com>
6858
6859         * dbus/dbus-sysdeps.c (_dbus_change_identity): add setgroups() to
6860         drop supplementary groups, suggested by Steve Grubb
6861
6862 2004-08-20  Colin Walters  <walters@redhat.com>
6863
6864         * bus/config-parser.c (start_busconfig_child): Remove some unused
6865         variables.
6866         
6867         * bus/selinux.c (bus_selinux_id_table_insert): Avoid compiler
6868         warning.
6869
6870 2004-08-17  Joe Shaw  <joeshaw@novell.com>
6871
6872         * configure.in: If --enable-mono is passed in, if we can't find
6873         mono error out.
6874
6875         * mono/Makefile.am: Use /gacutil to install assemblies into the
6876         GAC and not /root.
6877
6878 2004-08-12  Havoc Pennington  <hp@redhat.com>
6879
6880         * NEWS: update for 0.22
6881
6882         * configure.in: release 0.22
6883
6884 2004-08-11  Colin Walters  <walters@redhat.com>
6885
6886         * tools/dbus-send.c (main, usage): Add --reply-timeout
6887         argument.
6888
6889 2004-08-10  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6890
6891         * bus/bus.c (process_config_first_time_only): get rid of an unused
6892         DBusError that was causing a memoy leak (bug #989).
6893
6894         * dbus/dbus-keyring.c, dbus/dbus-message.c:
6895         fix compilation on Solaris/Forte C (bug #974)
6896
6897         * bus/main.c (main): plug two minuscule memleaks.
6898
6899 2004-08-10  Havoc Pennington  <hp@redhat.com>
6900
6901         * doc/dbus-tutorial.xml: add some more info on GLib bindings
6902
6903 2004-08-09  Havoc Pennington  <hp@redhat.com>
6904
6905         * COPYING: switch to Academic Free License version 2.1 instead of
6906         2.0, to resolve complaints about patent termination clause.
6907
6908 2004-07-31  John (J5) Palmieri  <johnp@redhat.com>
6909
6910         * README: added documentation for the --enable-python 
6911         configure switch.
6912
6913 2004-07-31  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6914
6915         * bus/config-parser.c (bus_config_parser_new): fix an invalid
6916         _unref in the SELinux support.
6917
6918         * doc/busconfig.dtd: update DTD for SELinux support.
6919
6920         * bus/config-loader-libxml.c: fix error handler and parser
6921         initialisation/cleanup. OOM test now works with libxml2 HEAD.
6922
6923         * configure.in: remove the warning about libxml2.
6924
6925         * dbus/dbus-bus.c: silence doxygen warning.
6926
6927 2004-07-31  Colin Walters  <walters@redhat.com>
6928
6929         * configure.in: Move #error in SELinux check to its own line.
6930
6931 2004-07-31  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6932
6933         * dbus/dbus-internals.h (_DBUS_SET_OOM):
6934         * bus/utils.h (BUS_SET_OOM): use dbus_error_set_const instead of
6935         dbus_error_set.
6936
6937         * bus/dispatch.c (check_send_exit_to_service): fix the test case,
6938         broken by the change in the _SET_OOM macros.
6939
6940 2004-07-31  Colin Walters  <walters@redhat.com>
6941
6942         * bus/selinux.c <HAVE_SELINUX>: Include utils.h to get
6943         BUS_SET_OOM.
6944
6945 2004-07-31  Colin Walters  <walters@redhat.com>
6946
6947         * configure.in: Use AC_TRY_COMPILE instead of AC_EGREP_HEADER
6948         to correctly detect DBUS__ACQUIRE_SVC.  Also add an
6949         AC_MSG_CHECKING.
6950
6951 2004-07-24  Havoc Pennington  <hp@redhat.com>
6952
6953         SELinux support from Matthew Rickard <mjricka@epoch.ncsc.mil>
6954
6955         * bus/selinux.c, bus/selinux.h: new file encapsulating selinux
6956         functionality
6957
6958         * configure.in: add --enable-selinux
6959         
6960         * bus/policy.c (bus_policy_merge): add FIXME to a comment
6961
6962         * bus/main.c (main): initialize and shut down selinux
6963
6964         * bus/connection.c: store SELinux ID on each connection, to avoid 
6965         repeated getting of the string context and converting it into 
6966         an ID
6967
6968         * bus/bus.c (bus_context_get_policy): new accessor, though it
6969         isn't used
6970         (bus_context_check_security_policy): check whether the security
6971         context of sender connection can send to the security context of
6972         recipient connection
6973
6974         * bus/config-parser.c: add parsing for <selinux> and <associate>
6975         
6976         * dbus/dbus-transport.c (_dbus_transport_get_unix_fd): to
6977         implement dbus_connection_get_unix_fd()
6978
6979         * dbus/dbus-connection.c (dbus_connection_get_unix_fd): new
6980         function, used by the selinux stuff
6981         
6982 2004-07-29  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6983
6984         * bus/config-loader-libxml.c: complete the implementation of
6985         libxml backend for config file loader. Doesn't work with full OOM
6986         test yet. 
6987         
6988         * configure.in: change error when selecting libxml into a warning.
6989         
6990         * test/data/invalid-config-files: add two non-well-formed XML
6991         files. 
6992         
6993         * glib/Makefile.am: libdbus_gtool always uses expat, not libxml.
6994         
6995         * dbus/dbus-transport-unix.c (unix_handle_watch): do not
6996         disconnect in case of DBUS_WATCH_HANGUP, several do_reading() may
6997         be necessary to read all the buffer. (bug #894)
6998
6999         * bus/activation.c (bus_activation_activate_service): fix a
7000         potential assertion failure (bug #896). Small optimization in the
7001         case of auto-activation messages.
7002
7003         * dbus/dbus-message.c (verify_test_message, _dbus_message_test):
7004         add test case for byte-through-vararg bug (#901). patch by Kimmo
7005         Hämäläinen. 
7006
7007 2004-07-28  Anders Carlsson  <andersca@gnome.org>
7008
7009         * python/dbus.py:
7010         * python/dbus_bindings.pyx.in:
7011         Add dbus.init_gthreads (), allow emit_signal to pass
7012         arguments to the signal.
7013         
7014 2004-07-24  Havoc Pennington  <hp@redhat.com>
7015
7016         * AUTHORS: add some people, not really comprehensively, let me
7017         know if I missed you
7018
7019 2004-07-24  Havoc Pennington  <hp@redhat.com>
7020
7021         * Makefile.am (DIST_SUBDIRS): add DIST_SUBDIRS, problem solved by
7022         Owen
7023
7024         * test/Makefile.am (DIST_SUBDIRS): here also
7025
7026 2004-07-22  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7027
7028         * dbus/dbus-sysdeps.c (fill_user_info): fix inexistent label name,
7029         breaking build on Solaris, reported by Farhad Saberi on the ML.
7030
7031         * dbus/dbus-message.c (dbus_message_append_args_valist): fix the
7032         va_arg invocation to account for integer promotion in the case of
7033         DBUS_TYPE_BYTE (unsigned char is promoted to int). (bug #901)
7034
7035         * bus/services.c (bus_service_remove_owner): fix bug #902, use
7036         _dbus_list_get_first_link, not _dbus_list_get_first.
7037
7038         * dbus/dbus-bus.c (dbus_bus_service_exists): plug a memory leak.
7039
7040         * dbus/dbus-object-tree.c (free_subtree_recurse): always null
7041         handler functions so that the asserts in _dbus_object_subtree_unref
7042         do not fail.
7043
7044         * dbus/dbus-transport-unix.c (do_reading):
7045         _dbus_transport_queue_messages return value is of type
7046         dbus_bool_t, not DBusDispatchStatus.
7047         
7048 2004-07-19  David Zeuthen  <david@fubar.dk>
7049
7050         * dbus/dbus-protocol.h: Add DBUS_ERROR_UNIX_PROCESS_ID_UNKNOWN
7051
7052         * bus/dispatch.c:
7053         (check_get_connection_unix_user): Debug says GetProperty; but the
7054         method is called GetConnectionUnixUser
7055         (check_get_connection_unix_process_id): New function
7056         (bus_dispatch_test): Actually call check_get_connection_unix_user();
7057         also call check_get_connection_unix_process_id()
7058         
7059         * bus/driver.c:
7060         (bus_driver_handle_get_connection_unix_process_id): New function,
7061         handles GetConnectionUnixProcessID on the org.freedesktop.DBus
7062         interface
7063         
7064         * dbus/dbus-auth.c:
7065         (handle_server_data_external_mech): Set pid from the credentials
7066         obtained from the socket
7067         
7068         * dbus/dbus-connection.c:
7069         (dbus_connection_get_unix_process_id): New function
7070         
7071         * dbus/dbus-connection.h: 
7072         Add prototype for dbus_connection_get_unix_process_id
7073         
7074         * dbus/dbus-transport.c:
7075         (_dbus_transport_get_unix_process_id): New function
7076         
7077         * dbus/dbus-transport.h:
7078         Add prototype for _dbus_transport_get_unix_process_id
7079         
7080 2004-07-19  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7081
7082         * dbus/dbus-message.c: Message counter fix, patch by Christian
7083         Hammond <chipx86@gnupdate.org>
7084
7085 2004-07-18  Seth Nickell  <seth@gnome.org>
7086
7087         * python/dbus.py:
7088         * python/dbus_bindings.pyx.in:
7089         * python/tests/test-client.py:
7090
7091         Add dbus.ByteArray and dbus_bindings.ByteArray
7092         types so that byte streams can be passed back.
7093
7094         Give jdahlin the heaps of credit that are so
7095         rightfully his.
7096         
7097 2004-07-12  Seth Nickell  <seth@gnome.org>
7098
7099         * python/dbus.py:
7100
7101         Add message argument to the default object_method_handler
7102         function.
7103         
7104         * python/dbus_bindings.pyx.in:
7105
7106         Automatically return NIL when passed an empty list
7107         (we can't pass back a list since lists are typed
7108         and we don't have any idea what type the the client
7109         intended the list to be... :-( )
7110         
7111 2004-07-10  Seth Nickell  <seth@gnome.org>
7112
7113         * python/examples/Makefile.am:
7114
7115         Fix distcheck breakage caused by new examples.
7116
7117 2004-07-10  Seth Nickell  <seth@gnome.org>
7118
7119         * python/dbus.py:
7120
7121         Add "message" argument to service-side dbus.Object
7122         methods. This will break existing services written
7123         using the python bindings, but will allow extraction
7124         of all the message information (e.g. who its from).
7125
7126         Add improved "object oriented" signal handling/emission.
7127         
7128         * python/examples/example-service.py:
7129
7130         Nix this example.
7131         
7132         * python/examples/example-signal-emitter.py:
7133         * python/examples/example-signal-recipient.py:
7134
7135         Two new examples that show how to emit and receive
7136         signals using the new APIs.
7137         
7138         * python/examples/example-signals.py:
7139         * python/examples/gconf-proxy-service.py:
7140         * python/examples/gconf-proxy-service2.py:
7141
7142         Add "message" argument to service methods.
7143
7144 2004-06-28  Kay Sievers <kay.sievers@vrfy.org>
7145
7146         * bus/driver.c (bus_driver_handle_get_connection_unix_user)
7147         * dbus/bus.c (dbus_bus_get_unix_user)
7148         * doc/dbus-specification.xml: implement GetConnectionUnixUser
7149         method of org.freedesktop.DBus interface.
7150
7151         * bus/dispatch.c: test case
7152
7153 2004-06-23  John (J5) Palmieri  <johnp@redhat.com>
7154
7155         * python/Makefile.am: switched include directory from glib/ to dbus/
7156         since dbus-glib.h moved
7157  
7158 2004-06-22  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7159
7160         * configure.in: prevent building the gcj stuff and libxml loader
7161         since they are broken.
7162
7163 2004-06-20  Havoc Pennington  <hp@redhat.com>
7164
7165         * dbus/dbus-glib-error-enum.h: autogenerate the GError enum 
7166         codes from the dbus error names
7167         
7168         * glib/dbus-glib.h: move to subdir dbus/ since it's included 
7169         as dbus/dbus-glib.h and that breakage is now visible due to 
7170         including dbus/dbus-glib.h in dbus-glib-lowlevel.h
7171         
7172         * glib/dbus-glib.h: s/gproxy/g_proxy/
7173
7174         * dbus/dbus-shared.h: new header to hold stuff shared with
7175         binding APIs
7176         
7177         * dbus/dbus-protocol.h (DBUS_ERROR_*): move errors here rather
7178         than dbus-errors.h
7179
7180         * glib/dbus-glib.h (dbus_set_g_error): move to
7181         dbus-glib-lowlevel.h
7182
7183         * glib/dbus-glib.h: remove dbus/dbus.h from here; change a bunch
7184         of stuff to enable this
7185
7186         * dbus/dbus-glib-lowlevel.h: put dbus/dbus.h here
7187
7188         * a bunch of other changes with the same basic "separate glib 
7189         bindings from dbus.h" theme
7190         
7191 2004-06-10  Owen Fraser-Green  <owen@discobabe.net>
7192
7193         * dbus-sharp.pc.in: Removed glib-sharp inclusion in Libs.
7194
7195         * python/examples/Makefile.am: Fixed typo in EXTRA_DIST.
7196
7197 2004-06-09  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7198
7199         * bus/driver.c, dbus/dbus-bus.c: use BOOLEAN instead of UINT32 for
7200         the reply value of the ServiceExists message.
7201
7202 2004-06-07  John (J5) Palmieri  <johnp@redhat.com>
7203
7204         * python/dbus_bindings.pyx.in: No longer need to parse path
7205         elements and pass them as arrays of strings.  The C API now
7206         accepts plain path strings.
7207         (_build_parsed_path): removed 
7208
7209 2004-06-07  Havoc Pennington  <hp@redhat.com>
7210
7211         * doc/TODO: remove auto-activation item since it's done; sort
7212         items by importance/milestone
7213
7214 2004-06-07  Havoc Pennington  <hp@redhat.com>
7215
7216         * dbus/dbus-message-builder.c (_dbus_message_data_load): append
7217         random signature when using REQUIRED_FIELDS (this hack won't work
7218         in the long term)
7219
7220         * dbus/dbus-message.c: change the signature to be a header field,
7221         instead of message->signature special-case string. Incremental
7222         step forward. Then we can fix up code to send the signature in the
7223         message, then fix up code to validate said signature, then fix up
7224         code to not put the typecodes inline, etc.
7225         (load_one_message): don't make up the signature after the fact
7226         (decode_header_data): require signature field for the known
7227         message types
7228
7229         * dbus/dbus-marshal.c (_dbus_marshal_string_len): new
7230
7231         * dbus/dbus-protocol.h: add DBUS_HEADER_FIELD_SIGNATURE
7232
7233 2004-06-07  Owen Fraser-Green  <owen@discobabe.net>
7234
7235         * mono/DBusType/ObjectPath.cs: Renamed PathName argument to Path
7236
7237         * mono/Handler.cs: Updated to follow new path argument for
7238         (un-)registering objects.
7239
7240         * mono/example/Makefile.am:
7241         * mono/Makefile.am:
7242         * configure.in: Bumped required version for mono and use new -pkg
7243         syntax for deps
7244
7245 2004-06-05  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7246
7247         * dbus/dbus-connection.h, dbus/dbus-connection.c: have object path
7248         registration functions take the path argument as char* instead of
7249         char**.
7250
7251         * dbus/dbus-marshal.h, dbus/dbus-marshal.c (_dbus_decompose_path):
7252         split off the path decompostion part of
7253         _dbus_demarshal_object_path. Some misc. fixes to silence compiler
7254         warnings. 
7255
7256         * glib/dbus-gobject.c, test/test-service.c: update accordingly.
7257         
7258 2004-06-02  Kristian Høgsberg  <krh@redhat.com>
7259  
7260         * dbus/dbus-auth.c: Rewrite auth protocol handling to use a state
7261         machine approach.  A state is implemented as a function that
7262         handles incoming events as specified for that state.
7263         
7264         * doc/dbus-specification.xml: Update auth protocol state machine
7265         specification to match implementation.  Remove some leftover
7266         base64 examples.
7267
7268 2004-06-02  Kristian Høgsberg  <krh@redhat.com>
7269
7270         * glib/dbus-gproxy.c, glib/dbus-gmain.c, dbus/dbus-string.c,
7271         dbus/dbus-object-tree.c, dbus/dbus-message.c: add comments to
7272         quiet doxygen.
7273
7274         * Doxyfile.in: remove deprecated options.
7275
7276         * dbus/dbus-message-handler.c, dbus/dbus-message-handler.h,
7277         glib/test-thread.h, glib/test-thread-client.c,
7278         glib/test-thread-server.c, glib/test-profile.c,
7279         glib/test-dbus-glib.c: remove these unused files.
7280
7281 2004-06-01  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7282
7283         * dbus/dbus-object-tree.c
7284         (_dbus_object_tree_dispatch_and_unlock): fix dispatch for
7285         non-fallback handlers (bug #684).
7286         (_dbus_object_subtree_new): initialize invoke_as_fallback field.
7287         (find_subtree_recurse): report wether the returned subtree is an
7288         exact match or a "fallback" match higher up in the tree.
7289         (object_tree_test_iteration): update test case.
7290
7291 2004-06-01  Seth Nickell  <seth@gnome.org>
7292
7293         * python/dbus_bindings.pyx.in:
7294         * python/tests/test-client.py:
7295
7296         Round off basic type support. Add dicts (yay!), and 
7297         remaining array types.
7298
7299         Make MessageIter more general so it works for dicts too.
7300
7301         Mark all loop variables as C integers.
7302         
7303 2004-05-31  Havoc Pennington  <hp@redhat.com>
7304
7305         * glib/dbus-gidl.c (method_info_add_arg): keep args sorted with
7306         "in" before "out"
7307
7308         * glib/dbus-gobject.c (dbus_type_to_string): move to dbus-gutils.c
7309
7310         * glib/dbus-glib-tool.c (main): set up to have a --self-test
7311         option that runs the tests, and start filling in some code
7312         including for starters just dumping the interfaces to stdout
7313
7314         * glib/Makefile.am (INCLUDES): define DBUS_LOCALEDIR
7315
7316         * test/data/valid-introspection-files/lots-of-types.xml: test of
7317         an example introspection file
7318
7319         * glib/dbus-gparser.c (parser_check_doctype): doctype should be
7320         "node" (I think...)
7321
7322 2004-05-31  Seth Nickell  <seth@gnome.org>
7323
7324         * python/dbus_bindings.pyx.in:
7325         * python/tests/test-client.py:
7326
7327         Test Suite: 1
7328         Python Bindings: 0
7329
7330         Fix string array memory trashing bug... oops...
7331
7332 2004-05-30  Seth Nickell  <seth@gnome.org>
7333
7334         * python/dbus.py:
7335
7336         Add a nicer-but-less-flexible alternate API for handling 
7337         calls to virtual objects in dbus.ObjectTree.
7338
7339         Screw up the argument order to the dbus.Object constructor
7340         for consistency with dbus.ObjectTree (and to make dbus_methods
7341         optional for future extension)
7342         
7343         * python/examples/Makefile.am:
7344         * python/examples/gconf-proxy-service.py:
7345         * python/examples/gconf-proxy-service2.py:
7346
7347         Alternate implementation of gconf-proxy-service using the
7348         nicer dbus.ObjectTree API.
7349         
7350         * python/examples/example-service.py:
7351         * python/tests/test-server.py
7352
7353         Reverse the argument order to deal with dbus.Object constructor
7354         changes.
7355         
7356 2004-05-30  Seth Nickell  <seth@gnome.org>
7357
7358         * python/examples/example-client.py:
7359         * python/examples/example-service.py:
7360
7361         Take it back. Lists seem to work but they're broken
7362         in the test suite. Make the base examples use
7363         lists (works fine).
7364
7365 2004-05-30  Seth Nickell  <seth@gnome.org>
7366
7367         * python/dbus_bindings.pyx.in:
7368         * python/tests/test-client.py:
7369
7370         Add some more tests and fix errors that crop up.
7371         Unfortunately, currently it seems like marshalling
7372         and unmarshalling of lists is completely broken :-(
7373
7374 2004-05-30  Seth Nickell  <seth@gnome.org>
7375
7376         * python/dbus_bindings.pyx.in:
7377
7378         Add support for ObjectPath type.
7379
7380         * python/dbus.py:
7381
7382         Refactor message handling code to a common function.
7383         
7384         * python/tests/test-client.py:
7385         * python/tests/test-server.py:
7386
7387         Add tests that check to make sure values of all types
7388         can be echoed from a service w/o mangling.
7389         
7390 2004-05-29  Seth Nickell  <seth@gnome.org>
7391
7392         * python/dbus.py:
7393
7394         Add ObjectTree class which allows implementation
7395         of trees of "virtual" objects. Basically the python
7396         wrapper for "register_fallback".
7397         
7398         * python/examples/Makefile.am
7399         * python/examples/gconf-proxy-client.py:
7400         * python/examples/gconf-proxy-service.py:
7401
7402         Implement a simple GConf proxy service that supports
7403         get/set on string and int GConf keys using the ObjectTree.
7404         
7405 2004-05-29  Seth Nickell  <seth@gnome.org>
7406
7407         * python/dbus.py:
7408         * python/examples/example-client.py:
7409         * python/examples/example-service.py:
7410         * python/examples/list-system-services.py:
7411
7412         Add SessionBus, SystemBus and ActivationBus classes
7413         so you don't need to know the special little BUS_TYPE
7414         flag.
7415         
7416 2004-05-29  Havoc Pennington  <hp@redhat.com>
7417
7418         * bus/config-parser.c (process_test_valid_subdir): temporarily
7419         stop testing config parser OOM handling, since expat has issues
7420         http://freedesktop.org/pipermail/dbus/2004-May/001153.html
7421
7422         * bus/dbus-daemon-1.1.in: change requested_reply to
7423         send_requested_reply/receive_requested_reply so we can send the
7424         replies, not just receive them.
7425
7426         * bus/config-parser.c: parse the new
7427         send_requested_reply/receive_requested_reply
7428
7429         * bus/policy.c (bus_client_policy_check_can_send): add
7430         requested_reply argument and use it
7431
7432         * bus/bus.c (bus_context_check_security_policy): pass through
7433         requested_reply status to message send check
7434
7435         * bus/system.conf.in: adapt to requested_reply change
7436         
7437 2004-05-28  Havoc Pennington  <hp@redhat.com>
7438
7439         * test/glib/test-service-glib.c (main): remove unused variable
7440
7441         * glib/dbus-gidl.c (base_info_ref): fix a silly compiler warning
7442
7443         * dbus/dbus-auth.h (enum): remove AUTHENTICATED_WITH_UNUSED_BYTES
7444         from the enum, no longer in use.
7445
7446         * dbus/dbus-sysdeps.h: include config.h so DBUS_VA_COPY actually
7447         works right.
7448
7449         * dbus/dbus-message.c: add various _dbus_return_val_if_fail for
7450         whether error_name passed in is a valid error name.
7451
7452 2004-05-28  John (J5) Palmieri  <johnp@redhat.com>
7453
7454         * dbus/dbus-message.c (dbus_message_get_args): Added support for
7455         OBJECT_PATH and OBJECT_PATH_ARRAY
7456
7457 2004-05-28  Seth Nickell  <seth@gnome.org>
7458
7459         * python/examples/Makefile.am:
7460
7461         Forget to add Makefile.am. Do not pass go.
7462
7463 2004-05-28  Michael Meeks  <michael@ximian.com>
7464
7465         * glib/dbus-gvalue.c (dbus_gvalue_marshal, dbus_gvalue_demarshal): 
7466         fix no int64 case.
7467
7468         * dbus/dbus-string.c (_dbus_string_parse_basic_type): impl.
7469
7470         * dbus/dbus-message.c (_dbus_message_iter_get_basic_type),
7471         (_dbus_message_iter_get_basic_type_array): impl.
7472         drastically simplify ~all relevant _get methods to use these.
7473         (_dbus_message_iter_append_basic_array),
7474         (dbus_message_iter_append_basic): impl
7475         drastically simplify ~all relevant _append methods to use these.
7476
7477         * dbus/dbus-message-builder.c (parse_basic_type) 
7478         (parse_basic_array, lookup_basic_type): impl.
7479         (_dbus_message_data_load): prune scads of duplicate /
7480         cut & paste coding.
7481
7482         * dbus/dbus-marshal.c (_dbus_demarshal_basic_type_array) 
7483         (_dbus_demarshal_basic_type): implement,
7484         (demarshal_and_validate_len/arg): beef up debug.
7485         (_dbus_marshal_basic_type, _dbus_marshal_basic_type_array): impl.
7486
7487 2004-05-27  Seth Nickell  <seth@gnome.org>
7488
7489         * configure.in:
7490         * python/Makefile.am:
7491
7492         Include the example python apps in the tarball.
7493         
7494         * python/examples/list-system-services.py
7495
7496         Add a python new example that fetches the list of services
7497         from the system bus.
7498         
7499 2004-05-27  Seth Nickell  <seth@gnome.org>
7500
7501         * python/dbus.py:
7502         * python/dbus_bindings.pyx.in:
7503
7504         Fix failure to notify that a signal was not handled,
7505         resulted in hung functions.
7506         
7507 2004-05-25  Colin Walters  <walters@redhat.com>
7508
7509         * tools/dbus-monitor.c (main): Monitor all types of messages.
7510
7511 2004-05-23  Owen Fraser-Green  <owen@discobabe.net>
7512
7513         * mono/Handler.cs, mono/Service.cs: Added UnregisterObject method
7514         which unregisters the object path and disposes the handler.
7515
7516 2004-05-23  Kristian Høgsberg  <krh@redhat.com>
7517  
7518         Patch from Timo Teräs <ext-timo.teras@nokia.com> (#614):
7519          
7520         * dbus/dbus-message.c (dbus_message_iter_get_args_valist): Swap
7521         operands to && so we call dbus_message_iter_next () for the last
7522         argument also.
7523
7524 2004-05-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7525
7526         * dbus/dbus-object-tree.c
7527         (_dbus_object_tree_list_registered_unlock, lookup_subtree): return
7528         children even if the requested path isn't registered.
7529         (object_tree_test_iteration): test object_tree_list_registered.
7530
7531         * configure.in: undefine HAVE_ABSTRACT_SOCKETS instead of defining
7532         it to 0.
7533         
7534 2004-05-20  Kristian Høgsberg  <krh@redhat.com>
7535
7536         * doc/TODO: Remove resolved items.
7537
7538         * bus/expirelist.h (struct BusExpireList): remove unused n_items
7539         field.
7540         
7541         * bus/connection.c (bus_connections_expect_reply): Enforce the
7542         per-connection limit on pending replies.
7543         
7544         Patch from Jon Trowbridge <trow@ximian.com>:
7545  
7546         * bus/main.c (setup_reload_pipe): Added.  Creates a pipe and sets
7547         up a watch that triggers a config reload when one end of the pipe
7548         becomes readable.
7549         (signal_handler): Instead of doing the config reload in our SIGHUP
7550         handler, just write to the reload pipe and let the associated
7551         watch handle the reload when control returns to the main loop.
7552  
7553         * bus/driver.c (bus_driver_handle_reload_config): Added.
7554         Implements a ReloadConfig method for requesting a configuration
7555         file reload via the bus driver.
7556  
7557 2004-05-19  Owen Fraser-Green  <owen@discobabe.net>
7558
7559         * HACKING: Updated release instructions concerning the wiki page.
7560
7561 2004-05-18  Kristian Høgsberg  <krh@redhat.com>
7562
7563         * dbus/dbus-auth.c (client_try_next_mechanism): Remove logic to
7564         filter against auth->allowed_mechs; we only add allowed mechs in
7565         record_mechanisms().
7566  
7567         * dbus/dbus-auth-script.c (_dbus_auth_script_run): Add an
7568         ALLOWED_MECHS to auth-script format so we can set the list of
7569         allowed mechanisms.
7570  
7571         * data/auth/client-out-of-mechanisms.auth-script: New test to
7572         check client disconnects when it is out of mechanisms to try.
7573  
7574         * dbus/dbus-auth.c (process_command): Remove check for lines
7575         longer that 1 MB; we only buffer up maximum 16 kB.
7576  
7577         * dbus/dbus-transport.c, dbus/dbus-transport-unix.c,
7578         dbus/dbus-auth-script.c, dbus/dbus-auth.c, dbus/dbus-auth.h:
7579         Remove auth state AUTHENTICATED_WITH_UNUSED_BYTES, instead always
7580         assume there might be unused bytes.
7581  
7582         * dbus/dbus-auth.c (_dbus_auth_do_work): Remove check for
7583         client-out-of-mechs, it is handled in process_reject(). Move check
7584         for max failures to send_rejected(), as it's a server-only thing.
7585
7586         * dbus/dbus-auth.c: Factor out protocol reply code into functions
7587         send_auth(), send_data(), send_rejected(), send_error(),
7588         send_ok(), send_begin() and send_cancel().
7589
7590 2004-05-17  Kristian Høgsberg  <krh@redhat.com>
7591
7592         Remove base64 encoding, replace with hex encoding. Original patch
7593         from trow@ximian.com, added error handling.
7594
7595         * dbus/dbus-string.c (_dbus_string_base64_encode)
7596         (_dbus_string_base64_decode): Remove.
7597         (_dbus_string_hex_decode): Add end_return argument so we can
7598         distinguish between OOM and invalid hex encoding.
7599         (_dbus_string_test): Remove base64 tests and add test case for
7600         invalid hex.
7601
7602         * dbus/dbus-keyring.c, dbus/dbus-auth-script.c, dbus/dbus-auth.c:
7603         Replace base64 with hex.
7604
7605         * test/data/auth/invalid-hex-encoding.auth-script: New test case
7606         for invalid hex encoded data in auth protocol.
7607
7608 2004-05-17  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7609
7610         * dbus/dbus-connection.c (check_for_reply_unlocked): plug a memory
7611         leak.
7612
7613 2004-05-15  Owen Fraser-Green  <owen@discobabe.net>
7614
7615         * mono/dbus-sharp.dll.config.in: Added for GAC
7616         * mono/dbus-sharp.snk: Added for GAC
7617         * mono/Assembly.cs.in: Added for GAC
7618         * mono/Makefile.am: Changes for GAC installation        
7619         * configure.in: Added refs for dbus-sharp.dll.config.in and
7620         Assembly.cs.in. More fixes for mono testing
7621         * mono/example/Makefile.am: Changed var to CSC
7622         * Makefile.am: Changed flag name to DBUS_USE_CSC
7623
7624 2004-05-15  Owen Fraser-Green  <owen@discobabe.net>
7625
7626         * mono/Makefile.am: Added SUBDIRS for docs. Changed SUBDIRS order
7627         * mono/doc/*: Added documentation framework
7628         * configure.in: Added monodoc check
7629         * README: Added description of mono configure flags
7630
7631 2004-05-11  John (J5) Palmieri  <johnp@redhat.com>:
7632
7633         * doc/dbus-specification.xml: Added a "Required" column to the 
7634         header fields table and changed the "zero or more" verbage in
7635         the above paragraph to read "The header must contain the required 
7636         named header fields and zero or more of the optional named header 
7637         fields".
7638         * test/data/invalid-messages/*.message: Added the required PATH 
7639         named header field to the tests so that they don't fail on 
7640         'Missing path field'
7641
7642 2004-05-07  John (J5) Palmieri  <johnp@redhat.com>
7643
7644         * python/dbus-bindings.pyx.in: Stopped the bindings from trashing
7645         the stack by implicitly defining variable and parameter types and
7646         removing the hack of defining C pointers as python objects and later
7647         casting them.
7648
7649 2004-05-02  Owen Fraser-Green  <owen@discobabe.net>
7650
7651         * mono/Makefile.am: Removed test-dbus-sharp.exe from all target
7652
7653 2004-05-01  Owen Fraser-Green  <owen@discobabe.net>
7654
7655         * mono/DBusType/Dict.cs: Handle empty dicts
7656         * mono/DBusType/Array.cs: Handle empty arrays
7657         * mono/Arguments.cs: Handle empty arguments
7658
7659 2004-04-30  Owen Fraser-Green  <owen@discobabe.net>
7660
7661         * dbus-sharp.pc.in: Modified to include include Libs and Requires
7662         field
7663
7664 2004-04-25  Kristian Høgsberg  <krh@redhat.com>
7665
7666         * test/data/valid-messages/standard-*.message: Update message
7667         test scripts to new header field names.
7668
7669 2004-04-22  John (J5) Palmieri  <johnp@redhat.com>
7670
7671         * test/break-loader.c (randomly_do_n_things): tracked down buffer
7672         overflow to times_we_did_each_thing array which would chop off the
7673         first character of the failure_dir string. Increased the size of
7674         the array to 7 to reflect the number of random mutation functions
7675         we have.
7676
7677 2004-04-21  Kristian Høgsberg  <krh@redhat.com>
7678
7679         * dbus/dbus-server-unix.c (unix_finalize): Don't unref
7680         unix_server->watch here, it is unreffed in disconnect.
7681         (_dbus_server_new_for_tcp_socket): convert NULL host to
7682         "localhost" here so we don't append NULL to address.
7683         
7684         * dbus/dbus-server.c (_dbus_server_test): Add test case for
7685         various addresses, including tcp with no explicit host.
7686
7687 2004-04-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7688
7689         * dbus/dbus-message.c (decode_header_data, decode_string_field):
7690         fix incorrect setting of .name_offset in the HeaderField (it was
7691         off by two bytes, positioned right after the name and typecode)
7692
7693         * bus/bus.c (bus_context_new, bus_context_unref): test before
7694         calling dbus_server_free_data_slot and _dbus_user_database_unref
7695         in case of an error.
7696
7697         * tools/Makefile.am: add $(DBUS_GLIB_TOOL_LIBS), xml libs needed
7698         by libdbus-gtool.
7699
7700 2004-04-19  Kristian Høgsberg  <krh@redhat.com>
7701
7702         * dbus/dbus-transport-unix.c (unix_do_iteration): Rewrite to use
7703         _dbus_poll() instead of select().
7704
7705 2004-04-15  Jon Trowbridge  <trow@ximian.com>
7706
7707         * bus/main.c (signal_handler): Reload the configuration files
7708         on SIGHUP.
7709         (main): Set up our SIGHUP handler.
7710
7711         * bus/bus.c (struct BusContext): Store the config file, user and
7712         fork flag in the BusContext.
7713         (process_config_first_time_only): Added.  Contains the code
7714         (previously in bus_context_new) for setting up the BusContext from
7715         the BusConfigParser that should only be run the first time the
7716         config files are read.
7717         (process_config_every_time): Added.  Contains the code (previously
7718         in bus_context_new) for setting up the BusContext from the
7719         BusConfigParser that should be run every time the config files are
7720         read.
7721         (load_config): Added.  Builds a BusConfigParser from the config
7722         files and passes the resulting structure off to
7723         process_config_first_time_only (assuming this is the first time)
7724         and process_config_every_time.
7725         (bus_context_new): All of the config-related code has been moved
7726         to process_config_first_time_only and process_config_every_time.
7727         Now this function just does the non-config-related initializations
7728         and calls load_config.
7729         (bus_context_reload_config): Added.
7730
7731 2004-04-15  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7732
7733         * bus/driver.c (bus_driver_handle_get_service_owner):
7734         implement a GetServiceOwner method.
7735         * doc/dbus-specification.xml: document it.
7736         * dbus/dbus-errors.h: add a 'ServiceHasNoOwner' error.
7737         
7738         * glib/dbus-gproxy.c (dbus_gproxy_new_for_service_owner):
7739         implement, using the bus GetServiceOwner method.
7740
7741         * test/glib/test-dbus-glib.c:
7742         use dbus_gproxy_new_for_service_owner so that we can receive the
7743         signal. 
7744
7745 2004-04-15  John (J5) Palmieri  <johnp@redhat.com>
7746
7747         * dbus/dbus-internals.c, dbus/dbus-message-builder.c,
7748         dbus/dbus-message.c, dbus/dbus-protocol.h
7749         (DBUS_HEADER_FIELD_SERVICE): renamed DBUS_HEADER_FIELD_DESTINATION
7750
7751         * dbus/dbus-internals.c, dbus/dbus-message-builder.c,
7752         dbus/dbus-message.c, dbus/dbus-protocol.h
7753         (DBUS_HEADER_FIELD_SENDER_SERVICE): renamed DBUS_HEADER_FIELD_SENDER
7754
7755         * dbus/dbus-internals.c (_dbus_header_field_to_string):
7756         DBUS_HEADER_FIELD_DESTINATION resolves to "destination"
7757         DBUS_HEADER_FIELD_SENDER resolves to "sender"
7758
7759         * doc/dbus-specification.xml (Header Fields Table):
7760         s/SERVICE/DESTINATION
7761         s/SENDER_SERVICE/SENDER
7762
7763
7764 2004-04-14  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7765
7766         * test/glib/test-dbus-glib.c (timed_exit): fail the test after
7767         a few seconds.
7768
7769 2004-04-13  Michael Meeks  <michael@ximian.com>
7770
7771         * glib/dbus-gobject.c (handle_introspect): split out
7772         (introspect_properties): this.
7773         (handle_introspect): implement this.
7774
7775         * test/glib/Makefile.am: use the absolute path so the bus
7776         daemon's chdir ("/") doesn't kill us dead.
7777
7778         * configure.in: subst ABSOLUTE_TOP_BUILDDIR
7779
7780 2004-04-12  Jon Trowbridge  <trow@ximian.com>
7781
7782         * bus/config-parser.c (struct BusConfigParser): Added
7783         included_files field.
7784         (seen_include): Added.  Checks whether or not a file has already
7785         been included by any parent BusConfigParser.
7786         (bus_config_parser_new): Copy the parent's included_files.
7787         (include_file): Track which files have been included, and fail on
7788         circular inclusions.
7789         (process_test_valid_subdir): Changed printf to report if we are
7790         testing valid or invalid conf files.
7791         (all_are_equiv): Changed printf to be a bit clearer about
7792         what we are actually doing.
7793         (bus_config_parser_test): Test invalid configuration files.
7794
7795 2004-04-09  Jon Trowbridge  <trow@ximian.com>
7796
7797         * bus/config-parser.c (bus_config_parser_new): Added a 'parent'
7798         argument.  If non-null, the newly-constructed BusConfigParser will
7799         be initialized with the parent's BusLimits instead of the default
7800         values.
7801         (include_file): When including a config file, pass in
7802         the current parser as the parent and then copy the BusLimits
7803         from the included BusConfigParser pack to the current parser.
7804         (process_test_valid_subdir): Renamed from process_test_subdir.
7805         (process_test_equiv_subdir): Added.  Walks through a directory,
7806         descending into each subdirectory and loading the config files
7807         it finds there.  If any subdirectory contains two config files
7808         that don't produce identical BusConfigParser structs, fail.
7809         For now, the BusConfigParser's BusPolicies are not compared.
7810         (bus_config_parser_test): Call both process_test_valid_subdir and
7811         process_test_equiv_subdir.
7812
7813         * bus/config-loader-libxml.c (bus_config_load): Take a parent
7814         argument and pass it along to the call to bus_config_parser_new.
7815         Also made a few small changes to allow this code to compile.
7816
7817         * bus/config-loader-expat.c (bus_config_load): Take a parent
7818         argument and pass it along to the call to bus_config_parser_new.
7819
7820         * bus/bus.c (bus_context_new): Load the config file
7821         with a NULL parent argument.
7822
7823 2004-03-29  Michael Meeks  <michael@ximian.com>
7824
7825         * glib/dbus-gobject.c (introspect_properties): split
7826         out, fix mangled 'while' flow control.
7827         (introspect_signals): implement.
7828         (handle_introspect): update.
7829
7830 2004-03-29  Michael Meeks  <michael@ximian.com>
7831
7832         * glib/dbus-gobject.c (set_object_property): split out / 
7833         re-work, use the property type, and not the message type(!)
7834         (get_object_property): ditto.
7835
7836         * glib/dbus-gvalue.c (dbus_gvalue_demarshal),
7837         (dbus_gvalue_marshal): make this code re-usable, needed
7838         for signals too, also on both proxy and server side.
7839         Re-write for more efficiency / readability.
7840
7841 2004-03-29  Michael Meeks  <michael@ximian.com>
7842
7843         * dbus/dbus-message.c
7844         (dbus_message_new_error_printf): impl.
7845
7846         * dbus/dbus-connection.c
7847         (dbus_connection_unregister_object_path): fix warning.
7848
7849         * configure.in: fix no-mono-installed situation.
7850
7851 2004-03-27  Havoc Pennington  <hp@redhat.com>
7852
7853         Patch from Timo Teräs:
7854         
7855         * tools/dbus-send.c (main): if --print-reply, assume type is
7856         method call; support boolean type args
7857         
7858         * dbus/dbus-connection.c (dbus_connection_send_with_reply): fix a
7859         bunch of memleak and logic bugs
7860         
7861 2004-03-23  Owen Fraser-Green  <owen@discobabe.net>
7862
7863         * mono/Arguments.cs:
7864         * mono/Introspector.cs:
7865         * mono/Handler.cs:
7866         * mono/InterfaceProxy.cs:
7867         * mono/Message.cs
7868         * mono/ProxyBuilder.cs:
7869         * mono/Service.cs:
7870         Added InterfaceProxy class to avoid building proxies for every
7871         object.
7872
7873         * dbus-message.h:
7874         * dbus-message.c (dbus_message_append_args_valist)
7875         (dbus_message_iter_get_object_path)
7876         (dbus_message_iter_get_object_path_array)
7877         (dbus_message_iter_append_object_path)
7878         (dbus_message_iter_append_object_path_array):
7879         Added object_path iter functions to handle OBJECT_PATH arguments
7880         
7881 2004-03-23  Owen Fraser-Green  <owen@discobabe.net>
7882
7883         First checkin of mono bindings.
7884         * configure.in:
7885         * Makefile.am:
7886         Build stuff for the bindings
7887         * dbus-sharp.pc.in: Added for pkgconfig
7888         
7889 2004-03-21  Havoc Pennington  <hp@redhat.com>
7890
7891         * test/test-service.c (main): remove debug spew
7892
7893 2004-03-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7894
7895         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): accept empty
7896         arrays
7897
7898         * dbus/dbus-message.h, bus/dbus-message.c (dbus_message_iter_init)
7899         (dbus_message_iter_init_array_iterator)
7900         (dbus_message_iter_init_dict_iterator): return a dbus_bool_t to
7901         indicate whether the iterator is empty
7902
7903         * dbus/dbus-pending-call.c, dbus/dbus-server.c: silence compiler
7904         warnings
7905
7906 2004-03-19  Havoc Pennington  <hp@redhat.com>
7907
7908         * NEWS: 0.21 updates
7909
7910         * configure.in: 0.21
7911
7912         * doc/Makefile.am: add all XMLTO usage to DBUS_XML_DOCS_ENABLED
7913         
7914         * python/Makefile.am: change to avoid dist of dbus_bindings.c so
7915         you don't need pyrex to make dist
7916
7917         * qt/Makefile.am (libdbus_qt_1_la_SOURCES): add integrator.h to
7918         sources; run moc
7919         
7920 2004-03-18  Richard Hult  <richard@imendio.com>
7921
7922         * dbus/dbus-message.c (dbus_message_get_auto_activation) 
7923         (dbus_message_set_auto_activation): Add doxygen docs.
7924
7925 2004-03-16  Richard Hult  <richard@imendio.com>
7926
7927         * bus/activation.c: (bus_activation_service_created),
7928         (bus_activation_send_pending_auto_activation_messages),
7929         (bus_activation_activate_service):
7930         * bus/activation.h:
7931         * bus/dispatch.c: (bus_dispatch),
7932         (check_nonexistent_service_auto_activation),
7933         (check_service_auto_activated),
7934         (check_segfault_service_auto_activation),
7935         (check_existent_service_auto_activation), (bus_dispatch_test):
7936         * bus/driver.c: (bus_driver_handle_activate_service):
7937         * bus/services.c: (bus_registry_acquire_service):
7938         * dbus/dbus-message.c: (dbus_message_set_auto_activation),
7939         (dbus_message_get_auto_activation):
7940         * dbus/dbus-message.h:
7941         * dbus/dbus-protocol.h: Implement auto-activation.
7942         
7943         * doc/dbus-specification.xml: Add auto-activation to the spec.
7944
7945 2004-03-12  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7946
7947         * dbus/dbus-marshal.c (_dbus_marshal_get_arg_end_pos):
7948         fix a bug with CUSTOM types.
7949
7950         * dbus/dbus-message.c (message_iter_test, _dbus_message_test): add
7951         a unit test for this bug (used to fail).
7952
7953 2004-03-12  Mikael Hallendal  <micke@imendio.com>
7954
7955         * bus/activation.c:
7956         (babysitter_watch_callback): notify all pending activations waiting for
7957           the same exec that the activation failed.
7958         (bus_activation_activate_service): shortcut the activation if we 
7959           already waiting for the same executable to start up.
7960
7961 2004-03-12  Mikael Hallendal  <micke@imendio.com>
7962
7963         * bus/activation.c: 
7964         - Added service file reloading. 
7965           Each service files directory is kept in an hash table in 
7966           BusActivation and each BusActivationEntry knows what .service-file it
7967           was read from. So when you try to activate a service the bus will 
7968           check if it's been updated, removed or if new .service-files has 
7969           been installed.
7970         - Test code at the bottom for the service file reloading.
7971         * bus/test-main.c: (main):
7972         * bus/test.h:
7973         - added service reloading test.
7974         * dbus/dbus-sysdeps.c: 
7975         * dbus/dbus-sysdeps.h: (_dbus_delete_directory): Added.
7976
7977 2004-03-08  Michael Meeks  <michael@ximian.com>
7978
7979         * dbus/dbus-connection.c (_dbus_connection_block_for_reply): 
7980         bail immediately if disconnected, to avoid busy loop.
7981
7982         * dbus/dbus-message.c (dbus_message_iter_get_args_valist):
7983         cleanup cut/paste/inefficiency.
7984
7985 2004-03-01  David Zeuthen  <david@fubar.dk>
7986
7987         * dbus/dbus-string.c (_dbus_string_append_printf_valist): Fix a
7988         bug where args were used twice. This bug resulted in a segfault
7989         on a Debian/PPC system when starting the messagebus daemon. Include
7990         dbus-sysdeps.h for DBUS_VA_COPY
7991
7992         * dbus/dbus-sysdeps.h: Define DBUS_VA_COPY if neccessary. From GLib
7993
7994         * configure.in: Check for va_copy; define DBUS_VA_COPY to the
7995         appropriate va_copy implementation. From GLib
7996         
7997 2004-02-24  Joe Shaw  <joe@ximian.com>
7998
7999         * bus/services.c (bus_registry_acquire_service): We need to pass
8000         in the service name to dbus_set_error() to prevent a crash.
8001
8002 2003-12-26  Anders Carlsson  <andersca@gnome.org>
8003
8004         * AUTHORS: Reveal my True identity.
8005
8006 2003-12-17  Mikael Hallendal  <micke@imendio.com>
8007
8008         * dbus/dbus-message.c: (dbus_message_append_args_valist): 
8009         - Added case for DBUS_TYPE_BYTE, patch from Johan Hedberg.
8010
8011 2003-12-13  Mikael Hallendal  <micke@imendio.com>
8012
8013         * doc/TODO: Added not about better error check of configuration files.
8014
8015 2003-12-02  Richard Hult  <richard@imendio.com>
8016
8017         * Update AFL version to 2.0 throughout the source files to reflect
8018         the update that was done a while ago.
8019
8020 2003-12-02  Richard Hult  <richard@imendio.com>
8021
8022         * dbus/dbus-message.c (dbus_message_iter_append_dict): Set
8023         wrote_dict_key to FALSE on the iter that the dict is appended to,
8024         just like when appending other types. Fixes a bug where a dict
8025         couldn't be put inside a dict.
8026         (dbus_message_iter_append_dict_key): Fix typo in warning message.
8027         (message_iter_test, _dbus_message_test): Add test case for dict
8028         inside dict.
8029
8030 2003-12-01  David Zeuthen  <david@fubar.dk>
8031
8032         * python/dbus.py: Add the actual message when calling the reciever
8033         of a signal such that parameters can be inspected. Add the method
8034         remove_signal_receiver
8035         
8036 2003-11-26  Mikael Hallendal  <micke@imendio.com>
8037
8038         * bus/*.[ch]:
8039         * dbus/*.[ch]:
8040         * glib/*.[ch]: Made ref functions return the pointer
8041
8042 2003-11-25  Zack Rusin  <zack@kde.org>
8043
8044         * qt/integrator.h, qt/integrator.cpp: Adding handling of DBusServer,
8045
8046         * qt/server.h, qt/server.cpp, qt/Makefile.am: Adding DBusServer 
8047         wrappers,
8048
8049         * qt/connection.h, qt/connection.cpp: Adjusting to changes in 
8050         the Integrator and to better fit with the server,
8051
8052 2003-11-24  Zack Rusin  <zack@kde.org>
8053
8054         * qt/connection.h, qt/connection.cpp: removing initDbus method since
8055         the integrator handles it now
8056
8057         * qt/integrator.h, qt/integrator.cpp: reworking handling of timeouts,
8058         since QTimer wasn't really meant to be used the way DBusTimeout is
8059
8060 2003-11-24  Zack Rusin  <zack@kde.org>
8061
8062         * qt/integrator.h, qt/integrator.cpp, Makefile.am: Adding 
8063         Integrator class which integrates D-BUS with the Qt event loop,
8064
8065         * qt/connection.h, qt/connection.cpp: Move all the code which
8066         was dealing with D-BUS integration to the Integrator class,
8067         and start using Integrator,
8068
8069 2003-11-23  Zack Rusin  <zack@kde.org>
8070
8071         * qt/connection.h, qt/connection.cpp: Adding the DBusConnection 
8072         wrapper
8073
8074         * qt/message.h, qt/message.cpp: updating to the current D-BUS api,
8075         switching namespaces to DBusQt, reworking the class,
8076
8077         * Makefile.cvs: switching dependencies so that it matches KDE 
8078         schematics,
8079         
8080         * qt/Makefile.am: adding connection.{h,cpp} and message.{h,cpp} to 
8081         the library
8082
8083 2003-11-19  Havoc Pennington  <hp@redhat.com>
8084
8085         * NEWS: update
8086
8087         * configure.in: bump version to 0.20
8088
8089         * configure.in (have_qt): add yet another place to look for qt
8090         (someone hand trolltech a .pc file...)
8091
8092 2003-11-01  Havoc Pennington  <hp@redhat.com>
8093
8094         * doc/dbus-specification.xml: add state machine docs on the auth
8095         protocol; just a first draft, I'm sure it's wrong.      
8096
8097 2003-10-28  David Zeuthen  <david@fubar.dk>
8098
8099         * python/dbus_bindings.pyx.in: add get_dict to handle dictionaries
8100         return types. Fixup TYPE_* to reflect changes in dbus/dbus-protocol.h
8101         
8102 2003-10-28  Havoc Pennington  <hp@redhat.com>
8103
8104         * dbus/dbus-message.c (get_next_field): delete unused function
8105
8106 2003-10-28  Havoc Pennington  <hp@redhat.com>
8107
8108         * bus/expirelist.c (do_expiration_with_current_time): detect
8109         failure of the expire_func due to OOM
8110
8111         * bus/connection.c (bus_pending_reply_expired): return FALSE on OOM
8112
8113         * bus/dispatch.c (check_send_exit_to_service): fix to handle the
8114         NoReply error that's now created by the bus when the service exits
8115
8116 2003-10-28  Havoc Pennington  <hp@redhat.com>
8117
8118         * dbus/dbus-message.c (_dbus_message_test): enable and fix the
8119         tests for set_path, set_interface, set_member, etc.
8120
8121         * dbus/dbus-string.c (_dbus_string_insert_bytes): allow 0 bytes
8122
8123         * dbus/dbus-message.c (set_string_field): always just delete and
8124         re-append the field; accept NULL for deletion
8125         (re_align_fields_recurse): reimplement
8126         
8127 2003-10-26  Havoc Pennington  <hp@redhat.com>
8128
8129         * dbus/dbus-connection.c: fix docs to properly describe the
8130         disconnected message
8131         (_dbus_connection_notify_disconnected): remove this function; 
8132         we can't synchronously add the disconnected message, we have to 
8133         do it after we've queued any remaining real messages
8134         (_dbus_connection_get_dispatch_status_unlocked): queue the
8135         disconnect message only if the transport has finished queueing all
8136         its real messages and is disconnected.
8137         (dbus_connection_disconnect): update the dispatch status here
8138
8139 2003-10-22  Havoc Pennington  <hp@redhat.com>
8140
8141         * bus/bus.c (bus_context_check_security_policy): fix up assertion
8142
8143         * bus/connection.c (bus_transaction_send_from_driver): set the
8144         destination to the connection's base service
8145
8146 2003-10-20  Havoc Pennington  <hp@redhat.com>
8147
8148         hmm, make check is currently not passing.
8149         
8150         * doc/dbus-specification.xml: add requirement that custom type
8151         names follow the same rules as interface names.
8152
8153         * dbus/dbus-protocol.h: change some of the byte codes, to avoid
8154         duplication and allow 'c' to be 'custom'; dict is now 'm' for
8155         'map'
8156
8157         * doc/dbus-specification.xml: update type codes to match
8158         dbus-protocol.h, using the ASCII byte values. Rename type NAMED to
8159         CUSTOM. Add type OBJECT_PATH to the spec.
8160
8161 2003-10-17  Havoc Pennington  <hp@redhat.com>
8162
8163         * bus/driver.c (create_unique_client_name): use "." as separator
8164         in base service names instead of '-'
8165
8166         * dbus/dbus-string.c (_dbus_string_get_byte): allow getting nul
8167         byte at the end of the string
8168
8169         * dbus/dbus-internals.h (_DBUS_LIKELY, _DBUS_UNLIKELY): add
8170         optimization macros since string validation seems to be a slow
8171         point.
8172         
8173         * doc/dbus-specification.xml: restrict valid
8174         service/interface/member/error names. Add test suite code for the
8175         name validation.
8176
8177         * dbus/dbus-string.c: limit service/interface/member/error names 
8178         to [0-9][A-Z][a-z]_
8179
8180         * dbus/dbus-connection.c (dbus_connection_dispatch): add missing
8181         format arg to verbose spew
8182
8183         * glib/dbus-gproxy.c (dbus_gproxy_call_no_reply): if not out of
8184         memory, return instead of g_error
8185
8186         * test/test-service.c (path_message_func): support emitting a
8187         signal on request
8188
8189         * dbus/dbus-bus.c (init_connections_unlocked): only fill in
8190         activation bus type if DBUS_BUS_ACTIVATION was set; default to
8191         assuming the activation bus was the session bus so that services
8192         started manually will still register.
8193         (init_connections_unlocked): fix so that in OOM situation we get
8194         the same semantics when retrying the function
8195         
8196         * test/test-service.c (main): change to use path registration, to
8197         test those codepaths; register with DBUS_BUS_ACTIVATION rather
8198         than DBUS_BUS_SESSION
8199
8200 2003-10-16  Havoc Pennington  <hp@redhat.com>
8201
8202         * glib/dbus-gtest-main.c: bracket with #ifdef DBUS_BUILD_TESTS
8203
8204         * Makefile.am (GCOV_DIRS): remove "test", we don't care about test
8205         coverage of the tests
8206         (coverage-report.txt): don't move the .da and .bbg files around
8207
8208 2003-10-16  Havoc Pennington  <hp@redhat.com>
8209
8210         * bus/bus.c (struct BusContext): remove struct field I didn't mean
8211         to put there
8212
8213 2003-10-16  Havoc Pennington  <hp@redhat.com>
8214
8215         * bus/connection.c (bus_pending_reply_expired): either cancel or
8216         execute, not both
8217         (bus_connections_check_reply): use unlink, not remove_link, as we
8218         don't want to free the link; fixes double free mess
8219
8220         * dbus/dbus-pending-call.c (dbus_pending_call_block): fix in case
8221         where no reply was received
8222
8223         * dbus/dbus-connection.c (_dbus_pending_call_complete_and_unlock):
8224         fix a refcount leak
8225
8226         * bus/signals.c (match_rule_matches): add special cases for the
8227         bus driver, so you can match on sender/destination for it.
8228
8229         * dbus/dbus-sysdeps.c (_dbus_abort): print backtrace if
8230         DBUS_PRINT_BACKTRACE is set
8231
8232         * dbus/dbus-internals.c: add pid to assertion failure messages
8233
8234         * dbus/dbus-connection.c: add message type code to the debug spew
8235
8236         * glib/dbus-gproxy.c (gproxy_get_match_rule): match rules want
8237         sender=foo not service=foo
8238
8239         * dbus/dbus-bus.c (dbus_bus_get): if the activation bus is the
8240         session bus but DBUS_SESSION_BUS_ADDRESS isn't set, use 
8241         DBUS_ACTIVATION_ADDRESS instead
8242
8243         * bus/activation.c: set DBUS_SESSION_BUS_ADDRESS,
8244         DBUS_SYSTEM_BUS_ADDRESS if appropriate
8245
8246         * bus/bus.c (bus_context_new): handle OOM copying bus type into
8247         context struct
8248
8249         * dbus/dbus-message.c (dbus_message_iter_get_object_path): new function
8250         (dbus_message_iter_get_object_path_array): new function (half
8251         finished, disabled for the moment)
8252         
8253         * glib/dbus-gproxy.c (dbus_gproxy_end_call): properly handle
8254         DBUS_MESSAGE_TYPE_ERROR
8255
8256         * tools/dbus-launch.c (babysit): support DBUS_DEBUG_OUTPUT to
8257         avoid redirecting stderr to /dev/null
8258         (babysit): close stdin if not doing the "exit_with_session" thing
8259
8260         * dbus/dbus-sysdeps.c (_dbus_become_daemon): delete some leftover
8261         debug code; change DBUS_DEBUG_OUTPUT to only enable stderr, not
8262         stdout/stdin, so things don't get confused
8263         
8264         * bus/system.conf.in: fix to allow replies, I modified .conf
8265         instead of .conf.in again.
8266
8267 2003-10-14  David Zeuthen  <david@fubar.dk>
8268
8269         * python/dbus_bindings.pyx.in (MessageIter.get): fixed typo in
8270         argtype to arg_type when raising unknown arg type exception.
8271         Changed type list to reflect the changes in dbus-protocol.h so 
8272         the bindings actually work.
8273
8274 2003-10-14  Havoc Pennington  <hp@redhat.com>
8275
8276         * test/decode-gcov.c: support gcc 3.3 also, though gcc 3.3 seems
8277         to have a bug keeping it from outputting the .da files sometimes
8278         (string_get_string): don't append garbage nul bytes to the string.
8279
8280 2003-10-15  Seth Nickell  <seth@gnome.org>
8281
8282         * python/Makefile.am:
8283
8284         Include dbus_h_wrapper.h in the dist tarball.
8285
8286 2003-10-14  Havoc Pennington  <hp@redhat.com>
8287
8288         * bus/bus.c (bus_context_check_security_policy): revamp this to
8289         work more sanely with new policy-based requested reply setup
8290
8291         * bus/connection.c (bus_transaction_send_from_driver): set bus
8292         driver messages as no reply
8293
8294         * bus/policy.c (bus_client_policy_check_can_receive): handle a
8295         requested_reply attribute on allow/deny rules
8296
8297         * bus/system.conf: add <allow requested_reply="true"/>
8298
8299         * bus/driver.c (bus_driver_handle_message): fix check for replies
8300         sent to the bus driver, which was backward. How did this ever work
8301         at all though? I think I'm missing something.
8302
8303         * dbus/dbus-message.c (decode_header_data): require error and
8304         method return messages to have a reply serial field to be valid
8305         (_dbus_message_loader_queue_messages): break up this function;
8306         validate that reply serial and plain serial are nonzero; 
8307         clean up the OOM/error handling.
8308         (get_uint_field): don't return -1 from this
8309         (dbus_message_create_header): fix signed/unsigned bug
8310
8311         * bus/connection.c (bus_connections_expect_reply): save serial of
8312         the incoming message, not reply serial
8313
8314 2003-10-14  Havoc Pennington  <hp@redhat.com>
8315
8316         * bus/connection.c: implement pending reply tracking using
8317         BusExpireList
8318
8319         * bus/bus.c (bus_context_check_security_policy): verify that a
8320         reply is pending in order to allow a reply to be sent. Deny 
8321         messages of unknown type.
8322
8323         * bus/dbus-daemon-1.1.in: update to mention new resource limits
8324
8325         * bus/bus.c (bus_context_get_max_replies_per_connection): new
8326         (bus_context_get_reply_timeout): new
8327
8328 2003-10-13  Seth Nickell  <seth@gnome.org>
8329
8330         * python/Makefile.am:
8331
8332         Pass "make distcheck": remove a couple files from DIST_FILES
8333         that weren't included in the final version.
8334
8335 2003-10-12  Havoc Pennington  <hp@pobox.com>
8336
8337         Added test code that 1) starts an actual bus daemon and 2) uses
8338         DBusGProxy; fixed bugs that were revealed by the test. Lots 
8339         more testing possible, but this is the basic framework.
8340         
8341         * glib/dbus-gproxy.c (dbus_gproxy_manager_unregister): remove
8342         empty proxy lists from the proxy list hash
8343
8344         * dbus/dbus-message.c (dbus_message_iter_get_args_valist): add a
8345         couple of return_if_fail checks
8346
8347         * dbus/dbus-pending-call.c (_dbus_pending_call_new): use dbus_new0
8348         to allocate, so everything is cleared to NULL as it should be.
8349
8350         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): pass
8351         source as data to dbus_connection_set_timeout_functions() as the 
8352         timeout functions expected
8353
8354         * test/glib/run-test.sh: add a little script to start up a message
8355         bus and run tests using it
8356
8357         * tools/dbus-launch.1: updates
8358
8359         * tools/dbus-launch.c (main): add --config-file option
8360
8361         * tools/dbus-launch.c (main): remove confusing else if (runprog)
8362         that could never be reached.
8363
8364         * dbus/dbus-message.c (dbus_message_new_method_return) 
8365         (dbus_message_new_error, dbus_message_new_signal): set the
8366         no-reply-expected flag on all these. Redundant, but may
8367         as well be consistent.
8368
8369 2003-10-11  Havoc Pennington  <hp@pobox.com>
8370
8371         * test/decode-gcov.c (function_solve_graph): make broken block
8372         graph a nonfatal error since it seems to be broken. Need to debug
8373         this.
8374
8375         * dbus/dbus-marshal.c (_dbus_type_is_valid): new function since we
8376         can't just check type > INVALID < LAST anymore
8377
8378         * dbus/dbus-message.c (dbus_message_get_signature): new function
8379         (dbus_message_has_signature): new function
8380         (struct DBusMessage): add signature field (right now it isn't sent
8381         over the wire, just generated on the fly)
8382         (dbus_message_copy): copy the signature, and init strings to
8383         proper length to avoid some reallocs
8384         (dbus_message_iter_init_array_iterator): return void, since it
8385         can't fail
8386         (dbus_message_iter_init_dict_iterator): return void since it can't fail
8387         (_dbus_message_loader_queue_messages): add silly temporary hack to
8388         fill in message->signature on load
8389
8390         * dbus/dbus-protocol.h: change DBUS_TYPE_* values to be ASCII
8391         characters, so they are relatively human-readable.
8392
8393 2003-10-11  Havoc Pennington  <hp@pobox.com>
8394
8395         * dbus/dbus-message.c (_dbus_message_test): add more test
8396         coverage, but #if 0 for now since they uncover a bug 
8397         not fixed yet; I think in re_align_field_recurse()
8398         (re_align_field_recurse): add FIXME about broken assertion
8399
8400         * dbus/dbus-sysdeps.c (_dbus_sysdeps_test): add more test coverage
8401
8402         * bus/connection.c: share a couple code bits with expirelist.c
8403
8404         * bus/expirelist.h, bus/expirelist.c: implement a generic
8405         expire-items-after-N-seconds facility, was going to share between
8406         expiring connections and replies, decided not to use for expiring
8407         connections for now.
8408
8409         * COPYING: include AFL 2.0 (still need to change all the file headers)
8410
8411 2003-10-09  Havoc Pennington  <hp@redhat.com>
8412
8413         * configure.in: define DBUS_HAVE_GCC33_GCOV if we have
8414         gcc 3.3. Not that we do anything about it yet.
8415
8416         * bus/signals.c (bus_match_rule_parse): impose max length on the
8417         match rule text
8418
8419         * dbus/dbus-protocol.h: add DBUS_MAXIMUM_MATCH_RULE_LENGTH
8420
8421 2003-10-09  Havoc Pennington  <hp@redhat.com>
8422
8423         Make matching rules theoretically work (add parser).
8424         
8425         * bus/bus.c (bus_context_check_security_policy): fix up to handle
8426         the case where destination is explicitly specified as bus driver
8427         and someone else is eavesdropping.
8428         
8429         * bus/policy.c (bus_client_policy_check_can_receive): fix up
8430         definition of eavesdropping and assertion
8431
8432         * tools/dbus-send.c (main): use dbus_message_type_from_string
8433
8434         * bus/signals.c (bus_match_rule_parse): implement
8435
8436         * dbus/dbus-message.c (dbus_message_type_from_string): new
8437
8438         * dbus/dbus-errors.h (DBUS_ERROR_MATCH_RULE_INVALID): add
8439
8440 2003-10-02  Havoc Pennington  <hp@pobox.com>
8441
8442         * glib/dbus-gproxy.c (dbus_gproxy_call_no_reply): rename from
8443         dbus_gproxy_oneway_call
8444
8445         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main) 
8446         (dbus_server_setup_with_g_main): fix to allow calling them more
8447         than once on the same args
8448         (dbus_bus_get_with_g_main): new function
8449
8450 2003-10-02  Havoc Pennington  <hp@redhat.com>
8451
8452         * doc/dbus-tutorial.xml: write some stuff
8453
8454 2003-09-29  Havoc Pennington  <hp@pobox.com>
8455
8456         * configure.in: split checks for Doxygen from XML docs, check for
8457         xmlto
8458
8459         * doc/Makefile.am: XML-ify all the docs, and add a blank
8460         dbus-tutorial.xml
8461
8462 2003-09-29  Havoc Pennington  <hp@pobox.com>
8463
8464         * Merge dbus-object-names branch. To see the entire patch 
8465         do cvs diff -r DBUS_OBJECT_NAMES_BRANCHPOINT -r dbus-object-names,
8466         it's huuuuge though.
8467         To revert, I tagged DBUS_BEFORE_OBJECT_NAMES_MERGE.
8468         
8469 2003-09-28  Havoc Pennington  <hp@pobox.com>
8470
8471         * HACKING: update to reflect new server
8472
8473 2003-09-26  Seth Nickell  <seth@gnome.org>
8474
8475         * python/dbus.py:
8476         * python/examples/example-signals.py:
8477
8478         Start implementing some notions of signals. The API
8479         is really terrible, but they sort of work (with the
8480         exception of being able to filter by service, and to
8481         transmit signals *as* a particular service). Need to
8482         figure out how to make messages come from the service
8483         we registered :-(
8484         
8485         * python/dbus_bindings.pyx.in:
8486
8487         Removed duplicate message_handler callbacks.
8488         
8489 2003-09-25  Havoc Pennington  <hp@redhat.com>
8490
8491         * bus/session.conf.in: fix my mess
8492
8493 2003-09-25  Havoc Pennington  <hp@pobox.com>
8494
8495         * bus/session.conf.in: fix security policy, reported by Seth Nickell
8496
8497 2003-09-25  Seth Nickell  <seth@gnome.org>
8498
8499         * python/examples/example-service.py:
8500
8501         Johan notices complete wrong code in example-service, but
8502         completely wrong in a way that works exactly the same (!).
8503         Johan is confused, how could this possibly work? Example
8504         code fails to serve purpose of making things clear.
8505         Seth fixes.
8506
8507 2003-09-25  Mark McLoughlin  <mark@skynet.ie>
8508
8509         * doc/dbus-specification.sgml: don't require header fields
8510         to be 4-byte aligned and specify that fields should be
8511         distinguished from padding by the fact that zero is not
8512         a valid field name.
8513         
8514         * doc/TODO: remove re-alignment item and add item to doc
8515         the OBJECT_PATH type.
8516         
8517         * dbus/dbus-message.c:
8518         (HeaderField): rename the original member to value_offset
8519         and introduce a name_offset member to keep track of where
8520         the field actually begins.
8521         (adjust_field_offsets): remove.
8522         (append_int_field), (append_uint_field),
8523         (append_string_field): don't align the start of the header
8524         field to a 4-byte boundary.
8525         (get_next_field): impl finding the next marhsalled field
8526         after a given field.
8527         (re_align_field_recurse): impl re-aligning a number of
8528         already marshalled fields.
8529         (delete_field): impl deleting a field of any type and
8530         re-aligning any following fields.
8531         (delete_int_or_uint_field), (delete_string_field): remove.
8532         (set_int_field), (set_uint_field): no need to re-check
8533         that we have the correct type for the field.
8534         (set_string_field): ditto and impl re-aligning any
8535         following fields.
8536         (decode_header_data): update to take into account that
8537         the fields aren't 4-byte aligned any more and the new
8538         way to distinguish padding from header fields. Also,
8539         don't exit when there is too much header padding.
8540         (process_test_subdir): print the directory.
8541         (_dbus_message_test): add test to make sure a following
8542         field is re-aligned correctly after field deletion.
8543         
8544         * dbus/dbus-string.[ch]:
8545         (_dbus_string_insert_bytes): rename from insert_byte and
8546         allow the insert of multiple bytes.
8547         (_dbus_string_test): test inserting multiple bytes.
8548
8549         * dbus/dbus-marshal.c: (_dbus_marshal_set_string): add
8550         warning note to docs about having to re-align any
8551         marshalled values following the string.
8552         
8553         * dbus/dbus-message-builder.c:
8554         (append_string_field), (_dbus_message_data_load):
8555         don't align the header field.
8556         
8557         * dbus/dbus-auth.c: (process_test_subdir): print the
8558         directory.
8559         
8560         * test/break-loader.c: (randomly_add_one_byte): upd. for
8561         insert_byte change.
8562         
8563         * test/data/invalid-messages/bad-header-field-alignment.message:
8564         new test case.
8565         
8566         * test/data/valid-messages/unknown-header-field.message: shove
8567         a dict in the unknown field.
8568
8569 2003-09-25  Seth Nickell  <seth@gnome.org>
8570
8571         * python/dbus.py:
8572         * python/dbus_bindings.pyx.in:
8573
8574         Handle return values.
8575         
8576         * python/examples/example-client.py:
8577         * python/examples/example-service.py:
8578
8579         Pass back return values from the service to the client.
8580         
8581 2003-09-24  Seth Nickell  <seth@gnome.org>
8582
8583         * python/dbus.py:
8584
8585         Connect Object methods (when you are sharing an object) up... pass
8586         in a list of methods to be shared. Sharing all the methods just
8587         worked out too weird. You can now create nice Services over the
8588         DBus in Python. :-)
8589         
8590         * python/dbus_bindings.pyx.in:
8591
8592         Keep references to user_data tuples passed into C functions so 
8593         Python doesn't garbage collect on us.
8594
8595         Implement MethodReturn and Error subclasses of Message for creating
8596         DBusMessage's of those types.
8597         
8598         * python/examples/example-client.py:
8599         * python/examples/example-service.py:
8600
8601         Simple example code showing both how create DBus services and objects,
8602         and how to use them.
8603
8604 2003-09-23  Havoc Pennington  <hp@pobox.com>
8605
8606         * glib/dbus-gproxy.c (dbus_gproxy_manager_filter): implement
8607
8608 2003-09-23  Havoc Pennington  <hp@redhat.com>
8609
8610         * glib/dbus-gproxy.c (dbus_gproxy_connect_signal): implement
8611         (dbus_gproxy_disconnect_signal): implement
8612         (dbus_gproxy_manager_remove_signal_match): implement
8613         (dbus_gproxy_manager_add_signal_match): implement
8614         (dbus_gproxy_oneway_call): implement
8615
8616 2003-09-23  Havoc Pennington  <hp@pobox.com>
8617
8618         * glib/dbus-gproxy.c (struct DBusGProxy): convert to a GObject
8619         subclass. This means dropping the transparent thread safety of the
8620         proxy; you now need a separate proxy per-thread, or your own
8621         locking on the proxy. Probably right anyway.
8622         (dbus_gproxy_ref, dbus_gproxy_unref): nuke, just use g_object_ref
8623
8624 2003-09-22  Havoc Pennington  <hp@redhat.com>
8625
8626         * glib/dbus-gproxy.c (dbus_gproxy_manager_get): implement
8627
8628 2003-09-21  Seth Nickell  <seth@gnome.org>
8629
8630         First checkin of the Python bindings.
8631         
8632         * python/.cvsignore:
8633         * python/Makefile.am:
8634         * python/dbus_bindings.pyx.in:
8635         * python/dbus_h_wrapper.h:
8636
8637         Pieces for Pyrex to operate on, building a dbus_bindings.so
8638         python module for low-level access to the DBus APIs.
8639         
8640         * python/dbus.py:
8641
8642         High-level Python module for accessing DBus objects.
8643
8644         * configure.in:
8645         * Makefile.am:
8646
8647         Build stuff for the python bindings.
8648
8649         * acinclude.m4:
8650
8651         Extra macro needed for finding the Python C header files.
8652
8653 2003-09-21  Havoc Pennington  <hp@pobox.com>
8654
8655         * glib/dbus-gproxy.c (dbus_gproxy_manager_new): start
8656         implementing the proxy manager, didn't get very far.
8657
8658         * dbus/dbus-bus.c (dbus_bus_add_match): new
8659         (dbus_bus_remove_match): new
8660
8661         * glib/dbus-gproxy.c (dbus_gproxy_new_for_service): add a
8662         path_name argument; adjust the other not-yet-implemented 
8663         gproxy constructors to be what I think they should be.
8664
8665 2003-09-21  Havoc Pennington  <hp@pobox.com>
8666
8667         * dbus/dbus-bus.c (dbus_bus_get): set exit_on_disconnect to TRUE
8668         by default for message bus connections.
8669
8670         * dbus/dbus-connection.c (dbus_connection_dispatch): exit if
8671         exit_on_disconnect flag is set and we process the disconnected
8672         signal.
8673         (dbus_connection_set_exit_on_disconnect): new function
8674
8675 2003-09-21  Havoc Pennington  <hp@pobox.com>
8676
8677         Get matching rules mostly working in the bus; only actually
8678         parsing the rule text remains. However, the client side of
8679         "signal connections" hasn't been started, this patch is only the
8680         bus side.
8681         
8682         * dbus/dispatch.c: fix for the matching rules changes
8683         
8684         * bus/driver.c (bus_driver_handle_remove_match)
8685         (bus_driver_handle_add_match): send an ack reply from these
8686         method calls
8687
8688         * glib/dbus-gproxy.c (dbus_gproxy_begin_call): fix order of
8689         arguments, reported by Seth Nickell
8690
8691         * bus/config-parser.c (append_rule_from_element): support
8692         eavesdrop=true|false attribute on policies so match rules 
8693         can be prevented from snooping on the system bus.
8694
8695         * bus/dbus-daemon-1.1.in: consistently use terminology "sender"
8696         and "destination" in attribute names; fix some docs bugs; 
8697         add eavesdrop=true|false attribute
8698
8699         * bus/driver.c (bus_driver_handle_add_match)
8700         (bus_driver_handle_remove_match): handle AddMatch, RemoveMatch
8701         messages
8702
8703         * dbus/dbus-protocol.h (DBUS_SERVICE_ORG_FREEDESKTOP_BROADCAST): get
8704         rid of broadcast service concept, signals are just always broadcast
8705
8706         * bus/signals.c, bus/dispatch.c, bus/connection.c, bus/bus.c:
8707         mostly implement matching rules stuff (currently only exposed as signal
8708         connections)
8709
8710 2003-09-21  Mark McLoughlin  <mark@skynet.ie>
8711
8712         * doc/dbus-specification.sgml: Change the header field name
8713         to be an enum and update the rest of the spec to reference
8714         the fields using the conventinal name.
8715
8716         * dbus/dbus-protocol.h: update to reflect the spec.
8717
8718         * doc/TODO: add item to remove the 4 byte alignment requirement.
8719         
8720         * dbus/dbus-message.c: Remove the code to generalise the
8721         header/body length and serial number header fields as named
8722         header fields so we can reference field names using the 
8723         protocol values.
8724         (append_int_field), (append_uint_field), (append_string_field):
8725         Append the field name as a byte rather than four chars.
8726         (delete_int_or_uint_field), (delete_string_field): reflect the
8727         fact that the field name and typecode now occupy 4 bytes instead
8728         of 8.
8729         (decode_string_field), (decode_header_data): update to reflect
8730         protocol changes and move the field specific encoding from
8731         decode_string_field() back into decode_header_data().
8732         
8733         * dbus/dbus-internals.[ch]: (_dbus_header_field_to_string):
8734         Add utility to aid debugging.
8735         
8736         * dbus/dbus-message-builder.c:
8737         (append_string_field), (_dbus_message_data_load): Update to
8738         reflect protocol changes; Change the FIELD_NAME directive
8739         to HEADER_FIELD and allow it to take the field's conventional
8740         name rather than the actual value.
8741         
8742         * test/data/*/*.message: Update to use HEADER_FIELD instead
8743         of FIELD_NAME; Always align the header on an 8 byte boundary
8744         *before* updating the header length.
8745
8746 2003-09-15  Havoc Pennington  <hp@pobox.com>
8747
8748         * dbus/dbus-pending-call.c: add the get/set object data
8749         boilerplate as for DBusConnection, etc. Use generic object data
8750         for the notify callback.
8751
8752         * glib/dbus-gparser.c (parse_node): parse child nodes
8753
8754         * tools/dbus-viewer.c: more hacking on the dbus-viewer
8755         
8756         * glib/dbus-gutils.c (_dbus_gutils_split_path): add a file to
8757         contain functions shared between the convenience lib and the
8758         installed lib
8759
8760         * glib/Makefile.am (libdbus_glib_1_la_LDFLAGS): add
8761         -export-symbols-regex to the GLib library
8762
8763         * dbus/dbus-object-tree.c (_dbus_object_tree_dispatch_and_unlock):
8764         fix the locking in here, and add a default handler for
8765         Introspect() that just returns sub-nodes.
8766
8767 2003-09-14  Havoc Pennington  <hp@pobox.com>
8768
8769         * glib/dbus-gthread.c (dbus_g_thread_init): rename to make g_foo
8770         rather than gfoo consistent
8771
8772         * glib/dbus-gproxy.h: delete for now, move contents to
8773         dbus-glib.h, because the include files don't work right since we
8774         aren't in the dbus/ subdir.
8775         
8776         * glib/dbus-gproxy.c (dbus_gproxy_send): finish implementing
8777         (dbus_gproxy_end_call): finish
8778         (dbus_gproxy_begin_call): finish
8779
8780         * glib/dbus-gmain.c (dbus_set_g_error): new
8781
8782         * glib/dbus-gobject.c (handle_introspect): include information
8783         about child nodes in the introspection
8784
8785         * dbus/dbus-connection.c (dbus_connection_list_registered): new
8786         function to help in implementation of introspection
8787
8788         * dbus/dbus-object-tree.c
8789         (_dbus_object_tree_list_registered_and_unlock): new function
8790
8791 2003-09-12  Havoc Pennington  <hp@pobox.com>
8792
8793         * glib/dbus-gidl.h: add common base class for all the foo_info
8794         types
8795
8796         * tools/dbus-viewer.c: add GTK-based introspection UI thingy
8797         similar to kdcop
8798
8799         * test/Makefile.am: try test srcdir -ef . in addition to test
8800         srcdir = ., one of them should work (yeah lame)
8801         
8802         * glib/Makefile.am: build the "idl" parser stuff as a convenience
8803         library
8804         
8805         * glib/dbus-gparser.h: make description_load routines return
8806         NodeInfo* not Parser*
8807
8808         * Makefile.am (SUBDIRS): build test dir after all library dirs
8809
8810         * configure.in: add GTK+ detection
8811
8812 2003-09-07  Havoc Pennington  <hp@pobox.com>
8813
8814         * Make Doxygen contented.
8815
8816 2003-09-07  Havoc Pennington  <hp@pobox.com>
8817
8818         * doc/dbus-specification.sgml: more updates
8819
8820 2003-09-06  Havoc Pennington  <hp@pobox.com>
8821
8822         * doc/dbus-specification.sgml: partial updates
8823
8824         * bus/dbus-daemon-1.1.in: fix the config file docs for the
8825         zillionth time; hopefully I edited the right file this time.
8826
8827         * bus/config-parser.c (append_rule_from_element): support
8828         send_type, send_path, receive_type, receive_path
8829
8830         * bus/policy.c: add message type and path to the list of things
8831         that can be "firewalled"
8832
8833 2003-09-06  Havoc Pennington  <hp@pobox.com>
8834
8835         * dbus/dbus-connection.c (dbus_connection_register_fallback): add this
8836         (dbus_connection_register_object_path): make this not handle
8837         messages to paths below the given path
8838
8839 2003-09-03  Havoc Pennington  <hp@pobox.com>
8840
8841         * test/glib/Makefile.am: add this with random glib-linked test
8842         programs
8843
8844         * glib/Makefile.am: remove the random test programs from here,
8845         leave only the unit tests
8846
8847         * glib/dbus-gobject.c (_dbus_gobject_test): add test for 
8848         uscore/javacaps conversion, and fix     
8849         (get_object_property, set_object_property): change to .NET
8850         convention for mapping props to methods, set_FooBar/get_FooBar, 
8851         since one language has such a convention we may as well copy it. 
8852         Plus real methods in either getFooBar or get_foo_bar style won't 
8853         collide with this convention.
8854
8855 2003-09-01  Havoc Pennington  <hp@pobox.com>
8856
8857         * glib/dbus-gparser.c: implement
8858
8859         * glib/dbus-gobject.c: start implementing skeletons support
8860
8861         * configure.in: when disabling checks/assert, also define
8862         G_DISABLE_ASSERT and G_DISABLE_CHECKS
8863
8864 2003-09-01  Havoc Pennington  <hp@pobox.com>
8865
8866         * glib/Makefile.am: rearrange a bunch of files and get "make
8867         check" framework set up
8868
8869 2003-08-31  Havoc Pennington  <hp@pobox.com>
8870
8871         * fix build with --disable-tests
8872
8873 2003-08-30  Havoc Pennington  <hp@pobox.com>
8874
8875         * dbus/dbus-connection.c: purge DBusMessageHandler
8876
8877         * dbus/dbus-message-handler.c: remove DBusMessageHandler, just 
8878         use callbacks everywhere
8879
8880 2003-08-30  Havoc Pennington  <hp@pobox.com>
8881
8882         * test/data/valid-config-files/system.d/test.conf: change to 
8883         root for the user so warnings don't get printed
8884
8885         * dbus/dbus-message.c: add dbus_message_get_path,
8886         dbus_message_set_path
8887         
8888         * dbus/dbus-object-tree.c (do_test_dispatch): add test of
8889         dispatching to a path
8890
8891         * dbus/dbus-string.c (_dbus_string_validate_path): add
8892
8893         * dbus/dbus-marshal.c (_dbus_demarshal_object_path): implement
8894         (_dbus_marshal_object_path): implement
8895
8896         * dbus/dbus-protocol.h (DBUS_HEADER_FIELD_PATH): new header field 
8897         to contain the path to the target object
8898         (DBUS_HEADER_FIELD_SENDER_SERVICE): rename
8899         DBUS_HEADER_FIELD_SENDER to explicitly say it's the sender service
8900
8901 2003-08-30  Havoc Pennington  <hp@pobox.com>
8902
8903         * dbus/dbus-object-tree.c: write tests and fix the discovered bugs
8904
8905 2003-08-29  Havoc Pennington  <hp@pobox.com>
8906
8907         * dbus/dbus-object-tree.c: modify to allow overlapping paths to be
8908         registered
8909         (struct DBusObjectSubtree): shrink this
8910         a lot, since we may have a lot of them
8911         (_dbus_object_tree_free_all_unlocked): implement
8912         (_dbus_object_tree_dispatch_and_unlock): implement
8913
8914 2003-08-29  Havoc Pennington  <hp@pobox.com>
8915
8916         * dbus/dbus-internals.h: fix _DBUS_N_GLOBAL_LOCKS
8917
8918 2003-08-28  Havoc Pennington  <hp@pobox.com>
8919
8920         purge DBusObjectID
8921         
8922         * dbus/dbus-connection.c: port to no ObjectID, create a
8923         DBusObjectTree, rename ObjectTree to ObjectPath in public API
8924
8925         * dbus/dbus-connection.h (struct DBusObjectTreeVTable): delete 
8926         everything except UnregisterFunction and MessageFunction
8927         
8928         * dbus/dbus-marshal.c: port away from DBusObjectID, 
8929         add DBUS_TYPE_OBJECT_PATH
8930         
8931         * dbus/dbus-object-registry.[hc], dbus/dbus-object.[hc], 
8932         dbus/dbus-objectid.[hc]: remove these, we are moving to 
8933         path-based object IDs
8934
8935 2003-08-25  Havoc Pennington  <hp@pobox.com>
8936
8937         Just noticed that dbus_message_test is hosed, I wonder when I
8938         broke that. I thought make check was passing earlier...
8939         
8940         * dbus/dbus-object-tree.c: add new "object tree" to match DCOP 
8941         container tree, will replace most of dbus-object-registry
8942
8943         * dbus/dbus-string.c (_dbus_string_append_printf_valist): fix C99
8944         screwup
8945
8946 2003-08-19  Havoc Pennington  <hp@pobox.com>
8947
8948         * dbus/dbus-message.c (decode_string_field): support FIELD_SENDER
8949         (dbus_message_is_error): fix this function
8950
8951         * bus/dbus-daemon-1.1: clarify logic on when <deny>/<allow> rules
8952         match
8953
8954         * bus/policy.c (bus_client_policy_check_can_receive): fix code to
8955         reflect clarified man page
8956         (bus_client_policy_check_can_send): ditto
8957         
8958         * bus/session.conf.in: fixup
8959
8960         * bus/system.conf.in: fixup
8961
8962 2003-08-18  Havoc Pennington  <hp@redhat.com>
8963
8964         * dbus/dbus-hash.c (_dbus_hash_table_insert_two_strings): fix
8965
8966         * dbus/dbus-message.c (_dbus_message_loader_queue_messages): fix
8967         dumb bug created earlier (wrong order of args to
8968         decode_header_data())
8969         
8970         * tools/dbus-send.c: port
8971
8972         * tools/dbus-print-message.c (print_message): port
8973
8974         * test/data/*messages: port all messages over
8975         
8976         * dbus/dbus-message-builder.c: support including 
8977         message type
8978         
8979         * bus/driver.c: port over
8980         
8981         * bus/dispatch.c: port over to new stuff
8982
8983         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
8984         rename disconnect signal to "Disconnected"
8985
8986 2003-08-17  Havoc Pennington  <hp@pobox.com>
8987
8988         This doesn't compile yet, but syncing up so I can hack on it from
8989         work. What are branches for if not broken code? ;-)
8990         
8991         * dbus/dbus-protocol.h: remove DBUS_HEADER_FIELD_NAME, add
8992         DBUS_HEADER_FIELD_INTERFACE, DBUS_HEADER_FIELD_MEMBER,
8993         DBUS_HEADER_FIELD_ERROR_NAME
8994         
8995         * dbus/dbus-hash.c: Introduce DBUS_HASH_TWO_STRINGS as hack to use
8996         for the interface+member pairs
8997         (string_hash): change to use g_str_hash algorithm
8998         (find_direct_function, find_string_function): refactor these to
8999         share most code.
9000         
9001         * dbus/dbus-message.c: port all of this over to support 
9002         interface/member fields instead of name field
9003
9004         * dbus/dbus-object-registry.c: port over
9005         
9006         * dbus/dbus-string.c (_dbus_string_validate_interface): rename
9007         from _dbus_string_validate_name
9008
9009         * bus/dbus-daemon-1.1: change file format for the 
9010         <deny>/<allow> stuff to match new message naming scheme
9011
9012         * bus/policy.c: port over
9013
9014         * bus/config-parser.c: parse new format
9015         
9016 2003-08-16  Havoc Pennington  <hp@pobox.com>
9017
9018         * dbus/dbus-object-registry.c (add_and_remove_objects): remove
9019         broken assertion
9020
9021         * glib/dbus-gproxy.c: some hacking
9022
9023 2003-08-15  Havoc Pennington  <hp@redhat.com>
9024
9025         * dbus/dbus-pending-call.c (dbus_pending_call_block): implement
9026
9027         * dbus/dbus-connection.c
9028         (dbus_connection_send_with_reply_and_block): factor out internals;
9029         change to convert any error replies to DBusError instead of 
9030         returning them as a message
9031
9032 2003-08-15  Havoc Pennington  <hp@pobox.com>
9033
9034         * dbus/dbus-connection.c, 
9035         dbus/dbus-pending-call.c: Finish the pending call stuff
9036
9037 2003-08-14  Havoc Pennington  <hp@redhat.com>
9038
9039         * dbus/dbus-pending-call.c: start on new object that will replace
9040         DBusMessageHandler and ReplyHandlerData for tracking outstanding
9041         replies
9042
9043         * dbus/dbus-gproxy.c: start on proxy object used to communicate
9044         with remote interfaces
9045
9046         * dbus/dbus-gidl.c: do the boring boilerplate in here
9047         
9048 2003-08-12  Havoc Pennington  <hp@pobox.com>
9049
9050         * bus/dispatch.c (bus_dispatch): make this return proper 
9051         DBusHandlerResult to avoid DBUS_ERROR_UNKNOWN_METHOD
9052
9053         * dbus/dbus-errors.c (dbus_set_error): use
9054         _dbus_string_append_printf_valist
9055
9056         * dbus/dbus-string.c (_dbus_string_append_printf_valist)
9057         (_dbus_string_append_printf): new
9058
9059         * dbus/dbus-errors.h (DBUS_ERROR_UNKNOWN_MESSAGE): change to
9060         UNKNOWN_METHOD
9061
9062         * dbus/dbus-connection.c (dbus_connection_dispatch): handle
9063         DBUS_HANDLER_RESULT_NEED_MEMORY; send default error reply if a
9064         message is unhandled.
9065
9066 2003-08-11  Havoc Pennington  <hp@pobox.com>
9067
9068         * bus/test.c (client_disconnect_handler): change to return
9069         HANDLED (would have been REMOVE_MESSAGE)
9070
9071         * dbus/dbus-object.h (enum DBusHandlerResult): rename to
9072         HANDLED/NOT_YET_HANDLED instead of
9073         REMOVE_MESSAGE/ALLOW_MORE_HANDLERS to make it clearer how it 
9074         should be used.
9075
9076 2003-08-10  Havoc Pennington  <hp@pobox.com>
9077
9078         * tools/dbus-send.c (main): add --type argument, for now
9079         supporting only method_call and signal types.
9080
9081         * tools/dbus-print-message.c: print message type
9082
9083         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
9084         init connection->objects
9085
9086         * doc/dbus-specification.sgml: fix sgml
9087
9088         * bus/*.c: port over to object-instance API changes
9089
9090         * test/test-service.c: ditto
9091         
9092         * dbus/dbus-message.c (dbus_message_create_header): allow #NULL
9093         name, we will have to fix up the rest of the code to also handle
9094         this
9095         (dbus_message_new): generic message-creation call
9096         (set_string_field): allow appending name field
9097
9098 2003-08-06  Havoc Pennington  <hp@pobox.com>
9099
9100         * dbus/dbus-object-registry.c: implement signal connection 
9101         and dispatch
9102
9103         * dbus/dbus-connection.c (_dbus_connection_unref_unlocked): new
9104
9105         * dbus/dbus-internals.c (_dbus_memdup): new function
9106
9107 2003-08-02  Havoc Pennington  <hp@pobox.com>
9108
9109         * dbus/dbus-message.c (dbus_message_get_no_reply)
9110         (dbus_message_set_no_reply): add these and remove
9111         set_is_error/get_is_error
9112
9113         * dbus/dbus-protocol.h, doc/dbus-specification.sgml: 
9114         remove the ERROR flag, since there's now an ERROR type
9115
9116 2003-08-01  Havoc Pennington  <hp@pobox.com>
9117
9118         * dbus/dbus-object-registry.c (_dbus_object_registry_handle_and_unlock):
9119         implement
9120
9121         * dbus/dbus-message.c (dbus_message_get_type): new function
9122
9123         * doc/dbus-specification.sgml: add "type" byte to messages
9124
9125 2003-08-01  Havoc Pennington  <hp@pobox.com>
9126
9127         * dbus/dbus-protocol.h (DBUS_MESSAGE_TYPE_*): introduce
9128         a message type enum to distinguish kinds of message
9129         (DBUS_HEADER_FLAG_NO_REPLY_EXPECTED): flag for a message 
9130         that need not be replied to
9131
9132 2003-08-01  Havoc Pennington  <hp@pobox.com>
9133
9134         * dbus/dbus-marshal.c: adapt to DBusObjectID changes
9135         (unpack_8_octets): fix no-64-bit-int bug
9136
9137         * dbus/dbus-object-registry.c (validate_id): validate the 
9138         connection ID bits, not just the instance ID.
9139
9140         * dbus/dbus-connection.c (_dbus_connection_init_id): initialize
9141         the connection-global 33 bits of the object ID
9142
9143         * dbus/dbus-object-registry.c (info_from_entry): fill in 
9144         object ID in the new way
9145
9146         * dbus/dbus-objectid.h: rather than high/low bits, specifically 
9147         define server/client/instance bits.
9148
9149 2003-07-30  Havoc Pennington  <hp@pobox.com>
9150
9151         * dbus/dbus-connection.c (dbus_connection_register_object): fix
9152         build
9153
9154 2003-07-13  Havoc Pennington  <hp@pobox.com>
9155
9156         * dbus/dbus-object.h (struct DBusObjectVTable): add padding
9157         fields to DBusObjectVTable and DBusObjectInfo
9158
9159 2003-07-12  Havoc Pennington  <hp@pobox.com>
9160
9161         * dbus/dbus-object-registry.c: implement unit test,
9162         fix bugs discovered in process
9163
9164         * dbus/dbus-connection.c: remove handler_table and
9165         register_handler(), add DBusObjectRegistry usage
9166
9167         * dbus/dbus-objectid.c (dbus_object_id_is_null)
9168         (dbus_object_id_set_null): new functions
9169
9170 2003-07-08  Havoc Pennington  <hp@pobox.com>
9171
9172         * dbus/dbus-object.c: implement some of this
9173
9174         * dbus/dbus-object-registry.c
9175         (_dbus_object_registry_add_and_unlock): fill in the object_id out
9176         param
9177         (_dbus_object_registry_new): handle OOM
9178
9179 2003-07-08  Havoc Pennington  <hp@pobox.com>
9180
9181         * dbus/dbus-object.h: sketch out an API for registering objects
9182         with a connection, that allows us to use as little as 24 bytes
9183         per object and lets application code represent an object in 
9184         any conceivable way.
9185
9186         * dbus/dbus-object-registry.c: implement the hard bits of the
9187         DBusConnection aspect of object API. Not yet wired up.
9188         
9189 2003-07-06  Havoc Pennington  <hp@pobox.com>
9190
9191         * dbus/dbus-marshal.c (_dbus_marshal_set_object_id): new function
9192         (_dbus_marshal_object_id): new
9193         (_dbus_demarshal_object_id): new
9194         (_dbus_marshal_get_arg_end_pos): support object ID type, and
9195         consolidate identical switch cases. Don't conditionalize handling
9196         of DBUS_TYPE_UINT64, need to handle the type always.
9197         (_dbus_marshal_validate_arg): consolidate identical cases, and
9198         handle DBUS_TYPE_OBJECT_ID
9199
9200         * dbus/dbus-objectid.c: new file with DBusObjectID data type.
9201
9202         * dbus/dbus-protocol.h: add DBUS_TYPE_OBJECT_ID
9203
9204 2003-09-28  Havoc Pennington  <hp@pobox.com>
9205
9206         * real 0.13 release
9207
9208 2003-09-28  Havoc Pennington  <hp@pobox.com>
9209
9210         * doc/Makefile.am (dbus-specification.html): testing a funky hack
9211         to work with Debian db2html
9212
9213 2003-09-28  Havoc Pennington  <hp@pobox.com>
9214
9215         * configure.in: 0.13
9216
9217         * doc/Makefile.am (dbus-test-plan.html): accept nonexistence of
9218         stylesheet-images for benefit of Debian
9219         
9220         Change back to using filesystem-linked sockets for the system
9221         bus, so only root can create the default system bus address.
9222         
9223         * bus/system.conf.in: change to use
9224         DBUS_SYSTEM_BUS_DEFAULT_ADDRESS
9225
9226         * dbus/Makefile.am (INCLUDES): remove DBUS_SYSTEM_BUS_PATH define
9227         from here.
9228
9229         * configure.in: define DBUS_SYSTEM_BUS_DEFAULT_ADDRESS
9230         here, and AC_DEFINE DBUS_SYSTEM_PATH
9231
9232 2003-08-09  Anders Carlsson  <andersca@codefactory.se>
9233
9234         * doc/TODO:
9235         * doc/busconfig.dtd:
9236         Add busconfig DTD.
9237         
9238 2003-08-09  Anders Carlsson  <andersca@codefactory.se>
9239
9240         * doc/dbus-specification.sgml:
9241         Add activation reply values.
9242         
9243 2003-08-05  Havoc Pennington  <hp@redhat.com>
9244
9245         * configure.in: 0.12
9246
9247 2003-08-05  Anders Carlsson  <andersca@codefactory.se>
9248
9249         * glib/dbus-gmain.c: (watch_fd_new), (watch_fd_ref),
9250         (watch_fd_unref), (dbus_gsource_check), (dbus_gsource_dispatch),
9251         (add_watch), (remove_watch), (create_source):
9252         Refcount fds, fixes some reentrancy issues.
9253         
9254 2003-07-30  Havoc Pennington  <hp@redhat.com>
9255
9256         * dbus/dbus-bus.c (init_connections_unlocked): fix default system
9257         bus address to be abstract if we have abstract sockets
9258
9259         * NEWS: update
9260
9261 2003-07-28  Havoc Pennington  <hp@redhat.com>
9262
9263         * bus/messagebus.in: fix to avoid processname/servicename 
9264         confusion, from Michael Kearey
9265         https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=100965
9266         
9267 2003-07-23  Havoc Pennington  <hp@pobox.com>
9268
9269         * dbus/dbus-message.c (dbus_message_iter_get_named): 
9270         fix from Andy Hanton to remove broken "+1"
9271
9272 2003-07-16  Havoc Pennington  <hp@pobox.com>
9273
9274         * tools/dbus-launch.c (babysit): close stdout/stderr in the
9275         babysitter process, as suggested by Thomas Leonard, so 
9276         an "eval `dbus-launch --exit-with-session`" will actually 
9277         return
9278
9279 2003-07-16  Havoc Pennington  <hp@pobox.com>
9280
9281         * configure.in: print out EXPANDED_* variables in the summary at
9282         the end; clean up the code that computes EXPANDED_ variables and
9283         get the ones using exec_prefix right. Should make things work
9284         when you build without --prefix
9285
9286 2003-06-29  Havoc Pennington  <hp@pobox.com>
9287
9288         * mono/Test.cs (class Test): fire up a main loop and run it
9289
9290         * mono/DBus.cs (DBus): don't g_thread_init since it can only be
9291         done once, the app has to do it
9292
9293 2003-06-26  Havoc Pennington  <hp@pobox.com>
9294
9295         * mono/Connection.cs: set up connection with the glib main loop
9296
9297 2003-07-01  Havoc Pennington  <hp@redhat.com>
9298
9299         * doc/dbus-specification.sgml: clarify the format of a type code,
9300         change suggested by Jim Blandy
9301
9302 2003-06-29  Miloslav Trmac  <mitr@volny.cz>
9303
9304         * doc/Makefile.am:
9305         * tools/Makefile.am: Don't assume srcdir == builddir.
9306
9307         * dbus/dbus-memory.c (dbus_realloc): Don't check guards after shrinking
9308         the allocated block.
9309         (_dbus_memory_test): New function.
9310         * dbus/dbus-test.h: Add _dbus_memory_test ().
9311         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): Call it.
9312
9313         * dbus/dbus-message.c (decode_header_data): Use %.4s instead
9314         of %c%c%c%c.
9315         (dbus_message_new): Remove obsolete @todo.
9316
9317         * dbus/dbus-marshal.c (_dbus_marshal_set_int64)
9318         (_dbus_marshal_set_uint64): Fix comment.
9319
9320         * dbus/dbus-message.c (append_int_field, append_uint_field): Don't
9321         hardcode FIELD_REPLY_SERIAL.
9322
9323         * dbus/dbus-mainloop.c (_dbus_loop_remove_watch)
9324         (_dbus_loop_remove_timeout): Cast function pointers to (void *) for %p
9325
9326         * configure.in: Add -D_POSIX_C_SOURCE=199309L -DBSD_SOURCE to CFLAGS
9327         and disable DBUS_USE_ATOMIC_INT_486 when --enable-ansi is used
9328
9329 2003-06-24  Havoc Pennington  <hp@pobox.com>
9330
9331         * mono/*.cs: Use IntPtr.Zero instead of ((IntPtr) 0)
9332
9333 2003-06-23  Anders Carlsson  <andersca@codefactory.se>
9334
9335         * configure.in:
9336         * gcj/.cvsignore:
9337         * gcj/Hello.java:
9338         * gcj/Makefile.am:
9339         * gcj/TestMessage.java: (TestMessage), (TestMessage.main):
9340         * gcj/org/.cvsignore:
9341         * gcj/org/Makefile.am:
9342         * gcj/org/freedesktop/.cvsignore:
9343         * gcj/org/freedesktop/Makefile.am:
9344         * gcj/org/freedesktop/dbus/.cvsignore:
9345         * gcj/org/freedesktop/dbus/Makefile.am:
9346         * gcj/org/freedesktop/dbus/Message.java: (Message),
9347         (Message.Message):
9348         * gcj/org/freedesktop/dbus/natMessage.cc:
9349         Fix the build system.
9350
9351 2003-06-22  Havoc Pennington  <hp@pobox.com>
9352
9353         * mono/Connection.cs: add more bindings
9354
9355         * dbus/dbus-threads.c (dbus_threads_init): allow calling this
9356         more than once.
9357
9358 2003-06-22  Havoc Pennington  <hp@pobox.com>
9359
9360         * mono/Connection.cs, mono/DBus.cs, mono/Error.cs:
9361         Start wrapping more stuff.
9362
9363 2003-06-22  Havoc Pennington  <hp@pobox.com>
9364
9365         * mono/Message.cs: implement Message.Wrap() that ensures we only
9366         have a single C# wrapper per DBusMessage, assuming it works which
9367         it probably doesn't.
9368
9369         * dbus/dbus-message.c (dbus_message_allocate_data_slot): new
9370         (dbus_message_free_data_slot): new
9371         (dbus_message_set_data): new
9372         (dbus_message_get_data): new
9373
9374 2003-06-22  Havoc Pennington  <hp@pobox.com>
9375
9376         * dbus/dbus-dataslot.c (_dbus_data_slot_allocator_unref)
9377         (_dbus_data_slot_allocator_alloc): rework these to keep a
9378         reference count on each slot and automatically manage a global
9379         slot ID variable passed in by address
9380
9381         * bus/bus.c: convert to new dataslot API
9382
9383         * dbus/dbus-bus.c: convert to new dataslot API
9384
9385         * dbus/dbus-connection.c: convert to new dataslot API
9386
9387         * dbus/dbus-server.c: convert to new dataslot API
9388
9389         * glib/dbus-gmain.c: ditto
9390
9391         * bus/test.c: ditto
9392
9393         * bus/connection.c: ditto
9394
9395 2003-06-22  Anders Carlsson  <andersca@codefactory.se>
9396
9397         * configure.in: Add AM_PROG_GCJ and move AM_PROG_LIBTOOL
9398         after the gcj checks so that the correct configuration tags
9399         will be added to libtool.
9400
9401         * dbus-glib-1.pc.in: No need to specify any includes since
9402         dbus-1.pc.in has those.
9403
9404 2003-06-22  Havoc Pennington  <hp@pobox.com>
9405
9406         * mono/*, gcj/*, configure.in, Makefile.am:
9407         Check in makefiles and subdirs for mono and gcj bindings.
9408         Neither binding actually exists, just trying to get through
9409         all the build and other boring bits.
9410
9411 2003-06-21  Philip Blundell  <philb@gnu.org>
9412
9413         * tools/dbus-monitor.1: Updated.
9414
9415         * tools/dbus-send.1: Likewise.
9416
9417 2003-06-20  Anders Carlsson  <andersca@codefactory.se>
9418
9419         * dbus/dbus-transport-unix.c (unix_handle_watch): Check
9420         for hangup and error after checking read so we won't discard
9421         pending data if both hangup and read are set.
9422
9423 2003-06-19  Philip Blundell  <philb@gnu.org>
9424
9425         * tools/dbus-print-message.c (print_message): Handle BOOLEAN.
9426
9427         * tools/dbus-send.c: Accept both --system and --session.
9428
9429         * tools/dbus-monitor.c: Same here.
9430
9431 2003-06-19  Anders Carlsson  <andersca@codefactory.se>
9432
9433         * glib/dbus-glib.h: Fix so that dbus-glib.h can be used
9434         from C++ (Patch by Miloslav Trmac).
9435
9436 2003-06-15  Joe Shaw  <joe@assbarn.com>
9437
9438         * configure.in: Check for socklen_t.
9439
9440         * dbus/dbus-sysdeps.c: Define socklen_t if it's not defined.
9441
9442         * test/test-segfault.c: Add #include <sys/time.h>
9443
9444         * tools/Makefile.am: Add DBUS_X_CFLAGS to the INCLUDES since
9445         dbus-launch needs it.
9446
9447 2003-06-09  Havoc Pennington  <hp@redhat.com>
9448
9449         * dbus/dbus-sysdeps.c (_dbus_listen_unix_socket): don't use
9450         SUN_LEN, it breaks abstract socket usage
9451
9452         * dbus/dbus-internals.c (_dbus_verbose_real): only print PID at
9453         starts of lines.
9454
9455 2003-06-04  Havoc Pennington  <hp@pobox.com>
9456
9457         * dbus/dbus-server.c (dbus_server_listen): allow abstract sockets
9458         using unix:abstract=/foo, and when listening in a tmpdir
9459         i.e. unix:tmpdir=/tmp, always use abstract sockets if we can.
9460
9461         * dbus/dbus-transport.c (_dbus_transport_open): support
9462         unix:abstract=/foo
9463
9464         * dbus/dbus-server-unix.c (_dbus_server_new_for_domain_socket):
9465         support abstract sockets
9466
9467         * dbus/dbus-transport-unix.c
9468         (_dbus_transport_new_for_domain_socket): support abstract sockets
9469
9470         * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket): add "abstract"
9471         toggle as an argument, implement abstract namespace support
9472         (_dbus_listen_unix_socket): ditto
9473
9474         * configure.in: add --enable-abstract-sockets and implement
9475         a configure check for autodetection of the right value.
9476
9477 2003-06-01  Havoc Pennington  <hp@pobox.com>
9478
9479         * tools/dbus-cleanup-sockets.c: add utility to clean up sockets
9480         in /tmp (though on Linux this will end up being useless,
9481         when we add abstract namespace support)
9482
9483         * configure.in: define DBUS_SESSION_SOCKET_DIR in addition to
9484         subst'ing it
9485
9486 2003-05-28  Colin Walters  <walters@verbum.org>
9487
9488         * tools/dbus-monitor.c (main): Fix silly typo (s/--session/--system/).
9489
9490 2003-05-18  Anders Carlsson  <andersca@codefactory.se>
9491
9492         * dbus/dbus-message.c (dbus_message_new): Remove @todo.
9493
9494 2003-05-17  Colin Walters  <walters@gnu.org>
9495
9496         * tools/dbus-send.c: Don't exit with an error code if --help was
9497         passed.  Default to using the session bus instead of the system
9498         one.
9499
9500         * tools/dbus-launch.c: Ditto.
9501
9502         * tools/dbus-monitor.c: Ditto.
9503
9504         * tools/dbus-send.1: Update with new arguments.
9505
9506         * tools/dbus-launch.c: Emit code to export variables.  New
9507         arguments -s and -c to specify shell syntax, and a bit of code to
9508         autodetect syntax.  Also, allow specifying a program to run.
9509
9510         * tools/dbus-launch.1: Update with new arguments.
9511
9512         * tools/dbus-send.1: Ditto.
9513
9514         * tools/dbus-monitor.1: Ditto.
9515
9516 2003-05-17  Havoc Pennington  <hp@pobox.com>
9517
9518         * bus/config-parser.c (merge_included): merge in policies from
9519         child configuration file.
9520
9521         * bus/policy.c (bus_policy_merge): function to merge two policies
9522         together
9523
9524 2003-05-16  Havoc Pennington  <hp@redhat.com>
9525
9526         * dbus/dbus-connection.c: disable verbose lock spew
9527
9528         * tools/dbus-send.c: add --print-reply command line option
9529
9530         * tools/dbus-print-message.h (print_message): new util function
9531         shared by dbus-send and dbus-monitor
9532
9533         * tools/dbus-monitor.c (handler_func): exit on disconnect
9534
9535         * dbus/dbus-transport-unix.c (do_reading): if the transport is
9536         disconnected, don't try to use the read_watch
9537
9538         * dbus/dbus-watch.c (dbus_watch_get_enabled): assert watch != NULL
9539         so we can find this bug more easily
9540
9541 2003-05-16  Havoc Pennington  <hp@redhat.com>
9542
9543         * bus/policy.c (free_rule_list_func): avoid a crash when passed
9544         NULL as DBusHashTable is annoyingly likely to do.
9545
9546 2003-05-16  Colin Walters  <walters@verbum.org>
9547
9548         * tools/dbus-monitor.c: Add --session argument and usage()
9549         function.
9550
9551         * tools/dbus-monitor.1: Update with new --session arg.
9552
9553         * bus/Makefile.am (install-data-hook): Create
9554         $(libdir)/dbus-1.0/services so that the session bus is happy.
9555
9556 2003-05-15  Havoc Pennington  <hp@redhat.com>
9557
9558         * dbus/dbus-sysdeps.c (_dbus_atomic_dec, _dbus_atomic_inc): work
9559         on non-x86. ifdef's are evil.
9560
9561 2003-05-15  Havoc Pennington  <hp@redhat.com>
9562
9563         * configure.in: 0.11
9564
9565         * NEWS: update
9566
9567         * bus/Makefile.am (initddir): apparently we are supposed to put
9568         init scripts in /etc/rc.d/init.d not /etc/init.d
9569
9570         * bus/Makefile.am: remove the "you must --enable-tests to make
9571         check" as it broke distcheck
9572
9573         * bus/Makefile.am (install-data-hook): create /etc/dbus-1/system.d
9574
9575 2003-05-13  James Willcox  <jwillcox@gnome.org>
9576
9577         * configure.in:
9578         * bus/activation.c: (bus_activation_service_created),
9579         (bus_activation_activate_service):
9580         * bus/driver.c: (bus_driver_send_service_deleted),
9581         (bus_driver_send_service_created), (bus_driver_send_service_lost),
9582         (bus_driver_send_service_acquired),
9583         (bus_driver_send_welcome_message),
9584         (bus_driver_handle_list_services):
9585         * bus/session.conf.in:
9586         * dbus/dbus-bus.c: (dbus_bus_acquire_service),
9587         (dbus_bus_service_exists), (dbus_bus_activate_service):
9588         * dbus/dbus-bus.h:
9589
9590         Add some convenience API which lets you activate a service, and did a
9591         bunch of s/0/DBUS_TYPE_INVALID/ in calls to dbus_message_append_args()
9592         and dbus_message_get_args()
9593
9594 2003-05-11  Havoc Pennington  <hp@pobox.com>
9595
9596         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): fix to avoid
9597         calling _dbus_marshal_validate_arg() for every byte in a byte
9598         array, etc.
9599
9600         * dbus/dbus-message-handler.c: use atomic reference counting to
9601         reduce number of locks slightly; the global lock in here sucks
9602
9603         * dbus/dbus-connection.c
9604         (_dbus_connection_update_dispatch_status_and_unlock): variant of
9605         update_dispatch_status that can be called with lock held; then use
9606         in a couple places to reduce locking/unlocking
9607         (dbus_connection_send): hold the lock over the whole function
9608         instead of acquiring it twice.
9609
9610         * dbus/dbus-timeout.c (_dbus_timeout_new): handle OOM
9611
9612         * bus/connection.c (bus_connections_setup_connection): fix access
9613         to already-freed memory.
9614
9615         * dbus/dbus-connection.c: keep a little cache of linked list
9616         nodes, to avoid using the global linked list alloc lock in the
9617         normal send-message case. Instead we just use the connection lock
9618         that we already have to take.
9619
9620         * dbus/dbus-list.c (_dbus_list_find_last): new function
9621
9622         * dbus/dbus-sysdeps.c (_dbus_atomic_inc, _dbus_atomic_dec):
9623         change to use a struct for the atomic type; fix docs,
9624         they return value before increment, not after increment.
9625
9626         * dbus/dbus-string.c (_dbus_string_append_4_aligned)
9627         (_dbus_string_append_8_aligned): new functions to try to
9628         microoptimize this operation.
9629         (reallocate_for_length): break this out of set_length(), to
9630         improve profile info, and also so we can consider inlining the
9631         set_length() part.
9632
9633         * dbus/dbus-message.c (dbus_message_new_empty_header): init data
9634         strings with some preallocation, cuts down on our calls to realloc
9635         a fair bit. Though if we can get the "move entire string to empty
9636         string" optimization below to kick in here, it would be better.
9637
9638         * dbus/dbus-string.c (_dbus_string_move): just call
9639         _dbus_string_move_len
9640         (_dbus_string_move_len): add a special case for moving
9641         an entire string into an empty string; we can just
9642         swap the string data instead of doing any reallocs.
9643         (_dbus_string_init_preallocated): new function
9644
9645 2003-05-11  Havoc Pennington  <hp@pobox.com>
9646
9647         Write a "test-profile" that does echo client-server with threads;
9648         profile reveals lock contention, memcpy/realloc of buffers, and
9649         UTF-8 validation as hot spots. 20% of lock contention eliminated
9650         with dbus_atomic_inc/dec implementation on x86.  Much remaining
9651         contention is global mempool locks for GList and DBusList.
9652
9653         * dbus/dbus-sysdeps.c (_dbus_atomic_inc, _dbus_atomic_dec): add
9654         x86 implementation
9655
9656         * dbus/dbus-connection.c (struct DBusConnection): use
9657         dbus_atomic_t for the reference count
9658
9659         * dbus/dbus-message.c (struct DBusMessage): declare
9660         dbus_atomic_t values as volatile
9661
9662         * configure.in: code to detect ability to use atomic integer
9663         operations in assembly, from GLib patch
9664
9665         * dbus/dbus-internals.c (_dbus_verbose_real): call getpid every
9666         time, tired of it being wrong in threads and forked processes
9667
9668         * glib/test-profile.c: a little program to bounce messages back
9669         and forth between threads and eat CPU
9670
9671         * dbus/dbus-connection.c: add debug spew macros for debugging
9672         thread locks; include config.h at top; fix deadlock in
9673         dbus_connection_flush()
9674
9675 2003-05-08  Havoc Pennington  <hp@pobox.com>
9676
9677         * dbus/dbus-spawn.c: s/_exit/exit/ because it was keeping gcov
9678         data from getting written, and there wasn't a good reason to
9679         use _exit really.
9680
9681         * test/decode-gcov.c (mark_inside_dbus_build_tests): don't count
9682         dbus_verbose lines in test coverage
9683         (main): add list of functions sorted by # of untested blocks
9684         to the coverage report
9685
9686         * dbus/dbus-mempool.c: put some test-only code in DBUS_BUILD_TESTS
9687
9688         * dbus/dbus-marshal.c (_dbus_marshal_test): extend test coverage
9689
9690         * dbus/dbus-message-handler.c (_dbus_message_handler_test):
9691         extend test coverage
9692
9693         * test/data/auth/cancel.auth-script: test canceling an
9694         authentication
9695
9696         * dbus/Makefile.am: remove dbus-server-debug.[hc] for now, as they
9697         aren't used. in CVS history if we end up needing them.
9698
9699 2003-05-04  Havoc Pennington  <hp@pobox.com>
9700
9701         * dbus/dbus-message-handler.c (_dbus_message_handler_test): add
9702         unit test
9703
9704         * dbus/dbus-marshal.c (_dbus_demarshal_string_array): fix this
9705         function, which assumed length was in # of strings, not bytes
9706
9707         * dbus/dbus-message.c (_dbus_message_test): add tests for some
9708         missing coverage
9709
9710         * dbus/dbus-connection.c
9711         (_dbus_connection_queue_received_message): disable function for
9712         now, we are only using it in test mode
9713
9714         * dbus/dbus-message.c (_dbus_message_loader_queue_messages):
9715         remove a mistaken FIXME
9716
9717 2003-05-04  Havoc Pennington  <hp@pobox.com>
9718
9719         * dbus/dbus-connection.c (dbus_connection_preallocate_send):
9720         unlock mutex on successful return, patch from Anders Gustafsson
9721
9722 2003-05-04  Havoc Pennington  <hp@pobox.com>
9723
9724         * dbus-glib-1.pc.in (Requires): fix dependencies, from
9725         Anders Gustafsson
9726
9727 2003-05-04  Havoc Pennington  <hp@pobox.com>
9728
9729         * tools/dbus-launch.c: implement
9730
9731         * bus/main.c (main), bus/bus.c (bus_context_new):
9732         implement --print-pid and --fork
9733
9734 2003-05-03  Havoc Pennington  <hp@redhat.com>
9735
9736         * dbus/dbus-address.c (dbus_parse_address): fix bug when a key in
9737         the address had no value, and add to test suite. Fix and
9738         regression test from Miloslav Trmac
9739
9740 2003-05-03  Havoc Pennington  <hp@pobox.com>
9741
9742         * dbus/dbus-watch.c (dbus_watch_handle): warn and return if a
9743         watch is invalid when handled
9744
9745         * tools/Makefile.am, tools/dbus-launch.c, tools/dbus-launch.1: add
9746         dbus-launch utility to launch the bus from a shell script.  Didn't
9747         actually implement dbus-launch yet, it's just a placeholder still.
9748
9749 2003-05-03  Havoc Pennington  <hp@pobox.com>
9750
9751         * bus/Makefile.am, bus/dbus-daemon-1.1.in: man page for the
9752         daemon; also documents daemon config file, so replaces
9753         doc/config-file.txt. Corrected some stuff from config-file.txt in
9754         the process of moving it.
9755
9756 2003-05-03  Havoc Pennington  <hp@pobox.com>
9757
9758         * tools/Makefile.am, tools/dbus-send.1, tools/dbus-monitor.1:
9759         add some man pages
9760
9761 2003-05-03  Colin Walters  <walters@verbum.org>
9762
9763         * dbus/dbus-sysdeps.c (fill_user_info): Test against
9764         DBUS_UID_UNSET to determine whether to do a uid lookup or not.
9765
9766         * Makefile.am: Update to use new .pc versioning scheme.
9767
9768 2003-05-02  Havoc Pennington  <hp@redhat.com>
9769
9770         * bus/system.conf.in: allow send/receive to/from message bus
9771         service
9772
9773 2003-04-30  Havoc Pennington  <hp@redhat.com>
9774
9775         * configure.in: print a note when building with unit tests and
9776         without assertions
9777
9778 2003-04-30  Havoc Pennington  <hp@redhat.com>
9779
9780         * Makefile.am: add a check-local that complains if you didn't
9781         configure with --enable-tests
9782
9783 2003-04-29  Havoc Pennington  <hp@redhat.com>
9784
9785         * glib/dbus-gmain.c: docs cleanups
9786
9787         * dbus/dbus-types.h: add docs on int64 types
9788
9789         * dbus/dbus-memory.c: fix docs to avoid putting private API in
9790         public API docs section
9791
9792 2003-04-29  Havoc Pennington  <hp@redhat.com>
9793
9794         * dbus-1.pc.in, dbus-glib-1.pc.in: rename these from
9795         dbus-1.0.pc.in, dbus-glib-1.0.pc.in. As these change with the
9796         parallel install API version, not with the D-BUS package version.
9797
9798         * HACKING: move some of README over here
9799
9800         * README: updates, and document API/ABI policy
9801
9802         * configure.in: reindentation
9803
9804 2003-04-29  Havoc Pennington  <hp@redhat.com>
9805
9806         * dbus/dbus.h: add "you have to define DBUS_API_SUBJECT_TO_CHANGE
9807         to use this library" to be sure people have the right
9808         expectations.
9809
9810 2003-04-28  Havoc Pennington  <hp@redhat.com>
9811
9812         * configure.in: add --enable-docs which by default is auto yes if
9813         doxygen and db2html found, no otherwise; but can be forced on/off
9814
9815         * doc/Makefile.am: conditionalize whether to build docs on
9816         --enable-docs
9817
9818 2003-04-28  Havoc Pennington  <hp@redhat.com>
9819
9820         * configure.in: 0.10
9821
9822         * NEWS: update
9823
9824         * bus/system.conf.in: add <includedir>system.d</includedir>
9825
9826         * dbus/dbus-userdb.c (_dbus_user_database_lookup): fix bug when
9827         username was provided but not uid
9828
9829         * bus/config-parser.c (struct BusConfigParser): keep track of
9830         whether the parser is toplevel or was included; change some
9831         of the error handling if it's included.
9832
9833 2003-04-27  Havoc Pennington  <hp@pobox.com>
9834
9835         Unbreak my code...
9836
9837         * dbus/dbus-transport.c (_dbus_transport_get_dispatch_status):
9838         report correct status if we finish processing authentication
9839         inside this function.
9840
9841         * bus/activation.c (try_send_activation_failure): use
9842         bus_transaction_send_error_reply
9843
9844         * bus/connection.c (bus_connection_get_groups): return an error
9845         explaining the problem
9846
9847         * bus/bus.c (bus_context_check_security_policy): implement
9848         restriction here that inactive connections can only send the
9849         hello message. Also, allow bus driver to send anything to
9850         any recipient.
9851
9852         * bus/connection.c (bus_connection_complete): create the
9853         BusClientPolicy here instead of on-demand.
9854         (bus_connection_get_policy): don't return an error
9855
9856         * dbus/dbus-message.c (dbus_message_new_error_reply): allow NULL
9857         sender field in message being replied to
9858
9859         * bus/bus.c (bus_context_check_security_policy): fix silly typo
9860         causing it to return FALSE always
9861
9862         * bus/policy.c (bus_client_policy_check_can_send): fix bug where
9863         we checked sender rather than destination
9864
9865 2003-04-25  Havoc Pennington  <hp@redhat.com>
9866
9867         test suite is slightly hosed at the moment, will fix soon
9868
9869         * bus/connection.c (bus_connections_expire_incomplete): fix to
9870         properly disable the timeout when required
9871         (bus_connection_set_name): check whether we can remove incomplete
9872         connections timeout after we complete each connection.
9873
9874         * dbus/dbus-mainloop.c (check_timeout): fix this up a bit,
9875         probably still broken.
9876
9877         * bus/services.c (bus_registry_acquire_service): implement max
9878         number of services owned, and honor allow/deny rules on which
9879         services a connection can own.
9880
9881         * bus/connection.c (bus_connection_get_policy): report errors here
9882
9883         * bus/activation.c: implement limit on number of pending
9884         activations
9885
9886 2003-04-25  Havoc Pennington  <hp@redhat.com>
9887
9888         * dbus/dbus-transport.c (_dbus_transport_get_unix_user): fix bug
9889         where we used >= 0 instead of != DBUS_UID_UNSET.
9890
9891 2003-04-25  Havoc Pennington  <hp@redhat.com>
9892
9893         * glib/dbus-gmain.c (remove_watch): fix for a crash when watches
9894         were toggled without add/remove, fix from Anders Gustafsson
9895
9896 2003-04-24  Havoc Pennington  <hp@redhat.com>
9897
9898         * test/data/valid-config-files/basic.conf: add <limit> tags to
9899         this test
9900
9901         * bus/config-parser.h, bus/config-parser.c, bus/bus.c: Implement
9902         <limit> tag in configuration file.
9903
9904 2003-04-24  Havoc Pennington  <hp@redhat.com>
9905
9906         * bus/dispatch.c: somehow missed some name_is
9907
9908         * dbus/dbus-timeout.c (_dbus_timeout_set_enabled)
9909         (_dbus_timeout_set_interval): new
9910
9911         * bus/connection.c (bus_connections_setup_connection): record time
9912         when each connection is first set up, and expire them after the
9913         auth timeout passes.
9914
9915 2003-04-24  Havoc Pennington  <hp@redhat.com>
9916
9917         * dbus/dbus-message.c (dbus_message_name_is): rename
9918         (dbus_message_service_is): rename
9919         (dbus_message_sender_is): rename
9920         (dbus_message_get_service): rename
9921
9922 2003-04-24  Havoc Pennington  <hp@redhat.com>
9923
9924         * configure.in: add --enable-checks
9925
9926         * dbus/dbus-message.c (dbus_message_new): reverse name/service arguments
9927
9928         * dbus/dbus-connection.c (dbus_connection_preallocate_send): fix
9929         to use thread locks.
9930         (_dbus_connection_handler_destroyed_locked): move some private
9931         functions into proper docs group
9932
9933         * dbus/dbus-internals.h: add _dbus_return_if_fail,
9934         _dbus_return_val_if_fail
9935
9936         Throughout: use dbus_return_if_fail
9937
9938 2003-04-23  James Willcox  <jwillcox@gnome.org>
9939
9940         * glib/dbus-glib.h:
9941         * glib/dbus-gmain.c: (add_timeout), (wakeup_main), (create_source),
9942         (dbus_connection_setup_with_g_main),
9943         (dbus_server_setup_with_g_main):
9944         * glib/test-dbus-glib.c: (main):
9945         * glib/test-thread-client.c: (main):
9946         * glib/test-thread-server.c: (new_connection_callback), (main):
9947         * tools/dbus-monitor.c: (main):
9948
9949         Added a GMainContext argument to dbus_connection_setup_with_g_main()
9950         and dbus_server_setup_with_g_main().
9951
9952 2003-04-20  Havoc Pennington  <hp@pobox.com>
9953
9954         * doc/dbus-specification.sgml: document the restrictions on
9955         message and service names
9956
9957 2003-04-22  Havoc Pennington  <hp@redhat.com>
9958
9959         * dbus/dbus-message.c, dbus/dbus-marshal.c: add 64-bit integer
9960         support, and do some code cleanups to share more code and
9961         speed up array marshal/demarshal.
9962
9963         * dbus-1.0.pc.in (Cflags): put libdir include file in cflags
9964
9965         * configure.in: generate dbus-arch-deps.h
9966
9967         * dbus/dbus-protocol.h (DBUS_TYPE_INT64, DBUS_TYPE_UINT64): add
9968         64-bit typecodes
9969
9970 2003-04-22  Havoc Pennington  <hp@redhat.com>
9971
9972         * test/data/valid-messages/opposite-endian.message: fix test
9973         to use proper type for rply field
9974
9975         * test/data/invalid-messages: add tests for below validation
9976
9977         * dbus/dbus-message.c (decode_header_data): validate field types,
9978         and validate that named fields are valid names
9979         (decode_name_field): consider messages in the
9980         org.freedesktop.Local. namespace to be invalid.
9981
9982         * dbus/dbus-string.c (_dbus_string_validate_name): new
9983
9984 2003-04-19  Havoc Pennington  <hp@pobox.com>
9985
9986         * bus/driver.c (bus_driver_handle_hello): check limits and
9987         return an error if they are exceeded.
9988
9989         * bus/connection.c: maintain separate lists of active and inactive
9990         connections, and a count of each. Maintain count of completed
9991         connections per user. Implement code to check connection limits.
9992
9993         * dbus/dbus-list.c (_dbus_list_unlink): export
9994
9995         * bus/bus.c (bus_context_check_security_policy): enforce a maximum
9996         number of bytes in the message queue for a connection
9997
9998 2003-04-18  Havoc Pennington  <hp@pobox.com>
9999
10000         * dbus/dbus-auth.c (record_mechanisms): memleak fixes
10001
10002         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): fix some
10003         memleaks
10004
10005         * dbus/dbus-keyring.c (add_new_key): fix a memleak, and
10006         on realloc be sure to update the pointer in the keyring
10007
10008         * dbus/dbus-string.c (_dbus_string_zero): compensate for align
10009         offset to avoid writing to unallocated memory
10010
10011         * dbus/dbus-auth.c (process_rejected): return FALSE if we fail to
10012         try the next mechanism, so we properly handle OOM
10013
10014         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): fix double-free
10015         on OOM.
10016         (_dbus_keyring_new): fix OOM bug
10017         (_dbus_keyring_new_homedir): always set error; impose a maximum
10018         number of keys we'll load from the file, mostly to speed up the
10019         test suite and make its OOM checks more useful, but also for
10020         general sanity.
10021
10022         * dbus/dbus-auth.c (process_error_server): reject authentication
10023         if we get an error from the client
10024         (process_cancel): on cancel, send REJECTED, per the spec
10025         (process_error_client): send CANCEL if we get an error from the
10026         server.
10027
10028 2003-04-18  Havoc Pennington  <hp@pobox.com>
10029
10030         * dbus/dbus-mainloop.c (_dbus_loop_iterate): fix UMR in verbose
10031         debug spew
10032
10033         * dbus/dbus-auth.c (handle_client_data_cookie_sha1_mech): fix OOM
10034         handling problem
10035
10036         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): only whine
10037         about DBUS_TEST_HOMEDIR once
10038
10039         * bus/Makefile.am (TESTS_ENVIRONMENT): put DBUS_TEST_HOMEDIR in
10040         the environment
10041
10042         * bus/dispatch.c (bus_dispatch_sha1_test): actually load sha1
10043         config file so we test the right thing
10044
10045         Throughout: assorted docs improvements
10046
10047 2003-04-18  Havoc Pennington  <hp@pobox.com>
10048
10049         * glib/dbus-gmain.c: adapt to watch changes
10050
10051         * bus/bus.c, bus/activation.c, etc.: adjust to watch changes
10052
10053         * dbus/dbus-server.h: remove dbus_server_handle_watch
10054
10055         * dbus/dbus-connection.h: remove dbus_connection_handle_watch
10056
10057         * dbus/dbus-watch.c (dbus_watch_handle): change DBusWatch to work
10058         like DBusTimeout, so we don't need dbus_connection_handle_watch
10059         etc.
10060
10061 2003-04-17  Havoc Pennington  <hp@redhat.com>
10062
10063         * dbus/dbus-userdb.c, dbus/dbus-sysdeps.c: redo all the passwd
10064         database usage so it all goes via the DBusUserDatabase cache.
10065
10066 2003-04-17  Havoc Pennington  <hp@redhat.com>
10067
10068         * dbus/dbus-mainloop.c (_dbus_loop_iterate): fix logic so that if
10069         there was an OOM watch we skipped, we always return TRUE so we
10070         iterate again to have a look at it again. Fixes test suite hang.
10071         Code rearrangement also lets us lose some memset and only iterate
10072         over callbacks once.
10073
10074         * bus/driver.c (bus_driver_handle_message): sense of test for
10075         reply was backward
10076
10077 2003-04-16  Havoc Pennington  <hp@pobox.com>
10078
10079         * doc/dbus-specification.sgml: make spec say serials are unsigned
10080
10081         * dbus/dbus-message.h: change message serials to unsigned
10082
10083         * dbus/dbus-connection.c: adapt to message serials being unsigned
10084
10085 2003-04-15  Havoc Pennington  <hp@pobox.com>
10086
10087         * bus/bus.c: create and keep around a shared DBusUserDatabase
10088         object.
10089
10090         * bus/connection.c (bus_connection_get_groups): don't cache
10091         groups for user in the connection object, since user database
10092         object now does that.
10093
10094 2003-04-16  Havoc Pennington  <hp@redhat.com>
10095
10096         * dbus/dbus-message.c (_dbus_message_add_size_counter): keep a
10097         list of size counters
10098         (_dbus_message_loader_putback_message_link): put back a popped link
10099
10100         * dbus/dbus-connection.c
10101         (dbus_connection_set_max_live_messages_size): rename
10102         max_received_size
10103         (dbus_connection_get_outgoing_size): get size of outgoing
10104         queue
10105         (_dbus_connection_set_connection_counter): remove this cruft
10106
10107 2003-04-14  Havoc Pennington  <hp@redhat.com>
10108
10109         * dbus/dbus-userdb.c: user database abstraction, mostly to get
10110         caching, but at some point we might want to be able to use a
10111         different database.
10112
10113         * bus/dispatch.c (bus_dispatch_sha1_test): add a test that uses
10114         SHA1 conf file to test the sha1 auth mechanism, since the regular
10115         test always uses EXTERNAL when available.
10116
10117         * configure.in,
10118         test/data/valid-config-files/debug-allow-all-sha1.conf.in:
10119         add conf file that requires use of sha1 auth
10120
10121 2003-04-13  Havoc Pennington  <hp@pobox.com>
10122
10123         * tools/dbus-send.c, tools/dbus-monitor.c: two utility programs
10124         from Philip Blundell to send messages and monitor them.
10125
10126 2003-04-13  Havoc Pennington  <hp@pobox.com>
10127
10128         * dbus/dbus-mainloop.c: fix some reentrancy issues by refcounting
10129         callbacks
10130
10131         * test/data/valid-config-files/debug-allow-all.conf.in: allow all
10132         users
10133
10134         * dbus/dbus-transport.c (_dbus_transport_get_dispatch_status):
10135         fix to only recover unused bytes if we're already authenticated
10136         (_dbus_transport_get_is_authenticated): fix to still mark us
10137         authenticated if there are unused bytes.
10138
10139         * bus/dispatch.c: implement security policy checking
10140
10141         * bus/connection.c (bus_transaction_send_from_driver): new
10142
10143         * bus/bus.c (bus_context_check_security_policy): new
10144
10145         * bus/dispatch.c (send_service_nonexistent_error): delete this,
10146         now we just set the DBusError and it gets converted to an error
10147         reply.
10148
10149         * bus/connection.c (allow_user_function): enable code using actual
10150         data from the config file
10151
10152         * bus/policy.c (list_allows_user): handle wildcard rules for
10153         user/group connection perms
10154
10155 2003-04-13  Havoc Pennington  <hp@pobox.com>
10156
10157         * bus/config-parser.c: Load up the BusPolicy and BusPolicyRules
10158
10159         * dbus/dbus-sysdeps.c (_dbus_get_user_id): new function
10160
10161         * bus/policy.c (bus_policy_append_mandatory_rule)
10162         (bus_policy_append_default_rule, bus_policy_append_user_rule)
10163         (bus_policy_append_group_rule): new functions
10164
10165 2003-04-12  Havoc Pennington  <hp@pobox.com>
10166
10167         * bus/config-parser.c (bus_config_parser_new): fix a memleak
10168
10169         * dbus/dbus-sysdeps.c: change DBusCredentials to use longs for
10170         the pid/gid/uid, just for paranoia.
10171
10172         * test/break-loader.c (randomly_do_n_things): find a byte
10173         containing a type code, and randomly change it to a different
10174         type code.
10175
10176 2003-04-12  Havoc Pennington  <hp@pobox.com>
10177
10178         * bus/policy.h: change BusPolicy to be the thing from the config
10179         file, and rename old BusPolicy to BusClientPolicy
10180
10181         * bus/bus.c, bus/connection.c, bus/config-parser.c: change to
10182         match change in how policy works
10183
10184         * dbus/dbus-internals.h: mark assert_not_reached as
10185         __attribute((noreturn))__
10186
10187 2003-04-11  Havoc Pennington  <hp@redhat.com>
10188
10189         * doc/dbus-specification.sgml: fix a spot with the wrong name for
10190         the broadcast service. Use boolean return for ServiceExists.
10191
10192 2003-04-11  Havoc Pennington  <hp@redhat.com>
10193
10194         * configure.in: add another directory to look for qt in.
10195
10196 2003-04-11  Havoc Pennington  <hp@redhat.com>
10197
10198         * AUTHORS: add Colin Walters
10199
10200 2003-04-11  Havoc Pennington  <hp@redhat.com>
10201
10202         * NEWS: update
10203
10204         * configure.in: 0.9
10205
10206 2003-04-11  Havoc Pennington  <hp@redhat.com>
10207
10208         * bus/messagebus.in: remove pid file when stopping the
10209         message bus, since the bus won't have privileges to remove it
10210         itself.
10211
10212 2003-04-11  Havoc Pennington  <hp@redhat.com>
10213
10214         * bus/bus.c (bus_context_new): move credentials change after
10215         creating pidfile
10216
10217 2003-04-11  Havoc Pennington  <hp@pobox.com>
10218
10219         * test/decode-gcov.c: add "below average functions" to the
10220         coverage report, and change how some of the code works.
10221
10222         * bus/test-main.c: bracket some stuff in DBUS_BUILD_TESTS so it's
10223         not in the coverage stats.
10224
10225         * test/test-service.c (main): use _dbus_verbose not fprintf in a
10226         couple places so running the test suite doesn't result in megaspam.
10227
10228 2003-04-11  Havoc Pennington  <hp@pobox.com>
10229
10230         * bus/dispatch.c (check_existent_service_activation): accept a no
10231         memory error in a place we didn't before
10232
10233         * bus/test.c (bus_test_run_everything): remove hacky "do it twice
10234         in case the first one failed," since the test suite is less
10235         broken now.
10236
10237 2003-04-10  Havoc Pennington  <hp@pobox.com>
10238
10239         * bus/dispatch.c (check_segfault_service_activation): add test
10240         for launching an executable that just crashes.
10241
10242         * test/test-segfault.c (main): try setting coredumpsize to 0 so we
10243         don't leave a million cores. We'll see how portable this is.
10244
10245 2003-04-10  Havoc Pennington  <hp@pobox.com>
10246
10247         * dbus/dbus-spawn.c (_dbus_spawn_async_with_babysitter): move all
10248         the possible parent failures before we fork, so that we don't
10249         fail to create a babysitter after creating the child.
10250
10251         * bus/activation.c (bus_activation_activate_service): kill child
10252         if we don't successfully complete the activation.
10253
10254 2003-04-10  Havoc Pennington  <hp@redhat.com>
10255
10256         * dbus/dbus-connection.c (dbus_connection_flush): don't spin on
10257         the connection if it's disconnected
10258
10259         * bus/activation.c (bus_activation_service_created): use new
10260         transaction features to roll back removal of pending activation if
10261         we don't successfully create the service after all. Don't remove
10262         pending activation if the function fails.
10263
10264         * dbus/dbus-list.c (_dbus_list_insert_before_link)
10265         (_dbus_list_insert_after_link): new code to facilitate
10266         services.c fixes
10267
10268         * dbus/dbus-hash.c (_dbus_hash_table_insert_string_preallocated):
10269         new functionality, so we can preallocate the ability to insert
10270         into a hash table.
10271
10272         * bus/connection.c (bus_transaction_add_cancel_hook): new function
10273         allowing us to put custom hooks in a transaction to be used for
10274         cancelling said transaction
10275
10276         * doc/dbus-specification.sgml: add some discussion of secondary
10277         service owners, and disallow zero-length service names
10278
10279         * bus/services.c (bus_registry_acquire_service): new function,
10280         splits out part of bus_driver_handle_acquire_service() and fixes
10281         a bug where we didn't remove the service doing the acquiring
10282         from the secondary queue if we failed to remove the current owner
10283         from the front of the queue.
10284
10285 2003-04-10  Alexander Larsson  <alexl@redhat.com>
10286
10287         * doc/dbus-specification.sgml:
10288         s/org.freedesktop.Broadcast/org.freedesktop.DBus.Broadcast/
10289
10290 2003-04-10  Alexander Larsson  <alexl@redhat.com>
10291
10292         * bus/.cvsignore:
10293         * glib/.cvsignore:
10294         * test/.cvsignore:
10295         Added files to cvsignore
10296
10297         * dbus/dbus-message.h:
10298         * dbus/dbus-message.c: (dbus_message_iter_get_named):
10299         Make get_named() take two out argument and return a boolean.
10300         (dbus_message_iter_get_args_valist):
10301         Update usage of get_named().
10302         (dbus_message_iter_append_byte):
10303         Fix typo
10304         (dbus_message_iter_append_named)
10305         Fix typo
10306         (message_iter_test), (check_message_handling_type), (_dbus_message_test):
10307         More tests.
10308
10309 2003-04-10  Alexander Larsson  <alexl@redhat.com>
10310
10311         * dbus/dbus-marshal.[ch]:
10312         Add array_type_pos argument to _dbus_marshal_validate_arg.
10313         Let you pass a NULL end_pos to _dbus_marshal_validate_type.
10314
10315         * dbus/dbus-message.[ch]:
10316         Multi-dimensional arrays have full type specification in the
10317         outermost array. Iter code re-arranged to handle this.
10318         Added some more iter tests.
10319
10320         * doc/dbus-specification.sgml:
10321         Add me to authors.
10322         Remove old FIXME.
10323         Update new array encoding description.
10324         Correct DBUS_SERVICE_FLAGS_REPLACE_EXISTING description.
10325
10326         * test/data/invalid-messages/array-with-mixed-types.message:
10327         * test/data/valid-messages/array-of-array-of-uint32.message:
10328         Change to the new array format.
10329
10330         * test/data/invalid-messages/too-short-dict.message:
10331         Fix bug in test.
10332
10333         * test/data/valid-messages/recursive-types.message:
10334         Fix up and extend test.
10335
10336 2003-04-10  Havoc Pennington  <hp@pobox.com>
10337
10338         * bus/dispatch.c: lots of fixes
10339
10340         * dbus/dbus-mainloop.c (_dbus_loop_dispatch): export
10341         (_dbus_loop_iterate): remove old "quit if no callbacks" code,
10342         that was crack, broke the test service.
10343
10344         * dbus/dbus-transport.c (_dbus_transport_open): fix error
10345         handling to avoid piling up errors if we get a failure on the
10346         first address.
10347
10348         * dbus/dbus-internals.c (_dbus_real_assert_not_reached): include
10349         pid in assertion failures.
10350
10351         * dbus/dbus-mainloop.c (_dbus_loop_iterate): use static arrays up
10352         to some fixed size of file descriptor array. Don't return TRUE
10353         anytime a timeout exists, that led to lots of busy loop silliness
10354         in the tests.
10355
10356 2003-04-09  Havoc Pennington  <hp@redhat.com>
10357
10358         * dbus/dbus-mainloop.c (check_timeout): fix timeouts, I thought
10359         I'd checked this in earlier but hadn't.
10360
10361 2003-04-09  Havoc Pennington  <hp@redhat.com>
10362
10363         * bus/dispatch.c (bus_dispatch_test): get a bit further through
10364         the activation test (man this is getting old!)
10365
10366 2003-04-09  Havoc Pennington  <hp@redhat.com>
10367
10368         * test/test-utils.c: use dispatch status function to fix this up
10369
10370         * bus/connection.c (connection_watch_callback): don't dispatch
10371         from here
10372         (connection_timeout_callback): don't dispatch from here
10373         (bus_connections_setup_connection): set the dispatch status function
10374         (bus_connection_disconnected): unset it
10375
10376         * dbus/dbus-mainloop.c (_dbus_loop_queue_dispatch): new function
10377         used to add a connection to be dispatched
10378         (_dbus_loop_iterate): do the dispatching at the end of each
10379         iteration
10380
10381         * dbus/dbus-connection.c
10382         (dbus_connection_set_dispatch_status_function): new function
10383         allowing us to fix up main loop usage
10384         (_dbus_connection_last_unref): free all the various function
10385         user data
10386         (dbus_connection_dispatch): call the DispatchStatusFunction
10387         whenever this function returns
10388         (dbus_connection_handle_watch): call DispatchStatusFunction
10389         (dbus_connection_send_with_reply_and_block): call DispatchStatusFunction
10390         (reply_handler_timeout): call DispatchStatusFunction
10391         (dbus_connection_flush): call DispatchStatusFunction
10392
10393 2003-04-09  Havoc Pennington  <hp@redhat.com>
10394
10395         * dbus/dbus-bus.c (dbus_bus_register): fix up error handling and
10396         a memory leak
10397
10398         * bus/dispatch.c (check_service_activated): fix bug in test
10399
10400         * dbus/dbus-mainloop.c (check_timeout): fix this up
10401
10402         * dbus/dbus-internals.c (_dbus_verbose_real): include PID in
10403         verbose output so we can sort out output from different processes,
10404         e.g. in the activation case.
10405
10406 2003-04-08  Colin Walters  <walters@gnu.org>
10407
10408         * bus/bus.c (struct BusContext) [pidfile]: New member, to store
10409         the pid file.
10410         (bus_context_new): Set it.
10411         (bus_context_unref): Use it to delete the pid file.
10412
10413 2003-04-08  Havoc Pennington  <hp@redhat.com>
10414
10415         * test/data/invalid-messages/array-with-mixed-types.message:
10416         regression test that fails for the moment
10417
10418         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): reorder
10419         tests for convenience
10420
10421         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): don't allow
10422         array of nil, it broke things.
10423
10424         * test/data/invalid-messages/array-of-nil.message: regression test
10425
10426         * test/data/valid-messages/array-of-array-of-uint32.message:
10427         happened to write this so added it to suite
10428
10429 2003-04-08  Havoc Pennington  <hp@redhat.com>
10430
10431         * bus/driver.c (bus_driver_handle_acquire_service): init
10432         retval/reply before checking name
10433
10434         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): add a
10435         recursion depth argument
10436
10437         * dbus/dbus-message.h (struct DBusMessageIter): put some padding
10438         in the public struct for future extension
10439
10440         * dbus/dbus-message-builder.c (_dbus_message_data_load): fix
10441         typo
10442
10443         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): fix a verbose
10444         message
10445
10446         * doc/dbus-specification.sgml: fix typo
10447
10448 2003-04-08  Alexander Larsson  <alexl@redhat.com>
10449
10450         Implemented recursive types, named types and new-style iters
10451
10452         * bus/driver.c:
10453         * glib/test-thread-client.c: (thread_func):
10454         * glib/test-thread-server.c: (handle_test_message):
10455         * test/test-service.c: (handle_echo):
10456         Update to new api
10457
10458         * dbus/Makefile.am:
10459         * dbus/dbus-dict.c:
10460         * dbus/dbus-dict.h:
10461         * dbus/dbus.h
10462         Remove DBusDict
10463
10464         * dbus/dbus-internals.c: (_dbus_type_to_string):
10465         Update for new types.
10466
10467         * dbus/dbus-marshal.[ch]:
10468         Implement recursive types and the new marshalling format.
10469         Remove hardcoded dict marshalling.
10470         Marshal named types.
10471
10472         * dbus/dbus-message-builder.c:
10473         Add BYTE_ARRAY.
10474         Remove references to old types
10475
10476         * dbus/dbus-message.[ch]:
10477         New non-refcounted iter API that supports recursive iters.
10478         Use iters for appending, including support for recursive
10479         iters.
10480         Add byte and named type support.
10481         Update everything to new marshalling formats.
10482         Add tests for new API.
10483
10484         * dbus/dbus-protocol.h:
10485         Remove old array types.
10486         Add types: BYTE, ARRAY, DICT, NAMED
10487
10488         * dbus/dbus-string.c:
10489         * dbus/dbus-sysdeps.c:
10490         Make parse_double locale safe.
10491
10492         * dbus/dbus-test-main.c:
10493         Call setlocale.
10494
10495         * dbus/dbus-test.c:
10496         Kill dict test
10497
10498         * doc/dbus-specification.sgml:
10499         Update spec
10500
10501         * test/data/incomplete-messages/missing-body.message:
10502         * test/data/invalid-messages/bad-boolean.message:
10503         * test/data/invalid-messages/bad-boolean-array.message:
10504         * test/data/invalid-messages/boolean-array-length-too-long.message-raw:
10505         * test/data/invalid-messages/boolean-has-no-value.message-raw:
10506         * test/data/invalid-messages/too-short-dict.message:
10507         * test/data/valid-messages/dict-simple.message:
10508         * test/data/valid-messages/dict.message:
10509         * test/data/valid-messages/emptiness.message:
10510         * test/data/valid-messages/lots-of-arguments.message:
10511         * test/data/valid-messages/no-padding.message:
10512         * test/data/valid-messages/recursive-types.message:
10513         Add missing NAME fields
10514         Fix up dicts & arrays
10515
10516         * test/data/invalid-messages/dict-with-nil-value.message:
10517         Removed, this is not invalid anymore.
10518
10519         * test/data/valid-messages/recursive-types.message:
10520         Add new test for deeply recursive types.
10521
10522 2003-04-07  Havoc Pennington  <hp@pobox.com>
10523
10524         * bus/driver.c (bus_driver_handle_acquire_service): return an
10525         error if you try to acquire a service that starts with ':'
10526
10527 2003-04-07  Havoc Pennington  <hp@redhat.com>
10528
10529         * doc/dbus-specification.sgml: require that base service names
10530         start with ':' and that the base service is created/deleted
10531         as first and last things a connection does on the bus
10532
10533         * bus/dispatch.c (check_existent_service_activation): lots more
10534         work on the activation test; it doesn't fully pass yet...
10535
10536         * test/test-service.c (main): fix so we don't memleak the
10537         connection to the message bus
10538         (filter_func): accept a message asking us to exit
10539
10540 2003-04-06  Havoc Pennington  <hp@pobox.com>
10541
10542         * qt/Makefile.am (dbusinclude_HEADERS): install dbus-qt.h,
10543         from Colin Walters
10544
10545         * configure.in: fixes to Qt detection from Colin Walters
10546
10547         * doc/Makefile.am: Only remove generated docbook dirs if they
10548         exist, from Colin Walters
10549
10550         * dbus/dbus-bus.c: change how we set well-known connections to
10551         NULL, so that it works if a single connection is stored in
10552         two well-known array slots.
10553
10554         * test/Makefile.am: remove a lot of stuff that isn't immediately
10555         useful, it's in CVS history if we want it.
10556
10557         * test/test-service.c: use dbus-mainloop instead of that
10558         watch.[hc] crack
10559
10560 2003-04-06  Havoc Pennington  <hp@pobox.com>
10561
10562         * dbus/Makefile.am: split lists of sources into stuff that goes in
10563         the library, util functions that go in the lib and are also used
10564         elsewhere, and util functions that are used in tests/daemon but
10565         don't go in the lib.
10566
10567         * dbus/dbus-mainloop.h, dbus/dbus-mainloop.c: move bus/loop.[hc]
10568         here so it can be used in test binaries also
10569
10570 2003-04-06  Havoc Pennington  <hp@pobox.com>
10571
10572         * dbus/dbus-sysdeps.c (_dbus_become_daemon): write the pidfile
10573         here in the parent process, so we can return an error if it
10574         fails. Also, move some of the code into the child so the parent
10575         is less hosed if we fail midway through.
10576
10577         * bus/bus.c (bus_context_new): move pidfile detection further up
10578         in the function, before we start overwriting sockets and such.
10579
10580         * bus/messagebus.in: adjust this a bit, not sure if it will work.
10581
10582         * configure.in: add --with-system-pid-file and --with-system-socket
10583
10584 2003-04-06  Colin Walters  <walters@verbum.org>
10585
10586         * configure.in (DBUS_SYSTEM_PID_FILE): New variable.
10587
10588         * bus/system.conf.in: Declare a pidfile.
10589
10590         * bus/bus.c (bus_context_new): Test for an existing pid file, and
10591         create one (if appropriate).
10592
10593         * bus/config-parser.c (enum ElementType) [ELEMENT_PIDFILE]: New.
10594         (struct BusConfigParser) [pidfile]: New.
10595         (element_type_to_name, merge_included, start_busconfig_child)
10596         (bus_config_parser_end_element, bus_config_parser_content): Handle it.
10597         (bus_config_parser_unref): Free it.
10598         (bus_config_parser_get_pidfile): New function.
10599
10600         * bus/config-parser.h (_dbus_write_pid_file): Prototype.
10601
10602         * dbus/dbus-errors.h (DBUS_ERROR_PIDFILE_EXISTS): New error.
10603
10604         * dbus/dbus-sysdeps.c (_dbus_write_pid_file): New function.
10605
10606         * dbus/dbus-sysdeps.h: Prototype it.
10607
10608 2003-04-06  Havoc Pennington  <hp@pobox.com>
10609
10610         * bus/bus.c (bus_context_new): print the address in here, rather
10611         than in main(), because we need to do it before forking the daemon
10612
10613         * bus/dispatch.c (send_service_nonexistent_error): set the sender
10614         on the service nonexistent error
10615
10616         * bus/driver.c (bus_driver_handle_acquire_service): set the
10617         sender on the AcquireService reply
10618
10619         * test/data/valid-config-files/debug-allow-all.conf.in: Make test
10620         server also listen on a UNIX socket so services can connect to it.
10621
10622 2003-04-06  Havoc Pennington  <hp@pobox.com>
10623
10624         * dbus/dbus-threads.c: Redo how the fake debug mutexes are done
10625         so it detects deadlocks and also we actually init threads when
10626         debugging.
10627
10628 2003-04-06  Havoc Pennington  <hp@pobox.com>
10629
10630         * dbus/dbus-server-unix.c (_dbus_server_new_for_domain_socket):
10631         save the domain socket name, and unlink it when we disconnect the
10632         server. Means that at least when we exit normally, we won't leave
10633         a bunch of junk in /tmp
10634
10635         * dbus/dbus-transport-unix.c
10636         (_dbus_transport_new_for_domain_socket): code cleanup (nicer
10637         memory management). (I was making a real change here but then
10638         didn't)
10639
10640 2003-04-06  Havoc Pennington  <hp@pobox.com>
10641
10642         * bus/bus.c (bus_context_new): fix wrong handling of
10643         server_data_slot_unref() in the error case.
10644
10645         * dbus/dbus-internals.h (_dbus_assert): change so it passes
10646         "(condition) != 0" to _dbus_real_assert so that
10647         "_dbus_assert (pointer)" doesn't cause a warning
10648
10649         * bus/main.c (main): accept --print-address option to print out
10650         the message bus address
10651
10652         * dbus/dbus-sysdeps.c (_dbus_generate_random_ascii): export this
10653
10654         * dbus/dbus-transport.c (_dbus_transport_open): special error for
10655         "tmpdir" option to unix: address on client side
10656
10657         * dbus/dbus-server.c (dbus_server_listen): handle "tmpdir" option
10658         to unix: address
10659
10660         * configure.in (TEST_SOCKET_DIR): locate a temporary directory
10661         we can use to create sockets in the test suite.
10662
10663         * bus/main.c (signal_handler): on SIGTERM, exit the daemon
10664         cleanly. To be used for testing.
10665
10666         * dbus/dbus-spawn.c (babysit): use _dbus_set_signal_handler()
10667
10668         * dbus/dbus-sysdeps.c (_dbus_set_signal_handler): new
10669
10670         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
10671         handle trying to call this when there's no servers active
10672
10673 2003-04-05  Havoc Pennington  <hp@pobox.com>
10674
10675         * NEWS: update
10676
10677         * configure.in: 0.8
10678
10679 2003-04-05  Havoc Pennington  <hp@pobox.com>
10680
10681         * bus/bus.c (setup_server): fix this so dbus-daemon-1 doesn't
10682         crash on startup. Need to get "try starting the daemon"
10683         in the test suite I guess. ;-)
10684
10685         * dbus/dbus-server.h, dbus/dbus-server.c: remove the stuff that
10686         tracked the number of open connections; it's better done in
10687         application-specific code as you want it to span all servers etc.
10688
10689 2003-04-05  Havoc Pennington  <hp@pobox.com>
10690
10691         * bus/Makefile.am (install-data-hook): add missing DESTDIR,
10692         patch from Colin Walters
10693
10694 2003-04-05  Havoc Pennington  <hp@pobox.com>
10695
10696         * doc/config-file.txt (Elements): fix docs of <auth> to reflect
10697         reality; in fact multiple mechanisms are allowed.
10698
10699         * dbus/dbus-internals.c (_dbus_real_assert)
10700         (_dbus_real_assert_not_reached): move guts of _dbus_assert() and
10701         _dbus_assert_not_reached() into functions, so that they don't show
10702         up in basic block counts for test coverage, and don't use up as
10703         much disk space. Does mean slower execution speed though, so
10704         assumes --disable-asserts is the normal production case.
10705
10706 2003-04-05  Havoc Pennington  <hp@pobox.com>
10707
10708         * test/Makefile.am (dist-hook): also dist *.in files
10709
10710         * NEWS: update
10711
10712         * configure.in: 0.7
10713
10714 2003-04-05  Havoc Pennington  <hp@pobox.com>
10715
10716         * dbus/dbus-string.c: docs warning
10717
10718         * dbus/dbus-spawn.c: missing docs
10719
10720         * dbus/dbus-memory.c (struct ShutdownClosure): missing docs
10721
10722 2003-04-05  Havoc Pennington  <hp@pobox.com>
10723
10724         * bus/loop.c (bus_loop_iterate): fix the timeout code, using
10725         magic from GLib
10726
10727         * dbus/dbus-spawn.c (_dbus_babysitter_unref): set sitter_pid
10728         to -1 once we've reaped the babysitter
10729         (_dbus_babysitter_handle_watch): do as much work as we can, not
10730         just one go of it
10731
10732         * bus/activation.c: add code using DBusBabysitter so that we
10733         handle it when a service fails to start up properly.
10734         (bus_activation_service_created): don't remove the activation
10735         entries as we go, just let them get removed when we free the pending
10736         activation. Unref reply messages after sending them.
10737
10738 2003-04-05  Havoc Pennington  <hp@pobox.com>
10739
10740         * test/decode-gcov.c (main): print per-directory stats in the report
10741
10742         * Makefile.am (coverage-report.txt): don't include test/* in gcov stats
10743
10744 2003-04-05  Havoc Pennington  <hp@pobox.com>
10745
10746         * Makefile.am (coverage-report.txt): add target "coverage-report.txt"
10747
10748         * test/decode-gcov.c: hack up a little program to suck data
10749         out of gcov files. Yes this is sort of silly.
10750
10751         * configure.in: define something in config.h and do an
10752         AM_CONDITIONAL when gcov is enabled
10753
10754 2003-04-04  Havoc Pennington  <hp@redhat.com>
10755
10756         * dbus/dbus-spawn.c, dbus/dbus-spawn.h: Change dbus_spawn to
10757         return a "babysitter" object that is used to monitor the status of
10758         the spawned process and reap it when required.
10759
10760         * test/test-segfault.c, test/test-exit.c,
10761         test/test-sleep-forever.c: binaries that do various lame things,
10762         used in the test suite.
10763
10764         * dbus/dbus-sysdeps.c: kill _dbus_errno_to_string()
10765
10766 2003-04-03  Havoc Pennington  <hp@pobox.com>
10767
10768         * dbus/dbus-spawn.c: Move dbus-spawn into a separate file
10769         in preparation for modifying it, dbus-sysdeps is getting
10770         a bit unmanageable.
10771
10772 2003-04-03  Havoc Pennington  <hp@redhat.com>
10773
10774         * bus/loop.h, bus/loop.c: make the mainloop an object so we can
10775         have multiple ones
10776
10777         * bus/*.[hc]: adapt to mainloop change
10778
10779 2003-04-03  Havoc Pennington  <hp@redhat.com>
10780
10781         * bus/activation.c (load_directory): fix up memleaks
10782         (bus_activation_entry_free): free the entry
10783
10784         * dbus/dbus-bus.c (dbus_bus_acquire_service): return an error if
10785         we get one from the message bus; fix memleaks.
10786
10787         * dbus/dbus-message.c (dbus_set_error_from_message): new function
10788
10789 2003-04-03  Havoc Pennington  <hp@pobox.com>
10790
10791         * bus/config-parser.c (bus_config_parser_unref): free
10792         list of mechanisms, bug discovered by test suite enhancements
10793         (putting system.conf and session.conf into suite)
10794
10795         * test/Makefile.am, test/test-service.c: add placeholder for a
10796         test service that we'll activate as part of test suite. Doesn't
10797         do anything yet.
10798
10799         * dbus/dbus-sysdeps.c (_dbus_setenv): support unsetenv by
10800         setting NULL value, and use system malloc not dbus_malloc()
10801         when we have unavoidable memleakage.
10802
10803         * dbus/dbus-bus.c (dbus_bus_get): fix bug where bus type of 0
10804         didn't work, and support DBUS_BUS_ACTIVATION.
10805
10806         * bus/activation.c (child_setup): pass our well-known bus type to
10807         the child
10808
10809         * bus/config-parser.c: support <type> to specify well-known type
10810
10811         * doc/dbus-specification.sgml: document the env variables to
10812         locate well-known buses and find service activator
10813
10814 2003-04-02  Havoc Pennington  <hp@redhat.com>
10815
10816         * test/Makefile.am (all-local): add a rule to copy tests to
10817         builddir, so we can have generated tests. Use this to remove the
10818         silly hack for testing system.conf and session.conf. Will use this
10819         shortly to generate .service files pointing to test binaries.
10820
10821 2003-04-02  Havoc Pennington  <hp@redhat.com>
10822
10823         * dbus/dbus-string.c (set_length): fix a bug - we allocated max of
10824         current alloc and needed new length, not max of the doubled
10825         allocation and needed new length. Also, when building tests,
10826         don't do the double-allocation stuff, just realloc every time.
10827
10828 2003-04-02  Havoc Pennington  <hp@redhat.com>
10829
10830         * dbus/dbus-sysdeps.c (_dbus_file_get_contents): include filenames
10831         in error messages
10832         (_dbus_string_get_dirname): new
10833         (_dbus_sysdeps_test): new
10834         (_dbus_directory_open): include dirnames in error messages
10835
10836         * bus/config-parser.c: interpret <include> and <includedir> and
10837         <servicedir> relative to config file location if the given
10838         filename is not absolute.
10839
10840         * dbus/dbus-string.c (_dbus_string_find_byte_backward): new
10841
10842 2003-04-02  Havoc Pennington  <hp@redhat.com>
10843
10844         * bus/connection.c (bus_transaction_send_error_reply): set sender
10845         service for the error, and unref the reply on success
10846
10847         * bus/activation.c: convert to use BusTransaction so OOM can be
10848         handled correctly
10849         (bus_activation_service_created): set sender of the message
10850
10851 2003-04-01  Havoc Pennington  <hp@redhat.com>
10852
10853         * bus/config-parser.c, bus/bus.c: implement <servicedir> and
10854         <includedir> (at least mostly)
10855
10856         * dbus/dbus-sysdeps.c (_dbus_change_identity): set the group ID
10857         first, then the user ID
10858
10859 2003-04-01  Havoc Pennington  <hp@pobox.com>
10860
10861         * dbus/dbus-server.c (dbus_server_set_auth_mechanisms): new
10862         function
10863
10864         * dbus/dbus-auth.c (_dbus_auth_set_mechanisms): new
10865
10866         * dbus/dbus-internals.c (_dbus_dup_string_array): new function
10867
10868         * dbus/dbus-sysdeps.c (_dbus_listen_unix_socket): chmod the
10869         socket 0777, and unlink any existing socket.
10870
10871         * bus/bus.c (bus_context_new): change our UID/GID and fork if
10872         the configuration file so specifies; set up auth mechanism
10873         restrictions
10874
10875         * bus/config-parser.c (bus_config_parser_content): add support
10876         for <fork> option and fill in code for <auth>
10877
10878         * bus/system.conf.in: add <fork/> to default configuration,
10879         and limit auth mechanisms to EXTERNAL
10880
10881         * doc/config-file.txt (Elements): add <fork>
10882
10883         * dbus/dbus-sysdeps.c (_dbus_become_daemon): new function
10884         (_dbus_change_identity): new function
10885
10886 2003-03-31  Havoc Pennington  <hp@redhat.com>
10887
10888         * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket)
10889         (_dbus_listen_unix_socket): fix off-by-one error in null
10890         termination spotted by Nalin
10891
10892 2003-03-31  Havoc Pennington  <hp@redhat.com>
10893
10894         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): allow setting
10895         DBUS_TEST_HOMEDIR when tests are enabled, so we can test without
10896         having a real home directory available.
10897
10898 2003-03-31  Havoc Pennington  <hp@redhat.com>
10899
10900         * bus/Makefile.am (install-data-hook): create /var/run/dbus
10901
10902         * bus/messagebus.in: add init script for Red Hat /etc/init.d
10903
10904         * configure.in: add support for specifying a style of init script
10905         to install
10906
10907 2003-03-31  Havoc Pennington  <hp@redhat.com>
10908
10909         Fix some annoying DBusString API and fix all affected code.
10910
10911         * dbus/dbus-string.c (_dbus_string_init): get rid of annoying
10912         max_length argument
10913         (_dbus_string_get_data): change to return string instead of using
10914         an out param
10915         (_dbus_string_get_const_data): ditto
10916         (_dbus_string_get_data_len): ditto
10917         (_dbus_string_get_const_data_len): ditto
10918
10919 2003-03-31  Havoc Pennington  <hp@redhat.com>
10920
10921         * bus/main.c (main): fix up the command line arguments to be nicer
10922
10923 2003-03-31  Havoc Pennington  <hp@redhat.com>
10924
10925         * dbus/Makefile.am (INCLUDES): use EXPANDED_LOCALSTATEDIR to
10926         define DBUS_SYSTEM_BUS_PATH as we want to compile in the same
10927         final location that lands in the config file
10928
10929         * bus/config-loader-expat.c (bus_config_load): fix type of
10930         XML_Parser variable
10931
10932         * doc/TODO: remove TODO item for dbus_bus_get()
10933
10934         * dbus/dbus-bus.c (bus_data_free): add missing lock/unlock
10935
10936 2003-03-31  Havoc Pennington  <hp@pobox.com>
10937
10938         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_domain_socket)
10939         (_dbus_transport_new_for_tcp_socket): these didn't need the "server"
10940         argument since they are always client side
10941
10942         * dbus/dbus-server.c (dbus_server_get_address): new function
10943
10944         * bus/main.c (main): take the configuration file as an argument.
10945
10946         * test/data/valid-config-files/debug-allow-all.conf: new file to
10947         use with dispatch.c tests for example
10948
10949         * bus/test-main.c (main): require test data dir
10950
10951         * bus/bus.c (bus_context_new): change this to take a
10952         configuration file name as argument
10953
10954         * doc/config-file.txt (Elements): add <servicedir>
10955
10956         * bus/system.conf, bus/session.conf: new files
10957
10958         * dbus/dbus-bus.c (dbus_bus_get): look for system bus on
10959         well-known socket if none set
10960
10961         * configure.in: create system.conf and session.conf
10962
10963 2003-03-30  Havoc Pennington  <hp@pobox.com>
10964
10965         * bus/config-parser.c: hacking
10966
10967         * dbus/dbus-memory.c: don't use DBusList for the list of stuff
10968         to shut down, since it could cause weirdness with the DBusList
10969         lock
10970
10971         * dbus/dbus-list.c (_dbus_list_test): add tests for the
10972         link-oriented stack routines
10973         (alloc_link): free the mempool if the first alloc from it fails
10974
10975         * dbus/dbus-mempool.c (struct DBusMemBlock): fix alignment issue
10976
10977         * dbus/dbus-string.c (UNICODE_VALID): sync new version of this
10978         from GLib
10979         (_dbus_string_skip_white): new
10980
10981         * doc/config-file.txt (Elements): add <includedir>
10982
10983 2003-03-28  Havoc Pennington  <hp@pobox.com>
10984
10985         * dbus/dbus-string.c (_dbus_string_copy_data_len)
10986         (_dbus_string_copy_data): new functions
10987
10988 2003-03-28  Anders Carlsson  <andersca@codefactory.se>
10989
10990         * dbus/dbus-bus.c: (bus_data_free), (dbus_bus_get):
10991         * dbus/dbus-bus.h:
10992         Add dbus_bus_get.
10993
10994         * dbus/dbus-memory.c:
10995         Fix a doc comment.
10996
10997 2003-03-28  Havoc Pennington  <hp@pobox.com>
10998
10999         * bus/test.c (bus_test_flush_bus): remove the sleep from here,
11000         I think it may have just been superstition. Not sure.
11001
11002         * dbus/dbus-string.c (_dbus_string_base64_decode): catch some OOM
11003         failures that were not being handled.
11004
11005         * dbus/dbus-auth.c (process_auth): fix a memleak in OOM handling
11006
11007         * dbus/dbus-memory.c: add ability to set number of mallocs in a
11008         row that will fail on out-of-memory.
11009
11010         * dbus/dbus-internals.c (_dbus_test_oom_handling): convenience
11011         function for testing out-of-memory handling.
11012
11013         * bus/config-loader-expat.c (memsuite): don't wrap the dbus
11014         allocation functions, they do map exactly to the expat ones.
11015
11016 2003-03-27  Havoc Pennington  <hp@redhat.com>
11017
11018         * bus/config-loader-libxml.c (bus_config_load): add another error
11019         check
11020
11021 2003-03-26  Anders Carlsson  <andersca@codefactory.se>
11022
11023         * doc/TODO:
11024         Add note about automatic service activation.
11025
11026         * doc/dbus-specification.sgml:
11027         Rename the specification and clarify a few things.
11028
11029 2003-03-26  Anders Carlsson  <andersca@codefactory.se>
11030
11031         * Doxyfile.in:
11032         * dbus/dbus-address.c:
11033         * dbus/dbus-dict.c:
11034         * dbus/dbus-marshal.c:
11035         * dbus/dbus-server-debug-pipe.c:
11036         * dbus/dbus-transport-unix.c:
11037         Fix documentation warnings.
11038
11039 2003-03-26  Havoc Pennington  <hp@pobox.com>
11040
11041         * bus/test-main.c, dbus/dbus-test.c (main): check memleaks
11042         after every test so it's quick and easy to see which leaked, and
11043         so we test multiple dbus_shutdown() calls
11044
11045         * configure.in: change configure.in XML stuff to also support
11046         expat
11047
11048         * config-loader-libxml.c: some hacking
11049
11050         * config-loader-expat.c: some hacking
11051
11052         * config-parser.c: some hacking, plus tests
11053
11054 2003-03-25  Havoc Pennington  <hp@redhat.com>
11055
11056         * throughout - add more _DBUS_ASSERT_ERROR_IS_CLEAR
11057
11058         * configure.in: add --with-xml option to specify XML library,
11059         right now only libxml is supported.
11060
11061         * bus/config-loader-libxml.c, config-parser.c: sync some minor
11062         nonworking code between home and work, still just stubs
11063
11064 2003-03-24  Havoc Pennington  <hp@redhat.com>
11065
11066         * dbus/dbus-sysdeps.c (_dbus_set_fd_nonblocking): move to this
11067         file
11068
11069         * dbus/dbus-errors.c (dbus_set_error, dbus_set_error_const): allow
11070         NULL argument for "message" if the error is a well-known one,
11071         fill in a generic message in this case.
11072
11073         * dbus/dbus-errors.h (DBusResultCode): Kill DBusResultCode in
11074         favor of DBusError
11075
11076         * bus/test.c (bus_test_flush_bus): add
11077
11078         * bus/policy.c (bus_policy_test): test code stub
11079
11080 2003-03-24  Havoc Pennington  <hp@pobox.com>
11081
11082         * bus/connection.c (bus_connections_setup_connection): set up
11083         the "can this user connect" function, but it always returns
11084         TRUE until we have a config file parser so we can have a config
11085         file that allows connections.
11086
11087 2003-03-23  Havoc Pennington  <hp@pobox.com>
11088
11089         * dbus/dbus-threads.c (dbus_mutex_new, dbus_condvar_new): with
11090         DBUS_BUILD_TESTS, actually alloc/free a block of memory for
11091         the mutex, so we can check for proper memory management
11092         and OOM handling.
11093
11094         * dbus/dbus-dataslot.c: remove the mutex from
11095         DBusDataSlotAllocator and lock it manually when using it,
11096         to simplify fitting it into the global slots framework.
11097
11098         * dbus/dbus-threads.c (init_static_locks): rework how we're
11099         handling global locks so they are easily shut down.
11100
11101         * bus/policy.c (bus_policy_append_rule): fix
11102
11103         * bus/test-main.c (main): check for memleaks
11104
11105         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): make
11106         test suite check for memleaks
11107
11108         * dbus/dbus-memory.c: add support in test mode for tracking
11109         number of outstanding blocks
11110
11111 2003-03-23  Havoc Pennington  <hp@pobox.com>
11112
11113         * bus/policy.c, bus/bus.c, bus/connection.c: implement allow/deny
11114         policies code
11115
11116         * dbus/dbus-hash.h: add ULONG hash keys
11117
11118         * dbus/dbus-sysdeps.c (_dbus_get_groups): new
11119         (_dbus_get_group_id): new function
11120
11121 2003-03-20  Havoc Pennington  <hp@redhat.com>
11122
11123         * dbus/dbus-connection.c (dbus_connection_set_unix_user_function):
11124         new function
11125         (dbus_connection_get_unix_user): new function
11126
11127 2003-03-20  Havoc Pennington  <hp@pobox.com>
11128
11129         * bus/connection.c (bus_connection_send_oom_error): assert that
11130         message has a sender
11131         (connection_execute_transaction): ditto
11132         (bus_connection_preallocate_oom_error): fix to set the sender, and
11133         set recipient to the destination service, not the bus driver
11134
11135         * bus/policy.c: hacking
11136
11137         * dbus/dbus-message.c (dbus_message_service_is): new function
11138         (dbus_message_sender_is): new
11139
11140 2003-03-19  Havoc Pennington  <hp@redhat.com>
11141
11142         * bus/policy.c: start sketching code for policy restrictions on
11143         what connections can do.
11144
11145 2003-03-18  Havoc Pennington  <hp@redhat.com>
11146
11147         * doc/TODO: some notes on high-level todo items. Little nitpick
11148         stuff is all in @todo, so no need to add it here.
11149
11150         * doc/config-file.txt: some notes on how config file might look
11151
11152 2003-03-18  Anders Carlsson  <andersca@codefactory.se>
11153
11154         * configure.in: 0.6
11155
11156         * NEWS: Update.
11157
11158 2003-03-17  Havoc Pennington  <hp@redhat.com>
11159
11160         * dbus/dbus-internals.h: add gcc attributes so that
11161         our printf-style functions warn on bad arguments to
11162         format
11163
11164         * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): fix printf
11165         format bug
11166
11167         * dbus/dbus-message.c (_dbus_message_loader_queue_messages): fix
11168         printf format bug
11169
11170 2003-03-17  Havoc Pennington  <hp@redhat.com>
11171
11172         * bus/test-main.c (main): make it print something as it runs
11173         so make check doesn't look stuck
11174
11175         * doc/negotiation.txt, doc/dbus-sasl-profile.txt: remove
11176         from CVS, now obsolete
11177
11178 2003-03-17  Anders Carlsson  <andersca@codefactory.se>
11179
11180         * bus/dispatch.c: (bus_dispatch):
11181         Refetch the service name since it may have been reallocated
11182         when dbus_message_set_sender was called.
11183
11184         * dbus/dbus-sysdeps.c: (_dbus_accept):
11185         Add address and address length variables and use them to stop
11186         valgrind from complaining.
11187
11188 2003-03-17  Havoc Pennington  <hp@pobox.com>
11189
11190         All tests pass, no memleaks, no valgrind complaints.
11191
11192         * bus/test.c: refcount handler_slot
11193
11194         * bus/connection.c (bus_connections_new): refcount
11195         connection_data_slot
11196
11197         * dbus/dbus-auth-script.c (_dbus_auth_script_run): delete unused
11198         bytes so that auth scripts pass.
11199
11200         * bus/dispatch.c: init message_handler_slot so it gets allocated
11201         properly
11202
11203         * bus/dispatch.c (message_handler_slot_ref): fix memleak
11204
11205         * dbus/dbus-server-debug-pipe.c (_dbus_server_debug_pipe_new):
11206         dealloc server_pipe_hash when no longer used for benefit of
11207         leak checking
11208
11209         * dbus/dbus-auth.c (process_command): memleak fix
11210
11211         * bus/dispatch.c (check_hello_message): memleak fix
11212
11213 2003-03-16  Havoc Pennington  <hp@pobox.com>
11214
11215         * dbus/dbus-bus.c (ensure_bus_data): fix double-unref of the data slot
11216
11217 2003-03-17  Anders Carlsson  <andersca@codefactory.se>
11218
11219         * bus/activation.c (bus_activation_activate_service): Append
11220         the pending activation entry to the list of pending activations.
11221
11222 2003-03-16  Havoc Pennington  <hp@pobox.com>
11223
11224         * bus/dispatch.c (bus_dispatch_test): remove double-unrefs of
11225         connections
11226
11227         * dbus/dbus-address.c (create_entry): fix OOM handling when
11228         failing to alloc entry->method
11229
11230 2003-03-16  Havoc Pennington  <hp@pobox.com>
11231
11232         * dbus/dbus-watch.c (_dbus_watch_new): handle failure to malloc
11233         the watch
11234
11235         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
11236         add some missing dbus_set_result
11237
11238         * bus/dispatch.c (bus_dispatch_add_connection): handle failure to
11239         alloc the DBusMessageHandler
11240
11241         * dbus/dbus-transport.c (_dbus_transport_disconnect): don't ref
11242         the transport here, since we call this from the finalizer; it
11243         resulted in a double-finalize.
11244
11245         * dbus/dbus-transport.c (_dbus_transport_disconnect): fix a bug
11246         where we tried to use transport->connection that was NULL,
11247         happened when transport was disconnected early on due to OOM
11248
11249         * bus/*.c: adapt to handle OOM for watches/timeouts
11250
11251         * dbus/dbus-transport-unix.c: port to handle OOM during
11252         watch handling
11253
11254         * dbus/dbus-auth.c (_dbus_auth_get_unused_bytes): return a
11255         reference to unused bytes instead of a copy
11256
11257         * dbus/dbus-server.c (dbus_server_handle_watch): return FALSE for
11258         out of memory
11259
11260         * dbus/dbus-connection.c (dbus_connection_handle_watch): return
11261         FALSE on OOM
11262
11263         * dbus/dbus-timeout.c (dbus_timeout_handle): return FALSE for out
11264         of memory
11265
11266 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
11267
11268         * doc/dbus-specification.sgml:
11269         Document reply message for ActivateService.
11270
11271 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
11272
11273         * bus/activation.c: (bus_pending_activation_entry_free),
11274         (bus_pending_activation_free), (bus_activation_new),
11275         (bus_activation_unref), (bus_activation_service_created),
11276         (bus_activation_activate_service):
11277         * bus/activation.h:
11278         * bus/bus.c: (bus_context_new):
11279         * bus/desktop-file.c: (new_section):
11280         * bus/driver.c: (bus_driver_send_service_deleted),
11281         (bus_driver_handle_activate_service):
11282         * bus/services.c: (bus_registry_new), (bus_registry_ensure):
11283         * bus/services.h:
11284         * dbus/dbus-connection.c:
11285         (dbus_connection_send_with_reply_and_block):
11286         * dbus/dbus-message.c: (dbus_message_append_args_valist):
11287         * dbus/dbus-protocol.h:
11288         Make activation work better. Now pending activations will be queued
11289         and the daemon won't try to activate services that are already registered.
11290
11291 2003-03-16  Havoc Pennington  <hp@pobox.com>
11292
11293         * dbus/dbus-bus.c (ensure_bus_data): handle failure to set
11294         connection data
11295
11296         * dbus/dbus-memory.c (_dbus_initialize_malloc_debug): support
11297         DBUS_MALLOC_BACKTRACES to print trace when failing an alloc
11298
11299 2003-03-16  Havoc Pennington  <hp@pobox.com>
11300
11301         * dbus/dbus-string.c (_dbus_string_validate_utf8): oops, unbreak
11302         this. always run the test suite before commit...
11303
11304         * bus/*: adapt to DBusConnection API changes
11305
11306         * glib/dbus-gmain.c: adapt to DBusConnection API changes,
11307         requires renaming stuff to avoid dbus_connection_dispatch name
11308         conflict.
11309
11310         * dbus/dbus-transport.c (_dbus_transport_queue_messages): new
11311         function
11312
11313         * dbus/dbus-message.c (_dbus_message_loader_queue_messages):
11314         separate from _dbus_message_loader_return_buffer()
11315
11316         * dbus/dbus-connection.c (dbus_connection_get_n_messages): remove
11317         this, because it's now always broken to use; the number of
11318         messages in queue vs. the number still buffered by the message
11319         loader is undefined/meaningless. Should use
11320         dbus_connection_get_dispatch_state().
11321         (dbus_connection_dispatch): rename from
11322         dbus_connection_dispatch_message
11323
11324 2003-03-16  Havoc Pennington  <hp@pobox.com>
11325
11326         * dbus/dbus-string.c (_dbus_string_validate_utf8): copy in a real
11327         implementation
11328
11329 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
11330
11331         * dbus/dbus-connection.c:
11332         (dbus_connection_send_with_reply_and_block):
11333         Decrease connection->n_incoming when removing an entry
11334         from the list.
11335         * dbus/dbus-dict.c: (dbus_dict_entry_free),
11336         (dbus_dict_set_boolean_array), (dbus_dict_set_int32_array),
11337         (dbus_dict_set_uint32_array), (dbus_dict_set_double_array),
11338         (dbus_dict_set_byte_array), (dbus_dict_set_string_array),
11339         (dbus_dict_get_boolean_array), (dbus_dict_get_double_array),
11340         (dbus_dict_get_byte_array):
11341         Handle NULL arrays and strings. Also add support for byte arrays.
11342
11343         * dbus/dbus-marshal.c: (_dbus_marshal_byte_array),
11344         (_dbus_marshal_dict), (_dbus_demarshal_byte_array),
11345         (_dbus_demarshal_int32_array), (_dbus_demarshal_uint32_array),
11346         (_dbus_demarshal_double_array), (_dbus_demarshal_string_array),
11347         (_dbus_demarshal_dict), (demarshal_and_validate_len),
11348         (_dbus_marshal_validate_arg), (_dbus_marshal_test):
11349         * dbus/dbus-marshal.h:
11350         Add support for marshalling and demarshalling empty arrays and strings.
11351
11352         * dbus/dbus-message.c: (dbus_message_append_args_valist),
11353         (dbus_message_append_string_array),
11354         (dbus_message_iter_get_boolean),
11355         (dbus_message_iter_get_boolean_array),
11356         (dbus_message_iter_get_int32_array),
11357         (dbus_message_iter_get_uint32_array),
11358         (dbus_message_iter_get_double_array),
11359         (dbus_message_iter_get_byte_array),
11360         (dbus_message_iter_get_string_array), (dbus_message_iter_get_dict),
11361         (check_message_handling):
11362         Add support for getting empty arrays and dicts.
11363
11364         * dbus/dbus-string.c: (_dbus_string_validate_utf8):
11365         Don't do any validation at all for now, that's better than just checking
11366         for ASCII.
11367
11368         * test/data/valid-messages/emptiness.message:
11369         New test message with lots of empty arrays.
11370
11371 2003-03-16  Havoc Pennington  <hp@pobox.com>
11372
11373         * dbus/dbus-connection.c
11374         (_dbus_connection_queue_received_message_link): new function that
11375         can't fail due to OOM
11376
11377         * dbus/dbus-message.c (_dbus_message_loader_pop_message_link):
11378         new function pops a message together with a list link
11379         containing it.
11380
11381         * dbus/dbus-transport-unix.c (queue_messages): use new link-based
11382         message queuing functions to avoid needing to alloc memory
11383
11384 2003-03-16  Havoc Pennington  <hp@pobox.com>
11385
11386         Oops - test code was only testing failure of around 30 of the
11387         mallocs in the test path, but it turns out there are 500+
11388         mallocs. I believe this was due to misguided linking setup such
11389         that there was one copy of dbus_malloc etc. in the daemon and one
11390         in the shared lib, and only daemon mallocs were tested. In any
11391         case, the test case now tests all 500+ mallocs, and doesn't pass
11392         yet, though there are lots of fixes in this patch.
11393
11394         * dbus/dbus-connection.c (dbus_connection_dispatch_message): fix
11395         this so that it doesn't need to allocate memory, since it
11396         has no way of indicating failure due to OOM (and would be
11397         annoying if it did).
11398
11399         * dbus/dbus-list.c (_dbus_list_pop_first_link): new function
11400
11401         * bus/Makefile.am: rearrange to create two self-contained
11402         libraries, to avoid having libraries with overlapping symbols.
11403         that was resulting in weirdness, e.g. I'm pretty sure there
11404         were two copies of global static variables.
11405
11406         * dbus/dbus-internals.c: move the malloc debug stuff to
11407         dbus-memory.c
11408
11409         * dbus/dbus-list.c (free_link): free list mempool if it becomes
11410         empty.
11411
11412         * dbus/dbus-memory.c (_dbus_disable_mem_pools): new function
11413
11414         * dbus/dbus-address.c (dbus_parse_address): free list nodes
11415         on failure.
11416
11417         * bus/dispatch.c (bus_dispatch_add_connection): free
11418         message_handler_slot when no longer using it, so
11419         memory leak checkers are happy for the test suite.
11420
11421         * dbus/dbus-server-debug-pipe.c (debug_finalize): free server name
11422
11423         * bus/bus.c (new_connection_callback): disconnect in here if
11424         bus_connections_setup_connection fails.
11425
11426         * bus/connection.c (bus_connections_unref): fix to free the
11427         connections
11428         (bus_connections_setup_connection): if this fails, don't
11429         disconnect the connection, just be sure there are no side
11430         effects.
11431
11432         * dbus/dbus-string.c (undo_alignment): unbreak this
11433
11434         * dbus/dbus-auth.c (_dbus_auth_unref): free some stuff we were
11435         leaking
11436         (_dbus_auth_new): fix the order in which we free strings
11437         on OOM failure
11438
11439         * bus/connection.c (bus_connection_disconnected): fix to
11440         not send ServiceDeleted multiple times in case of memory
11441         allocation failure
11442
11443         * dbus/dbus-bus.c (dbus_bus_get_base_service): new function to
11444         get the base service name
11445         (dbus_bus_register_client): don't return base service name,
11446         instead store it on the DBusConnection and have an accessor
11447         function for it.
11448         (dbus_bus_register_client): rename dbus_bus_register()
11449
11450         * bus/dispatch.c (check_hello_message): verify that other
11451         connections on the bus also got the correct results, not
11452         just the one sending hello
11453
11454 2003-03-15  Havoc Pennington  <hp@pobox.com>
11455
11456         Make it pass the Hello handling test including all OOM codepaths.
11457         Now to do other messages...
11458
11459         * bus/services.c (bus_service_remove_owner): fix crash when
11460         removing owner from an empty list of owners
11461         (bus_registry_ensure): don't leave service in the list of
11462         a connection's owned services if we fail to put the service
11463         in the hash table.
11464
11465         * bus/connection.c (bus_connection_preallocate_oom_error): set
11466         error flag on the OOM error.
11467
11468         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
11469         handle _dbus_transport_set_connection failure
11470
11471         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd): modify
11472         to create watches up front and simply enable/disable them as
11473         needed.
11474         (unix_connection_set): this can now fail on OOM
11475
11476         * dbus/dbus-timeout.c, dbus/dbus-watch.c: add concept
11477         of enabling/disabling a watch or timeout.
11478
11479         * bus/loop.c (bus_loop_iterate): don't touch disabled
11480         watches/timeouts
11481
11482         * glib/dbus-gmain.c: adapt to enable/disable watches and timeouts
11483
11484 2003-03-15  Havoc Pennington  <hp@pobox.com>
11485
11486         * bus/dispatch.c (bus_dispatch_test): OK, now finally actually
11487         write useful test code, after all that futzing around ;-)
11488
11489         Test does not yet pass because we can't handle OOM in
11490         _dbus_transport_messages_pending (basically,
11491         dbus_connection_preallocate_send() does not prealloc the write
11492         watch). To fix this, I think we need to add new stuff to
11493         set_watch_functions, namely a SetEnabled function so we can alloc
11494         the watch earlier, then enable it later.
11495
11496         * dbus/Makefile.am (libdbus_convenience_la_SOURCES): move
11497         dbus-memory.c to the convenience lib
11498
11499         * bus/test.c: rename some static functions to keep them clearly
11500         distinct from stuff in connection.c. Handle client disconnection.
11501
11502 2003-03-14  Havoc Pennington  <hp@pobox.com>
11503
11504         * bus/dispatch.c (bus_dispatch_test): do test using debug-pipe
11505         transport, tests more of the real codepath. Set up clients
11506         with bus_setup_debug_client.
11507
11508         * bus/test.c (bus_setup_debug_client): function to set up debug
11509         "clients" on the main loop
11510
11511         * dbus/dbus-transport.c (_dbus_transport_open): add debug-pipe
11512         support
11513
11514         * dbus/dbus-server.c (dbus_server_listen): add debug-pipe
11515         server type
11516
11517         * dbus/dbus-server-debug.c: support a debug server based on pipes
11518
11519         * dbus/dbus-sysdeps.c (_dbus_full_duplex_pipe): new function
11520         (_dbus_close): new function
11521
11522         * configure.in: check for socketpair
11523
11524 2003-03-14  Havoc Pennington  <hp@redhat.com>
11525
11526         * dbus/dbus-memory.c: add a "detect buffer overwrites on free"
11527         cheesy hack
11528
11529         * dbus/dbus-transport-debug.c: rework this a good bit to be
11530         less complicated. hopefully still works.
11531
11532         * dbus/dbus-server-debug.c (handle_new_client): remove timeout
11533         manually
11534
11535         * glib/dbus-gmain.c (timeout_handler): don't remove timeout
11536         after running it
11537
11538         * dbus/dbus-message.c (dbus_message_copy): rename from
11539         dbus_message_new_from_message, fix it up to copy
11540         all the message fields, add test case
11541
11542         * bus/dispatch.c (bus_dispatch_test): add some more test code,
11543         not quite passing yet
11544
11545 2003-03-14  Havoc Pennington  <hp@pobox.com>
11546
11547         * bus/loop.c (bus_loop_iterate): add this so we can "run loop
11548         until no work remains" in test code. (the large diff here
11549         is just code movement, no actual changes)
11550
11551         * dbus/dbus-server-debug.c (DEFAULT_INTERVAL): change interval to
11552         1, no point waiting around for test code.
11553         (_dbus_server_debug_accept_transport): unref the timeout
11554         after adding it (right?)
11555
11556         * dbus/dbus-transport-debug.c (DEFAULT_INTERVAL): ditto
11557
11558 2003-03-13  Havoc Pennington  <hp@redhat.com>
11559
11560         * dbus/dbus-timeout.c (_dbus_timeout_list_set_functions): handle
11561         out of memory
11562
11563         * dbus/dbus-watch.c (_dbus_watch_list_set_functions): handle out
11564         of memory
11565
11566         * dbus/dbus-connection.h: Make AddWatchFunction and
11567         AddTimeoutFunction return a bool so they can fail on out-of-memory
11568
11569         * bus/bus.c (bus_context_new): set up timeout handlers
11570
11571         * bus/connection.c (bus_connections_setup_connection): set up
11572         timeout handlers
11573
11574         * glib/dbus-gmain.c: adapt to the fact that set_functions stuff
11575         can fail
11576
11577         * bus/bus.c (bus_context_new): adapt to changes
11578
11579         * bus/connection.c: adapt to changes
11580
11581         * test/watch.c: adapt to DBusWatch changes
11582
11583         * bus/dispatch.c (bus_dispatch_test): started adding this but
11584         didn't finish
11585
11586 2003-03-14  Anders Carlsson  <andersca@codefactory.se>
11587
11588         * bus/dispatch.c (send_service_nonexistent_error): Fix typo.
11589
11590 2003-03-13  Havoc Pennington  <hp@pobox.com>
11591
11592         * bus/test.c, bus/test.h, bus/Makefile.am, bus/test-main.c:
11593         set up a test framework as for the library
11594
11595 2003-03-12  Havoc Pennington  <hp@pobox.com>
11596
11597         Throughout: purge global variables, introduce BusActivation,
11598         BusConnections, BusRegistry, etc. objects instead.
11599
11600         * bus/bus.h, bus/bus.c: introduce BusContext as a global
11601         message bus object
11602
11603         * test/Makefile.am (TEST_BINARIES): disable bus-test for now,
11604         going to redo this a bit differently I think
11605
11606 2003-03-12  Havoc Pennington  <hp@redhat.com>
11607
11608         Mega-patch that gets the message bus daemon initially handling
11609         out-of-memory. Work still needed. Also lots of random
11610         moving stuff to DBusError instead of ResultCode.
11611
11612         * dbus/dbus-list.c (_dbus_list_length_is_one): new function
11613
11614         * dbus/dbus-connection.c
11615         (dbus_connection_send_with_reply_and_block): use DBusError
11616
11617         * dbus/dbus-bus.c: adapt to API changes, make it use DBusError not
11618         DBusResultCode
11619
11620         * dbus/dbus-connection.c (dbus_connection_send): drop the result
11621         code here, as the only failure possible is OOM.
11622
11623         * bus/connection.c (bus_connection_disconnect):
11624         rename bus_connection_disconnected as it's a notification only
11625
11626         * bus/driver.c (bus_driver_handle_acquire_service): don't free
11627         "name" on get_args failure, should be done by get_args;
11628         don't disconnect client for bad args, just return an error.
11629         (bus_driver_handle_service_exists): ditto
11630
11631         * bus/services.c (bus_services_list): NULL-terminate returned array
11632
11633         * bus/driver.c (bus_driver_send_service_lost)
11634         (bus_driver_send_service_acquired): send messages from driver to a
11635         specific client to the client's unique name, not to the broadcast
11636         service.
11637
11638         * dbus/dbus-message.c (decode_header_data): reject messages that
11639         contain no name field
11640         (_dbus_message_get_client_serial): rename to
11641         dbus_message_get_serial and make public
11642         (_dbus_message_set_serial): rename from set_client_serial
11643         (_dbus_message_set_reply_serial): make public
11644         (_dbus_message_get_reply_serial): make public
11645
11646         * bus/connection.c (bus_connection_foreach): allow stopping
11647         iteration by returning FALSE from foreach function.
11648
11649         * dbus/dbus-connection.c (dbus_connection_send_preallocated)
11650         (dbus_connection_free_preallocated_send)
11651         (dbus_connection_preallocate_send): new API for sending a message
11652         without possibility of malloc failure.
11653         (dbus_connection_send_message): rename to just
11654         dbus_connection_send (and same for whole function family)
11655
11656         * dbus/dbus-errors.c (dbus_error_free): make this reinit the error
11657
11658         * dbus/dbus-sysdeps.c (_dbus_exit): new function
11659
11660         * bus/activation.c: handle/return errors
11661
11662         * dbus/dbus-errors.h: add more DBUS_ERROR #define
11663
11664         * dbus/dbus-sysdeps.c (_dbus_directory_open) (_dbus_file_get_contents)
11665         (_dbus_directory_get_next_file): use DBusError instead of DBusResultCode
11666         (_dbus_result_from_errno): move to this file
11667
11668 2003-03-10  Anders Carlsson  <andersca@codefactory.se>
11669
11670         * dbus/dbus-marshal.c:
11671         (_dbus_marshal_set_string):
11672         Take a length argument so we can marshal the correct string
11673         length.
11674
11675         (_dbus_marshal_dict), (_dbus_demarshal_dict),
11676         (_dbus_marshal_get_arg_end_pos), (_dbus_marshal_validate_arg),
11677         (_dbus_marshal_test):
11678         * dbus/dbus-marshal.h:
11679         Add support for marshalling and demarshalling dicts.
11680
11681         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
11682         Add support for TYPE DICT.
11683
11684         * dbus/dbus-message.c: (set_string_field):
11685         Adjust header padding.
11686
11687         (dbus_message_append_args_valist), (dbus_message_append_dict),
11688         (dbus_message_get_args_valist), (dbus_message_iter_get_arg_type),
11689         (dbus_message_iter_get_dict), (_dbus_message_loader_return_buffer),
11690         (check_message_handling), (check_have_valid_message):
11691         * dbus/dbus-message.h:
11692         Add functions for setting and getting dicts.
11693
11694         * dbus/dbus-protocol.h:
11695         Add DBUS_TYPE_DICT.
11696
11697         * dbus/dbus.h:
11698         Add dbus-dict.h
11699
11700         * doc/dbus-specification.sgml:
11701         Add information about how dicts are marshalled.
11702
11703         * test/data/invalid-messages/dict-with-nil-value.message:
11704         * test/data/invalid-messages/too-short-dict.message:
11705         * test/data/valid-messages/dict-simple.message:
11706         * test/data/valid-messages/dict.message:
11707         Add sample messages containing dicts.
11708
11709 2003-03-08  Anders Carlsson  <andersca@codefactory.se>
11710
11711         * dbus/dbus-dict.h: Add DBUS_END_DECLS.
11712
11713 2003-03-07  Anders Carlsson  <andersca@codefactory.se>
11714
11715         * dbus/Makefile.am:
11716         * dbus/dbus-dict.c: (dbus_dict_entry_free), (dbus_dict_new),
11717         (dbus_dict_get_keys), (insert_entry), (dbus_dict_set_boolean),
11718         (dbus_dict_set_int32), (dbus_dict_set_uint32),
11719         (dbus_dict_set_double), (dbus_dict_set_string),
11720         (dbus_dict_set_boolean_array), (dbus_dict_set_int32_array),
11721         (dbus_dict_set_uint32_array), (dbus_dict_set_double_array),
11722         (dbus_dict_set_string_array), (_dbus_dict_test):
11723         * dbus/dbus-dict.h:
11724         Fix according to comments from Havoc.
11725
11726 2003-03-06  Michael Meeks  <michael@server.home>
11727
11728         * configure.in: if we don't have kde-config, disable have_qt.
11729
11730 2003-03-07  Anders Carlsson  <andersca@codefactory.se>
11731
11732         * dbus/Makefile.am:
11733         Add dbus-dict.[ch]
11734
11735         * dbus/dbus-dict.c: (dbus_dict_entry_free), (dbus_dict_new),
11736         (dbus_dict_ref), (dbus_dict_unref), (dbus_dict_contains),
11737         (dbus_dict_remove), (dbus_dict_get_value_type),
11738         (dbus_dict_get_keys), (dbus_dict_put_boolean),
11739         (dbus_dict_put_int32), (dbus_dict_put_uint32),
11740         (dbus_dict_put_double), (dbus_dict_put_string),
11741         (dbus_dict_put_boolean_array), (dbus_dict_put_int32_array),
11742         (dbus_dict_put_uint32_array), (dbus_dict_put_double_array),
11743         (dbus_dict_put_string_array), (dbus_dict_get_boolean),
11744         (dbus_dict_get_int32), (dbus_dict_get_uint32),
11745         (dbus_dict_get_double), (dbus_dict_get_string),
11746         (dbus_dict_get_boolean_array), (dbus_dict_get_int32_array),
11747         (dbus_dict_get_uint32_array), (dbus_dict_get_double_array),
11748         (dbus_dict_get_string_array), (_dbus_dict_test):
11749         * dbus/dbus-dict.h:
11750         Add DBusDict implementation
11751
11752         * dbus/dbus-test.c: (dbus_internal_do_not_use_run_tests):
11753         * dbus/dbus-test.h:
11754         Add _dbus_dict_test
11755
11756 2003-03-04  Havoc Pennington  <hp@pobox.com>
11757
11758         * test/data/auth/*: adapt to changes
11759
11760         * dbus/dbus-auth-script.c (_dbus_auth_script_run): add
11761         USERID_BASE64 and change USERNAME_BASE64 to put in username not
11762         userid
11763
11764         * dbus/dbus-keyring.c (_dbus_keyring_validate_context): prevent
11765         more stuff from being in a context name, to make the protocol
11766         simpler to deal with
11767
11768         * dbus/dbus-errors.c (dbus_error_has_name): new function
11769         (dbus_error_is_set): new function
11770
11771         * dbus/dbus-auth.c: replace DBUS_STUPID_TEST_MECH auth
11772         with DBUS_COOKIE_SHA1, implement DBUS_COOKIE_SHA1
11773
11774         * dbus/dbus-connection.c (dbus_connection_flush): also read
11775         messages during a flush operation
11776
11777         * dbus/Makefile.am: remove dbus-md5 since it isn't currently used.
11778
11779 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
11780
11781         * configure.in: Check for gethostbyname on Solaris.
11782
11783         * dbus/dbus-transport.c: (_dbus_transport_open):
11784         Remove duplicate "tcp" entry.
11785
11786         * doc/dbus-specification.sgml:
11787         Clarify some things.
11788
11789 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
11790
11791         * dbus/dbus-auth.c: (send_rejected), (process_test_subdir):
11792         * dbus/dbus-keyring.c: (_dbus_keyring_new_homedir),
11793         (_dbus_keyring_test):
11794         * dbus/dbus-md5.c: (_dbus_md5_compute):
11795         * dbus/dbus-sha.c: (_dbus_sha_compute):
11796         Plug memory leaks.
11797
11798 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
11799
11800         * README: Add some things.
11801
11802 2003-03-04  Anders Carlsson  <andersca@codefactory.se>
11803
11804         * dbus/dbus-message.c (dbus_message_append_args_valist): Add a break;
11805         after case DBUS_TYPE_BOOELAN.
11806
11807 2003-03-02  Havoc Pennington  <hp@pobox.com>
11808
11809         * test/break-loader.c (randomly_set_extreme_ints): add test that
11810         sets really huge and small integers
11811
11812         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): add check
11813         that length of boolean array fits in the string, and that
11814         string has room for boolean value in single-bool case.
11815
11816         * dbus/dbus-message-builder.c (_dbus_message_data_load): add
11817         optional value to "ALIGN" command which is what to fill the
11818         alignment with.
11819
11820         * test/data/valid-messages/no-padding.message: add regression
11821         test for the message padding problem
11822
11823 2003-03-02  Havoc Pennington  <hp@pobox.com>
11824
11825         * dbus/dbus-message.c (decode_header_data): fix to always init
11826         message_padding, from Benjamin Dauvergne
11827
11828 2003-03-02  Havoc Pennington  <hp@pobox.com>
11829
11830         * configure.in: 0.5
11831
11832         * NEWS: Update.
11833
11834 2003-03-01  Joe Shaw  <joe@assbarn.com>
11835
11836         * configure.in: Check for "struct cmsgcred" and try to access its
11837         members for BSD-like unices.
11838
11839         * dbus/dbus-sysdeps.c (read_credentials_byte): Fold this back into
11840         _dbus_read_credentials_unix_socket().
11841         (_dbus_read_credentials_unix_socket): Use recvmsg() instead of
11842         read() for reading the credential byte off the unix socket.  Use
11843         struct cmsgcred on systems that support it.
11844
11845 2003-02-27  Alexander Larsson  <alexl@redhat.com>
11846
11847         * glib/Makefile.am:
11848         * configure.in:
11849         Make gthreads-2.0 dependency optional. Don't build thread test if
11850         its not found.
11851
11852 2003-02-27  Havoc Pennington  <hp@pobox.com>
11853
11854         * dbus/dbus-connection.c
11855         (dbus_connection_send_message_with_reply_and_block): fix doh!
11856         doh! doh! bug that resulted in never removing a reply from the
11857         queue, no wonder we called get_reply_serial so much ;-)
11858
11859         * dbus/dbus-message.c (struct DBusMessage): cache reply serial
11860         and client serial instead of demarshaling them every time
11861
11862 2003-02-27  Havoc Pennington  <hp@pobox.com>
11863
11864         * dbus/dbus-marshal.c (_dbus_demarshal_int32): rewrite to be much
11865         more inlined, using dbus-string-private.h, speeds things up
11866         substantially
11867
11868         * dbus/dbus-string.c (_dbus_string_free): apply align offset
11869         when freeing the string
11870         (_dbus_string_steal_data): fix for align offset
11871         (undo_alignment): new function
11872
11873 2003-02-26  Havoc Pennington  <hp@redhat.com>
11874
11875         All kinds of audit fixes from Owen, plus initial attempt to
11876         handle unaligned memory returned from malloc.
11877
11878         * dbus/dbus-string.c (_dbus_string_init): clamp max length to
11879         leave room for align_offset and nul byte
11880         (fixup_alignment): function to track an align_offset and
11881         ensure real->str is aligned
11882         (DBUS_GENERIC_STRING_PREAMBLE): len must be less than allocated,
11883         to allow a nul byte plus align offset
11884         (_dbus_string_lock): fix overflow issue
11885         (_dbus_string_init_const_len): add assertions on sanity of len,
11886         assign allocated to be ALLOCATION_PADDING larger than len
11887         (set_length): fixup the overflow handling
11888         (_dbus_string_get_data_len): fix overflow in assertion
11889         (open_gap): detect overflow in size of gap to be opened
11890         (_dbus_string_lengthen): add overflow check
11891         (_dbus_string_align_length): fix overflow with _DBUS_ALIGN_VALUE
11892         (_dbus_string_append): add overflow check
11893         (_dbus_string_append_unichar): overflow
11894         (_dbus_string_delete): fix overflow in assertion
11895         (_dbus_string_copy_len): overflow in assertion
11896         (_dbus_string_replace_len): overflows in assertions
11897         (_dbus_string_find): change to implement in terms of
11898         _dbus_string_find_to
11899         (_dbus_string_find_to): assorted fixage
11900         (_dbus_string_equal_c_str): assert c_str != NULL,
11901         fix logic so the function works
11902         (_dbus_string_ends_with_c_str): fix overflow thingy
11903         (_dbus_string_base64_encode): overflow fix
11904         (_dbus_string_validate_ascii): overflow
11905         (_dbus_string_validate_nul): overflow
11906
11907 2003-02-26  Havoc Pennington  <hp@redhat.com>
11908
11909         * dbus/dbus-marshal.c (_dbus_marshal_test): fix to work with DISABLE_ASSERTS
11910
11911 2003-02-26  Alexander Larsson  <alexl@redhat.com>
11912
11913         * configure.in:
11914         Set DBUS_GLIB_THREADS_LIBS for apps using gthread-2.0
11915
11916         * dbus/dbus-connection.c:
11917         * dbus/dbus-connection.h:
11918         Fix _dbus_connection_acquire_io_path and _dbus_connection_acquire_dispatch.
11919         Add dbus_connection_set_wakeup_main_function and use it when queueing
11920         incoming and outgoing messages.
11921
11922
11923         * dbus/dbus-dataslot.c:
11924         Threadsafe usage of DBusDataSlotAllocator
11925
11926         * dbus/dbus-message.c: (dbus_message_get_args_iter):
11927         dbus_new can fail.
11928
11929         * dbus/dbus-server-unix.c:
11930         Add todo comment
11931
11932         * glib/dbus-gmain.c:
11933         Implement the new wakeup functions for glib.
11934
11935         * glib/Makefile.am:
11936         * glib/test-thread-client.c:
11937         * glib/test-thread-server.c:
11938         * glib/test-thread.h:
11939         Initial cut at some thread test code. Not really done yet.
11940
11941 2003-02-26  Havoc Pennington  <hp@pobox.com>
11942
11943         * dbus/dbus-connection.c
11944         (dbus_connection_send_message_with_reply_and_block): fix crash
11945         where we ref'd the outgoing message instead of the returned reply
11946
11947         * dbus/dbus-transport-unix.c (do_authentication): check read watch
11948         at the end of this function, so if we didn't need to read for
11949         authentication, we reinstall it for receiving messages
11950
11951         * dbus/dbus-message.c (dbus_message_new_reply): allow replies to
11952         a NULL sender for peer-to-peer case
11953
11954         * dbus/dbus-transport-unix.c (check_read_watch): handle
11955         !authenticated case correctly
11956
11957         * glib/dbus-gmain.c: add support for DBusServer
11958
11959         * dbus/dbus-server.c: add data slot support
11960
11961         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): check
11962         return values and handle errors
11963
11964         * dbus/dbus-dataslot.c: factor out the data slot stuff from
11965         DBusConnection
11966
11967         * Doxyfile.in (INPUT): add glib subdir
11968
11969         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): rename
11970         setup_with_g_main instead of hookup_with_g_main; write docs
11971
11972 2003-02-24  Anders Carlsson  <andersca@codefactory.se>
11973
11974         * dbus/dbus-marshal.c: (_dbus_marshal_validate_arg):
11975         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
11976         * dbus/dbus-message.c: (dbus_message_append_boolean),
11977         (dbus_message_append_boolean_array),
11978         (dbus_message_get_args_valist), (_dbus_message_test):
11979         * dbus/dbus-message.h:
11980         * doc/dbus-specification.sgml:
11981         Various fixes as pointed out by Havoc.
11982
11983         * test/data/invalid-messages/bad-boolean-array.message:
11984         * test/data/invalid-messages/bad-boolean.message:
11985         Add invalid boolean value test cases.
11986
11987 2003-02-24  Anders Carlsson  <andersca@codefactory.se>
11988
11989         * dbus/dbus-internals.c: (_dbus_type_to_string):
11990         * dbus/dbus-marshal.c: (_dbus_marshal_get_arg_end_pos),
11991         (_dbus_marshal_validate_arg):
11992         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
11993         * dbus/dbus-message.c: (dbus_message_append_args_valist),
11994         (dbus_message_append_boolean), (dbus_message_append_boolean_array),
11995         (dbus_message_get_args_valist), (dbus_message_iter_get_boolean),
11996         (dbus_message_iter_get_int32), (dbus_message_iter_get_uint32),
11997         (dbus_message_iter_get_double),
11998         (dbus_message_iter_get_boolean_array), (message_iter_test):
11999         * dbus/dbus-message.h:
12000         * dbus/dbus-protocol.h:
12001         * doc/dbus-specification.sgml:
12002         * test/data/valid-messages/lots-of-arguments.message:
12003         Add support for boolean and boolean array types.
12004
12005 2003-02-23  Havoc Pennington  <hp@pobox.com>
12006
12007         * dbus/dbus-keyring.c: finish most of this implementation and
12008         simple unit test
12009
12010         * dbus/dbus-errors.c (dbus_set_error_const, dbus_set_error): make
12011         these barf if the error isn't cleared to NULL
12012
12013         * dbus/dbus-sysdeps.c (_dbus_delete_file): set error on failure
12014         (_dbus_create_directory): new function
12015
12016         * dbus/dbus-errors.c (dbus_set_error): fix warning
12017
12018         * dbus/dbus-string.c (_dbus_string_hex_encode): new function
12019         (_dbus_string_hex_decode): new function
12020         (test_hex_roundtrip): test code
12021
12022         * dbus/dbus-sha.c (_dbus_sha_compute): use dbus_string_hex_encode
12023
12024         * dbus/dbus-md5.c (_dbus_md5_compute): use dbus_string_hex_encode
12025
12026         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): make this use
12027         the save-to-temp/rename trick to atomically write the new file
12028         (_dbus_string_parse_uint): new function
12029
12030 2003-02-22  Havoc Pennington  <hp@pobox.com>
12031
12032         * test/Makefile.am (dist-hook): fix dist for test/data/sha-1
12033
12034 2003-02-22  Havoc Pennington  <hp@pobox.com>
12035
12036         * dbus/dbus-message.c (dbus_message_iter_get_string_array):
12037         (dbus_message_iter_get_byte_array): Fix up doxygen warnings
12038
12039         * dbus/dbus-sha.c: add implementation of SHA-1 algorithm
12040
12041         * dbus/test/data/sha-1: add US government test suite for SHA-1
12042
12043 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
12044
12045         * dbus/dbus-marshal.c: (_dbus_demarshal_string_array):
12046         Make string arrays NULL-terminated.
12047
12048         * dbus/dbus-memory.c: (dbus_free_string_array):
12049         * dbus/dbus-memory.h:
12050         New function for freeing NULL-terminated string arrays.
12051
12052         * dbus/dbus-message-builder.c: (append_quoted_string),
12053         (_dbus_message_data_load):
12054         Add support for array types.
12055
12056         * dbus/dbus-message.c: (check_message_handling):
12057         Add more types as test cases.
12058
12059         * dbus/dbus-sysdeps.c: (_dbus_string_parse_int),
12060         (_dbus_string_parse_double):
12061         Add the start offset to the end offset.
12062
12063         * test/data/valid-messages/lots-of-arguments.message:
12064         New test message with lots of arguments.
12065
12066 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
12067
12068         * dbus/dbus-message.c: (dbus_message_append_nil),
12069         (dbus_message_append_int32), (dbus_message_append_uint32),
12070         (dbus_message_append_double), (dbus_message_append_string),
12071         (dbus_message_append_int32_array),
12072         (dbus_message_append_uint32_array),
12073         (dbus_message_append_double_array),
12074         (dbus_message_append_byte_array),
12075         (dbus_message_append_string_array):
12076         Fix all out-of-memory handling in these functions.
12077
12078 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
12079
12080         * dbus/dbus-message.c: (dbus_message_append_nil):
12081         Fix a silly.
12082
12083 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
12084
12085         * dbus/dbus-message.c: (dbus_message_append_args_valist),
12086         (dbus_message_append_nil), (dbus_message_append_int32_array),
12087         (dbus_message_append_uint32_array),
12088         (dbus_message_append_double_array),
12089         (dbus_message_append_byte_array),
12090         (dbus_message_append_string_array), (dbus_message_get_args_valist),
12091         (dbus_message_iter_get_int32_array),
12092         (dbus_message_iter_get_uint32_array),
12093         (dbus_message_iter_get_double_array),
12094         (dbus_message_iter_get_byte_array),
12095         (dbus_message_iter_get_string_array):
12096
12097         * dbus/dbus-message.h:
12098         Add functions for appending and getting arrays.
12099
12100 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
12101
12102         * dbus/dbus-mempool.c (_dbus_mem_pool_new): Make the
12103         element size at least 8 bytes, fixes mempool tests on
12104         64-bit machines.
12105
12106 2003-02-20  Alexander Larsson  <alexl@redhat.com>
12107
12108         * dbus/dbus-transport-unix.c (unix_do_iteration):
12109         Unlock the connection mutex during a blocking select call.
12110         Add todo about how we need a way to wake up the select.
12111
12112         * dbus/dbus-connection-internal.h:
12113         * dbus/dbus-connection.c:
12114         Add _dbus_connection_lock and _dbus_connection_unlock.
12115
12116 2003-02-19  Havoc Pennington  <hp@pobox.com>
12117
12118         * Doxyfile.in (PREDEFINED): put DOXYGEN_SHOULD_SKIP_THIS in
12119         Doxyfile.in, not Doxyfile
12120
12121         * dbus/dbus-keyring.c: do some hacking on this
12122
12123         * dbus/dbus-sysdeps.c (_dbus_delete_file): new
12124
12125         * dbus/dbus-errors.c (dbus_set_error_const): do not call
12126         dbus_error_init
12127         (dbus_set_error): remove dbus_error_init, check for message ==
12128         NULL *before* we sprintf into it, and add @todo about including
12129         system headers in this file
12130
12131         * dbus/dbus-sysdeps.c (_dbus_create_file_exclusively): new
12132
12133         * dbus/dbus-errors.h (DBUS_ERROR_FAILED): add
12134
12135         * dbus/dbus-sysdeps.c (get_user_info): break this function out to
12136         get various bits of user information based on either username
12137         or user ID
12138         (_dbus_homedir_from_username): new function
12139
12140 2003-02-19  Anders Carlsson  <andersca@codefactory.se>
12141
12142         * configure.in:
12143         Add check for nonposix getpwnam_r
12144
12145         * dbus/dbus-mempool.c: (_dbus_mem_pool_new):
12146         Align the pool element size to a sizeof (void *) boundary.
12147
12148         * dbus/dbus-sysdeps.c: (_dbus_setenv), (_dbus_connect_unix_socket),
12149         (_dbus_listen_unix_socket), (_dbus_credentials_from_username):
12150         General Solaris fixes.
12151
12152         * test/data/valid-messages/simplest-manual.message:
12153         Explicitly state that we want little-endian packing.
12154
12155 2003-02-19  Mikael Hallendal  <micke@codefactory.se>
12156
12157         * dbus/dbus-server.c (dbus_server_listen): Support tcp: addresses.
12158
12159         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_tcp_socket):
12160         Added to create a transport connecting using a tcp/ip socket.
12161
12162         * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): Added to connect
12163         to a tcp socket at given host and port.
12164         (_dbus_listen_tcp_socket): added to listen on tcp socket for given
12165         hostname and port.
12166
12167         * dbus/dbus-server.c (dbus_server_listen): Support tcp: addresses.
12168
12169         * dbus/dbus-server-unix.c (_dbus_server_new_for_tcp_socket):
12170         Added to create a server listening on a TCP/IP socket.
12171
12172 2003-02-19  Havoc Pennington  <hp@pobox.com>
12173
12174         Throughout: mop up all the Doxygen warnings and undocumented
12175         stuff.
12176
12177         * dbus/dbus-sysdeps.c (do_exec): do not use execvp, we don't want
12178         to search any paths.
12179
12180         * dbus/dbus-threads.c: move global mutex initializers to
12181         dbus-internals.h, multiple prototypes was confusing doxygen
12182         besides being kind of ugly
12183
12184         * Doxyfile (PREDEFINED): have Doxygen define
12185         DOXYGEN_SHOULD_SKIP_THIS so we can exclude things from
12186         docs with #ifndef DOXYGEN_SHOULD_SKIP_THIS
12187         (do not abuse the feature! it's for stuff like the autogenerated
12188         macros in dbus-md5.c, not just for things you don't feel like
12189         documenting...)
12190
12191 2003-02-18  Havoc Pennington  <hp@pobox.com>
12192
12193         * dbus/dbus-string.c (_dbus_string_zero): new function
12194
12195         * dbus/dbus-md5.c: include MD5 implementation by L. Peter Deutsch,
12196         wrap it in some dbus-friendly API
12197
12198         * dbus/dbus-types.h: add 16-bit types
12199
12200 2003-02-18  Joe Shaw  <joe@assbarn.com>
12201
12202         * dbus/dbus-auth.c (handle_server_data_stupid_test_mech): Just get
12203         credentials from our currently running process.
12204         (get_word): Fix a buglet where we were copying the entire length
12205         instead of relative to our position.
12206
12207         * dbus/dbus-hash.c (_dbus_hash_test): Don't try to allocate the
12208         keys on the stack... it's 640k of data.
12209
12210         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): Always
12211         read the credentials byte off the socket, even if we don't have
12212         SO_PEERCRED.
12213         (_dbus_poll): Implement poll() using select() for systems which
12214         don't have it.
12215
12216         * glib/test-dbus-glib.c (main): Print out an error if no
12217         parameters are given.
12218
12219         * test/data/auth/fallback.auth-script: Added.  Tests that a client
12220         can fallback to a secondary auth mechanism if the first fails.
12221
12222 2003-02-18  Havoc Pennington  <hp@pobox.com>
12223
12224         * AUTHORS: add Alex
12225
12226 2003-02-17  Havoc Pennington  <hp@pobox.com>
12227
12228         * doc/dbus-specification.sgml: lots of cosmetic
12229         cleanups/rearrangement, add assorted FIXME, change DBUS_ADDRESS
12230         env variable to DBUS_BUS_ADDRESS, s/client/application/,
12231         s/server/bus/ (except in authentication section). Add a section
12232         "Message Bus Message Routing"
12233
12234 2003-02-17  Anders Carlsson  <andersca@codefactory.se.>
12235
12236         Release 0.4
12237
12238         * NEWS: Update
12239
12240 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
12241
12242         * doc/dbus-specification.sgml:
12243         Specification updates.
12244
12245 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
12246
12247         * bus/activation.c: (bus_activation_init), (child_setup),
12248         (bus_activation_activate_service):
12249         * bus/activation.h:
12250         * bus/main.c: (main):
12251         Set DBUS_ADDRESS environment variable.
12252
12253         * dbus/dbus-errors.c: (dbus_set_error):
12254         Don't use va_copy since that's a C99 feature.
12255
12256         * dbus/dbus-sysdeps.c: (_dbus_setenv), (do_exec),
12257         (_dbus_spawn_async):
12258         * dbus/dbus-sysdeps.h:
12259         Add child_setup_func to _dbus_spawn_async.
12260
12261         * doc/dbus-specification.sgml:
12262         Update specification.
12263
12264         * test/spawn-test.c: (setup_func), (main):
12265         Fix test.
12266
12267 2003-02-17  Alexander Larsson  <alexl@redhat.com>
12268
12269         * dbus/dbus-connection.c (_dbus_connection_handler_destroyed_locked):
12270         Added todo.
12271
12272 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
12273
12274         * doc/.cvsignore:
12275         * doc/Makefile.am:
12276         * doc/dbus-test-plan.sgml:
12277         Add test plan document.
12278
12279         * test/Makefile.am:
12280         Fix distcheck.
12281
12282 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
12283
12284         * dbus/dbus-message.c: (decode_header_data),
12285         (_dbus_message_loader_return_buffer):
12286         Set the header padding amount when loading a message.
12287
12288 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
12289
12290         * bus/dispatch.c: (send_one_message):
12291         Only send broadcast messages to registered connections.
12292
12293         * dbus/dbus-message.c: (dbus_message_name_is):
12294         * dbus/dbus-message.h:
12295         New convenience function.
12296
12297         * dbus/dbus-transport-debug.c: (do_reading):
12298         Only dispatch one message per run.
12299
12300         * test/Makefile.am:
12301         * test/bus-test.c: (new_connection_callback), (die),
12302         (test_hello_client1_handler), (test_hello_client2_handler),
12303         (test_hello_replies), (main):
12304
12305         * test/bus-test-loop.[ch]:
12306         Add these.
12307
12308 2003-02-16  Havoc Pennington  <hp@pobox.com>
12309
12310         * dbus/dbus-connection.c (dbus_connection_dispatch_message): fix
12311         backward conditional
12312
12313 2003-02-16  Alexander Larsson  <alexl@redhat.com>
12314
12315         * dbus/dbus-connection.c:
12316         Implement sent_message_with_reply. (with_reply_and block is still
12317         busted).
12318         Made dispatch_message not lose message if OOM.
12319
12320         * dbus/dbus-errors.h:
12321         Add NoReply error (for reply timeouts).
12322
12323 2003-02-16  Alexander Larsson  <alexl@redhat.com>
12324
12325         * dbus/dbus-hash.c (_dbus_hash_table_unref):
12326         Actually free keys and values when destroying hashtable.
12327
12328 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
12329
12330         * dbus/dbus-auth.c: (client_try_next_mechanism):
12331         Plug a leak.
12332
12333         * dbus/dbus-threads.c: (dbus_condvar_wait_timeout):
12334         Return TRUE if there's no thread implementation around.
12335
12336         * glib/dbus-gmain.c: (free_source),
12337         (dbus_connection_hookup_with_g_main):
12338         Make sure to remove the GSource when the connection is finalized.
12339
12340 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
12341
12342         * bus/dispatch.c: (bus_dispatch_message_handler):
12343         * dbus/dbus-errors.h:
12344         Return an error if someone tries to send a message to a service
12345         that doesn't exist.
12346
12347 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
12348
12349         * bus/activation.c: (load_directory), (bus_activation_init),
12350         (bus_activation_activate_service):
12351         * bus/activation.h:
12352         * bus/driver.c:
12353         (bus_driver_handle_activate_service), (bus_driver_handle_message):
12354         More work on the activation handling.
12355
12356         * dbus/dbus-errors.h:
12357         Add some error messages
12358
12359         * dbus/dbus-message.c: (dbus_message_new_error_reply):
12360         * dbus/dbus-message.h:
12361         New function that creates an error message.
12362
12363         * dbus/dbus-protocol.h:
12364         Add ACTIVATE_SERVER message.
12365
12366         * dbus/dbus-server-unix.c: (unix_handle_watch),
12367         (_dbus_server_new_for_domain_socket):
12368         Call _dbus_fd_set_close_on_exec.
12369
12370         * dbus/dbus-sysdeps.c: (make_pipe), (do_exec),
12371         (_dbus_spawn_async), (_dbus_disable_sigpipe),
12372         (_dbus_fd_set_close_on_exec):
12373         * dbus/dbus-sysdeps.h:
12374         Add _dbus_fd_set_close_on exec function. Also add function that checks
12375         that all open fds are set to close-on-exec and warns otherwise.
12376
12377         * dbus/dbus-transport-unix.c:
12378         (_dbus_transport_new_for_domain_socket):
12379         Call _dbus_fd_set_close_on_exec.
12380
12381 2003-02-16  Havoc Pennington  <hp@pobox.com>
12382
12383         * dbus/dbus-connection.c (dbus_connection_set_change_sigpipe):
12384         allow people to avoid setting SIGPIPE to SIG_IGN
12385         (_dbus_connection_new_for_transport): disable SIGPIPE unless
12386         we've been asked not to
12387
12388 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
12389
12390         * dbus/dbus-list.c: (_dbus_list_append_link),
12391         (_dbus_list_prepend_link):
12392         * dbus/dbus-memory.c: (dbus_malloc), (dbus_malloc0),
12393         (dbus_realloc):
12394         Warning fixes.
12395
12396 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
12397
12398         * bus/Makefile.am:
12399         * bus/activation.c: (bus_activation_entry_free),
12400         (add_desktop_file_entry), (load_directory), (bus_activation_init):
12401         * bus/activation.h:
12402         * bus/main.c: (main):
12403         Add simple activation support, doesn't work yet though.
12404
12405 2003-02-15   Zack Rusin  <zack@kde.org>
12406
12407         * qt/dbus-qthread.cpp:  small casting fix
12408
12409 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
12410
12411         * dbus/dbus-errors.c: (dbus_set_error):
12412         * dbus/dbus-errors.h:
12413         Add a few errors and make dbus_set_error void.
12414
12415         * dbus/dbus-sysdeps.c:
12416         (_dbus_errno_to_string), (close_and_invalidate), (make_pipe),
12417         (write_err_and_exit), (read_ints), (do_exec), (_dbus_spawn_async):
12418         * dbus/dbus-sysdeps.h:
12419         Add _dbus_spawn_async.
12420
12421         * test/spawn-test.c: (main):
12422         Test for _dbus_spawn_async.
12423
12424 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
12425
12426         * dbus/dbus-internals.h:
12427         Fix build without tests.
12428
12429         * dbus/dbus-list.c: (alloc_link):
12430         Fix a segfault when a malloc fails.
12431
12432         * dbus/dbus-memory.c: (initialize_malloc_debug), (dbus_malloc),
12433         (dbus_malloc0), (dbus_realloc):
12434         Add support for malloc debugging.
12435
12436 2003-02-15  Alexander Larsson  <alexl@redhat.com>
12437
12438         * dbus/dbus-threads.c:
12439         * dbus/dbus-threads.h:
12440         Add condvars. Remove static mutext from API.
12441         Implement static mutexes by initializing them from threads_init.
12442
12443         * glib/dbus-gthread.c:
12444         * qt/dbus-qthread.cpp:
12445         Update with the thread api changes.
12446
12447
12448         * dbus/dbus-list.c:
12449         * dbus/dbus-list.h:
12450         Turn StaticMutex into normal mutex + init function.
12451         Export new functions _dbus_list_alloc_link, _dbus_list_free_link,
12452         _dbus_list_append_link, _dbus_list_prepend_link
12453
12454
12455         * dbus/dbus-sysdeps.c:
12456         * dbus/dbus-sysdeps.h:
12457         New type dbus_atomic_t, and new functions _dbus_atomic_inc,
12458         _dbus_atomic_dec. Only slow fallback implementation at the moment.
12459
12460         * dbus/dbus-protocol.h:
12461         Add DBUS_MESSAGE_LOCAL_DISCONNECT define
12462
12463         * dbus/dbus-message.c:
12464         Make ref/unref atomic.
12465         Fix some docs.
12466
12467         * dbus/dbus-connection-internal.h:
12468         * dbus/dbus-connection.c:
12469         * dbus/dbus-connection.h:
12470         Make threadsafe.
12471         Change _peek to _borrow,_return & _steal_borrowed.
12472         Change disconnect callback to event.
12473         Make dbus_connection_dispatch_messages reentrant.
12474
12475         * dbus/dbus-transport.c:
12476         Don't ref the connection on calls to the transport
12477         implementation.
12478
12479         * dbus/dbus-message-handler.c:
12480         Make threadsafe.
12481
12482         * glib/dbus-gmain.c:
12483         Don't use peek_message anymore
12484
12485         * test/Makefile.am:
12486         * test/debug-thread.c:
12487         * test/debug-thread.h:
12488         Simple thread implementation that asserts() on deadlocks in
12489         single-threaded code.
12490
12491         * test/bus-test.c:
12492         (main) Call debug_threads_init.
12493
12494         * test/watch.c:
12495         Use disconnect message instead of disconnect callback.
12496
12497         * bus/connection.c:
12498         * bus/connection.h:
12499         Don't call dbus_connection_set_disconnect_function. Instead export
12500         bus_connection_disconnect.
12501
12502         * bus/dispatch.c:
12503         Call bus_connection_disconnect when we get a disconnected message.
12504
12505 2003-02-15  Havoc Pennington  <hp@pobox.com>
12506
12507         * dbus/dbus-message.c (dbus_message_new): fool around with the
12508         docs
12509
12510 2003-02-14  Havoc Pennington  <hp@pobox.com>
12511
12512         * dbus/dbus-mempool.c: fail if the debug functions so indicate
12513
12514         * dbus/dbus-memory.c: fail if the debug functions indicate we
12515         should
12516
12517         * dbus/dbus-internals.c (_dbus_set_fail_alloc_counter)
12518         (_dbus_decrement_fail_alloc_counter): debug functions to
12519         simulate memory allocation failures
12520
12521 2003-02-14  Havoc Pennington  <hp@pobox.com>
12522
12523         * dbus/dbus-errors.h (struct DBusError): add a word of padding
12524         to DBusError
12525
12526 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12527
12528         * bus/driver.c: (bus_driver_handle_hello):
12529         * bus/driver.h:
12530         * bus/services.c: (bus_service_lookup):
12531         Reorder message sending so we get a more sane order.
12532
12533         * test/bus-test.c: (message_handler):
12534         Fix tyop.
12535
12536 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12537
12538         * bus/driver.c: (bus_driver_send_service_deleted),
12539         (bus_driver_send_service_created), (bus_driver_send_service_lost),
12540         (bus_driver_send_service_acquired), (bus_driver_handle_hello),
12541         (bus_driver_send_welcome_message),
12542         (bus_driver_handle_list_services),
12543         (bus_driver_handle_acquire_service),
12544         (bus_driver_handle_service_exists):
12545         * dbus/dbus-bus.c: (dbus_bus_register_client),
12546         (dbus_bus_acquire_service), (dbus_bus_service_exists):
12547         * dbus/dbus-errors.c: (dbus_result_to_string):
12548         * dbus/dbus-errors.h:
12549         * dbus/dbus-message.c: (dbus_message_append_args),
12550         (dbus_message_append_args_valist), (dbus_message_get_args),
12551         (dbus_message_get_args_valist), (dbus_message_get_args_iter),
12552         (dbus_message_iter_get_arg_type), (dbus_message_iter_get_string),
12553         (dbus_message_iter_get_byte_array),
12554         (dbus_message_iter_get_string_array), (message_iter_test),
12555         (check_message_handling), (_dbus_message_test):
12556         * dbus/dbus-message.h:
12557         * test/bus-test.c: (main):
12558         Change fields to arguments in messages, so that they won't be
12559         confused with header fields.
12560
12561         * glib/test-dbus-glib.c: (main):
12562         Remove append_fields from hello message.
12563
12564 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12565
12566         * dbus/dbus-errors.c:
12567         * dbus/dbus-message.c:
12568         * dbus/dbus-string.c:
12569         Documentation fixes.
12570
12571 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12572
12573         * glib/dbus-gmain.c: (timeout_handler), (add_timeout),
12574         (remove_timeout):
12575         Implement support for timeouts in dbus-glib.
12576
12577 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12578
12579         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
12580         * dbus/dbus-message.c: (process_test_subdir):
12581         * test/break-loader.c: (find_breaks_based_on):
12582         Plug some memory leaks.
12583
12584 2003-02-13  Richard Hult  <rhult@codefactory.se>
12585
12586         * bus/main.c: Fix build.
12587
12588         * dbus/dbus-errors.h:
12589         * dbus/dbus-errors.c: Fix copyright for Anders.
12590
12591 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12592
12593         * bus/Makefile.am:
12594         Add utils.[ch]
12595
12596         * bus/connection.c: (bus_connection_foreach):
12597         Fix a warning.
12598
12599         * bus/desktop-file.c: (grow_lines_in_section), (grow_sections),
12600         (unescape_string), (new_section), (parse_section_start),
12601         (parse_key_value), (report_error), (bus_desktop_file_load),
12602         (bus_desktop_file_get_string):
12603         * bus/desktop-file.h:
12604         Use DBusError for error reporting.
12605
12606         * bus/dispatch.c: (send_one_message),
12607         (bus_dispatch_message_handler):
12608         * bus/driver.c: (bus_driver_send_service_deleted),
12609         (bus_driver_send_service_created), (bus_driver_send_service_lost),
12610         (bus_driver_send_service_acquired), (bus_driver_handle_hello),
12611         (bus_driver_send_welcome_message),
12612         (bus_driver_handle_list_services),
12613         (bus_driver_handle_acquire_service),
12614         (bus_driver_handle_service_exists):
12615         * bus/loop.c: (bus_loop_run):
12616         * bus/main.c:
12617         Use BUS_HANDLE_OOM instead of _DBUS_HANDLE_OOM.
12618
12619         * bus/utils.c: (bus_wait_for_memory):
12620         * bus/utils.h:
12621         New files with general utility functions.
12622
12623         * dbus/dbus-internals.h:
12624         Remove _DBUS_HANDLE_OOM.
12625
12626 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12627
12628         * dbus/dbus-errors.c: (dbus_result_to_string), (dbus_error_init),
12629         (dbus_error_free), (dbus_set_error_const), (dbus_set_error):
12630         * dbus/dbus-errors.h:
12631         Add DBusError structure.
12632
12633 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12634
12635         * test/data/valid-messages/standard-acquire-service.message:
12636         * test/data/valid-messages/standard-hello.message:
12637         * test/data/valid-messages/standard-list-services.message:
12638         * test/data/valid-messages/standard-service-exists.message:
12639         Add some standard messages.
12640
12641 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12642
12643         * bus/driver.c: (bus_driver_send_welcome_message),
12644         (bus_driver_handle_list_services),
12645         (bus_driver_handle_acquire_service),
12646         (bus_driver_handle_service_exists), (bus_driver_handle_message):
12647         Update for API changes in libdbus.
12648
12649         * dbus/dbus-message.c: (dbus_message_new_reply):
12650         * dbus/dbus-message.h:
12651         Remove the name argument. The spec states that replies shouldn't
12652         have a name.
12653
12654 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12655
12656         * bus/desktop-file.c: (parse_section_start), (parse_key_value),
12657         (report_error), (bus_desktop_file_load), (lookup_section),
12658         (lookup_line), (bus_desktop_file_get_raw),
12659         (bus_desktop_file_get_string):
12660         * bus/desktop-file.h:
12661         Some fixes, and new functions for getting a key value from a section.
12662
12663 2003-02-13  Havoc Pennington  <hp@pobox.com>
12664
12665         * test/data/auth/fail-after-n-attempts.auth-script: new test
12666
12667         * dbus/dbus-auth.c (send_rejected): shutdown_mech() when we
12668         reject the client.
12669
12670 2003-02-13  Havoc Pennington  <hp@pobox.com>
12671
12672         * dbus/dbus-auth.c (handle_server_data_external_mech): args to
12673         dbus_credentials_match were backward
12674
12675         * dbus/dbus-auth-script.c (_dbus_auth_script_run): support
12676         NO_CREDENTIALS and ROOT_CREDENTIALS
12677
12678         * dbus/dbus-auth.c (_dbus_auth_do_work): move get_state() routine
12679         into here. Never process more commands after we've reached an
12680         end state; store further data as unused bytes.
12681
12682         * test/data/auth/*: add more auth tests
12683
12684         * dbus/dbus-auth-script.c (_dbus_auth_script_run): support EXPECT
12685         command to match exact string and EXPECT_UNUSED to match unused
12686         bytes
12687
12688         * test/Makefile.am (dist-hook): fix to dist all the test stuff
12689
12690 2003-02-12  Havoc Pennington  <hp@pobox.com>
12691
12692         * dbus/dbus-string.c (_dbus_string_pop_line): fix to also strip
12693         \r off of popped lines
12694
12695         * dbus/dbus-auth.c (_dbus_auth_test): write code to run auth
12696         scripts
12697
12698         * dbus/dbus-auth-script.c (_dbus_auth_script_run): when doing a
12699         SEND, append \r\n
12700
12701 2003-02-12  Havoc Pennington  <hp@pobox.com>
12702
12703         * dbus/Makefile.am: remove break-loader from the build, since it
12704         moved.
12705
12706         * configure.in: add --enable-gcov to turn on coverage profiling
12707         flags and disable optimization
12708
12709 2003-02-10  Havoc Pennington  <hp@pobox.com>
12710
12711         * dbus/dbus-auth-script.c, dbus/dbus-auth-script.h: sync
12712         initial cut at test framework for DBusAuth from laptop.
12713         Doesn't quite work yet but it compiles and I need to get
12714         it off the 266mhz laptop. ;-)
12715
12716         * dbus/dbus-server-debug.c (_dbus_server_debug_accept_transport):
12717         fix a memleak in error case
12718
12719 2003-02-12  Anders Carlsson  <andersca@codefactory.se>
12720
12721         * bus/Makefile.am:
12722         * bus/desktop-file.c:
12723         * bus/desktop-file.h:
12724         Add a desktop file parser.
12725
12726 2003-02-11  Zack Rusin  <zack@kde.org>
12727
12728         * qt/message.[h|cpp]: sample implementation
12729         of the KDE wrapper for DBusMessage
12730
12731 2003-02-09  Zack Rusin  <zack@kde.org>
12732
12733         * test/bus-test.c: make_it_compile
12734         * doc/dbus-specification.sgml: minimal semantic fix
12735
12736 2003-02-06  Anders Carlsson  <andersca@codefactory.se>
12737
12738         Release 0.3
12739
12740         * NEWS: Update
12741
12742 2003-02-06  Anders Carlsson  <andersca@codefactory.se>
12743
12744         * dbus/Makefile.am:
12745         * dbus/dbus-break-loader.c:
12746         * test/Makefile.am:
12747         * test/break-loader.c:
12748         Move dbus-break-loader to test/ and rename it to break-loader.
12749
12750 2003-02-02  Havoc Pennington  <hp@pobox.com>
12751
12752         * dbus/dbus-keyring.c, dbus/dbus-keyring.h: template files
12753         for code to manage cookies in your home directory
12754
12755         * dbus/dbus-sysdeps.c (_dbus_generate_random_bytes): new function
12756
12757         * dbus/dbus-auth.c (get_state): impose a maximum number of tries
12758         to authenticate, then disconnect the client.
12759
12760 2003-02-03  Alexander Larsson  <alexl@redhat.com>
12761
12762         * dbus/dbus-message.c (dbus_message_append_fields):
12763         Correct docs.
12764
12765 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
12766
12767         * doc/dbus-specification.sgml:
12768         Update address format section.
12769
12770 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
12771
12772         * test/Makefile.am:
12773         * test/bus-test.c: (get_time), (add_timeout), (remove_timeout),
12774         (message_handler), (new_connection_callback), (loop_quit),
12775         (loop_run), (main):
12776         Add bus test.
12777
12778 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
12779
12780         * bus/driver.c: (bus_driver_handle_service_exists):
12781         Simplify the code a bit.
12782
12783         * dbus/dbus-bus.c: (dbus_bus_service_exists):
12784         Fix a silly.
12785
12786 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
12787
12788         * bus/Makefile.am:
12789         Add libdbus-daemon.la and link to it.
12790
12791 2003-02-01  James Willcox  <jwillcox@gnome.org>
12792
12793         * bus/driver.c: (bus_driver_handle_own_service):
12794         Actually include the service reply code in the message.
12795
12796 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
12797
12798         * bus/driver.c: (bus_driver_handle_service_exists):
12799         Don't unref the incoming message.
12800
12801 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
12802
12803         * dbus/dbus.h: Add dbus-address.h and dbus-bus.h
12804
12805 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
12806
12807         * dbus/dbus-server.c: (dbus_server_listen):
12808         * dbus/dbus-transport.c: (_dbus_transport_open):
12809         ifdef out the calls to the debug transport and server.
12810
12811 2003-02-02  Alexander Larsson  <alexl@redhat.com>
12812
12813         * dbus/dbus-watch.c (dbus_watch_get_flags):
12814         Add note in the docs that ERROR or HANGUP won't be returned
12815         and are assumed always on.
12816
12817         * glib/dbus-gmain.c (add_watch):
12818         Always add IO_ERR | IO_HUP
12819
12820         * dbus/dbus-message.h:
12821         Add semicolon after dbus_message_iter_get_string_array().
12822         Makes qt code build again
12823
12824 2003-02-01  Anders Carlsson  <andersca@codefactory.se>
12825
12826         * bus/driver.c: (create_unique_client_name),
12827         (bus_driver_handle_hello):
12828         Don't take a name, just use a numeric id to identify
12829         each client.
12830
12831         * dbus/Makefile.am:
12832         * dbus/dbus-bus.c: (dbus_bus_register_client),
12833         (dbus_bus_acquire_service), (dbus_bus_service_exists):
12834         * dbus/dbus-bus.h:
12835         Add new convenience functions for communicating with the bus.
12836
12837         * dbus/dbus-message.h:
12838
12839         * dbus/dbus-protocol.h:
12840         Fix a typo.
12841
12842 2003-02-01  Alexander Larsson  <alexl@redhat.com>
12843
12844         * dbus/dbus-message.c (dbus_message_append_fields):
12845         Add some more doc comments.
12846
12847 2003-02-01  Havoc Pennington  <hp@pobox.com>
12848
12849         * dbus/dbus-break-loader.c (randomly_modify_length): change
12850         a 4-byte value in the message as if it were a length
12851
12852         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): don't set
12853         execute bit on saved files
12854
12855 2003-02-01  Havoc Pennington  <hp@pobox.com>
12856
12857         * dbus/dbus-break-loader.c (main): new program to find messages
12858         that break the loader.
12859
12860         * dbus/dbus-sysdeps.c (_dbus_string_append_uint): new function
12861         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): new function
12862
12863         * dbus/dbus-string.c (_dbus_string_set_byte): new
12864
12865 2003-01-31  Havoc Pennington  <hp@pobox.com>
12866
12867         * dbus/dbus-message.c: refactor the test code to be more general,
12868         in preparation for writing a "randomly permute test cases to
12869         try to break the loader" program.
12870
12871 2003-01-31  Havoc Pennington  <hp@pobox.com>
12872
12873         * doc/dbus-specification.sgml: work on the specification
12874
12875         * dbus/dbus-message.c (_dbus_message_loader_return_buffer): check
12876         the protocol version of the message.
12877
12878         * dbus/dbus-protocol.h: drop special _REPLY names, the spec
12879         no longer specifies that.
12880         (DBUS_SERVICE_REPLY_SERVICE_EXISTS): fix flags (1/2/4/8 not
12881         1/2/3/4)
12882
12883         * dbus/dbus-marshal.c (_dbus_marshal_get_arg_end_pos): add missing
12884         "break" for DBUS_TYPE_NIL, remove @todo
12885
12886 2003-01-31  Havoc Pennington  <hp@pobox.com>
12887
12888         * dbus/dbus-message.c (dbus_message_set_is_error_reply): rename
12889         just set_is_error/get_is_error as this is a commonly-used
12890         function, and write docs.
12891
12892 2003-01-31  Anders Carlsson  <andersca@codefactory.se>
12893
12894         * dbus/dbus-address.c: (dbus_address_entry_free):
12895         Free key and value lists.
12896
12897         * dbus/dbus-internals.c: (_dbus_type_to_string):
12898         Add the types we didn't have.
12899
12900         * dbus/dbus-marshal.c: (_dbus_marshal_get_arg_end_pos),
12901         (_dbus_marshal_validate_arg):
12902         Add NIL types.
12903
12904         * dbus/dbus-message.c: (dbus_message_set_sender):
12905         Remove todo about being able to set sender to NULL.
12906
12907         (dbus_message_set_is_error_reply),
12908         (dbus_message_get_is_error_reply):
12909         * dbus/dbus-message.h:
12910         New functions.
12911
12912         * dbus/dbus-protocol.h:
12913         Add error reply flag.
12914
12915         * test/data/valid-messages/opposite-endian.message:
12916         Add NIL type to test.
12917
12918 2003-01-31  Havoc Pennington  <hp@pobox.com>
12919
12920         * doc/dbus-specification.sgml: fully specify the header.  Add
12921         flags and major protocol version, and change header/body len to
12922         unsigned.
12923
12924         * dbus/dbus-message-builder.c (append_saved_length): append length
12925         as uint32
12926
12927         * dbus/dbus-message.c (dbus_message_create_header): change header
12928         length and body length to unsigned. Add the new fields from the
12929         spec
12930         (_dbus_message_loader_return_buffer): unsigned header/body len
12931
12932 2003-01-30  Havoc Pennington  <hp@pobox.com>
12933
12934         * dbus/dbus-auth.c: rework to use only REJECTED, no
12935         MECHANISMS
12936
12937         * doc/dbus-sasl-profile.txt: drop MECHANISMS and just
12938         use REJECTED, suggested by Mark McLoughlin
12939
12940 2003-01-30  Havoc Pennington  <hp@pobox.com>
12941
12942         * dbus/dbus-server.c (dbus_server_listen): @todo about how we need
12943         a better way to report errors here. e.g.  "unix address lacks
12944         path" or something. also "no such file" when the path doesn't
12945         exist, etc.
12946
12947         * dbus/dbus-address.c (dbus_address_entries_free): add @todo about
12948         leaking list nodes
12949         (dbus_parse_address): add @todo about documenting address format,
12950         and allowing , and ; to be escaped
12951
12952 2003-01-30  Anders Carlsson  <andersca@codefactory.se>
12953
12954         * dbus/Makefile.am:
12955         Add dbus-address.[ch]
12956
12957         * dbus/dbus-address.c: (dbus_address_entry_free),
12958         (dbus_address_entries_free), (create_entry),
12959         (dbus_address_entry_get_method), (dbus_address_entry_get_value),
12960         (dbus_parse_address), (_dbus_address_test):
12961         * dbus/dbus-address.h:
12962         New files for dealing with address parsing.
12963
12964         * dbus/dbus-connection.c:
12965         Document timeout functions.
12966
12967         * dbus/dbus-message.c:
12968         Document dbus_message_new_from_message.
12969
12970         * dbus/dbus-server-debug.c:
12971         Document.
12972
12973         * dbus/dbus-server.c: (dbus_server_listen):
12974         Parse address and use correct server implementation.
12975
12976         * dbus/dbus-string.c: (_dbus_string_find_to), (_dbus_string_test):
12977         * dbus/dbus-string.h:
12978         New function with test.
12979
12980         * dbus/dbus-test.c: (dbus_internal_symbol_do_not_use_run_tests):
12981         * dbus/dbus-test.h:
12982         Add address tests.
12983
12984         * dbus/dbus-transport-debug.c:
12985         Document.
12986
12987         * dbus/dbus-transport.c: (_dbus_transport_open):
12988         Parse address and use correct transport implementation.
12989
12990 2003-01-30  Havoc Pennington  <hp@pobox.com>
12991
12992         * dbus/dbus-message.c: use message->byte_order instead of
12993         DBUS_COMPILER_BYTE_ORDER throughout.
12994         (dbus_message_create_header): pad header to align the
12995         start of the body of the message to 8-byte boundary
12996
12997         * dbus/dbus-marshal.h: make all the demarshalers take const
12998         DBusString arguments.
12999
13000         * dbus/dbus-message.c (_dbus_message_loader_return_buffer):
13001         validate message args here, so we don't have to do slow validation
13002         later, and so we catch bad messages as they are incoming. Also add
13003         better checks on header_len and body_len. Also fill in
13004         message->byte_order
13005
13006         * dbus/dbus-string.c (_dbus_string_validate_utf8): new (not
13007         implemented properly)
13008         (_dbus_string_validate_nul): new function to check all-nul
13009
13010         * dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): rename
13011         get_arg_end_pos and remove all validation
13012         (_dbus_marshal_validate_arg): actually do validation here.
13013
13014 2003-01-29  Havoc Pennington  <hp@pobox.com>
13015
13016         * dbus/dbus-message.c (check_message_handling): fix assertion
13017         failure on set_client_serial
13018
13019 2003-01-28  Havoc Pennington  <hp@pobox.com>
13020
13021         * dbus/dbus-server-debug.c: Add doc section comments
13022
13023         * dbus/dbus-transport-debug.c: add doc section comments
13024
13025 2003-01-28  Havoc Pennington  <hp@redhat.com>
13026
13027         * dbus/dbus-string.c (_dbus_string_base64_decode): append bytes in
13028         the reverse order from how I had it
13029         (_dbus_string_base64_encode): reverse encoding order. I was
13030         basically byteswapping everything during encoding.
13031
13032 2003-01-28  Anders Carlsson  <andersca@codefactory.se>
13033
13034         * dbus/dbus-connection-internal.h:
13035         * dbus/dbus-connection.c: (_dbus_connection_add_timeout),
13036         (_dbus_connection_remove_timeout):
13037         Add functions for adding and removing timeouts.
13038
13039         * dbus/dbus-message.c: (dbus_message_new_from_message):
13040         Add new function that takes a message and creates an exact
13041         copy of it, but with the refcount set to 1.
13042         (check_message_handling):
13043         Fix build error.
13044
13045         * dbus/dbus-server-protected.h:
13046         * dbus/dbus-server.c: (_dbus_server_init_base),
13047         (_dbus_server_finalize_base), (_dbus_server_add_timeout),
13048         (dbus_server_set_timeout_functions):
13049         (_dbus_server_remove_timeout):
13050         New functions so that a server can add and remove timeouts.
13051
13052         (dbus_server_listen):
13053         Add commented out call to dbus_server_debug_new.
13054
13055         * dbus/dbus-timeout.c: (_dbus_timeout_new):
13056         Actually set the handler, doh.
13057
13058         * dbus/dbus-transport.c: (_dbus_transport_open):
13059         Add commented out call to dbus_transport_debug_client_new.
13060
13061         * dbus/Makefile.am:
13062         Add dbus-transport-debug.[ch] and dbus-server-debug.[ch]
13063
13064 2003-01-28  Havoc Pennington  <hp@pobox.com>
13065
13066         * dbus/dbus-message.c (check_message_handling): function to check
13067         on the loaded message, iterates over it etc.
13068
13069 2003-01-28  Havoc Pennington  <hp@pobox.com>
13070
13071         * test/Makefile.am (dist-hook): fix make distdir
13072
13073         * dbus/Makefile.am (TESTS_ENVIRONMENT): fix make check
13074
13075 2003-01-27  Havoc Pennington  <hp@pobox.com>
13076
13077         * dbus/dbus-mempool.c (time_for_size): replace printf with
13078         _dbus_verbose
13079
13080         * dbus/dbus-message-builder.c (_dbus_message_data_load): allow
13081         empty lines; fix the SAVE_LENGTH stuff to be
13082         START_LENGTH/END_LENGTH so it actually works; couple other
13083         bugfixes
13084
13085         * test/Makefile.am (dist-hook): add dist-hook for .message files
13086
13087         * dbus/dbus-string.c (DBUS_STRING_COPY_PREAMBLE): source of a copy
13088         can be constant or locked.
13089         (_dbus_string_free): allow freeing a const string as
13090         documented/intended
13091
13092         * dbus/dbus-sysdeps.c (_dbus_concat_dir_and_file): utility
13093
13094         * dbus/dbus-test-main.c (main): take an argument which is the
13095         directory containing test data
13096
13097         * dbus/dbus-message.c (_dbus_message_test): pass a test_data_dir
13098         argument to this and load all the messages in test/data/
13099         checking that they can be loaded or not loaded as appropriate.
13100
13101 2003-01-27  Anders Carlsson  <andersca@codefactory.se>
13102
13103         * bus/dispatch.c: (bus_dispatch_message_handler):
13104         Dispatch messages sent to services.
13105
13106         * bus/driver.c: (bus_driver_send_service_deleted),
13107         (bus_driver_send_service_created), (bus_driver_send_service_lost),
13108         (bus_driver_send_service_acquired):
13109         Add helper functions for sending service related messages.
13110
13111         (bus_driver_send_welcome_message):
13112         Send HELLO_REPLY instead of WELCOME.
13113
13114         (bus_driver_handle_list_services):
13115         Send LIST_SERVICES_REPLY instead of SERVICES.
13116
13117         (bus_driver_handle_own_service),
13118         (bus_driver_handle_service_exists):
13119         New message handlers.
13120
13121         (bus_driver_handle_message):
13122         Invoke new message handlers.
13123
13124         (bus_driver_remove_connection):
13125         Don't remove any services here since that's done automatically
13126         by bus_service_remove_owner now.
13127
13128         * bus/driver.h:
13129         New function signatures.
13130
13131         * bus/services.c: (bus_service_add_owner):
13132         Send ServiceAcquired message if we're the only primary owner.
13133
13134         (bus_service_remove_owner):
13135         Send ServiceAcquired/ServiceLost messages.
13136
13137         (bus_service_set_prohibit_replacement),
13138         (bus_service_get_prohibit_replacement):
13139         Functions for setting prohibit replacement.
13140
13141         (bus_service_has_owner):
13142         New function that checks if a connection is in the owner queue of
13143         a certain service.
13144
13145         * bus/services.h:
13146         Add new function signatures.
13147
13148         * dbus/dbus-list.c: (_dbus_list_test):
13149         Add tests for _dbus_list_remove_last and traversing the list backwards.
13150
13151         * dbus/dbus-list.h:
13152         Fix a typo in _dbus_list_get_prev_link, if we're at the first element we can't
13153         go any further, so return NULL then.
13154
13155         * dbus/dbus-protocol.h:
13156         Add new messages, service flags and service replies.
13157
13158 2003-01-26  Havoc Pennington  <hp@pobox.com>
13159
13160         * dbus/dbus-message-builder.c: implement, completely untested.
13161
13162         * test/data/*: add data to be used in testing.
13163         ".message" files are our simple loadable text format.
13164         ".message-raw" will be binary dumps of messages.
13165
13166         * dbus/dbus-string.c (_dbus_string_starts_with_c_str): new
13167
13168 2003-01-26  Havoc Pennington  <hp@pobox.com>
13169
13170         * dbus/dbus-sysdeps.c (_dbus_file_get_contents): new function
13171
13172         * dbus/dbus-errors.c (dbus_result_to_string): add
13173         file errors
13174
13175         * dbus/dbus-message-builder.c: new file, will contain code to load
13176         up messages from files. Not implemented yet.
13177
13178 2003-01-26  Havoc Pennington  <hp@pobox.com>
13179
13180         * dbus/dbus-message.c (dbus_message_set_sender): support deleting
13181         the sender by setting to NULL
13182
13183 2003-01-26  Havoc Pennington  <hp@pobox.com>
13184
13185         The unit tests pass, but otherwise untested.  If it breaks, the
13186         tests should have been better. ;-)
13187
13188         * bus/driver.c (bus_driver_handle_hello): return if we disconnect
13189         the connection.
13190
13191         * dbus/dbus-message.c: redo everything so we maintain
13192         message->header as the only copy of the various fields.
13193         This avoids the possibility of out-of-memory in some cases,
13194         for example dbus_message_lock() can't run out of memory anymore,
13195         and avoids extra copying. Figured I may as well go ahead and do
13196         this since it was busted for dbus_message_lock to not return
13197         failure on OOM, and dbus_message_write_header was totally
13198         unchecked for OOM. Also fixed some random other bugs.
13199
13200         * dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): verify
13201         that strings are nul-terminated. Also, end_pos can be equal
13202         to string length just not greater than, I think.
13203         (_dbus_marshal_set_int32): new function
13204         (_dbus_marshal_set_uint32): new function
13205         (_dbus_marshal_set_string): new function
13206
13207         * dbus/dbus-connection.c (_dbus_connection_new_for_transport): fix
13208         a warning, init timeout_list to NULL
13209         (dbus_connection_send_message): don't use uninitialized variable
13210         "serial"
13211
13212         * dbus/dbus-string.c (_dbus_string_replace_len): new function
13213
13214 2003-01-26  Anders Carlsson  <andersca@codefactory.se>
13215
13216         * bus/driver.c: (bus_driver_handle_hello),
13217         (bus_driver_send_welcome_message):
13218         Plug leaks
13219
13220 2003-01-26  Anders Carlsson  <andersca@codefactory.se>
13221
13222         * dbus/dbus-auth.c: (process_auth), (_dbus_auth_unref):
13223         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport),
13224         (dbus_connection_unref):
13225         * dbus/dbus-marshal.c: (_dbus_marshal_test):
13226         * dbus/dbus-message.c: (dbus_message_unref),
13227         Plug memory leaks.
13228
13229         (dbus_message_get_fields):
13230         Remove debugging printout.
13231
13232         (_dbus_message_loader_return_buffer):
13233         Don't store the header string.
13234
13235         (_dbus_message_test):
13236         Plug leaks.
13237
13238 2003-01-26  Richard Hult  <rhult@codefactory.se>
13239
13240         * glib/dbus-gmain.c (dbus_connection_dispatch): Traverse a copy of
13241         the file descriptor list, since it can change under us.
13242
13243 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
13244
13245         * glib/dbus-gmain.c: (dbus_connection_prepare),
13246         (dbus_connection_check), (dbus_connection_dispatch), (add_watch),
13247         (remove_watch), (dbus_connection_hookup_with_g_main):
13248         Rewrite the glib handling to use its own GSource instead of a
13249         GIOChannel so we can catch messages put in the queue while waiting
13250         for a reply.
13251
13252 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
13253
13254         * bus/Makefile.am:
13255         * bus/connection.c: (connection_disconnect_handler),
13256         (connection_watch_callback), (bus_connection_setup):
13257         * bus/dispatch.c: (send_one_message),
13258         (bus_dispatch_broadcast_message), (bus_dispatch_message_handler),
13259         (bus_dispatch_add_connection), (bus_dispatch_remove_connection):
13260         * bus/dispatch.h:
13261         * bus/driver.c: (bus_driver_send_service_deleted),
13262         (bus_driver_send_service_created), (bus_driver_handle_hello),
13263         (bus_driver_send_welcome_message),
13264         (bus_driver_handle_list_services), (bus_driver_remove_connection),
13265         (bus_driver_handle_message):
13266         * bus/driver.h:
13267         Refactor code, put the message dispatching in its own file. Use
13268         _DBUS_HANDLE_OOM. Also send ServiceDeleted messages when a client
13269         is disconnected.
13270
13271 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
13272
13273         * dbus/dbus-internals.h:
13274         Add _DBUS_HANDLE_OOM macro, it doesn't do anything currently.
13275
13276         * dbus/dbus-message.c: (dbus_message_get_sender):
13277         * dbus/dbus-message.h:
13278         Implement dbus_message_get_sender.
13279
13280         * dbus/dbus-protocol.h:
13281         Add message and service defines.
13282
13283 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
13284
13285         * dbus/dbus-connection.c: (dbus_connection_send_message):
13286         * dbus/dbus-message-internal.h:
13287         * dbus/dbus-message.c: (_dbus_message_get_client_serial),
13288         (dbus_message_write_header):
13289         Remove _dbus_messag_unlock and don't set the client serial on a
13290         message if one already exists.
13291
13292 2003-01-24  Havoc Pennington  <hp@pobox.com>
13293
13294         * dbus/dbus-list.c (alloc_link): put a thread lock on the global
13295         list_pool
13296
13297         * bus/driver.c (bus_driver_handle_list_services): fix a leak
13298         on OOM
13299
13300 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
13301
13302         * dbus/dbus-list.c: (alloc_link), (free_link):
13303         Use a memory pool for the links.
13304
13305 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
13306
13307         * bus/connection.c: (bus_connection_foreach):
13308         * bus/connection.h:
13309         Add new bus_connection_foreach function.
13310
13311         * bus/driver.c: (send_one_message), (bus_driver_broadcast_message):
13312         Add function that broadcasts a message to all clients.
13313
13314         (bus_driver_send_service_created), (bus_driver_handle_hello),
13315         (bus_driver_send_welcome_message),
13316         (bus_driver_handle_list_services), (bus_driver_message_handler):
13317         Implement functions that take care of listing services, and notifying
13318         clients when new services are created.
13319
13320         * bus/services.c: (bus_services_list):
13321         * bus/services.h:
13322         Add new function that returns an array of strings with the currently
13323         registered services.
13324
13325         * glib/dbus-glib.h:
13326         * glib/dbus-gmain.c:
13327         Update copyright year.
13328
13329 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
13330
13331         * dbus/dbus-connection.c: (dbus_connection_send_message):
13332         Unlock the message in case it was sent earlier.
13333
13334         (dbus_connection_send_message_with_reply_and_block):
13335         Remove the reply message from the list.
13336
13337         * dbus/dbus-marshal.c: (_dbus_demarshal_string_array):
13338         Set array_len and new_pos correctly.
13339
13340         (_dbus_marshal_test):
13341         Remove debug output.
13342
13343         * dbus/dbus-message-internal.h:
13344         * dbus/dbus-message.c: (_dbus_message_get_reply_serial):
13345         New function that returns the reply serial.
13346
13347         (_dbus_message_unlock):
13348         New function that unlocks a message and resets its header.
13349
13350         (dbus_message_append_string_array),
13351         (dbus_message_get_fields_valist),
13352         (dbus_message_iter_get_field_type),
13353         (dbus_message_iter_get_string_array),
13354         (dbus_message_get_fields),
13355         (dbus_message_append_fields_valist):
13356         Handle string arrays.
13357
13358         (dbus_message_set_sender):
13359         Make this function public since the bus daemon needs it.
13360
13361         (decode_header_data):
13362         Set the reply serial to -1 initially.
13363
13364         * dbus/dbus-message.h:
13365         Add dbus_message_set_sender.
13366
13367 2003-01-24  Havoc Pennington  <hp@pobox.com>
13368
13369         * doc/dbus-specification.sgml: add some stuff
13370
13371 2003-01-22  Havoc Pennington  <hp@pobox.com>
13372
13373         * doc/dbus-specification.sgml: Start to document the protocol.
13374
13375 2003-01-22  Havoc Pennington  <hp@pobox.com>
13376
13377         * dbus/dbus-connection.c
13378         (dbus_connection_send_message_with_reply_and_block): add some @todo
13379
13380         * bus/driver.c (bus_driver_add_connection): add a FIXME about memleak
13381
13382 2003-01-21  Havoc Pennington  <hp@pobox.com>
13383
13384         (patch untested because can't compile)
13385
13386         * bus/driver.c (create_unique_client_name): make this function
13387         never recycle client names. Also, caller should initialize
13388         the DBusString.
13389
13390         * dbus/dbus-sysdeps.c (_dbus_get_current_time): new function
13391
13392 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
13393
13394         * dbus/dbus-marshal.c: (_dbus_marshal_double),
13395         (_dbus_marshal_int32), (_dbus_marshal_uint32),
13396         (_dbus_marshal_int32_array), (_dbus_marshal_uint32_array),
13397         (_dbus_marshal_double_array), (_dbus_marshal_string_array),
13398         (_dbus_demarshal_int32_array), (_dbus_demarshal_uint32_array),
13399         (_dbus_demarshal_double_array), (_dbus_demarshal_string_array),
13400         (_dbus_marshal_get_field_end_pos), (_dbus_marshal_test):
13401         * dbus/dbus-marshal.h:
13402         * dbus/dbus-protocol.h:
13403         Add support for marshalling and demarshalling integer, double
13404         and string arrays.
13405
13406 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
13407
13408         * bus/Makefile.am:
13409         Add driver.[ch]
13410
13411         * bus/connection.c: (connection_disconnect_handler):
13412         Remove the connection from the bus driver's list.
13413
13414         (connection_watch_callback): Dispatch messages.
13415
13416         (free_connection_data): Free connection name.
13417
13418         (bus_connection_setup): Add connection to the bus driver's list.
13419         (bus_connection_remove_owned_service):
13420         (bus_connection_set_name), (bus_connection_get_name):
13421         Add functions for setting and getting the connection's name.
13422
13423         * bus/connection.h:
13424         Add function headers.
13425
13426         * bus/driver.c: (create_unique_client_name),
13427         (bus_driver_handle_hello_message),
13428         (bus_driver_send_welcome_message), (bus_driver_message_handler),
13429         (bus_driver_add_connection), (bus_driver_remove_connection):
13430         * bus/driver.h:
13431         * bus/main.c:
13432         * bus/services.c: (bus_service_free):
13433         * bus/services.h:
13434         New file that handles communication and registreation with the bus
13435         itself.
13436
13437 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
13438
13439         * dbus/dbus-connection.c: (dbus_connection_send_message):
13440         Add a new client_serial parameter.
13441
13442         (dbus_connection_send_message_with_reply):
13443         Remove a @todo since we've implemented the blocking function.
13444
13445         (dbus_connection_send_message_with_reply_and_block):
13446         New function that sends a message and waits for a reply and
13447         then returns the reply.
13448
13449         * dbus/dbus-connection.h:
13450         Add new functions.
13451
13452         * dbus/dbus-errors.c: (dbus_result_to_string):
13453         * dbus/dbus-errors.h:
13454         Add new DBUS_RESULT.
13455
13456         * dbus/dbus-message-internal.h:
13457         * dbus/dbus-message.c: (_dbus_message_get_reply_serial),
13458         (_dbus_message_set_sender), (dbus_message_write_header),
13459         (dbus_message_new_reply), (decode_header_data),
13460         (_dbus_message_loader_return_buffer), (_dbus_message_test):
13461         * dbus/dbus-message.h:
13462         Add new functions that set the reply serial and sender.
13463         Also marshal and demarshal them correctly and add test.
13464
13465         * dbus/dbus-protocol.h:
13466         Add new DBUS_MESSAGE_TYPE_SENDER.
13467
13468         * glib/dbus-glib.h:
13469         * glib/dbus-gmain.c: (watch_callback), (free_callback_data),
13470         (add_watch), (remove_watch), (add_timeout), (remove_timeout),
13471         (dbus_connection_hookup_with_g_main):
13472         * glib/test-dbus-glib.c: (main):
13473         Rewrite to use GIOChannel and remove the GSource crack.
13474
13475         * test/echo-client.c: (main):
13476         * test/watch.c: (check_messages):
13477         Update for changed APIs
13478
13479 2003-01-19  Anders Carlsson  <andersca@codefactory.se>
13480
13481         * dbus/Makefile.am: Add dbus-timeout.[cħ]
13482
13483         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport):
13484         Create a DBusTimeoutList.
13485         (dbus_connection_set_timeout_functions): Add new function to
13486         set timeout callbacks
13487
13488         * dbus/dbus-connection.h: Add public DBusTimeout API.
13489
13490         * dbus/dbus-message.c: (dbus_message_get_service):
13491         * dbus/dbus-message.h:  New function.
13492
13493         * dbus/dbus-server.c: Fix small doc typo.
13494
13495         * dbus/dbus-timeout.[ch]: New files for mainloop timeouts.
13496
13497 2003-01-19  Anders Carlsson  <andersca@codefactory.se>
13498
13499         * dbus/dbus-string.c (_dbus_string_move_len): Don't delete all
13500         of the string, just as long as specified.
13501
13502 2003-01-19  Havoc Pennington  <hp@pobox.com>
13503
13504         * dbus/dbus-connection.c (dbus_connection_get_is_authenticated):
13505         new function
13506
13507         * dbus/dbus-server.c (dbus_server_set_max_connections)
13508         (dbus_server_get_max_connections, dbus_server_get_n_connections):
13509         keep track of current number of connections, and add API for
13510         setting a max (but haven't implemented enforcing the max yet)
13511
13512 2003-01-18  Havoc Pennington  <hp@pobox.com>
13513
13514         * dbus/dbus-transport-unix.c (unix_do_iteration): only do the
13515         reading/writing if read_watch != NULL or write_watch != NULL.
13516
13517         * dbus/dbus-message.c (_dbus_message_loader_return_buffer): fix
13518         the message loader code to actually load message->header and
13519         message->body into the newly-created message.
13520
13521         * dbus/dbus-transport-unix.c (check_write_watch): fix a mem leak
13522         in OOM case
13523
13524         * dbus/dbus-connection.c (dbus_connection_set_max_message_size)
13525         (dbus_connection_get_max_message_size)
13526         (dbus_connection_set_max_live_messages_size)
13527         (dbus_connection_get_max_live_messages_size): implement some
13528         resource limitation functions
13529
13530         * dbus/dbus-resources.c: new file implementing some of the
13531         resource limits stuff
13532
13533         * dbus/dbus-message.c (dbus_message_iter_get_byte_array): add
13534         missing docs, add @todo to handle OOM etc.
13535
13536         * dbus/dbus-marshal.c (_dbus_demarshal_byte_array): add missing
13537         docs
13538
13539 2003-01-18  Havoc Pennington  <hp@pobox.com>
13540
13541         * dbus/dbus-connection.c (dbus_connection_unref): disconnect the
13542         connection if it hasn't been already.
13543
13544         * dbus/dbus-connection.h: kill off the idea of an ErrorFunction,
13545         replace with DisconnectFunction.
13546
13547 2003-01-18  Havoc Pennington  <hp@pobox.com>
13548
13549         Building --disable-verbose-mode --disable-asserts --disable-tests
13550         cuts the library from 112K to 45K or so
13551
13552         * configure.in: check for varargs macro support,
13553         add --enable-verbose-mode, --enable-asserts.
13554
13555         * dbus/dbus-internals.h (_dbus_assert): support
13556         DBUS_DISABLE_ASSERT
13557         (_dbus_verbose): support DBUS_ENABLE_VERBOSE_MODE
13558
13559 2003-01-18  Havoc Pennington  <hp@pobox.com>
13560
13561         * dbus/dbus-test.c: include config.h so that tests actually run
13562
13563         * dbus/dbus-string.c: add assertions that stuff is 8-byte aligned,
13564         so the failure mode when that assumption fails will be plenty
13565         obvious.
13566
13567 2003-01-18  Havoc Pennington  <hp@pobox.com>
13568
13569         * configure.in: default --enable-tests to $USE_MAINTAINER_MODE
13570
13571         * dbus/Makefile.am: fix it up so dubs-test-main.c is included in
13572         the distribution
13573
13574         * test/Makefile.am: don't use special variable "TESTS" for echo-*
13575         since we don't want to use those in make check
13576
13577 2003-01-15  Havoc Pennington  <hp@redhat.com>
13578
13579         Release 0.2
13580
13581         * NEWS: update
13582
13583 2003-01-15  Havoc Pennington  <hp@redhat.com>
13584
13585         * test/Makefile.am: fix so that test source code ends up in the
13586         distribution on make distcheck
13587
13588 2003-01-15  Havoc Pennington  <hp@redhat.com>
13589
13590         Release 0.1.
13591
13592         * NEWS: update
13593
13594 2003-01-15  Havoc Pennington  <hp@redhat.com>
13595
13596         * dbus/dbus-test.c (dbus_internal_symbol_do_not_use_run_tests):
13597         fix build when --disable-tests
13598
13599         * Makefile.am (EXTRA_DIST): put HACKING in here
13600
13601         * HACKING: document procedure for making a tarball release.
13602
13603 2003-01-14  Anders Carlsson  <andersca@codefactory.se>
13604
13605         * bus/connection.c: (connection_error_handler),
13606         (bus_connection_setup):
13607         * bus/main.c: (main):
13608         Make sure that the DBusConnectionData struct is NULLed
13609         out to prevent a segfault.
13610
13611         * dbus/dbus-errors.c: (dbus_result_to_string):
13612         * dbus/dbus-errors.h:
13613         * dbus/dbus-message.c: (dbus_message_get_fields),
13614         (dbus_message_get_fields_valist), (_dbus_message_test):
13615         * dbus/dbus-message.h:
13616         Make dbus_message_get_fields return a result code so we can
13617         track invalid fields as well as oom.
13618
13619 2003-01-11  Havoc Pennington  <hp@pobox.com>
13620
13621         * configure.in: change --enable-test/--enable-ansi action-if-given
13622         to enable_foo=$enableval instead of enable_foo=yes
13623
13624 2003-01-08  Havoc Pennington  <hp@pobox.com>
13625
13626         * dbus/dbus-string.c (_dbus_string_align_length): new function
13627
13628         * dbus/dbus-test-main.c: move main() for test app here
13629         * dbus/dbus-test.c
13630         (dbus_internal_symbol_do_not_use_run_tests): we have to export a
13631         symbol to run tests, because dbus-test isn't in the main
13632         library
13633
13634         Code review nitpicks.
13635
13636         * dbus/dbus-message.c (dbus_message_write_header): add newlines
13637         for people with narrow emacs ;-). Assert client_serial was filled
13638         in. Assert message->name != NULL.
13639         (dbus_message_append_fields): have "first_field_type" arg separate
13640         from va list, needed for C++ binding that also uses varargs IIRC
13641         and helps with type safety
13642         (dbus_message_new): add @todo about using DBusString to store
13643         service/name internally
13644         (dbus_message_new): don't leak ->service and ->name on OOM later
13645         in the function
13646         (dbus_message_unref): free the service name
13647         (dbus_message_get_fields): same change to varargs
13648         i.e. first_field_type
13649         (_dbus_message_loader_return_buffer): assert that the message data
13650         is aligned (if not it's a bug in our code). Put in verbose griping
13651         about why we set corrupted = TRUE.
13652         (decode_header_data): add FIXME that char* is evil.  Was going to
13653         add FIXME about evil locale-specific string.h strncmp, but just
13654         switched to wacky string-as-uint32 optimization. Move check for
13655         "no room for field name" above get_const_data_len() to avoid
13656         assertion failure in get_const_data_len if we have trailing 2
13657         bytes or the like. Check for service and name fields being
13658         provided twice. Don't leak service/name on error. Require field
13659         names to be aligned to 4 bytes.
13660
13661         * dbus/dbus-marshal.c: move byte swap stuff to header
13662         (_dbus_pack_int32): uscore-prefix
13663         (_dbus_unpack_int32): uscore-prefix
13664         (_dbus_unpack_uint32): export
13665         (_dbus_demarshal_string): add @todo complaining about use of
13666         memcpy()
13667         (_dbus_marshal_get_field_end_pos): add @todo about bad error
13668         handling allowing corrupt data to go unchecked
13669
13670 2003-01-08  Havoc Pennington  <hp@redhat.com>
13671
13672         * dbus/dbus-transport-unix.c (unix_do_iteration): add read/write
13673         to the select() as needed for authentication. (should be using
13674         _dbus_poll() not select, but for another day)
13675
13676         * dbus/dbus.h: include dbus/dbus-protocol.h
13677
13678 2003-01-08  Anders Carlsson  <andersca@codefactory.se>
13679
13680         * dbus/Makefile.am (dbusinclude_HEADERS): Install
13681         dbus-connection.h
13682
13683 2003-01-08  Anders Carlsson  <andersca@codefactory.se>
13684
13685         * dbus/dbus-internals.c: (_dbus_type_to_string):
13686         New function that returns a string describing a type.
13687
13688         * dbus/dbus-marshal.c: (_dbus_demarshal_byte_array):
13689         * dbus/dbus-marshal.h:
13690         * dbus/dbus-message.c: (dbus_message_get_fields_valist),
13691         (dbus_message_iter_get_field_type), (dbus_message_iter_get_double),
13692         (dbus_message_iter_get_byte_array):
13693         * dbus/dbus-message.h:
13694         Add new convenience functions for appending and getting message fields.
13695         Also add demarshalling routines for byte arrays.
13696
13697 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
13698
13699         * dbus/dbus-connection-internal.h:
13700         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport),
13701         (_dbus_connection_get_next_client_serial),
13702         (dbus_connection_send_message):
13703         * dbus/dbus-internals.h:
13704         * dbus/dbus-marshal.c: (unpack_uint32), (dbus_unpack_int32),
13705         (dbus_pack_int32), (_dbus_marshal_double), (_dbus_marshal_int32),
13706         (_dbus_marshal_uint32), (_dbus_demarshal_double),
13707         (_dbus_demarshal_int32), (_dbus_demarshal_uint32),
13708         (_dbus_demarshal_string), (_dbus_marshal_get_field_end_pos),
13709         (_dbus_verbose_bytes), (_dbus_marshal_test):
13710         * dbus/dbus-marshal.h:
13711         * dbus/dbus-message-internal.h:
13712         * dbus/dbus-message.c: (_dbus_message_set_client_serial),
13713         (dbus_message_write_header), (_dbus_message_lock),
13714         (dbus_message_new), (dbus_message_ref), (dbus_message_unref),
13715         (dbus_message_get_name), (dbus_message_append_int32),
13716         (dbus_message_append_uint32), (dbus_message_append_double),
13717         (dbus_message_append_string), (dbus_message_append_byte_array),
13718         (dbus_message_get_fields_iter), (dbus_message_iter_ref),
13719         (dbus_message_iter_unref), (dbus_message_iter_has_next),
13720         (dbus_message_iter_next), (dbus_message_iter_get_field_type),
13721         (dbus_message_iter_get_string), (dbus_message_iter_get_int32),
13722         (dbus_message_iter_get_uint32), (dbus_message_iter_get_double),
13723         (decode_header_data), (_dbus_message_loader_return_buffer),
13724         (message_iter_test), (_dbus_message_test):
13725         * dbus/dbus-message.h:
13726         * dbus/dbus-protocol.h:
13727         * dbus/dbus-test.c: (main):
13728         * dbus/dbus-test.h:
13729         * glib/test-dbus-glib.c: (message_handler), (main):
13730         * test/echo-client.c: (main):
13731         * test/watch.c: (check_messages):
13732         Make messages sendable and receivable for real.
13733
13734 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
13735
13736         * dbus/dbus-marshal.c: (_dbus_marshal_double),
13737         (_dbus_marshal_string), (_dbus_marshal_byte_array):
13738         * dbus/dbus-message.c: (dbus_message_append_int32),
13739         (dbus_message_append_uint32), (dbus_message_append_double),
13740         (dbus_message_append_string), (dbus_message_append_byte_array):
13741         Handle OOM restoration.
13742
13743 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
13744
13745         * dbus/dbus-marshal.c: (_dbus_marshal_string),
13746         (_dbus_demarshal_string), (_dbus_marshal_test):
13747         * dbus/dbus-marshal.h:
13748         * dbus/dbus-message.c: (dbus_message_get_name),
13749         Document these functions.
13750
13751         (dbus_message_append_int32), (dbus_message_append_uint32),
13752         (dbus_message_append_double), (dbus_message_append_string),
13753         (dbus_message_append_byte_array):
13754         * dbus/dbus-message.h:
13755         Add functions for adding message fields of different types.
13756
13757         * dbus/dbus-protocol.h:
13758         Add the different types.
13759
13760 2003-01-05  Havoc Pennington  <hp@pobox.com>
13761
13762         * bus/connection.c: implement routines for handling connections,
13763         first thing is keeping a list of owned services on each connection
13764         and setting up watches etc.
13765
13766         * bus/services.c: implement a mapping from service names to lists
13767         of connections
13768
13769         * dbus/dbus-hash.c: add DBUS_HASH_POINTER
13770
13771         * dbus/dbus-threads.c (dbus_static_mutex_lock): add functions
13772         to use static mutexes for global data
13773
13774         * dbus/dbus-connection.c (dbus_connection_set_data): add new
13775         collection of functions to set/get application-specific data
13776         on the DBusConnection.
13777
13778 2003-01-04  Havoc Pennington  <hp@pobox.com>
13779
13780         * dbus/dbus-sysdeps.c (_dbus_sleep_milliseconds): new function
13781         (_dbus_poll): new function
13782
13783         * dbus/dbus-internals.h (_DBUS_STRUCT_OFFSET): new macro
13784         copied from GLib
13785
13786         * bus/loop.c: initial code for the daemon main loop
13787
13788 2003-01-04  Havoc Pennington  <hp@pobox.com>
13789
13790         * test/watch.c (error_handler): make it safe if the error handler
13791         is called multiple times (if we s/error handler/disconnect
13792         handler/ we should just guarantee it's called only once)
13793
13794         * dbus/dbus-transport.c (_dbus_transport_disconnect): call the
13795         error handler on disconnect (it's quite possible we should
13796         just change the error handler to a "disconnect handler," I'm
13797         not sure we have any other meaningful errors)
13798
13799         * configure.in: check for getpwnam_r
13800
13801         * dbus/dbus-transport.c, dbus/dbus-transport-unix.c,
13802         dbus/dbus-auth.c: add credentials support, add EXTERNAL auth
13803         mechanism as in SASL spec, using socket credentials
13804
13805         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): new function
13806         (_dbus_send_credentials_unix_socket): new function
13807
13808         * dbus/dbus-sysdeps.c (_dbus_accept_unix_socket): rename just
13809         dbus_accept()
13810         (_dbus_write): only check errno if <0 returned
13811         (_dbus_write_two): ditto
13812
13813 2003-01-02  Anders Carlsson  <andersca@codefactory.se>
13814
13815         * dbus/dbus-marshal.c: (_dbus_marshal_utf8_string),
13816         (_dbus_marshal_byte_array), (_dbus_demarshal_utf8_string),
13817         (_dbus_marshal_test):
13818         * dbus/dbus-marshal.h:
13819         Add _dbus_marshal_byte_array and rename _dbus_marshal_string
13820         to _dbus_marshal_utf8_string. Also fix some tests.
13821
13822 2002-12-28  Harri Porten  <porten@kde.org>
13823
13824         * configure.in: added check for C++ compiler and a very cheesy
13825         check for the Qt integration
13826
13827         * Makefile.am (SUBDIRS): compile qt subdir if support is enabled
13828
13829         * qt/Makefile.am: added
13830
13831         * qt/.cvsignore: added
13832
13833         * qt/dbus-qthread.cc, qt/dbus-qthread.cpp: renamed former to
13834         latter, added #ifdef QT_THREAD_SUPPORT guard.
13835
13836         * dbus/Makefile.am: added missing headers for make dist
13837
13838 2002-12-28  Kristian Rietveld  <kris@gtk.org>
13839
13840         * dbus/Makefile.am: fixup export-symbols-regex.
13841
13842 2002-12-27  Anders Carlsson  <andersca@codefactory.se>
13843
13844         * acinclude.m4: Add this file and put the
13845         PKG_CHECK_MODULE macro in it.
13846
13847 2002-12-27  Anders Carlsson  <andersca@codefactory.se>
13848
13849         * dbus/dbus-marshal.c: (_dbus_marshal_string),
13850         (_dbus_demarshal_double), (_dbus_demarshal_int32),
13851         (_dbus_demarshal_uint32), (_dbus_demarshal_string),
13852         (_dbus_marshal_test):
13853         Make the demarshalling routines align the pos argument.
13854         Add string marshalling tests and fix the obvious bugs
13855         discovered.
13856
13857 2002-12-26  Havoc Pennington  <hp@pobox.com>
13858
13859         * dbus/dbus-auth.c: fixes fixes fixes
13860
13861         * dbus/dbus-transport-unix.c: wire up support for
13862         encoding/decoding data on the wire
13863
13864         * dbus/dbus-auth.c (_dbus_auth_encode_data)
13865         (_dbus_auth_decode_data): append to target string
13866         instead of nuking it.
13867
13868 2002-12-26  Havoc Pennington  <hp@pobox.com>
13869
13870         * dbus/dbus-marshal.h (DBUS_COMPILER_BYTE_ORDER): #ifdef
13871         WORDS_BIGENDIAN then compiler byte order is DBUS_BIG_ENDIAN,
13872         doh
13873
13874         * dbus/dbus-marshal.c: Add macros to do int swapping in-place and
13875         avoid swap_bytes() overhead (ignoring possible assembly stuff for
13876         now). Main point is because I wanted unpack_uint32 to implement
13877         _dbus_verbose_bytes
13878         (_dbus_verbose_bytes): new function
13879
13880         * dbus/dbus-string.c (_dbus_string_validate_ascii): new function
13881
13882         * dbus/dbus-message.c (_dbus_message_loader_get_is_corrupted): add
13883         mechanism to handle a corrupt message stream
13884         (_dbus_message_loader_new): fix preallocation to only prealloc,
13885         not prelengthen
13886
13887         * dbus/dbus-string.c (_dbus_string_skip_blank): fix this function
13888         (_dbus_string_test): enhance tests for copy/move and fix the
13889         functions
13890
13891         * dbus/dbus-transport-unix.c: Hold references in more places to
13892         avoid reentrancy problems
13893
13894         * dbus/dbus-transport.c: ditto
13895
13896         * dbus/dbus-connection.c (dbus_connection_dispatch_message): don't
13897         leak reference count in no-message case
13898
13899         * test/watch.c (do_mainloop): handle adding/removing watches
13900         during iteration over the watches. Also, ref the connection/server
13901         stored on a watch, so we don't try to mangle a destroyed one.
13902
13903         * dbus/dbus-transport-unix.c (do_authentication): perform
13904         authentication
13905
13906         * dbus/dbus-auth.c (get_state): add a state
13907         AUTHENTICATED_WITH_UNUSED_BYTES and return it if required
13908         (_dbus_auth_get_unused_bytes): append the unused bytes
13909         to the passed in string, rather than prepend
13910
13911         * dbus/dbus-transport.c (_dbus_transport_init_base): create
13912         the auth conversation DBusAuth
13913
13914         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd)
13915         (_dbus_transport_new_for_domain_socket): when creating a
13916         transport, pass in whether it's a client-side or server-side
13917         transport so we know which DBusAuth to create
13918
13919 2002-12-03  Havoc Pennington  <hp@pobox.com>
13920
13921         * dbus/dbus-transport-unix.c (unix_finalize): finalize base
13922         _after_ finalizing the derived members
13923         (unix_connection_set): unref watch if we fail to add it
13924
13925         * dbus/dbus-connection.c (dbus_connection_unref): delete the
13926         transport first, so that the connection owned by the
13927         transport will be valid as the transport finalizes.
13928
13929         * dbus/dbus-transport-unix.c (unix_finalize): free the write_watch
13930         if necessary, and remove watches from the connection.
13931
13932         * dbus/dbus-watch.c (_dbus_watch_list_free): improve a comment
13933
13934 2002-12-26  Anders Carlsson  <andersca@codefactory.se>
13935
13936         * dbus/dbus-marshal.c: (_dbus_marshal_string),
13937         (_dbus_demarshal_double), (_dbus_demarshal_int32),
13938         (_dbus_demarshal_uint32), (_dbus_demarshal_string),
13939         (_dbus_marshal_test):
13940         * dbus/dbus-marshal.h:
13941         Add string marshal functions and have the demarshal functions
13942         return the new position.
13943
13944 2002-12-25  Havoc Pennington  <hp@pobox.com>
13945
13946         * doc/dbus-sasl-profile.txt: docs on the authentication protocol,
13947         it is a simple protocol that just maps directly to SASL.
13948
13949         * dbus/dbus-auth.h, dbus/dbus-auth.c: authentication protocol
13950         initial implementation, not actually used yet.
13951
13952         * dbus/dbus-string.c (_dbus_string_find): new function
13953         (_dbus_string_equal): new function
13954         (_dbus_string_base64_encode): new function
13955         (_dbus_string_base64_decode): new function
13956
13957 2002-12-25  Anders Carlsson  <andersca@codefactory.se>
13958
13959         * dbus/Makefile.am:
13960         * dbus/dbus-marshal.c: (swap_bytes), (_dbus_marshal_double),
13961         (_dbus_marshal_int32), (_dbus_marshal_uint32),
13962         (_dbus_demarshal_double), (_dbus_demarshal_int32),
13963         (_dbus_demarshal_uint32), (_dbus_marshal_test):
13964         * dbus/dbus-marshal.h:
13965         * dbus/dbus-protocol.h:
13966         * dbus/dbus-test.c: (main):
13967         * dbus/dbus-test.h:
13968         Add un-optimized marshalling/demarshalling routines.
13969
13970 2002-12-25  Harri Porten  <porten@kde.org>
13971
13972         * qt/dbus-qt.h: adjusted ctor and getter to KDE/Qt conventions
13973
13974 2002-12-24  Zack Rusin  <zack@kde.org>
13975
13976         * qt/dbus-qthread.cc: adding - integrates QMutex into Dbus
13977         * qt/dbus-qt.h: skeleton with two sample implemenatation of the
13978         main loop stuff
13979
13980 2002-12-24  Havoc Pennington  <hp@pobox.com>
13981
13982         * glib/dbus-gthread.c: fix include
13983
13984         * glib/dbus-glib.h: rename DBusMessageHandler for now.
13985         I think glib API needs to change, though, as you don't
13986         want to use DBusMessageFunction, you want to use the
13987         DBusMessageHandler object. Probably
13988         dbus_connection_open_with_g_main_loop()
13989         and dbus_connection_setup_g_main_loop() or something like that
13990         (but think of better names...) that just create a connection
13991         that has watch/timeout functions etc. already set up.
13992
13993         * dbus/dbus-connection.c
13994         (dbus_connection_send_message_with_reply): new function just to
13995         show how the message handler helps us deal with replies.
13996
13997         * dbus/dbus-list.c (_dbus_list_remove_last): new function
13998
13999         * dbus/dbus-string.c (_dbus_string_test): free a string that
14000         wasn't
14001
14002         * dbus/dbus-hash.c: use memory pools for the hash entries
14003         (rebuild_table): be more paranoid about overflow, and
14004         shrink table when we can
14005         (_dbus_hash_test): reduce number of sprintfs and write
14006         valid C89. Add tests for case where we grow and then
14007         shrink the hash table.
14008
14009         * dbus/dbus-mempool.h, dbus/dbus-mempool.c: memory pools
14010
14011         * dbus/dbus-connection.c (dbus_connection_register_handler)
14012         (dbus_connection_unregister_handler): new functions
14013
14014         * dbus/dbus-message.c (dbus_message_get_name): new
14015
14016         * dbus/dbus-list.c: fix docs typo
14017
14018         * dbus/dbus-message-handler.h, dbus/dbus-message-handler.c:
14019         an object representing a handler for messages.
14020
14021 2002-12-16  Anders Carlsson  <andersca@codefactory.se>
14022
14023         * glib/dbus-glib.h:
14024         * glib/dbus-gthread.c: (dbus_gthread_init):
14025         Don't use the gdbus prefix for public functions.
14026
14027 2002-12-16  Anders Carlsson  <andersca@codefactory.se>
14028
14029         * Makefile.am:
14030         * configure.in:
14031         Add GLib checks and fixup .pc files
14032
14033         * glib/Makefile.am:
14034         * glib/dbus-glib.h:
14035         * glib/dbus-gmain.c: (gdbus_connection_prepare),
14036         (gdbus_connection_check), (gdbus_connection_dispatch),
14037         (gdbus_add_connection_watch), (gdbus_remove_connection_watch),
14038         (dbus_connection_gsource_new):
14039         * glib/dbus-gthread.c: (dbus_gmutex_new), (dbus_gmutex_free),
14040         (dbus_gmutex_lock), (dbus_gmutex_unlock), (dbus_gthread_init):
14041         * glib/test-dbus-glib.c: (message_handler), (main):
14042         Add GLib support.
14043
14044 2002-12-15  Harri Porten  <porten@kde.org>
14045
14046         * autogen.sh: check for libtoolize before attempting to use it
14047
14048         * dbus/dbus-transport-unix.c: include <sys/time.h> for timeval
14049         struct.
14050
14051         * .cvsignore: ignore more stamp files
14052
14053         * dbus/dbus-watch.c (_dbus_watch_list_new): fixed doc error
14054
14055         * test/Makefile.am: added -I$(top_srcdir) to be able to compile
14056         without make install.
14057
14058 2002-12-15  Havoc Pennington  <hp@pobox.com>
14059
14060         * dbus/dbus-threads.c: add thread stubs that a higher library
14061         layer can fill in. e.g. the GLib wrapper might fill them in with
14062         GThread stuff. We still need to use this thread API to
14063         thread-safe-ize the library.
14064
14065 2002-12-12  Havoc Pennington  <hp@pobox.com>
14066
14067         * dbus/dbus-transport-unix.c, dbus/dbus-server-unix.c: use the
14068         below new interfaces and include fewer system headers.
14069
14070         * dbus/dbus-sysdeps.c (_dbus_read): new function
14071         (_dbus_write): new function
14072         (_dbus_write_two): new function
14073         (_dbus_connect_unix_socket): new function
14074         (_dbus_listen_unix_socket): new function
14075
14076         * dbus/dbus-message-internal.h: change interfaces to use
14077         DBusString
14078
14079 2002-12-11  Havoc Pennington  <hp@pobox.com>
14080
14081         * dbus/dbus-types.h: add dbus_unichar
14082
14083         * dbus/dbus-internals.c (_dbus_verbose): use _dbus_getenv
14084
14085         * dbus/dbus-connection.c (dbus_connection_send_message): return
14086         TRUE on success
14087
14088         * dbus/dbus-transport.c: include dbus-watch.h
14089
14090         * dbus/dbus-connection.c: include dbus-message-internal.h
14091
14092         * HACKING: add file with coding guidelines stuff.
14093
14094         * dbus/dbus-string.h, dbus/dbus-string.c: Encapsulate all string
14095         handling here, for security purposes (as in vsftpd). Not actually
14096         using this class yet.
14097
14098         * dbus/dbus-sysdeps.h, dbus/dbus-sysdeps.c: Encapsulate all
14099         system/libc usage here, as in vsftpd, for ease of auditing (and
14100         should also simplify portability). Haven't actually moved all the
14101         system/libc usage into here yet.
14102
14103 2002-11-25  Havoc Pennington  <hp@pobox.com>
14104
14105         * dbus/dbus-internals.c (_dbus_verbose): fix to not
14106         always print the first verbose message.
14107
14108 2002-11-24  Havoc Pennington  <hp@pobox.com>
14109
14110         * test/echo-client.c, test/echo-server.c: cheesy test
14111         clients.
14112
14113         * configure.in (AC_CHECK_FUNCS): check for writev
14114
14115         * dbus/dbus-message.c (_dbus_message_get_network_data): new
14116         function
14117
14118         * dbus/dbus-list.c (_dbus_list_foreach): new function
14119
14120         * dbus/dbus-internals.c (_dbus_verbose): new function
14121
14122         * dbus/dbus-server.c, dbus/dbus-server.h: public object
14123         representing a server that listens for connections.
14124
14125         * dbus/.cvsignore: create
14126
14127         * dbus/dbus-errors.h, dbus/dbus-errors.c:
14128         public API for reporting errors
14129
14130         * dbus/dbus-connection.h, dbus/dbus-connection.c:
14131         public object representing a connection that
14132         sends/receives messages. (Same object used for
14133         both client and server.)
14134
14135         * dbus/dbus-transport.h, dbus/dbus-transport.c:
14136         Basic abstraction for different kinds of stream
14137         that we might read/write messages from.
14138
14139 2002-11-23  Havoc Pennington  <hp@pobox.com>
14140
14141         * dbus/dbus-internals.h (_DBUS_INT_MAX): add _DBUS_INT_MIN
14142         _DBUS_INT_MAX
14143
14144         * dbus/dbus-test.c (main): add list test, and include
14145         dbus-test.h as intended
14146
14147         * dbus/dbus-hash.c (_dbus_hash_table_remove_string)
14148         (_dbus_hash_table_remove_int): return value indicates
14149         whether the entry existed to remove
14150
14151         * dbus/dbus-list.c: add linked list utility class,
14152         with docs and tests
14153
14154         * dbus/dbus-hash.c: add TODO item about shrinking the hash bucket
14155         array sometimes.
14156
14157 2002-11-23  Havoc Pennington  <hp@pobox.com>
14158
14159         * Doxyfile.in (INCLUDE_FILE_PATTERNS): expand DBUS_BEGIN_DECLS/
14160         DBUS_END_DECLS to nothing, that should fix this once and for all
14161
14162         * Doxyfile.in (JAVADOC_AUTOBRIEF): set to YES
14163
14164         * dbus/dbus-message.c, dbus/dbus-hash.c:
14165         add some missing @brief
14166
14167 2002-11-23  Havoc Pennington  <hp@pobox.com>
14168
14169         * dbus/dbus-message.h: put semicolons after DEBUG_BEGIN_DECLS
14170         to avoid confusing Doxygen
14171
14172         * dbus/dbus-hash.c: @} not }@
14173
14174         * dbus/dbus-message.c (struct DBusMessage): split out
14175         internals docs
14176
14177 2002-11-23  Havoc Pennington  <hp@pobox.com>
14178
14179         * configure.in: pile on more warning flags if using gcc
14180
14181         * Doxyfile.in (EXTRACT_STATIC): set to NO, so we don't have
14182         to document static functions
14183
14184         * configure.in: add summary to end of configure so it
14185         looks nice and attractive
14186
14187         * dbus/dbus-hash.c: finish implementation and write unit
14188         tests and docs
14189
14190         * configure.in: add --enable-tests to enable unit tests
14191
14192         * dbus/dbus-test.c: test program to run unit tests
14193         for all files in dbus/*, initially runs a test for
14194         dbus-hash.c
14195
14196         * dbus/dbus-internals.h: file to hold some internal utility stuff
14197
14198 2002-11-22  Havoc Pennington  <hp@redhat.com>
14199
14200         * dbus/dbus-hash.c: copy in Tcl hash table, not yet
14201         "ported" away from Tcl
14202
14203         * dbus/dbus-types.h: header for types such as dbus_bool_t
14204
14205 2002-11-22  Havoc Pennington  <hp@redhat.com>
14206
14207         * dbus/dbus.h: fixups for doc warnings
14208
14209         * Doxyfile.in (FILE_PATTERNS): we need to scan .h to pick up
14210         macros
14211         (QUIET): make it quiet so we can see warnings
14212
14213         * dbus/dbus-memory.c: teach D-BUS to allocate and free memory
14214
14215 2002-11-22  Havoc Pennington  <hp@redhat.com>
14216
14217         * Makefile.am: include "Doxyfile" target in all-local
14218
14219         * configure.in: generate the Doxyfile
14220
14221         * Doxyfile.in: move Doxyfile here, so we can use
14222         configure to generate a Doxyfile with the right
14223         version number etc.
14224
14225 2002-11-22  Havoc Pennington  <hp@redhat.com>
14226
14227         * dbus/dbus-message.c: move inline docs into .c file
14228
14229         * Doxyfile (OUTPUT_DIRECTORY): move output to doc/api
14230         so all docs are under doc/
14231         (MAN_EXTENSION): generate man pages. Use extension
14232         ".3dbus" which matches ".3qt" on my system,
14233         I guess this is OK, I don't know really.
14234         (FILE_PATTERNS): look for .c files not .h, makes sense
14235         for plain C I think
14236
14237 2002-11-22  Havoc Pennington  <hp@pobox.com>
14238
14239         * Makefile.am (SUBDIRS): rename subdir "server" to "bus"
14240         because any app can be a server, and any app can be a client,
14241         the bus is a special kind of server.
14242
14243 Thu Nov 21 23:35:31 2002  Zack Rusin  <zack@kde.org>
14244
14245         * Doxyfile : adding. Still needs Makefile rules to be generated
14246         automatically (just run "doxygen" in the toplevel dir for now to
14247         generate docs)
14248
14249         * dbus/dbus-message.h : Adding sample docs (javadoc since
14250         resembles gtk-doc a little more)
14251
14252         * dbus/dbus.h : Adding sample docs
14253
14254 2002-11-21  Havoc Pennington  <hp@redhat.com>
14255
14256         * dbus/Makefile.am (INCLUDES): define DBUS_COMPILATION
14257         so we can allow ourselves to include files directly,
14258         instead of having to use dbus.h
14259
14260         * dbus/dbus.h: fill in
14261
14262         * dbus/dbus-message.h: sketch out a sample header file.
14263         Include griping if you include it directly instead of
14264         via dbus.h
14265
14266         * dbus/dbus-macros.h: new file with macros for extern "C",
14267         TRUE/FALSE, NULL, etc.
14268
14269         * doc/file-boilerplate.c: put include guards in here
14270
14271 2002-11-21  Havoc Pennington  <hp@redhat.com>
14272
14273         * doc/file-boilerplate.c: include both AFL and GPL boilerplate.
14274
14275         * COPYING: include the GPL as well, and license code
14276         under both AFL and GPL.
14277
14278 2002-11-21  Havoc Pennington  <hp@redhat.com>
14279
14280         * acconfig.h: get rid of this
14281
14282         * autogen.sh (run_configure): add --no-configure option
14283
14284         * configure.in: remove AC_ARG_PROGRAM to make
14285         autoconf complain less. add AC_PREREQ.
14286         add AC_DEFINE third arg.
14287
14288 2002-11-21  Anders Carlsson  <andersca@codefactory.se>
14289
14290         * doc/Makefile.am:
14291         Fix references so we can distcheck.
14292
14293 2002-11-21  Havoc Pennington  <hp@redhat.com>
14294
14295         * Initial module creation
14296