* Clean up close calls to use _dbus_close (Patch from
[platform/upstream/dbus.git] / ChangeLog
1 2006-09-07  John (J5) Palmieri  <johnp@redhat.com>
2
3         * Clean up close calls to use _dbus_close (Patch from 
4         Kimmo Hämäläinen <kimmo dot hamalainen at nokia dot com>)
5
6 2006-09-06  John (J5) Palmieri  <johnp@redhat.com>
7
8         * doc/TODO:
9         - Remove pending call locking todo item
10         - dbus_connection_open now holds hard ref.  Remove todo item
11         - do proper locking on _dbus_bus_check_connection_and_unref
12           and handle DBUS_BUS_STARTER. Remove todo item
13         - Warn on closing of a shared connection.  Remove todo item
14
15         * bus/bus.c, bus/connection.c, bus/dispatch.c, dbus/dbus-bus.c,
16         dbus/dbus-connection.c: Use the dbus_connection_close_internal
17         so we don't get the warning when closing shared connections
18
19         * test/test-service.c, test/test-shell-service.c: Applications
20         don't close shared connections themselves so we unref instead of
21         close
22
23         * test/test-utils.c (test_connection_shutdown): Close the connection
24
25         * dbus/dbus-bus.c (_dbus_bus_check_connection_and_unref): Changed to
26         _dbus_bus_check_connection_and_unref_unlocked since we only call this
27         method on a locked connection.  
28         Make sure we call _dbus_connection_unref_unlocked instead of 
29         dbus_connection_unref also.
30         Handle DBUS_BUS_STARTER correctly
31
32         * dbus/dbus-connection.c (connection_record_shared_unlocked):
33         Mark as shared and hard ref the connection
34         (connection_forget_shared_unlocked): Remove the hard ref from the 
35         connection
36         (_dbus_connection_close_internal_and_unlock):  New internal function
37         which takes a locked connection and unlocks it after closing it
38         (_dbus_connection_close_internal): New internal function which acts
39         like the origonal dbus_connection_close method by grabbing a connection
40         lock and calling _dbus_connection_close_internal_and_unlock
41         (dbus_connection_close): Public close method, warns when the app
42         trys to close a shared connection
43
44 2006-09-06  John (J5) Palmieri  <johnp@redhat.com>
45
46         * bus/driver.c:
47         (bus_driver_generate_introspect_string): New method for populating
48         a DBusString with the introspect data
49         (bus_driver_handle_introspect): Move introspect generation code to 
50         bus_driver_generate_introspect_string
51
52         * bus/main.c:
53         (introspect): New function which prints out the intropect data and
54         exits
55         (main): Add a --introspect switch
56
57 2006-09-06  John (J5) Palmieri  <johnp@redhat.com>
58
59         * doc/TODO: Removed dtd publishing item.  
60         It seems the dtd has already been added at
61         http://www.freedesktop.org/standards/dbus/1.0/introspect.dtd
62
63 2006-09-05  John (J5) Palmieri  <johnp@redhat.com>
64
65         * doc/TODO, various source files: Audited todo's and FIXME's and
66         prepended the ones we should be looking at with 1.0.  Those
67         prepended with 1.0? need clerification or might not be needed
68         for 1.0
69
70 2006-09-05  John (J5) Palmieri  <johnp@redhat.com>
71
72         * dbus/dbus-pending-call.c: Add some checks so we don't crash on
73         NULL in the public API (Patch from Kimmo Hämäläinen 
74         <kimmo dot hamalainen at nokia dot com>)
75
76 2006-09-05  John (J5) Palmieri  <johnp@redhat.com>
77
78         * configure.in: Fix for OS-X compile time endian issues (patch from
79         Benjamin Reed <ranger at befunk dot com>)
80
81 2006-09-05  John (J5) Palmieri  <johnp@redhat.com>
82
83         * configure.in: Check for no-common compiler flag (OS-X fix from
84         Benjamin Reed <ranger at befunk dot com>)
85
86 2006-09-01  John (J5) Palmieri  <johnp@redhat.com>
87
88         * tools/dbus-launch.c: Add a sigterm handler (patch from Frederic Crozat
89         <fcrozat at mandriva dot com>)
90
91 2006-08-29  Havoc Pennington  <hp@redhat.com>
92
93         * test/test-service.c (path_message_func): fix lack of return value
94
95         * dbus/dbus-sysdeps.c (_dbus_printf_string_upper_bound): fix
96         formatting, remove #ifdef, and fix docs. #ifdef doesn't make
97         any more sense than on anything else in this file.
98         (_dbus_get_tmpdir): add const to return value, and keep the
99         results of the various getenv around in a static variable.
100
101 2006-08-29  Havoc Pennington  <hp@redhat.com>
102
103         * dbus/dbus-sysdeps-util.c, dbus/dbus-sysdeps-util-unix.c: change
104         from Ralf Habacker to move UNIX-specific sysdeps into a separate file.
105
106 2006-08-25  John (J5) Palmieri  <johnp@redhat.com>
107
108         * test/Makefile.am: change find to use syntax that works with non
109         gnu versions of find
110
111 2006-08-25  John (J5) Palmieri  <johnp@redhat.com>
112
113         * dbus/dbus-transport.c: fix invalid deref when checking if
114         a vtable method exists (Patch from Christian Ehrlicher 
115         <ch dot ehrlicher at gmx dot de>)
116
117 2006-08-25  John (J5) Palmieri  <johnp@redhat.com>
118
119         * configure.in, dbus/Makefile.am, test/name-test/run-test.sh, 
120         test/name-test/Makefile.am: Fixed some issues with getting get dbus 
121         to build with builddir != srcdir (Taken from a patch by Bernard Leak
122         <bernard at brenda-arkle dot demon dot co dot uk>)
123
124 2006-08-25  John (J5) Palmieri  <johnp@redhat.com>
125
126         * configure.in: Fix DBUS_DAEMONDIR to use EXPANDED_BINDIR for the
127         default case
128
129 2006-08-25  John (J5) Palmieri  <johnp@redhat.com>
130
131         * configure.ac, bus/Makefile.am: Generalize kqueue support so that
132         it works on any system providing this interface, not only FreeBSD.
133         For example, NetBSD. (Patch by Julio M. Merino Vidal  <jmmv at NetBSD dot org>)
134
135 2006-08-20  Havoc Pennington  <hp@redhat.com>
136
137         * doc/dbus-faq.xml, doc/dbus-tutorial.xml: some improvements to
138         the docs
139
140 2006-08-18  John (J5) Palmieri  <johnp@redhat.com>
141
142         * Released 0.92 
143
144 2006-08-18  John (J5) Palmieri  <johnp@redhat.com>
145
146         * dbus/dbus-threads.c (dbus_threads_init): change the documentation
147         to reflect the init late change
148
149         * bus/bus.c (bus_context_new): Check user before we fork so we can
150         print out an error message a user will be able to see
151
152 2006-08-18  John (J5) Palmieri  <johnp@redhat.com>
153
154         Patch provided by Ralf Habacker (ralf dot habacker at freenet dot de) 
155
156         * dbus/dbus-sysdeps.c, dbus/dbus-threads.c, dbus/dbus-internals.h:
157         Add two more global locks for use on windows platforms.  These are
158         unused on non-windows platforms but are not ifdefed out to avoid
159         potential bugs (i.e. the few bytes lost does not warrent the extra
160         maintanence and complexity that having seperate sets of locks would
161         cause)
162
163 2006-08-18  John (J5) Palmieri  <johnp@redhat.com>
164
165         * bus/services.c (bus_registry_acquire_service): Return an error
166         when an application tries to register the org.freedesktop.DBus Bus Name
167
168         * bus/services.c (bus_registry_release_service): Return an error
169         when an application tries to release the org.freedesktop.DBus Bus Name
170
171 2006-08-17  Alp Toker  <alp@atoker.com>
172
173         * doc/dbus-specification.xml: Fix some minor typos.
174
175 2006-08-17  John (J5) Palmieri  <johnp@redhat.com>
176
177         * configure.in: use $with_init_scripts instead of $operating_system
178         to determine where to store the pid since the init scripts manipulate 
179         the pid file (patch from Marcelo Ricardo Leitner 
180         <marcelo dot leitner at terra dot com dot br>.  
181
182 2006-08-16  John (J5) Palmieri  <johnp@redhat.com>
183
184         * dbus/dbus-threads.c: Add static DBusList *uninitialized_mutex_list and
185         static DBusList *uninitialized_condvar_list to support new late 
186         initialization threading model.  In this model threads can be initialized
187         even after the D-Bus API has been used but still needs to be initialized 
188         before the second thread has been started.  Mutexes and condvar addresses
189         are stored in the two static lists and are replaced with actuall locks
190         when threads are initalized.
191         (_dbus_mutex_new_at_location): New method for creating a mutex and placing
192         the location into the static list
193         (_dbus_mutex_free_at_location): New method for removing a mutex location 
194         from the static list and freeing the mutex
195         (_dbus_condvar_new_at_location): New method for creating a conditional 
196         variable and placing the location into the static list
197         (_dbus_condvar_free_at_location): New method for removing a conditional
198         variable location from the static list and freeing the conditional variable 
199         (init_uninitialized_locks): Atomic method which goes through the static 
200         lists of mutex and condvar location and updates them with actuall locks
201         (init_global_locks): changed to init_locks
202         
203         * dbus/dbus-connection.c:
204         (_dbus_connection_test_get_locks): New method for tests to check connections
205         (_dbus_connection_new_for_transport): Use the new at_location mutex and
206         condvar API
207         (dbus_connection_allocate_data_slot): Pass in the global lock address
208         to _dbus_data_slot_allocator_alloc
209
210         * dbus/dbus-dataslot.c:
211         (_dbus_data_slot_allocator_alloc): Use the address of the mutex
212         instead of the mutex itself
213
214         * dbus/dbus-message.c:
215         (dbus_message_allocate_data_slot): Pass in the global lock address
216         to _dbus_data_slot_allocator_alloc
217
218         * dbus/dbus-pending-call.c:
219         (dbus_pending_call_allocate_data_slot): Pass in the global lock address
220         to _dbus_data_slot_allocator_alloc
221
222         * dbus/dbus-server.c:
223         (_dbus_server_init_base): Use the new at_location mutex API
224         (dbus_server_allocate_data_slot): Pass in the global lock address
225         to _dbus_data_slot_allocator_alloc
226
227         * test/name-test/test-threads-init.c: New test case for late thread
228         initialization
229
230 2006-08-14  John (J5) Palmieri  <johnp@redhat.com>
231
232         * dbus/dbus-dataslot.c (_dbus_data_slot_allocator_alloc):
233         Change _dbus_abort to _dbus_assert_not_reached because _dbus_abort
234         causes compile problems when asserts are turned off
235         Keeping _dbus_warn for printing out the message so even if
236         asserts are turned off the user gets the messages that something is 
237         wrong 
238
239 2006-08-14  John (J5) Palmieri  <johnp@redhat.com>
240
241         Patches by Kjartan Maraas <kmaraas at gnome dot org>
242
243         * bus/services.c (bus_service_list_queued_owners):
244         Add a pointer cast to fix compiler warning
245
246         * dbus/dbus-dataslot.c (_dbus_data_slot_list_get):
247         return a NULL instead of FALSE since the return type
248         is not expecting a boolean
249
250         * dbus/dbus-marshal-basic.c (_dbus_marshal_test):
251         Remove unused variable
252
253         * dbus/dbus-marshal-recursive-util.c (node_new):
254         return a NULL instead of FALSE since the return type
255         is not expecting a boolean
256
257         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
258         Send a NULL into _dbus_transport_new_for_fd instead of a FALSE
259         because we are expecting a pointer not a boolean
260
261         * dbus/dbus-sysdeps-util.c (_dbus_get_tmpdir): 
262         add void as the parameter so some compilers
263         don't complain
264
265         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_domain_socket,
266           _dbus_transport_new_for_tcp_socket):
267         Send a NULL into _dbus_transport_new_for_fd instead of a FALSE
268         because we are expecting a pointer not a boolean
269
270         * test/shell-test.c (test_command_line):
271         cast the second argument to _dbus_list_append to avoid compiler
272         warnings
273
274         * test/test-names.c (main): remove unused variable
275
276         * test/test-service.c (check_hello_from_self_reply):
277         Initialize echo_message and echo_reply to NULL
278         
279         * test/test-shell-service.c (handle_echo):
280         Remove unused variable and cast the third parameter passed to
281         dbus_connection_get_object_path_data to avoid compiler warrnings
282
283         * test/name-test/test-names.c (clear_message_queue):
284         Remove unused function
285
286         * test/name-test/test-pending-call-dispatch.c:
287         Fix format string in printf
288
289
290 2006-08-14  John (J5) Palmieri  <johnp@redhat.com>
291
292         * dbus/dbus-bus.c:
293         * test/name-test/test-names.c:
294         Remove test method dbus_bus_connection_get_unique_name because 
295         we already have public method dbus_bus_get_unique_name that 
296         does the exact same thing
297
298 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
299
300         * dbus/dbus-signature.c:
301         fix typos in Julio's previous patch which cause make check to fail
302
303 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
304
305         * dbus/dbus-address.c (_dbus_address_test): Revert leaking strcmp.  
306         In any case it was wrong since this is a test checking to see if
307         address parsing is correct.  There was no need to get the true
308         tmp directory.  
309
310 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
311
312         * dbus/dbus-macros.h: Revert the addition of stddef.h
313         as we should not be adding it to library headers 
314
315 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
316
317         * dbus/dbus-signature.c:
318         Fix the unit tests so that they work if assertions are not enabled.
319         (patch from Julio M. Merino Vidal  <jmmv at NetBSD dot org>)
320
321 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
322
323         * tools/run-with-tmp-session-bus.sh:
324         * test/name-test/run-test.sh:
325         Remove bashisms (patch from Julio M. Merino Vidal
326         <jmmv at NetBSD dot org>)
327
328 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
329
330         * configure.in: add a version (>= 2.6.0) check for libxml2
331
332 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
333
334         * configure.in: make sure the compiler supports -Wfloat-equal
335         
336         * bus/dir-watch-dnotify.c: move functional code after 
337         variable declerations (C99 fix)  (patches from Jens Granseuer
338         <jensgr at gmx dot net>
339
340 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
341
342         * dbus/dbus-macros.h:
343         add #include <stddef.h> so that Sun compilers don't complain about
344         the defining NULL
345
346 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
347
348         * dbus/dbus-sysdeps.c:
349         * dbus/dbus-address.c:
350         * bus/activation.c:
351         * test/shell-test.c:
352         don't hardcode tmp directory (patch from Dave Meikle 
353         <dmk at davemeikle dot co dot uk>)
354
355 2006-08-09  John (J5) Palmieri  <johnp@redhat.com>
356
357         * dbus/dbus-dataslot.c (_dbus_data_slot_allocator_alloc):
358         Change an assert to a detailed warning and abort.  
359         When allocator->lock != mutex it indicates that the user has failed
360         to initalize threads before using the D-Bus library.  This warning
361         helps the user identify the issue and fix their app.
362
363 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
364
365         These are all patches from Kjartan Maraas <kmaraas at gnome dot org>
366         with cleanups of bugs found from Coverity reports:
367
368         * dbus/dbus-sysdeps-util.c (_dbus_write_pid_file):
369         close the file on error to avoid a leak
370
371         * bus/expirelist.c (bus_expire_list_test):
372         Check for NULL on dbus_new0
373
374         * bus/activation.c (update_directory):
375         remove dead code
376
377         * bus/config-parser.c (merge_service_context_hash, start_selinux_child):
378         Fix some leaks
379
380         * bus/bus.c (process_config_every_time):
381         Fixed a leak
382
383         * bus/desktop-file.c (parse_key_value):
384         Fixed leak
385
386         * bus/selinux.c (bus_selinux_id_table_insert):
387         Fixed leak
388
389 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
390
391         * dbus/dbus-object-tree.c (_dbus_object_subtree_new):
392         remove dead code
393
394 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
395
396         * tools/run-with-tmp-session-bus.sh: use #!/bin/sh instead of
397         #!/bin/bash
398
399 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
400
401         * Doxyfile.in: fix the INPUT line so we can generate docs 
402         when sourcedir != builddir (patch from Cygwin Ports maintainer
403         <yselkowitz at users dot sourceforge dot net>
404
405 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
406
407         * dbus/dbus-sysdeps.h:
408         * dbus/dbus-sysdeps.c: 
409         * dbus/dbus-string.c: 
410         s/_dbus_printf_length/_dbus_printf_string_upper_bound to comform with
411         GLib's function which does the same thing
412
413         * configure.in:
414         * bus/Makefile.am:
415         * bus/dir-watch-default.c:
416         * bus/dir-watch-dnotify.c:
417         * bus/dir-watch-kqueue.c:
418         Add kqueue directory watching for freebsd and split the directory
419         watching code into seperate files per method/arch
420         (patches from Timothy Redaelli <drizzt at gufi dotorg>)
421
422 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
423
424         * configure.in:
425         * tools/Makefile.am:
426         * tools/dbus-launch.c:
427         * bus/Makefile.am:
428         allow --with-dbus-daemondir switch to be used to make the
429         daemon install to a seperate bindir like /usr/libexec
430         (patch from Brian Cameron <brian dot cameron at sun dot com)
431
432 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
433
434         * bus/Makefile.am (install-data-hook): removed the slash after 
435         $(DESTDIR) so we don't get the double slash which does not work
436         in windows (patch from Andras Porjesz 
437         <andras dot porjesz at siemens dot com>)
438
439 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
440
441         * dbus/dbus-sysdeps.h:
442         * dbus/dbus-sysdeps.c: 
443           add _dbus_printf_length (patch from Peter Kümmel 
444           <syntheticpp at gmx dot net>)
445
446 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
447
448         * dbus/dbus-internals.c: unistd.h is not used 
449         (_dbus_verbose_real): only enable verbose printing 
450         if DBUS_VERBOSE environment var is set to '1'
451         (patch from Peter Kümmel <syntheticpp at gmx dot net>)
452
453 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
454
455         * configure.in: add a GCC flag check for -Wdeclaration-after-statement
456         so we still compile on older gcc (patch from Frederic Peters 
457         <fpeters at 0d dot be>
458
459 2006-08-04  Havoc Pennington  <hp@redhat.com>
460
461         * configure.in: add -Wdeclaration-after-statement
462
463         * dbus/dbus-connection.c: change all the pending call stuff to
464         reflect the fact that pending call operations use the connection
465         lock
466
467         * dbus/dbus-pending-call.c: add locking here
468
469         * dbus/dbus-errors.c (struct DBusRealError): don't make the name
470         field const consistent with how message field is done
471
472 2006-08-03  John (J5) Palmieri  <johnp@redhat.com>
473
474         * s/D-BUS/D-Bus/g
475
476 2006-08-03  John (J5) Palmieri  <johnp@redhat.com>
477
478         * dbus/dbus-object-tree.c: Patch by Benjamin Otte 
479         <in7y118 at public.uni-hamburg dot de> - fix invalid
480         read/write reported by valgrind
481
482 2006-07-24  John (J5) Palmieri  <johnp@redhat.com>
483
484         * Released 0.91
485
486 2006-07-22  John (J5) Palmieri  <johnp@redhat.com>
487
488         * dbus/dbus-connection.c:
489         (_dbus_connection_attach_pending_call_unlocked):
490         (connection_timeout_and_complete_all_pending_calls_unlocked):
491         Make sure we set timeout_added on pending calls to FALSE when
492         we remove the timeout from the connection
493
494 2006-07-21  John (J5) Palmieri  <johnp@redhat.com>
495
496         * Removed some extra bindings stuff lingering around (thanks timo)
497         * dbus-pendingcall.c (_dbus_pending_call_new): 
498         s/dbus_connection_ref/_dbus_connection_ref_unlocked fixes assertion
499         when we tried to take a lock on an already locked connection
500
501 2006-07-17  John (J5) Palmieri  <johnp@redhat.com>
502
503         * Released 0.90
504
505 2006-07-17  Havoc Pennington  <hp@redhat.com>
506
507         * dbus/dbus-marshal-basic.c (_dbus_type_to_string): support 64-bit
508         ints, reported by Owen Taylor
509
510 2006-07-17  John (J5) Palmieri  <johnp@redhat.com>
511
512         * doc/TODO:
513         * dbus/dbus-bus.c:
514         * dbus-errors.c:
515         * dbus/dbus-marshal-validate.c:
516           Removed TODO items which were fixed or are no longer relevent
517
518 2006-07-17  John (J5) Palmieri  <johnp@redhat.com>
519
520         * dbus-qt4-1.pc.in, dbus-sharp.pc.in:
521         Remove stray files from the stripped bindings
522
523 2006-07-16  Havoc Pennington  <hp@redhat.com>
524
525         * dbus/dbus-pending-call.c (_dbus_pending_call_set_timeout_error):
526         Improve the error message on reply timeout
527
528 2006-07-14  John (J5) Palmieri  <johnp@redhat.com>
529
530         * Remove all bindings
531
532 2006-07-13  John (J5) Palmieri  <johnp@redhat.com>
533
534         * dbus-connection.c (dbus_connection_send_with_reply): return TRUE
535         and set pending_reply out arg to NULL is connection is disconnected
536         (connection_timeout_and_complete_all_pending_calls_unlocked): New
537         static method for cleaning up pending calls on disconnect
538         (_dbus_connection_get_dispatch_status_unlocked): If we have pending 
539         calls queued timeouts on disconnect 
540
541          * dbus/dbus-pending-call.c (_dbus_pending_call_set_connection):
542         Remove 
543
544 2006-07-13  Carlos Garcia Campos  <carlosgc@gnome.org>
545
546         * bus/activation.[ch] (bus_activation_list_services): new function to 
547         get the list of services that can be activated
548
549         * bus/dispatch.c: test coverage for the new bus method
550         ListActivatableNames
551
552         * bus/driver.c: new bus method ListActivatableNames to get the list of
553         services that can be activated
554
555         * doc/dbus-specification.xml: ListActivatableNames method documentation
556
557 2006-07-12  John (J5) Palmieri  <johnp@redhat.com>
558         * dbus/Makefile.am: add dbus-pending-call-internal.h to the list of
559         source files
560
561 2006-07-12  John (J5) Palmieri  <johnp@redhat.com>
562         * dbus/dbus-message-factory.c:
563         Fix index into an array (patch by Peter Kümmel <syntheticpp at gmx.net>)
564
565 2006-07-12  John (J5) Palmieri  <johnp@redhat.com>
566         * dbus/dbus-connection-internal.h:
567         * dbus/dbus-connection.c:
568         * file dbus/dbus-pending-call.c:
569         * dbus/dbus-pending-call.h:
570         Make DBusPendingCall an opaque type even to D-Bus internals
571
572 2006-07-07  John (J5) Palmieri  <johnp@redhat.com>
573
574         * dbus/dbus-connection.h: remove connection_disconnect and replace with
575         connection_close
576
577         * dbus/dbus-connection.c: include dbus-bus.h
578         (_dbus_connection_read_write_dispatch): make static
579
580 2006-07-07  John (J5) Palmieri  <johnp@redhat.com>
581
582         * dbus/dbus-connection.c (dbus_connection_close): removed deprecated
583         function
584         (dbus_connection_dispatch): On disconnect unref any shared connections
585
586         * dbus/dbus-bus.c (_dbus_bus_check_connection_and_unref): new function
587         for cleaning up shared connections on disconnect
588         (internal_bus_get): get a hard refrence to shared connections when
589         they are created
590         
591         * doc/TODO: Remove items which are no longer relevent or have been fixed
592         Split 1.0 todo items with a 0.90 freeze todo list
593  
594 2006-06-14  Ross Burton  <ross@openedhand.com>
595
596         * glib/dbus-gobject.c:
597         Free a leaking GArray (surely not!) in dbus_g_method_return.
598
599 2006-06-14  Ross Burton  <ross@openedhand.com>
600
601         * tools/Makefile.am:
602         * tools/dbus-monitor.c:
603         Don't use the GLib bindings in dbus-monitor (patch from Ralf
604         Habacker).
605         
606 2006-06-14  Ross Burton  <ross@openedhand.com>
607
608         * tools/dbus-print-message.c:
609         Also print the object path when outputting signals or method calls.
610
611 2006-06-13  Thiago Macieira <thiago.macieira@trolltech.com>
612
613         * qt/src/Makefile.am: install the qdbus.h header.
614         This allows people to actually use the installed code.
615
616 2006-06-12  Ross Burton  <ross@openedhand.com>
617
618         * glib/dbus-gproxy.c:
619         Don't leak a GArray when firing signals (thank Rob Taylor for review).
620
621 2006-06-12  Thiago Macieira <thiago.macieira@trolltech.com>
622
623         * Released 0.62
624
625 2006-06-12  Thiago Macieira <thiago.macieira@trolltech.com>
626
627         * dbus/dbus-arch-deps.h.in: Remove spurious semi-colons that
628         break pedantic builds. Closes bug 6043 (patch approved by
629         Havoc back in February).
630
631 2006-06-12  Thiago Macieira <thiago.macieira@trolltech.com>
632
633         * qt/src/qdbusintegrator.cpp: Fix bug in parsing async methods
634         that took a QDBusMessage parameter.
635         * qt/src/qdbusbus.h: Add a default flag for RequestName.
636         * qt/tools/dbus.cpp: Don't use automatic call because we might
637         be calling an async method: request a reply.
638
639 2006-06-11  Thiago Macieira <thiago.macieira@trolltech.com>
640
641         * test/qt/*: Update the testcases, including testing the new
642         functionality of sending null QByteArray and QString over the
643         bus. Add new headertest test and restore the old
644         qdbusxmlparser test.
645
646 2006-06-11  Thiago Macieira <thiago.macieira@trolltech.com>
647
648         * qt/tools/dbuscpp2xml.cpp: Compile on Windows.
649         * qt/tools/dbusidl2cpp.cpp: Add missing newline.
650
651         * qt/examples/Makefile.am:
652         * qt/examples/chat.h: Use UI-generated files with the ui_*.h
653         form.
654
655         * qt/src/qdbusmarshall.cpp: Allow sending of QString() and
656         QByteArray() (nulls) over the bus.
657         * qt/src/qdbusabstractinterface.cpp: Use the correct variable,
658         the one that has the signature suffix stripped.
659         * qt/src/qdbusreply.h: Make some methods const.
660
661 2006-06-09  Thiago Macieira <thiago.macieira@trolltech.com>
662
663         Patch from Timo Hoenig <thoenig@suse.de>.
664
665         * qt/dbus/Makefile.am: New file.  Fix "make dist", add all headers
666         required during build to EXTRA_DIST.
667         * qt/src/Makefile.am: Fix "make dist", add 'qdbus.h' to EXTRA_DIST.
668         * qt/Makefile.am: Fix "make dist", add 'dbus' to DIST_SUBDIRS.
669         * configure.in: Fix "make dist", take care that the Makefile for
670         qt/dbus is being generated.
671
672 2006-06-07  John (J5) Palmieri  <johnp@redhat.com>
673
674         * bus/bus.c: Fix eavesdropping on method calls
675
676 2006-06-07  John (J5) Palmieri  <johnp@redhat.com>
677
678         * configure.in:
679         * dbus/dbus-userdb-util.c:
680         Add Solaris console owner patch from Artem Kachitchkine
681
682 2006-06-07  Thiago Macieira <thiago.macieira@trolltech.com>
683
684         * qt/Makfile.am:
685         * qt/src/Makefile.am: Fix the EXTRA_DIST after the
686         reorganisation. Thanks to Timo Hoenig for pointing this out.
687
688 2006-06-06  Robert McQueen  <robot101@debian.org>
689
690         * glib/dbus-gtype-specialized.c: Fix obvious leak of GArray in every
691           call to dbus_g_type_get_struct.
692
693 2006-06-06  Robert McQueen  <robot101@debian.org>
694
695         * glib/dbus-gvalue-utils.c: Fix the failing test where static string
696           pointers were put into a GPtrArray-based specialised collection, and
697           then freed along with the array. GValues which you add into
698           collections or maps which have the NOCOPY flag set are assumed to not
699           belong to the caller, so rather than the existing pointer-stealing
700           semantics, they are copied instead. Given that the main consumers of
701           this abstraction are the bindings themselves, I don't think this is
702           too bad, but others should watch their choice of take vs set_static.
703
704 2006-06-06  Robert McQueen  <robot101@debian.org>
705
706         * glib/dbus-gvalue-utils.c: Spotted a warning about the return value
707           of g_slist_prepend not being used. Fixed copying of slist-based
708           specialised collections, then wrote a test case and found that it was
709           all broken. Went on to fix iterating and appending too. Good thing
710           nobody uses this code yet.
711
712 2006-06-06  Robert McQueen  <robot101@debian.org>
713
714         * glib/dbus-gvalue-utils.c: Remove duplicated code by having all of
715           the iterators use gvalue_take_ptrarray_value (the GValues themselves
716           are discarded without unsetting, so it makes no difference whether
717           we take or set_static). Remove cases for G_TYPE_POINTER because
718           there really is nothing useful we can do with them in our
719           specialised types - we *need* boxed copy/free functions at the very
720           least.
721
722 2006-06-05  Thiago Macieira <thiago.macieira@trolltech.com>
723
724         * qt/dbus: Add directory. I had forgotten to add this
725         yesterday after the move...
726
727         * qt/examples/Makefile.am:
728         * qt/examples/dbus.cpp: Moved to qt/tools/dbus.cpp.
729
730         * qt/tools/Makefile.am:
731         * qt/tools/dbus.cpp: Moved from qt/examples/dbus.cpp.
732         Added feature to get and set properties.
733         Added validation of service, object path and interface names.
734
735         * qt/tools/dbusidl2cpp.cpp: Two new features:
736         1) Allow specifying both the header and the source file names,
737         by separating them with a colon.
738         2) Don't write an interface output if the -p switch wasn't
739         given, but the -a was.
740
741         * qt/src/*: Fix usage of Iterators and ConstIterators.
742         Fix shadowing of variables by other variables (-Wshadow).
743         Fix keyword-cleanliness in headers.
744         Fix ASCII-cast (QLatin1String, QLatin1Char).
745         Fix validation of member names.
746         Add extra checking of introspection data during XML parsing.
747         Various bug fixes.
748
749 2006-06-04  Thiago Macieira <thiago.macieira@trolltech.com>
750
751         * dbus/Makefile.am:
752         * dbus/qdbus.h: Remove unnecessary file. This is mirrored into
753         qt/dbus/qdbus.h now.
754
755 2006-06-04  Thiago Macieira <thiago.macieira@trolltech.com>
756
757         * configure.in: Make --disable-qt actually do
758           something. Patch inspired by Zack Rusin.
759
760 2006-06-04  Thiago Macieira <thiago.macieira@trolltech.com>
761
762         * qt/: Update to Subversion r548032.
763         This includes a big reorganisation of the files inside the
764         subdir.
765
766 2006-05-30  Sjoerd Simons  <sjoerd@luon.net>
767
768         * dbus/dbus-sysdeps.c: Make tcp socket connection error somewhat more
769         clear:  
770         "Failed to connect to socket <host>:<port> <error>" instead of
771         "Failed to connect to socket <host>: <error>:<port>"
772
773         * dbus/dbus-transport-unix.c: Fix crash when no host option is given
774         for a tcp transport. 
775
776 2006-05-29  Thiago Macieira  <thiago.macieira@trolltech.com>
777
778         * qt/*: Update the QtDBus bindings up to revision 546310 in
779         Subversion.
780         This adds the dbuscpp2xml tool, that parses a C++ header and
781         outputs a D-BUS Introspection XML.
782
783 2006-05-21  Havoc Pennington  <hp@redhat.com>
784
785         * glib/dbus-gproxy.c: Put in a pile of assertions that the proxy name
786         is not NULL when it shouldn't be. Also a couple of possible fixes
787         for #4637 though I don't understand why the bug happens, to be
788         honest... also the object constructor has an assert name != NULL
789         and the name is only currently NULL for peer-to-peer proxies that 
790         I don't think anyone uses? So it should be asserting.
791         Anyway, for now at least see if we get an earlier assertion failure.
792
793         * glib/dbus-gvalue-utils.c: Put in a couple of assertions for
794         apparently broken code to be sure the tests fail and someone 
795         will fix them...
796
797 2006-05-07  Thiago Macieira  <thiago.macieira@trolltech.com>
798
799         * qt/qdbusmarshall.cpp: Fix a problem of demarshalling lists
800         and arrays when they had a single element: has_next returns
801         false, even before you read the element. So, instead, check
802         the array length.
803
804 2006-05-06  Thiago Macieira  <thiago.macieira@trolltech.com>
805
806         * qt/qdbusmessage.cpp:
807         * qt/qdbustypehelper_p.h:
808         * qt/qdbusintegrator.cpp: gcc 3.4 doesn't like Q_FOREACH when
809         the list is a const-reference
810
811 2006-05-03  John (J5) Palmieri  <johnp@redhat.com>
812
813         * Adding old doc patch that never got applied
814         
815         * dbus/bus.c (dbus_bus_add_match): Add documentation
816
817         * doc/dbus-specification.xml: Add documentation for the match rules
818           and the AddMatch and RemoveMatch methods
819
820 2006-05-02  Thiago Macieira  <thiago.macieira@trolltech.com>
821
822         * qt/dbusidl2cpp.cpp: There's no callAsync. Use the correct
823         call (r535506)
824
825         * qt/dbusidl2cpp.cpp:
826         * qt/qdbusabstractadaptor.cpp:
827         * qt/qdbusabstractadaptor.h: Make QDBusAdaptorConnector be a
828         sibling of the QDBusAbstractAdaptor objects instead of the
829         parent. (r535848)
830
831         * qt/dbusidl2cpp.cpp:
832         * qt/qdbusabstractinterface.cpp:
833         * qt/qdbusabstractinterface.h:
834         * qt/qdbusabstractinterface_p.h:
835         * qt/qdbusinterface.cpp: Make properties in interfaces
836         actually work. The code that was generated would not compile,
837         due to moc calls to functions that did not exist. They now
838         shall. (r536571)
839
840 2006-04-30  Thiago Macieira  <thiago.macieira@trolltech.com>
841
842         * Makefile.am:
843         * configure.in:
844         * dbus-qt4-1.pc.in: Add a pkg-config file for libdbus-qt4-1.
845         Thanks to Brad Hards for providing the patch
846
847 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
848
849         * qt/dbusidl2cpp.cpp: There's no callAsync. Use the correct
850         call. (r535506)
851
852 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
853
854         * qt/examples/dbus.cpp: Enhance error messages and use
855         QDBusInterfacePtr.
856
857 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
858
859         * qt/qdbusinterface.h: Rename QDBusRef to QDBusInterfacePtr
860         and disable the copy operators. (r533772, r534746)
861
862         * qt/qdbuserror.h: Remove the automatic cast to bool. (r533929)
863
864         * qt/qdbusabstractinterface.cpp:
865         * qt/qdbusabstractinterface.h: Change the default call mode to
866         not use the event loop. Add convenience call() methods that
867         take a CallMode parameter. (r534042)
868
869         * qt/qdbusconnection.h: Change the default call mode to not
870         use the event loop. (r534042)
871
872         * qt/qdbusinterface.cpp:
873         * qt/qdbusinterface.h: Add a method to tell us if the
874         interface is valid (since we don't return a null pointer
875         anymore) (r534099)
876
877         * qt/qdbusinterface_p.h: Don't crash if metaObject is 0
878         (r534101)
879
880         * qt/qdbusinternalfilters.cpp: Decouple the introspection
881         function in two so taht we get the chance to introspect
882         without having a QDBusMessage (r534102)
883
884         * qt/qdbusbus.h:
885         * qt/qdbusconnection.cpp:
886         * qt/qdbusconnection_p.h:
887         * qt/qdbusintegrator.cpp: Keep a list of our own names to
888         avoid a round-trip to the server when attempting to introspect
889         one of our own objects. Also make sure the filter functions
890         match the empty interface as well. (r534108)
891         Don't keep the connection names. Instead, trust the unique
892         connection name (r534111)
893         Remove event loop usage (r534112)
894
895 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
896
897         * qt/qdbusintegrator.cpp: Fix assertion failure spotted by
898         Brad Hards.
899
900 2006-04-28  Robert McQueen  <robot101@debian.org>
901
902         * glib/dbus-gproxy.c: Fix properties so that they can be given in
903         any order, making it easier for people who inherit from this
904         object.
905
906 2006-04-28  Robert McQueen  <robot101@debian.org>
907
908         * glib/dbus-gvalue-utils.c: Patch from Jakub Stachowski to fix leaking
909         of memory from within pointer arrays and lists. Fixes bug #6300.
910
911 2006-04-28  Robert McQueen  <robot101@debian.org>
912
913         * glib/dbus-gvalue.c: Patch from Jakub Stachowski to fix a leak in
914         generating struct signatures. Fixes bug #6083.
915
916 2006-04-28  Robert McQueen  <robot101@debian.org>
917
918         * qt/Makefile.am: Tweak CLEANFILES from qdbusconnection.moc
919         to qdbusconnection_p.moc.
920
921 2006-04-24 John (J5) Palmieri <johnp@redhat.com>
922
923         * README, INSTALL: Doc fixes
924         Patch from Brad Hards <bradh at frogmouth.net>
925
926 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
927
928         * qt/examples/dbus.cpp: Use the new merged-interface mode for
929         the dynamic meta object. No need to guess which interface to
930         call.
931
932 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
933
934         * qt/qdbusconnection_p.h:
935         * qt/qdbusmetaobject.cpp:
936         * qt/qdbusmetaobject_p.h:
937         * qt/qdbusintegrator.cpp: Use the new merged-interface mode
938         for the dynamic meta object. No need to guess which
939         interface to call.
940         * qt/qdbusabstractinterface_p.h:
941         * qt/qdbusconnection.cpp:
942         * qt/qdbusintegrator.cpp:
943         * qt/qdbusinterface.cpp:
944         * qt/qdbusinterface.h: Make findInterface always return a non-null pointer.
945         Add a QDBusRef that looks and behaves like DCOPRef.
946
947 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
948
949         * dbus/dbus-connection.c: Interfaces are optional in method
950         calls, so don't give up if the interface parameter is NULL.
951         Patch reviewed by Havoc Pennington.
952
953 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
954
955         * qt/qdbusreply.h: Add default constructor and operator=
956           (r532625)
957         * qt/qdbustypehelper_p.h: Use a clean namespace: no foreach()
958           in public headers (r532952)
959         * qt/qdbusabstractinterface.cpp:
960         * qt/qdbusabstractinterface_p.h: Add the AutoDetect mode and
961           make it the default (r532951)
962
963 2006-04-19  John (J5) Palmieri  <johnp@redhat.com>
964
965         * dbus/dbus-connection.c: Fix asserts
966         Patch from Tim Moloney <t.moloney at verizon.net>
967
968 2006-04-19  John (J5) Palmieri  <johnp@redhat.com>
969
970         * mono/Connection.cs, mono/Message.cs: Check Target type
971         Patch from Aaron Bockover (abockover at novell.com)
972
973 2006-04-13  Thiago Macieira  <thiago.macieira@trolltech.com>
974
975         * INSTALL: fine-tune the requirements for the Qt4 binding.
976
977 2006-04-16  Daniel P. Berrange  <dan@berrange.com>
978
979         * tools/dbus-print-message.c: Added support for printing of all 
980           remaining data types. Fixed logic for indentation of compound
981           data types.
982         
983 2006-04-15  Daniel P. Berrange  <dan@berrange.com>
984
985         * INSTALL: fill out content of file providing DBus specific
986           build installations, followed by generic Auto* INSTALL file
987           content
988         
989 2006-04-13  Thiago Macieira  <thiago.macieira@trolltech.com>
990
991         * qt/qdbusintegrator.cpp: Work around g++ 3.3 bug.
992           Patch by Stefan Eilers. (r529537)
993
994 2006-04-13  Thiago Macieira  <thiago.macieira@trolltech.com>
995
996         * qt/qdbusinternalfilters.cpp: Don't show the parent's
997           contents (r528208)
998
999 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
1000
1001         * qt/Makefile.am: fix the dependency for
1002           qdbusconnection_p.moc. It's included in qdbusintegrator.cpp,
1003           not in qdbusconnection.cpp.
1004           Thanks to Jakub Stachowski <stachowski@hypair.net> for
1005           spotting this.
1006
1007 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
1008
1009         * qt/examples/listnames.cpp:
1010         * qt/examples/Makefile.am: Three ways to list the names on the
1011           bus.
1012
1013 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
1014
1015         * test/qt/tst_hal.cpp: Remove the waiting, since it's not
1016           needed anymore. Requires Qt 4.1.3 to work properly. (r528148)
1017
1018 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
1019
1020         Merge from Subversion:
1021         * qt/qt-dbus.qdocconf: Update Trolltech's webpage link to
1022           something that exists (r526315)
1023         * qt/qdbusinternalfilters.cpp: Correctly detect non-scriptable
1024           slots/signals (r526316)
1025         * qt/qdbusinternalfilters.cpp: Fix the setProperty call and
1026           also return an unknown-method error if the parameters don't
1027           match for org.freedesktop.DBus.Properties. (r526842)
1028         * qt/examples/dbus.cpp: Allow passing of QVariants (r526843)
1029         * qt/qdbusintegrator.cpp: Restore the proper order of
1030           delivery: don't make method returns be delivered on priority
1031           (r528150)
1032
1033 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
1034
1035         * configure.in qt/Makefile.am: add qt/examples
1036         * qt/examples: Add QtDBus example programs:
1037           - hello: Hello, World
1038           - ping: Simple method-calling program
1039           - pong: Simple object-exporting program (not using adaptors)
1040           - complexping: Interactive method-calling program 
1041                 (also gets and sets properties).
1042           - complexpong: Sample program exporting methods, signals and
1043                 properties, using adaptors.
1044           - dbus: Simple implementation of a generic method-calling
1045                 program, similar to 'dbus-send', but with semantics
1046                 similar to 'dcop'.
1047           - chat: Simplistic chat program, implemented using signals
1048                 and the system bus. Looks like IRC.
1049
1050 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
1051
1052         * configure.in: Detect QtGui (necessary for one of the
1053           example programs). Note: this increases the minimum required
1054           version of Qt to 4.1.3.
1055
1056 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
1057
1058         * test/qt/*: Sync with KDE Subversion revision 523647.
1059         Update the testcases to the new API. Remove testcases for
1060         classes that are no longer public or have been removed.
1061
1062 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
1063
1064         * qt/*: 
1065         * dbus/qdbus.h: Sync with KDE Subversion revision
1066         523647. Hopefully, this will be the last of the
1067         source-incompatible changes. Documentation has been improved;
1068         support for QList<basic-types> has been added; QDBusObject is
1069         gone; QDBus(Abstract)Interface is now a QObject with
1070         auto-generated meta-object; QDBusIntrospection is marked
1071         private, since QMetaObject can be used now; lots of bugfixes.
1072
1073 2006-03-16  John (J5) Palmieri  <johnp@redhat.com>
1074
1075         Patch from Milosz Derezynski <internalerror at gmail.com>
1076         
1077         * configure.in:
1078         Output the service directory in the configure summary
1079
1080         * dbus-1.pc.in:
1081         Add session_bus_services_dir
1082
1083 2006-03-10  Ross Burton  <ross@openedhand.com>
1084
1085         * tools/dbus-print-message.c:
1086         Add support for object paths and signatures.
1087
1088 2006-03-06  Sjoerd Simons <sjoerd@luon.net>
1089
1090         * bus/bus.c: (bus_context_reload_config): Flush the user database cache on
1091         config reload.
1092         * bus/dbus-daemon.1.in: Also note that SIGHUP flushes the user/group
1093         information caches
1094         * dbus/dbus-hash.c: (_dbus_hash_table_remove_all): 
1095         * dbus/dbus-hash.h: Add function to remove all entries from a hash table
1096         * dbus/dbus-userdb.c: (_dbus_user_database_flush):
1097         * dbus/dbus-userdb.h: Add function to flush all user/group information
1098         caches.
1099
1100 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
1101
1102         * qt/dbusidl2cpp.cpp:
1103         * qt/Makefile.am: add the dbusidl2cpp tool, the replacement
1104         for dcopidl2cpp, found in the KDE installations (or the more
1105         modern kalyptus): generate Qt4 C++ code for the input XML
1106         introspection. Currently no IDL parsing.
1107
1108 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
1109
1110         * test/qt/*: Update the self-tests.
1111
1112 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
1113
1114         * qt/*: 
1115         * dbus/qdbus.h: Sync with KDE Subversion revision 516237. This
1116         represents the first feature-complete version of the Qt4
1117         bindings since I took ove maintainership.
1118
1119 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
1120
1121         * qt/Doxyfile: Adding a Doxyfile for the Qt4 bindings
1122         dir. This is C++, so we can't use the DBus ones.
1123
1124 2006-03-02  John (J5) Palmieri  <johnp@redhat.com>
1125
1126         * python/dbus_bindings.pyx: Remove refrence to sys/cdefs.h
1127         (Patch from Artem Kachitchkine <Artem.Kachitchkin at Sun.COM>)
1128
1129 2006-03-02  John (J5) Palmieri  <johnp@redhat.com>
1130
1131         * dbus/dbus-connection.c: 
1132         (_dbus_connection_block_pending_call):
1133         Check to see if our data has already been read off the connection
1134         by another blocking pending call before we block in poll.
1135         (check_for_reply_and_update_dispatch_unlocked):
1136         Code taken from _dbus_connection_block_pending_call - checks for
1137         an already read reply and updates the dispatch if there is one.
1138
1139         * test/name-test/test-pending-call-dispatch.c:
1140         New test for making sure we don't get stuck polling a 
1141         dbus connection which has no data on the socket when
1142         blocking out of order on two or more pending calls.
1143
1144 2006-02-28  Thiago Macieira <thiago.macieira@trolltech.com>
1145
1146         * qt/Makefile.am: Patch by Sjoerd Simons. More .moc issues:
1147         make/automake don't detect that we're talking about the same
1148         .lo file if I specify the full path to the source files.
1149
1150 2006-02-26  Havoc Pennington  <hp@redhat.com>
1151
1152         * bus/dbus-daemon.1.in: improve the language in a couple spots I noticed
1153
1154         * dbus/dbus-bus.c (internal_bus_get): in the error message if the
1155         session bus variable is unset, suggest "man dbus-launch" and "man
1156         dbus-daemon" to figure out how to fix the problem
1157
1158 2006-02-25  Havoc Pennington  <hp@redhat.com>
1159
1160         * glib/dbus-glib-tool.c (usage): fix up the usage message, someone
1161         should make this thing use the new glib options parser
1162
1163 2006-02-25  Thiago Macieira <thiago.macieira@trolltech.com>
1164
1165         * qt/Makefile.am: Patch by Sjoerd Simons. Fix the path to the
1166         .lo files taking moc sources.
1167
1168 2006-02-25  Havoc Pennington  <hp@redhat.com>
1169
1170         * dbus/dbus.h, dbus/Makefile.am: add dbus-signature.h to dbus.h
1171         and install it as a public header
1172
1173 2006-02-24  John (J5) Palmieri  <johnp@redhat.com>
1174
1175         * Released 0.61
1176
1177 2006-02-24  John (J5) Palmieri  <johnp@redhat.com>
1178         
1179         * proxies.py: Fix the callchain
1180
1181 2006-02-24  John (J5) Palmieri <johnp@redhat.com>
1182         
1183         * patch from Sjoerd Simons <sjoerd at debian.org>:      
1184
1185         * dbus/dbus-sysdeps-util.c (_dbus_group_info_free): Moved to 
1186         dbus/dbus-sysdeps.c
1187
1188         * dbus/dbus-userdb.c (_dbus_group_info_free_allocated): Don't
1189         call _dbus_group_info_free_allocated which causes infinite loop,
1190         correctly call _dbus_group_info_free
1191
1192 2006-02-20  Thiago Macieira <thiago.macieira@trolltech.com>
1193
1194         * qt/qdbusinterface_p.h:
1195         * qt/qdbusinterface.cpp: Use the standard
1196         org.freedesktop.DBus.Method.NoReply annotation for the "async"
1197         calls instead of creating one for us.
1198
1199         * qt/qdbusconnection_p.h:
1200         * qt/qdbusintegrator.cpp: Remove debugging code.
1201
1202         * qt/qdbusintegrator.cpp:
1203         * qt/qdbusmessage.cpp:
1204         * qt/qdbusmessage_p.h:
1205         * qt/qdbusmessage.h: Change the behaviour of automatic
1206         reply-sending: now a reply is always sent, unless the caller
1207         didn't request one or if the user slot has already sent one.
1208
1209 2006-02-16  Robert McQueen  <robot101@debian.org>
1210
1211         * configure.in: Patch from Debian packages by Sjoerd Simons
1212         <sjoerd@debian.org> to add --with-qt-moc and --with-qt3-moc
1213         arguments so it's possible to build both bindings in the
1214         same tree.
1215
1216         * qt/Makefile.am: Fix truncated value so that make dist works.
1217
1218 2006-02-16  Robert McQueen  <robot101@debian.org>
1219
1220         * acinclude.m4, configure.in: Patch from Brad Hards
1221         <bradh@frogmouth.net> to avoid warnings from autoconf 1.9 by
1222         improving quoting, re-ordering a few checks, and a few other
1223         aesthetic tidy-ups.
1224
1225 2006-02-16  Robert McQueen  <robot101@debian.org>
1226
1227         * dbus/dbus-message.c (dbus_message_iter_get_fixed_array):
1228         Patch from Rob Taylor <rob.taylor@collabora.co.uk> to correct a bogus
1229         assertion that the next element to read from the iter is fixed in
1230         size. This is not the case when you are at the end of the iter,
1231         because the next element type is INVALID.
1232
1233         * dbus/dbus-string.c (_dbus_string_init_const_len): Correct a
1234         a bogus assert which means that you may not initialise a 0-length
1235         string unless you provide a non-NULL pointer. This prevented
1236         you from marshalling messages containing zero-length arrays in
1237         some cases.
1238
1239         * glib/dbus-gvalue.c (demarshal_collection_array): Another patch
1240         from Rob to correct bogus asserts when trying to demarshal an
1241         array and get_fixed_array got you 0 elements. Append nothing to
1242         the GArray in this case.
1243
1244         * test/glib/test-dbus-glib.c: Add a test case for round-tripping
1245         an empty array via the glib bindings. Without all of the above
1246         patches, this new test fails.
1247
1248 2006-02-16  Robert McQueen  <robot101@debian.org>
1249
1250         * glib/dbus-gmain.c: Make the previous commit compile.
1251
1252         * python/_dbus.py, python/matchrules.py: Patch from Ole Andre
1253         Ravnaas <ole.andre.ravnaas@collabora.co.uk> to allow you to
1254         specify sender_keyword="foo", path_keyword="bar" when adding
1255         a signal listener, so that you can bind to signals generically
1256         but still do something useful in your callback.
1257
1258         * python/dbus_bindings.pyx: Demarshal the byte type as unsigned
1259         chars so that they're not cast to chars and made negative. Thanks
1260         to Jakub Stachowski for reporting this and testing the fix.
1261
1262 2006-02-15  John (J5) Palmieri  <johnp@redhat.com>
1263
1264         * dbus/dbus-glib.h:
1265         * glib/dbus-gmain.h:
1266         (dbus_g_connection_open): new method for openning
1267         a connection to an arbitrary address in the glib bindings
1268
1269         * ChangeLog: checkin last entry which doesn't seem to be commited
1270
1271 2006-02-13  John (J5) Palmieri  <johnp@redhat.com>
1272
1273         * tools/dbus-launch.c: Fixed sh syntax output
1274
1275 2006-02-13  Robert McQueen  <robot101@debian.org>
1276
1277         * glib/dbus-binding-tool-glib.c, glib/dbus-gmain.c,
1278         glib/dbus-gsignature.c, glib/dbus-gtype-specialized.c,
1279         glib/dbus-gtype-specialized.h, glib/dbus-gvalue-utils.c,
1280         glib/dbus-gvalue-utils.h, glib/dbus-gvalue.c:
1281         Patch from Rob Taylor <rob.taylor@collabora.co.uk> to add a big
1282         missing piece of the glib bindings jigsaw puzzle. This modifies
1283         the existing specialised types to have N type parameters (rather
1284         than the current 1 or 2 for arrays and dictionaries respectively).
1285         You can then use this to get a glib type to represent any arbitrary
1286         D-Bus struct type using dbus_g_type_get_struct. The only
1287         implementation of these types is with GValueArrays as before,
1288         but it's now possible to store these in arrays, emit them in
1289         signals, etc.
1290
1291 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
1292
1293         * dbus/dbus-signature.c (dbus_signature_iter_recurse): Correctly
1294         deal with nested arrays (Bug #5823) Patch by Thiago Macieira 
1295         <thiago.macieira at trolltech.com>
1296
1297 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
1298
1299         * mono/doc/Makefile.am: Fix parallel make problem with mono-doc
1300         (Bug #4213) Patch from Doug Goldstein <cardoe at gentoo.org>
1301
1302 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
1303
1304         * bus/connection.c (bus_connections_expect_reply): Make
1305         pending reply limit not common to all connections (Bug #5416)
1306         Patch from Kimmo Hämäläinen <kimmo.hamalainen at nokia.com>
1307
1308 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
1309
1310         * tools/dbus-launch.c: Fixed csh syntax output (Bug #5720)
1311
1312 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
1313
1314         * gcj/Makefile.am: point to correct jar command (Bug #4529)
1315         patch from Doug Goldstein <cardoe at gentoo.org>
1316
1317 2006-02-09  Joe Shaw  <joeshaw@novell.com>
1318
1319         * mono/Arguments.cs: Fix a magic number in the mono bindings
1320         that doesn't work on 64 bit arches.  Patch from Peter Johanson.
1321
1322 2006-01-27  Robert McQueen  <robot101@debian.org>
1323
1324         * glib/dbus-binding-tool-glib.[ch]: Patch based on Ricardo Kekki's
1325         patch to use an annotation org.freedesktop.DBus.GLib.ClientCSymbol
1326         when generating the client-side methods, instead of overloading
1327         CSymbol which broke everything horribly. My apologies.
1328
1329 2006-01-27  Robert McQueen  <robot101@debian.org>
1330
1331         * glib/dbus-gtype-specialized.[ch], glib/dbus-gvalue-utils.c: Patch
1332         by me and Rob Taylor to add a simple_free function to D-Bus map
1333         and collection types, which allows those types which can be freed
1334         with a GDestroyNotify (such as GHashTables and GArrays, but not
1335         GPtrArrays) to be stored as the values in hashtables.
1336
1337         * test/glib/test-dbus-glib.c, test/glib/test-service-glib.{c,xml}:
1338         Patch by Rob Taylor to add nested dicts to the glib tests to check
1339         the above code works, and appears not to leak when called repeatedly.
1340
1341 2006-01-27  Robert McQueen  <robot101@debian.org>
1342
1343         * glib/dbus-gvalue.c (demarshal_valuearray): Patch from Rob Taylor
1344         to free a D-Bus allocated string with dbus_free () instead of
1345         g_free ().
1346
1347 2006-01-27  Iain Holmes  <iain@openedhand.com>
1348
1349         * glib/dbus-gproxy.c (dbus_g_proxy_dispose): Protect the dispose
1350         method from being called multiple times.
1351
1352 2006-01-19  Robert McQueen  <robot101@debian.org>
1353
1354         * glib/dbus-binding-tool-glib.c: Patch from Rob Taylor
1355         <rob.taylor@collabora.co.uk> to add support for generating bindings
1356         to arrays that are represented as GPtrArrays rather than GArrays (ie
1357         size-variable things, such as strings, objects, structs, etc).
1358
1359 2006-01-05  Robert McQueen  <robot101@debian.org>
1360
1361         * dbus/dbus-glib.h, glib/dbus-gproxy.c: Patch from Ricardo Kekki
1362         <ricardo.kekki@movial.fi> to make it possible to inherit from
1363         DBusGProxy, by splitting the DBusGProxy struct into a public part and
1364         a private part, and moving the setting of the DBusGProxyManager into a
1365         connection property, allowing proper GObject construction.
1366
1367 2006-01-05  Robert McQueen  <robot101@debian.org>
1368
1369         * glib/dbus-binding-tool-glib.c: Patch from Ricardo Kekki
1370         <ricardo.kekki@movial.fi> to make dbus-binding-tool heed C symbol name
1371         annotations when generating glib client bindings.
1372
1373 2005-12-19 John (J5) Palmieri  <johnp@redhat.com>
1374
1375         * dbus/dbus-shared.h: Call it shared constants instead of shared macros
1376
1377         * dbus/dbus-protocol.h: add DOxygen markup to quiet warnings
1378
1379 2005-12-19 John (J5) Palmieri  <johnp@redhat.com>
1380
1381         * dbus/dbus-shared.h: add DOxygen markup to quiet warnings
1382
1383 2005-12-19 John (J5) Palmieri  <johnp@redhat.com> 
1384
1385         * dbus/dbus-macros.h: correct DOxygen end of section (s/}@/@})
1386
1387 2005-12-19  Ross Burton  <ross@openedhand.com>
1388
1389         * doc/dbus-tutorial.xml:
1390         Document the Glib client-side bindings, and list all possible annotations.
1391
1392 2005-12-19  John (J5) Palmieri  <johnp@redhat.com>
1393
1394         * dbus/bus.c (dbus_bus_release_name): Add documentation
1395
1396 2005-12-06  Robert McQueen  <robot101@debian.org>
1397
1398         * python/service.py: s/sucessful/successful/ so we're allocating to
1399         and reading from the same variable. Oops.
1400
1401 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
1402
1403         * Released 0.60
1404
1405 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
1406
1407         * test/qt/Makefile.am: build from srcdir
1408
1409         * qt/qtconnection.cpp (requestName): Changed PROHIBIT_REPLACE to ALLOW_REPLACE
1410         Note - this code is wrong and needs to be fixed by the Qt binding
1411         developers.  The flags should be treated as bitfields and not enums.
1412
1413         * qt/qtconnection.h: Change ProhibitReplace to AllowReplace
1414
1415 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
1416
1417         * dbus/dbus-list.c (_dbus_list_insert_after_link, _dbus_list_insert_after, 
1418           link_after): remove #ifdef DBUS_BUILD_TESTS since we use these methods 
1419           in production code
1420
1421 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
1422
1423         * dbus/dbus-connection.c (dbus_connection_read_write): Add new
1424         method for getting messages off the bus in the absence of a
1425         mainloop.  This method is much like 
1426         dbus_connection_read_write_dispatch except it does not dispatch
1427         the messages to a registered filter function.  Instead it
1428         allows a developer to process messages by directly popping
1429         them off the bus.
1430
1431 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
1432
1433         * bus/desktop-file.c (parse_key_value): Ignore locales allowing 
1434         the parser to continue instead of returning error
1435         (bus_desktop_file_load): Do not free parser data when
1436         parse_section_start or parse_key_value fails because it was 
1437         already freed by parser_free (patch from Carlos Garcia Campos  
1438         <carlosgc at gnome.org>)
1439
1440 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
1441
1442         * dbus/dbus-auth.c, dbus/dbus-connection.c, dbus/dbus-keyring.c,
1443         dbus/dbus-server-debug-pipe.c, glib/dbus-binding-tool-glib.c
1444         glib/dbus-glib-tool.c, glib/dbus-gparser.c, glib/dbus-gproxy.c
1445         test/test-segfault.c, test/test-utils.c,
1446         test/glib/test-dbus-glib.c, tools/dbus-cleanup-sockets.c
1447         tools/dbus-launch.c, tools/dbus-tree-view.c, tools/dbus-viewer.c:
1448         Various cleanup of dead code and compiler warnings (patch from
1449         Kjartan Maraas <kmaraas at gnome.org>) 
1450
1451 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
1452
1453         * glib/dbus-gmain.c (connection_setup_add_watch): plugged a leak
1454         (patch from Carlos Garnacho Parro <carlosg at gnome.org>
1455
1456 2005-11-27  Robert McQueen  <robot101@debian.org>
1457
1458         * python/dbus_bindings.pyx: Repair my previous commit which reverted
1459         part of the preceding one. Oops. Merge patch by Johan Hedberg
1460         <johan.hedberg@nokia.com> to fix marshalling of 16-bit integer values
1461         on big-endian platforms.
1462
1463         * test/python/test-client.py: Add some 16-bit integers to the test
1464         values.
1465
1466 2005-11-27  Carlos Garcia Campos  <carlosgc@gnome.org>
1467
1468         * glib/dbus-gobject.c: Append a GValue instead of a basic type in
1469         method return message for property getters
1470
1471 2005-11-27  Robert McQueen  <robot101@debian.org>
1472
1473         * python/dbus_bindings.pyx: Fix a bug where doing a strict append
1474         with type v of an instance of dbus.Variant(foo, type='x') caused
1475         it to be boxed twice before sending over the bus.
1476
1477         * python/dbus_bindings.pyx, python/service.py,
1478         test/python/test-client.py: Update the constants for the new
1479         request_name flags, and update comments/test cases now that queueing
1480         is the default action.
1481
1482 2005-11-22  John (J5) Palmieri  <johnp@redhat.com>
1483
1484         * configure.in:
1485         - Change version to 0.60 for impending release
1486         - upped the sonames because of ABI and API breakage
1487
1488 2005-11-22  John (J5) Palmieri  <johnp@redhat.com>
1489
1490         * configure.in: Add test/name-test/Makefile to the generated
1491         Makefile list
1492
1493         * dbus/dbus-shared.h (#define DBUS_NAME_FLAG_ALLOW_REPLACEMENT):
1494         New flag which replaces DBUS_NAME_FLAG_PROHIBIT_REPLACEMENT
1495         (#define DBUS_NAME_FLAG_DO_NOT_QUEUE): New flag for specifying
1496         not to queue an ower if it can't be the primary owner
1497
1498         * bus/bus.h: Add new internal BusOwner struct
1499
1500         * bus/driver.c (bus_driver_handle_hello): Send flags (0 for default)
1501         to bus_registry_ensure and don't set the prohibit_replacement flag
1502         since they are now set per BusOwner and not per name.
1503         (bus_driver_handle_list_queued_owners): bus method (ListQueuedOwners) 
1504         that returns the list of connections in a name's connection queue
1505         
1506         * bus/services.c (struct BusService): remove prohibit_replacement field
1507         (struct BusOwner): new struct for keeping track of queued connections
1508         and their associated flags for the queue
1509         (struct BusRegistry): add a BusOwner memory pool
1510         (bus_registry_new): initialize the BusOwner memory pool
1511         (bus_registry_unref): free the BusOwner memory pool
1512         (_bus_service_find_owner_link): new internal method for
1513         searching the queue for a specific connection
1514         (bus_owner_set_flags): new method for adding setting the flags on a
1515         bus owner
1516         (bus_owner_new): new method that creates a BusOwner object from the
1517         pool and sets its flags
1518         (bus_owner_ref, bus_owner_unref): ref counting for BusOwner objects
1519         (bus_registry_ensure): Add the flags parameter
1520         (bus_registry_acquire_service): Switch from using raw connections to
1521         using the BusOwner struct
1522         Add new state machine for dealing with the new set of flags
1523         (bus_registry_set_service_context_table, struct OwnershipCancelData, 
1524         cancel_ownership, free_ownership_cancel_data, 
1525         add_cancel_ownership_to_transaction, struct OwnershipRestoreData, 
1526         restore_ownership, free_ownership_restore_data, 
1527         add_restore_ownership_to_transaction): Switch to using BusOwner 
1528         instead of raw connections
1529         (bus_service_add_owner): Add flags parameter
1530         Switch to using BusOwner instead of raw connections
1531         Add state machine for dealing with the new set of flags
1532         (bus_service_swap_owner): Swaps the first and second owners in the
1533         queue.  Used to make sure proper signals are sent when a service looses 
1534         or gains primary ownership.  We never insert an owner at the top of the
1535         queue.  Instead we insert it in the second position and then swap.
1536         (bus_service_remove_owner): Remove the owner from the queue sending
1537         out the NameLost and NameOwnerChanged signals if the we were the 
1538         primary owner
1539         (bus_service_get_primary_owners_connection): New method that extracts
1540         the connection from the primary owner
1541         (bus_service_get_primary_owner): Returns the BusOwner instead of the 
1542         connection
1543         (bus_service_get_allow_replacement): Changed from the old 
1544         bus_service_get_prohibit_replacement method.  Checks the flags of the 
1545         primary owner and returns if it can be replaced or not
1546         (bus_service_set_prohibit_replacement): removed
1547         (bus_service_has_owner): returns TRUE if and owner with
1548         the specified connection exists in the queue
1549         
1550         * dbus/dbus-bus.c (dbus_bus_connection_get_unique_name): New helper
1551         method that only compiles if tests are enabled.  Allows us to get the 
1552         unique name of a connection so we can check it against the queue when
1553         doing regression tests
1554
1555         * bus/activation.c (bus_activation_send_pending_auto_activate),
1556         bus/dispatch.c (bus_dispatch),  
1557         bus/driver.c (bus_driver_handle_get_service_owner, 
1558         bus_driver_handle_get_connection_unix_user, 
1559         bus_driver_handle_get_connection_unix_process_id,
1560         bus_driver_handle_get_connection_selinux_security_context),
1561         bus/signals.c (connection_is_primary_owner): 
1562         use bus_service_get_primary_owners_connection instead of
1563         bus_service_get_primary_owner
1564
1565         * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket, 
1566         _dbus_listen_unix_socket): Calculate the length of the socket
1567         path and use that instead of using a fixed length which was
1568         causing socket names to contain many trailing Nul bytes.
1569
1570         * dbus/dbus-glib-lowlevel.h, glib/dbus-gobject.c
1571         (dbus_g_method_get_sender): New method for extracting the sender 
1572         from a DBusGMethodInvocation
1573         (dbus_g_method_return_get_reply): changed name to 
1574         dbus_g_method_get_reply
1575         (dbus_g_method_return_send_reply): changed name to
1576         dbus_g_method_send reply
1577
1578         * doc/dbus-specification.xml: New docs that describe how the new
1579         queueing system works and talks about the changes to the how
1580         we specify socket names
1581
1582         * glib/examples/example-service.c, 
1583         glib/examples/example-signal-emitter.c,
1584         glib/examples/statemachine/statemachine-server.c:
1585         Changed the RequestName flags to the new system
1586
1587         * test/name-test/ (test-names.c, run-test.sh, Makefile.am): New
1588         regression test suite for testing various states of the new
1589         queueing system
1590         
1591 2005-11-15  Robert McQueen  <robot101@debian.org>
1592
1593         * dbus/dbus-glib-lowlevel.h, glib/dbus-gobject.c: Patch from Rob
1594         Taylor to add two methods, dbus_g_method_return_get_reply and
1595         dbus_g_method_return_send_reply, to allow you to get the reply
1596         message from a DBusGMethodInvocation, append arbitrary stuff to it,
1597         and send it. The GLib bindings can't marshal a return value of
1598         something like a(s) if the array is empty - ultimately they should be
1599         made to heed the signature of the out arguments as the Python bindings
1600         now can, but this is a workable interim solution which might have
1601         other applications.
1602
1603 2005-11-15  Robert McQueen  <robot101@debian.org>
1604
1605         * bus/driver.c, bus/services.c, bus/services.h: Add a ReleaseName
1606         method to org.freedesktop.DBus to release a bus name or give up
1607         waiting in the queue for it.
1608
1609         * dbus/dbus-bus.c, dbus/dbus-bus.h, dbus/dbus-shared.h: Add a
1610         dbus_bus_release_name method to send the ReleaseName method calls.
1611         Add constants for the return values to dbus/dbus-shared.h.
1612
1613         * doc/dbus-specification.xml: Document the new ReleaseName method
1614         in the specification.
1615
1616         * python/dbus_bindings.pyx: Add a low-level python binding for the
1617         release name method.
1618
1619         * python/exceptions.py, python/service.py: Make freeing BusName
1620         objects release the name. Add a NameExistsException, and fix a
1621         bug with creating UnknownMethodException.
1622
1623         * test/python/test-client.py: Add tests for freeing BusName
1624         objects causing names to be released.
1625
1626 2005-11-14  Robert McQueen  <robot101@debian.org>
1627
1628         * python/service.py: Include the traceback in the error reply when we
1629         send an exception over the bus. _BEST_ _PATCH_ _EVER_
1630
1631 2005-11-14  David Zeuthen  <davidz@redhat.com>
1632
1633         Patch from Timo Hoenig <thoenig@suse.de>.
1634
1635         * bus/bus.c: I've recently investigated why the automatic reload
1636         of configuration files does not work as expected.
1637
1638         Currently, reloading configuration files does only work when
1639         running dbus-daemon with --nodaemon.  If we are running as daemon
1640         we're hitting a dnotify bug once we fork the process.
1641
1642         We're initializing the dnotify fds before calling fork().  Once
1643         the child process forked it does still have the fds (and they
1644         still show up in /proc/`pidof dbus-daemon`/fd/) but we're not
1645         getting SIGIO as changes are made to the configuration files.
1646
1647         The attached patch moves the initialization of the dnotify fds to
1648         process_config_postinit().  This is safe for all current code
1649         paths and solves the dnotify disfunction.  If we're running
1650         dbus-daemon as daemon the fds for dnotify are now being
1651         initialized after fork() for the child process.
1652
1653         * configure.in: The current configure.in check for dnotify probes
1654         'x$target_os' for being 'xlinux-gnu'.  I've changed the check to
1655         match for 'xlinux', too. Additionally I have adapted the configure
1656         option's style to match with the others.
1657
1658 2005-11-14  Robert McQueen  <robot101@debian.org>
1659
1660         * python/decorators.py, python/service.py: Add a new argument to the
1661         dbus.service.method decorator called sender_keyword, which if set,
1662         specifies the name of an argument which will be provided the bus
1663         name of the method caller.
1664
1665         * test/python/test-client.py, test/python/test-service.py: Add a
1666         method and test to check the sender_keyword functionality.
1667
1668 2005-11-07  John (J5) Palmieri  <johnp@redhat.com>
1669
1670         * bus/driver.c (bus_driver_handle_reload_config): Make sure we send an 
1671         empty reply so blocking calls don't block forever (Patch from Sjoerd 
1672         Simons <sjoerd at luon.net>)
1673
1674         * AUTHORS: Add Robert McQueen for his work on the Python
1675         Bindings and other parts of D-Bus
1676
1677 2005-11-07  Robert McQueen  <robot101@debian.org>
1678
1679         * python/decorators.py: Change emit_signal function to use the
1680         signature annotation of the signal when marhsalling the arguments from
1681         the service. Fix a bug where the code checking signature length
1682         against argument length referenced the wrong variable.
1683
1684         * python/introspect_parser.py: Avoid adding the type signature of
1685         signal arguments to any methods which occur after them in the
1686         introspection data (!) by making the parser a little more careful
1687         about its current state.
1688
1689         * python/service.py: Remove debug prints from last commit (again :D).
1690
1691         * test/python/test-client.py, test/python/test-service.py: Add test
1692         signals with signature decorators to test the strict marshalling code
1693         gives errors at the right time. Could do with checking the signals
1694         actually get emitted too, given that the test does nothing with
1695         signals at the moment...
1696
1697 2005-11-07  Robert McQueen  <robot101@debian.org>
1698
1699         * python/_dbus.py: Add WeakReferenceDictionary cache of dbus.Bus
1700         instances to stop madness of creating new instances representing
1701         the same bus connection all the time, rendering any tracking of
1702         match rules and bus names quite meaningless. Caught a bug where
1703         the private argument to SessionBus() and friends was being passed
1704         in as use_default_mainloop by mistake. Still some problems with
1705         multiple dbus_binding.Connection instances representing the same
1706         low-level connection (eg when you use both SessionBus() and
1707         StarterBus() in same process), but it's a lot better now than it
1708         was.
1709
1710         * python/dbus_bindings.pyx: Add constants with the return values
1711         for bus_request_name().
1712
1713         * python/service.py: Store bus name instances in a per-dbus.Bus cache
1714         and retrieve the same instances for the same name, so deletion can be
1715         done with refcounting. Also now throws some kind of error if you
1716         don't actually get the name you requested, unlike previously...
1717
1718         * test/python/test-client.py: Add tests for instance caching of buses
1719         and bus name objects.
1720
1721 2005-11-04  Robert McQueen  <robot101@debian.org>
1722
1723         * python/dbus_bindings.pyx, test/python/test-client.py: Fix
1724         marshalling of boolean values. Add some booleans to the values in
1725         the test client.
1726
1727         * python/decorators.py, python/service.py: Add an 'async_callbacks'
1728         argument to the dbus.service.method decorator, which allows you to
1729         name arguments to take two callback functions for replying with
1730         return values or an exception.
1731
1732         * test/python/test-client.py, test/python/test-service.py: Add test
1733         case using asynchronous method reply functions, both return values and
1734         errors, and from within both the function itself and from a mainloop
1735         callback.
1736
1737         * python/decorators.py, python/service.py: Perform checking that the
1738         number of method/signal arguments matches the number of types in the
1739         signature at class loading time, not when you first introspect the
1740         class.
1741
1742         * python/service.py: Remove debug print left by the last commit.
1743
1744 2005-11-03  Robert McQueen  <robot101@debian.org>
1745
1746         * python/service.py: Heavy refactoring of method invocation, with
1747         hopefully no effect on functionality. Nuked _dispatch_dbus_method_call
1748         in favour of a new _message_cb that uses seperate functions for
1749         looking up the method to call, marshalling the return values, and
1750         sending exceptions as errors, and is easier to follow as a
1751         consequence.  Fixes some corner cases about returning things that
1752         don't match your declared out_signature, allows exceptions to define
1753         _dbus_error_name and have it be sent over the bus as the error name,
1754         and paves the way for cool stuff like heeding the message no reply
1755         flag, asynchronous method implementations, informing the method of the
1756         sender, and including backtraces in the error messages.
1757
1758         * test/python/test-client.py: Catch and print exceptions thrown in the
1759         async callback tests, rather than passing them to the low-level
1760         bindings to be ignored in a noisy and frustrating manner.
1761
1762 2005-11-03  Robert McQueen  <robot101@debian.org>
1763
1764         * python/_dbus.py, python/proxies.py, python/service.py: Add __repr__
1765         functions to dbus.Bus, dbus.service.BusName and dbus.service.Object,
1766         tweak others to be consistent.
1767
1768         * test/python/test-client.py: Tweak output of testInheritance.
1769
1770 2005-10-29  Robert McQueen  <robot101@debian.org>
1771
1772         * python/service.py: Major changes to allow multiple inheritance
1773         from classes that define D-Bus interfaces:
1774         
1775          1. Create a new Interface class which is the parent class of
1776             Object, and make the ObjectType metaclass into InterfaceType.
1777         
1778          2. Patch written with Rob Taylor to replace use of method_vtable
1779             with code that walks the class's __MRO__ (method resolution order)
1780             to behave like Python does when invoking methods and allow
1781             overriding as you'd expect. Code is quite tricky because
1782             we have to find two methods, the one to invoke which has the
1783             right name and isn't decorated with the /wrong/ interface,
1784             and the one to pick up the signatures from which is decorated
1785             with the right interface.
1786         
1787             The same caveats apply as to normal multiple inheritance -
1788             this has undefined behaviour if you try and inherit from two
1789             classes that define a method with the same name but are
1790             decorated with different interfaces. You should decorate
1791             your overriding method with the interface you want.
1792         
1793          3. Replace grungy introspection XML generation code in the metaclass
1794             with dictionaries that cope correctly with multiple inheritance
1795             and the overriding of methods. This also uses the signature
1796             decorations to provide correct introspection data, including
1797             the debut appearance of the types of your return values. :D
1798
1799         * test/python/test-client.py, test/python/test-service.py: Add a test
1800         case to try invoking an method that overrides one inherited from a
1801         D-Bus interface class.
1802
1803 2005-10-29  Robert McQueen  <robot101@debian.org>
1804
1805         * python/dbus_bindings.pyx: Tweak 'raise AssertionError' to assert().
1806         Add checking for the end of struct character when marshalling a
1807         struct in MessageIter.append_strict.
1808
1809         * python/examples/example-service.py,
1810         python/examples/gconf-proxy-service.py,
1811         python/examples/gconf-proxy-service2.py: Update to use gobject
1812         mainloop directly rather than appearing to depend on gtk.
1813
1814         * python/test/test-client.py, python/test/test-server.py: Remove
1815         obsolete and broken test scripts for old bindings. We have up to date
1816         and working tests in test/python/.
1817
1818 2005-10-29  Robert McQueen  <robot101@debian.org>
1819
1820         * python/decorators.py: Add optional arguments to the method and
1821         signal decorators to allow you to specify the signature of arguments
1822         and return values. Preserve the doc strings of signal functions in the
1823         decorated version, for pydoc and friends.
1824
1825         * python/dbus_bindings.pyx, python/proxies.py: Replace the
1826         parse_signature_block function with an iterable dbus.Signature()
1827         type. Fix a bug in MessageIter.append_strict where you could append
1828         anything by claiming it was a string.
1829
1830         * python/service.py: Use the out_signature decoration on methods to
1831         marshal return values, meaning you no longer require dbus.Array()
1832         or dbus.Dictionary() to indicate the type when returning empty
1833         arrays or dictionaries. Fix a bug where exceptions which are defined
1834         in __main__ are not turned into error replies.
1835
1836         * test/python/test-client.py, test/python/test-service.py: Add test
1837         for correct marshalling of return values according to out_signature.
1838         Fix a bug in the async call test where the error_handler is missing a
1839         self argument.
1840
1841 2005-10-29  Robert McQueen  <robot101@debian.org>
1842
1843         * glib/Makefile.am, glib/examples/Makefile.am,
1844         glib/examples/statemachine/Makefile.am: Merge patch from Ubuntu by
1845         Daniel Stone to replace explicit calls to libtool with $(LIBTOOL).
1846
1847         * test/python/.cvsignore: Add run-with-tmp-session-bus.conf.
1848
1849         * tools/dbus-monitor.1, tools/dbus-monitor.c: Merge dbus-monitor patch
1850         from Ubuntu by Daniel Silverstone to allow specifying match rules on
1851         the command line.
1852
1853 2005-10-27  Ross Burton  <ross@openedhand.com>
1854
1855         * dbus/dbus-marshal-header.c:
1856         Remove dead code.
1857
1858         * glib/dbus-gobject.c:
1859         Stop compiler warning.
1860
1861 2005-10-25  Ross Burton  <ross@openedhand.com>
1862
1863         * dbus/dbus-auth.c:
1864         * dbus/dbus-server-unix.c:
1865         * dbus/dbus-transport-unix.c:
1866         * glib/dbus-gmain.c:
1867         * glib/dbus-gobject.c:
1868         Add some const keywords.
1869
1870 2005-10-25  Ross Burton  <ross@openedhand.com>
1871
1872         * doc/dbus-specification.xml:
1873         Document the NoReply annotation.
1874
1875         * glib/dbus-binding-tool-glib.h:
1876         * glib/dbus-binding-tool-glib.c:
1877         Respect the NoReply annotation.
1878
1879 2005-10-24  Robert McQueen <robot101@debian.org>
1880
1881         * python/dbus_bindings.pyx (String, MessageIter): make D-Bus strings
1882         derive from unicode instead of str, and encode/decode UTF-8 when
1883         marshalling/unmarshalling bus messages
1884
1885         * python/introspect_parser.py: encode introspection data as UTF-8
1886         before passing the buffer into libxml2
1887
1888         * test/python/test-client.py: add unicode test strings
1889
1890         * test/data/valid-service-files/.cvsignore, test/python/.cvsignore:
1891         ignore generated python test files
1892
1893 2005-10-17  John (J5) Palmieri  <johnp@redhat.com>
1894
1895         * glib/dbus-gvalue-utils.c (hash_free_from_gtype): handle gdouble
1896         and G_TYPE_VALUE_ARRAY (DBUS_TYPE_STRUCT)
1897         (gvalue_from_hash_value, hash_value_from_gvalue): handle gdouble
1898
1899         * glib/dbus-gvalue.c (dbus_gvalue_to_signature): add missing
1900         DBUS_STRUCT_BEGIN_CHAR and DBUS_STRUCT_END_CHAR charaters
1901         when constructing struct signatures
1902
1903         * python/_dbus.py (Bus): handle private connections using the
1904         private keyword in the constructor. defaults to private=False
1905         (Bus::close): new method to close a connection to the bus
1906
1907         * python/dbus_bindings.pyx (Connection::close): renamed method
1908         was previously called disconnect
1909         (bus_get): now supports getting a private connection
1910
1911         * python/proxies.py (ProxyMethod::__call__): check if ignore_reply
1912         keyword is set to True.  if it is, execute the method without waiting
1913         for a reply
1914         (ProxyObject::_introspect_execute_queue): new method for executing
1915         all the pending methods that were waiting for the introspect to
1916         finish.  this is called when introspect either succeeds or fails
1917         (ProxyObject::_introspect_error_handler): call queued methods
1918
1919 2005-10-14  John (J5) Palmieri  <johnp@redhat.com>
1920
1921         * python/dbus_bindings.pyx (MessageIter::append_strict): check for
1922         STRUCT_BEGIN not TYPE_STRUCT in indicate we are marshalling a struct
1923
1924         * python/service.py (Object::_message_cb): handle exceptions correctly
1925         by sending them over the wire to the calling app.  This makes sure
1926         the client returns immediately instead of waiting the 15 seconds to
1927         timeout.
1928
1929         * test/python/test-client.py (TestDBusBindings::testBenchmarkIntrospect): 
1930         Add a test to benchmark how long it takes to introspect a service and 
1931         call a method which returns a large element (pretty fast)
1932
1933         * test/python/test-service.py (TestObject::GetComplexArray): new test 
1934         method which pushes a lot of data
1935
1936 2005-10-13  John (J5) Palmieri  <johnp@redhat.com>
1937
1938         * python/service.py(ObjectType::_reflect_on_signal, _reflect_on_method):        
1939         reclaim memory outside of the loop and use del istead of just setting
1940         the key to None
1941
1942 2005-10-13  John (J5) Palmieri  <johnp@redhat.com>
1943
1944         * python/service.py (ObjectType::_reflect_on_signal): Always close
1945         signal tag even when there are no arguments
1946
1947 2005-10-13  John (J5) Palmieri  <johnp@redhat.com>
1948
1949         * configure.in: Set mono, mono-docs and Qt3 to default
1950         to no instead of auto when building.  These bindings do not
1951         have full time maintainers and will not be supported for the
1952         1.0 release.
1953
1954 2005-10-12  John (J5) Palmieri  <johnp@redhat.com>
1955
1956         patches from Michael Krivoruchko <misha at sun.com>: 
1957         
1958         * dbus/dbus-connection.c (_dbus_connection_queue_received_message_link,
1959         _dbus_connection_message_sent, 
1960         _dbus_connection_send_preallocated_unlocked_no_update, 
1961         _dbus_connection_pop_message_link_unlocked): handle the case when path 
1962         is NULL when calling _dbus_verbose
1963
1964         * configure.in: check for functions getpeerucred and getpeereid
1965
1966         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): provides 
1967         support of auth EXTERNAL on Solaris 10+ (getpeerucred), FreeBSD 4.6+, 
1968         OpenBSD 3.0+ and FreeBSD 5.0+ as well as MacOSX 10.2+ (getpeereid). 
1969         Patch was only tested on Solaris 10 x86 so it might be issues
1970         with other platforms (i.e. BSDs and MacOSX)
1971         
1972
1973 2005-10-05  John (J5) Palmieri  <johnp@redhat.com>
1974
1975         * glib/dbus-gvalue.c (marshal_variant): call _dbus_gvalue_marshal 
1976         instead of marshal basic so we can handle recursive types in a variant
1977
1978         * test/glib/test-dbus-glib.c: Add test for marshaling recurive types
1979         in variants
1980
1981         * test/glib/test-service-glib.c, test-service-glib.xml
1982         (my_object_echo_variant [EchoVariant], 
1983         my_object_process_variant_of_array_of_ints123
1984         [ProcessVariantOfArrayOfInts123]): 
1985         Add two test methods
1986
1987         * python/introspect_parser.py: New module for parsing introspect
1988         data.
1989
1990         * python/dbus_bindings.pyx:
1991         (various places): when throwing errors fix to use errormsg instead 
1992         of message local variable because Pyrex can get confused with other 
1993         message variables (initial patch by Robert McQueen 
1994         <robert.mcqueen at collabora.co.uk>)
1995         (MessageIter::parse_signature_block): new method for getting the next
1996         block in a signiture.
1997         (MessageIter::append_strict): new method for appending values strictly
1998         using the passed in signature instead of guessing at the type
1999         (MessageItter:: append_dict, append_struct, append_array): use 
2000         signatures to marshal children if the signature is available
2001         
2002         * python/exceptions.py (IntrospectionParserException): new exception
2003
2004         * python/proxies.py (ProxyMethod::__call__): Marshal args with 
2005         introspected signatures if available, else we fall back to the
2006         old way of doing things.
2007         (ProxyObject::_introspect_reply_handler ): parse introspection data
2008         
2009         * python/service.py (ObjectType::_reflect_on_method): Properly
2010         terminate <method> if there are no args in the reflection data
2011
2012         * test/python/test-client.py: add tests for talking with the GLib
2013         test server.  This gives us better coverage for introspection since
2014         python to python will always generate arguments as variants.  It also
2015         allows us to test the robustness of the GLib bindings and interlanguage
2016         communications.
2017
2018         
2019 2005-10-03  John (J5) Palmieri  <johnp@redhat.com>
2020
2021         * bus/driver.c (bus_driver_handle_introspect): Add signals
2022         to the introspect data. (patch from Daniel P. Berrange 
2023         <dan at berrange.com>)
2024
2025         * bus/dispatch.c (check_existent_ping): Add testcase for Ping
2026         
2027         * dbus/dbus-connection.c (_dbus_connection_peer_filter,
2028         _dbus_connection_run_builtin_filters): Changed these to
2029         be unlock_no_update functions and call 
2030         _dbus_connection_send_unlocked_no_update instead of
2031         dbus_connection_send to avoid locking errors.
2032         
2033         * doc/TODO: Removed the make Ping test TODO
2034         
2035 2005-09-26  John (J5) Palmieri  <johnp@redhat.com>
2036
2037         * dbus/Python.pyx: Fixed memory leaks when throwing errors.
2038         We now copy the message from a DBusError and then free 
2039         the error object befor throwing the error
2040
2041         * glib/dbus-glib-tool.c: removed extra comma at the end of the
2042         DBusBindingOutputMode enum which was causing a warning.
2043         #include <time.h> so using time_t is explicitly defined
2044
2045 2005-09-26  John (J5) Palmieri  <johnp@redhat.com>
2046
2047         * Integrate patches from Lennart Poettering <mzsqb at 0pointer.de>:
2048         - dbus/dbus-bus.c
2049         (internal_bus_get): new method that take over the heavy lifting
2050         of dbus_bus_get and adds the ability to get a private connection
2051         to the bus
2052         (dbus_bus_get): wrapper to internal_bus_get that provides the same
2053         interface as in previous versions
2054         (dbus_bus_get_private): new method that is a wrapper to 
2055         internal_bus_get to get a private connection to the bus
2056
2057         - dbus/dbus-bus.h
2058         (dbus_bus_get_private): add as a public libdbus interface
2059
2060         - dbus-1.pc.in: output system_bus_default_address and 
2061         sysconfdir variables so apps can use them when compiling
2062
2063 2005-09-23  Harald Fernengel  <harry@kdevelop.org>
2064         * dbus/qt: New Qt bindings
2065
2066 2005-09-12  Waldo Bastian  <bastian@kde.org>
2067
2068         * dbus/dbus-marshal-validate.c,
2069         doc/dbus-specification.xml, test/Makefile.am,
2070         test/test-names.c: allow hyphens in bus names.
2071
2072 2005-09-11  Mark McLoughlin  <mark@skynet.ie>
2073
2074         * test/data/auth/fallback.auth-script: we don't
2075         retry the EXTERNAL method when we know its going
2076         to fail anymore.
2077
2078 2005-09-11  Mark McLoughlin  <mark@skynet.ie>
2079
2080         * dbus/dbus-connection-internal.h: rename
2081         (add|remove|toggle)_(watch|timeout) to unlocked()
2082         
2083         * dbus/dbus-connection.c: ditto.
2084         
2085         * dbus/dbus-timeout.c, dbus/dbus-transport-unix.c:
2086         Update some callers for the renaming.
2087
2088 2005-09-10  Mark McLoughlin  <mark@skynet.ie>
2089
2090         * dbus/dbus-auth.c: (record_mechanisms): don't
2091         retry the first auth mechanism because we know
2092         we're just going to get rejected again.
2093         
2094         * dbus/dbus-keyring.c: (_dbus_keyring_reload):
2095         Fix thinko ... and what a nasty little bugger to
2096         track down you were ...
2097
2098         * dbus/dbus-connection.c:
2099         (_dbus_connection_add_watch),
2100         (_dbus_connection_remove_watch): add note about
2101         these needing the connection to be locked.
2102         (_dbus_connection_get_dispatch_status_unlocked):
2103         set status to DATA_REMAINS when we queue the
2104         disconnected message.
2105         
2106         * bus/dispatch.c:
2107         (bus_dispatch): fix warning.
2108         (check_existent_service_no_auto_start):
2109         Expect ChildSignaled error too.
2110         (check_existent_hello_from_self): fix another
2111         couple of warnings.
2112         
2113 2005-09-08  Joe Shaw  <joeshaw@novell.com>
2114
2115         Patches from James Willcox <snorp@snorp.net>
2116
2117         * mono/Makefile.am: Add Int16.cs and UInt16.cs
2118
2119         * mono/DBusType/Array.cs: Handle multidimensional arrays, and
2120         support array "out" parameters.
2121
2122         * mono/DBusType/Int16.cs, mono/DBusType/UInt16.cs: New files,
2123         for 16-bit int support.
2124
2125 2005-09-06  John (J5) Palmieri  <johnp@redhat.com>
2126
2127         * Released 0.50
2128
2129         * Patch from Steve Grubb:
2130         - bus/activation.c (bus_activation_service_reload_test): clean up
2131         some indentation
2132         - dbus/dbus-keyring.c (_dbus_keyring_reload): fix conditional 
2133         - dbus/dbus-message-factory.c (generate_special): fix a couple of
2134         buffer overflows in the test suite.  This is non critical because
2135         it can not be exploited and this code is only run when doing a 
2136         make check.
2137
2138         * Patch from Yaakov Selkowitz: Build fixes for Cygwin
2139         - configure.in: Don't check and link against kdecore, only qt headers
2140         - dbus/Makefile.am: Add -no-undefined to libdbus_1_la_LDFLAGS
2141         - gcj/org/freedesktop/dbus/Makefile.am:
2142         add libdbus_gcj_1_la_LDFLAGS = -no-undefined
2143         - glib/Makefile.am: Add -no-undefined to libdbus_glib_1_la_LDFLAGS
2144         and $(DBUS_GLIB_LIBS) to dbus_binding_tool_LDADD
2145         - qt/Makefile.am: Add -no-undefined to libdbus_qt_1_la_LDFLAGS
2146         - tools/Makefile.am: Add platform extentions to binaries 
2147         (i.e. .exe on windows)
2148
2149         * configure.in: 
2150         - Make it so if no suitable version of python is found we only 
2151         disable building python instead of exiting the configure script
2152         - Require version 2.4 of glib for glib bindings
2153         - Up version to 0.50
2154
2155         * python/__init__.py: Sync version with libdbus to (0,50,0)
2156         
2157 2005-09-05  Olivier Andrieu  <oliv__a@users.sourceforge.net>
2158
2159         * dbus/dbus-object-tree.c (find_subtree_recurse):
2160         a couple of optimizations (bug #710):
2161         - do a binary search in the tree
2162         - insert a new child at the right place directly, no need for
2163           qsort anymore
2164         - do the "double alloc" thing when allocating children
2165
2166 2005-08-31  John (J5) Palmieri  <johnp@redhat.com>
2167
2168         * python/Makefile.am: Break on pyrexc errors instead of ignoring them
2169
2170         * python/dbus_bindings.pyx: Memory management foo
2171         (global): remove hacky _user_data_references global list
2172         (GIL_safe_cunregister_function_handler): userdata now stuffed into
2173         tuples. Unref user_data
2174         (GIL_safe_cmessage_function_handler): userdata now stuffed into tuples
2175         (Connection::__del__): Remove and replace with __dealloc__ method
2176         (Connection::add_filter): Stuff user_data into a tuple.  Use Py_INCREF
2177         to keep tuple from being deallocated instead of the global var hack
2178         (Connection::register_object_path): Stuff user_data into a tuple.
2179         Use Py_INCREF to keep tuple from being deallocated instead of the 
2180         global var hack
2181         (Connection::register_fallback): Stuff user_data into a tuple.
2182         Use Py_INCREF to keep tuple from being deallocated instead of the 
2183         global var hack
2184         (GIL_safe_pending_call_notification): Don't unref the message
2185         because it gets unreffed when going out of scope.  Py_XDECREF
2186         the user_data
2187         (PendingCall::__del__): Remove and replace with __dealloc__ method
2188         (PendingCall::set_notify): ref the pending call because we will
2189         need it to stick around for when the notify callback gets called
2190         (Message::__del__): Remove and replace with __dealloc__ method
2191
2192         * python/dbus_glib_bindings.pyx (init_gthreads): Changed to 
2193         gthreads_init to match up with the dbus call
2194
2195         * python/glib.py (init_threads): Changed to threads_init to match
2196         up with gobject.threads_init().  init_threads is kept for backwards
2197         compat but will most likely be deprecated in the future
2198
2199         * test/python/test-client.py: 
2200         - revamp to use Python's unittest functionality
2201         - add async call tests
2202         - setup threads in glib and dbus so we make sure locks are working
2203         
2204 2005-08-30  John (J5) Palmieri  <johnp@redhat.com>
2205
2206         * python/dbus_bindings.pyx 
2207         (_pending_call_notification, cunregister_function_handler, 
2208         cmessage_function_handler): All callback functions have been rearranged 
2209         to workaround a bug in Pyrex when working with the GIL which is Python's 
2210         global lock when dealing with threads.  They have been split into
2211         a wrapper function (which assumes the name of the old function) and
2212         a _GIL_safe_<function name> function which contains the functionality
2213         of the old function.  This ensures that Pyrex does not write code
2214         the lock is released.
2215         
2216
2217 2005-08-30  John (J5) Palmieri  <johnp@redhat.com>
2218
2219         * python/dbus_bindings.pyx (_pending_call_notification): Obtain the
2220         GIL global lock when calling back into Python
2221
2222 2005-08-29  John (J5) Palmieri  <johnp@redhat.com>
2223
2224         * Release 0.36.2
2225
2226         * Add Havoc's patch that never got applied to HEAD (Bug #2436):
2227
2228         * bus/policy.c (bus_policy_allow_user): change default "user is
2229         allowed" to be "user has same uid as the bus itself"; any
2230         allow/deny rules will override.
2231
2232         * bus/session.conf.in: don't allow all users, since now by default
2233         the user that ran the bus can connect.
2234
2235 2005-08-26  Colin Walters  <walters@verbum.org>
2236
2237         * tools/dbus-print-message.c (print_message): Flush stdout
2238         after printing a message, so that redirecting to a file, then
2239         hitting Ctrl-C works.
2240
2241 2005-08-25  John (J5) Palmieri  <johnp@redhat.com>
2242
2243         * python/dbus_bindings.pyx: Tracked down a major memleak and fixed it
2244         (EmptyMessage): new class that subclasses Message.  This is a workaround
2245         to a Pyrex bug that fails to call __del__ when the Message object goes out
2246         of scope.  For some reason subclassing Message fixes this bug
2247         (Bus::send_with_reply_and_block): use EmptyMessage instead of Message
2248         - s/Message(_create=0)/EmptyMessage everywhere else
2249         
2250         * test/python/test-{server|client}.py: add the python/.libs directory
2251         to the lookup path so dbus_bindings and dbus_glib_bindings don't
2252         get picked up from the system
2253
2254 2005-08-25  Colin Walters  <walters@verbum.org>
2255
2256         * glib/dbus-gproxy.c (dbus_g_proxy_call): Doc update, thanks
2257         to Ryan Lortie for the suggestion.
2258
2259 2005-08-24  John (J5) Palmieri  <johnp@redhat.com>
2260
2261         * test/python: Add python regression test
2262
2263         * configure.in: Add test/python/Makefile
2264
2265         * test/Makefile.am: Add the python directory to SUBDIRS
2266
2267 2005-08-24  John (J5) Palmieri  <johnp@redhat.com>
2268
2269         * Release 0.36.1
2270
2271         * python/_dbus.py: 
2272         (Interface::connect_to_signal): propigate keywords for match on args
2273         (Bus::add_signal_receiver): Fix typo s/dbus_inteface/dbus_interface
2274
2275         * python/proxies.py (ProxyObject::connect_to_signal):
2276         propigate keywords for match on args
2277
2278         * Makefile.am: point everything to pyexecdir since python borks
2279         on multilib
2280
2281 2005-08-23  John (J5) Palmieri  <johnp@redhat.com>
2282
2283         * Release 0.36
2284
2285 2005-08-23  Colin Walters  <walters@verbum.org>
2286
2287         * test/glib/Makefile.am: Don't multiply-define EXTRA_DIST.
2288
2289 2005-08-23  John (J5) Palmieri  <johnp@redhat.com>
2290
2291         * python/dbus_glib_bindings.pyx: reorder imports and c definitions
2292         to fix some wranings. We now use dbus_bindings.DBusConnection instead
2293         of defining DBusConnection ourselves.
2294
2295 2005-08-18  John (J5) Palmieri  <johnp@redhat.com>
2296
2297         * python/dbus.pth: New path file to fix up problems when installing
2298         c libraries to lib64 and python files to lib.
2299
2300         * python/Makefile.am: install dbus.pth in the correct spot
2301
2302 2005-08-17  John (J5) Palmieri  <johnp@redhat.com>
2303         * ChangeLog: clean up my last entry a bit
2304
2305         * doc/introspect.xsl: New stylesheet for converting introspection data
2306         into browser renderable xhtml. Contributed by Lennart Poettering.
2307
2308         * doc/introspect.dtd: Fixups in the introspect format from Lennart
2309         Poettering.
2310
2311         * doc/dbus-tutorial.xml: 
2312         - Add Colin Walter to the Authors section for authoring the GLib
2313         section
2314         - Add descriptions of the new signature and type functionality
2315         in the Python complex type mapping section
2316         - Add a sidenote on the new args matching functionality in 
2317         the Python bindings
2318         - Fixed up some of the examples to use the gobject.MainLoop
2319         instead of gtk.main
2320         
2321         * python/_dbus.py:
2322         (Bus::_create_args_dict): New. Converts a hash of arg matches
2323         to a more useable format
2324         (Bus::add_signal_receiver): add a **keywords parameter for catching
2325         arg match parameters
2326         (Bus::remove_signal_receiver): add a **keywords parameter for catching
2327         arg match parameters
2328         
2329         * python/matchrules.py:
2330         (MatchTree::exec_matches): Check for arg matches
2331         (SignalMatchRule::add_args_match): New method
2332         (SignalMatchRule::execute): Added args_list parameter as an optimization
2333         so we don't have to marshal the args more than once
2334         (SignalMatchRule::match_args_from_list): New method that checks to see
2335         if the rule's arg matches match an argument list.  Only arguments
2336         set in the rule are checked.
2337         (SignalMatchRule::match_args_from_rule): New method that checks to see
2338         if the rule's arg matches match another rule's.  All args have to match
2339         in order for this method to return true.  If either rule has more args
2340         then it is not a match.
2341         (SignalMatchRule::is_match): Add args match
2342         (SignalMatchRule::repr): Add args to the final output if they exist
2343
2344 2005-08-17  Ross Burton  <ross@burtonini.com>
2345
2346         * glib/dbus-gproxy.c:
2347         (dbus_g_proxy_call_no_reply): unref the message once sent.
2348         (dbus_g_proxy_call): protect against NULL proxy.
2349
2350 2005-08-16  John (J5) Palmieri  <johnp@redhat.com>
2351
2352         * python/__init__.py: Version updated (0, 43, 0)
2353         
2354         * python/dbus_bindings.pyx: 
2355         - Fixed type objects to have self passed into __init__
2356         - Added the Variant type
2357         - Add the ability to specify types or signatures for Array, Variant 
2358         and Dictionary
2359         (Connection::send_with_reply_handlers): return a PendingCall object
2360         (_pending_call_notification): handle the case when an error is returned 
2361         without an error message in the body
2362         (MessageIter::get_boolean): return True or False instead of an integer
2363         (MessageIter::python_value_to_dbus_sig): add direct checking of types 
2364         and add checks for objects with embeded signatures or types (Array, 
2365         Variant and Dictionary)
2366         (MessageIter::append_byte): handle case when the value is a dbus.Byte
2367         (MessageIter::append_dict): handle embeded types or signatures
2368         (MessageIter::append_array): handle embeded types or signatures
2369         (MessageIter::append_variant): new method
2370         
2371         * python/proxies.py:
2372         (DeferedMethod): New. Dummy executable object used when queuing calls 
2373         blocking on introspection data
2374         (ProxyMethod::__call__): add the timeout keyword for specifying longer 
2375         or shorter timeouts for method calls
2376         (ProxyObject): Add first pass at an introspection state machine
2377         (ProxyObject::__init__): Add introspect keyword for turing off an on 
2378         introspection. 
2379         (ProxyObject::_Introspect): Internal Introspect call that bypasses 
2380         the usual mechanisms for sending messages.  This is to avoid a deadlock
2381         where the Intospect call would be queued waiting for the Introspect 
2382         call to finish ;-)
2383         (ProxyObject::_introspect_reply_handler): New.  This method is called 
2384         when introspection returns with no error
2385         (ProxyObject::_introspect_error_handler): New.  This method is called 
2386         when introspection encounters an error
2387         (ProxyObject::__getattr__): Code to handle different introspection 
2388         states.  Queue async calls or block blocking calls if we are 
2389         introspecting.  Pass through as normal if we are not or are done with 
2390         introspecting.
2391         
2392         * python/service.py: Import signal and method from decorators.py
2393
2394         * python/types.py: Add Variant type
2395
2396 2005-08-16  Colin Walters  <walters@verbum.org>
2397
2398         * glib/dbus-gobject.c (dbus_set_g_error): Don't lose if the
2399         DBusError message is NULL.
2400
2401 2005-08-09  Havoc Pennington  <hp@redhat.com>
2402
2403         * dbus/dbus-errors.c: apply patch from Timo Teras to make a
2404         malloc'd copy of the name parameter
2405
2406 2005-08-09  Havoc Pennington  <hp@redhat.com>
2407
2408         * dbus/dbus-message.c (dbus_message_set_reply_serial): print
2409         warning if the reply serial is set to 0
2410
2411 2005-08-04  Colin Walters  <walters@verbum.org>
2412
2413         * glib/dbus-gvalue-utils.h (_dbus_g_type_specialized_builtins_init)
2414         (dbus_g_type_is_fixed, dbus_g_type_fixed_get_size)
2415         (dbus_gvalue_set_from_pointer, dbus_g_hash_table_value_foreach)
2416         (dbus_g_hash_table_insert_values, dbus_g_hash_table_insert_steal_values)
2417         (dbus_gtype_is_valid_hash_key, dbus_gtype_is_valid_hash_value)
2418         (dbus_g_hash_func_from_gtype, dbus_g_hash_free_from_gtype)
2419         (dbus_g_hash_equal_from_gtype, dbus_gvalue_stor, dbus_gvalue_take):
2420         * glib/dbus-gvalue.h (dbus_g_value_types_init)
2421         (dbus_gvalue_demarshal, dbus_gvalue_demarshal_variant)
2422         (dbus_gvalue_demarshal_message, dbus_gvalue_marshal):
2423         
2424         Prefix name with _ to ensure they're not exported.  All callers
2425         updated.
2426
2427         * glib/dbus-gvalue.c (typecode_to_gtype)
2428         (dbus_typecode_maps_to_basic, basic_typecode_to_gtype)
2429         (signature_iter_to_g_type_dict)
2430         (signature_iter_to_g_type_array)
2431         (dbus_gtype_from_signature_iter, dbus_gtype_from_signature)
2432         (dbus_gtypes_from_arg_signature):
2433         Move to dbus-gsignature.c.
2434
2435         * glib/dbus-binding-tool-glib.c (dbus_binding_tool_output_glib_server): Call
2436         dbus_g_type_specialized_builtins_init instead of dbus_g_value_types_init.
2437         (dbus_binding_tool_output_glib_client): Ditto.
2438
2439         * glib/Makefile.am (DBUS_GLIB_INTERNALS): Add dbus-gsignature.c
2440         and dbus-gsignature.h
2441
2442         * test/glib/test-service-glib.c (my_object_rec_arrays): Delete
2443         unused variable.
2444
2445 2005-08-03  Colin Walters  <walters@verbum.org>
2446
2447         * glib/dbus-gobject.c: Add tests on hardcoded object info; this should
2448         catch any incompatible changes accidentally made.
2449
2450 2005-08-03  Havoc Pennington  <hp@redhat.com>
2451
2452         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): fix
2453         typo, from Julien Puydt
2454
2455         * bus/connection.c (bus_connection_disconnected): we were always
2456         doing a wait_for_memory due to a buggy loop, found by Timo Hoenig
2457
2458 2005-08-01  Colin Walters  <walters@verbum.org>
2459
2460         Patch from Joe Markus Clarke:   
2461         
2462         * glib/dbus-gidl.c (property_info_unref, arg_info_unref): Fix
2463         use-after-free.
2464
2465 2005-08-01  Colin Walters  <walters@verbum.org>
2466         
2467         Patch from Joe Markus Clarke:   
2468         
2469         * tools/dbus-send.c (main): 
2470         
2471         Don't use C99 style initializers (bug #3933).
2472         
2473 2005-08-01  Colin Walters  <walters@verbum.org>
2474
2475         Patch from Joe Markus Clarke:   
2476
2477         * glib/dbus-gvalue.c (dbus_g_value_types_init): 
2478         * glib/dbus-gvalue-utils.c (dbus_g_type_specialized_builtins_init) 
2479         * glib/dbus-gobject.c (write_interface):
2480
2481         Don't use C99 style initializers (bug #3933).
2482
2483 2005-07-31  Havoc Pennington  <hp@redhat.com>
2484
2485         * tools/dbus-viewer.c (load_child_nodes): fix invocation of
2486         dbus_g_proxy_call, fix from Piotr Zielinski bug #3920
2487
2488 2005-07-30  Havoc Pennington  <hp@redhat.com>
2489
2490         * fix a bunch of Doxygen warnings and mistakes
2491
2492 2005-07-30  Havoc Pennington  <hp@redhat.com>
2493
2494         * dbus/dbus-sysdeps.c (_dbus_string_parse_uint): remove #ifdef
2495         DBUS_BUILD_TESTS since it's now used in production code
2496
2497 2005-07-29  Havoc Pennington  <hp@redhat.com>
2498
2499         * test/glib/test-profile.c (write_junk): initialize the junk
2500         buffer so valgrind doesn't have a breakdown
2501
2502 2005-07-29  Havoc Pennington  <hp@redhat.com>
2503
2504         * bus/signals.c (bus_signals_test): add match_rule_equal() tests
2505         (match_rule_matches): remove unused arg
2506         (test_matching): add tests for match_rule_matches()
2507
2508         * bus/signals.c (bus_match_rule_parse_arg_match): add ability to
2509         do arg0='foo' arg5='bar' in the match rules
2510         (match_rule_matches): don't match if the arg0='foo' doesn't match.
2511
2512         * dbus/dbus-protocol.h (DBUS_MAXIMUM_MATCH_RULE_ARG_NUMBER): add this
2513
2514 2005-07-29  Ross Burton  <ross@openedhand.com>
2515
2516         * dbus/dbus-connection.c:
2517         Don't create a DBusCondVar which is never used.
2518
2519 2005-07-27  Ross Burton  <ross@openedhand.com>
2520
2521         * dbus/dbus-message.c:
2522         Reduce the size of the maximum cached message to 10K.
2523
2524 2005-07-25  Ross Burton  <ross@openedhand.com>
2525
2526         * glib/dbus-gproxy.c:
2527         Remove matches when all proxies are unregistered.
2528
2529 2005-07-24  Colin Walters  <walters@verbum.org>
2530
2531         * glib/dbus-gvalue.c (signature_iter_to_g_type_array): Don't require
2532         typedata; recursive arrays won't have it.
2533
2534         * test/glib/test-dbus-glib.c:
2535         * test/glib/test-service-glib.c:
2536         * test/glib/test-service-glib.xml: Add recursive arrays tests.
2537         
2538 2005-07-20  John (J5) Palmieir  <johnp@redhat.com>
2539
2540         * python/_dbus.py, _util.py, decorators.py, extract.py, matchrules.py.
2541         proxies.py, service.py: Cleanup of code after running it through the
2542         pyflakes code checker mostly dealing with undefined names.  
2543         (Bug #3828, Patch from Anthony Baxter <anthony@interlink.com.au>)
2544
2545 2005-07-17  John (J5) Palmieri  <johnp@redhat.com>
2546
2547         * NEWS: Update to 0.35.2
2548
2549 2005-07-17  John (J5) Palmieri  <johnp@redhat.com>
2550
2551         * python/_dbus.py: Remove import of the dbus.services
2552         module as it no longer exists (patch from Dimitur Kirov)
2553
2554         * python/service.py (Object::__init__): Fixed typo
2555         s/name/bus_name (patch from Dimitur Kirov)
2556
2557         * python/examples/example-signal-emitter.py: import dbus.glib
2558         to get the main loop and use glib mainloop instead of gtk so
2559         X doesn't have to be running.
2560
2561         * python/examples/example-signal-recipient.py: import dbus.glib
2562         to get the main loop and use glib mainloop instead of gtk so
2563         X doesn't have to be running. Import the decorators module
2564         directly.
2565
2566         * test/glib/Makefile.am:  Added DIST_EXTRA files that distcheck
2567         didn't pick up on but are needed to build
2568
2569         * configure.in: upped version to 0.35.2
2570
2571         * bus/driver.c, bus/selinux.c, bus/selinux.h, dbus/dbus-protocol.h:
2572         added Colin Walters' SELinux API rename patch from head 
2573         s/unix sercurity context/selinux security context/
2574
2575 2005-07-16  John (J5) Palmieri  <johnp@redhat.com>
2576
2577         * python/Makefile.am: dbus_binding.pxd.in should be included 
2578         in EXTRA_DIST not dbus_binding.pxd
2579         fix up $(srcdir) hopefully for the last time
2580
2581         * NEWS: Update to 0.35.1
2582
2583 2005-07-16  Colin Walters  <walters@verbum.org>
2584
2585         * bus/driver.c (bus_driver_handle_get_connection_selinux_security_context): Renamed
2586         from bus_driver_handle_get_connection_unix_security_context.  Update for
2587         error usage.
2588         (message_handlers): Update for renames.
2589
2590         * bus/selinux.c (bus_selinux_allows_send): Handle OOM on
2591         _dbus_string_init failure correctly.
2592         (bus_selinux_append_context): Convert SID to context.  Append it
2593         as a byte array.
2594         (bus_selinux_shutdown): Handle the case where bus_selinux_full_init
2595         hasn't been called.
2596
2597         * bus/selinux.h: Update prototype.
2598
2599         * dbus/dbus-protocol.h (DBUS_ERROR_SELINUX_SECURITY_CONTEXT_UNKNOWN): Renamed
2600         from DBUS_ERROR_UNIX_SECURITY_CONTEXT_UNKNOWN.
2601
2602 2005-07-15  Colin Walters  <walters@verbum.org>
2603
2604         * doc/TODO: Add note about convenience wrappers.
2605
2606 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
2607
2608         * NEWS: Update to 0.35
2609
2610 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
2611
2612         * glib/Makefile.am: Add make-dbus-glib-error-switch.sh to EXTRA_DIST
2613         so distcheck doesn't fail
2614
2615         * glib/examples/Makefile.am: Add example-service.xml and 
2616         example-signal-emitter.xml to EXTRA_DIST so distcheck doesn't fail
2617
2618         * glib/examples/statemachine/Makefile.am: Add statemachine.xml and
2619         statemachine-server.xml to EXTRA_DIST so distcheck doesn't fail
2620
2621         * python/Makefile.am: Preprend $(srcdir)/ to source files so the
2622         compiler looks in the right places during distcheck
2623
2624 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
2625
2626         * glib/example/Makefile.am: Fix a typo which cause make distcheck
2627         to fail
2628
2629 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
2630
2631         * python/examples/example-service.py,
2632         python/examples/example-signal-emitter.py: Fixed up examples
2633         for API changes
2634
2635 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
2636
2637         * python/__init__.py: Upped to version (0,42,0) because of
2638         the API change
2639
2640 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
2641
2642         * ChangeLog: fix date in last entry
2643
2644         * configure.in, bus/system.conf.in: add the ability to configure 
2645         the system bus user at compiletime with the --with-dbus-user flag
2646         (patch from Kristof Vansant)
2647
2648 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
2649
2650         * bus/dispatch.c, test/test-service.c: Add testcase
2651         for sending messages to oneself (TODO item).
2652
2653         * python/service.py (class Object): Swap ordering of bus_name 
2654         and object_path parameters to better support inheritance.
2655
2656         * doc/dbus-tutorial.xml: change Python docs to reflect change
2657         in parameter ordering and fix the inheritance section.
2658
2659         * doc/TODO: remove sending message to oneself TODO item
2660
2661 2005-07-15  Ross Burton  <ross@openedhand.com>
2662
2663         * glib/dbus-gproxy.c:
2664         Fix a leak when calling methods via the proxy.
2665
2666 2005-07-15  Colin Walters  <walters@verbum.org>
2667
2668         * bus/selinux.c (bus_selinux_append_context): Wrap in
2669         HAVE_SELINUX.
2670
2671 2005-07-14  John (J5) Palmieri  <johnp@redhat.com>
2672
2673         * python/_dbus.py (Bus::remove_signal_receiver):
2674         don't add a callback to the match if none has been passed in
2675         
2676         * python/matchrules.py (SignalMatchTree::remove): if the rule
2677         being matched does not have a callback treat it as a wildcard
2678         fix matching logic
2679
2680         * doc/dbus-tutorial.xml: Add Python tutorial
2681
2682 2005-07-14  Colin Walters  <walters@verbum.org>
2683
2684         * bus/driver.c
2685         (bus_driver_handle_get_connection_unix_security_context): New function.
2686         (message_handlers): Add.
2687
2688         * bus/selinux.c (bus_selinux_append_context): New function; appends
2689         security context to message.
2690
2691         * bus/selinux.h: Prototype.
2692
2693         * dbus/dbus-protocol.h (DBUS_ERROR_UNIX_SECURITY_CONTEXT_UNKNOWN): New.
2694
2695 2005-07-14  John (J5) Palmieri  <johnp@redhat.com>
2696
2697         * bus/activation.c: clean up all tabs to be 8 spaces 
2698         (bus_activation_activate_service): make sure we clean up
2699         if activation fails
2700
2701         * bus/dispatch.c: clean up all tabs to be 8 spaces 
2702         (check_shell_fail_service_auto_start): New function
2703         tests to make sure we get fail properly when trying to auto start a service
2704         with a faulty command line
2705         (check_shell_service_success_auto_start): New function tests to make sure
2706         auto started services get the arguments on the command line
2707
2708         * test/test-shell-service.c: Added service for testing auto-starting with 
2709         command line arguments
2710
2711         * test/data/valid-service-files/debug-shell-echo-fail.service.in, 
2712         test/data/valid-service-files/debug-shell-echo-success.service.in:
2713         Added service files for testing auto-starting with command line arguments
2714
2715         * */.cvsignore: added a bunch of generated files to various .cvsignore files
2716
2717 2005-07-14  Rodrigo Moya  <rodrigo@novell.com>
2718
2719         * dbus/dbus-shell.[ch]: copy/pasted code from GLib.
2720         
2721         * dbus/Makefile.am: added new files to build.
2722
2723         * bus/activation.c (bus_activation_activate_service): support
2724         activation commands with parameters.
2725
2726         * test/shell-test.c: added test program for the shell parsing
2727         code.
2728
2729 2005-07-13  David Zeuthen  <davidz@redhat.com>
2730
2731         * tools/dbus-send.c (append_arg, type_from_name): Also support 16 and
2732         64 bit signed and unsigned parameters
2733
2734 2005-07-13  John (J5) Palmieri  <johnp@redhat.com>
2735
2736         * python/.cvsignore: remove dbus_bindings.pyx, add dbus_bindings.pxd
2737
2738         * python/service.py (class Name): renamed BusName to make it clearer
2739         what the object is for (a name on the bus)
2740
2741         * python/examples/example-service.py,
2742         python/examples/example-signal-emitter.py: change the Name object to
2743         BusName
2744
2745 2005-07-12  Colin Walters  <walters@verbum.org>
2746
2747         Patch from Jim Gettys <Jim.Gettys@hp.com>.
2748
2749         * tools/dbus-launch.c: Include sys/select.h.
2750
2751 2005-07-12  John (J5) Palmieri  <johnp@redhat.com>
2752         * python/dbus_bindings.pyx.in: removed
2753
2754         * python/dbus_bindings.pyx: Added.
2755         - Fixed some memleaks (patch from 
2756         Sean Meiners <sean.meiners@linspireinc.com>)
2757         - Broke out the #include "dbus_h_wrapper.h" and put it in its
2758         own pxd file (Pyrex definition)
2759         - Broke out glib dependancies into its own pyx module
2760         
2761         * python/dbus_bindings.pdx: Added.
2762         - Defines C class Connection for exporting to other modules
2763
2764         * python/dbus_glib_bindings.pyx: Added.
2765         - New module to handle lowlevel dbus-glib mainloop integration
2766
2767         * python/glib.py: Added.
2768         - Registers the glib mainloop when you import this module
2769
2770         * python/services.py: Removed (renamed to service.py)
2771         
2772         * python/service.py: Added.
2773         - (class Server): renamed Name
2774
2775         * python/__init__.py: Bump ro version (0,41,0)
2776         -don't import the decorators or service module
2777         by default.  These now reside in the dbus.service namespace
2778
2779         * python/_dbus.py (Bus::__init__): Add code run the main loop 
2780         setup function on creation 
2781
2782         * python/examples/example-service.py,
2783         python/examples/example-signal-emitter.py: update examples
2784
2785         * python/examples/gconf-proxy-service.py,
2786         python/examples/gconf-proxy-service2.py: TODO fix these up
2787
2788         * doc/TODO: Addition
2789         - Added a Python Bindings 1.0 section
2790         - added "Add match on args or match on details to match rules"
2791
2792
2793 2005-07-12  Colin Walters  <walters@verbum.org>
2794
2795         * glib/examples/statemachine/Makefile.am (statemachine-server-glue.h) 
2796         (statemachine-glue.h): 
2797         * glib/examples/Makefile.am (example-service-glue.h) 
2798         (example-signal-emitter-glue.h): 
2799         * glib/Makefile.am (dbus-glib-error-switch.h): 
2800         Add libtool --mode=execute so we use the built library instead
2801         of any installed one.
2802
2803 2005-07-11  Colin Walters  <walters@verbum.org>
2804
2805         * glib/dbus-gvalue.c (struct _DBusGValue): Delete.
2806         (dbus_g_value_types_init): Remove assertion.
2807         (dbus_g_value_get_g_type, dbus_g_value_open)
2808         (dbus_g_value_iterator_get_values, dbus_g_value_get_signature)
2809         (dbus_g_value_copy, dbus_g_value_free): Delete unimplemented
2810         functions related to DBusGValue.  Now we marshal/demarshal
2811         structures as GValueArray.
2812         (dbus_gtype_from_signature_iter): Return G_TYPE_VALUE_ARRAY for
2813         structures.
2814         (signature_iter_to_g_type_array): Don't call
2815         signature_iter_to_g_type_struct.
2816         (signature_iter_to_g_type_struct): Delete.
2817         (dbus_gvalue_to_signature): Delete.
2818         (dbus_gvalue_to_signature): New function with same name as other
2819         one; we can convert structures to signatures.
2820         (demarshal_valuearray): New function.
2821         (get_type_demarshaller): Use it.
2822         (demarshal_recurse): Delete.
2823         (marshal_proxy): New function.
2824         (marshal_map): Warn if we can't determine signature from type.
2825         (marshal_collection_ptrarray): Ditto.
2826         (marshal_collection_array): Ditto.
2827         (get_type_marshaller): Use marshal_valuearray.
2828         (marshal_recurse): Delete.
2829         (_dbus_gvalue_test): Add some tests.
2830
2831         * dbus/dbus-glib.h (struct _DBusGValueIterator): 
2832         (dbus_g_value_get_g_type, DBUS_TYPE_G_VALUE)
2833         (dbus_g_value_open, dbus_g_value_iterator_get_value)
2834         (dbus_g_value_iterator_get_values, dbus_g_value_iterator_recurse)
2835         (dbus_g_value_free): Remove prototypes.
2836
2837         * glib/dbus-binding-tool-glib.c (dbus_g_type_get_lookup_function): Handle
2838         G_TYPE_VALUE_ARRAY.
2839
2840         * glib/examples/example-service.c:
2841         * glib/examples/example-client.c: Implement GetTuple.
2842
2843         * test/glib/test-dbus-glib.c:
2844         * test/glib/test-service-glib.c:
2845         * test/glib/test-service-glib.xml: Add structure tests.
2846
2847 2005-07-10  Colin Walters  <walters@verbum.org>
2848
2849         * doc/TODO: Knock off some GLib items with this patch.
2850
2851         * glib/dbus-gvalue-utils.c (_dbus_gtype_can_signal_error) 
2852         (_dbus_gvalue_signals_error): New functions.
2853
2854         * glib/dbus-gvalue-utils.h: Prototype them.
2855
2856         * glib/dbus-gobject.c (arg_iterate): Update to handle return vals
2857         and change to not output const/retval flags for input args.  All
2858         callers updated.
2859         (invoke_object_method): Refactor to handle return values.  Add
2860         some more comments in various places.  Remove debug g_print.
2861
2862         * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_RETURNVAL): New.
2863
2864         * glib/dbus-binding-tool-glib.c (dbus_g_type_get_marshal_name):
2865         Handle G_TYPE_NONE.
2866         (compute_gsignature): New function; refactored from code from
2867         compute_marshaller and compute_marshaller_name.  Enhance to
2868         handle return values and async ops more cleanly.  Update for
2869         async ops returning NONE instead of BOOLEAN.
2870         (compute_marshaller, compute_marshaller_name): Call compute_gsignature
2871         and output appropriate string.
2872         (generate_glue): Handle return value annotation.  Also don't dump
2873         constness flag for input arguments.
2874
2875         * glib/Makefile.am (DBUS_GLIB_INTERNALS): New variable; contains
2876         files shared between installed library and utilities.
2877         (libdbus_glib_1_la_SOURCES): Move some stuf into DBUS_GLIB_INTERNALS.
2878         (libdbus_gtool_la_SOURCES): Suck in DBUS_GLIB_INTERNALS so the
2879         binding tool can access gtype utility functions.
2880
2881         * test/glib/test-service-glib.c: 
2882         * test/glib/test-service-glib.xml: 
2883         * test/glib/test-dbus-glib.c: Add some tests for return values.
2884
2885 2005-07-09  Colin Walters  <walters@verbum.org>
2886
2887         * glib/dbus-gparser.c (parse_annotation): Add annotations to
2888         argument if available, not method.
2889
2890         * glib/dbus-gobject.c (arg_iterate): More verbose warnings.
2891         (invoke_object_method): First, remove some redundant
2892         GValues (object_value, error_value) in favor of working on
2893         array directly.  Second, rework constness to be less buggy.
2894         Now we iterate directly over the argument metadata instead
2895         of parallel iterating over output signature and metadata.
2896
2897         * glib/dbus-glib-tool.h: Add INVALID_ANNOTATION error.
2898
2899         * glib/dbus-binding-tool-glib.c (generate_glue): Barf on const
2900         annotation on input args.
2901         
2902 2005-07-09  Colin Walters  <walters@verbum.org>
2903
2904         * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_CONST):
2905         Define.
2906
2907         * glib/dbus-binding-tool-glib.c (generate_glue): Handle Const
2908         annotation.
2909
2910         * glib/dbus-gobject.c (arg_iterate): Update to parse constval too.
2911         (method_dir_signature_from_object_info): Handle arg_iterate change.
2912         (write_interface): Ditto.
2913         (lookup_object_info): Don't barf if format_version is > 0.
2914         (invoke_object_method): Handle arg constness.
2915
2916         * glib/dbus-gidl.c (struct ArgInfo): Add annotations.
2917         (arg_info_new): Create.
2918         (arg_info_unref): Destroy.
2919         (arg_info_get_annotations, arg_info_get_annotation) 
2920         (arg_info_add_annotation): New functions.
2921
2922         * glib/dbus-gidl.h: Prototype them.
2923
2924         * glib/dbus-gparser.c (parse_annotation): Allow annotations in
2925         args, disallow them in properties.
2926         (parse_annotation): Handle arg annotations.
2927
2928         * test/glib/test-service-glib.xml: 
2929         * test/glib/test-service-glib.c: Update to make some methods
2930         const.
2931
2932 2005-07-08  Colin Walters  <walters@verbum.org>
2933
2934         * test/glib/test-service-glib.xml: 
2935         * test/glib/test-service-glib.c:
2936         * test/glib/test-dbus-glib.c: Test a{sv}.
2937
2938         * glib/examples/statemachine/statemachine.c:
2939         * glib/examples/statemachine/statemachine-server.c:
2940         * glib/examples/statemachine/statemachine-client.c: Fix some bugs,
2941         add progress bar, etc.
2942
2943         * glib/dbus-gvalue.c (register_array, register_dict): Delete; not
2944         needed anymore due to generic array/map marshalling.
2945         (dbus_g_value_types_init): Don't register basic arrays or the
2946         string/string hash.
2947         (dbus_gtype_from_signature_iter): Don't try to recurse into
2948         variants.
2949         (dbus_gtype_to_signature): Check collection/map before type
2950         metadata.
2951         (demarshal_garray_basic): Renamed to demarshal_collection_array.
2952         (demarshal_ghashtable): Renamed to demarshal_map; fix to use new
2953         generic map creation/append functions instead of hash table
2954         specifically.
2955         (get_type_demarshaller): Handle maps.
2956         (demarshal_collection): Dispatch on collection type to either
2957         demarshal_collection_ptrarray or demarshal_collection_array.
2958         (get_type_marshaller): Handle maps.
2959         (marshal_collection): Dispatch collection type to either
2960         marshal_collection_ptrarray or marshal_collection_array.
2961         (_dbus_gvalue_test): New test.
2962
2963         * glib/dbus-gvalue-utils.c (unset_and_free_g_value): New function.
2964         (hash_free_from_gtype): Use it to free GValues.
2965         (hashtable_append): New function.
2966         (ptrarray_append): Fix prototype.
2967         (slist_append): Ditto.
2968         (_dbus_gvalue_utils_test): Extend tests.
2969
2970         * glib/dbus-gtype-specialized.c
2971         (dbus_g_type_specialized_init_append): Renamed from
2972         dbus_g_type_specialized_collection_init_append.  Remove const from
2973         value, since we steal it.
2974         (dbus_g_type_specialized_map_append): New function.
2975
2976         * glib/dbus-gtype-specialized.h: Update prototypes.
2977         Add DBusGTypeSpecializedMapAppendFunc.
2978
2979         * glib/dbus-gtest.c (dbus_glib_internal_do_not_use_run_tests): Run
2980         _dbus_gvalue_test.
2981         
2982         * glib/dbus-gtest.h: Prototype it.
2983
2984 2005-07-08  Ross Burton  <ross@openedhand.com>
2985
2986         * dbus/dbus-glib.h:
2987         Add DBysGAsyncData for the async bindings.
2988
2989         * glib/dbus-binding-tool-glib.c:
2990         Re-enable the async bindings.
2991
2992         * test/glib/test-dbus-glib.c:
2993         Add a test for the generated async bindings.
2994
2995 2005-07-08  Colin Walters  <walters@verbum.org>
2996
2997         * doc/TODO: Update GLib todo bits, also add a post-1.0 TODO for a
2998         connection concept.
2999         
3000 2005-07-08  Colin Walters  <walters@verbum.org>
3001         
3002         * tools/Makefile.am: Kill of print-introspect in favor of using
3003         dbus-send --print-reply=literal.
3004
3005         * test/glib/test-service-glib.xml: 
3006         * test/glib/test-service-glib.c (my_object_get_objs): New test
3007         for "ao".
3008
3009         * test/glib/test-dbus-glib.c (echo_received_cb): Free echo data.
3010         (main): Test GetObjs.
3011
3012         * glib/examples/statemachine/Makefile.am:
3013         * glib/examples/statemachine/sm-marshal.list:
3014         * glib/examples/statemachine/statemachine-client.c:
3015         * glib/examples/statemachine/statemachine-server.c:
3016         * glib/examples/statemachine/statemachine-server.xml:
3017         * glib/examples/statemachine/statemachine.c:
3018         * glib/examples/statemachine/statemachine.h:
3019         * glib/examples/statemachine/statemachine.xml:
3020
3021         New example.
3022
3023         * glib/examples/example-service.c (main): Move invocation
3024         of dbus_g_object_type_install_info earlier, to emphasize it
3025         should only be done once.
3026
3027         * glib/examples/example-signal-emitter.c (main): Ditto.
3028
3029         * glib/examples/Makefile.am (SUBDIRS): Include statemachine.
3030
3031         * glib/dbus-gvalue.h (dbus_gtype_to_signature)
3032         (dbus_gvalue_marshal): Update prototypes.
3033
3034         * glib/dbus-gvalue.c: Update all marshalling functions to take
3035         const GValue instead of GValue.
3036         (signature_iter_to_g_type_array): Return a GPtrArray for nonfixed
3037         types.
3038         (dbus_gvalue_to_signature): Update for dbus_gtype_to_signature
3039         change.
3040         (dbus_gtype_to_signature): Handle generic collecitons and maps.
3041         Return a newly-allocated string.
3042         (demarshal_proxy, demarshal_object_path, demarshal_object)
3043         (demarshal_strv, demarshal_ghashtable): Set error, don't assert if
3044         we get the wrong types from message.
3045         (get_type_demarshaller): New function, extracted from
3046         dbus_gvalue_demarshal.
3047         (demarshal_collection): New function, demarshals generic
3048         collection.
3049         (dbus_gvalue_demarshal): Just invoke result of
3050         get_type_demarshaller.  Throw error if we don't have one.
3051         (marshal_garray_basic): Abort on OOM.
3052         (get_type_marshaller): New function, extracted from
3053         dbus_gvalue_marshal.
3054         (collection_marshal_iterator, marshal_collection): New functions;
3055         implements generic marshalling for an iteratable specialized
3056         collection.
3057         (dbus_gvalue_marshal): Just invoke result of get_type_marshaller.
3058
3059         * glib/dbus-gvalue-utils.c (gvalue_from_ptrarray_value): Handle
3060         G_TYPE_STRING.
3061         (ptrarray_value_from_gvalue): Ditto.
3062         (ptrarray_append, ptrarray_free): New functions.
3063         (slist_constructor, slist_iterator, slist_copy_elt, slist_copy) 
3064         (slist_append, slist_end_append, slist_free): New functions.
3065         (dbus_g_type_specialized_builtins_init): Add append fuctions
3066         for GPtrArray and GSList.  Register GSList.
3067         (test_specialized_hash, _dbus_gvalue_utils_test): New functions.
3068
3069         * glib/dbus-gtype-specialized.h (DBusGTypeSpecializedAppendContext):
3070         New.
3071         (dbus_g_type_specialized_collection_init_append)
3072         (dbus_g_type_specialized_collection_append)
3073         (dbus_g_type_specialized_collection_end_append): Prototype.
3074         (DBusGTypeSpecializedCollectionVtable): Add append_func and
3075         end_append_func.
3076
3077         * glib/dbus-gtype-specialized.c (dbus_g_type_specialized_collection_init_append) 
3078         (dbus_g_type_specialized_collection_append) 
3079         (dbus_g_type_specialized_collection_end_append): New functions.
3080         (dbus_g_type_map_value_iterate): Take const GValue.
3081         (dbus_g_type_collection_value_iterate): Ditto.
3082
3083         * glib/dbus-gtest.c (dbus_glib_internal_do_not_use_run_tests): Run
3084         _dbus_gvalue_utils_test.
3085         
3086         * glib/dbus-gtest.h: Prototype it.
3087
3088         * glib/dbus-gproxy.c (dbus_g_proxy_manager_filter): Avoid
3089         using uninitialized owner_list.
3090         (dbus_g_proxy_begin_call_internal): Move return_if_fail to
3091         public API.
3092         (dbus_g_proxy_end_call_internal): Update to use error set
3093         from dbus_gvalue_demarshal instead of setting it here.
3094         (dbus_g_proxy_begin_call): Move return_if_fail here.
3095
3096         * glib/dbus-gobject.c (write_interface): Update for
3097         dbus_gtype_to_signature returning new string.
3098
3099         * configure.in: Add glib/examples/statemachine.
3100
3101 2005-07-08  Joe Shaw  <joeshaw@novell.com>
3102
3103         * configure.in: Add a configure option, --with-console-auth-dir
3104         
3105         * dbus/dbus-sysdeps-util.c (_dbus_user_at_console): Use the
3106         new setting.  Patch from Kay Sievers.
3107
3108 2005-07-06  Colin Walters  <walters@verbum.org>
3109
3110         * dbus/dbus-glib.h (DBusGPendingCall, DBusGPendingCallNotify)
3111         (DBUS_TYPE_G_PENDING_CALL, dbus_g_pending_call_get_g_type)
3112         (dbus_g_pending_call_ref, dbus_g_pending_call_unref): Delete.
3113         (dbus_g_pending_call_set_notify, dbus_g_pending_call_cancel):
3114         Delete in favor of dbus_g_proxy_begin_call and
3115         dbus_g_proxy_cancel_call.
3116         (DBusGProxyCall, DBusGProxyCallNotify): New.
3117         (dbus_g_proxy_begin_call): Change prototype to take callback, user
3118         data, and destroy function.  This replaces
3119         dbus_g_pending_call_set_notify.
3120         (dbus_g_proxy_cancel_call): Prototype.
3121         (DBusGAsyncData): Delete, shouldn't be needed anymore.
3122
3123         * glib/dbus-gproxy.c (struct _DBusGProxy): Add call_id_counter and
3124         pending_calls map.
3125         (struct _DBusGProxyManager): Add bus_proxy member, which is an
3126         internal proxy for calls to the bus. Remove
3127         pending_nameowner_calls, now the internal proxy keeps track.
3128         (dbus_g_proxy_manager_unref): Unref bus proxy, remove reference to
3129         pending_nameowner_calls.
3130         (got_name_owner_cb): Update prototype, and use
3131         dbus_g_proxy_end_call.
3132         (got_name_owner_cb): Remove reference to pending_nameowner_calls.
3133         (dbus_g_proxy_manager_register): Delete directly libdbus code in
3134         favor of using internal proxy.
3135         (dbus_g_proxy_manager_unregister): Update to use
3136         dbus_g_proxy_cancel_call for any pending GetNameOwner call.
3137         (dbus_g_proxy_init): Initialize pending calls map.
3138         (dbus_g_proxy_constructor): New.
3139         (dbus_g_proxy_class_init): Add get/set property functions,
3140         constructor, and add NAME, PATH, and INTERFACE properties.
3141         (cancel_pending_call): New function.
3142         (dbus_g_proxy_dispose): Iterate over any outstanding calls and
3143         cancel them.
3144         (dbus_g_proxy_set_property, dbus_g_proxy_get_property): New.
3145         (GPendingNotifyClosure): New structure.
3146         (d_pending_call_notify, d_pending_call_free): Moved here from
3147         dbus-glib.c.
3148         (DBUS_G_VALUE_ARRAY_COLLECT_ALL): Moved around to satisfy function
3149         ordering.
3150         (manager_begin_bus_call): New internal function for talking to
3151         internal bus proxy.
3152         (dbus_g_proxy_new): Construct object using GObjet properties.
3153         (dbus_g_proxy_begin_call_internal): Update to take user data, etc.
3154         Create closure of same, and insert call into map of pending calls.
3155         (dbus_g_proxy_end_call_internal): Take call id instead of pending
3156         call.  Look up pending call in current set.  Remove it when we've
3157         completed.
3158         (dbus_g_pending_call_end, dbus_g_proxy_end_call_internal): Delete.
3159         (dbus_g_proxy_begin_call): Change API to take callback, user data,
3160         and destroy function directly.
3161         (dbus_g_proxy_end_call): Update to take DBusGProxyCall.
3162         (dbus_g_proxy_call): Invoke with NULL callback.
3163         (dbus_g_proxy_cancel_call): New function, replaces
3164         dbus_g_pending_call_cancel.
3165
3166         * glib/dbus-gparser.c (validate_signature): Fix call to
3167         dbus_set_g_error.
3168
3169         * glib/dbus-gobject.c (dbus_g_object_type_dbus_metadata_quark):
3170         New quark for attaching metadata to GType.
3171         (info_hash): Delete.
3172         (lookup_object_info): Look up using quark.
3173         (dbus_g_object_type_install_info): Check that a type is classed,
3174         not that it's an object.  Also just install type data using quark
3175         instead of using global hash.
3176
3177         * glib/dbus-glib.c (dbus_g_pending_call_ref) 
3178         (dbus_g_pending_call_unref, dbus_pending_call_get_g_type)
3179         (GPendingNotifyClosure): Delete.
3180         (d_pending_call_notify, d_pending_call_free): Move to dbus-gproxy.c.
3181         (dbus_g_pending_call_set_notify, dbus_g_pending_call_cancel): Delete.
3182
3183         * glib/dbus-binding-tool-glib.c (generate_client_glue): Disable async
3184         client method generation until we can fix it...
3185         
3186         * tools/dbus-viewer.c (load_child_nodes): Use dbus_g_proxy_call.
3187         (load_from_service_thread_func): Ditto.
3188
3189         * tools/dbus-names-model.c (struct NamesModel): Hold
3190         DBusGProxyCall.
3191         (have_names_notify): Update prototype, use
3192         dbus_g_proxy_cancel_call.
3193         (names_model_reload): Update for new dbus_g_proxy_begin_call API.
3194
3195         * tools/dbus-monitor.c (filter_func): Update for print_message
3196         API change.
3197
3198         * test/glib/test-dbus-glib.c: Add more tests for async
3199         invocations.  Update many begin_call/end_call pairs to just use
3200         dbus_g_proxy_call.
3201
3202         * tools/dbus-send.c (main): Add --print-reply=literal mode.  This
3203         allows us to dump print-introspect.c.
3204
3205         * tools/dbus-print-message.h (print_message): Add literal argument
3206         to print_message which is intended to allow printing arguments without
3207         metadata like "string=".
3208
3209         * tools/dbus-print-message.c (print_iter): Add literal argument.
3210         (print_message): Allow printing string messages literally.
3211
3212 2005-07-05  Colin Walters  <walters@verbum.org>
3213
3214         * glib/dbus-gproxy.c (marshal_dbus_message_to_g_marshaller):
3215         Remove value refcount leak, original patch from Jorn Baayen
3216         <jorn@openedhand.com>.  Also remove useless extra value in favor
3217         of prepending to value array directly.
3218
3219 2005-07-02  Colin Walters  <walters@verbum.org>
3220
3221         * glib/dbus-gmain.c (_dbus_gmain_test): Fix test.
3222
3223 2005-07-01  Colin Walters  <walters@verbum.org>
3224
3225         Patch from Jonathan Matthew <jonathan@kaolin.hn.org>
3226         
3227         * glib/dbus-gvalue.c (basic_typecode_to_gtype): Fix return type.
3228         (dbus_g_value_types_init): Marshal G_TYPE_CHAR as DBUS_TYPE_BYTE,
3229         G_TYPE_LONG as DBUS_TYPE_INT32, G_TYPE_ULONG as DBUS_TYPE_UINT32,
3230         and G_TYPE_FLOAT as DBUS_TYPE_DOUBLE.
3231
3232 2005-06-30  Colin Walters  <walters@verbum.org>
3233
3234         * test/glib/test-dbus-glib.c:
3235         * test/glib/test-service-glib.c:
3236         * test/glib/test-service-glib.xml: Update tests for new error
3237         setting bits, also add async tests (patch from Ross Burton).
3238
3239         * test/glib/Makefile.am (test_service_glib_LDADD): Add
3240         DBUS_GLIB_THREADS_LIBS.
3241
3242         * glib/dbus-gproxy.c (get_name_owner)
3243         (dbus_g_pending_call_end_valist): Ditto.
3244
3245         * glib/dbus-gobject.c (error_metadata): New mapping from GError
3246         domain (GQuark) to DBusGErrorInfo.  
3247         (gerror_domaincode_to_dbus_error_name): Attempt to look up error
3248         quark in error_metadata.  Take message interface as default
3249         error message interface.
3250         (gerror_to_dbus_error_message): Pass message interface.
3251         (dbus_set_g_error): Resurrected.
3252         (dbus_g_error_info_free): New function.
3253         (dbus_g_object_type_install_info): Use g_type_class_ref instead
3254         of _peek to actually create the object class if it hasn't been
3255         created yet.
3256         (dbus_g_error_domain_register): New function.
3257
3258         * glib/dbus-gmain.c (dbus_g_bus_get): Switch to dbus_set_g_error.
3259
3260         * glib/dbus-gparser.c (validate_signature): Ditto.
3261
3262         * dbus/dbus-glib.h (dbus_g_error_set): Delete.
3263         (dbus_g_error_domain_register): Prototype.
3264
3265         * glib/dbus-glib.c (dbus_g_error_set): Delete.
3266         Update tests.
3267
3268 2005-06-29  Colin Walters  <walters@verbum.org>
3269
3270         * dbus/dbus-glib.h: Delete DBUS_TYPE_G_PROXY_ARRAY.  Add
3271         DBUS_TYPE_G_OBJECT_PATH.
3272
3273         * glib/dbus-gvalue.c (dbus_g_value_types_init): Remove marshallers
3274         for G_TYPE_OBJECT and DBUS_TYPE_G_PROXY_ARRAY (the latter should
3275         be handled more generically).  Add DBUS_TYPE_G_OBJECT_PATH.
3276         (dbus_g_object_path_get_g_type): New function.
3277         (dbus_gtype_from_signature_iter): Map DBUS_TYPE_OBJECT_PATH
3278         to DBUS_TYPE_G_OBJECT_PATH by default.
3279         (demarshal_proxy): Remove unused name variable.
3280         (demarshal_object_path, marshal_object_path): New functions.
3281         (demarshal_proxy_array, marshal_proxy_array): Delete.
3282         
3283         * glib/dbus-binding-tool-glib.c (dbus_g_type_get_c_name): Map
3284         DBUS_TYPE_G_OBJECT_PATH to char *.
3285         (dbus_g_type_get_lookup_function): Map builtin
3286         DBUS_TYPE_G_OBJECT_PATH.
3287
3288         * test/glib/test-dbus-glib.c
3289         * test/glib/test-service-glib.c (my_object_objpath): 
3290         Adapt tests to new object path marshalling.
3291
3292 2005-06-29  John (J5) Palmieri  <johnp@redhat.com>
3293
3294         * configure.in: force check for Python >= 2.4
3295
3296 2005-06-29  Colin Walters  <walters@verbum.org>
3297         
3298         Patch from Ross Burton <ross@openedhand.com>
3299         
3300         * glib/dbus-gobject.c (invoke_object_method): Unset object
3301         value in all cases, not only in async case.
3302
3303 2005-06-29  Colin Walters  <walters@verbum.org>
3304
3305         * glib/dbus-gproxy.c (struct _DBusGProxy): Add new member
3306         name_call for keeping track of any outgoing GetNameOwner call.
3307         Also add for_owner and associated.
3308         (struct _DBusGProxyManager): Add owner_names, which is hash table
3309         that maps a base name to a list of names it owns (that we're
3310         interested in).  Add pending_nameowner_calls which is a list of
3311         all outstanding GetNameOwner; avoids us having to iterate over
3312         every proxy.  Add unassociated_proxies which keeps track of name
3313         proxies with no associated name owner.
3314         (dbus_g_proxy_manager_unref): Destroy owner_names.
3315         (struct DBusGProxyNameOwnerInfo): New struct for keeping track of
3316         name refcounts.
3317         (find_name_in_info, name_owner_foreach)
3318         (dbus_g_proxy_manager_lookup_name_owner, insert_nameinfo)
3319         (dbus_g_proxy_manager_monitor_name_owner)
3320         (dbus_g_proxy_manager_unmonitor_name_owner)
3321         (unassociate_proxies, dbus_g_proxy_manager_replace_name_owner):
3322         New functions; they manipulate the owner_names mapping.
3323         (got_name_owner_cb): New function.
3324         (get_name_owner): New function, extracted from
3325         dbus_g_proxy_new_for_name_owner.
3326         (dbus_g_proxy_manager_register): For now we need to keep track of
3327         all NameOwnerChanged.  Also if the proxy is for a name, if we
3328         don't already know the name owner, queue a new GetNameOwner
3329         request and add it to our list of unassociated proxies.  Otherwise
3330         inc the refcount.
3331         (dbus_g_proxy_manager_unregister): If this proxy is for a name,
3332         cancel any pending GetNameOwner call, etc.
3333         (dbus_g_proxy_manager_filter): Handle NameOwnerChanged.  Also use
3334         the owner_names mapping to look up the current names for the
3335         signal source, and dispatch to any proxies for that name.
3336         (dbus_g_proxy_new): Initialize new members.
3337         (dbus_g_proxy_new_for_name): Delete unused proxy variable.
3338         (dbus_g_proxy_new_for_name_owner): Use get_name_owner.
3339         (dbus_g_pending_call_end_valist): New function, extracted from
3340         dbus_g_proxy_end_call_internal.  Useful when we don't have a proxy
3341         but want to use the GLib infrastructure.  Also note how many
3342         arguments in reply were over.
3343         (dbus_g_pending_call_end): New function, just call
3344         dbus_g_pending_call_end_valist.
3345         (dbus_g_proxy_end_call_internal): Just call
3346         dbus_g_pending_call_end_valist.
3347
3348         * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller): Fix lookup
3349         of builtin marshaller for STRING_STRING_STRING.
3350
3351         * test/glib/test-dbus-glib.c: 
3352         * test/glib/test-service-glib.c:
3353         * test/glib/test-service-glib.xml:
3354         Extend tests to cover name proxies, destruction of owner proxies,
3355         etc.
3356         
3357         * glib/examples/example-signal-recipient.c
3358         (dbus_g_proxy_new_for_name_owner): Create a name proxy.
3359         
3360         * tools/dbus-send.c (main): Print D-BUS error name in addition
3361         to message.
3362
3363 2005-06-28  John (J5) Palmieri  <johnp@redhat.com>
3364
3365         * python/dbus_bindings.pyx.in (cunregister_function_handler,
3366         cmessage_function_handler): Patch from 
3367         Anthony Baxter <anthony@interlink.com.au> fixes threading problems
3368         by using the Py_GILState_Ensure/Release to synchronize with the
3369         python runtime.
3370         
3371 2005-06-28  Ray Strode  <rstrode@redhat.com>
3372
3373         *  dbus/dbus-spawn.c (_dbus_babysitter_unref): kill
3374         babysitter helper process on last unref, bug #2813.
3375
3376 2005-06-27  Colin Walters  <walters@verbum.org>
3377
3378         * test/glib/test-dbus-glib.c: 
3379         * test/glib/test-service-glib.c:
3380         * test/glib/test-service-glib.xml:
3381         Test hash table signal emitting.
3382
3383         * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller): Convert
3384         types to their fundamental basis types, since this is what
3385         marshallers operate on.  Also add an entry for VOID__BOXED.
3386         (dbus_g_object_register_marshaller_array): Convert to fundamental.
3387
3388 2005-06-26  Havoc Pennington  <hp@redhat.com>
3389
3390         * doc/dbus-tutorial.xml: fix names of interface/service/path, fix
3391         from Don Park
3392
3393 2005-06-26  Colin Walters  <walters@verbum.org>
3394
3395         * glib/dbus-glib.c (dbus_set_g_error): Delete.
3396         (dbus_g_error_set): New public function from its ashes; used by
3397         both service-side method implementation and GLib bindings
3398         internals.
3399         (dbus_g_error_has_name, dbus_g_error_get_name): New function.
3400         (_dbus_glib_test): Add some tests.
3401
3402         * test/glib/test-dbus-glib.c (main): Test dbus_g_error_has_name.
3403
3404         * test/glib/test-service-glib.c (my_object_throw_error): Use
3405         dbus_g_error_set.
3406
3407         * glib/dbus-gobject.c (gerror_to_dbus_error_message): Handle
3408         errors thrown by dbus_g_error_set.
3409
3410         * glib/dbus-gmain.c (dbus_g_bus_get): Change to dbus_g_error_set.
3411
3412         * glib/dbus-gparser.c (validate_signature): Ditto.
3413
3414         * glib/dbus-gproxy.c (dbus_g_proxy_new_for_name_owner) 
3415         (dbus_g_proxy_end_call_internal): Ditto.
3416
3417         * glib/Makefile.am: Generate dbus-glib-error-switch.h, which
3418         converts DBUS_ERROR_x to DBUS_GERROR_x.
3419         (libdbus_glib_1_la_SOURCES, BUILT_SOURCES, CLEANFILES): Add it.
3420
3421         * doc/TODO: Remove error TODO.
3422
3423         * doc/dbus-tutorial.xml: Update with documentation about error
3424         handling.
3425
3426         * dbus/make-dbus-glib-error-enum.sh: Tighten up regexp to make
3427         sure we only change DBUS_ERROR to DBUS_GERROR, not all ERROR to
3428         GERROR.  Also add DBUS_GERROR_REMOTE_EXCEPTION.
3429
3430 2005-06-22  Colin Walters  <walters@verbum.org>
3431         
3432         Patch from Ross Burton <ross@openedhand.com>
3433
3434         * glib/dbus-gobject.c (dbus_g_method_return): Free out_sig.
3435
3436 2005-06-20  Colin Walters  <walters@verbum.org>
3437
3438         * configure.in: Add glib/examples.
3439
3440         * glib/Makefile.am: Add examples/
3441
3442         * glib/examples/.cvsignore
3443         * glib/examples/Makefile.am
3444         * glib/examples/example-client.c
3445         * glib/examples/example-service.c
3446         * glib/examples/example-service.xml
3447         * glib/examples/example-signal-emitter.c
3448         * glib/examples/example-signal-emitter.xml
3449         * glib/examples/example-signal-recipient.c:
3450         New files; GLib binding examples, ported from
3451         python/examples.
3452
3453 2005-06-20  Colin Walters  <walters@verbum.org>
3454
3455         * dbus/dbus-glib.h: 
3456         * glib/dbus-gproxy.c: Rename dbus_g_proxy_invoke to
3457         dbus_g_proxy_call.
3458
3459         * glib/dbus-binding-tool-glib.c: 
3460         * doc/dbus-tutorial.xml: 
3461         * test/glib/test-dbus-glib.c: Update for rename.
3462         
3463 2005-06-20  Colin Walters  <walters@verbum.org>
3464
3465         Patch suggested by Ross Burton <ross@openedhand.com>
3466
3467         * glib/dbus-gobject.c (export_signals): Free signal name.
3468         (g_value_init): Use G_VALUE_NOCOPY_CONTENTS to plug
3469         memory leak.  Add a bit of documentation.
3470         (dbus_g_method_return_error): Free context, and note we do
3471         so.
3472
3473 2005-06-18  Murray Cumming  <murrayc@murrayc.com>
3474
3475         * dbus/dbus-glib.h:
3476         * glib/dbus-gobject.c:
3477         * glib/dbus-gproxy.c:
3478         * glib/dbus-gvalue.c: Predeclare structs as 
3479         typedef struct _Something Something instead of 
3480         typedef struct Something Something, so we can 
3481         redeclare the prototypes. Other GNOME libraries 
3482         do this already.
3483
3484 2005-06-17  Colin Walters  <walters@verbum.org>
3485
3486         * tools/dbus-names-model.c (have_names_notify): Fix call
3487         to dbus_g_proxy_end_call.
3488         
3489 2005-06-17  Colin Walters  <walters@verbum.org>
3490
3491         * glib/dbus-gproxy.c (dbus_g_proxy_emit_remote_signal): Don't
3492         spew warnings if we get malformed remote signals.
3493
3494         * glib/dbus-gobject.c (propsig_iterate): New function.
3495         (lookup_object_info): New function, extracted from
3496         lookup_object_and_method.
3497         (introspect_properties, introspect_signals): Delete; these
3498         are merged into write_interface.
3499         (write_interface): Write out signals and properties here;
3500         dump the org.gtk.object stuff and use the interface given
3501         in the introspection data blob.  Also fix up property XML.
3502         (lookup_values): New function.
3503         (introspect_interfaces): Gather a mapping from interface to a
3504         list of its methods, signals, and properties, then write out
3505         each interface.
3506         (lookup_object_and_method): Use lookup_object_info.
3507         (struct DBusGSignalClosure): Add interface.
3508         (dbus_g_signal_closure_new): Add interface. Don't dup signame;
3509         we can just use the constant data.
3510         (dbus_g_signal_closure_finalize): Don't free signal name.
3511         (signal_emitter_marshaller): Use interface from signal closure.
3512         (export_signals): Only export signals mentioned in introspection
3513         blob.
3514         (dbus_g_connection_register_g_object): Warn if we have no
3515         introspection data for an object.
3516         (funcsig_equal): Remove unused variable.
3517         (dbus_g_object_register_marshaller): Take varargs instead of
3518         list.
3519         (dbus_g_object_register_marshaller_array): New function,
3520         extracted from old dbus_g_object_register_marshaller.
3521
3522         * glib/dbus-binding-tool-glib.c (struct DBusBindingToolCData): Add
3523         signals and property data.
3524         (write_quoted_string): New function, extracted from generate_glue.
3525         (generate_glue): Write signals and properties to introspection
3526         blob.
3527
3528         * dbus/dbus-glib.h (struct DBusGObjectInfo): Include
3529         exported_signals and exported_properties.
3530         (dbus_g_object_register_marshaller): Update prototype.
3531         (dbus_g_object_register_marshaller_array): Prototype.
3532         
3533         * test/glib/test-dbus-glib.c: Extend testing to cover new signals.
3534
3535         * test/glib/test-service-glib.c: Add new test signals and method
3536         to emit them.
3537
3538         * test/glib/test-service-glib.xml: Add some test signals.
3539
3540         * test/glib/Makefile.am (BUILT_SOURCES): Add my-object-marshal.c
3541         and my-object-marshal.h
3542         (test_service_glib_SOURCES, test_dbus_glib_SOURCES): Add
3543         my-object-marshal.c.
3544         (my-object-marshal.c, my-object-marshal.h): Implement.
3545
3546         * test/glib/.cvsignore: Update.
3547
3548         * doc/TODO: Remove two GLib TODO items fixed by this
3549         patch.
3550
3551 2005-06-16  Colin Walters  <walters@verbum.org>
3552
3553         * doc/TODO: Update for GLib bindings.
3554         
3555 2005-06-16  Colin Walters  <walters@verbum.org>
3556
3557         * glib/dbus-binding-tool-glib.c:
3558         * glib/dbus-gobject.c:
3559         * glib/dbus-gproxy.c:  Add Nokia copyright; Patch
3560         from Ross Burton, for his GLib bindings work.
3561
3562 2005-06-16  Colin Walters  <walters@verbum.org>
3563
3564         * glib/dbus-gobject.c (funcsig_hash, funcsig_equal): Use n_params
3565         to iterate instead of walking to G_TYPE_INVALID.
3566
3567         Patch based on a patch from Ryan Gammon.
3568
3569 2005-06-16  Colin Walters  <walters@verbum.org>
3570
3571         * bus/bus.c (bus_context_new): Set parser to NULL
3572         after we unref it (Patch from Chris Boscolo, #2174).
3573         
3574 2005-06-16  Colin Walters  <walters@verbum.org>
3575
3576         * python/dbus_bindings.pyx.in: Import size_t,
3577         __int64_t, __uint64_t, and __signed.
3578
3579         * dbus/dbus-sysdeps.c <HAVE_CMSGCRED> (write_credentials_byte):
3580         Define cmsg struct, output it.
3581         (_dbus_read_credentials_unix_socket):
3582         Use cmsg struct.
3583         
3584         Patch from Joe Markus Clarke for FreeBSD support.
3585         
3586 2005-06-16  Colin Walters  <walters@verbum.org>
3587
3588         * tools/dbus-send.c (append_array): Use strtok.
3589         (append_dict): New function.
3590         (type_from_name): New function, extracted from main.
3591         (main): Handle sending dicts.
3592
3593         * tools/dbus-print-message.c (print_iter): Print dict
3594         entries.
3595         
3596 2005-06-16  Colin Walters  <walters@verbum.org>
3597
3598         * glib/dbus-gvalue.c (marshal_basic): Marshal NULL string
3599         values as the empty string (#2948).
3600         
3601 2005-06-16  Colin Walters  <walters@verbum.org>
3602
3603         * dbus/Makefile.am:
3604         * mono/doc/Makefile.am:
3605         * test/glib/Makefile.am:
3606
3607         Fix srcdir != builddir issues (Patch from Chris Wilson, #3477)
3608
3609 2005-06-16  Colin Walters  <walters@verbum.org>
3610
3611         * dbus/dbus-marshal-header.c (_dbus_header_load): Set
3612         header byte order from expected byte order (Patch from Chris Wilson, #3475).
3613
3614         * dbus/dbus-marshal-byteswap.c (byteswap_body_helper): 
3615         Increment pointer after swapping fixed array.  Add assertion
3616         for array length.
3617                 
3618 2005-06-15  Colin Walters  <walters@verbum.org>
3619
3620         * dbus/dbus-sysdeps.c <HAVE_CMSGCRED> (_dbus_read_credentials_unix_socket):
3621         Fix call to dbus_set_error.  (Patch from Michael Banck, #3461)
3622         
3623 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
3624
3625         * NEWS: Update to 0.34
3626
3627 2005-06-15  David Zeuthen  <davidz@redhat.com>
3628
3629         * configure.in (LT_CURRENT): Revert back to 1 as the library
3630         hasn't changed and we've certainly not committed to protocol
3631         stability yet.  All this does is to break ABI. See commit note
3632         from hp@redhat.com 2005-05-05 for details.
3633         
3634 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
3635
3636         * dbus/dbus-connection.c (_dbus_connection_peer_filter): New method 
3637         (_dbus_connection_run_builtin_filters): New method
3638         (dbus_connection_dispatch): Run the builtin filters which in turn
3639         runs the peer filter which handles Ping messages.
3640
3641         * doc/TODO: 
3642          - Ping isn't handled: This patch fixes it
3643          
3644          - Add a test case for the Ping message: added TODO item
3645
3646 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
3647
3648         * dbus/dbus-message.c:
3649         (dbus_message_has_path): New method
3650         (dbus_message_has_interface): New method
3651         (dbus_message_has_member): New method
3652
3653         * dbus/dbus/dbus-sysdeps.c (_dbus_check_dir_is_private_to_user):
3654         New method
3655
3656         * dbus/dbus-keyring.c (_dbus_keyring_reload): Check to see that 
3657         the keyring directory is private to the user
3658
3659         * doc/TODO:
3660          - The convenience functions in dbus-bus.h should perhaps have
3661          the signatures that they would have if they were autogenerated
3662          stubs. e.g. the acquire service function. We should also evaluate
3663          which of these functions to include, in light of the fact that
3664          GLib/Qt native stubs will probably also exist.: Punted
3665
3666          - add dbus_message_has_path(), maybe has_member/interface:
3667          fixed in this patch
3668
3669          - in dbus-keyring.c, enforce that the keyring dir is not
3670          world readable/writable: Fixed in this patch
3671
3672 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
3673
3674         * dbus/dbus-marshal-validate.h: Added a new validation
3675         error code DBUS_VALIDITY_UNKNOWN_OOM_ERROR = -4 for 
3676         out of memory errors when validating signitures
3677
3678         * dbus/dbus-marshal-header.c: use DBUS_VALIDITY_UNKNOWN_OOM_ERROR
3679         in places where we previously used DBUS_VALID and a FALSE return 
3680         value to indicate OOM
3681         
3682         * dbus/dbus-marshal-validate.c (_dbus_validate_signature_with_reason):
3683         Use a stack to track the number of elements inside containers.  The 
3684         stack values are then used to validate that dict entries have only two
3685         elements within them.
3686         (validate_body_helper): check the reason for failure when validating
3687         varients
3688         
3689         * dbus/dbus-message.c (load_message): use 
3690         DBUS_VALIDITY_UNKNOWN_OOM_ERROR in places where we previously used 
3691         DBUS_VALID and a FALSE return value to indicate OOM
3692
3693         * doc/TODO: remove "- validate dict entry number of fields" as this
3694         patch fixes it
3695
3696 2005-06-14  David Zeuthen  <davidz@redhat.com>
3697
3698         * bus/bus.c (process_config_every_time): Drop existing conf-dir
3699         watches (if applicable) and add new watches
3700
3701         * bus/main.c (signal_handler): Handle SIGIO if using D_NOTIFY
3702         (main): Setup SIGIO signal handler if using D_NOTIFY
3703
3704         * bus/config-parser.h: Add prototype bus_config_parser_get_conf_dirs
3705
3706         * bus/config-parser.c (struct BusConfigParser): Add conf_dirs list
3707         (merge_included): Also merge conf_dirs list
3708         (bus_config_parser_unref): Clear conf_dirs list
3709         (include_dir): Add directory to conf_dirs list
3710         (bus_config_parser_get_conf_dirs): New function
3711
3712         * bus/dir-watch.[ch]: New files
3713
3714         * bus/Makefile.am (BUS_SOURCES): Add dir-watch.[ch]
3715
3716         * configure.in: Add checks for D_NOTIFY on Linux
3717
3718 2005-06-14  Colin Walters  <walters@verbum.org>
3719
3720         * glib/dbus-binding-tool-glib.c:
3721         * glib/dbus-gobject.c:
3722         * glib/dbus-gvalue.c: Fix indentation and brace style.
3723         
3724 2005-06-14  Ross Burton <ross@openedhand.com>.
3725
3726         * glib/dbus-glib.h: Make DBusGMethodInvocation
3727         a private structure.  Rearrange prototypes a bit.
3728         
3729         * glib/dbus-gproxy.c (dbus_g_proxy_invoke): Add
3730         documentation for first_arg_type.
3731         
3732         * glib/dbus-gobject.c: Move DBusGMethodInvocation
3733         here, add documentation.  Move dbus_g_method_return
3734         and dbus_g_method_return_error into public API
3735         section.
3736
3737 2005-06-14  Colin Walters  <walters@verbum.org>
3738
3739         * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller):
3740         Add missing return statements, noticed by Ross Burton.
3741         
3742 2005-06-13  Ross Burton <ross@openedhand.com>.
3743
3744         * glib/dbus-gobject.c: Handle errors on message
3745         demarshalling by sending error message back.
3746         * glib/dbus-gvalue.c: Initialize return variables.
3747
3748 2005-06-13  Colin Walters  <walters@verbum.org>
3749
3750         * glib/Makefile.am: Fix thinko in last patch.
3751
3752 2005-06-13  Colin Walters  <walters@verbum.org>
3753
3754         * glib/Makefile.am: Move dbus-gtype-specialized.c
3755         and dbus-gtype-specialized.h into a _HEADERS variable,
3756         install them.
3757
3758 2005-06-12  Colin Walters  <walters@verbum.org>
3759
3760         Async signals and various bugfixes and testing by
3761         Ross Burton <ross@openedhand.com>.
3762
3763         * glib/dbus-gvalue.h: (struct DBusBasicGValue): Delete.
3764         (dbus_gvalue_genmarshal_name_from_type)
3765         (dbus_gvalue_ctype_from_type): Moved to dbus-binding-tool-glib.c.
3766         (dbus_gtype_to_dbus_type): Renamed to dbus_gtype_from_signature.
3767         (dbus_g_value_types_init, dbus_gtype_from_signature)
3768         (dbus_gtype_from_signature_iter, dbus_gtype_to_signature)
3769         (dbus_gtypes_from_arg_signature): New function prototypes.
3770         (dbus_gvalue_demarshal): Take context and error arguments.
3771         (dbus_gvalue_demarshal_variant): New function.
3772         (dbus_gvalue_demarshal_message): New function.
3773         (dbus_gvalue_store): Delete.
3774
3775         * glib/dbus-gvalue.c:
3776
3777         File has been almost entirely rewritten; now we special-case
3778         more types such as DBUS_TYPE_SIGNATURE, handle arrays and
3779         hash tables correctly, etc.  Full support for recursive values
3780         is not yet complete.
3781
3782         * glib/dbus-gproxy.c (dbus_g_proxy_class_init): Change last
3783         argument of signal to G_TYPE_POINTER since we now pass a
3784         structure.
3785         (lookup_g_marshaller): Delete in favor of
3786         _dbus_gobject_lookup_marshaller.
3787         (marshal_dbus_message_to_g_marshaller): Use
3788         _dbus_gobject_lookup_marshaller and dbus_gvalue_demarshal_message
3789         to handle remote signal callbacks.
3790         (dbus_g_proxy_new_from_proxy): New function; creates a new
3791         DBusGProxy by copying an existing one.
3792         (dbus_g_proxy_get_interface, dbus_g_proxy_set_interface)
3793         (dbus_g_proxy_get_path): New functions.
3794         (dbus_g_proxy_marshal_args_to_message): New function;
3795         factored out of existing code.
3796         (DBUS_G_VALUE_ARRAY_COLLECT_ALL): Collect all arguments
3797         from a varargs array.
3798         (dbus_g_proxy_begin_call_internal): New function.
3799         (dbus_g_proxy_end_call_internal): New function.
3800         (dbus_g_proxy_begin_call): Take GTypes instead of DBus types
3801         as arguments; simply invoke dbus_g_proxy_begin_call_internal
3802         after collecting args into value array.
3803         (dbus_g_proxy_end_call): Take GTypes instead of DBus types;
3804         invoke dbus_g_proxy_end_call_internal.
3805         (dbus_g_proxy_invoke): Simply invoke begin_call_interanl and
3806         end_call_internal.
3807         (dbus_g_proxy_call_no_reply): Take GTypes instead of DBus
3808         types.
3809         (array_free_all): New function.
3810         (dbus_g_proxy_add_signal): Take GTypes.
3811
3812         * glib/dbus-gobject.h:
3813         (_dbus_glib_marshal_dbus_message_to_gvalue_array): Delete.
3814         (_dbus_gobject_get_path, _dbus_gobject_lookup_marshaller):
3815         Prototype.
3816
3817         * glib/dbus-gobject.c: Add a global marshal_table hash which
3818         stores mappings from type signatures to marshallers.  Change lots
3819         of invocations of dbus_gtype_to_dbus_type to
3820         dbus_gtype_to_signature.
3821         (_dbus_glib_marshal_dbus_message_to_gvalue_array): Delete.
3822         (introspect_signals): Fix test for query.return_type.
3823         (set_object_property): Update invocation of dbus_gvalue_demarshal.
3824         (invoke_object_method): Many changes.  Handle asynchronous
3825         invocations.  Convert arguments with
3826         dbus_gvalue_demarshal_message.  Handle errors.  Use
3827         DBusSignatureIter instead of strlen on args. Handle all arguments
3828         generically.  Special-case variants.
3829         (dbus_g_method_return, dbus_g_method_return_error): New function.
3830         (DBusGSignalClosure): New structure, closes over signal
3831         information.
3832         (dbus_g_signal_closure_new): New function.
3833         (dbus_g_signal_closure_finalize): New function.
3834         (signal_emitter_marshaller): New function; is special marshaller
3835         which emits signals on bus.
3836         (export_signals): New function; introspects object signals and
3837         connects to them.
3838         (dbus_g_object_type_install_info): Take GType instead of
3839         GObjectClass.
3840         (dbus_g_connection_register_g_object): Invoke export_signals.
3841         (dbus_g_connection_lookup_g_object): New function.
3842         (DBusGFuncSignature) New structure; used for mapping type
3843         signatures to marshallers.
3844         (funcsig_hash): New function; hashes DBusGFuncSignature.
3845         (funcsig_equal): New function; compares DBusGFuncSignature.
3846         (_dbus_gobject_lookup_marshaller): New function.
3847         (dbus_g_object_register_marshaller): New function; used to
3848         register a marshaller at runtime for a particular signature.
3849
3850         * glib/dbus-gmain.c (_dbus_gmain_test): Add various tests.
3851
3852         * glib/dbus-binding-tool-glib.h: Add DBUS_GLIB_ANNOTATION_ASYNC
3853         which notes a server method implementation should be
3854         asynchronous.
3855
3856         * glib/dbus-binding-tool-glib.c
3857         (dbus_binding_tool_output_glib_server): Call
3858         dbus_g_value_types_init.
3859         (write_formal_parameters): Use dbus_gtype_from_signature.  Handle
3860         variants specially.
3861         (dbus_g_type_get_lookup_function): Turn GType into an invocation
3862         of a lookup function.
3863         (write_args_for_direction): Use dbus_g_type_get_lookup_function.
3864         (write_untyped_out_args): New method; write output arguments.
3865         (write_formal_declarations_for_direction): Function for
3866         writing prototypes.
3867         (write_formal_parameters_for_direction): Function for
3868         writing implementations.
3869         (write_typed_args_for_direction): Function for writing
3870         arguments prefixed with GTypes.
3871         (write_async_method_client): Write out async version
3872         of method.
3873
3874         * glib/dbus-binding-tool-glib.c: Include dbus-gvalue-utils.h.
3875         (dbus_g_type_get_marshal_name): Move mapping from GType
3876         to marshal name into here.
3877         (dbus_g_type_get_c_name): Move into here.
3878         (compute_marshaller): Convert signature to type with
3879         dbus_gtype_from_signature, use dbus_g_type_get_marshal_name.
3880         (compute_marshaller_name): Ditto.
3881         (compute_marshaller): Handle async signal annotations.
3882         (gather_marshallers): Return if we don't have a known
3883         prefix.
3884         (generate_glue): Collect introspection blob here, and
3885         write all of the blob at the end.  This allows an object
3886         with multiple interfaces to work.
3887         Mark async methods in introspection blob.
3888
3889         * glib/Makefile.am (libdbus_glib_1_la_SOURCES): Add
3890         dbus-gtype-specialized.c, dbus-gtype-specialized.h,
3891         dbus-gvalue-utils.h, dbus-gvalue-utils.c.
3892
3893         * dbus/dbus-glib.h: Don't include dbus-protocol.h; this
3894         avoids people accidentally using DBUS_TYPE_* which should
3895         not be necessary anymore.
3896         Do include dbus-gtype-specialized.h, which are utilities
3897         for GLib container types.
3898         Add various #defines for types such as
3899         DBUS_TYPE_G_BOOLEAN_ARRAY.
3900         (DBusGValueIterator, DBusGValue): Define, not fully used
3901         yet.
3902         (dbus_g_value_get_g_type): Type for recursive value.
3903         (dbus_g_value_open, dbus_g_value_iterator_get_value)
3904         (dbus_g_value_iterator_get_values, dbus_g_value_iterator_recurse)
3905         (dbus_g_value_free): Prototypes.
3906         (dbus_g_object_register_marshaller, dbus_g_proxy_new_from_proxy): Prototype.
3907         (dbus_g_proxy_set_interface): Prototype.
3908         (dbus_g_proxy_begin_call, dbus_g_proxy_end_call)
3909         (dbus_g_proxy_call_no_reply): Take GLib types instead of DBus
3910         types.
3911         (dbus_g_proxy_get_path, dbus_g_proxy_get_interface):
3912         Accessors.
3913         (DBusGAsyncData, DBusGMethodInvocation): Structures for
3914         doing async invocations.
3915         (dbus_g_method_return, dbus_g_method_return_error):
3916         Prototypes.
3917         * doc/dbus-tutorial.xml: Update GLib section.
3918         
3919         * tools/dbus-viewer.c (load_child_nodes): Update
3920         for new invocation type of dbus_g_proxy_end_call.
3921         (load_from_service_thread_func): Ditto.
3922
3923         * tools/print-introspect.c (main): Ditto.
3924
3925         * tools/dbus-names-model.c (have_names_notify)
3926         (names_model_reload, names_model_set_connection)
3927         Use GTypes.
3928
3929         * python/Makefile.am (INCLUDES): Define DBUS_COMPILATION,
3930         needed since Python bindings use GLib bindings.
3931
3932         * test/glib/Makefile.am (INCLUDES): Define DBUS_COMPILATION.
3933         Add --prefix argument.
3934
3935         * tools/Makefile.am: Define DBUS_COMPILATION.  Remove
3936         unneeded --ignore-unsupported arg.
3937         
3938         * test/glib/test-service-glib.c: 
3939         * test/glib/test-service-glib.xml:
3940         * test/glib/test-dbus-glib.c: Add many more tests.
3941
3942 2005-06-06  David Zeuthen  <davidz@redhat.com>
3943
3944         * doc/TODO: Add item about need to remove deprecated functions.
3945
3946         * dbus/dbus-connection.h: Add prototype for dbus_connection_disconnect
3947
3948         * dbus/dbus-connection.c (dbus_connection_disconnect): New function
3949         to repair the ABI which was broken with the last commit.
3950
3951 2005-06-02  John (J5) Palmieri <johnp@redhat.com>
3952
3953         *  dbus/dbus-connection.c, dbus/dbus-connection.h 
3954         (dbus_connection_disconnect): renamed to dbus_connection_close 
3955         for API symmetry with dbus_connection_open
3956         (_dbus_connection_open_internal): 
3957         s/dbus_connection_disconnect/dbus_connection_close
3958
3959         * dbus/dbus-bus.c (dbus_bus_get):
3960         s/dbus_connection_disconnect/dbus_connection_close
3961
3962         * bus/connection.c (bus_connections_unref, 
3963         bus_connections_setup_connection, bus_connections_expire_incomplete):
3964         s/dbus_connection_disconnect/dbus_connection_close
3965
3966         * bus/dispatch.c (bus_dispatch, kill_client_connection, 
3967         kill_client_connection_unchecked, check_hello_connection):
3968         s/dbus_connection_disconnect/dbus_connection_close
3969
3970         * bus/bus.c (new_connection_callback):
3971         s/dbus_connection_disconnect/dbus_connection_close
3972
3973         * tools/dbus-send.c (main):
3974         s/dbus_connection_disconnect/dbus_connection_close
3975
3976         * test/glib/test-profile.c (no_bus_thread_func, with_bus_thread_func):
3977         s/dbus_connection_disconnect/dbus_connection_close
3978         
3979         * test/test-service.c (path_message_func, filter_func):
3980         s/dbus_connection_disconnect/dbus_connection_close
3981         
3982         * doc/TODO: remove connection_open/connection_disconnect lacks symmetry         item that was just fixed
3983         
3984 2005-05-25  Colin Walters  <walters@verbum.org>
3985
3986         * dbus/dbus-protocol.h: Move various bus service #defines such
3987           as DBUS_SERVICE_DBUS and DBUS_NAME_FLAG_PROHIBIT_REPLACEMENT to
3988           dbus/dbus-shared.h.
3989         * dbus/dbus-shared.h: Various defines moved here.
3990         * dbus/dbus-marshal-header.c: Include dbus-shared.h.
3991
3992 2005-05-25  John (J5) Palmieri  <johnp@redhat.com>
3993
3994         * python/__init__.py: Python bindings deserve a minor version
3995         update.  Upped to (0, 40, 2)
3996
3997 2005-05-24  John (J5) Palmieri  <johnp@redhat.com>
3998
3999         * python/decorators.py: add explicitly_pass_message decorator
4000         for passing in the dbus message as keyword for edge case signal
4001         handling
4002
4003         * python/matchrules.py (SignalMatchRule.__repr__): fix output
4004         to conform with what dbus expects for match rules
4005         (SignalMatchRule.execute): add the dbus message as a keyword
4006         if the signal handler has requested it
4007
4008         * python/examples/example/signal-recipient.py: added some more
4009         examples on how to hook up to signals
4010
4011 2005-05-23  John (J5) Palmieri  <johnp@redhat.com>
4012
4013         * python/decorators.py: import dbus_bindings
4014
4015         * python/matchrules.py (SignalMatchRule, SignalMatchTree, 
4016         SignalMatchNode): new classes that implement wildcard signal
4017         callback matching using a tree lookup. Heavily modified from a
4018         patch sent by Celso Pinto (fd.o bug #3241)
4019
4020         * _dbus.py (add_signal_receiver, remove_signal_receiver, _signal_func):
4021         use new match classes to handle signals.
4022
4023 2005-05-19  John (J5) Palmieri  <johnp@redhat.com>
4024         
4025         * python/dbus_bindings.pyx.in: s/TYPE_PATH/TYPE_OBJECT_PATH
4026
4027 2005-05-18  Havoc Pennington  <hp@redhat.com>
4028
4029         * configure.in: use GLIB_GNU_GETTEXT to get INTLLIBS and require
4030         gettext. Not really worth requiring yet perhaps, but any
4031         production quality 1.0 would require it so we should go ahead and
4032         get things set up. We do have a couple token calls to
4033         bindtextdomain in the code already.
4034
4035 2005-05-16  John (J5) Palmieri  <johnp@redhat.com>
4036
4037         * glib/dbus-gmain.c (io_handler_dispatch): fix deadlock
4038         when using recursive g_main_loops
4039
4040         * python/_dbus.py (class Bus): add the ProxyObjectClass
4041         alias for ProxyObject to make it easier for the Twisted 
4042         networking framework to integrate dbus.
4043
4044         * python/proxies.py (class ProxyObject): add the ProxyMethodClass
4045         alias for ProxyMethod to make it easier for the Twisted 
4046         networking framework to integrate dbus. 
4047
4048 2005-05-11  Ross Burton  <ross@openedhand.com>
4049
4050         * glib/dbus-glib-tool.c: Add --prefix argument.
4051         * glib/dbus-binding-tool-glib.h: Add prefix argument.
4052         * glib/dbus-binding-tool-glib.c (compute_marshaller_name):
4053         Add prefix argument.
4054         (generate_glue): Pass prefix argument down.
4055         (dbus_binding_tool_output_glib_server): Pass prefix to
4056         glib-genmarshal.
4057         
4058 2005-05-11  Colin Walters  <walters@verbum.org>
4059
4060         * tools/dbus-send.c (append_array): New function.
4061         (append_arg): Broken out from main.
4062         (main): Add cheesy hack to send arrays and variants.
4063         (usage): Update.
4064         * tools/dbus-print-message.c (print_iter): Broken out
4065         from main.
4066
4067 2005-05-11  Colin Walters  <walters@verbum.org>
4068
4069         * dbus/dbus-signature.c (dbus_signature_iter_get_signature):
4070         New function, returns signature string for signature iter.
4071         * dbus/dbus-signature.h: Prototype it.
4072         * dbus/dbus-message.c (dbus_message_iter_get_signature):
4073         New function, returns signature string for message iter.
4074         (dbus_message_iter_get_array_len): New function, returns
4075         length of array.
4076         (dbus_message_iter_get_fixed_array): Fix assertion; this
4077         function should be used when the iter is pointing to the
4078         contents of an array
4079         * dbus/dbus-message.h: Prototypes.
4080         * dbus/dbus-marshal-recursive.c (_dbus_type_reader_get_array_length):
4081         New function; returns length of an array.
4082         * dbus/dbus-marshal-recursive.h: Prototype it.
4083         
4084 2005-05-11  Colin Walters  <walters@verbum.org>
4085
4086         * dbus/dbus-sysdeps-util.c <!HAVE_POSIX_GETPWNAM_R>: Fix
4087         compilation error.
4088         
4089 2005-05-08  Havoc Pennington  <hp@redhat.com>
4090
4091         * dbus/dbus-sysdeps-util.c (_dbus_become_daemon): write the
4092         daemon's pid, not the parent's pid, to the file descriptor.
4093         Reported by Taj Morton.
4094
4095 2005-05-05  Havoc Pennington  <hp@redhat.com>
4096
4097         * configure.in (LT_*): add notes on how the libtool versioning
4098         works to save thinking. Increment soname to indicate protocol
4099         breakage (though really the library interface hasn't changed I
4100         guess)
4101
4102         * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated):
4103         verify the GUID received from server matches what we were
4104         expecting, if we had an expectation
4105
4106         * dbus/dbus-auth.c (send_ok): send GUID along with the OK command
4107         (_dbus_auth_get_guid_from_server): new function
4108         (send_begin): parse the OK args
4109
4110         * doc/dbus-specification.xml: add GUID to the auth protocol
4111
4112 2005-05-05  John (J5) Palmieri  <johnp@redhat.com>
4113
4114         * Fix my name in previous changelog ;)
4115
4116         * python/proxies.py (ProxyObject.__getattr__): add further patch
4117         from Anthony Baxter to throw an AttributeError when python 
4118         __special__ functions are called instead of marshling them over 
4119         the bus (Bug#1685 comment 3).
4120
4121 2005-05-04  John (J5) Palmieri  <johnp@redhat.com>
4122
4123         * python/Makefile.am: changed to use pyexecdir for the binding
4124         shared libraries (Bug#2494)
4125
4126         * python/exceptions.py: bring exceptions over from the bindings
4127         so they can be used in applications (Bug#2036)
4128         Make all exceptions derive from DBusException
4129
4130         * python/_dbus.py, python/proxies.py: implement __repr__ in a couple
4131         of classes so that print obj doesn't throw an exception (Bug #1685)
4132
4133 2005-05-03  Ross Burton  <ross@openedhand.com>
4134
4135         * glib/dbus-gobject.c (dbus_g_connection_register_g_object):
4136         Return if we get an error during registration.  Set up a
4137         weak reference on object to unregister if object is destroyed.
4138         (unregister_gobject): New function.
4139         
4140 2005-05-01  John (J5) Palmieri  <johnp@redhat.com>
4141
4142         * python/dbus_bindings.pyx.in: 
4143         - added new type classes for hinting to the marashaler what type 
4144         to send over the wire
4145         - added int16 and uint16 marshalers
4146         - Fixed a bug in the type constants that caused int32 to go out
4147         as uint16 over the wire
4148         * python/dbus.py: split up into different files and renamed _dbus.py
4149         * python/__init__.py, python/_util.py, python/decorators.py, 
4150         python/exceptions.py, python/proxies.py, python/services.py,
4151         python/types.py: new files split off from dbus.py
4152         * python/Makefile.am: Add new files, remove dbus.py and 
4153         install all python files to <python module dir>/dbus
4154         * python/examples/*: Added #!/usr/bin/env python to the top of
4155         every example.  Patch provided by Tatavarty Kalyan
4156
4157 2005-04-25  John (J5) Palmieri  <johnp@redhat.com>
4158
4159         * NEWS: Update to 0.33
4160
4161 2005-04-25  John (J5) Palmieri  <johnp@redhat.com>
4162
4163         * python/dbus_bindings.pyx.in (send_with_reply_handlers): New send
4164         method for doing async calls
4165         (_pending_call_notification): New C function for handling pendning call
4166         callbacks
4167         (set_notify): New method for setting pending call notification
4168         
4169         * python/dbus.py: new version tuple "version" is set at (0, 40, 0)
4170         Async capabilities added to remote method calls
4171         (Sender): class removed
4172         (RemoteService): class removed
4173         (ObjectTree): class removed for now
4174         (RemoteObject): Renamed to ProxyObject
4175         (RemoteMethod): Renamed to ProxyMethod
4176         (method): Decorator added for decorating python methods as dbus methods
4177         (signal): Decorator added for decorating python methods as signal emitters
4178         (ObjectType): Metaclass added for generating introspection data and the
4179         method callback vtable
4180         (Interface): Wrapper class added to wrap objects in a dbus interface
4181         (Object): Uses ObjectType as its metaclass and exports Introspect
4182         of the org.freedesktop.DBus.Introspectable interface
4183         (ValidationException, UnknownMethodException): new exceptions
4184
4185         * python/examples/*: Modified to fit with the new bindings
4186
4187 2005-04-23  Havoc Pennington  <hp@redhat.com>
4188
4189         * dbus/dbus-message.c (dbus_message_append_args): fix doc comment,
4190         reported by Tony Houghton
4191
4192         * test/test-service.c (main): test
4193         dbus_connection_get_object_path_data()
4194
4195         * dbus/dbus-object-tree.c (find_handler): be sure we always init
4196         the exact_match
4197         (_dbus_object_tree_get_user_data_unlocked): new function used by
4198         dbus_connection_get_object_path_data()
4199         (do_register): add assertion test for get_user_data_unlocked
4200         (object_tree_test_iteration): more tests
4201
4202         * dbus/dbus-connection.c (dbus_connection_get_object_path_data):
4203         new function from Dan Reed to let you get the user data from 
4204         dbus_connection_register_object_path()
4205
4206 2005-04-23  John (J5) Palmieri  <johnp@redhat.com>
4207
4208         * dbus/dbus-marshal-recursive-util.c: Fixed buffer overflow
4209         in numerous places that did not account for the NULL terminator
4210         (signature_from_seed): changed the manual string copy loop to 
4211         just use strcpy instead
4212         make check should now pass
4213
4214 2005-04-19  John (J5) Palmieri  <johnp@redhat.com>
4215
4216         * dbus/dbus-marshal-header.c (_dbus_header_create): Fix assert
4217         so that it allows messages that are not signals to pass in 
4218         NULL as the interface.
4219
4220 2005-04-18  David Zeuthen  <davidz@redhat.com>
4221
4222         * glib/dbus-gmain.c (io_handler_destroy_source): 
4223         (timeout_handler_destroy_source, connection_setup_free): 
4224         Also unref the source to avoid memory leaks.
4225
4226 2005-04-13  David Zeuthen  <davidz@redhat.com>
4227
4228         * bus/config-parser.c (bus_config_parser_new): Bump this to a
4229         more reasonable, yet still totally arbitrary, value :-). 
4230
4231 2005-04-13  David Zeuthen  <davidz@redhat.com>
4232
4233         * doc/TODO: Added an "important for 1.0" item about selinux
4234         allow/deny messages
4235
4236 2005-04-13  David Zeuthen  <davidz@redhat.com>
4237
4238         * bus/selinux.c: Add c-file-style to top of file
4239         (log_audit_callback): Don't free the data here anymore
4240         (bus_selinux_check): Don't take spid and tpid since appending
4241         that to auxdata may OOM.
4242         (bus_selinux_allows_acquire_service): Handle OOM and signal back
4243         to the caller if we are OOM by taking an error object.
4244         (bus_selinux_allows_send): -do-
4245
4246         * bus/selinux.h: Fix prototypes for bus_selinux_allows_acquire_service
4247         and bus_selinux_allows_send
4248
4249         * bus/bus.c (bus_context_check_security_policy): Pass error and
4250         pass on OOM thrown by bus_selinux_allows_send()
4251
4252         * bus/services.c (bus_registry_acquire_service): Pass error and
4253         pass on OOM thrown by bus_selinux_allows_acquire_service()
4254
4255 2005-04-13  Havoc Pennington  <hp@redhat.com>
4256
4257         * glib/dbus-gmain.c (message_queue_dispatch): only dispatch one
4258         message at a time to avoid monopolizing the main loop, bug 
4259         #2953 from Benjamin Otte
4260
4261 2005-04-09  Havoc Pennington  <hp@redhat.com>
4262
4263         * dbus/dbus-string.c (copy): change a memcpy to memmove due to
4264         possible overlap, fix from Daniel Reed
4265         (fixup_alignment): fix signedness warnings
4266         (_dbus_string_append_unichar): ditto
4267
4268 2005-04-09  Havoc Pennington  <hp@redhat.com>
4269
4270         * dbus/dbus-message-util.c (_dbus_message_test): fix signedness warning
4271
4272         * glib/dbus-glib-tool.c (main): fix warning
4273
4274         * glib/dbus-binding-tool-glib.c (generate_glue): fix warning
4275
4276         * dbus/dbus-connection.c (dbus_connection_read_write_dispatch):
4277         add a new function that can be used in simple applications that
4278         don't have a main loop and are willing to block
4279
4280 2005-04-05  David Zeuthen  <davidz@redhat.com>
4281
4282         Fix https://bugs.freedesktop.org/show_bug.cgi?id=2889
4283
4284         * glib/dbus-gmain.c:
4285         (io_handler_destroy_source): Remove from list of IO handlers
4286         of the ConnectionSetup object
4287         (timeout_handler_destroy_source): -do- for timeout handlers
4288         (io_handler_source_finalized): Don't remove from list since
4289         we now do that in io_handler_destroy_source(). Renamed from
4290         io_handler_source_destroyed
4291         (timeout_handler_source_destroyed): -do- for timeout handlers
4292         (connection_setup_free): It is now safe to iterate over all
4293         IO and timeout handlers as the _destroy_source removes them
4294         from the list synchronously
4295
4296 2005-03-30  Havoc Pennington  <hp@redhat.com>
4297
4298         * configure.in: change check to gtk 2.4
4299
4300         * tools/dbus-viewer.c (name_combo_changed_callback): remove
4301         gtk_combo_box_get_active_text() usage to decrement GTK requirement
4302         to 2.4
4303
4304 2005-03-29  John (J5) Palmieri  <johnp@redhat.com>
4305
4306         * News: Update 0.32
4307
4308         * HACKING: Fixed realease instructions.  configure.in should be updated to
4309           the next release by the person who made the last release.
4310
4311 2005-03-29  John (J5) Palmieri  <johnp@redhat.com>
4312
4313         * python/lvalue_cast_post_process.py - removed.  Patch has been
4314           submitted to Pyrex maintainers that fixes gcc4.0 errors
4315
4316         * python/Makefile.am: removed refrences to lvalue_cast_post_process.py
4317
4318 2005-03-24  Daniel Reed  <n@ml.org>
4319
4320         * tools/Makefile.am: Make print-introspect and
4321         dbus-bus-introspect.xml building conditional on HAVE_GLIB.
4322
4323 2005-03-22  John (J5) Palmieri  <johnp@redhat.com>
4324
4325         * tools/Makefile.am: Patch by Colin Walters that fixes distcheck
4326
4327         * dbus/dbus-userdb.c, dbus/dbus-userdb-util.c: Add patch we have 
4328           had in Red Hat packages for a while but for some reason never 
4329           got merged upstream
4330           (_dbus_is_a_number): New checks if a string
4331           can be converted to a number and does the conversion if it can
4332           (_dbus_user_database_lookup): Add check to see if the given username
4333           is a udi.  This allows udi's to be used instead of usernames in the
4334           config file.
4335           (_dbus_user_database_lookup_group): Add check to see if the given groupname
4336           is a gdi.  This allows gdi's to be used instead of groupnames in the
4337           config file.
4338
4339 2005-03-21  John (J5) Palmieri  <johnp@redhat.com>
4340
4341         * python/lvalue_cast_post_process.py - added post processor to fix Pyrex
4342           code so that it compiles with gcc4.0
4343
4344         * python/Makefile.am: Added lvalue_cast_post_process.py to EXTRA_DIST
4345           run dbus_bindings.c through lvalue_cast_post_process.py and copy the
4346           results back to dbus_binding.c
4347
4348 2005-03-20  Colin Walters  <walters@verbum.org>
4349
4350         Patch suggested by Inguva Rajasekhar <ringuva@novell.com>.
4351
4352         * configure.in: Require GTK+ 2.6.
4353         
4354 2005-03-20  Colin Walters  <walters@verbum.org>
4355
4356         * Makefile.am (SUBDIRS, DIST_SUBDIRS): Build tools before test.
4357
4358 2005-03-17  Tom Parker  <palfrey@tevp.net>
4359
4360         * dbus/dbus-userdb.c (_dbus_user_database_lookup): Don't
4361         print DBUS_UID_UNSET; instead print passed username.  Also
4362         be sure to actually use gid looked up in cache.
4363         
4364         * dbus/dbus-userdb-util.c (_dbus_user_database_lookup_group): Ditto
4365         for DBUS_GID_UNSET and groupname.
4366
4367 2005-03-17  Colin Walters  <walters@verbum.org>
4368
4369         * bus/print-introspect.c: Move to tools/.
4370         * bus/run-with-tmp-session-bus.sh: Ditto.
4371         
4372         * glib/Makefile.am (dbus-glib-bindings.h): Move
4373         generation to tools/Makefile.am.
4374
4375         * test/glib/run-test.sh: Update to handle move
4376         of run-with-tmp-session-bus.sh.
4377
4378         * test/glib/test-service-glib.c: Update to handle
4379         move of dbus-glib-bindings.h.
4380
4381         * tools/print-introspect.c: Moved here
4382         from bus/, and ported to GLib bindings.
4383
4384         * tools/run-with-tmp-session-bus.sh: Moved here
4385         from bus/.
4386
4387         * tools/Makefile.am: Generate dbus-glib-bindings.h
4388         and dbus-bus-introspect.xml here.
4389
4390         * tools/.cvsignore, glib/.cvsignore, bus/.cvsignore:
4391         Update.
4392
4393 2005-03-17  Colin Walters  <walters@verbum.org>
4394
4395         * bus/driver.c (write_args_for_direction): Use
4396         _dbus_string_get_const_data to retrieve string;
4397         _dbus_string_get_const_data_len doesn't actually return
4398         a NULL-terminated substring.
4399
4400         * test/glib/test-service-glib.c: Include dbus-glib-bindings.h.
4401         (main): Change to use org_freedesktop_DBus_request_name
4402         instead of using g_proxy_begin_call/end_call.
4403
4404 2005-03-15  Joe Shaw  <joeshaw@novell.com>
4405
4406         * mono/ProxyBuilder.cs (BuildFinalizer): Fix some invalid IL when
4407         generating the finalizer.  Fixes from Ben Maurer.
4408
4409 2005-03-12  Joe Shaw  <joeshaw@novell.com>
4410
4411         * mono/BusDriver.cs: Update method names: ListServices
4412         becomes ListNames; GetOwner becomes GetNameOwner.
4413
4414         * mono/ProxyBuilder.cs (BuildFinalizer): Need to load arg 0
4415         onto the eval stack when removing the delegate.
4416
4417 2005-03-12  Joe Shaw  <joeshaw@novell.com>
4418
4419         * mono/dbus-sharp.dll.config.in: Don't hardcode 0 for
4420         LT_CURRENT.  Set it to the autoconf variable.
4421                                                                                 
4422         * mono/ProxyBuilder.cs: Add a finalizer to the generated proxy
4423         classes that disconnects the signal handler delegate from the
4424         service object.  Fixes a big leak of proxy objects on the
4425         client side of things.  Patch from Ben Maurer
4426         <bmaurer@ximian.com>
4427
4428 2005-03-12  Colin Walters  <walters@verbum.org>
4429
4430         * bus/driver.c (write_args_for_direction): New function,
4431         parses a type signature into arguments and outputs to
4432         XML.
4433         (bus_driver_handle_introspect): Use it instead of
4434         hardcoding XML for certain signatures.
4435         
4436         * bus/Makefile.am (dbus-bus-introspect.xml): Add
4437         dependency on dbus-daemon.
4438
4439         * glib/dbus-glib-tool.c (main): Parse ignore_unsupported
4440         argument, pass it to dbus_binding_tool_output_glib_client.
4441
4442         * glib/dbus-binding-tool-glib.c
4443         (generate_client_glue): Protect against multiple inclusion.
4444         (dbus_binding_tool_output_glib_client): Add
4445         G_BEGIN_DECLS/G_END_DECLS.
4446
4447         * glib/dbus-binding-tool-glib.c (compute_client_method_name):
4448         Change to just take iface prefix directly.
4449         (write_formal_parameters): Clarify error message.
4450         (check_supported_parameters): New function; checks to see type
4451         signatures of method parameters are supported.
4452         (generate_client_glue): Handle ignore_unsupported flag.
4453         (dbus_binding_tool_output_glib_client): Handle ignore_unsupported
4454         parameter.
4455
4456         * glib/Makefile.am (dbus-glib-bindings.h): Pass
4457         --ignore-unsupported by default until glib bindings
4458         support arrays.
4459
4460 2005-03-11  Colin Walters  <walters@verbum.org>
4461
4462         * glib/Makefile.am: Generate dbus-glib-bindings.h and
4463         install it.
4464
4465         * bus/print-introspect.c: New file; prints introspection
4466         data for a given name and object path.
4467
4468         * bus/run-with-tmp-session-bus.sh: New file, refactored
4469         from test/glib/run-test.sh.  Creates a temporary session
4470         bus and runs another program.
4471
4472         * test/glib/run-test.sh: Refactor to invoke
4473         run-with-tmp-session-bus.sh.
4474
4475         * bus/driver.c (bus_driver_handle_introspect): Fix to print new
4476         introspection format.  Also change to use DBUS_TYPE_x_AS_STRING
4477         macros instead of hardcoding.
4478
4479         * glib/.cvsignore, bus/.cvsignore, test/glib/.cvsignore: Update.
4480
4481 2005-03-11  Joe Shaw  <joeshaw@novell.com>
4482
4483         * dbus/dbus-connection.c (dbus_connection_send_with_reply): Remove
4484         this unref; it doesn't match up evenly in some codepaths.
4485         (_dbus_connection_block_pending_call): Unref at every exitpoint;
4486         this evenly matches with the ref near the top of this function.
4487
4488 2005-03-09  Joe Shaw  <joeshaw@novell.com>
4489
4490         * dbus/dbus-object-tree.c
4491         (_dbus_object_tree_unregister_and_unlock): If checks are enabled
4492         and we try to unregister a path that's not registered, still go
4493         through the process of unlocking and don't just return.
4494
4495 2005-03-09  Colin Walters  <walters@verbum.org>
4496
4497         * glib/dbus-gproxy.c (dbus_g_proxy_invoke): New method; calls
4498         to this are generated for client-side wrappers.  Invokes a
4499         D-BUS method and returns reply values.  
4500
4501         * glib/dbus-binding-tool-glib.c (write_args_sig_for_direction): New
4502         function; writes signature string for argument direction.
4503         (write_args_for_direction): Change to pass input values directly
4504         instead of via address, and fix indentation.
4505         (generate_client_glue): Change to invoke dbus_g_proxy_invoke.  Also
4506         make generated wrappers inlineable.
4507
4508         * dbus/dbus-message.c (dbus_message_iter_get_fixed_array): Add
4509         note about using dbus_type_is_fixed.
4510
4511         * dbus/dbus-marshal-basic.c (_dbus_type_is_fixed): Moved to
4512         dbus/dbus-signature.c as dbus_type_is_fixed.
4513
4514         All callers updated.
4515
4516         * dbus/dbus-signature.c (dbus_type_is_fixed): Moved here
4517         from dbus/dbus-marshal-basic.c:_dbus_type_is_fixed.
4518
4519         * dbus/dbus-signature.h: Prototype.
4520
4521         * glib/dbus-binding-tool-glib.c (compute_marshaller_name): Fix
4522         error printf code.
4523
4524         * test/glib/test-dbus-glib.c (main): Be sure to clear error as
4525         appropriate instead of just freeing it.
4526         (main): Free returned strings using g_free.
4527
4528         * test/glib/Makefile.am (test-service-glib-glue.h)
4529         (test-service-glib-bindings.h): Add dependency on dbus-binding-tool.
4530
4531         * glib/dbus-gvalue.c (MAP_BASIC): Refactored from MAP_BASIC_INIT;
4532         simply maps a simple D-BUS type to GType.
4533         (dbus_dbus_type_to_gtype): Function which maps D-BUS type to
4534         GType.
4535         (dbus_gvalue_init): Just invoke dbus_dbus_type_to_gtype and
4536         initialize the value with it.
4537         (dbus_gvalue_binding_type_from_type): Unused, delete.
4538         (dbus_gvalue_demarshal): Switch to hardcoding demarshalling for
4539         various types instead of unmarshalling to value data directly.
4540         Remove can_convert boolean.
4541         (dbus_gvalue_marshal): Remove duplicate initialization; switch to
4542         returning directly instead of using can_convert boolean.
4543         (dbus_gvalue_store): New function; not related to D-BUS per-se.
4544         Stores a GValue in a pointer to a value of its corresponding C
4545         type.
4546
4547         * glib/dbus-gvalue.h: Remove dbus_gvalue_binding_type_from_type,
4548         add dbus_gvalue_store.
4549
4550 2005-03-08  Joe Shaw  <joeshaw@novell.com>
4551
4552         Fix a bunch of lifecycle and memory management problems
4553         in the mono bindings.
4554
4555         * mono/Arguments.cs (Arguments): Implement IDisposable
4556
4557         * mono/Bus.cs (Bus): Don't allow public instantiation.  This is
4558         strictly a static class.
4559
4560         * mono/Connection.cs: Move the DBusObjectPathVTable and associated
4561         delegates into this file.
4562         (Connection): Implement IDisposable.
4563         (Dispose): Disconnect the connection and set the raw connection
4564         pointer to IntPtr.Zero.
4565         (~Connection): Call Dispose().
4566         (RegisterObjectPath): Added.  Manages the registration of object
4567         paths so we can cleanly disconnect them at dispose/finalize time.
4568         (UnregisterObjectPath): Ditto.
4569         (set_RawConnection): Unregister all of the object paths when
4570         changing the underlying DBusConnection.  Add them back onto the
4571         new connection, if any.
4572
4573         * mono/Handler.cs: Don't implement IDisposable; it doesn't use any
4574         more unmanaged resources anymore, so it's not necessary.  Move all
4575         the DBusObjectPathVTable stuff out of here.
4576         (Handler): Save references to our delegates so that they don't get
4577         finalized.  Call Connection.RegisterObjectPath() instead of
4578         dbus_connection_register_object_path() directly.
4579         (Message_Called): Dispose the message after we're finished with
4580         it.
4581
4582         * mono/Message.cs (Message): Implement IDisposable.
4583         (Dispose): Dispose the Arguments, and set the RawMessage to
4584         IntPtr.Zero.
4585         (SendWithReplyAndBlock): We own the ref to the reply that comes
4586         back from dbus_connection_send_with_reply_and_block() so add a
4587         comment about that and unref it after we've constructed a managed
4588         MethodReturn class around it.  Fixes a big, big leak.
4589
4590         * mono/ProxyBuilder.cs: Reflect into Message to get the Dispose
4591         method.
4592         (BuildSignalHandler): After we've sent the Signal message, dispose
4593         of it.
4594         (BuildMethod): Dispose of the method call and reply messages after
4595         we've sent the message and extracted the data we want from the
4596         reply.
4597
4598         * mono/Service.cs (UnregisterObject): Don't call handler.Dispose()
4599         anymore.
4600         (Service_FilterCalled): Dispose of the message after we're
4601         finished with it.
4602
4603 2005-03-08  Joe Shaw  <joeshaw@novell.com>
4604
4605         * dbus/dbus-connection.c (dbus_connection_send_with_reply):
4606         After we attach our pending call to the connection, unref
4607         it.  Fixes a leak.
4608  
4609         * mono/Connection.cs (set_RawConnection): Disconnect our
4610         filter and match callbacks from the old connection and
4611         reconnect them to the new connection, if any.
4612
4613         * mono/DBusType/Array.cs: "Code" is a static member, so
4614         don't use "this" to refer to it.  Fix for stricter checking
4615         in Mono 1.1.4.
4616  
4617         * mono/DBusType/ObjectPath.cs (Append): Don't leak the
4618         object path that we pass into unmanaged code.
4619  
4620         * mono/DBusType/String.cs (Append): Don't leak the string
4621         that we pass into unmanged code.
4622
4623 2005-03-07  John (J5) Palmieri  <johnp@redhat.com>
4624         * NEWS: Update for 0.31
4625
4626         * configure.in: Release 0.31
4627         add LT_CURRENT, LT_REVISION, LT_AGE for easy soname bumping
4628
4629         * qt/Makefile.am: fixed build
4630
4631         * dbus/Makefile.am: soname bump for libdbus
4632
4633         * glib/Makefile.am: soname bump for libdbus-glib
4634
4635 2005-03-05  Havoc Pennington  <hp@redhat.com>
4636
4637         * dbus/dbus-sysdeps.c:
4638         (pseudorandom_generate_random_bytes_buffer): fix to have no return
4639         value
4640         (_dbus_generate_random_bytes_buffer): fix return value
4641
4642         * dbus/dbus-sysdeps-util.c: s/GETPWNAME/GETPWNAM/ so configure
4643         checks actually work, from Tom Parker <fdo@tevp.net>
4644
4645 2005-03-01  Colin Walters  <walters@verbum.org>
4646
4647         * test/glib/test-dbus-glib.c (lose, lose_gerror): Utility
4648         functions copied from dbus-glib-tool.c.
4649         (main): Convert lots of error code to use them.
4650         Also add some testing for introspection bits.
4651
4652 2005-03-01  Colin Walters  <walters@verbum.org>
4653         
4654         * doc/TODO: Remove introspection signature TODO.
4655
4656 2005-02-27  Colin Walters  <walters@verbum.org>
4657
4658         * glib/dbus-gidl.c (property_info_get_type, arg_info_get_type):
4659         Change return value to const char * instead of int so we can do
4660         full signatures.
4661         (struct PropertyInfo, struct ArgInfo): Store char *.
4662         (property_info_new, arg_info_new): Update parameters, strdup.
4663         (property_info_unref, arg_info_unref): Free.
4664
4665         * glib/dbus-gidl.h: Update prototypes.
4666
4667         * glib/dbus-gparser.c (basic_type_from_string): Delete.
4668         (validate_signature): New function, just validates signature and
4669         sets GError.
4670         (parse_property, parse_arg): Invoke validate_signature.  Store
4671         signature instead of just type code.
4672
4673         * glib/dbus-gvalue.c (base_type_from_signature): New utility
4674         function to return a primary type for a signature, dropping
4675         information about types in container types.
4676         (dbus_gvalue_genmarshal_name_from_type)
4677         (dbus_gvalue_binding_type_from_type)
4678         (dbus_gvalue_ctype_from_type): Update to take full signature
4679          instead of type code.
4680         (dbus_gtype_to_dbus_type): Moved here from glib/dbus-gobject.c.
4681
4682         * glib/dbus-gvalue.h: Update prototypes for above.
4683
4684         * glib/dbus-gobject.c (gtype_to_dbus_type): Moved to
4685         glib/dbus-gvalue.c as dbus_gtype_to_dbus_type.
4686         (introspect_properties, introspect_signals, write_interface):
4687         Update to handle signatures, and remove usage of
4688         _dbus_gutils_type_to_string.
4689         (handle_introspect): Print out type codes instead of e.g. "string"
4690         in hardcoded introspection XML; also use x_AS_STRING constants
4691         instead of hardcoding in string.
4692
4693         * glib/dbus-glib-tool.c (pretty_print): Handle signature change
4694         to string.  Remove usage of _dbus_gutils_type_to_string.
4695
4696         * glib/dbus-gutils.c (_dbus_gutils_type_to_string): Delete.
4697
4698         * glib/dbus-gutils.h (_dbus_gutils_type_to_string): Update for
4699         deletion.
4700         
4701         * glib/dbus-binding-tool-glib.c (compute_marshaller)
4702         (compute_marshaller_name, generate_glue): Handle signature change
4703         to string.
4704         (write_formal_parameters, write_args_for_direction): Ditto, and
4705         remove FIXME.
4706
4707         * tools/dbus-tree-view.c (type_to_string): Delete.
4708         (info_set_func_text): Update to print full signatures.
4709
4710         * test/glib/test-service-glib.xml: Change types to new
4711         introspection format.
4712
4713 2005-02-26  Havoc Pennington  <hp@redhat.com>
4714
4715         * doc/TODO: remove the "guid" item
4716
4717         * test/glib/test-profile.c (no_bus_thread_func): use open_private
4718         (with_bus_thread_func): use open_private
4719
4720         * dbus/dbus-connection.c (dbus_connection_open_private): new
4721         function that works like the old dbus_connection_open()
4722         (dbus_connection_open): now returns an existing connection if
4723         possible
4724
4725         * dbus/dbus-server-unix.c (handle_new_client_fd_and_unlock): pass
4726         through the GUID to the transport
4727
4728         * dbus/dbus-server.c (_dbus_server_init_base): keep around the
4729         GUID in hex-encoded form.
4730
4731         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
4732         pass GUID argument in to the transport
4733
4734         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd): add
4735         guid argument
4736
4737         * dbus/dbus-transport.c (_dbus_transport_init_base): add guid argument
4738
4739         * dbus/dbus-auth.c (_dbus_auth_server_new): add guid argument
4740
4741 2005-02-25  Havoc Pennington  <hp@redhat.com>
4742
4743         * doc/dbus-specification.xml: document the GUID thing
4744
4745         * dbus/dbus-server.c (_dbus_server_init_base): initialize a
4746         globally unique ID for the server, and put a "guid=hexencoded"
4747         field in the address
4748
4749         * dbus/dbus-bus.c: fix missing #include of dbus-threads-internal.h
4750
4751         * dbus/dbus-message.c: ditto
4752
4753         * dbus/dbus-dataslot.c: ditto
4754
4755         * dbus/dbus-list.c: ditto
4756
4757         * dbus/dbus-internals.h: wait, just include
4758         dbus-threads-internal.h here
4759         
4760         * dbus/dbus-string.c (_dbus_string_copy_to_buffer): move back for
4761         use in main library
4762
4763         * dbus/dbus-sysdeps.c (_dbus_generate_random_bytes_buffer): new function
4764
4765 2005-02-24  Colin Walters  <walters@verbum.org>
4766
4767         * test/glib/Makefile.am (EXTRA_DIST): Add test-service-glib.xml
4768
4769 2005-02-24  John (J5) Palmieir  <johnp@redhat.com>
4770
4771         * glib/Makefile.am: added dbus-gobject.h to sources list
4772         so distcheck doesn't fail
4773         
4774 2005-02-24  Havoc Pennington  <hp@redhat.com>
4775
4776         * dbus/dbus-server.c, dbus/dbus-server-unix.c: change semantics so
4777         you must disconnect before unref, since locking and other things
4778         are screwed up otherwise. Fix assorted other locking stuff.
4779
4780         * dbus/dbus-signature.c (dbus_signature_iter_get_element_type):
4781         fix compilation
4782
4783         * dbus/dbus-threads-internal.h: move the mutex/condvar wrappers
4784         into a private header and don't export from the library
4785
4786         * throughout - call _dbus_thread_stuff vs. dbus_thread_stuff
4787
4788 2005-02-24  Colin Walters  <walters@verbum.org>
4789         
4790         * dbus/dbus-signature.c: New file; implements various functions
4791         related to type signatures.  Includes an interator for parsing,
4792         validation functions.
4793         (dbus_type_is_basic): Moved here from
4794         dbus-marshal-basic.c:_dbus_type_is_basic.
4795         (dbus_type_is_container): Moved here from
4796         dbus-marshal-basic.c:_dbus_type_is_container.
4797
4798         All callers of _dbus_type_is_container and _dbus_type_is_basic
4799         updated, and include dbus-signature.h.
4800
4801         * dbus/dbus-signature.h: New file; prototypes for the above.
4802
4803         * dbus/Makefile.am (DBUS_LIB_SOURCES): Add dbus-signature.c,
4804         dbus-signature.h.
4805
4806         * dbus/dbus-marshal-basic.c (map_type_char_to_type): New utility
4807         function factored out of _dbus_first_type_in_signature.
4808         (_dbus_first_type_in_signature_c_str): New function; returns first
4809         type code for a type signature character.
4810
4811         * dbus/dbus-marshal-basic.h: Prototype _dbus_first_type_in_signature_c_str,
4812         handle function moves.
4813
4814         * dbus/dbus-marshal-recursive.h: Export _dbus_type_signature_next.
4815
4816         * dbus/dbus-marshal-recursive.c (_dbus_type_signature_next): New
4817         function; skips to next complete type in type signature.
4818         Implemented using previous skip_one_complete_type.  Now
4819         skip_one_complete_type just delegates to
4820         _dbus_type_signature_next.
4821
4822         * dbus/dbus-marshal-basic.c (_dbus_type_is_basic): Moved
4823         to dbus-signature.c
4824         (_dbus_type_is_container): Ditto.
4825
4826         * doc/dbus-specification.xml: Update introspection sample to
4827         use real type signatures.
4828
4829         * dbus/dbus-test.h: Prototype signature test.
4830
4831         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): Run
4832         signature tests.
4833
4834         * dbus/dbus-protocol.h (DBUS_ERROR_INVALID_SIGNATURE): New error.
4835
4836 2005-02-23  John (J5) Palmieri  <johnp@redhat.com>
4837
4838         * python/dbus_bindings.pyx.in (PendingCall::get_reply):
4839         s/dbus_pending_call_get_reply/dbus_pending_call_steal_reply
4840
4841 2005-02-21  Colin Walters  <walters@verbum.org>
4842
4843         * dbus/dbus-test-main.c (main): Take optional specific test
4844         argument.
4845
4846         * dbus/dbus-test.c (run_test): New function, runs a test function
4847         with no data directory.
4848         (run_data_test): Like above, but takes data directory.
4849         (dbus_internal_do_not_use_run_tests): Take
4850         specific test argument.  Replace lots of cut n' paste code
4851         with run_test and run_data_test.
4852
4853         * dbus/dbus-test.h: Update prototype for
4854         dbus_internal_do_not_use_run_tests.
4855
4856 2005-02-20  Havoc Pennington  <hp@redhat.com>
4857
4858         Fix bugs reported by Daniel P. Berrange
4859         
4860         * dbus/dbus-server.c (_dbus_server_unref_unlocked): new function
4861         (protected_change_watch): new function
4862         (_dbus_server_toggle_watch, _dbus_server_remove_watch)
4863         (_dbus_server_add_watch): change to work like the
4864         dbus-connection.c equivalents; like those, probably kind of
4865         busted, but should at least mostly work for now
4866         (dbus_server_disconnect): drop the lock if we were already
4867         disconnected, patch from Daniel P. Berrange
4868
4869         * dbus/dbus-server.c (_dbus_server_toggle_timeout) 
4870         (_dbus_server_remove_timeout, _dbus_server_add_timeout): all the
4871         same stuff
4872
4873         * doc/TODO: todo about unscrewing this mess
4874
4875 2005-02-19  Colin Walters  <walters@verbum.org>
4876
4877         * glib/dbus-binding-tool-glib.c
4878         (dbus_binding_tool_output_glib_server): Fix iochannel refcounting.
4879
4880         * glib/dbus-glib-tool.c: Include dbus-glib-tool.h, as well
4881         as errno.h and sys/stat.h.
4882         (lose): New function, prints error with
4883         newline and exits.
4884         (lose_gerror): Similar, but takes GError for message.
4885         (main): Add --output argument to specify output file to write to,
4886         instead of always printing to stdout.  In this mode, determine
4887         timestamps on source files to see whether any are newer than the
4888         target file.  If not, exit.  Also convert a number of error
4889         messages to use lose (since it's shorter), and switch to using
4890         g_io_channel_shutdown.
4891
4892 2005-02-19  Havoc Pennington  <hp@redhat.com>
4893
4894         * glib/dbus-gobject.c
4895         (_dbus_glib_marshal_dbus_message_to_gvalue_array): add docs
4896
4897         * glib/dbus-glib.c: fix doxygen warnings
4898
4899         * glib/dbus-gparser.c (parse_annotation): error if an annotation
4900         is found on an <arg>
4901
4902 2005-02-17  Colin Walters  <walters@verbum.org>
4903
4904         * glib/dbus-gobject.h: Don't export
4905         _dbus_glib_marshal_dbus_message_to_gvalue_array.
4906         
4907         * glib/dbus-gobject.c (_dbus_glib_marshal_dbus_message_to_gvalue_array): Do rename.
4908         (invoke_object_method): Handle it.
4909
4910         * glib/dbus-gproxy.c (marshal_dbus_message_to_g_marshaller):
4911         Handle rename.
4912         
4913 2005-02-17  Colin Walters  <walters@verbum.org>
4914
4915         * bus/.cvsignore, doc/.cvsignore
4916         * test/data/valid-service-files/.cvsignore, test/glib/.cvsignore:
4917         Update.
4918
4919 2005-02-17  Colin Walters  <walters@verbum.org>
4920         
4921         * dbus/dbus-protocol.h (DBUS_SERVICE_ORG_FREEDESKTOP_DBUS):
4922         Rename to DBUS_SERVICE_DBUS.
4923         (DBUS_PATH_ORG_FREEDESKTOP_DBUS): Rename to DBUS_PATH_DBUS.
4924         (DBUS_PATH_ORG_FREEDESKTOP_LOCAL): Rename to DBUS_PATH_LOCAL.
4925         Change the value from "org.freedesktop.Local"
4926         to "org.freedesktop.DBus.Local".
4927         (DBUS_INTERFACE_ORG_FREEDESKTOP_DBUS): Rename to DBUS_INTERFACE_DBUS.
4928         (DBUS_INTERFACE_ORG_FREEDESKTOP_INTROSPECTABLE): Rename to
4929         DBUS_INTERFACE_INTROSPECTABLE.
4930         Change the value from "org.freedesktop.Introspectable"
4931         to "org.freedesktop.DBus.Introspectable".
4932         (DBUS_INTERFACE_ORG_FREEDESKTOP_PROPERTIES): Rename to
4933         DBUS_INTERFACE_PROPERTIES.
4934         Change the value from "org.freedesktop.Properties"
4935         to "org.freedesktop.DBus.Properties".
4936         (DBUS_INTERFACE_ORG_FREEDESKTOP_PEER): Rename to
4937         DBUS_INTERFACE_PEER.
4938         Change the value from "org.freedesktop.Peer"
4939         to "org.freedesktop.DBus.Peer".
4940         (DBUS_INTERFACE_ORG_FREEDESKTOP_LOCAL): 
4941         DBUS_INTERFACE_LOCAL.
4942         Change the value from "org.freedesktop.Local"
4943         to "org.freedesktop.DBus.Local".
4944
4945         All other users of those constants have been changed.
4946
4947         * bus/driver.c (bus_driver_handle_introspect): Use constants.
4948
4949         * glib/dbus-gobject.c (handle_introspect): Use constants.
4950
4951         * doc/dbus-faq.xml, doc/dbus-specification.xml: Update for rename.
4952
4953 2005-02-17  Colin Walters  <walters@verbum.org>
4954
4955         * glib/dbus-gparser.c (struct Parser): Add in_annotation boolean.
4956         (parse_node, parse_interface, parse_method, parse_signal)
4957         (parse_property, parse_annotation): Lose if we're currently in an
4958         annotation.
4959         (parse_annotation): New function.
4960         (parser_start_element, parser_end_element): Handle annotation.
4961         (parse_method, parse_interface): Remove support for c_name attribute,
4962         switch to annotations.
4963
4964         * glib/dbus-gidl.h (interface_info_get_binding_names)
4965         (method_info_get_binding_names)
4966         (interface_info_get_binding_name, method_info_get_binding_name)
4967         (interface_info_set_binding_name, method_info_set_binding_name):
4968         Remove.
4969         (interface_info_get_annotations, method_info_get_annotations)
4970         (interface_info_get_annotation, method_info_get_annotation)
4971         (interface_info_add_annotation, method_info_add_annotation):
4972         Prototype.
4973
4974         * glib/dbus-gidl.c (struct InterfaceInfo): Substitute "annotations"
4975         for "bindings".
4976         (struct MethodInfo): Ditto.
4977         Straightfoward conversion of binding methods into annotation methods
4978         as prototyped.
4979
4980         * glib/dbus-glib-tool.c (pretty_print): Print annotations.
4981
4982         * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_C_SYMBOL): Define.
4983
4984         * glib/dbus-binding-tool-glib.c (gather_marshallers, generate_glue):
4985         Use new annotation API.
4986
4987         * doc/introspect.dtd: Fix a number of DTD syntax errors.  Add
4988         annotation element.
4989         
4990         * doc/dbus-specification.xml: Discuss introspection annotations,
4991         include list of well-known annotations.
4992
4993         * test/glib/test-service-glib.xml: Make validate against new DTD.
4994
4995 2005-02-17  Colin Walters  <walters@verbum.org>
4996
4997         This patch is based on initial work from
4998         Paul Kuliniewicz <kuliniew@purdue.edu>.
4999
5000         * glib/dbus-gvalue.c (dbus_gvalue_init): New function; move
5001         initialization of GValue from dbus type to here.
5002         (dbus_gvalue_genmarshal_name_from_type): New function; generates a string
5003         for the "glib-genmarshal" program from a DBus type.
5004         (dbus_gvalue_binding_type_from_type): New function; turns a DBus type
5005         into the C name for it we use in the glib bindings.
5006         (dbus_gvalue_ctype_from_type): New function; maps a DBus type into a
5007         glib C type (not GValue).
5008         (dbus_gvalue_demarshal): invoke dbus_gvalue_init.
5009
5010         * glib/dbus-gutils.c (_dbus_gutils_wincaps_to_uscore): Moved here
5011         from dbus-gobject.c.
5012
5013         * glib/dbus-gutils.h: Prototype it.
5014
5015         * glib/dbus-gproxy.c: Include new dbus-gobject.h.
5016         (marshal_dbus_message_to_g_marshaller): Use new shared function
5017         dbus_glib_marshal_dbus_message_to_gvalue_array.
5018
5019         * glib/dbus-gparser.c (parse_interface, parse_method): Handle c_name attribute.
5020         Will be changed once we have annotations.
5021
5022         * glib/dbus-gobject.c: Change info_hash_mutex from GStaticMutex to
5023         GStaticRWLock.  Callers updated.
5024         (wincaps_to_uscore): Move to dbus-gutils.c.  Callers updated.
5025         (string_table_next): New function for iterating over zero-terminated
5026         string value array.
5027         (string_table_lookup): New function; retrieves specific entry in
5028         array.
5029         (get_method_data): New function; look up method data in object data chunk.
5030         (object_error_domain_prefix_from_object_info)
5031         (object_error_code_from_object_info): New functions, but not implemented yet.
5032         (method_interface_from_object_info): New function; retrieve interface name.
5033         (method_name_from_object_info): New function; retrieve method name.
5034         (method_arg_info_from_object_info): New function; retrieve argument data.
5035         (arg_iterate): New function; iterates over serialized argument data.
5036         (method_dir_signature_from_object_info): New function; returns a
5037         GString holding type signature for arguments for just one
5038         direction (input or output).
5039         (method_input_signature_from_object_info)
5040         (method_output_signature_from_object_info): New functions.
5041         (dbus_glib_marshal_dbus_message_to_gvalue_array): New shared function;
5042         converts dbus message arguments into a GValue array.  Used for both
5043         signal handling and method invocation.
5044         (struct DBusGlibWriteIterfaceData): New utility structure.
5045         (write_interface): New function; generate introspection XML for
5046         an interface.
5047         (introspect_interfaces): New function; gathers all interface->methods,
5048         generates introspection XML for them.
5049         (handle_introspect): Invoke introspect_interfaces.
5050         (get_object_property): Be sure to zero-initalize stack-allocated GValue.
5051         (lookup_object_and_method): New function; examines an incoming message
5052         and attempts to match it up (via interface, method name, and argument
5053         signature) with a known object and method.
5054         (gerror_domaincode_to_dbus_error_name): New function; converts a
5055         GError domain and code into a DBus error name.  Needs GError data
5056         added to object introspection to work well.
5057         (gerror_to_dbus_error_message): Creates a DBusMessage error return from
5058         GError.
5059         (invoke_object_method): New function to invoke an object method
5060         looked up via lookup_object_and_method.  Parses the incoming
5061         message, turns it into a GValue array, then invokes the marshaller
5062         specified in the DBusGMethodInfo.  Creates a new message with
5063         either return values or error message as appropriate.
5064         (gobject_message_function): Invoke lookup_object_and_method and
5065         invoke_object_method.
5066
5067         * glib/dbus-glib-tool.c: Include dbus-binding-tool-glib.h.
5068         (enum DBusBindingOutputMode): New enum for binding output modes.
5069         (pretty_print): Print binding names.
5070         (dbus_binding_tool_error_quark): GError bits.
5071         (version): Fix typo.
5072         (main): Create GIOChannel for output.  Parse new --mode argument,
5073         possible values are "pretty-print", "glib-server", "glib-client".
5074         Use mode to invoke appropriate function.
5075         
5076         * glib/dbus-gobject.h: Prototype dbus_glib_marshal_dbus_message_to_gvalue_array.
5077
5078         * glib/dbus-glib-tool.h: New header, just includes GError bits
5079         for now.
5080
5081         * glib/dbus-gidl.c (struct InterfaceInfo): Add bindings hashtable;
5082         maps binding style to name.
5083         (struct MethodInfo): Ditto.
5084         (get_hash_keys, get_hash_key): Utility function, returns keys for
5085         a GHashTable.
5086         (interface_info_new, method_info_new): Initialize bindings.
5087         (interface_info_unref, method_info_unref): Destroy bindings.
5088         (method_info_get_binding_names, method_info_get_binding_name)
5089         (interface_info_get_binding_names, interface_info_get_binding_name):
5090         Functions for retrieving binding names.
5091         (method_info_set_binding_name, interface_info_set_binding_name):
5092         Functions for setting binding names.
5093
5094         * glib/dbus-binding-tool-glib.h: New file, has prototypes
5095         for glib binding generation.
5096
5097         * glib/dbus-binding-tool-glib.c: New file, implements server-side
5098         and client-side glib glue generation.
5099
5100         * glib/Makefile.am (dbus_binding_tool_SOURCES): Add
5101         dbus-binding-tool-glib.c, dbus-binding-tool-glib.h,
5102         dbus-glib-tool.h.
5103
5104         * dbus/dbus-glib.h (struct DBusGMethodMarshaller): Remove in favor
5105         of using GClosureMarshal directly.
5106         (struct DBusGObjectInfo): Add n_infos member.
5107
5108         * test/glib/test-service-glib.xml: New file; contains introspection data
5109         for MyTestObject used in test-service-glib.c.
5110
5111         * test/glib/test-service-glib.c (enum MyObjectError): New GError enum.
5112         (my_object_do_nothing, my_object_increment, my_object_throw_error)
5113         (my_object_uppercase, my_object_many_args): New test methods.
5114         (main): Use dbus_g_object_class_install_info to include generated object
5115         info.
5116
5117         * test/glib/Makefile.am: Generate server-side glue for test-service-glib.c,
5118         as well as client-side bindings.
5119
5120         * test/glib/test-dbus-glib.c: Include test-service-glib-bindings.h.
5121         (main): Activate TestSuiteGLibService; test invoke a bunch of its methods
5122         using both the dbus_gproxy stuff directly as well as the generated bindings.
5123
5124 2005-02-15  Havoc Pennington  <hp@redhat.com>
5125
5126         * dbus/dbus-connection.c (dbus_connection_dispatch): always
5127         complete a pending call, don't run filters first.
5128
5129         * glib/dbus-gproxy.c (dbus_g_proxy_end_call): change to use
5130         dbus_pending_call_steal_reply
5131
5132         * dbus/dbus-pending-call.c (dbus_pending_call_block): just call
5133         _dbus_connection_block_pending_call
5134         (dbus_pending_call_get_reply): change to steal_reply and return a
5135         ref
5136
5137         * dbus/dbus-connection.c
5138         (dbus_connection_send_with_reply_and_block): port to work in terms
5139         of DBusPendingCall
5140         (_dbus_connection_block_pending_call): replace block_for_reply
5141         with this
5142
5143 2005-02-14  Havoc Pennington  <hp@redhat.com>
5144
5145         * dbus/dbus-userdb-util.c (_dbus_user_database_lookup_group):
5146         properly handle looking up group information by name; fix 
5147         from j@bootlab.org
5148
5149 2005-02-13  Havoc Pennington  <hp@redhat.com>
5150
5151         * dbus/dbus-connection.c (dbus_connection_return_message) 
5152         (dbus_connection_borrow_message): hold dispatch lock while message
5153         is outstanding
5154         (_dbus_connection_block_for_reply): hold dispatch lock while we
5155         block for the reply, so nobody steals our reply
5156         (dbus_connection_pop_message): hold the dispatch lock while we
5157         pluck the message
5158
5159 2005-02-13  Havoc Pennington  <hp@redhat.com>
5160
5161         * dbus/dbus-connection.c (_dbus_connection_acquire_dispatch)
5162         (_dbus_connection_release_dispatch)
5163         (_dbus_connection_acquire_io_path)
5164         (_dbus_connection_release_io_path): make the mutex and condvar
5165         control access to the "acquired" flag. Drop the connection lock
5166         while waiting on the condvar. Hopefully these are baby steps in
5167         roughly the right direction.
5168
5169 2005-02-13  Havoc Pennington  <hp@redhat.com>
5170
5171         * dbus/dbus-connection.c: use separate mutexes for the condition
5172         variables; this is some kind of baseline for sanity, but the
5173         condition variables still aren't used correctly afaict
5174
5175 2005-02-13  Havoc Pennington  <hp@redhat.com>
5176
5177         * dbus/dbus-object-tree.c (handle_default_introspect_and_unlock):
5178         fix a double-unlock
5179
5180         * dbus/dbus-connection.c
5181         (_dbus_connection_detach_pending_call_unlocked): add this
5182
5183         Initial semi-correct pass through to fix thread locking; there are
5184         still some issues with the condition variable paths I'm pretty
5185         sure
5186         
5187         * dbus/dbus-server.c: add a mutex on DBusServer and appropriate
5188         lock/unlock calls
5189
5190         * dbus/dbus-connection.c (_dbus_connection_do_iteration_unlocked):
5191         rename to add _unlocked
5192         (struct DBusConnection): move "dispatch_acquired" and
5193         "io_path_acquired" to use only one bit each.
5194         (CONNECTION_LOCK, CONNECTION_UNLOCK): add checks with !DBUS_DISABLE_CHECKS
5195         (dbus_connection_set_watch_functions): hacky fix to reentrancy
5196         (_dbus_connection_add_watch, _dbus_connection_remove_watch) 
5197         (_dbus_connection_toggle_watch, _dbus_connection_add_timeout) 
5198         (_dbus_connection_remove_timeout) 
5199         (_dbus_connection_toggle_timeout): drop lock when calling out to
5200         user functions; done in a hacky/bad way.
5201         (_dbus_connection_send_and_unlock): add a missing unlock
5202         (_dbus_connection_block_for_reply): add a missing unlock
5203
5204         * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated):
5205         drop lock in a hacky probably unsafe way to call out to user
5206         function
5207
5208 2005-02-12  Havoc Pennington  <hp@redhat.com>
5209
5210         * tools/dbus-tree-view.c (info_set_func_text): display more
5211         details on args
5212
5213         * bus/driver.c (bus_driver_handle_list_services): list the bus
5214         driver
5215
5216         * glib/dbus-gparser.c (parse_arg): generate an arg name if none is supplied
5217
5218         * glib/dbus-gidl.c (signal_info_get_n_args): new function
5219         (method_info_get_n_args): new function
5220
5221 2005-02-12  Havoc Pennington  <hp@redhat.com>
5222
5223         * bus/driver.c (bus_driver_handle_introspect): add introspection
5224         for bus driver
5225
5226 2005-02-12  Havoc Pennington  <hp@redhat.com>
5227
5228         * bus/driver.c: put the signature of each bus driver method in the
5229         table of handlers and check it on incoming calls; this isn't
5230         really useful, but going to add introspect support in a minute.
5231
5232 2005-02-11  Joe Shaw  <joeshaw@novell.com>
5233
5234         * mono/Connection.cs: The unpredictability of finalizers in mono
5235         prevents us from deterministically disconnecting the filters from
5236         the Service class's finalizer, so move tracking of filters and
5237         matches here.  Add API for that.
5238
5239         * mono/Service.cs: Remove the code, add code which calls the
5240         methods now on the Connection class.
5241
5242 2005-02-11  John (J5) Palmieri  <johnp@redhat.com>
5243
5244         * python/dbus.py (class Sender): added to support dbus signals better
5245         (Bus::add_signal_receiver): added expand_args parameter which defaults
5246         to True.  When expand args is True the signal handler will pass the 
5247         message arguments as parameters to the signal handler.  If False
5248         revert to previous behavior where the signal handler must get the
5249         argument list from the message.  This is to help port applications
5250         like HAL that have a tendancy to send variable length argument lists.
5251         self._match_rule_to_receivers is now a dict of dicts.
5252         (Bus::remove_signal_receiver): pop handler off the dict intead of 
5253         removing it from a list
5254         (Bus::_signal_func): change signal handlers so that interface,
5255         signal_name, service, path and message are packed into a Sender
5256         object and that is passed to the handler.  If expand_args is True
5257         extract the args list from the message and append it to the parameter
5258         list
5259         
5260         * python/dbus_bindings.pyx.in (class Signature): added to support 
5261         signiature types
5262         (MessageIter::__init__): changed iteration limit to match D-BUS
5263         (MessageIter::get*): added INT16, UINT16, SIGNATURE, DICT_ENTRY, 
5264         STRUCT and VARIENT type support
5265         (MessageIter::python_value_to_dbus_sig): made recursive to support
5266         recursive types
5267         (MessageIter::append*): added Signature, dict, tuple 
5268         support
5269
5270         * python/examples/example-client.py: added examples of getting tuples
5271         and dicts
5272
5273         * python/examples/example-service.py: added examples of sending tuples
5274         and dicts
5275
5276         * python/examples/example-signal-recipient.py: Fixed to handle new
5277         signal callback format
5278
5279 2005-02-10  Havoc Pennington  <hp@redhat.com>
5280
5281         * test/glib/test-dbus-glib.c (main): fix so this test doesn't fail
5282         (call dbus_g_proxy_add_signal)
5283
5284         * dbus/dbus-server-unix.c (_dbus_server_new_for_tcp_socket):
5285         escape the hostname
5286         (_dbus_server_new_for_domain_socket): escape the path
5287
5288         * dbus/dbus-address.c (dbus_address_escape_value): new
5289         (dbus_address_unescape_value): new
5290         (dbus_parse_address): unescape values
5291
5292         * dbus/dbus-string.c (_dbus_string_append_byte_as_hex): new function
5293
5294         * doc/dbus-specification.xml: explain how to escape values in
5295         addresses
5296
5297 2005-02-10  Havoc Pennington  <hp@redhat.com>
5298
5299         * dbus/dbus-message-factory.c (generate_special): modify test to
5300         avoid using a non-basic dict key
5301
5302         * dbus/dbus-marshal-validate-util.c: add test for the below
5303
5304         * doc/dbus-specification.xml: require that dict keys are a basic
5305         type
5306
5307         * dbus/dbus-marshal-validate.c
5308         (_dbus_validate_signature_with_reason): require that dict key is a
5309         basic type
5310
5311 2005-02-10  Havoc Pennington  <hp@redhat.com>
5312
5313         * dbus/dbus-object-tree.c (handle_default_introspect_and_unlock):
5314         change to be _and_unlock instead of _unlocked
5315
5316         * dbus/dbus-connection.c
5317         (_dbus_connection_send_preallocated_unlocked_no_update): rename to
5318         have no_update so we can find this bug quickly in future
5319
5320 2005-02-10  Havoc Pennington  <hp@redhat.com>
5321
5322         * dbus/dbus-message-util.c (verify_test_message): tests for string
5323         array
5324
5325         * dbus/dbus-message.c (dbus_message_append_args_valist): add
5326         support for arrays of string/signature/path
5327
5328 2005-02-10  Joe Shaw  <joeshaw@novell.com>
5329
5330         * dbus/dbus-connection.c
5331         (_dbus_connection_queue_received_message_link,
5332         _dbus_connection_message_sent): Add the path to
5333         the verbose output.
5334         (_dbus_connection_send_preallocated_and_unlock): Added.  Calls
5335         _dbus_connection_send_preallocated_unlocked(), updated the
5336         dispatch status, and unlocks.  Fixes a bug where certain
5337         situations (like a broken pipe) could cause a Disconnect message
5338         to not be sent, tricking the bus into thinking a service was still
5339         there when the process had quit.
5340         (_dbus_connection_send_preallocated): Call
5341         _dbus_connection_send_preallocated_and_unlock().
5342         (_dbus_connection_send_and_unlock): Added.  Calls
5343         _dbus_connection_send_preallocated_and_unlock().
5344         (dbus_connection_send): Call _dbus_connection_send_and_unlock().
5345         (dbus_connection_send_with_reply): Update the dispatch status and
5346         unlock.
5347
5348         * mono/Service.cs (~Service): Added.  Removes the filter so that
5349         we don't get unmanaged code calling back into a GCed delegate.
5350         (RemoveFilter); Added.
5351
5352 2005-02-09  John (J5) Palmieri  <johnp@redhat.com>
5353
5354         * dbus/dbus-message.c (dbus_message_iter_open_container):
5355         - Removed check for iterator type being an array because
5356         get_arg_type does not work with writer iterators
5357         - Pass NULL to _dbus_type_writer_recurse if signiture is NULL
5358
5359 2005-02-07  Havoc Pennington  <hp@redhat.com>
5360
5361         * doc/dbus-specification.xml: some more language cleanups; add
5362         stuff about how to deal with invalid protocol and extension
5363         points; add _ to allowed chars in auth commands; add EXTENSION_
5364         auth command prefix
5365
5366 2005-02-06  Havoc Pennington  <hp@redhat.com>
5367
5368         * s/expected/required/ in a couple places for clarity
5369
5370 2005-02-07  Colin Walters  <walters@verbum.org>
5371
5372         * bus/selinux.c (bus_selinux_allows_send): Handle NULL for
5373         sender or proposed_recipient.
5374
5375 2005-02-06  Havoc Pennington  <hp@redhat.com>
5376
5377         * dbus/dbus-message-factory.c (generate_special): more tests
5378
5379         * dbus/dbus-marshal-validate.c (validate_body_helper): detect
5380         array length that exceeds the maximum
5381
5382 2005-02-05  Havoc Pennington  <hp@redhat.com>
5383
5384         * dbus/dbus-message-factory.c (generate_special): more test cases,
5385         increasing coverage
5386
5387         * dbus/dbus-marshal-validate.c (validate_body_helper): return the
5388         reason why a signature was invalid
5389
5390         * dbus/dbus-marshal-header.c (load_and_validate_field): fix to
5391         skip the length of the string before we look at it in validation
5392
5393         * dbus/dbus-string-util.c (_dbus_string_test): add tests for
5394         equal_substring
5395
5396         * dbus/dbus-message.c (_dbus_message_loader_new): default
5397         max_message_length to DBUS_MAXIMUM_MESSAGE_LENGTH
5398
5399 2005-02-05  Havoc Pennington  <hp@redhat.com>
5400
5401         * dbus/dbus-marshal-validate.c (validate_body_helper): fix crash
5402         if the signature of a variant was empty
5403         (_dbus_validate_signature_with_reason): catch "(a)" (array inside
5404         struct with no element type)
5405
5406         * dbus/dbus-message-factory.c (generate_uint32_changed): add more
5407         mangled messages to break things
5408
5409 2005-02-04  Havoc Pennington  <hp@redhat.com>
5410
5411         * glib/dbus-gproxy.c (dbus_g_proxy_disconnect_signal): use
5412         g_quark_try_string() so it actually can return 0
5413         (dbus_g_proxy_connect_signal): ditto
5414
5415 2005-02-04  Havoc Pennington  <hp@redhat.com>
5416
5417         * glib/dbus-gproxy.c (dbus_g_proxy_emit_remote_signal): fix a
5418         bogus warning
5419         (tristring_from_message): assert cleanly on null path/interface
5420         (should not be possible though I decided later)
5421         (dbus_g_proxy_dispose): move proxy manager unregistration here
5422         (DBUS_G_PROXY_DESTROYED): add this macro, and use it in a bunch of
5423         g_return_if_fail() checks
5424
5425 2005-02-04  Havoc Pennington  <hp@redhat.com>
5426
5427         * doc/Makefile.am (EXTRA_DIST): add DTDs to makefile
5428
5429         * doc/introspect.dtd: add introspect.dtd from David A. Wheeler
5430         (with some minor changes)
5431
5432         * doc/dbus-specification.xml: add deprecated attribute to
5433         introspection format
5434
5435 2005-01-31  Havoc Pennington  <hp@redhat.com>
5436
5437         * glib/dbus-gproxy.c: rewrite how signals work again, this time I
5438         think it's sort of right
5439
5440 2005-01-30  Havoc Pennington  <hp@redhat.com>
5441
5442         * tools/dbus-viewer.c: kind of half-ass hook up the option menu.
5443
5444 2005-01-30  Havoc Pennington  <hp@redhat.com>
5445
5446         * tools/dbus-names-model.c: dynamically watch NameOwnerChanged
5447
5448         * autogen.sh: change to autotools 1.9
5449
5450         * glib/dbus-gproxy.c: completely change how signals work
5451         (dbus_g_proxy_add_signal): new function to specify signature of a
5452         signal
5453         (dbus_g_proxy_emit_received): marshal the dbus message to GValues,
5454         and g_warning if the incoming message has the wrong signature.
5455
5456 2005-01-30  Havoc Pennington  <hp@redhat.com>
5457
5458         * tools/dbus-names-model.c (have_names_notify): fix this
5459
5460         * dbus/dbus-message.c (_dbus_message_iter_get_args_valist): clean
5461         up the string array handling a bit 
5462
5463 2005-01-30  Havoc Pennington  <hp@redhat.com>
5464
5465         * glib/dbus-glib.c (dbus_g_pending_call_set_notify): new function
5466         (dbus_g_pending_call_cancel): new function
5467
5468         * dbus/dbus-glib.h: move GType decls for connection/message here;
5469         * dbus/dbus-glib.c: move all the g_type and ref/unref stuff in
5470         here, just kind of rationalizing how we handle all that
5471
5472         * tools/dbus-names-model.c: new file for a tree model listing the
5473         services on a bus
5474
5475         * tools/dbus-tree-view.c (model_new): use proper typing on the
5476         model rows
5477
5478 2005-01-30  Havoc Pennington  <hp@redhat.com>
5479
5480         * glib/dbus-gmain.c: add a custom GSource back that just checks
5481         whether the message queue has anything in it; otherwise, there are 
5482         cases where we won't see messages in the queue since there was no 
5483         IO visible to the glib main loop
5484
5485         * dbus/dbus-connection-internal.h (_DBUS_DEFAULT_TIMEOUT_VALUE):
5486         increase default message timeout to 25 seconds
5487
5488 2005-01-30  Havoc Pennington  <hp@redhat.com>
5489
5490         * test/glib/test-profile.c (no_bus_stop_server): remove the
5491         warning about the g_warning that I just fixed
5492
5493         * glib/dbus-gmain.c: rewrite the main loop stuff to avoid the
5494         custom source, seems to be a lot easier to understand and work
5495         better.
5496
5497 2005-01-30  Havoc Pennington  <hp@redhat.com>
5498
5499         I think this main loop thing is conceptually broken, but here are 
5500         some band aids. I'll maybe rewrite it in a minute.
5501         
5502         * glib/dbus-gmain.c (add_timeout): timeout stuff doesn't use the
5503         custom GSource, so don't pass it in; confusing
5504         (gsource_server_finalize, gsource_connection_finalize): add
5505         finalize handlers that remove all the watches.  
5506
5507 2005-01-30  Havoc Pennington  <hp@redhat.com>
5508
5509         * glib/dbus-gobject.c (introspect_properties): fix the XML
5510         generated
5511
5512         * dbus/dbus-message.c (dbus_message_unref): add an in_cache flag
5513         which effectively detects the use of freed messages
5514
5515         * glib/dbus-gobject.c (handle_introspect): modify and return the
5516         reply message instead of the incoming message
5517
5518         * dbus/dbus-object-tree.c (handle_default_introspect_unlocked):
5519         gee, maybe it should SEND THE XML instead of just making a string
5520         and freeing it again ;-)
5521
5522         * tools/dbus-print-message.c (print_message): improve printing of
5523         messages
5524
5525         * configure.in: add debug-glib.service to the output
5526
5527 2005-01-30  Havoc Pennington  <hp@redhat.com>
5528
5529         dbus-viewer introspected and displayed the bus driver
5530         
5531         * dbus/dbus-object-tree.c 
5532         (object_tree_test_iteration): add tests for a handler registered on "/"
5533
5534         * dbus/dbus-object-tree.c
5535         (_dbus_decompose_path): fix to handle path "/" properly
5536         (run_decompose_tests): add tests for path decomposition
5537         
5538         * glib/dbus-gutils.c (_dbus_gutils_split_path): fix to handle "/"
5539         properly
5540
5541         * glib/dbus-gobject.c (handle_introspect): fix quotes
5542
5543         * test/glib/run-test.sh: support launching the bus, then running
5544         dbus-viewer
5545
5546         * test/glib/test-service-glib.c (main): put in a trivial gobject
5547         subclass and register it on the connection
5548
5549         * bus/driver.c (bus_driver_handle_introspect): implement
5550         introspection of the bus driver service
5551
5552         * dbus/dbus-protocol.h: add #defines for the XML namespace,
5553         identifiers, doctype decl
5554
5555         * bus/driver.c (bus_driver_handle_get_service_owner): handle
5556         attempts to get owner of DBUS_SERVICE_ORG_FREEDESKTOP_DBUS by 
5557         returning the service unchanged.
5558         (bus_driver_handle_message): remove old check for reply_serial in
5559         method calls, now the message type deals with that
5560         (bus_driver_handle_message): handle NULL interface
5561
5562         * glib/dbus-gproxy.c (dbus_g_proxy_get_bus_name): new function
5563
5564         * glib/dbus-gloader-expat.c (description_load_from_string): allow
5565         -1 for len
5566
5567         * tools/dbus-viewer.c: add support for introspecting a service on
5568         a bus
5569
5570         * glib/dbus-gproxy.c (dbus_g_pending_call_ref): add
5571         (dbus_g_pending_call_unref): add
5572
5573 2005-01-29  Havoc Pennington  <hp@redhat.com>
5574
5575         * tools/dbus-tree-view.c: add support for displaying properties.
5576         (run dbus-viewer with an introspect xml file as arg, then resize
5577         the window so the tree elements show up, not sure what that is)
5578
5579         * glib/dbus-gobject.c (handle_introspect): return
5580         org.freedesktop.Properties and org.freedesktop.Introspectable
5581         interfaces when we are introspected.
5582
5583         * doc/dbus-specification.xml: allow empty interface name when 
5584         Get/Set a property
5585
5586 2005-01-29  Havoc Pennington  <hp@redhat.com>
5587
5588         * glib/Makefile.am: rename dbus-glib-tool to dbus-binding-tool;
5589         though it uses glib, it could be extended for any binding in
5590         principle
5591
5592         * glib/dbus-gobject.c (gobject_message_function): change to the
5593         new way properties work
5594
5595         * dbus/dbus-protocol.h: add the new interfaces
5596
5597         * doc/dbus-specification.xml: document the introspection format,
5598         Introspectable interface, and add an org.freedesktop.Properties
5599         interface.
5600
5601         * glib/dbus-gparser.c: add support for a <property> element
5602
5603         * glib/dbus-gidl.c: add PropertyInfo
5604
5605         * glib/dbus-gobject.c (handle_introspect): put the outermost
5606         <node> outside the signal and property descriptions.
5607         (introspect_properties): export properties as <property> rather
5608         than as method calls
5609
5610 2005-01-28  Havoc Pennington  <hp@redhat.com>
5611
5612         * doc/TODO, doc/dbus-specification.xml: spec and TODO tweaks
5613         related to authentication protocol
5614
5615 2005-01-28  John (J5) Palmieri  <johnp@redhat.com>
5616
5617         * python/dbus_bindings.pyx.in: Updated to handle new D-BUS type system
5618                 - BUS_ACTIVATION -> BUS_STARTER
5619                 - DBUS_BUS_ACTIVATION -> DBUS_BUS_STARTER
5620                 - class MessageIter (__init__): Added recursion checking 
5621                 so we throw a nice error instead of just disconnecting from the
5622                 bus.
5623                 (get): Added arg_type parameter for recursion.
5624                 Removed the nil type
5625                 Added signiture type placeholder (not implemented)
5626                 Added struct type placeholder (not implemented)
5627                 Added varient type placeholder (not implemented)
5628                 Commented out dict type for now     
5629                 (get_element_type): renamed from get_array_type
5630                 (get_*): changed to use the dbus_message_iter_get_basic API
5631                 (get_*_array): removed in favor of recursive get_array method
5632                 (get_array): new recursive method which calls get to marshal
5633                 the elements of the array
5634                 (value_to_dbus_sig): New method returns the corrasponding
5635                 dbus signiture to a python value
5636                 (append): Comment out dict handling for now
5637                 Handle lists with the new recursive API
5638                 Comment out None handling for now
5639                 (append_nil): removed
5640                 (append_*): changed to use dbus_message_iter_append_basic API
5641                 (append_*_array): removed in favor of recursive append_array 
5642                 method
5643                 (__str__): Make it easier to print out recursive iterators
5644                 for debugging
5645                 - class Message (__str__): moved type inspection to the
5646                 MessageIter class' __str__ method
5647                 (get_iter): Added an append parameter wich defaults to False
5648                 If True use the new API's to create an append iterator
5649
5650         * python/dbus.py: Update to use new bindings API
5651                 - TYPE_ACTIVATION -> TYPE_STARTER
5652                 - class Bus (_get_match_rule): GetServiceOwner -> GetNameOwner
5653                 - class ActivationBus -> class StarterBus
5654                 - class RemoteObject (__call__): get an append iterator
5655                 - (_dispatch_dbus_method_call): get an append iterator
5656                 - class Object (emit_signal): get an append iterator
5657
5658         * python/examples/: Fixed up the examples to work with the new API
5659                 
5660 2005-01-28  Joe Shaw  <joeshaw@novell.com>
5661
5662         * configure.in: Bump version up to 0.30.
5663
5664         * HACKING: Add a release item to bump the version number up after 
5665         a release.
5666
5667 2005-01-28  Havoc Pennington  <hp@redhat.com>
5668
5669         * doc/dbus-specification.xml: update to describe 16-bit types and
5670         dict entries
5671
5672         * dbus/dbus-marshal-basic.c (_dbus_unpack_uint16): fix broken
5673         assertion
5674
5675         * dbus/dbus-protocol.h (DBUS_TYPE_DICT_ENTRY): add DICT_ENTRY as a
5676         type
5677
5678         * dbus/dbus-marshal-recursive.c: implement
5679
5680 2005-01-27  Havoc Pennington  <hp@redhat.com>
5681
5682         * dbus/dbus-arch-deps.h.in: add 16/32-bit types
5683
5684         * configure.in: find the right type for 16 and 32 bit ints as well
5685         as 64
5686
5687         * dbus/dbus-protocol.h (DBUS_TYPE_INT16, DBUS_TYPE_UINT16): add
5688         the 16-bit types so people don't have to stuff them in 32-bit or
5689         byte arrays.
5690
5691 2005-01-27  Havoc Pennington  <hp@redhat.com>
5692
5693         * dbus/dbus-message.c: byteswap the message if you init an
5694         iterator to read/write from it
5695         
5696         * dbus/dbus-marshal-byteswap.c: new file implementing 
5697         _dbus_marshal_byteswap()
5698
5699         * dbus/dbus-marshal-basic.c: add _dbus_swap_array()
5700
5701 2005-01-26  Havoc Pennington  <hp@redhat.com>
5702         
5703         * dbus/dbus-marshal-validate-util.c: break this out (and fix
5704         build, apparently - nobody noticed?)
5705         
5706 2005-01-26  Havoc Pennington  <hp@redhat.com>
5707
5708         * dbus/dbus-marshal-recursive.h: remove todo comment
5709
5710 2005-01-25  Joe Shaw  <joeshaw@novell.com>
5711
5712         * Land the mono binding changes to conform to the new APIs.
5713
5714         * mono/Makefile.am: Remove Custom.cs, DBusType/Custom.cs,
5715         DBusType/Dict.cs, and DBusType/Nil.cs from the build.
5716
5717         * mono/Arguments.cs (GetCodeAsString): Added.  Returns the dbus
5718         type code as a string.
5719         (InitAppending): Rename dbus_message_append_iter_init() to
5720         dbus_message_iter_init_append().
5721
5722         * mono/BusDriver.cs: Rename ServiceEventHandler to
5723         NameOwnerChangedHandler.  Rename GetServiceOwner to GetOwner.
5724         Rename ServiceOwnerChanged to NameOwnerChanged.
5725
5726         * mono/Connection.cs: Rename BaseService to UniqueName, and the
5727         underlying C call.
5728
5729         * mono/Custom.cs: Removed.  The CUSTOM type has been removed.
5730
5731         * mono/Service.cs: Rename Exists to HasOwner, internally rename
5732         dbus_bus_acquire_service() to dbus_bus_request_name().
5733
5734         * mono/DBusType/Array.cs (ctor): Use Type.GetElementType() instead
5735         of Type.UnderlyingSystemType to get the correct element type for
5736         the array.
5737         (ctor): Update code for new APIs: use dbus_message_iter_recurse(),
5738         dbus_message_get_{element|arg}_type() instead of
5739         dbus_message_iter_init_array_iterator().
5740         (Append): Replace dbus_message_iter_append_array() with
5741         dbus_message_iter_open_container() and
5742         dbus_message_iter_close_container().
5743
5744         * mono/DBusType/Custom.cs, mono/DBusType/Nil.cs: Removed.  These
5745         types have been removed.
5746         
5747         * mono/DBusType/*.cs: Replace calls of
5748         dbus_message_iter_get_[type]() to dbus_message_iter_get_basic(),
5749         but specify the type in the DllImport extern declaration.  Ditto
5750         for dbus_message_iter_append_[type]() ->
5751         dbus_message_iter_append_basic().
5752
5753         * mono/example/BusListener.cs: Update for ServiceEventHandler ->
5754         NameOwnerChangedHandler.
5755
5756 2005-01-25  John (J5) Palmieri  <johnp@redhat.com>
5757
5758         * python/dbus_bindings.pyx.in: Rename of methods and bindings
5759                 - get_base_service -> get_unique_name
5760                 - bus_get_base_service -> bus_get_unique_name
5761                 - dbus_bus_get_base_service -> dbus_bus_get_unique_name
5762                 - ACTIVATION_REPLY_ACTIVATED -> DBUS_START_REPLY_SUCCESS 
5763                 - ACTIVATION_REPLY_ALREADY_ACTIVE -> DBUS_START_REPLY_ALREADY_RUNNING
5764                 - bus_activate_service -> bus_start_service_by_name
5765                 - dbus_bus_activate_service -> dbus_bus_start_service_by_name
5766                 - bus_acquire_service -> bus_request_name
5767                 - dbus_bus_acquire_service -> dbus_bus_request_name
5768                 - bus_service_exists -> bus_name_has_owner
5769                 - dbus_bus_service_exists -> dbus_bus_name_has_owner
5770
5771         * python/dbus.py: Rename of methods
5772                 - activate_service -> start_service_by_name
5773                 - bus_acquire_service -> bus_request_name
5774                 - ACTIVATION_REPLY_ACTIVATED -> START_REPLY_SUCCESS 
5775                 - ACTIVATION_REPLY_ALREADY_ACTIVE -> START_REPLY_ALREADY_RUNNING
5776
5777         
5778 2005-01-24  Joe Shaw  <joeshaw@novell.com>
5779
5780         * dbus/dbus-connection.c (dbus_connection_dispatch): Print out the
5781         signature for the method that can't be found.
5782
5783         * dbus/dbus-message.c (dbus_message_iter_init): To check to see if
5784         the message has any arguments, we need to call
5785         _dbus_type_reader_get_current_type(), not
5786         _dbus_type_reader_has_next().
5787
5788 2005-01-24  Havoc Pennington  <hp@redhat.com>
5789
5790         * dbus/dbus-message-factory.c: more testing of message validation
5791
5792         * dbus/dbus-protocol.h (DBUS_MINIMUM_HEADER_SIZE): move to this
5793         header
5794
5795 2005-01-23  Havoc Pennington  <hp@redhat.com>
5796
5797         * dbus/dbus-message-factory.c, dbus/dbus-message-util.c: 
5798         get this all working, not many tests in the framework yet though
5799
5800 2005-01-22  Havoc Pennington  <hp@redhat.com>
5801
5802         * doc/dbus-faq.xml, doc/dbus-tutorial: add a FAQ and update
5803         tutorial, based on work from David Wheeler.
5804
5805 2005-01-21  Havoc Pennington  <hp@redhat.com>
5806
5807         * dbus/dbus-bus.c: add more return_if_fail checks
5808
5809         * dbus/dbus-message.c (load_message): have the "no validation"
5810         mode (have to edit the code to toggle the mode for now though)
5811
5812         * dbus/dbus-marshal-header.c (_dbus_header_load): have a mode that
5813         skips all validation; I want to use this at least for benchmark
5814         baseline, I'm not sure if it should be a publicly-available switch.
5815
5816 2005-01-21  Havoc Pennington  <hp@redhat.com>
5817
5818         * glib/dbus-gmain.c: don't put the GLib bindings in the same
5819         toplevel doxygen group as the low-level API stuff
5820
5821         * dbus/dbus.h: note that libdbus is the low-level API
5822
5823 2005-01-20  Havoc Pennington  <hp@redhat.com>
5824
5825         * update-dbus-docs.sh: script to update docs on the web site, only
5826         works for me though. neener.
5827
5828 2005-01-20  Havoc Pennington  <hp@redhat.com>
5829
5830         * dbus/dbus-sysdeps.c (_dbus_poll): amazingly, trying to compile
5831         code can reveal bugs in it
5832
5833 2005-01-20  Havoc Pennington  <hp@redhat.com>
5834
5835         * dbus/dbus-sysdeps.c (_dbus_poll): fix several bugs in the
5836         select() version, patches from Tor Lillqvist
5837
5838 2005-01-20  Havoc Pennington  <hp@redhat.com>
5839
5840         * doc/dbus-tutorial.xml: replace > with &gt;
5841
5842         * bus/services.c (bus_registry_acquire_service): validate the name
5843         and return a better error if it's no good.
5844
5845         * doc/dbus-specification.xml: note NO_AUTO_START change
5846
5847         * dbus/dbus-protocol.h (DBUS_HEADER_FLAG_NO_AUTO_START): change
5848         from AUTO_START, we're toggling the default
5849
5850         * bus/dispatch.c: adapt the tests to change of auto-start default
5851
5852 2005-01-18  Havoc Pennington  <hp@redhat.com>
5853
5854         * rename dbus-daemon-1 to dbus-daemon throughout
5855
5856 2005-01-18  Havoc Pennington  <hp@redhat.com>
5857
5858         * Throughout, grand renaming to strip out the use of "service",
5859         just say "name" instead (or "bus name" when ambiguous).  Did not
5860         change the internal code of the message bus itself, only the
5861         programmer-facing API and messages.
5862         
5863         * doc/dbus-specification.xml: further update the message bus section
5864         
5865         * bus/config-parser.c (all_are_equiv): fix bug using freed string
5866         in error case
5867
5868 2005-01-17  Havoc Pennington  <hp@redhat.com>
5869
5870         * dbus/dbus-types.h: remove 16-bit types since we don't use them
5871         ever
5872
5873         * dbus/dbus-marshal-validate.c (_dbus_validate_path): disallow any
5874         "invalid name character" not only non-ASCII
5875
5876         * doc/dbus-specification.xml: further update spec, message bus 
5877         parts are still out-of-date but the marshaling etc. stuff is now
5878         accurate-ish
5879
5880 2005-01-17  Havoc Pennington  <hp@redhat.com>
5881
5882         * doc/dbus-specification.xml: partially update spec
5883
5884 2005-01-17  Havoc Pennington  <hp@redhat.com>
5885
5886         * Throughout, align variant bodies according to the contained
5887         type, rather than always to 8. Should save a fair bit of space in
5888         message headers.
5889         
5890         * dbus/dbus-marshal-validate.c (_dbus_validate_body_with_reason):
5891         fix handling of case where p == end
5892
5893         * doc/TODO: remove the dbus_bool_t item and variant alignment items
5894
5895 2005-01-17  Havoc Pennington  <hp@redhat.com>
5896
5897         * dbus/dbus-types.h: hardcode dbus_bool_t to 32 bits
5898
5899         * Throughout: modify DBUS_TYPE_BOOLEAN to be a 32-bit type instead
5900         of an 8-bit type. Now dbus_bool_t is the type to use whenever you 
5901         are marshaling/unmarshaling a boolean.
5902
5903 2005-01-16  Havoc Pennington  <hp@redhat.com>
5904
5905         This is about it on what can be disabled/deleted from libdbus
5906         easily, back below 150K anyhow. Deeper cuts are more work than 
5907         just turning the code off as I've done here.
5908         
5909         * dbus/dbus-marshal-basic.c (_dbus_pack_int32): we don't need the
5910         signed int convenience funcs
5911
5912         * dbus/dbus-internals.c (_dbus_verbose_real): omit when not in
5913         verbose mode
5914
5915         * dbus/dbus-string-util.c, dbus/dbus-string.c: more breaking
5916         things out of libdbus
5917
5918         * dbus/dbus-sysdeps.c, dbus/dbus-sysdeps-util.c: same
5919         
5920         * dbus/dbus-hash.c: purge the TWO_STRINGS crap (well, make it
5921         tests-enabled-only, though it should probably be deleted)
5922
5923         * dbus/dbus-message-util.c: same stuff
5924
5925         * dbus/dbus-auth-util.c: same stuff
5926
5927 2005-01-16  Havoc Pennington  <hp@redhat.com>
5928
5929         * dbus/dbus-userdb-util.c: split out part of dbus-userdb.c
5930
5931         * dbus/dbus-sysdeps.c (_dbus_uid_from_string): move here to pave
5932         way for stripping down dbus-userdb.c stuff included in libdbus.
5933         Rename _dbus_parse_uid for consistency.
5934
5935 2005-01-16  Havoc Pennington  <hp@redhat.com>
5936
5937         * dbus/dbus-internals.c (_dbus_real_assert): print the function
5938         name the assertion failed in
5939
5940         * dbus/dbus-internals.h (_dbus_return_if_fail) 
5941         (_dbus_return_val_if_fail): assert that the name of the function
5942         containing the check doesn't start with '_', since we only want to 
5943         use checks on public functions
5944         
5945         * dbus/dbus-connection.c (_dbus_connection_ref_unlocked): change
5946         checks to assertions
5947
5948         * dbus/dbus-marshal-header.c (_dbus_header_set_field_basic):
5949         change checks to asserts for private function
5950
5951         * dbus/dbus-message.c (_dbus_message_set_serial): checks
5952         to asserts for private function
5953
5954         * dbus/dbus-marshal-recursive.c (skip_one_complete_type): remove
5955         broken assertion that was breaking make check
5956         (_dbus_type_reader_array_is_empty): remove this rather than fix
5957         it, was only used in assertions
5958
5959 2005-01-16  Havoc Pennington  <hp@redhat.com>
5960
5961         * test/unused-code-gc.py: hacky script to find code that's used
5962         only by the bus (not libdbus) or used only by tests or not used at
5963         all. It has some false alarms, but looks like we can clean up a
5964         lot of size from libdbus.
5965
5966         * dbus/dbus-sysdeps.c, dbus/dbus-sysdeps-utils.c,
5967         dbus/Makefile.am: initially move 10K of binary size out of libdbus
5968         
5969 2005-01-16  Havoc Pennington  <hp@redhat.com>
5970
5971         * Add and fix docs according to Doxygen warnings throughout
5972         source.
5973         
5974         * dbus/dbus-marshal-recursive.c
5975         (_dbus_type_reader_array_is_empty): change this to just call
5976         array_reader_get_array_len() and make it static
5977
5978         * dbus/dbus-message.c (dbus_message_iter_get_element_type): rename
5979         from get_array_type
5980         (dbus_message_iter_init_append): rename from append_iter_init
5981
5982         * dbus/dbus-marshal-recursive.c
5983         (_dbus_type_reader_get_element_type): rename from
5984         _dbus_type_reader_get_array_type
5985
5986 2005-01-15  Havoc Pennington  <hp@redhat.com>
5987
5988         * test/glib/test-profile.c (with_bus_server_filter): fix crash
5989
5990         * dbus/dbus-marshal-basic.c (_dbus_unpack_uint32): inline as macro
5991         when DBUS_DISABLE_ASSERT
5992         (_dbus_marshal_set_basic): be sure we align for the string length
5993
5994         * dbus/dbus-marshal-recursive.c (skip_one_complete_type): make
5995         this look faster
5996
5997         * dbus/dbus-string.c (_dbus_string_get_const_data_len): add an
5998         inline macro version
5999         (_dbus_string_set_byte): provide inline macro version
6000
6001 2005-01-15  Havoc Pennington  <hp@redhat.com>
6002
6003         * Land the new message args API and type system.
6004
6005         This patch is huge, but the public API change is not 
6006         really large. The set of D-BUS types has changed somewhat, 
6007         and the arg "getters" are more geared toward language bindings;
6008         they don't make a copy, etc.
6009
6010         There are also some known issues. See these emails for details
6011         on this huge patch:
6012         http://lists.freedesktop.org/archives/dbus/2004-December/001836.html
6013         http://lists.freedesktop.org/archives/dbus/2005-January/001922.html
6014         
6015         * dbus/dbus-marshal-*: all the new stuff
6016
6017         * dbus/dbus-message.c: basically rewritten
6018
6019         * dbus/dbus-memory.c (check_guards): with "guards" enabled, init
6020         freed blocks to be all non-nul bytes so using freed memory is less
6021         likely to work right
6022
6023         * dbus/dbus-internals.c (_dbus_test_oom_handling): add
6024         DBUS_FAIL_MALLOC=N environment variable, so you can do
6025         DBUS_FAIL_MALLOC=0 to skip the out-of-memory checking, or
6026         DBUS_FAIL_MALLOC=10 to make it really, really, really slow and
6027         thorough.
6028
6029         * qt/message.cpp: port to the new message args API
6030         (operator<<): use str.utf8() rather than str.unicode()
6031         (pretty sure this is right from the Qt docs?)
6032
6033         * glib/dbus-gvalue.c: port to the new message args API
6034
6035         * bus/dispatch.c, bus/driver.c: port to the new message args API
6036
6037         * dbus/dbus-string.c (_dbus_string_init_const_len): initialize the
6038         "locked" flag to TRUE and align_offset to 0; I guess we never
6039         looked at these anyhow, but seems cleaner.
6040
6041         * dbus/dbus-string.h (_DBUS_STRING_ALLOCATION_PADDING):
6042         move allocation padding macro to this header; use it to implement
6043         (_DBUS_STRING_STATIC): ability to declare a static string.
6044
6045         * dbus/dbus-message.c (_dbus_message_has_type_interface_member):
6046         change to return TRUE if the interface is not set.
6047
6048         * dbus/dbus-string.[hc]: move the D-BUS specific validation stuff
6049         to dbus-marshal-validate.[hc]
6050
6051         * dbus/dbus-marshal-basic.c (_dbus_type_to_string): move here from
6052         dbus-internals.c
6053
6054         * dbus/Makefile.am: cut over from dbus-marshal.[hc]
6055         to dbus-marshal-*.[hc]
6056
6057         * dbus/dbus-object-tree.c (_dbus_decompose_path): move this
6058         function here from dbus-marshal.c
6059
6060 2005-01-12  Joe Shaw  <joeshaw@novell.com>
6061
6062         * NEWS: Update for 0.23.
6063
6064         * configure.in: Release 0.23.
6065
6066 2005-01-12  Joe Shaw  <joeshaw@novell.com>
6067
6068         * mono/Makefile.am, mono/example/Makefile.am: Always build the 
6069         dbus DLL with --debug.  Clean up after the .mdb files this leaves
6070         behind.
6071
6072         * mono/doc/Makefile.am: Need to uninstall the docs on "make
6073         uninstall"
6074
6075         * mono/Arguments.cs (GetDBusTypeConstructor): If the type
6076         is an enum, get the enum's underlying type.  Another mono
6077         1.1.3 fix.
6078
6079 2005-01-11  Joe Shaw  <joeshaw@novell.com>
6080
6081         Patch from Sjoerd Simons <sjoerd@luon.net>
6082
6083         * mono/Makefile.am, mono/example/Makefile.am: Don't redefine
6084         DESTDIR.  It breaks stuff.
6085
6086 2005-01-11  Joe Shaw  <joeshaw@novell.com>
6087
6088         Patch from Tambet Ingo <tambet@ximian.com>
6089
6090         * mono/DBusType/Array.cs (Get): Get the underlying element type by
6091         calling type.GetElementType().  The code previously depended on
6092         broken Mono behavior, which was fixed in Mono 1.1.3.
6093
6094         * mono/DBusType/Dict.cs (constructor): Fix the parameters for
6095         Activator.CreateInstance() so that the class's constructor is
6096         called with the right parameters.
6097
6098 2005-01-11  Joe Shaw  <joeshaw@novell.com>
6099
6100         Patch from Timo Teräs <ext-timo.teras@nokia.com>
6101
6102         * dbus/dbus-connection.c
6103         (_dbus_connection_queue_received_message_link): Call
6104         _dbus_connection_remove_timeout() instead of the _locked()
6105         variant, since it's always called from
6106         _dbus_connection_handle_watch(), which handles the locking.
6107         Removed the _locked() variant since it's no longer used.
6108
6109 2005-01-03  Havoc Pennington  <hp@redhat.com>
6110
6111         * dbus/dbus-internals.h: I'm an idiot, _dbus_assert certainly can
6112         return
6113         
6114 2004-12-26  Havoc Pennington  <hp@redhat.com>
6115
6116         * dbus/dbus-internals.h: add _DBUS_GNUC_NORETURN to _dbus_assert
6117
6118 2005-01-03  Havoc Pennington  <hp@redhat.com>
6119
6120         * dbus/dbus-sysdeps.c (_dbus_sysdeps_test): fix using == on
6121         floating point
6122
6123         * dbus/dbus-string.c (_dbus_string_insert_alignment): new function
6124
6125 2005-01-02  Havoc Pennington  <hp@redhat.com>
6126
6127         * dbus/dbus-internals.h (_DBUS_ALIGN_OFFSET): new macro
6128
6129 2005-01-01  Havoc Pennington  <hp@redhat.com>
6130
6131         * configure.in: add -Wfloat-equal
6132
6133 2005-01-01  Havoc Pennington  <hp@redhat.com>
6134
6135         * dbus/dbus-sysdeps.h: add _DBUS_DOUBLES_BITWISE_EQUAL macro, 
6136         for a variety of reasons '==' doesn't do this.
6137
6138 2004-12-31  Havoc Pennington  <hp@redhat.com>
6139
6140         * dbus/dbus-string.c (_dbus_string_equal_substrings): new function
6141         I keep wishing I had
6142
6143 2004-12-30  John (J5) Palmieri  <johnp@redhat.com>
6144
6145         * python/dbus.py: s/ACTIVATION_REPLY_ACTIVE/ACTIVATION_REPLY_ACTIVATED
6146
6147 2004-12-30  John (J5) Palmieri  <johnp@redhat.com>
6148
6149         * python/dbus_bindings.pyx.in: Change DBUS_ACTIVATION_REPLY_ACTIVATED
6150         and DBUS_ACTIVATION_REPLY_ALREADY_ACTIVE to match the values in
6151         dbus-protocol.h.  Because they are defines and not enums they are not
6152         autogenerated.
6153
6154 2004-12-26  John (J5) Palmieri  <johnp@redhat.com>
6155
6156         * python/dbus_bindings.pyx.in (bus_activate_service): Bind
6157         dbus_bus_activate_service
6158
6159         * python/dbus.py (Bus.activate_service): activate a service on the
6160         bus.
6161
6162 2004-12-24  Havoc Pennington  <hp@redhat.com>
6163
6164         * test/decode-gcov.c: change to use .gcno and .gcda files, but the
6165         file format has also changed and I haven't adapted to that yet
6166         
6167         * Makefile.am: load .gcno files from latest gcc
6168
6169 2004-12-23  John (J5) Palmieri  <johnp@redhat.com>
6170         * Patch from Rob Taylor <robtaylor@fastmail.fm>
6171
6172         * python/dbus_bindings.pyx.in (bus_get_unix_user): New
6173         lowlevel binding
6174
6175         * python/dbus.py (get_unix_user): Added binding to 
6176         call dbus_bindings.bus_get_unix_user
6177
6178         * python/extract.py: Modified the proto_pat regex to
6179         handle unsigned long
6180
6181 2004-12-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6182
6183         * dbus/make-dbus-glib-error-enum.sh: omit the function keyword for
6184         better POSIX compliance.
6185
6186 2004-12-19  Havoc Pennington  <hp@redhat.com>
6187
6188         * dbus/dbus-string.c (_dbus_string_insert_4_aligned) 
6189         (_dbus_string_insert_8_aligned): new functions
6190
6191         * dbus/dbus-string.c (_dbus_string_alloc_space): new function
6192
6193 2004-12-18  Havoc Pennington  <hp@redhat.com>
6194
6195         * dbus/dbus-string.c (_dbus_string_validate_ascii): use ISASCII
6196         macro
6197
6198         * dbus/dbus-message.c: fix a comment, and add a still-unused
6199         not-implemented function
6200
6201         * dbus/dbus-marshal.h: fix comment
6202
6203         * dbus/dbus-internals.h (_DBUS_ISASCII): new macro
6204
6205 2004-12-17  Joe Shaw  <joeshaw@novell.com>
6206
6207         * mono/DBusType/Byte.cs, mono/DBusType/Int32.cs,
6208         mono/DBusType/Int64.cs, mono/DBusType/UInt32.cs,
6209         mono/DBusType/UInt64.cs: Use Enum.GetUnderlyingType() instead of
6210         Type.UnderlyingSystemType to get the actual system type
6211         underneath.  This code previously depended on the broken Mono
6212         behavior, which was fixed in 1.1.3.
6213
6214 2004-11-27  Havoc Pennington  <hp@redhat.com>
6215
6216         * dbus/dbus-string.h (_dbus_string_get_byte): inline when asserts
6217         are disabled
6218         (_dbus_string_get_const_data): inline when asserts are disabled
6219
6220         * dbus/dbus-message.c: record the _dbus_current_generation of
6221         creation so we can complain if dbus_shutdown() is used improperly.
6222         Do this only if checks are enabled.
6223
6224         * dbus/dbus-connection.c: ditto
6225         
6226 2004-11-26  Havoc Pennington  <hp@redhat.com>
6227
6228         * test/glib/test-profile.c: add with_bus mode to profile echoes
6229         that go through the bus.
6230
6231         * test/glib/run-test.sh: add ability to run test-profile
6232
6233         * bus/dbus-daemon-1.1.in: fix to say that SIGHUP causes partial
6234         config file reload.
6235
6236 2004-11-26  Havoc Pennington  <hp@redhat.com>
6237
6238         * test/glib/test-profile.c: clean up how the fake_malloc_overhead
6239         thing was implemented
6240
6241 2004-11-26  Havoc Pennington  <hp@redhat.com>
6242
6243         * test/glib/test-profile.c: tweak a bit, add support for some
6244         made-up minimal malloc overhead with plain sockets, since in 
6245         real life some sort of buffers are unavoidable thus we could 
6246         count them in the theoretical best case
6247
6248 2004-11-26  Havoc Pennington  <hp@redhat.com>
6249
6250         * dbus/dbus-message.c (dbus_message_cache_or_finalize): fix bug
6251         where I was trying to cache one too many messages
6252
6253 2004-11-26  Havoc Pennington  <hp@redhat.com>
6254
6255         * dbus/dbus-message.c: reimplement message cache as an array which 
6256         makes the cache about twice as fast and saves maybe 1.5% overall
6257
6258 2004-11-26  Havoc Pennington  <hp@redhat.com>
6259
6260         * dbus/dbus-threads.c (init_global_locks): forgot to put the
6261         message cache lock here
6262
6263 2004-11-26  Havoc Pennington  <hp@redhat.com>
6264
6265         * dbus/dbus-message.c (struct DBusMessage): put the locked bit and
6266         the "char byte_order" next to each other to save 4 bytes
6267         (dbus_message_new_empty_header): reduce preallocation, since the
6268         message cache should achieve a similar effect
6269         (dbus_message_cache_or_finalize, dbus_message_get_cached): add a
6270         message cache that keeps a few DBusMessage around in a pool,
6271         another 8% speedup or so.
6272
6273         * dbus/dbus-dataslot.c (_dbus_data_slot_list_clear): new function
6274
6275 2004-11-25  Havoc Pennington  <hp@redhat.com>
6276
6277         * dbus/dbus-transport-unix.c (unix_do_iteration): if we're going
6278         to write, without reading or blocking, try it before the poll()
6279         and skip the poll() if nothing remains to write. This is about a
6280         3% speedup in the echo client/server
6281
6282 2004-11-25  Havoc Pennington  <hp@redhat.com>
6283
6284         The primary change here is to always write() once before adding
6285         the write watch, which gives us about a 10% performance increase.
6286         
6287         * dbus/dbus-transport-unix.c: a number of modifications to cope
6288         with removing messages_pending
6289         (check_write_watch): properly handle
6290         DBUS_AUTH_STATE_WAITING_FOR_MEMORY; adapt to removal of
6291         messages_pending stuff
6292         (check_read_watch): properly handle WAITING_FOR_MEMORY and
6293         AUTHENTICATED cases
6294         (unix_handle_watch): after writing, see if the write watch can be
6295         removed
6296         (unix_do_iteration): assert that write_watch/read_watch are
6297         non-NULL rather than testing that they aren't, since they 
6298         aren't allowed to be NULL. check_write_watch() at the end so 
6299         we add the watch if we did not finish writing (e.g. got EAGAIN)
6300
6301         * dbus/dbus-transport-protected.h: remove messages_pending call,
6302         since it resulted in too much inefficient watch adding/removing; 
6303         instead we now require that the transport user does an iteration 
6304         after queueing outgoing messages, and after trying the first
6305         write() we add a write watch if we got EAGAIN or exceeded our 
6306         max bytes to write per iteration setting
6307
6308         * dbus/dbus-string.c (_dbus_string_validate_signature): add this
6309         function
6310
6311         * dbus/dbus-server-unix.c (unix_finalize): the socket name was
6312         freed and then accessed, valgrind flagged this bug, fix it
6313
6314         * dbus/dbus-message.c: fix several bugs where HEADER_FIELD_LAST was taken
6315         as the last valid field plus 1, where really it is equal to the
6316         last valid field. Corrects some message corruption issues.
6317
6318         * dbus/dbus-mainloop.c: verbosity changes
6319
6320         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): handle OOM
6321         instead of aborting in one of the test codepaths
6322
6323         * dbus/dbus-internals.c (_dbus_verbose_real): fix a bug that
6324         caused not printing the pid ever again if a verbose was missing
6325         the newline at the end
6326         (_dbus_header_field_to_string): add HEADER_FIELD_SIGNATURE
6327
6328         * dbus/dbus-connection.c: verbosity changes; 
6329         (dbus_connection_has_messages_to_send): new function
6330         (_dbus_connection_message_sent): no longer call transport->messages_pending
6331         (_dbus_connection_send_preallocated_unlocked): do one iteration to
6332         try to write() immediately, so we can avoid the write watch. This
6333         is the core purpose of this patchset
6334         (_dbus_connection_get_dispatch_status_unlocked): if disconnected,
6335         dump the outgoing message queue, so nobody will get confused
6336         trying to send them or thinking stuff is pending to be sent
6337
6338         * bus/test.c: verbosity changes
6339
6340         * bus/driver.c: verbosity/assertion changes
6341
6342         * bus/dispatch.c: a bunch of little tweaks to get it working again
6343         because this patchset changes when/where you need to block.
6344
6345 2004-11-23  Havoc Pennington  <hp@redhat.com>
6346
6347         * test/glib/test-profile.c: modify to accept a plain_sockets
6348         argument in which case it will bench plain sockets instead of
6349         libdbus, for comparison purposes.
6350
6351 2004-11-22  Havoc Pennington  <hp@redhat.com>
6352
6353         * test/glib/test-profile.c (N_CLIENT_THREADS): run multiple
6354         threads for more time, so sysprof can get a grip on it.
6355
6356         * dbus/dbus-string.c (_dbus_string_validate_utf8): remove
6357         pointless variable
6358
6359 2004-11-13  Havoc Pennington  <hp@redhat.com>
6360
6361         * test/glib/test-profile.c: fix this thing up a bit
6362
6363         * dbus/dbus-message.c (dbus_message_new_empty_header): increase
6364         preallocation sizes by a fair bit; not sure if this will be an
6365         overall performance win or not, but it does reduce reallocs.
6366
6367         * dbus/dbus-string.c (set_length, reallocate_for_length): ignore
6368         the test hack that forced constant realloc if asserts are
6369         disabled, so we can profile sanely. Sprinkle in some
6370         _DBUS_UNLIKELY() which are probably pointless, but before I
6371         noticed the real performance problem I put them in.
6372         (_dbus_string_validate_utf8): micro-optimize this thing a little
6373         bit, though callgrind says it didn't help; then special-case
6374         ascii, which did help a lot; then be sure we detect nul bytes as
6375         invalid, which is a bugfix.
6376         (align_length_then_lengthen): add some more _DBUS_UNLIKELY
6377         superstition; use memset to nul the padding instead of a manual
6378         loop.
6379         (_dbus_string_get_length): inline this as a
6380         macro; it showed up in the profile because it's used for loop
6381         tests and so forth
6382
6383 2004-11-10  Colin Walters  <walters@verbum.org>
6384
6385         * dbus/dbus-spawn.c (check_babysit_events): Handle EINTR,
6386         for extra paranoia.
6387
6388 2004-11-09  Colin Walters  <walters@verbum.org>
6389
6390         * dbus/dbus-string.c (_dbus_string_get_length): New
6391         function, writes DBusString to C buffer.
6392
6393         * dbus/dbus-string.h: Prototype it.
6394
6395         * dbus/dbus-message.c (dbus_message_type_to_string): New
6396         function, converts message type into C string.
6397
6398         * dbus/dbus-message.h: Prototype it.
6399
6400         * bus/selinux.c (bus_selinux_check): Take source pid,
6401         target pid, and audit data.  Pass audit data to
6402         avc_has_perm.
6403         (log_audit_callback): New function, appends extra
6404         audit information.
6405         (bus_selinux_allows_acquire_service): Also take
6406         service name, add it to audit data.
6407         (bus_selinux_allows_send): Also take message
6408         type, interface, method member, error name,
6409         and destination, and add them to audit data.
6410         (log_cb): Initialize func_audit.
6411         
6412         * bus/selinux.h (bus_selinux_allows_acquire_service)
6413         (bus_selinux_allows_send): Update prototypes 
6414
6415         * bus/services.c (bus_registry_acquire_service): Pass
6416         service name to bus_selinux_allows_acquire_service.
6417
6418         * bus/bus.c (bus_context_check_security_policy): Pass
6419         additional audit data.  Move assignment of dest
6420         to its own line.
6421
6422 2004-11-07  Colin Walters  <walters@verbum.org>
6423
6424         * dbus/dbus-transport-unix.c (do_authentication): Always
6425         initialize auth_completed.
6426         
6427 2004-11-07  Colin Walters  <walters@verbum.org>
6428
6429         * bus/bus.c (load_config): Break into three
6430         separate functions: process_config_first_time_only,
6431         process_config_every_time, and process_config_postinit.
6432         (process_config_every_time): Move call of
6433         bus_registry_set_service_context_table into
6434         process_config_postinit.
6435         (process_config_postinit): New function, does
6436         any processing that needs to happen late
6437         in initialization (and also on reload).
6438         (bus_context_new): Instead of calling load_config,
6439         open config parser here and call process_config_first_time_only
6440         and process_config_every_time directly.  Later, after
6441         we have forked but before changing UID,
6442         invoke bus_selinux_full_init, and then call
6443         process_config_postinit.
6444         (bus_context_reload_config): As in bus_context_new,
6445         load parse file inside here, and call process_config_every_time
6446         and process_config_postinit.
6447
6448         * bus/services.h, bus/services.c
6449         (bus_registry_set_service_context_table): Rename
6450         from bus_registry_set_sid_table.  Take string hash from config
6451         parser, and convert them here into SIDs.
6452
6453         * bus/config-parser.c (struct BusConfigParser): Have
6454         config parser only store a mapping of service->context
6455         string.
6456         (merge_service_context_hash): New function.
6457         (merge_included): Merge context string hashes instead
6458         of using bus_selinux_id_table_union.
6459         (bus_config_parser_new): Don't use bus_selinux_id_table_new;
6460         simply create a new string hash.
6461         (bus_config_parser_unref): Unref it.
6462         (start_selinux_child): Simply insert strings into hash,
6463         don't call bus_selinux_id_table_copy_over.
6464
6465         * bus/selinux.h, bus/selinux.c (bus_selinux_id_table_union)
6466         (bus_selinux_id_table_copy_over): Delete.
6467
6468 2004-11-03  Colin Walters  <walters@verbum.org>
6469
6470         * bus/selinux.c (bus_selinux_pre_init): Kill some unused
6471         variables.
6472         
6473 2004-11-03  Colin Walters  <walters@verbum.org>
6474
6475         * bus/test-main.c (test_pre_hook): Fix test logic,
6476         thanks Joerg Barfurth <Joerg.Barfurth@Sun.COM>.
6477
6478 2004-11-02  Colin Walters  <walters@redhat.com>
6479
6480         * bus/selinux.c (bus_selinux_init): Split into two functions,
6481         bus_selinux_pre_init and bus_selinux_post_init.
6482         (bus_selinux_pre_init): Just determine whether SELinux is
6483         enabled.
6484         (bus_selinux_post_init): Do everything else.
6485
6486         * bus/main.c (main): Call bus_selinux_pre_init before parsing
6487         config file, and bus_selinux_post_init after.  This ensures that
6488         we don't lose the policyreload notification thread that
6489         bus_selinux_init created before forking previously.
6490         
6491         * bus/test-main.c (test_pre_hook): Update for split.
6492
6493 2004-10-31  Owen Fraser-Green  <owen@discobabe.net>
6494
6495         Patch from Johan Fischer <linux@fischaz.com>
6496         
6497         * mono/doc/Makefile.am (install-data-local): Added directory
6498         install for DESTDIR
6499
6500 2004-10-29  Colin Walters  <walters@redhat.com>
6501
6502         * dbus/dbus-sysdeps.h (_dbus_become_daemon): Also take
6503         parameter for fd to write pid to.       
6504
6505         * dbus/dbus-sysdeps.c (_dbus_become_daemon): Implement it.
6506         
6507         * bus/bus.c (bus_context_new): Pass print_pid_fd
6508         to _dbus_become_daemon (bug #1720)
6509
6510 2004-10-29  Colin Walters  <walters@redhat.com>
6511
6512         Patch from Ed Catmur <ed@catmur.co.uk>
6513
6514         * mono/doc/Makefile.am (install-data-local): Handle
6515         DESTDIR.
6516
6517 2004-10-29  Colin Walters  <walters@redhat.com>
6518
6519         * bus/.cvsignore, qt/.cvsignore: Update.
6520
6521 2004-10-29  Colin Walters  <walters@redhat.com>
6522
6523         Patch from Kristof Vansant <de_lupus@pandora.be>
6524
6525         * configure.in: Detect Slackware.
6526         * bus/Makefile.am (SCRIPT_IN_FILES): Add rc.messagebus.in.
6527         * bus/rc.messagebus.in: New file.
6528
6529 2004-10-29  Colin Walters  <walters@redhat.com>
6530
6531         * tools/dbus-monitor.c (filter_func): Return
6532         DBUS_HANDLER_RESULT_HANDLED in filter function
6533         for now.  See:
6534         http://freedesktop.org/pipermail/dbus/2004-August/001433.html
6535
6536 2004-10-29  Colin Walters  <walters@redhat.com>
6537
6538         Patch from Matthew Rickard <mjricka@epoch.ncsc.mil>
6539
6540         * bus/services.c (bus_registry_acquire_service): 
6541         Correctly retrieve service name from DBusString
6542         for printing.
6543
6544 2004-10-29  Colin Walters  <walters@redhat.com>
6545
6546         * dbus/dbus-glib.h: Update documentation to not
6547         refer to internal APIs.
6548
6549 2004-10-27  Joe Shaw  <joeshaw@novell.com>
6550
6551         * mono/Arguments.cs (GetDBusTypeConstructor):
6552         type.UnderlyingSystemType will return "System.Byte" if you do it
6553         on "byte[]", which is not what we want.  So check the type.IsArray
6554         property and use System.Array instead.
6555
6556 2004-10-25  John (J5) Palmieri  <johnp@redhat.com>
6557
6558         * dbus/dbus-sysdeps.c (fill_user_info): On errors do not free
6559         the DBusUserInfo structure since this is passed into the function.
6560         This would cause a double free when the function that allocated
6561         the structure would try to free it when an error occured.
6562
6563         * (bus/session.conf.in, bus/Makefile.am, dbus/configure.in):
6564         use /usr/share/dbus-1/services instead of /usr/lib/dbus-1.0/services
6565         for service activation to avoid 32bit/64bit parallel install issues
6566
6567 2004-10-21  Colin Walters  <walters@verbum.org>
6568
6569         * AUTHORS: Fix my email address, the @gnu.org one
6570         has been bouncing for some time.  Also add J5.
6571         
6572 2004-10-21  Colin Walters  <walters@verbum.org>
6573
6574         * dbus/dbus-transport-unix.c (do_authentication): Return
6575         authentication status to callers.
6576         (unix_handle_watch): If we completed authentication this round,
6577         don't do another read.  Instead wait until the next iteration,
6578         after we've read any pending data in the auth buffer.
6579         (unix_do_iteration): Ditto.
6580         (unix_handle_watch): Updated for new do_authentication prototype.
6581
6582 2004-10-18  Colin Walters  <walters@verbum.org>
6583
6584         * bus/selinux.c (bus_selinux_enabled): Handle
6585         --disable-selinux case.
6586         
6587 2004-10-18  Colin Walters  <walters@verbum.org>
6588
6589         * bus/selinux.h: Add bus_selinux_enabled.
6590         
6591         * bus/selinux.c (bus_selinux_enabled): Implement it.
6592         
6593         * bus/config-parser.c (struct include): Add
6594         if_selinux_enabled member.
6595         (start_busconfig_child): Parse if_selinux_enabled
6596         attribute for include.
6597         (bus_config_parser_content): Handle it.
6598
6599         * bus/session.conf.in, bus/system.conf.in: Add
6600         inclusion of context mapping to default config files;
6601         conditional on SELinux being enabled.
6602         
6603         * doc/busconfig.dtd: Add to if_selinux_enabled to default DTD.
6604         
6605         * test/data/invalid-config-files/badselinux-1.conf, 
6606         test/data/invalid-config-files/badselinux-2.conf:
6607         Test files for bad syntax.
6608         
6609 2004-10-17  Colin Walters  <walters@verbum.org>
6610
6611         * dbus/dbus-memory.c (_dbus_initialize_malloc_debug, check_guards)
6612         (dbus_malloc, dbus_malloc0, dbus_realloc): Fix up printf
6613         format specifier mismatches.
6614
6615 2004-10-07  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6616
6617         * dbus/dbus-sysdeps.c (_dbus_file_get_contents): fix an incorrect
6618         format string.
6619
6620         * glib/dbus-dbus-gmain.c (dbus_g_bus_get): do not mangle NULL
6621         pointer (bug #1540, Leonardo Boiko).
6622
6623 2004-09-28  Jon Trowbridge  <trow@ximian.com>
6624
6625         * mono/BusDriver.cs: Changed BusDriver struct to remove
6626         the ServiceCreated and ServiceDeleted events and replace them
6627         with the new ServiceOwnerChanged event.
6628
6629         * mono/example/BusListener.cs: Added a new example program,
6630         which listens for and reports any ServiceOwnerChanged events
6631         on the bus driver.
6632
6633         * mono/example/Makefile.am (DESTDIR): Build changes for the
6634         new BusListener.cs example.
6635
6636 2004-09-27  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6637
6638         * bus/signals.c (bus_match_rule_parse): validate the components of
6639         match rules (bug #1439).
6640
6641         * dbus/dbus-bus.c (dbus_bus_add_match): add a missing OOM test.
6642
6643 2004-09-24  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6644
6645         * doc/dbus-specification.xml: document ServiceOwnerChanged
6646         signal.
6647         
6648         * bus/driver.c, bus/driver.h, bus/services.c: Use
6649         ServiceOwnerChanged signal instead of ServiceCreated and
6650         ServiceDeleted.
6651         
6652         * bus/dispatch.c: update testcase for the new signal.
6653
6654 2004-09-20  Jon Trowbridge  <trow@ximian.com>
6655
6656         Patch from Nat Friedman <nat@novell.com>
6657
6658         * mono/Makefile.am: A number of small build fixes to allow "make
6659         distcheck" to succeed.
6660
6661         * mono/example/Makefile.am: "make distcheck" fixes.
6662
6663         * mono/AssemblyInfo.cs.in: When signing the assembly, look for the
6664         key in @srcdir@.
6665
6666         * test/Makefile.am: "make distcheck" fixes.
6667
6668 2004-09-17  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6669
6670         * dbus/dbus-sysdeps.c (_dbus_user_at_console): fix memleak in OOM.
6671
6672         * doc/busconfig.dtd: update the DTD for the at_console attribute.
6673
6674         * bus/driver.c (bus_driver_handle_hello): correctly handle Hello
6675         messages after the first one (bug #1389).
6676         
6677         * bus/dispatch.c (check_double_hello_message): add a test case for
6678         the double hello message bug.
6679         (check_existent_service_activation): fix check of spawning error.
6680         
6681 2004-09-16  David Zeuthen  <david@fubar.dk>
6682
6683         * python/dbus_bindings.pyx.in: Add support for int64 and uint64
6684
6685 2004-09-12  David Zeuthen  <david@fubar.dk>
6686
6687         Patch from Kay Sievers <kay.sievers@vrfy.org>
6688
6689         * bus/bus.c (bus_context_new):
6690         * bus/bus.h:
6691         * bus/main.c (usage)
6692         (main):
6693         Add commandline option --nofork to override configuration file
6694         setting.
6695
6696 2004-09-09  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6697
6698         * dbus/dbus-*.h: remove the ; after DBUS_(BEGIN|END)_DECLS. Some C
6699         compilers don't like it (bug #974).
6700
6701 2004-09-04  Harald Fernengel  <harry@kdevelop.org>
6702
6703         * qt/connection.*: Applied patch by Jérôme Lodewyck
6704         <lodewyck@clipper.ens.fr> to integrate an existing
6705         connection into the Qt eventloop
6706
6707 2004-08-30  Jon Trowbridge  <trow@ximian.com>
6708
6709         * mono/BusDriver.cs: Added.  This is a class for interacting with
6710         the org.freedesktop.DBus service.
6711
6712         * mono/Message.cs: Added a mechanism to expose the message that is
6713         currently being dispatched via the static Message.Current
6714         property.  Added Message.Sender and Message.Destination
6715         properties.
6716
6717         * mono/Handler.cs: Expose the dispatched message via
6718         Message.Current when handling method calls.
6719
6720         * mono/Service.cs: Expose the dispatched message via
6721         Message.Current when handling signal emissions.
6722         
6723         * mono/Connection.cs: Bind dbus_bus_get_base_service via the
6724         Connection.BaseService property.
6725
6726 2004-08-28  Havoc Pennington  <hp@redhat.com>
6727
6728         * dbus/dbus-userdb.c (_dbus_is_console_user): remove unused variable
6729
6730         More fixes from Steve Grubb
6731         
6732         * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): fix fd leak
6733         (_dbus_listen_tcp_socket): fix fd leak
6734
6735         * dbus/dbus-spawn.c (read_pid, read_ints): move the "again:" for
6736         EINTR to a bit lower in the code
6737
6738 2004-08-26  Jon Trowbridge  <trow@ximian.com>
6739
6740         * bus/driver.c (bus_driver_handle_service_exists): Respond with
6741         TRUE if we are inquiring about the existence of the built-in
6742         org.freedesktop.DBus service.
6743
6744 2004-08-25  John Palmieri  <johnp@redhat.com>
6745         * bus/config-parser.c:
6746         (struct PolicyType): Add POLICY_CONSOLE
6747         (struct Element.d.policy): s/gid_or_uid/gid_uid_or_at_console
6748         (start_busconfig_child): Sets up console element when
6749         <policy at_console=""> is encountered in a policy file
6750         (append_rule_from_element): Convert console elements to console
6751         rules.
6752
6753         * bus/policy.c: 
6754         (bus_policy_create_client_policy): Add console rules to the client
6755         policy based on if the client is at the console
6756         (bus_policy_append_console_rule): New function for adding a
6757         console rule to a policy
6758         (bus_policy_merge): Handle console rule merging
6759
6760         * dbus/dbus-sysdeps.h: Added the DBUS_CONSOLE_DIR constant
6761         where we check for console user files
6762         
6763         * dbus/dbus-sysdeps.c:
6764         (_dbus_file_exists): New function which checks if the given
6765         file exists
6766         (_dbus_user_at_console): New function which does the system
6767         specific process of checking if the user is at the console
6768
6769         * dbus/dbus-userdb.c:
6770         (_dbus_is_console_user): New function converts a UID to user name
6771         and then calls the system specific _dbus_user_at_console to 
6772         see if the user is at the console and therefor a console user
6773
6774 2004-08-25  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6775
6776         * bus/config-parser.c (set_limit):
6777         * bus/dbus-daemon-1.1.in:
6778         * test/data/valid-config-files/many-rules.conf: set the
6779         max_match_rules_per_connection limt from the config file. 
6780
6781         * doc/busconfig.dtd: update the DTD.
6782
6783         * bus/driver.c: remove some unused variables.
6784
6785 2004-08-24  Mikael Hallendal  <micke@imendio.com>
6786
6787         * dbus/dbus-glib-lowlevel.h: Removed dbus_bus_get_with_g_main since 
6788         it's been replaced by dbus_g_bus_get
6789
6790 2004-08-23  Colin Walters  <walters@redhat.com>
6791
6792         Updated SELinux support from Matthew Rickard <mjricka@epoch.ncsc.mil>
6793
6794         * bus/selinux.h: Prototype bus_selinux_get_policy_root.
6795
6796         * bus/selinux.c: Create a thread for policy reload notification.
6797         (bus_selinux_get_policy_root): Implement.
6798
6799         * bus/config-parser.c (start_busconfig_child)
6800         (bus_config_parser_content): Support SELinux-root relative
6801         inclusion.
6802
6803         * configure.in <HAVE_SELINUX>: Add -lpthread.
6804         
6805         * bus/test-main.c (test_pre_hook, test_post_hook): New.
6806         (test_post_hook): Move memory checking into here.
6807         (test_pre_hook, test_post_hook): Move SELinux checks in
6808         here, but conditional on a DBUS_TEST_SELINUX environment
6809         variable.  Unfortunately we can't run the SELinux checks
6810         as a normal user, since they won't have any permissions
6811         for /selinux.  So this will have to be tested manually
6812         for now, until we have virtualization for most of
6813         libselinux.
6814         
6815 2004-08-23  Havoc Pennington  <hp@redhat.com>
6816
6817         * dbus/dbus-sysdeps.c (_dbus_change_identity): add setgroups() to
6818         drop supplementary groups, suggested by Steve Grubb
6819
6820 2004-08-20  Colin Walters  <walters@redhat.com>
6821
6822         * bus/config-parser.c (start_busconfig_child): Remove some unused
6823         variables.
6824         
6825         * bus/selinux.c (bus_selinux_id_table_insert): Avoid compiler
6826         warning.
6827
6828 2004-08-17  Joe Shaw  <joeshaw@novell.com>
6829
6830         * configure.in: If --enable-mono is passed in, if we can't find
6831         mono error out.
6832
6833         * mono/Makefile.am: Use /gacutil to install assemblies into the
6834         GAC and not /root.
6835
6836 2004-08-12  Havoc Pennington  <hp@redhat.com>
6837
6838         * NEWS: update for 0.22
6839
6840         * configure.in: release 0.22
6841
6842 2004-08-11  Colin Walters  <walters@redhat.com>
6843
6844         * tools/dbus-send.c (main, usage): Add --reply-timeout
6845         argument.
6846
6847 2004-08-10  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6848
6849         * bus/bus.c (process_config_first_time_only): get rid of an unused
6850         DBusError that was causing a memoy leak (bug #989).
6851
6852         * dbus/dbus-keyring.c, dbus/dbus-message.c:
6853         fix compilation on Solaris/Forte C (bug #974)
6854
6855         * bus/main.c (main): plug two minuscule memleaks.
6856
6857 2004-08-10  Havoc Pennington  <hp@redhat.com>
6858
6859         * doc/dbus-tutorial.xml: add some more info on GLib bindings
6860
6861 2004-08-09  Havoc Pennington  <hp@redhat.com>
6862
6863         * COPYING: switch to Academic Free License version 2.1 instead of
6864         2.0, to resolve complaints about patent termination clause.
6865
6866 2004-07-31  John (J5) Palmieri  <johnp@redhat.com>
6867
6868         * README: added documentation for the --enable-python 
6869         configure switch.
6870
6871 2004-07-31  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6872
6873         * bus/config-parser.c (bus_config_parser_new): fix an invalid
6874         _unref in the SELinux support.
6875
6876         * doc/busconfig.dtd: update DTD for SELinux support.
6877
6878         * bus/config-loader-libxml.c: fix error handler and parser
6879         initialisation/cleanup. OOM test now works with libxml2 HEAD.
6880
6881         * configure.in: remove the warning about libxml2.
6882
6883         * dbus/dbus-bus.c: silence doxygen warning.
6884
6885 2004-07-31  Colin Walters  <walters@redhat.com>
6886
6887         * configure.in: Move #error in SELinux check to its own line.
6888
6889 2004-07-31  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6890
6891         * dbus/dbus-internals.h (_DBUS_SET_OOM):
6892         * bus/utils.h (BUS_SET_OOM): use dbus_error_set_const instead of
6893         dbus_error_set.
6894
6895         * bus/dispatch.c (check_send_exit_to_service): fix the test case,
6896         broken by the change in the _SET_OOM macros.
6897
6898 2004-07-31  Colin Walters  <walters@redhat.com>
6899
6900         * bus/selinux.c <HAVE_SELINUX>: Include utils.h to get
6901         BUS_SET_OOM.
6902
6903 2004-07-31  Colin Walters  <walters@redhat.com>
6904
6905         * configure.in: Use AC_TRY_COMPILE instead of AC_EGREP_HEADER
6906         to correctly detect DBUS__ACQUIRE_SVC.  Also add an
6907         AC_MSG_CHECKING.
6908
6909 2004-07-24  Havoc Pennington  <hp@redhat.com>
6910
6911         SELinux support from Matthew Rickard <mjricka@epoch.ncsc.mil>
6912
6913         * bus/selinux.c, bus/selinux.h: new file encapsulating selinux
6914         functionality
6915
6916         * configure.in: add --enable-selinux
6917         
6918         * bus/policy.c (bus_policy_merge): add FIXME to a comment
6919
6920         * bus/main.c (main): initialize and shut down selinux
6921
6922         * bus/connection.c: store SELinux ID on each connection, to avoid 
6923         repeated getting of the string context and converting it into 
6924         an ID
6925
6926         * bus/bus.c (bus_context_get_policy): new accessor, though it
6927         isn't used
6928         (bus_context_check_security_policy): check whether the security
6929         context of sender connection can send to the security context of
6930         recipient connection
6931
6932         * bus/config-parser.c: add parsing for <selinux> and <associate>
6933         
6934         * dbus/dbus-transport.c (_dbus_transport_get_unix_fd): to
6935         implement dbus_connection_get_unix_fd()
6936
6937         * dbus/dbus-connection.c (dbus_connection_get_unix_fd): new
6938         function, used by the selinux stuff
6939         
6940 2004-07-29  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6941
6942         * bus/config-loader-libxml.c: complete the implementation of
6943         libxml backend for config file loader. Doesn't work with full OOM
6944         test yet. 
6945         
6946         * configure.in: change error when selecting libxml into a warning.
6947         
6948         * test/data/invalid-config-files: add two non-well-formed XML
6949         files. 
6950         
6951         * glib/Makefile.am: libdbus_gtool always uses expat, not libxml.
6952         
6953         * dbus/dbus-transport-unix.c (unix_handle_watch): do not
6954         disconnect in case of DBUS_WATCH_HANGUP, several do_reading() may
6955         be necessary to read all the buffer. (bug #894)
6956
6957         * bus/activation.c (bus_activation_activate_service): fix a
6958         potential assertion failure (bug #896). Small optimization in the
6959         case of auto-activation messages.
6960
6961         * dbus/dbus-message.c (verify_test_message, _dbus_message_test):
6962         add test case for byte-through-vararg bug (#901). patch by Kimmo
6963         Hämäläinen. 
6964
6965 2004-07-28  Anders Carlsson  <andersca@gnome.org>
6966
6967         * python/dbus.py:
6968         * python/dbus_bindings.pyx.in:
6969         Add dbus.init_gthreads (), allow emit_signal to pass
6970         arguments to the signal.
6971         
6972 2004-07-24  Havoc Pennington  <hp@redhat.com>
6973
6974         * AUTHORS: add some people, not really comprehensively, let me
6975         know if I missed you
6976
6977 2004-07-24  Havoc Pennington  <hp@redhat.com>
6978
6979         * Makefile.am (DIST_SUBDIRS): add DIST_SUBDIRS, problem solved by
6980         Owen
6981
6982         * test/Makefile.am (DIST_SUBDIRS): here also
6983
6984 2004-07-22  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6985
6986         * dbus/dbus-sysdeps.c (fill_user_info): fix inexistent label name,
6987         breaking build on Solaris, reported by Farhad Saberi on the ML.
6988
6989         * dbus/dbus-message.c (dbus_message_append_args_valist): fix the
6990         va_arg invocation to account for integer promotion in the case of
6991         DBUS_TYPE_BYTE (unsigned char is promoted to int). (bug #901)
6992
6993         * bus/services.c (bus_service_remove_owner): fix bug #902, use
6994         _dbus_list_get_first_link, not _dbus_list_get_first.
6995
6996         * dbus/dbus-bus.c (dbus_bus_service_exists): plug a memory leak.
6997
6998         * dbus/dbus-object-tree.c (free_subtree_recurse): always null
6999         handler functions so that the asserts in _dbus_object_subtree_unref
7000         do not fail.
7001
7002         * dbus/dbus-transport-unix.c (do_reading):
7003         _dbus_transport_queue_messages return value is of type
7004         dbus_bool_t, not DBusDispatchStatus.
7005         
7006 2004-07-19  David Zeuthen  <david@fubar.dk>
7007
7008         * dbus/dbus-protocol.h: Add DBUS_ERROR_UNIX_PROCESS_ID_UNKNOWN
7009
7010         * bus/dispatch.c:
7011         (check_get_connection_unix_user): Debug says GetProperty; but the
7012         method is called GetConnectionUnixUser
7013         (check_get_connection_unix_process_id): New function
7014         (bus_dispatch_test): Actually call check_get_connection_unix_user();
7015         also call check_get_connection_unix_process_id()
7016         
7017         * bus/driver.c:
7018         (bus_driver_handle_get_connection_unix_process_id): New function,
7019         handles GetConnectionUnixProcessID on the org.freedesktop.DBus
7020         interface
7021         
7022         * dbus/dbus-auth.c:
7023         (handle_server_data_external_mech): Set pid from the credentials
7024         obtained from the socket
7025         
7026         * dbus/dbus-connection.c:
7027         (dbus_connection_get_unix_process_id): New function
7028         
7029         * dbus/dbus-connection.h: 
7030         Add prototype for dbus_connection_get_unix_process_id
7031         
7032         * dbus/dbus-transport.c:
7033         (_dbus_transport_get_unix_process_id): New function
7034         
7035         * dbus/dbus-transport.h:
7036         Add prototype for _dbus_transport_get_unix_process_id
7037         
7038 2004-07-19  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7039
7040         * dbus/dbus-message.c: Message counter fix, patch by Christian
7041         Hammond <chipx86@gnupdate.org>
7042
7043 2004-07-18  Seth Nickell  <seth@gnome.org>
7044
7045         * python/dbus.py:
7046         * python/dbus_bindings.pyx.in:
7047         * python/tests/test-client.py:
7048
7049         Add dbus.ByteArray and dbus_bindings.ByteArray
7050         types so that byte streams can be passed back.
7051
7052         Give jdahlin the heaps of credit that are so
7053         rightfully his.
7054         
7055 2004-07-12  Seth Nickell  <seth@gnome.org>
7056
7057         * python/dbus.py:
7058
7059         Add message argument to the default object_method_handler
7060         function.
7061         
7062         * python/dbus_bindings.pyx.in:
7063
7064         Automatically return NIL when passed an empty list
7065         (we can't pass back a list since lists are typed
7066         and we don't have any idea what type the the client
7067         intended the list to be... :-( )
7068         
7069 2004-07-10  Seth Nickell  <seth@gnome.org>
7070
7071         * python/examples/Makefile.am:
7072
7073         Fix distcheck breakage caused by new examples.
7074
7075 2004-07-10  Seth Nickell  <seth@gnome.org>
7076
7077         * python/dbus.py:
7078
7079         Add "message" argument to service-side dbus.Object
7080         methods. This will break existing services written
7081         using the python bindings, but will allow extraction
7082         of all the message information (e.g. who its from).
7083
7084         Add improved "object oriented" signal handling/emission.
7085         
7086         * python/examples/example-service.py:
7087
7088         Nix this example.
7089         
7090         * python/examples/example-signal-emitter.py:
7091         * python/examples/example-signal-recipient.py:
7092
7093         Two new examples that show how to emit and receive
7094         signals using the new APIs.
7095         
7096         * python/examples/example-signals.py:
7097         * python/examples/gconf-proxy-service.py:
7098         * python/examples/gconf-proxy-service2.py:
7099
7100         Add "message" argument to service methods.
7101
7102 2004-06-28  Kay Sievers <kay.sievers@vrfy.org>
7103
7104         * bus/driver.c (bus_driver_handle_get_connection_unix_user)
7105         * dbus/bus.c (dbus_bus_get_unix_user)
7106         * doc/dbus-specification.xml: implement GetConnectionUnixUser
7107         method of org.freedesktop.DBus interface.
7108
7109         * bus/dispatch.c: test case
7110
7111 2004-06-23  John (J5) Palmieri  <johnp@redhat.com>
7112
7113         * python/Makefile.am: switched include directory from glib/ to dbus/
7114         since dbus-glib.h moved
7115  
7116 2004-06-22  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7117
7118         * configure.in: prevent building the gcj stuff and libxml loader
7119         since they are broken.
7120
7121 2004-06-20  Havoc Pennington  <hp@redhat.com>
7122
7123         * dbus/dbus-glib-error-enum.h: autogenerate the GError enum 
7124         codes from the dbus error names
7125         
7126         * glib/dbus-glib.h: move to subdir dbus/ since it's included 
7127         as dbus/dbus-glib.h and that breakage is now visible due to 
7128         including dbus/dbus-glib.h in dbus-glib-lowlevel.h
7129         
7130         * glib/dbus-glib.h: s/gproxy/g_proxy/
7131
7132         * dbus/dbus-shared.h: new header to hold stuff shared with
7133         binding APIs
7134         
7135         * dbus/dbus-protocol.h (DBUS_ERROR_*): move errors here rather
7136         than dbus-errors.h
7137
7138         * glib/dbus-glib.h (dbus_set_g_error): move to
7139         dbus-glib-lowlevel.h
7140
7141         * glib/dbus-glib.h: remove dbus/dbus.h from here; change a bunch
7142         of stuff to enable this
7143
7144         * dbus/dbus-glib-lowlevel.h: put dbus/dbus.h here
7145
7146         * a bunch of other changes with the same basic "separate glib 
7147         bindings from dbus.h" theme
7148         
7149 2004-06-10  Owen Fraser-Green  <owen@discobabe.net>
7150
7151         * dbus-sharp.pc.in: Removed glib-sharp inclusion in Libs.
7152
7153         * python/examples/Makefile.am: Fixed typo in EXTRA_DIST.
7154
7155 2004-06-09  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7156
7157         * bus/driver.c, dbus/dbus-bus.c: use BOOLEAN instead of UINT32 for
7158         the reply value of the ServiceExists message.
7159
7160 2004-06-07  John (J5) Palmieri  <johnp@redhat.com>
7161
7162         * python/dbus_bindings.pyx.in: No longer need to parse path
7163         elements and pass them as arrays of strings.  The C API now
7164         accepts plain path strings.
7165         (_build_parsed_path): removed 
7166
7167 2004-06-07  Havoc Pennington  <hp@redhat.com>
7168
7169         * doc/TODO: remove auto-activation item since it's done; sort
7170         items by importance/milestone
7171
7172 2004-06-07  Havoc Pennington  <hp@redhat.com>
7173
7174         * dbus/dbus-message-builder.c (_dbus_message_data_load): append
7175         random signature when using REQUIRED_FIELDS (this hack won't work
7176         in the long term)
7177
7178         * dbus/dbus-message.c: change the signature to be a header field,
7179         instead of message->signature special-case string. Incremental
7180         step forward. Then we can fix up code to send the signature in the
7181         message, then fix up code to validate said signature, then fix up
7182         code to not put the typecodes inline, etc.
7183         (load_one_message): don't make up the signature after the fact
7184         (decode_header_data): require signature field for the known
7185         message types
7186
7187         * dbus/dbus-marshal.c (_dbus_marshal_string_len): new
7188
7189         * dbus/dbus-protocol.h: add DBUS_HEADER_FIELD_SIGNATURE
7190
7191 2004-06-07  Owen Fraser-Green  <owen@discobabe.net>
7192
7193         * mono/DBusType/ObjectPath.cs: Renamed PathName argument to Path
7194
7195         * mono/Handler.cs: Updated to follow new path argument for
7196         (un-)registering objects.
7197
7198         * mono/example/Makefile.am:
7199         * mono/Makefile.am:
7200         * configure.in: Bumped required version for mono and use new -pkg
7201         syntax for deps
7202
7203 2004-06-05  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7204
7205         * dbus/dbus-connection.h, dbus/dbus-connection.c: have object path
7206         registration functions take the path argument as char* instead of
7207         char**.
7208
7209         * dbus/dbus-marshal.h, dbus/dbus-marshal.c (_dbus_decompose_path):
7210         split off the path decompostion part of
7211         _dbus_demarshal_object_path. Some misc. fixes to silence compiler
7212         warnings. 
7213
7214         * glib/dbus-gobject.c, test/test-service.c: update accordingly.
7215         
7216 2004-06-02  Kristian Høgsberg  <krh@redhat.com>
7217  
7218         * dbus/dbus-auth.c: Rewrite auth protocol handling to use a state
7219         machine approach.  A state is implemented as a function that
7220         handles incoming events as specified for that state.
7221         
7222         * doc/dbus-specification.xml: Update auth protocol state machine
7223         specification to match implementation.  Remove some leftover
7224         base64 examples.
7225
7226 2004-06-02  Kristian Høgsberg  <krh@redhat.com>
7227
7228         * glib/dbus-gproxy.c, glib/dbus-gmain.c, dbus/dbus-string.c,
7229         dbus/dbus-object-tree.c, dbus/dbus-message.c: add comments to
7230         quiet doxygen.
7231
7232         * Doxyfile.in: remove deprecated options.
7233
7234         * dbus/dbus-message-handler.c, dbus/dbus-message-handler.h,
7235         glib/test-thread.h, glib/test-thread-client.c,
7236         glib/test-thread-server.c, glib/test-profile.c,
7237         glib/test-dbus-glib.c: remove these unused files.
7238
7239 2004-06-01  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7240
7241         * dbus/dbus-object-tree.c
7242         (_dbus_object_tree_dispatch_and_unlock): fix dispatch for
7243         non-fallback handlers (bug #684).
7244         (_dbus_object_subtree_new): initialize invoke_as_fallback field.
7245         (find_subtree_recurse): report wether the returned subtree is an
7246         exact match or a "fallback" match higher up in the tree.
7247         (object_tree_test_iteration): update test case.
7248
7249 2004-06-01  Seth Nickell  <seth@gnome.org>
7250
7251         * python/dbus_bindings.pyx.in:
7252         * python/tests/test-client.py:
7253
7254         Round off basic type support. Add dicts (yay!), and 
7255         remaining array types.
7256
7257         Make MessageIter more general so it works for dicts too.
7258
7259         Mark all loop variables as C integers.
7260         
7261 2004-05-31  Havoc Pennington  <hp@redhat.com>
7262
7263         * glib/dbus-gidl.c (method_info_add_arg): keep args sorted with
7264         "in" before "out"
7265
7266         * glib/dbus-gobject.c (dbus_type_to_string): move to dbus-gutils.c
7267
7268         * glib/dbus-glib-tool.c (main): set up to have a --self-test
7269         option that runs the tests, and start filling in some code
7270         including for starters just dumping the interfaces to stdout
7271
7272         * glib/Makefile.am (INCLUDES): define DBUS_LOCALEDIR
7273
7274         * test/data/valid-introspection-files/lots-of-types.xml: test of
7275         an example introspection file
7276
7277         * glib/dbus-gparser.c (parser_check_doctype): doctype should be
7278         "node" (I think...)
7279
7280 2004-05-31  Seth Nickell  <seth@gnome.org>
7281
7282         * python/dbus_bindings.pyx.in:
7283         * python/tests/test-client.py:
7284
7285         Test Suite: 1
7286         Python Bindings: 0
7287
7288         Fix string array memory trashing bug... oops...
7289
7290 2004-05-30  Seth Nickell  <seth@gnome.org>
7291
7292         * python/dbus.py:
7293
7294         Add a nicer-but-less-flexible alternate API for handling 
7295         calls to virtual objects in dbus.ObjectTree.
7296
7297         Screw up the argument order to the dbus.Object constructor
7298         for consistency with dbus.ObjectTree (and to make dbus_methods
7299         optional for future extension)
7300         
7301         * python/examples/Makefile.am:
7302         * python/examples/gconf-proxy-service.py:
7303         * python/examples/gconf-proxy-service2.py:
7304
7305         Alternate implementation of gconf-proxy-service using the
7306         nicer dbus.ObjectTree API.
7307         
7308         * python/examples/example-service.py:
7309         * python/tests/test-server.py
7310
7311         Reverse the argument order to deal with dbus.Object constructor
7312         changes.
7313         
7314 2004-05-30  Seth Nickell  <seth@gnome.org>
7315
7316         * python/examples/example-client.py:
7317         * python/examples/example-service.py:
7318
7319         Take it back. Lists seem to work but they're broken
7320         in the test suite. Make the base examples use
7321         lists (works fine).
7322
7323 2004-05-30  Seth Nickell  <seth@gnome.org>
7324
7325         * python/dbus_bindings.pyx.in:
7326         * python/tests/test-client.py:
7327
7328         Add some more tests and fix errors that crop up.
7329         Unfortunately, currently it seems like marshalling
7330         and unmarshalling of lists is completely broken :-(
7331
7332 2004-05-30  Seth Nickell  <seth@gnome.org>
7333
7334         * python/dbus_bindings.pyx.in:
7335
7336         Add support for ObjectPath type.
7337
7338         * python/dbus.py:
7339
7340         Refactor message handling code to a common function.
7341         
7342         * python/tests/test-client.py:
7343         * python/tests/test-server.py:
7344
7345         Add tests that check to make sure values of all types
7346         can be echoed from a service w/o mangling.
7347         
7348 2004-05-29  Seth Nickell  <seth@gnome.org>
7349
7350         * python/dbus.py:
7351
7352         Add ObjectTree class which allows implementation
7353         of trees of "virtual" objects. Basically the python
7354         wrapper for "register_fallback".
7355         
7356         * python/examples/Makefile.am
7357         * python/examples/gconf-proxy-client.py:
7358         * python/examples/gconf-proxy-service.py:
7359
7360         Implement a simple GConf proxy service that supports
7361         get/set on string and int GConf keys using the ObjectTree.
7362         
7363 2004-05-29  Seth Nickell  <seth@gnome.org>
7364
7365         * python/dbus.py:
7366         * python/examples/example-client.py:
7367         * python/examples/example-service.py:
7368         * python/examples/list-system-services.py:
7369
7370         Add SessionBus, SystemBus and ActivationBus classes
7371         so you don't need to know the special little BUS_TYPE
7372         flag.
7373         
7374 2004-05-29  Havoc Pennington  <hp@redhat.com>
7375
7376         * bus/config-parser.c (process_test_valid_subdir): temporarily
7377         stop testing config parser OOM handling, since expat has issues
7378         http://freedesktop.org/pipermail/dbus/2004-May/001153.html
7379
7380         * bus/dbus-daemon-1.1.in: change requested_reply to
7381         send_requested_reply/receive_requested_reply so we can send the
7382         replies, not just receive them.
7383
7384         * bus/config-parser.c: parse the new
7385         send_requested_reply/receive_requested_reply
7386
7387         * bus/policy.c (bus_client_policy_check_can_send): add
7388         requested_reply argument and use it
7389
7390         * bus/bus.c (bus_context_check_security_policy): pass through
7391         requested_reply status to message send check
7392
7393         * bus/system.conf.in: adapt to requested_reply change
7394         
7395 2004-05-28  Havoc Pennington  <hp@redhat.com>
7396
7397         * test/glib/test-service-glib.c (main): remove unused variable
7398
7399         * glib/dbus-gidl.c (base_info_ref): fix a silly compiler warning
7400
7401         * dbus/dbus-auth.h (enum): remove AUTHENTICATED_WITH_UNUSED_BYTES
7402         from the enum, no longer in use.
7403
7404         * dbus/dbus-sysdeps.h: include config.h so DBUS_VA_COPY actually
7405         works right.
7406
7407         * dbus/dbus-message.c: add various _dbus_return_val_if_fail for
7408         whether error_name passed in is a valid error name.
7409
7410 2004-05-28  John (J5) Palmieri  <johnp@redhat.com>
7411
7412         * dbus/dbus-message.c (dbus_message_get_args): Added support for
7413         OBJECT_PATH and OBJECT_PATH_ARRAY
7414
7415 2004-05-28  Seth Nickell  <seth@gnome.org>
7416
7417         * python/examples/Makefile.am:
7418
7419         Forget to add Makefile.am. Do not pass go.
7420
7421 2004-05-28  Michael Meeks  <michael@ximian.com>
7422
7423         * glib/dbus-gvalue.c (dbus_gvalue_marshal, dbus_gvalue_demarshal): 
7424         fix no int64 case.
7425
7426         * dbus/dbus-string.c (_dbus_string_parse_basic_type): impl.
7427
7428         * dbus/dbus-message.c (_dbus_message_iter_get_basic_type),
7429         (_dbus_message_iter_get_basic_type_array): impl.
7430         drastically simplify ~all relevant _get methods to use these.
7431         (_dbus_message_iter_append_basic_array),
7432         (dbus_message_iter_append_basic): impl
7433         drastically simplify ~all relevant _append methods to use these.
7434
7435         * dbus/dbus-message-builder.c (parse_basic_type) 
7436         (parse_basic_array, lookup_basic_type): impl.
7437         (_dbus_message_data_load): prune scads of duplicate /
7438         cut & paste coding.
7439
7440         * dbus/dbus-marshal.c (_dbus_demarshal_basic_type_array) 
7441         (_dbus_demarshal_basic_type): implement,
7442         (demarshal_and_validate_len/arg): beef up debug.
7443         (_dbus_marshal_basic_type, _dbus_marshal_basic_type_array): impl.
7444
7445 2004-05-27  Seth Nickell  <seth@gnome.org>
7446
7447         * configure.in:
7448         * python/Makefile.am:
7449
7450         Include the example python apps in the tarball.
7451         
7452         * python/examples/list-system-services.py
7453
7454         Add a python new example that fetches the list of services
7455         from the system bus.
7456         
7457 2004-05-27  Seth Nickell  <seth@gnome.org>
7458
7459         * python/dbus.py:
7460         * python/dbus_bindings.pyx.in:
7461
7462         Fix failure to notify that a signal was not handled,
7463         resulted in hung functions.
7464         
7465 2004-05-25  Colin Walters  <walters@redhat.com>
7466
7467         * tools/dbus-monitor.c (main): Monitor all types of messages.
7468
7469 2004-05-23  Owen Fraser-Green  <owen@discobabe.net>
7470
7471         * mono/Handler.cs, mono/Service.cs: Added UnregisterObject method
7472         which unregisters the object path and disposes the handler.
7473
7474 2004-05-23  Kristian Høgsberg  <krh@redhat.com>
7475  
7476         Patch from Timo Teräs <ext-timo.teras@nokia.com> (#614):
7477          
7478         * dbus/dbus-message.c (dbus_message_iter_get_args_valist): Swap
7479         operands to && so we call dbus_message_iter_next () for the last
7480         argument also.
7481
7482 2004-05-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7483
7484         * dbus/dbus-object-tree.c
7485         (_dbus_object_tree_list_registered_unlock, lookup_subtree): return
7486         children even if the requested path isn't registered.
7487         (object_tree_test_iteration): test object_tree_list_registered.
7488
7489         * configure.in: undefine HAVE_ABSTRACT_SOCKETS instead of defining
7490         it to 0.
7491         
7492 2004-05-20  Kristian Høgsberg  <krh@redhat.com>
7493
7494         * doc/TODO: Remove resolved items.
7495
7496         * bus/expirelist.h (struct BusExpireList): remove unused n_items
7497         field.
7498         
7499         * bus/connection.c (bus_connections_expect_reply): Enforce the
7500         per-connection limit on pending replies.
7501         
7502         Patch from Jon Trowbridge <trow@ximian.com>:
7503  
7504         * bus/main.c (setup_reload_pipe): Added.  Creates a pipe and sets
7505         up a watch that triggers a config reload when one end of the pipe
7506         becomes readable.
7507         (signal_handler): Instead of doing the config reload in our SIGHUP
7508         handler, just write to the reload pipe and let the associated
7509         watch handle the reload when control returns to the main loop.
7510  
7511         * bus/driver.c (bus_driver_handle_reload_config): Added.
7512         Implements a ReloadConfig method for requesting a configuration
7513         file reload via the bus driver.
7514  
7515 2004-05-19  Owen Fraser-Green  <owen@discobabe.net>
7516
7517         * HACKING: Updated release instructions concerning the wiki page.
7518
7519 2004-05-18  Kristian Høgsberg  <krh@redhat.com>
7520
7521         * dbus/dbus-auth.c (client_try_next_mechanism): Remove logic to
7522         filter against auth->allowed_mechs; we only add allowed mechs in
7523         record_mechanisms().
7524  
7525         * dbus/dbus-auth-script.c (_dbus_auth_script_run): Add an
7526         ALLOWED_MECHS to auth-script format so we can set the list of
7527         allowed mechanisms.
7528  
7529         * data/auth/client-out-of-mechanisms.auth-script: New test to
7530         check client disconnects when it is out of mechanisms to try.
7531  
7532         * dbus/dbus-auth.c (process_command): Remove check for lines
7533         longer that 1 MB; we only buffer up maximum 16 kB.
7534  
7535         * dbus/dbus-transport.c, dbus/dbus-transport-unix.c,
7536         dbus/dbus-auth-script.c, dbus/dbus-auth.c, dbus/dbus-auth.h:
7537         Remove auth state AUTHENTICATED_WITH_UNUSED_BYTES, instead always
7538         assume there might be unused bytes.
7539  
7540         * dbus/dbus-auth.c (_dbus_auth_do_work): Remove check for
7541         client-out-of-mechs, it is handled in process_reject(). Move check
7542         for max failures to send_rejected(), as it's a server-only thing.
7543
7544         * dbus/dbus-auth.c: Factor out protocol reply code into functions
7545         send_auth(), send_data(), send_rejected(), send_error(),
7546         send_ok(), send_begin() and send_cancel().
7547
7548 2004-05-17  Kristian Høgsberg  <krh@redhat.com>
7549
7550         Remove base64 encoding, replace with hex encoding. Original patch
7551         from trow@ximian.com, added error handling.
7552
7553         * dbus/dbus-string.c (_dbus_string_base64_encode)
7554         (_dbus_string_base64_decode): Remove.
7555         (_dbus_string_hex_decode): Add end_return argument so we can
7556         distinguish between OOM and invalid hex encoding.
7557         (_dbus_string_test): Remove base64 tests and add test case for
7558         invalid hex.
7559
7560         * dbus/dbus-keyring.c, dbus/dbus-auth-script.c, dbus/dbus-auth.c:
7561         Replace base64 with hex.
7562
7563         * test/data/auth/invalid-hex-encoding.auth-script: New test case
7564         for invalid hex encoded data in auth protocol.
7565
7566 2004-05-17  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7567
7568         * dbus/dbus-connection.c (check_for_reply_unlocked): plug a memory
7569         leak.
7570
7571 2004-05-15  Owen Fraser-Green  <owen@discobabe.net>
7572
7573         * mono/dbus-sharp.dll.config.in: Added for GAC
7574         * mono/dbus-sharp.snk: Added for GAC
7575         * mono/Assembly.cs.in: Added for GAC
7576         * mono/Makefile.am: Changes for GAC installation        
7577         * configure.in: Added refs for dbus-sharp.dll.config.in and
7578         Assembly.cs.in. More fixes for mono testing
7579         * mono/example/Makefile.am: Changed var to CSC
7580         * Makefile.am: Changed flag name to DBUS_USE_CSC
7581
7582 2004-05-15  Owen Fraser-Green  <owen@discobabe.net>
7583
7584         * mono/Makefile.am: Added SUBDIRS for docs. Changed SUBDIRS order
7585         * mono/doc/*: Added documentation framework
7586         * configure.in: Added monodoc check
7587         * README: Added description of mono configure flags
7588
7589 2004-05-11  John (J5) Palmieri  <johnp@redhat.com>:
7590
7591         * doc/dbus-specification.xml: Added a "Required" column to the 
7592         header fields table and changed the "zero or more" verbage in
7593         the above paragraph to read "The header must contain the required 
7594         named header fields and zero or more of the optional named header 
7595         fields".
7596         * test/data/invalid-messages/*.message: Added the required PATH 
7597         named header field to the tests so that they don't fail on 
7598         'Missing path field'
7599
7600 2004-05-07  John (J5) Palmieri  <johnp@redhat.com>
7601
7602         * python/dbus-bindings.pyx.in: Stopped the bindings from trashing
7603         the stack by implicitly defining variable and parameter types and
7604         removing the hack of defining C pointers as python objects and later
7605         casting them.
7606
7607 2004-05-02  Owen Fraser-Green  <owen@discobabe.net>
7608
7609         * mono/Makefile.am: Removed test-dbus-sharp.exe from all target
7610
7611 2004-05-01  Owen Fraser-Green  <owen@discobabe.net>
7612
7613         * mono/DBusType/Dict.cs: Handle empty dicts
7614         * mono/DBusType/Array.cs: Handle empty arrays
7615         * mono/Arguments.cs: Handle empty arguments
7616
7617 2004-04-30  Owen Fraser-Green  <owen@discobabe.net>
7618
7619         * dbus-sharp.pc.in: Modified to include include Libs and Requires
7620         field
7621
7622 2004-04-25  Kristian Høgsberg  <krh@redhat.com>
7623
7624         * test/data/valid-messages/standard-*.message: Update message
7625         test scripts to new header field names.
7626
7627 2004-04-22  John (J5) Palmieri  <johnp@redhat.com>
7628
7629         * test/break-loader.c (randomly_do_n_things): tracked down buffer
7630         overflow to times_we_did_each_thing array which would chop off the
7631         first character of the failure_dir string. Increased the size of
7632         the array to 7 to reflect the number of random mutation functions
7633         we have.
7634
7635 2004-04-21  Kristian Høgsberg  <krh@redhat.com>
7636
7637         * dbus/dbus-server-unix.c (unix_finalize): Don't unref
7638         unix_server->watch here, it is unreffed in disconnect.
7639         (_dbus_server_new_for_tcp_socket): convert NULL host to
7640         "localhost" here so we don't append NULL to address.
7641         
7642         * dbus/dbus-server.c (_dbus_server_test): Add test case for
7643         various addresses, including tcp with no explicit host.
7644
7645 2004-04-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7646
7647         * dbus/dbus-message.c (decode_header_data, decode_string_field):
7648         fix incorrect setting of .name_offset in the HeaderField (it was
7649         off by two bytes, positioned right after the name and typecode)
7650
7651         * bus/bus.c (bus_context_new, bus_context_unref): test before
7652         calling dbus_server_free_data_slot and _dbus_user_database_unref
7653         in case of an error.
7654
7655         * tools/Makefile.am: add $(DBUS_GLIB_TOOL_LIBS), xml libs needed
7656         by libdbus-gtool.
7657
7658 2004-04-19  Kristian Høgsberg  <krh@redhat.com>
7659
7660         * dbus/dbus-transport-unix.c (unix_do_iteration): Rewrite to use
7661         _dbus_poll() instead of select().
7662
7663 2004-04-15  Jon Trowbridge  <trow@ximian.com>
7664
7665         * bus/main.c (signal_handler): Reload the configuration files
7666         on SIGHUP.
7667         (main): Set up our SIGHUP handler.
7668
7669         * bus/bus.c (struct BusContext): Store the config file, user and
7670         fork flag in the BusContext.
7671         (process_config_first_time_only): Added.  Contains the code
7672         (previously in bus_context_new) for setting up the BusContext from
7673         the BusConfigParser that should only be run the first time the
7674         config files are read.
7675         (process_config_every_time): Added.  Contains the code (previously
7676         in bus_context_new) for setting up the BusContext from the
7677         BusConfigParser that should be run every time the config files are
7678         read.
7679         (load_config): Added.  Builds a BusConfigParser from the config
7680         files and passes the resulting structure off to
7681         process_config_first_time_only (assuming this is the first time)
7682         and process_config_every_time.
7683         (bus_context_new): All of the config-related code has been moved
7684         to process_config_first_time_only and process_config_every_time.
7685         Now this function just does the non-config-related initializations
7686         and calls load_config.
7687         (bus_context_reload_config): Added.
7688
7689 2004-04-15  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7690
7691         * bus/driver.c (bus_driver_handle_get_service_owner):
7692         implement a GetServiceOwner method.
7693         * doc/dbus-specification.xml: document it.
7694         * dbus/dbus-errors.h: add a 'ServiceHasNoOwner' error.
7695         
7696         * glib/dbus-gproxy.c (dbus_gproxy_new_for_service_owner):
7697         implement, using the bus GetServiceOwner method.
7698
7699         * test/glib/test-dbus-glib.c:
7700         use dbus_gproxy_new_for_service_owner so that we can receive the
7701         signal. 
7702
7703 2004-04-15  John (J5) Palmieri  <johnp@redhat.com>
7704
7705         * dbus/dbus-internals.c, dbus/dbus-message-builder.c,
7706         dbus/dbus-message.c, dbus/dbus-protocol.h
7707         (DBUS_HEADER_FIELD_SERVICE): renamed DBUS_HEADER_FIELD_DESTINATION
7708
7709         * dbus/dbus-internals.c, dbus/dbus-message-builder.c,
7710         dbus/dbus-message.c, dbus/dbus-protocol.h
7711         (DBUS_HEADER_FIELD_SENDER_SERVICE): renamed DBUS_HEADER_FIELD_SENDER
7712
7713         * dbus/dbus-internals.c (_dbus_header_field_to_string):
7714         DBUS_HEADER_FIELD_DESTINATION resolves to "destination"
7715         DBUS_HEADER_FIELD_SENDER resolves to "sender"
7716
7717         * doc/dbus-specification.xml (Header Fields Table):
7718         s/SERVICE/DESTINATION
7719         s/SENDER_SERVICE/SENDER
7720
7721
7722 2004-04-14  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7723
7724         * test/glib/test-dbus-glib.c (timed_exit): fail the test after
7725         a few seconds.
7726
7727 2004-04-13  Michael Meeks  <michael@ximian.com>
7728
7729         * glib/dbus-gobject.c (handle_introspect): split out
7730         (introspect_properties): this.
7731         (handle_introspect): implement this.
7732
7733         * test/glib/Makefile.am: use the absolute path so the bus
7734         daemon's chdir ("/") doesn't kill us dead.
7735
7736         * configure.in: subst ABSOLUTE_TOP_BUILDDIR
7737
7738 2004-04-12  Jon Trowbridge  <trow@ximian.com>
7739
7740         * bus/config-parser.c (struct BusConfigParser): Added
7741         included_files field.
7742         (seen_include): Added.  Checks whether or not a file has already
7743         been included by any parent BusConfigParser.
7744         (bus_config_parser_new): Copy the parent's included_files.
7745         (include_file): Track which files have been included, and fail on
7746         circular inclusions.
7747         (process_test_valid_subdir): Changed printf to report if we are
7748         testing valid or invalid conf files.
7749         (all_are_equiv): Changed printf to be a bit clearer about
7750         what we are actually doing.
7751         (bus_config_parser_test): Test invalid configuration files.
7752
7753 2004-04-09  Jon Trowbridge  <trow@ximian.com>
7754
7755         * bus/config-parser.c (bus_config_parser_new): Added a 'parent'
7756         argument.  If non-null, the newly-constructed BusConfigParser will
7757         be initialized with the parent's BusLimits instead of the default
7758         values.
7759         (include_file): When including a config file, pass in
7760         the current parser as the parent and then copy the BusLimits
7761         from the included BusConfigParser pack to the current parser.
7762         (process_test_valid_subdir): Renamed from process_test_subdir.
7763         (process_test_equiv_subdir): Added.  Walks through a directory,
7764         descending into each subdirectory and loading the config files
7765         it finds there.  If any subdirectory contains two config files
7766         that don't produce identical BusConfigParser structs, fail.
7767         For now, the BusConfigParser's BusPolicies are not compared.
7768         (bus_config_parser_test): Call both process_test_valid_subdir and
7769         process_test_equiv_subdir.
7770
7771         * bus/config-loader-libxml.c (bus_config_load): Take a parent
7772         argument and pass it along to the call to bus_config_parser_new.
7773         Also made a few small changes to allow this code to compile.
7774
7775         * bus/config-loader-expat.c (bus_config_load): Take a parent
7776         argument and pass it along to the call to bus_config_parser_new.
7777
7778         * bus/bus.c (bus_context_new): Load the config file
7779         with a NULL parent argument.
7780
7781 2004-03-29  Michael Meeks  <michael@ximian.com>
7782
7783         * glib/dbus-gobject.c (introspect_properties): split
7784         out, fix mangled 'while' flow control.
7785         (introspect_signals): implement.
7786         (handle_introspect): update.
7787
7788 2004-03-29  Michael Meeks  <michael@ximian.com>
7789
7790         * glib/dbus-gobject.c (set_object_property): split out / 
7791         re-work, use the property type, and not the message type(!)
7792         (get_object_property): ditto.
7793
7794         * glib/dbus-gvalue.c (dbus_gvalue_demarshal),
7795         (dbus_gvalue_marshal): make this code re-usable, needed
7796         for signals too, also on both proxy and server side.
7797         Re-write for more efficiency / readability.
7798
7799 2004-03-29  Michael Meeks  <michael@ximian.com>
7800
7801         * dbus/dbus-message.c
7802         (dbus_message_new_error_printf): impl.
7803
7804         * dbus/dbus-connection.c
7805         (dbus_connection_unregister_object_path): fix warning.
7806
7807         * configure.in: fix no-mono-installed situation.
7808
7809 2004-03-27  Havoc Pennington  <hp@redhat.com>
7810
7811         Patch from Timo Teräs:
7812         
7813         * tools/dbus-send.c (main): if --print-reply, assume type is
7814         method call; support boolean type args
7815         
7816         * dbus/dbus-connection.c (dbus_connection_send_with_reply): fix a
7817         bunch of memleak and logic bugs
7818         
7819 2004-03-23  Owen Fraser-Green  <owen@discobabe.net>
7820
7821         * mono/Arguments.cs:
7822         * mono/Introspector.cs:
7823         * mono/Handler.cs:
7824         * mono/InterfaceProxy.cs:
7825         * mono/Message.cs
7826         * mono/ProxyBuilder.cs:
7827         * mono/Service.cs:
7828         Added InterfaceProxy class to avoid building proxies for every
7829         object.
7830
7831         * dbus-message.h:
7832         * dbus-message.c (dbus_message_append_args_valist)
7833         (dbus_message_iter_get_object_path)
7834         (dbus_message_iter_get_object_path_array)
7835         (dbus_message_iter_append_object_path)
7836         (dbus_message_iter_append_object_path_array):
7837         Added object_path iter functions to handle OBJECT_PATH arguments
7838         
7839 2004-03-23  Owen Fraser-Green  <owen@discobabe.net>
7840
7841         First checkin of mono bindings.
7842         * configure.in:
7843         * Makefile.am:
7844         Build stuff for the bindings
7845         * dbus-sharp.pc.in: Added for pkgconfig
7846         
7847 2004-03-21  Havoc Pennington  <hp@redhat.com>
7848
7849         * test/test-service.c (main): remove debug spew
7850
7851 2004-03-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7852
7853         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): accept empty
7854         arrays
7855
7856         * dbus/dbus-message.h, bus/dbus-message.c (dbus_message_iter_init)
7857         (dbus_message_iter_init_array_iterator)
7858         (dbus_message_iter_init_dict_iterator): return a dbus_bool_t to
7859         indicate whether the iterator is empty
7860
7861         * dbus/dbus-pending-call.c, dbus/dbus-server.c: silence compiler
7862         warnings
7863
7864 2004-03-19  Havoc Pennington  <hp@redhat.com>
7865
7866         * NEWS: 0.21 updates
7867
7868         * configure.in: 0.21
7869
7870         * doc/Makefile.am: add all XMLTO usage to DBUS_XML_DOCS_ENABLED
7871         
7872         * python/Makefile.am: change to avoid dist of dbus_bindings.c so
7873         you don't need pyrex to make dist
7874
7875         * qt/Makefile.am (libdbus_qt_1_la_SOURCES): add integrator.h to
7876         sources; run moc
7877         
7878 2004-03-18  Richard Hult  <richard@imendio.com>
7879
7880         * dbus/dbus-message.c (dbus_message_get_auto_activation) 
7881         (dbus_message_set_auto_activation): Add doxygen docs.
7882
7883 2004-03-16  Richard Hult  <richard@imendio.com>
7884
7885         * bus/activation.c: (bus_activation_service_created),
7886         (bus_activation_send_pending_auto_activation_messages),
7887         (bus_activation_activate_service):
7888         * bus/activation.h:
7889         * bus/dispatch.c: (bus_dispatch),
7890         (check_nonexistent_service_auto_activation),
7891         (check_service_auto_activated),
7892         (check_segfault_service_auto_activation),
7893         (check_existent_service_auto_activation), (bus_dispatch_test):
7894         * bus/driver.c: (bus_driver_handle_activate_service):
7895         * bus/services.c: (bus_registry_acquire_service):
7896         * dbus/dbus-message.c: (dbus_message_set_auto_activation),
7897         (dbus_message_get_auto_activation):
7898         * dbus/dbus-message.h:
7899         * dbus/dbus-protocol.h: Implement auto-activation.
7900         
7901         * doc/dbus-specification.xml: Add auto-activation to the spec.
7902
7903 2004-03-12  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7904
7905         * dbus/dbus-marshal.c (_dbus_marshal_get_arg_end_pos):
7906         fix a bug with CUSTOM types.
7907
7908         * dbus/dbus-message.c (message_iter_test, _dbus_message_test): add
7909         a unit test for this bug (used to fail).
7910
7911 2004-03-12  Mikael Hallendal  <micke@imendio.com>
7912
7913         * bus/activation.c:
7914         (babysitter_watch_callback): notify all pending activations waiting for
7915           the same exec that the activation failed.
7916         (bus_activation_activate_service): shortcut the activation if we 
7917           already waiting for the same executable to start up.
7918
7919 2004-03-12  Mikael Hallendal  <micke@imendio.com>
7920
7921         * bus/activation.c: 
7922         - Added service file reloading. 
7923           Each service files directory is kept in an hash table in 
7924           BusActivation and each BusActivationEntry knows what .service-file it
7925           was read from. So when you try to activate a service the bus will 
7926           check if it's been updated, removed or if new .service-files has 
7927           been installed.
7928         - Test code at the bottom for the service file reloading.
7929         * bus/test-main.c: (main):
7930         * bus/test.h:
7931         - added service reloading test.
7932         * dbus/dbus-sysdeps.c: 
7933         * dbus/dbus-sysdeps.h: (_dbus_delete_directory): Added.
7934
7935 2004-03-08  Michael Meeks  <michael@ximian.com>
7936
7937         * dbus/dbus-connection.c (_dbus_connection_block_for_reply): 
7938         bail immediately if disconnected, to avoid busy loop.
7939
7940         * dbus/dbus-message.c (dbus_message_iter_get_args_valist):
7941         cleanup cut/paste/inefficiency.
7942
7943 2004-03-01  David Zeuthen  <david@fubar.dk>
7944
7945         * dbus/dbus-string.c (_dbus_string_append_printf_valist): Fix a
7946         bug where args were used twice. This bug resulted in a segfault
7947         on a Debian/PPC system when starting the messagebus daemon. Include
7948         dbus-sysdeps.h for DBUS_VA_COPY
7949
7950         * dbus/dbus-sysdeps.h: Define DBUS_VA_COPY if neccessary. From GLib
7951
7952         * configure.in: Check for va_copy; define DBUS_VA_COPY to the
7953         appropriate va_copy implementation. From GLib
7954         
7955 2004-02-24  Joe Shaw  <joe@ximian.com>
7956
7957         * bus/services.c (bus_registry_acquire_service): We need to pass
7958         in the service name to dbus_set_error() to prevent a crash.
7959
7960 2003-12-26  Anders Carlsson  <andersca@gnome.org>
7961
7962         * AUTHORS: Reveal my True identity.
7963
7964 2003-12-17  Mikael Hallendal  <micke@imendio.com>
7965
7966         * dbus/dbus-message.c: (dbus_message_append_args_valist): 
7967         - Added case for DBUS_TYPE_BYTE, patch from Johan Hedberg.
7968
7969 2003-12-13  Mikael Hallendal  <micke@imendio.com>
7970
7971         * doc/TODO: Added not about better error check of configuration files.
7972
7973 2003-12-02  Richard Hult  <richard@imendio.com>
7974
7975         * Update AFL version to 2.0 throughout the source files to reflect
7976         the update that was done a while ago.
7977
7978 2003-12-02  Richard Hult  <richard@imendio.com>
7979
7980         * dbus/dbus-message.c (dbus_message_iter_append_dict): Set
7981         wrote_dict_key to FALSE on the iter that the dict is appended to,
7982         just like when appending other types. Fixes a bug where a dict
7983         couldn't be put inside a dict.
7984         (dbus_message_iter_append_dict_key): Fix typo in warning message.
7985         (message_iter_test, _dbus_message_test): Add test case for dict
7986         inside dict.
7987
7988 2003-12-01  David Zeuthen  <david@fubar.dk>
7989
7990         * python/dbus.py: Add the actual message when calling the reciever
7991         of a signal such that parameters can be inspected. Add the method
7992         remove_signal_receiver
7993         
7994 2003-11-26  Mikael Hallendal  <micke@imendio.com>
7995
7996         * bus/*.[ch]:
7997         * dbus/*.[ch]:
7998         * glib/*.[ch]: Made ref functions return the pointer
7999
8000 2003-11-25  Zack Rusin  <zack@kde.org>
8001
8002         * qt/integrator.h, qt/integrator.cpp: Adding handling of DBusServer,
8003
8004         * qt/server.h, qt/server.cpp, qt/Makefile.am: Adding DBusServer 
8005         wrappers,
8006
8007         * qt/connection.h, qt/connection.cpp: Adjusting to changes in 
8008         the Integrator and to better fit with the server,
8009
8010 2003-11-24  Zack Rusin  <zack@kde.org>
8011
8012         * qt/connection.h, qt/connection.cpp: removing initDbus method since
8013         the integrator handles it now
8014
8015         * qt/integrator.h, qt/integrator.cpp: reworking handling of timeouts,
8016         since QTimer wasn't really meant to be used the way DBusTimeout is
8017
8018 2003-11-24  Zack Rusin  <zack@kde.org>
8019
8020         * qt/integrator.h, qt/integrator.cpp, Makefile.am: Adding 
8021         Integrator class which integrates D-BUS with the Qt event loop,
8022
8023         * qt/connection.h, qt/connection.cpp: Move all the code which
8024         was dealing with D-BUS integration to the Integrator class,
8025         and start using Integrator,
8026
8027 2003-11-23  Zack Rusin  <zack@kde.org>
8028
8029         * qt/connection.h, qt/connection.cpp: Adding the DBusConnection 
8030         wrapper
8031
8032         * qt/message.h, qt/message.cpp: updating to the current D-BUS api,
8033         switching namespaces to DBusQt, reworking the class,
8034
8035         * Makefile.cvs: switching dependencies so that it matches KDE 
8036         schematics,
8037         
8038         * qt/Makefile.am: adding connection.{h,cpp} and message.{h,cpp} to 
8039         the library
8040
8041 2003-11-19  Havoc Pennington  <hp@redhat.com>
8042
8043         * NEWS: update
8044
8045         * configure.in: bump version to 0.20
8046
8047         * configure.in (have_qt): add yet another place to look for qt
8048         (someone hand trolltech a .pc file...)
8049
8050 2003-11-01  Havoc Pennington  <hp@redhat.com>
8051
8052         * doc/dbus-specification.xml: add state machine docs on the auth
8053         protocol; just a first draft, I'm sure it's wrong.      
8054
8055 2003-10-28  David Zeuthen  <david@fubar.dk>
8056
8057         * python/dbus_bindings.pyx.in: add get_dict to handle dictionaries
8058         return types. Fixup TYPE_* to reflect changes in dbus/dbus-protocol.h
8059         
8060 2003-10-28  Havoc Pennington  <hp@redhat.com>
8061
8062         * dbus/dbus-message.c (get_next_field): delete unused function
8063
8064 2003-10-28  Havoc Pennington  <hp@redhat.com>
8065
8066         * bus/expirelist.c (do_expiration_with_current_time): detect
8067         failure of the expire_func due to OOM
8068
8069         * bus/connection.c (bus_pending_reply_expired): return FALSE on OOM
8070
8071         * bus/dispatch.c (check_send_exit_to_service): fix to handle the
8072         NoReply error that's now created by the bus when the service exits
8073
8074 2003-10-28  Havoc Pennington  <hp@redhat.com>
8075
8076         * dbus/dbus-message.c (_dbus_message_test): enable and fix the
8077         tests for set_path, set_interface, set_member, etc.
8078
8079         * dbus/dbus-string.c (_dbus_string_insert_bytes): allow 0 bytes
8080
8081         * dbus/dbus-message.c (set_string_field): always just delete and
8082         re-append the field; accept NULL for deletion
8083         (re_align_fields_recurse): reimplement
8084         
8085 2003-10-26  Havoc Pennington  <hp@redhat.com>
8086
8087         * dbus/dbus-connection.c: fix docs to properly describe the
8088         disconnected message
8089         (_dbus_connection_notify_disconnected): remove this function; 
8090         we can't synchronously add the disconnected message, we have to 
8091         do it after we've queued any remaining real messages
8092         (_dbus_connection_get_dispatch_status_unlocked): queue the
8093         disconnect message only if the transport has finished queueing all
8094         its real messages and is disconnected.
8095         (dbus_connection_disconnect): update the dispatch status here
8096
8097 2003-10-22  Havoc Pennington  <hp@redhat.com>
8098
8099         * bus/bus.c (bus_context_check_security_policy): fix up assertion
8100
8101         * bus/connection.c (bus_transaction_send_from_driver): set the
8102         destination to the connection's base service
8103
8104 2003-10-20  Havoc Pennington  <hp@redhat.com>
8105
8106         hmm, make check is currently not passing.
8107         
8108         * doc/dbus-specification.xml: add requirement that custom type
8109         names follow the same rules as interface names.
8110
8111         * dbus/dbus-protocol.h: change some of the byte codes, to avoid
8112         duplication and allow 'c' to be 'custom'; dict is now 'm' for
8113         'map'
8114
8115         * doc/dbus-specification.xml: update type codes to match
8116         dbus-protocol.h, using the ASCII byte values. Rename type NAMED to
8117         CUSTOM. Add type OBJECT_PATH to the spec.
8118
8119 2003-10-17  Havoc Pennington  <hp@redhat.com>
8120
8121         * bus/driver.c (create_unique_client_name): use "." as separator
8122         in base service names instead of '-'
8123
8124         * dbus/dbus-string.c (_dbus_string_get_byte): allow getting nul
8125         byte at the end of the string
8126
8127         * dbus/dbus-internals.h (_DBUS_LIKELY, _DBUS_UNLIKELY): add
8128         optimization macros since string validation seems to be a slow
8129         point.
8130         
8131         * doc/dbus-specification.xml: restrict valid
8132         service/interface/member/error names. Add test suite code for the
8133         name validation.
8134
8135         * dbus/dbus-string.c: limit service/interface/member/error names 
8136         to [0-9][A-Z][a-z]_
8137
8138         * dbus/dbus-connection.c (dbus_connection_dispatch): add missing
8139         format arg to verbose spew
8140
8141         * glib/dbus-gproxy.c (dbus_gproxy_call_no_reply): if not out of
8142         memory, return instead of g_error
8143
8144         * test/test-service.c (path_message_func): support emitting a
8145         signal on request
8146
8147         * dbus/dbus-bus.c (init_connections_unlocked): only fill in
8148         activation bus type if DBUS_BUS_ACTIVATION was set; default to
8149         assuming the activation bus was the session bus so that services
8150         started manually will still register.
8151         (init_connections_unlocked): fix so that in OOM situation we get
8152         the same semantics when retrying the function
8153         
8154         * test/test-service.c (main): change to use path registration, to
8155         test those codepaths; register with DBUS_BUS_ACTIVATION rather
8156         than DBUS_BUS_SESSION
8157
8158 2003-10-16  Havoc Pennington  <hp@redhat.com>
8159
8160         * glib/dbus-gtest-main.c: bracket with #ifdef DBUS_BUILD_TESTS
8161
8162         * Makefile.am (GCOV_DIRS): remove "test", we don't care about test
8163         coverage of the tests
8164         (coverage-report.txt): don't move the .da and .bbg files around
8165
8166 2003-10-16  Havoc Pennington  <hp@redhat.com>
8167
8168         * bus/bus.c (struct BusContext): remove struct field I didn't mean
8169         to put there
8170
8171 2003-10-16  Havoc Pennington  <hp@redhat.com>
8172
8173         * bus/connection.c (bus_pending_reply_expired): either cancel or
8174         execute, not both
8175         (bus_connections_check_reply): use unlink, not remove_link, as we
8176         don't want to free the link; fixes double free mess
8177
8178         * dbus/dbus-pending-call.c (dbus_pending_call_block): fix in case
8179         where no reply was received
8180
8181         * dbus/dbus-connection.c (_dbus_pending_call_complete_and_unlock):
8182         fix a refcount leak
8183
8184         * bus/signals.c (match_rule_matches): add special cases for the
8185         bus driver, so you can match on sender/destination for it.
8186
8187         * dbus/dbus-sysdeps.c (_dbus_abort): print backtrace if
8188         DBUS_PRINT_BACKTRACE is set
8189
8190         * dbus/dbus-internals.c: add pid to assertion failure messages
8191
8192         * dbus/dbus-connection.c: add message type code to the debug spew
8193
8194         * glib/dbus-gproxy.c (gproxy_get_match_rule): match rules want
8195         sender=foo not service=foo
8196
8197         * dbus/dbus-bus.c (dbus_bus_get): if the activation bus is the
8198         session bus but DBUS_SESSION_BUS_ADDRESS isn't set, use 
8199         DBUS_ACTIVATION_ADDRESS instead
8200
8201         * bus/activation.c: set DBUS_SESSION_BUS_ADDRESS,
8202         DBUS_SYSTEM_BUS_ADDRESS if appropriate
8203
8204         * bus/bus.c (bus_context_new): handle OOM copying bus type into
8205         context struct
8206
8207         * dbus/dbus-message.c (dbus_message_iter_get_object_path): new function
8208         (dbus_message_iter_get_object_path_array): new function (half
8209         finished, disabled for the moment)
8210         
8211         * glib/dbus-gproxy.c (dbus_gproxy_end_call): properly handle
8212         DBUS_MESSAGE_TYPE_ERROR
8213
8214         * tools/dbus-launch.c (babysit): support DBUS_DEBUG_OUTPUT to
8215         avoid redirecting stderr to /dev/null
8216         (babysit): close stdin if not doing the "exit_with_session" thing
8217
8218         * dbus/dbus-sysdeps.c (_dbus_become_daemon): delete some leftover
8219         debug code; change DBUS_DEBUG_OUTPUT to only enable stderr, not
8220         stdout/stdin, so things don't get confused
8221         
8222         * bus/system.conf.in: fix to allow replies, I modified .conf
8223         instead of .conf.in again.
8224
8225 2003-10-14  David Zeuthen  <david@fubar.dk>
8226
8227         * python/dbus_bindings.pyx.in (MessageIter.get): fixed typo in
8228         argtype to arg_type when raising unknown arg type exception.
8229         Changed type list to reflect the changes in dbus-protocol.h so 
8230         the bindings actually work.
8231
8232 2003-10-14  Havoc Pennington  <hp@redhat.com>
8233
8234         * test/decode-gcov.c: support gcc 3.3 also, though gcc 3.3 seems
8235         to have a bug keeping it from outputting the .da files sometimes
8236         (string_get_string): don't append garbage nul bytes to the string.
8237
8238 2003-10-15  Seth Nickell  <seth@gnome.org>
8239
8240         * python/Makefile.am:
8241
8242         Include dbus_h_wrapper.h in the dist tarball.
8243
8244 2003-10-14  Havoc Pennington  <hp@redhat.com>
8245
8246         * bus/bus.c (bus_context_check_security_policy): revamp this to
8247         work more sanely with new policy-based requested reply setup
8248
8249         * bus/connection.c (bus_transaction_send_from_driver): set bus
8250         driver messages as no reply
8251
8252         * bus/policy.c (bus_client_policy_check_can_receive): handle a
8253         requested_reply attribute on allow/deny rules
8254
8255         * bus/system.conf: add <allow requested_reply="true"/>
8256
8257         * bus/driver.c (bus_driver_handle_message): fix check for replies
8258         sent to the bus driver, which was backward. How did this ever work
8259         at all though? I think I'm missing something.
8260
8261         * dbus/dbus-message.c (decode_header_data): require error and
8262         method return messages to have a reply serial field to be valid
8263         (_dbus_message_loader_queue_messages): break up this function;
8264         validate that reply serial and plain serial are nonzero; 
8265         clean up the OOM/error handling.
8266         (get_uint_field): don't return -1 from this
8267         (dbus_message_create_header): fix signed/unsigned bug
8268
8269         * bus/connection.c (bus_connections_expect_reply): save serial of
8270         the incoming message, not reply serial
8271
8272 2003-10-14  Havoc Pennington  <hp@redhat.com>
8273
8274         * bus/connection.c: implement pending reply tracking using
8275         BusExpireList
8276
8277         * bus/bus.c (bus_context_check_security_policy): verify that a
8278         reply is pending in order to allow a reply to be sent. Deny 
8279         messages of unknown type.
8280
8281         * bus/dbus-daemon-1.1.in: update to mention new resource limits
8282
8283         * bus/bus.c (bus_context_get_max_replies_per_connection): new
8284         (bus_context_get_reply_timeout): new
8285
8286 2003-10-13  Seth Nickell  <seth@gnome.org>
8287
8288         * python/Makefile.am:
8289
8290         Pass "make distcheck": remove a couple files from DIST_FILES
8291         that weren't included in the final version.
8292
8293 2003-10-12  Havoc Pennington  <hp@pobox.com>
8294
8295         Added test code that 1) starts an actual bus daemon and 2) uses
8296         DBusGProxy; fixed bugs that were revealed by the test. Lots 
8297         more testing possible, but this is the basic framework.
8298         
8299         * glib/dbus-gproxy.c (dbus_gproxy_manager_unregister): remove
8300         empty proxy lists from the proxy list hash
8301
8302         * dbus/dbus-message.c (dbus_message_iter_get_args_valist): add a
8303         couple of return_if_fail checks
8304
8305         * dbus/dbus-pending-call.c (_dbus_pending_call_new): use dbus_new0
8306         to allocate, so everything is cleared to NULL as it should be.
8307
8308         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): pass
8309         source as data to dbus_connection_set_timeout_functions() as the 
8310         timeout functions expected
8311
8312         * test/glib/run-test.sh: add a little script to start up a message
8313         bus and run tests using it
8314
8315         * tools/dbus-launch.1: updates
8316
8317         * tools/dbus-launch.c (main): add --config-file option
8318
8319         * tools/dbus-launch.c (main): remove confusing else if (runprog)
8320         that could never be reached.
8321
8322         * dbus/dbus-message.c (dbus_message_new_method_return) 
8323         (dbus_message_new_error, dbus_message_new_signal): set the
8324         no-reply-expected flag on all these. Redundant, but may
8325         as well be consistent.
8326
8327 2003-10-11  Havoc Pennington  <hp@pobox.com>
8328
8329         * test/decode-gcov.c (function_solve_graph): make broken block
8330         graph a nonfatal error since it seems to be broken. Need to debug
8331         this.
8332
8333         * dbus/dbus-marshal.c (_dbus_type_is_valid): new function since we
8334         can't just check type > INVALID < LAST anymore
8335
8336         * dbus/dbus-message.c (dbus_message_get_signature): new function
8337         (dbus_message_has_signature): new function
8338         (struct DBusMessage): add signature field (right now it isn't sent
8339         over the wire, just generated on the fly)
8340         (dbus_message_copy): copy the signature, and init strings to
8341         proper length to avoid some reallocs
8342         (dbus_message_iter_init_array_iterator): return void, since it
8343         can't fail
8344         (dbus_message_iter_init_dict_iterator): return void since it can't fail
8345         (_dbus_message_loader_queue_messages): add silly temporary hack to
8346         fill in message->signature on load
8347
8348         * dbus/dbus-protocol.h: change DBUS_TYPE_* values to be ASCII
8349         characters, so they are relatively human-readable.
8350
8351 2003-10-11  Havoc Pennington  <hp@pobox.com>
8352
8353         * dbus/dbus-message.c (_dbus_message_test): add more test
8354         coverage, but #if 0 for now since they uncover a bug 
8355         not fixed yet; I think in re_align_field_recurse()
8356         (re_align_field_recurse): add FIXME about broken assertion
8357
8358         * dbus/dbus-sysdeps.c (_dbus_sysdeps_test): add more test coverage
8359
8360         * bus/connection.c: share a couple code bits with expirelist.c
8361
8362         * bus/expirelist.h, bus/expirelist.c: implement a generic
8363         expire-items-after-N-seconds facility, was going to share between
8364         expiring connections and replies, decided not to use for expiring
8365         connections for now.
8366
8367         * COPYING: include AFL 2.0 (still need to change all the file headers)
8368
8369 2003-10-09  Havoc Pennington  <hp@redhat.com>
8370
8371         * configure.in: define DBUS_HAVE_GCC33_GCOV if we have
8372         gcc 3.3. Not that we do anything about it yet.
8373
8374         * bus/signals.c (bus_match_rule_parse): impose max length on the
8375         match rule text
8376
8377         * dbus/dbus-protocol.h: add DBUS_MAXIMUM_MATCH_RULE_LENGTH
8378
8379 2003-10-09  Havoc Pennington  <hp@redhat.com>
8380
8381         Make matching rules theoretically work (add parser).
8382         
8383         * bus/bus.c (bus_context_check_security_policy): fix up to handle
8384         the case where destination is explicitly specified as bus driver
8385         and someone else is eavesdropping.
8386         
8387         * bus/policy.c (bus_client_policy_check_can_receive): fix up
8388         definition of eavesdropping and assertion
8389
8390         * tools/dbus-send.c (main): use dbus_message_type_from_string
8391
8392         * bus/signals.c (bus_match_rule_parse): implement
8393
8394         * dbus/dbus-message.c (dbus_message_type_from_string): new
8395
8396         * dbus/dbus-errors.h (DBUS_ERROR_MATCH_RULE_INVALID): add
8397
8398 2003-10-02  Havoc Pennington  <hp@pobox.com>
8399
8400         * glib/dbus-gproxy.c (dbus_gproxy_call_no_reply): rename from
8401         dbus_gproxy_oneway_call
8402
8403         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main) 
8404         (dbus_server_setup_with_g_main): fix to allow calling them more
8405         than once on the same args
8406         (dbus_bus_get_with_g_main): new function
8407
8408 2003-10-02  Havoc Pennington  <hp@redhat.com>
8409
8410         * doc/dbus-tutorial.xml: write some stuff
8411
8412 2003-09-29  Havoc Pennington  <hp@pobox.com>
8413
8414         * configure.in: split checks for Doxygen from XML docs, check for
8415         xmlto
8416
8417         * doc/Makefile.am: XML-ify all the docs, and add a blank
8418         dbus-tutorial.xml
8419
8420 2003-09-29  Havoc Pennington  <hp@pobox.com>
8421
8422         * Merge dbus-object-names branch. To see the entire patch 
8423         do cvs diff -r DBUS_OBJECT_NAMES_BRANCHPOINT -r dbus-object-names,
8424         it's huuuuge though.
8425         To revert, I tagged DBUS_BEFORE_OBJECT_NAMES_MERGE.
8426         
8427 2003-09-28  Havoc Pennington  <hp@pobox.com>
8428
8429         * HACKING: update to reflect new server
8430
8431 2003-09-26  Seth Nickell  <seth@gnome.org>
8432
8433         * python/dbus.py:
8434         * python/examples/example-signals.py:
8435
8436         Start implementing some notions of signals. The API
8437         is really terrible, but they sort of work (with the
8438         exception of being able to filter by service, and to
8439         transmit signals *as* a particular service). Need to
8440         figure out how to make messages come from the service
8441         we registered :-(
8442         
8443         * python/dbus_bindings.pyx.in:
8444
8445         Removed duplicate message_handler callbacks.
8446         
8447 2003-09-25  Havoc Pennington  <hp@redhat.com>
8448
8449         * bus/session.conf.in: fix my mess
8450
8451 2003-09-25  Havoc Pennington  <hp@pobox.com>
8452
8453         * bus/session.conf.in: fix security policy, reported by Seth Nickell
8454
8455 2003-09-25  Seth Nickell  <seth@gnome.org>
8456
8457         * python/examples/example-service.py:
8458
8459         Johan notices complete wrong code in example-service, but
8460         completely wrong in a way that works exactly the same (!).
8461         Johan is confused, how could this possibly work? Example
8462         code fails to serve purpose of making things clear.
8463         Seth fixes.
8464
8465 2003-09-25  Mark McLoughlin  <mark@skynet.ie>
8466
8467         * doc/dbus-specification.sgml: don't require header fields
8468         to be 4-byte aligned and specify that fields should be
8469         distinguished from padding by the fact that zero is not
8470         a valid field name.
8471         
8472         * doc/TODO: remove re-alignment item and add item to doc
8473         the OBJECT_PATH type.
8474         
8475         * dbus/dbus-message.c:
8476         (HeaderField): rename the original member to value_offset
8477         and introduce a name_offset member to keep track of where
8478         the field actually begins.
8479         (adjust_field_offsets): remove.
8480         (append_int_field), (append_uint_field),
8481         (append_string_field): don't align the start of the header
8482         field to a 4-byte boundary.
8483         (get_next_field): impl finding the next marhsalled field
8484         after a given field.
8485         (re_align_field_recurse): impl re-aligning a number of
8486         already marshalled fields.
8487         (delete_field): impl deleting a field of any type and
8488         re-aligning any following fields.
8489         (delete_int_or_uint_field), (delete_string_field): remove.
8490         (set_int_field), (set_uint_field): no need to re-check
8491         that we have the correct type for the field.
8492         (set_string_field): ditto and impl re-aligning any
8493         following fields.
8494         (decode_header_data): update to take into account that
8495         the fields aren't 4-byte aligned any more and the new
8496         way to distinguish padding from header fields. Also,
8497         don't exit when there is too much header padding.
8498         (process_test_subdir): print the directory.
8499         (_dbus_message_test): add test to make sure a following
8500         field is re-aligned correctly after field deletion.
8501         
8502         * dbus/dbus-string.[ch]:
8503         (_dbus_string_insert_bytes): rename from insert_byte and
8504         allow the insert of multiple bytes.
8505         (_dbus_string_test): test inserting multiple bytes.
8506
8507         * dbus/dbus-marshal.c: (_dbus_marshal_set_string): add
8508         warning note to docs about having to re-align any
8509         marshalled values following the string.
8510         
8511         * dbus/dbus-message-builder.c:
8512         (append_string_field), (_dbus_message_data_load):
8513         don't align the header field.
8514         
8515         * dbus/dbus-auth.c: (process_test_subdir): print the
8516         directory.
8517         
8518         * test/break-loader.c: (randomly_add_one_byte): upd. for
8519         insert_byte change.
8520         
8521         * test/data/invalid-messages/bad-header-field-alignment.message:
8522         new test case.
8523         
8524         * test/data/valid-messages/unknown-header-field.message: shove
8525         a dict in the unknown field.
8526
8527 2003-09-25  Seth Nickell  <seth@gnome.org>
8528
8529         * python/dbus.py:
8530         * python/dbus_bindings.pyx.in:
8531
8532         Handle return values.
8533         
8534         * python/examples/example-client.py:
8535         * python/examples/example-service.py:
8536
8537         Pass back return values from the service to the client.
8538         
8539 2003-09-24  Seth Nickell  <seth@gnome.org>
8540
8541         * python/dbus.py:
8542
8543         Connect Object methods (when you are sharing an object) up... pass
8544         in a list of methods to be shared. Sharing all the methods just
8545         worked out too weird. You can now create nice Services over the
8546         DBus in Python. :-)
8547         
8548         * python/dbus_bindings.pyx.in:
8549
8550         Keep references to user_data tuples passed into C functions so 
8551         Python doesn't garbage collect on us.
8552
8553         Implement MethodReturn and Error subclasses of Message for creating
8554         DBusMessage's of those types.
8555         
8556         * python/examples/example-client.py:
8557         * python/examples/example-service.py:
8558
8559         Simple example code showing both how create DBus services and objects,
8560         and how to use them.
8561
8562 2003-09-23  Havoc Pennington  <hp@pobox.com>
8563
8564         * glib/dbus-gproxy.c (dbus_gproxy_manager_filter): implement
8565
8566 2003-09-23  Havoc Pennington  <hp@redhat.com>
8567
8568         * glib/dbus-gproxy.c (dbus_gproxy_connect_signal): implement
8569         (dbus_gproxy_disconnect_signal): implement
8570         (dbus_gproxy_manager_remove_signal_match): implement
8571         (dbus_gproxy_manager_add_signal_match): implement
8572         (dbus_gproxy_oneway_call): implement
8573
8574 2003-09-23  Havoc Pennington  <hp@pobox.com>
8575
8576         * glib/dbus-gproxy.c (struct DBusGProxy): convert to a GObject
8577         subclass. This means dropping the transparent thread safety of the
8578         proxy; you now need a separate proxy per-thread, or your own
8579         locking on the proxy. Probably right anyway.
8580         (dbus_gproxy_ref, dbus_gproxy_unref): nuke, just use g_object_ref
8581
8582 2003-09-22  Havoc Pennington  <hp@redhat.com>
8583
8584         * glib/dbus-gproxy.c (dbus_gproxy_manager_get): implement
8585
8586 2003-09-21  Seth Nickell  <seth@gnome.org>
8587
8588         First checkin of the Python bindings.
8589         
8590         * python/.cvsignore:
8591         * python/Makefile.am:
8592         * python/dbus_bindings.pyx.in:
8593         * python/dbus_h_wrapper.h:
8594
8595         Pieces for Pyrex to operate on, building a dbus_bindings.so
8596         python module for low-level access to the DBus APIs.
8597         
8598         * python/dbus.py:
8599
8600         High-level Python module for accessing DBus objects.
8601
8602         * configure.in:
8603         * Makefile.am:
8604
8605         Build stuff for the python bindings.
8606
8607         * acinclude.m4:
8608
8609         Extra macro needed for finding the Python C header files.
8610
8611 2003-09-21  Havoc Pennington  <hp@pobox.com>
8612
8613         * glib/dbus-gproxy.c (dbus_gproxy_manager_new): start
8614         implementing the proxy manager, didn't get very far.
8615
8616         * dbus/dbus-bus.c (dbus_bus_add_match): new
8617         (dbus_bus_remove_match): new
8618
8619         * glib/dbus-gproxy.c (dbus_gproxy_new_for_service): add a
8620         path_name argument; adjust the other not-yet-implemented 
8621         gproxy constructors to be what I think they should be.
8622
8623 2003-09-21  Havoc Pennington  <hp@pobox.com>
8624
8625         * dbus/dbus-bus.c (dbus_bus_get): set exit_on_disconnect to TRUE
8626         by default for message bus connections.
8627
8628         * dbus/dbus-connection.c (dbus_connection_dispatch): exit if
8629         exit_on_disconnect flag is set and we process the disconnected
8630         signal.
8631         (dbus_connection_set_exit_on_disconnect): new function
8632
8633 2003-09-21  Havoc Pennington  <hp@pobox.com>
8634
8635         Get matching rules mostly working in the bus; only actually
8636         parsing the rule text remains. However, the client side of
8637         "signal connections" hasn't been started, this patch is only the
8638         bus side.
8639         
8640         * dbus/dispatch.c: fix for the matching rules changes
8641         
8642         * bus/driver.c (bus_driver_handle_remove_match)
8643         (bus_driver_handle_add_match): send an ack reply from these
8644         method calls
8645
8646         * glib/dbus-gproxy.c (dbus_gproxy_begin_call): fix order of
8647         arguments, reported by Seth Nickell
8648
8649         * bus/config-parser.c (append_rule_from_element): support
8650         eavesdrop=true|false attribute on policies so match rules 
8651         can be prevented from snooping on the system bus.
8652
8653         * bus/dbus-daemon-1.1.in: consistently use terminology "sender"
8654         and "destination" in attribute names; fix some docs bugs; 
8655         add eavesdrop=true|false attribute
8656
8657         * bus/driver.c (bus_driver_handle_add_match)
8658         (bus_driver_handle_remove_match): handle AddMatch, RemoveMatch
8659         messages
8660
8661         * dbus/dbus-protocol.h (DBUS_SERVICE_ORG_FREEDESKTOP_BROADCAST): get
8662         rid of broadcast service concept, signals are just always broadcast
8663
8664         * bus/signals.c, bus/dispatch.c, bus/connection.c, bus/bus.c:
8665         mostly implement matching rules stuff (currently only exposed as signal
8666         connections)
8667
8668 2003-09-21  Mark McLoughlin  <mark@skynet.ie>
8669
8670         * doc/dbus-specification.sgml: Change the header field name
8671         to be an enum and update the rest of the spec to reference
8672         the fields using the conventinal name.
8673
8674         * dbus/dbus-protocol.h: update to reflect the spec.
8675
8676         * doc/TODO: add item to remove the 4 byte alignment requirement.
8677         
8678         * dbus/dbus-message.c: Remove the code to generalise the
8679         header/body length and serial number header fields as named
8680         header fields so we can reference field names using the 
8681         protocol values.
8682         (append_int_field), (append_uint_field), (append_string_field):
8683         Append the field name as a byte rather than four chars.
8684         (delete_int_or_uint_field), (delete_string_field): reflect the
8685         fact that the field name and typecode now occupy 4 bytes instead
8686         of 8.
8687         (decode_string_field), (decode_header_data): update to reflect
8688         protocol changes and move the field specific encoding from
8689         decode_string_field() back into decode_header_data().
8690         
8691         * dbus/dbus-internals.[ch]: (_dbus_header_field_to_string):
8692         Add utility to aid debugging.
8693         
8694         * dbus/dbus-message-builder.c:
8695         (append_string_field), (_dbus_message_data_load): Update to
8696         reflect protocol changes; Change the FIELD_NAME directive
8697         to HEADER_FIELD and allow it to take the field's conventional
8698         name rather than the actual value.
8699         
8700         * test/data/*/*.message: Update to use HEADER_FIELD instead
8701         of FIELD_NAME; Always align the header on an 8 byte boundary
8702         *before* updating the header length.
8703
8704 2003-09-15  Havoc Pennington  <hp@pobox.com>
8705
8706         * dbus/dbus-pending-call.c: add the get/set object data
8707         boilerplate as for DBusConnection, etc. Use generic object data
8708         for the notify callback.
8709
8710         * glib/dbus-gparser.c (parse_node): parse child nodes
8711
8712         * tools/dbus-viewer.c: more hacking on the dbus-viewer
8713         
8714         * glib/dbus-gutils.c (_dbus_gutils_split_path): add a file to
8715         contain functions shared between the convenience lib and the
8716         installed lib
8717
8718         * glib/Makefile.am (libdbus_glib_1_la_LDFLAGS): add
8719         -export-symbols-regex to the GLib library
8720
8721         * dbus/dbus-object-tree.c (_dbus_object_tree_dispatch_and_unlock):
8722         fix the locking in here, and add a default handler for
8723         Introspect() that just returns sub-nodes.
8724
8725 2003-09-14  Havoc Pennington  <hp@pobox.com>
8726
8727         * glib/dbus-gthread.c (dbus_g_thread_init): rename to make g_foo
8728         rather than gfoo consistent
8729
8730         * glib/dbus-gproxy.h: delete for now, move contents to
8731         dbus-glib.h, because the include files don't work right since we
8732         aren't in the dbus/ subdir.
8733         
8734         * glib/dbus-gproxy.c (dbus_gproxy_send): finish implementing
8735         (dbus_gproxy_end_call): finish
8736         (dbus_gproxy_begin_call): finish
8737
8738         * glib/dbus-gmain.c (dbus_set_g_error): new
8739
8740         * glib/dbus-gobject.c (handle_introspect): include information
8741         about child nodes in the introspection
8742
8743         * dbus/dbus-connection.c (dbus_connection_list_registered): new
8744         function to help in implementation of introspection
8745
8746         * dbus/dbus-object-tree.c
8747         (_dbus_object_tree_list_registered_and_unlock): new function
8748
8749 2003-09-12  Havoc Pennington  <hp@pobox.com>
8750
8751         * glib/dbus-gidl.h: add common base class for all the foo_info
8752         types
8753
8754         * tools/dbus-viewer.c: add GTK-based introspection UI thingy
8755         similar to kdcop
8756
8757         * test/Makefile.am: try test srcdir -ef . in addition to test
8758         srcdir = ., one of them should work (yeah lame)
8759         
8760         * glib/Makefile.am: build the "idl" parser stuff as a convenience
8761         library
8762         
8763         * glib/dbus-gparser.h: make description_load routines return
8764         NodeInfo* not Parser*
8765
8766         * Makefile.am (SUBDIRS): build test dir after all library dirs
8767
8768         * configure.in: add GTK+ detection
8769
8770 2003-09-07  Havoc Pennington  <hp@pobox.com>
8771
8772         * Make Doxygen contented.
8773
8774 2003-09-07  Havoc Pennington  <hp@pobox.com>
8775
8776         * doc/dbus-specification.sgml: more updates
8777
8778 2003-09-06  Havoc Pennington  <hp@pobox.com>
8779
8780         * doc/dbus-specification.sgml: partial updates
8781
8782         * bus/dbus-daemon-1.1.in: fix the config file docs for the
8783         zillionth time; hopefully I edited the right file this time.
8784
8785         * bus/config-parser.c (append_rule_from_element): support
8786         send_type, send_path, receive_type, receive_path
8787
8788         * bus/policy.c: add message type and path to the list of things
8789         that can be "firewalled"
8790
8791 2003-09-06  Havoc Pennington  <hp@pobox.com>
8792
8793         * dbus/dbus-connection.c (dbus_connection_register_fallback): add this
8794         (dbus_connection_register_object_path): make this not handle
8795         messages to paths below the given path
8796
8797 2003-09-03  Havoc Pennington  <hp@pobox.com>
8798
8799         * test/glib/Makefile.am: add this with random glib-linked test
8800         programs
8801
8802         * glib/Makefile.am: remove the random test programs from here,
8803         leave only the unit tests
8804
8805         * glib/dbus-gobject.c (_dbus_gobject_test): add test for 
8806         uscore/javacaps conversion, and fix     
8807         (get_object_property, set_object_property): change to .NET
8808         convention for mapping props to methods, set_FooBar/get_FooBar, 
8809         since one language has such a convention we may as well copy it. 
8810         Plus real methods in either getFooBar or get_foo_bar style won't 
8811         collide with this convention.
8812
8813 2003-09-01  Havoc Pennington  <hp@pobox.com>
8814
8815         * glib/dbus-gparser.c: implement
8816
8817         * glib/dbus-gobject.c: start implementing skeletons support
8818
8819         * configure.in: when disabling checks/assert, also define
8820         G_DISABLE_ASSERT and G_DISABLE_CHECKS
8821
8822 2003-09-01  Havoc Pennington  <hp@pobox.com>
8823
8824         * glib/Makefile.am: rearrange a bunch of files and get "make
8825         check" framework set up
8826
8827 2003-08-31  Havoc Pennington  <hp@pobox.com>
8828
8829         * fix build with --disable-tests
8830
8831 2003-08-30  Havoc Pennington  <hp@pobox.com>
8832
8833         * dbus/dbus-connection.c: purge DBusMessageHandler
8834
8835         * dbus/dbus-message-handler.c: remove DBusMessageHandler, just 
8836         use callbacks everywhere
8837
8838 2003-08-30  Havoc Pennington  <hp@pobox.com>
8839
8840         * test/data/valid-config-files/system.d/test.conf: change to 
8841         root for the user so warnings don't get printed
8842
8843         * dbus/dbus-message.c: add dbus_message_get_path,
8844         dbus_message_set_path
8845         
8846         * dbus/dbus-object-tree.c (do_test_dispatch): add test of
8847         dispatching to a path
8848
8849         * dbus/dbus-string.c (_dbus_string_validate_path): add
8850
8851         * dbus/dbus-marshal.c (_dbus_demarshal_object_path): implement
8852         (_dbus_marshal_object_path): implement
8853
8854         * dbus/dbus-protocol.h (DBUS_HEADER_FIELD_PATH): new header field 
8855         to contain the path to the target object
8856         (DBUS_HEADER_FIELD_SENDER_SERVICE): rename
8857         DBUS_HEADER_FIELD_SENDER to explicitly say it's the sender service
8858
8859 2003-08-30  Havoc Pennington  <hp@pobox.com>
8860
8861         * dbus/dbus-object-tree.c: write tests and fix the discovered bugs
8862
8863 2003-08-29  Havoc Pennington  <hp@pobox.com>
8864
8865         * dbus/dbus-object-tree.c: modify to allow overlapping paths to be
8866         registered
8867         (struct DBusObjectSubtree): shrink this
8868         a lot, since we may have a lot of them
8869         (_dbus_object_tree_free_all_unlocked): implement
8870         (_dbus_object_tree_dispatch_and_unlock): implement
8871
8872 2003-08-29  Havoc Pennington  <hp@pobox.com>
8873
8874         * dbus/dbus-internals.h: fix _DBUS_N_GLOBAL_LOCKS
8875
8876 2003-08-28  Havoc Pennington  <hp@pobox.com>
8877
8878         purge DBusObjectID
8879         
8880         * dbus/dbus-connection.c: port to no ObjectID, create a
8881         DBusObjectTree, rename ObjectTree to ObjectPath in public API
8882
8883         * dbus/dbus-connection.h (struct DBusObjectTreeVTable): delete 
8884         everything except UnregisterFunction and MessageFunction
8885         
8886         * dbus/dbus-marshal.c: port away from DBusObjectID, 
8887         add DBUS_TYPE_OBJECT_PATH
8888         
8889         * dbus/dbus-object-registry.[hc], dbus/dbus-object.[hc], 
8890         dbus/dbus-objectid.[hc]: remove these, we are moving to 
8891         path-based object IDs
8892
8893 2003-08-25  Havoc Pennington  <hp@pobox.com>
8894
8895         Just noticed that dbus_message_test is hosed, I wonder when I
8896         broke that. I thought make check was passing earlier...
8897         
8898         * dbus/dbus-object-tree.c: add new "object tree" to match DCOP 
8899         container tree, will replace most of dbus-object-registry
8900
8901         * dbus/dbus-string.c (_dbus_string_append_printf_valist): fix C99
8902         screwup
8903
8904 2003-08-19  Havoc Pennington  <hp@pobox.com>
8905
8906         * dbus/dbus-message.c (decode_string_field): support FIELD_SENDER
8907         (dbus_message_is_error): fix this function
8908
8909         * bus/dbus-daemon-1.1: clarify logic on when <deny>/<allow> rules
8910         match
8911
8912         * bus/policy.c (bus_client_policy_check_can_receive): fix code to
8913         reflect clarified man page
8914         (bus_client_policy_check_can_send): ditto
8915         
8916         * bus/session.conf.in: fixup
8917
8918         * bus/system.conf.in: fixup
8919
8920 2003-08-18  Havoc Pennington  <hp@redhat.com>
8921
8922         * dbus/dbus-hash.c (_dbus_hash_table_insert_two_strings): fix
8923
8924         * dbus/dbus-message.c (_dbus_message_loader_queue_messages): fix
8925         dumb bug created earlier (wrong order of args to
8926         decode_header_data())
8927         
8928         * tools/dbus-send.c: port
8929
8930         * tools/dbus-print-message.c (print_message): port
8931
8932         * test/data/*messages: port all messages over
8933         
8934         * dbus/dbus-message-builder.c: support including 
8935         message type
8936         
8937         * bus/driver.c: port over
8938         
8939         * bus/dispatch.c: port over to new stuff
8940
8941         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
8942         rename disconnect signal to "Disconnected"
8943
8944 2003-08-17  Havoc Pennington  <hp@pobox.com>
8945
8946         This doesn't compile yet, but syncing up so I can hack on it from
8947         work. What are branches for if not broken code? ;-)
8948         
8949         * dbus/dbus-protocol.h: remove DBUS_HEADER_FIELD_NAME, add
8950         DBUS_HEADER_FIELD_INTERFACE, DBUS_HEADER_FIELD_MEMBER,
8951         DBUS_HEADER_FIELD_ERROR_NAME
8952         
8953         * dbus/dbus-hash.c: Introduce DBUS_HASH_TWO_STRINGS as hack to use
8954         for the interface+member pairs
8955         (string_hash): change to use g_str_hash algorithm
8956         (find_direct_function, find_string_function): refactor these to
8957         share most code.
8958         
8959         * dbus/dbus-message.c: port all of this over to support 
8960         interface/member fields instead of name field
8961
8962         * dbus/dbus-object-registry.c: port over
8963         
8964         * dbus/dbus-string.c (_dbus_string_validate_interface): rename
8965         from _dbus_string_validate_name
8966
8967         * bus/dbus-daemon-1.1: change file format for the 
8968         <deny>/<allow> stuff to match new message naming scheme
8969
8970         * bus/policy.c: port over
8971
8972         * bus/config-parser.c: parse new format
8973         
8974 2003-08-16  Havoc Pennington  <hp@pobox.com>
8975
8976         * dbus/dbus-object-registry.c (add_and_remove_objects): remove
8977         broken assertion
8978
8979         * glib/dbus-gproxy.c: some hacking
8980
8981 2003-08-15  Havoc Pennington  <hp@redhat.com>
8982
8983         * dbus/dbus-pending-call.c (dbus_pending_call_block): implement
8984
8985         * dbus/dbus-connection.c
8986         (dbus_connection_send_with_reply_and_block): factor out internals;
8987         change to convert any error replies to DBusError instead of 
8988         returning them as a message
8989
8990 2003-08-15  Havoc Pennington  <hp@pobox.com>
8991
8992         * dbus/dbus-connection.c, 
8993         dbus/dbus-pending-call.c: Finish the pending call stuff
8994
8995 2003-08-14  Havoc Pennington  <hp@redhat.com>
8996
8997         * dbus/dbus-pending-call.c: start on new object that will replace
8998         DBusMessageHandler and ReplyHandlerData for tracking outstanding
8999         replies
9000
9001         * dbus/dbus-gproxy.c: start on proxy object used to communicate
9002         with remote interfaces
9003
9004         * dbus/dbus-gidl.c: do the boring boilerplate in here
9005         
9006 2003-08-12  Havoc Pennington  <hp@pobox.com>
9007
9008         * bus/dispatch.c (bus_dispatch): make this return proper 
9009         DBusHandlerResult to avoid DBUS_ERROR_UNKNOWN_METHOD
9010
9011         * dbus/dbus-errors.c (dbus_set_error): use
9012         _dbus_string_append_printf_valist
9013
9014         * dbus/dbus-string.c (_dbus_string_append_printf_valist)
9015         (_dbus_string_append_printf): new
9016
9017         * dbus/dbus-errors.h (DBUS_ERROR_UNKNOWN_MESSAGE): change to
9018         UNKNOWN_METHOD
9019
9020         * dbus/dbus-connection.c (dbus_connection_dispatch): handle
9021         DBUS_HANDLER_RESULT_NEED_MEMORY; send default error reply if a
9022         message is unhandled.
9023
9024 2003-08-11  Havoc Pennington  <hp@pobox.com>
9025
9026         * bus/test.c (client_disconnect_handler): change to return
9027         HANDLED (would have been REMOVE_MESSAGE)
9028
9029         * dbus/dbus-object.h (enum DBusHandlerResult): rename to
9030         HANDLED/NOT_YET_HANDLED instead of
9031         REMOVE_MESSAGE/ALLOW_MORE_HANDLERS to make it clearer how it 
9032         should be used.
9033
9034 2003-08-10  Havoc Pennington  <hp@pobox.com>
9035
9036         * tools/dbus-send.c (main): add --type argument, for now
9037         supporting only method_call and signal types.
9038
9039         * tools/dbus-print-message.c: print message type
9040
9041         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
9042         init connection->objects
9043
9044         * doc/dbus-specification.sgml: fix sgml
9045
9046         * bus/*.c: port over to object-instance API changes
9047
9048         * test/test-service.c: ditto
9049         
9050         * dbus/dbus-message.c (dbus_message_create_header): allow #NULL
9051         name, we will have to fix up the rest of the code to also handle
9052         this
9053         (dbus_message_new): generic message-creation call
9054         (set_string_field): allow appending name field
9055
9056 2003-08-06  Havoc Pennington  <hp@pobox.com>
9057
9058         * dbus/dbus-object-registry.c: implement signal connection 
9059         and dispatch
9060
9061         * dbus/dbus-connection.c (_dbus_connection_unref_unlocked): new
9062
9063         * dbus/dbus-internals.c (_dbus_memdup): new function
9064
9065 2003-08-02  Havoc Pennington  <hp@pobox.com>
9066
9067         * dbus/dbus-message.c (dbus_message_get_no_reply)
9068         (dbus_message_set_no_reply): add these and remove
9069         set_is_error/get_is_error
9070
9071         * dbus/dbus-protocol.h, doc/dbus-specification.sgml: 
9072         remove the ERROR flag, since there's now an ERROR type
9073
9074 2003-08-01  Havoc Pennington  <hp@pobox.com>
9075
9076         * dbus/dbus-object-registry.c (_dbus_object_registry_handle_and_unlock):
9077         implement
9078
9079         * dbus/dbus-message.c (dbus_message_get_type): new function
9080
9081         * doc/dbus-specification.sgml: add "type" byte to messages
9082
9083 2003-08-01  Havoc Pennington  <hp@pobox.com>
9084
9085         * dbus/dbus-protocol.h (DBUS_MESSAGE_TYPE_*): introduce
9086         a message type enum to distinguish kinds of message
9087         (DBUS_HEADER_FLAG_NO_REPLY_EXPECTED): flag for a message 
9088         that need not be replied to
9089
9090 2003-08-01  Havoc Pennington  <hp@pobox.com>
9091
9092         * dbus/dbus-marshal.c: adapt to DBusObjectID changes
9093         (unpack_8_octets): fix no-64-bit-int bug
9094
9095         * dbus/dbus-object-registry.c (validate_id): validate the 
9096         connection ID bits, not just the instance ID.
9097
9098         * dbus/dbus-connection.c (_dbus_connection_init_id): initialize
9099         the connection-global 33 bits of the object ID
9100
9101         * dbus/dbus-object-registry.c (info_from_entry): fill in 
9102         object ID in the new way
9103
9104         * dbus/dbus-objectid.h: rather than high/low bits, specifically 
9105         define server/client/instance bits.
9106
9107 2003-07-30  Havoc Pennington  <hp@pobox.com>
9108
9109         * dbus/dbus-connection.c (dbus_connection_register_object): fix
9110         build
9111
9112 2003-07-13  Havoc Pennington  <hp@pobox.com>
9113
9114         * dbus/dbus-object.h (struct DBusObjectVTable): add padding
9115         fields to DBusObjectVTable and DBusObjectInfo
9116
9117 2003-07-12  Havoc Pennington  <hp@pobox.com>
9118
9119         * dbus/dbus-object-registry.c: implement unit test,
9120         fix bugs discovered in process
9121
9122         * dbus/dbus-connection.c: remove handler_table and
9123         register_handler(), add DBusObjectRegistry usage
9124
9125         * dbus/dbus-objectid.c (dbus_object_id_is_null)
9126         (dbus_object_id_set_null): new functions
9127
9128 2003-07-08  Havoc Pennington  <hp@pobox.com>
9129
9130         * dbus/dbus-object.c: implement some of this
9131
9132         * dbus/dbus-object-registry.c
9133         (_dbus_object_registry_add_and_unlock): fill in the object_id out
9134         param
9135         (_dbus_object_registry_new): handle OOM
9136
9137 2003-07-08  Havoc Pennington  <hp@pobox.com>
9138
9139         * dbus/dbus-object.h: sketch out an API for registering objects
9140         with a connection, that allows us to use as little as 24 bytes
9141         per object and lets application code represent an object in 
9142         any conceivable way.
9143
9144         * dbus/dbus-object-registry.c: implement the hard bits of the
9145         DBusConnection aspect of object API. Not yet wired up.
9146         
9147 2003-07-06  Havoc Pennington  <hp@pobox.com>
9148
9149         * dbus/dbus-marshal.c (_dbus_marshal_set_object_id): new function
9150         (_dbus_marshal_object_id): new
9151         (_dbus_demarshal_object_id): new
9152         (_dbus_marshal_get_arg_end_pos): support object ID type, and
9153         consolidate identical switch cases. Don't conditionalize handling
9154         of DBUS_TYPE_UINT64, need to handle the type always.
9155         (_dbus_marshal_validate_arg): consolidate identical cases, and
9156         handle DBUS_TYPE_OBJECT_ID
9157
9158         * dbus/dbus-objectid.c: new file with DBusObjectID data type.
9159
9160         * dbus/dbus-protocol.h: add DBUS_TYPE_OBJECT_ID
9161
9162 2003-09-28  Havoc Pennington  <hp@pobox.com>
9163
9164         * real 0.13 release
9165
9166 2003-09-28  Havoc Pennington  <hp@pobox.com>
9167
9168         * doc/Makefile.am (dbus-specification.html): testing a funky hack
9169         to work with Debian db2html
9170
9171 2003-09-28  Havoc Pennington  <hp@pobox.com>
9172
9173         * configure.in: 0.13
9174
9175         * doc/Makefile.am (dbus-test-plan.html): accept nonexistence of
9176         stylesheet-images for benefit of Debian
9177         
9178         Change back to using filesystem-linked sockets for the system
9179         bus, so only root can create the default system bus address.
9180         
9181         * bus/system.conf.in: change to use
9182         DBUS_SYSTEM_BUS_DEFAULT_ADDRESS
9183
9184         * dbus/Makefile.am (INCLUDES): remove DBUS_SYSTEM_BUS_PATH define
9185         from here.
9186
9187         * configure.in: define DBUS_SYSTEM_BUS_DEFAULT_ADDRESS
9188         here, and AC_DEFINE DBUS_SYSTEM_PATH
9189
9190 2003-08-09  Anders Carlsson  <andersca@codefactory.se>
9191
9192         * doc/TODO:
9193         * doc/busconfig.dtd:
9194         Add busconfig DTD.
9195         
9196 2003-08-09  Anders Carlsson  <andersca@codefactory.se>
9197
9198         * doc/dbus-specification.sgml:
9199         Add activation reply values.
9200         
9201 2003-08-05  Havoc Pennington  <hp@redhat.com>
9202
9203         * configure.in: 0.12
9204
9205 2003-08-05  Anders Carlsson  <andersca@codefactory.se>
9206
9207         * glib/dbus-gmain.c: (watch_fd_new), (watch_fd_ref),
9208         (watch_fd_unref), (dbus_gsource_check), (dbus_gsource_dispatch),
9209         (add_watch), (remove_watch), (create_source):
9210         Refcount fds, fixes some reentrancy issues.
9211         
9212 2003-07-30  Havoc Pennington  <hp@redhat.com>
9213
9214         * dbus/dbus-bus.c (init_connections_unlocked): fix default system
9215         bus address to be abstract if we have abstract sockets
9216
9217         * NEWS: update
9218
9219 2003-07-28  Havoc Pennington  <hp@redhat.com>
9220
9221         * bus/messagebus.in: fix to avoid processname/servicename 
9222         confusion, from Michael Kearey
9223         https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=100965
9224         
9225 2003-07-23  Havoc Pennington  <hp@pobox.com>
9226
9227         * dbus/dbus-message.c (dbus_message_iter_get_named): 
9228         fix from Andy Hanton to remove broken "+1"
9229
9230 2003-07-16  Havoc Pennington  <hp@pobox.com>
9231
9232         * tools/dbus-launch.c (babysit): close stdout/stderr in the
9233         babysitter process, as suggested by Thomas Leonard, so 
9234         an "eval `dbus-launch --exit-with-session`" will actually 
9235         return
9236
9237 2003-07-16  Havoc Pennington  <hp@pobox.com>
9238
9239         * configure.in: print out EXPANDED_* variables in the summary at
9240         the end; clean up the code that computes EXPANDED_ variables and
9241         get the ones using exec_prefix right. Should make things work
9242         when you build without --prefix
9243
9244 2003-06-29  Havoc Pennington  <hp@pobox.com>
9245
9246         * mono/Test.cs (class Test): fire up a main loop and run it
9247
9248         * mono/DBus.cs (DBus): don't g_thread_init since it can only be
9249         done once, the app has to do it
9250
9251 2003-06-26  Havoc Pennington  <hp@pobox.com>
9252
9253         * mono/Connection.cs: set up connection with the glib main loop
9254
9255 2003-07-01  Havoc Pennington  <hp@redhat.com>
9256
9257         * doc/dbus-specification.sgml: clarify the format of a type code,
9258         change suggested by Jim Blandy
9259
9260 2003-06-29  Miloslav Trmac  <mitr@volny.cz>
9261
9262         * doc/Makefile.am:
9263         * tools/Makefile.am: Don't assume srcdir == builddir.
9264
9265         * dbus/dbus-memory.c (dbus_realloc): Don't check guards after shrinking
9266         the allocated block.
9267         (_dbus_memory_test): New function.
9268         * dbus/dbus-test.h: Add _dbus_memory_test ().
9269         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): Call it.
9270
9271         * dbus/dbus-message.c (decode_header_data): Use %.4s instead
9272         of %c%c%c%c.
9273         (dbus_message_new): Remove obsolete @todo.
9274
9275         * dbus/dbus-marshal.c (_dbus_marshal_set_int64)
9276         (_dbus_marshal_set_uint64): Fix comment.
9277
9278         * dbus/dbus-message.c (append_int_field, append_uint_field): Don't
9279         hardcode FIELD_REPLY_SERIAL.
9280
9281         * dbus/dbus-mainloop.c (_dbus_loop_remove_watch)
9282         (_dbus_loop_remove_timeout): Cast function pointers to (void *) for %p
9283
9284         * configure.in: Add -D_POSIX_C_SOURCE=199309L -DBSD_SOURCE to CFLAGS
9285         and disable DBUS_USE_ATOMIC_INT_486 when --enable-ansi is used
9286
9287 2003-06-24  Havoc Pennington  <hp@pobox.com>
9288
9289         * mono/*.cs: Use IntPtr.Zero instead of ((IntPtr) 0)
9290
9291 2003-06-23  Anders Carlsson  <andersca@codefactory.se>
9292
9293         * configure.in:
9294         * gcj/.cvsignore:
9295         * gcj/Hello.java:
9296         * gcj/Makefile.am:
9297         * gcj/TestMessage.java: (TestMessage), (TestMessage.main):
9298         * gcj/org/.cvsignore:
9299         * gcj/org/Makefile.am:
9300         * gcj/org/freedesktop/.cvsignore:
9301         * gcj/org/freedesktop/Makefile.am:
9302         * gcj/org/freedesktop/dbus/.cvsignore:
9303         * gcj/org/freedesktop/dbus/Makefile.am:
9304         * gcj/org/freedesktop/dbus/Message.java: (Message),
9305         (Message.Message):
9306         * gcj/org/freedesktop/dbus/natMessage.cc:
9307         Fix the build system.
9308
9309 2003-06-22  Havoc Pennington  <hp@pobox.com>
9310
9311         * mono/Connection.cs: add more bindings
9312
9313         * dbus/dbus-threads.c (dbus_threads_init): allow calling this
9314         more than once.
9315
9316 2003-06-22  Havoc Pennington  <hp@pobox.com>
9317
9318         * mono/Connection.cs, mono/DBus.cs, mono/Error.cs:
9319         Start wrapping more stuff.
9320
9321 2003-06-22  Havoc Pennington  <hp@pobox.com>
9322
9323         * mono/Message.cs: implement Message.Wrap() that ensures we only
9324         have a single C# wrapper per DBusMessage, assuming it works which
9325         it probably doesn't.
9326
9327         * dbus/dbus-message.c (dbus_message_allocate_data_slot): new
9328         (dbus_message_free_data_slot): new
9329         (dbus_message_set_data): new
9330         (dbus_message_get_data): new
9331
9332 2003-06-22  Havoc Pennington  <hp@pobox.com>
9333
9334         * dbus/dbus-dataslot.c (_dbus_data_slot_allocator_unref)
9335         (_dbus_data_slot_allocator_alloc): rework these to keep a
9336         reference count on each slot and automatically manage a global
9337         slot ID variable passed in by address
9338
9339         * bus/bus.c: convert to new dataslot API
9340
9341         * dbus/dbus-bus.c: convert to new dataslot API
9342
9343         * dbus/dbus-connection.c: convert to new dataslot API
9344
9345         * dbus/dbus-server.c: convert to new dataslot API
9346
9347         * glib/dbus-gmain.c: ditto
9348
9349         * bus/test.c: ditto
9350
9351         * bus/connection.c: ditto
9352
9353 2003-06-22  Anders Carlsson  <andersca@codefactory.se>
9354
9355         * configure.in: Add AM_PROG_GCJ and move AM_PROG_LIBTOOL
9356         after the gcj checks so that the correct configuration tags
9357         will be added to libtool.
9358
9359         * dbus-glib-1.pc.in: No need to specify any includes since
9360         dbus-1.pc.in has those.
9361
9362 2003-06-22  Havoc Pennington  <hp@pobox.com>
9363
9364         * mono/*, gcj/*, configure.in, Makefile.am:
9365         Check in makefiles and subdirs for mono and gcj bindings.
9366         Neither binding actually exists, just trying to get through
9367         all the build and other boring bits.
9368
9369 2003-06-21  Philip Blundell  <philb@gnu.org>
9370
9371         * tools/dbus-monitor.1: Updated.
9372
9373         * tools/dbus-send.1: Likewise.
9374
9375 2003-06-20  Anders Carlsson  <andersca@codefactory.se>
9376
9377         * dbus/dbus-transport-unix.c (unix_handle_watch): Check
9378         for hangup and error after checking read so we won't discard
9379         pending data if both hangup and read are set.
9380
9381 2003-06-19  Philip Blundell  <philb@gnu.org>
9382
9383         * tools/dbus-print-message.c (print_message): Handle BOOLEAN.
9384
9385         * tools/dbus-send.c: Accept both --system and --session.
9386
9387         * tools/dbus-monitor.c: Same here.
9388
9389 2003-06-19  Anders Carlsson  <andersca@codefactory.se>
9390
9391         * glib/dbus-glib.h: Fix so that dbus-glib.h can be used
9392         from C++ (Patch by Miloslav Trmac).
9393
9394 2003-06-15  Joe Shaw  <joe@assbarn.com>
9395
9396         * configure.in: Check for socklen_t.
9397
9398         * dbus/dbus-sysdeps.c: Define socklen_t if it's not defined.
9399
9400         * test/test-segfault.c: Add #include <sys/time.h>
9401
9402         * tools/Makefile.am: Add DBUS_X_CFLAGS to the INCLUDES since
9403         dbus-launch needs it.
9404
9405 2003-06-09  Havoc Pennington  <hp@redhat.com>
9406
9407         * dbus/dbus-sysdeps.c (_dbus_listen_unix_socket): don't use
9408         SUN_LEN, it breaks abstract socket usage
9409
9410         * dbus/dbus-internals.c (_dbus_verbose_real): only print PID at
9411         starts of lines.
9412
9413 2003-06-04  Havoc Pennington  <hp@pobox.com>
9414
9415         * dbus/dbus-server.c (dbus_server_listen): allow abstract sockets
9416         using unix:abstract=/foo, and when listening in a tmpdir
9417         i.e. unix:tmpdir=/tmp, always use abstract sockets if we can.
9418
9419         * dbus/dbus-transport.c (_dbus_transport_open): support
9420         unix:abstract=/foo
9421
9422         * dbus/dbus-server-unix.c (_dbus_server_new_for_domain_socket):
9423         support abstract sockets
9424
9425         * dbus/dbus-transport-unix.c
9426         (_dbus_transport_new_for_domain_socket): support abstract sockets
9427
9428         * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket): add "abstract"
9429         toggle as an argument, implement abstract namespace support
9430         (_dbus_listen_unix_socket): ditto
9431
9432         * configure.in: add --enable-abstract-sockets and implement
9433         a configure check for autodetection of the right value.
9434
9435 2003-06-01  Havoc Pennington  <hp@pobox.com>
9436
9437         * tools/dbus-cleanup-sockets.c: add utility to clean up sockets
9438         in /tmp (though on Linux this will end up being useless,
9439         when we add abstract namespace support)
9440
9441         * configure.in: define DBUS_SESSION_SOCKET_DIR in addition to
9442         subst'ing it
9443
9444 2003-05-28  Colin Walters  <walters@verbum.org>
9445
9446         * tools/dbus-monitor.c (main): Fix silly typo (s/--session/--system/).
9447
9448 2003-05-18  Anders Carlsson  <andersca@codefactory.se>
9449
9450         * dbus/dbus-message.c (dbus_message_new): Remove @todo.
9451
9452 2003-05-17  Colin Walters  <walters@gnu.org>
9453
9454         * tools/dbus-send.c: Don't exit with an error code if --help was
9455         passed.  Default to using the session bus instead of the system
9456         one.
9457
9458         * tools/dbus-launch.c: Ditto.
9459
9460         * tools/dbus-monitor.c: Ditto.
9461
9462         * tools/dbus-send.1: Update with new arguments.
9463
9464         * tools/dbus-launch.c: Emit code to export variables.  New
9465         arguments -s and -c to specify shell syntax, and a bit of code to
9466         autodetect syntax.  Also, allow specifying a program to run.
9467
9468         * tools/dbus-launch.1: Update with new arguments.
9469
9470         * tools/dbus-send.1: Ditto.
9471
9472         * tools/dbus-monitor.1: Ditto.
9473
9474 2003-05-17  Havoc Pennington  <hp@pobox.com>
9475
9476         * bus/config-parser.c (merge_included): merge in policies from
9477         child configuration file.
9478
9479         * bus/policy.c (bus_policy_merge): function to merge two policies
9480         together
9481
9482 2003-05-16  Havoc Pennington  <hp@redhat.com>
9483
9484         * dbus/dbus-connection.c: disable verbose lock spew
9485
9486         * tools/dbus-send.c: add --print-reply command line option
9487
9488         * tools/dbus-print-message.h (print_message): new util function
9489         shared by dbus-send and dbus-monitor
9490
9491         * tools/dbus-monitor.c (handler_func): exit on disconnect
9492
9493         * dbus/dbus-transport-unix.c (do_reading): if the transport is
9494         disconnected, don't try to use the read_watch
9495
9496         * dbus/dbus-watch.c (dbus_watch_get_enabled): assert watch != NULL
9497         so we can find this bug more easily
9498
9499 2003-05-16  Havoc Pennington  <hp@redhat.com>
9500
9501         * bus/policy.c (free_rule_list_func): avoid a crash when passed
9502         NULL as DBusHashTable is annoyingly likely to do.
9503
9504 2003-05-16  Colin Walters  <walters@verbum.org>
9505
9506         * tools/dbus-monitor.c: Add --session argument and usage()
9507         function.
9508
9509         * tools/dbus-monitor.1: Update with new --session arg.
9510
9511         * bus/Makefile.am (install-data-hook): Create
9512         $(libdir)/dbus-1.0/services so that the session bus is happy.
9513
9514 2003-05-15  Havoc Pennington  <hp@redhat.com>
9515
9516         * dbus/dbus-sysdeps.c (_dbus_atomic_dec, _dbus_atomic_inc): work
9517         on non-x86. ifdef's are evil.
9518
9519 2003-05-15  Havoc Pennington  <hp@redhat.com>
9520
9521         * configure.in: 0.11
9522
9523         * NEWS: update
9524
9525         * bus/Makefile.am (initddir): apparently we are supposed to put
9526         init scripts in /etc/rc.d/init.d not /etc/init.d
9527
9528         * bus/Makefile.am: remove the "you must --enable-tests to make
9529         check" as it broke distcheck
9530
9531         * bus/Makefile.am (install-data-hook): create /etc/dbus-1/system.d
9532
9533 2003-05-13  James Willcox  <jwillcox@gnome.org>
9534
9535         * configure.in:
9536         * bus/activation.c: (bus_activation_service_created),
9537         (bus_activation_activate_service):
9538         * bus/driver.c: (bus_driver_send_service_deleted),
9539         (bus_driver_send_service_created), (bus_driver_send_service_lost),
9540         (bus_driver_send_service_acquired),
9541         (bus_driver_send_welcome_message),
9542         (bus_driver_handle_list_services):
9543         * bus/session.conf.in:
9544         * dbus/dbus-bus.c: (dbus_bus_acquire_service),
9545         (dbus_bus_service_exists), (dbus_bus_activate_service):
9546         * dbus/dbus-bus.h:
9547
9548         Add some convenience API which lets you activate a service, and did a
9549         bunch of s/0/DBUS_TYPE_INVALID/ in calls to dbus_message_append_args()
9550         and dbus_message_get_args()
9551
9552 2003-05-11  Havoc Pennington  <hp@pobox.com>
9553
9554         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): fix to avoid
9555         calling _dbus_marshal_validate_arg() for every byte in a byte
9556         array, etc.
9557
9558         * dbus/dbus-message-handler.c: use atomic reference counting to
9559         reduce number of locks slightly; the global lock in here sucks
9560
9561         * dbus/dbus-connection.c
9562         (_dbus_connection_update_dispatch_status_and_unlock): variant of
9563         update_dispatch_status that can be called with lock held; then use
9564         in a couple places to reduce locking/unlocking
9565         (dbus_connection_send): hold the lock over the whole function
9566         instead of acquiring it twice.
9567
9568         * dbus/dbus-timeout.c (_dbus_timeout_new): handle OOM
9569
9570         * bus/connection.c (bus_connections_setup_connection): fix access
9571         to already-freed memory.
9572
9573         * dbus/dbus-connection.c: keep a little cache of linked list
9574         nodes, to avoid using the global linked list alloc lock in the
9575         normal send-message case. Instead we just use the connection lock
9576         that we already have to take.
9577
9578         * dbus/dbus-list.c (_dbus_list_find_last): new function
9579
9580         * dbus/dbus-sysdeps.c (_dbus_atomic_inc, _dbus_atomic_dec):
9581         change to use a struct for the atomic type; fix docs,
9582         they return value before increment, not after increment.
9583
9584         * dbus/dbus-string.c (_dbus_string_append_4_aligned)
9585         (_dbus_string_append_8_aligned): new functions to try to
9586         microoptimize this operation.
9587         (reallocate_for_length): break this out of set_length(), to
9588         improve profile info, and also so we can consider inlining the
9589         set_length() part.
9590
9591         * dbus/dbus-message.c (dbus_message_new_empty_header): init data
9592         strings with some preallocation, cuts down on our calls to realloc
9593         a fair bit. Though if we can get the "move entire string to empty
9594         string" optimization below to kick in here, it would be better.
9595
9596         * dbus/dbus-string.c (_dbus_string_move): just call
9597         _dbus_string_move_len
9598         (_dbus_string_move_len): add a special case for moving
9599         an entire string into an empty string; we can just
9600         swap the string data instead of doing any reallocs.
9601         (_dbus_string_init_preallocated): new function
9602
9603 2003-05-11  Havoc Pennington  <hp@pobox.com>
9604
9605         Write a "test-profile" that does echo client-server with threads;
9606         profile reveals lock contention, memcpy/realloc of buffers, and
9607         UTF-8 validation as hot spots. 20% of lock contention eliminated
9608         with dbus_atomic_inc/dec implementation on x86.  Much remaining
9609         contention is global mempool locks for GList and DBusList.
9610
9611         * dbus/dbus-sysdeps.c (_dbus_atomic_inc, _dbus_atomic_dec): add
9612         x86 implementation
9613
9614         * dbus/dbus-connection.c (struct DBusConnection): use
9615         dbus_atomic_t for the reference count
9616
9617         * dbus/dbus-message.c (struct DBusMessage): declare
9618         dbus_atomic_t values as volatile
9619
9620         * configure.in: code to detect ability to use atomic integer
9621         operations in assembly, from GLib patch
9622
9623         * dbus/dbus-internals.c (_dbus_verbose_real): call getpid every
9624         time, tired of it being wrong in threads and forked processes
9625
9626         * glib/test-profile.c: a little program to bounce messages back
9627         and forth between threads and eat CPU
9628
9629         * dbus/dbus-connection.c: add debug spew macros for debugging
9630         thread locks; include config.h at top; fix deadlock in
9631         dbus_connection_flush()
9632
9633 2003-05-08  Havoc Pennington  <hp@pobox.com>
9634
9635         * dbus/dbus-spawn.c: s/_exit/exit/ because it was keeping gcov
9636         data from getting written, and there wasn't a good reason to
9637         use _exit really.
9638
9639         * test/decode-gcov.c (mark_inside_dbus_build_tests): don't count
9640         dbus_verbose lines in test coverage
9641         (main): add list of functions sorted by # of untested blocks
9642         to the coverage report
9643
9644         * dbus/dbus-mempool.c: put some test-only code in DBUS_BUILD_TESTS
9645
9646         * dbus/dbus-marshal.c (_dbus_marshal_test): extend test coverage
9647
9648         * dbus/dbus-message-handler.c (_dbus_message_handler_test):
9649         extend test coverage
9650
9651         * test/data/auth/cancel.auth-script: test canceling an
9652         authentication
9653
9654         * dbus/Makefile.am: remove dbus-server-debug.[hc] for now, as they
9655         aren't used. in CVS history if we end up needing them.
9656
9657 2003-05-04  Havoc Pennington  <hp@pobox.com>
9658
9659         * dbus/dbus-message-handler.c (_dbus_message_handler_test): add
9660         unit test
9661
9662         * dbus/dbus-marshal.c (_dbus_demarshal_string_array): fix this
9663         function, which assumed length was in # of strings, not bytes
9664
9665         * dbus/dbus-message.c (_dbus_message_test): add tests for some
9666         missing coverage
9667
9668         * dbus/dbus-connection.c
9669         (_dbus_connection_queue_received_message): disable function for
9670         now, we are only using it in test mode
9671
9672         * dbus/dbus-message.c (_dbus_message_loader_queue_messages):
9673         remove a mistaken FIXME
9674
9675 2003-05-04  Havoc Pennington  <hp@pobox.com>
9676
9677         * dbus/dbus-connection.c (dbus_connection_preallocate_send):
9678         unlock mutex on successful return, patch from Anders Gustafsson
9679
9680 2003-05-04  Havoc Pennington  <hp@pobox.com>
9681
9682         * dbus-glib-1.pc.in (Requires): fix dependencies, from
9683         Anders Gustafsson
9684
9685 2003-05-04  Havoc Pennington  <hp@pobox.com>
9686
9687         * tools/dbus-launch.c: implement
9688
9689         * bus/main.c (main), bus/bus.c (bus_context_new):
9690         implement --print-pid and --fork
9691
9692 2003-05-03  Havoc Pennington  <hp@redhat.com>
9693
9694         * dbus/dbus-address.c (dbus_parse_address): fix bug when a key in
9695         the address had no value, and add to test suite. Fix and
9696         regression test from Miloslav Trmac
9697
9698 2003-05-03  Havoc Pennington  <hp@pobox.com>
9699
9700         * dbus/dbus-watch.c (dbus_watch_handle): warn and return if a
9701         watch is invalid when handled
9702
9703         * tools/Makefile.am, tools/dbus-launch.c, tools/dbus-launch.1: add
9704         dbus-launch utility to launch the bus from a shell script.  Didn't
9705         actually implement dbus-launch yet, it's just a placeholder still.
9706
9707 2003-05-03  Havoc Pennington  <hp@pobox.com>
9708
9709         * bus/Makefile.am, bus/dbus-daemon-1.1.in: man page for the
9710         daemon; also documents daemon config file, so replaces
9711         doc/config-file.txt. Corrected some stuff from config-file.txt in
9712         the process of moving it.
9713
9714 2003-05-03  Havoc Pennington  <hp@pobox.com>
9715
9716         * tools/Makefile.am, tools/dbus-send.1, tools/dbus-monitor.1:
9717         add some man pages
9718
9719 2003-05-03  Colin Walters  <walters@verbum.org>
9720
9721         * dbus/dbus-sysdeps.c (fill_user_info): Test against
9722         DBUS_UID_UNSET to determine whether to do a uid lookup or not.
9723
9724         * Makefile.am: Update to use new .pc versioning scheme.
9725
9726 2003-05-02  Havoc Pennington  <hp@redhat.com>
9727
9728         * bus/system.conf.in: allow send/receive to/from message bus
9729         service
9730
9731 2003-04-30  Havoc Pennington  <hp@redhat.com>
9732
9733         * configure.in: print a note when building with unit tests and
9734         without assertions
9735
9736 2003-04-30  Havoc Pennington  <hp@redhat.com>
9737
9738         * Makefile.am: add a check-local that complains if you didn't
9739         configure with --enable-tests
9740
9741 2003-04-29  Havoc Pennington  <hp@redhat.com>
9742
9743         * glib/dbus-gmain.c: docs cleanups
9744
9745         * dbus/dbus-types.h: add docs on int64 types
9746
9747         * dbus/dbus-memory.c: fix docs to avoid putting private API in
9748         public API docs section
9749
9750 2003-04-29  Havoc Pennington  <hp@redhat.com>
9751
9752         * dbus-1.pc.in, dbus-glib-1.pc.in: rename these from
9753         dbus-1.0.pc.in, dbus-glib-1.0.pc.in. As these change with the
9754         parallel install API version, not with the D-BUS package version.
9755
9756         * HACKING: move some of README over here
9757
9758         * README: updates, and document API/ABI policy
9759
9760         * configure.in: reindentation
9761
9762 2003-04-29  Havoc Pennington  <hp@redhat.com>
9763
9764         * dbus/dbus.h: add "you have to define DBUS_API_SUBJECT_TO_CHANGE
9765         to use this library" to be sure people have the right
9766         expectations.
9767
9768 2003-04-28  Havoc Pennington  <hp@redhat.com>
9769
9770         * configure.in: add --enable-docs which by default is auto yes if
9771         doxygen and db2html found, no otherwise; but can be forced on/off
9772
9773         * doc/Makefile.am: conditionalize whether to build docs on
9774         --enable-docs
9775
9776 2003-04-28  Havoc Pennington  <hp@redhat.com>
9777
9778         * configure.in: 0.10
9779
9780         * NEWS: update
9781
9782         * bus/system.conf.in: add <includedir>system.d</includedir>
9783
9784         * dbus/dbus-userdb.c (_dbus_user_database_lookup): fix bug when
9785         username was provided but not uid
9786
9787         * bus/config-parser.c (struct BusConfigParser): keep track of
9788         whether the parser is toplevel or was included; change some
9789         of the error handling if it's included.
9790
9791 2003-04-27  Havoc Pennington  <hp@pobox.com>
9792
9793         Unbreak my code...
9794
9795         * dbus/dbus-transport.c (_dbus_transport_get_dispatch_status):
9796         report correct status if we finish processing authentication
9797         inside this function.
9798
9799         * bus/activation.c (try_send_activation_failure): use
9800         bus_transaction_send_error_reply
9801
9802         * bus/connection.c (bus_connection_get_groups): return an error
9803         explaining the problem
9804
9805         * bus/bus.c (bus_context_check_security_policy): implement
9806         restriction here that inactive connections can only send the
9807         hello message. Also, allow bus driver to send anything to
9808         any recipient.
9809
9810         * bus/connection.c (bus_connection_complete): create the
9811         BusClientPolicy here instead of on-demand.
9812         (bus_connection_get_policy): don't return an error
9813
9814         * dbus/dbus-message.c (dbus_message_new_error_reply): allow NULL
9815         sender field in message being replied to
9816
9817         * bus/bus.c (bus_context_check_security_policy): fix silly typo
9818         causing it to return FALSE always
9819
9820         * bus/policy.c (bus_client_policy_check_can_send): fix bug where
9821         we checked sender rather than destination
9822
9823 2003-04-25  Havoc Pennington  <hp@redhat.com>
9824
9825         test suite is slightly hosed at the moment, will fix soon
9826
9827         * bus/connection.c (bus_connections_expire_incomplete): fix to
9828         properly disable the timeout when required
9829         (bus_connection_set_name): check whether we can remove incomplete
9830         connections timeout after we complete each connection.
9831
9832         * dbus/dbus-mainloop.c (check_timeout): fix this up a bit,
9833         probably still broken.
9834
9835         * bus/services.c (bus_registry_acquire_service): implement max
9836         number of services owned, and honor allow/deny rules on which
9837         services a connection can own.
9838
9839         * bus/connection.c (bus_connection_get_policy): report errors here
9840
9841         * bus/activation.c: implement limit on number of pending
9842         activations
9843
9844 2003-04-25  Havoc Pennington  <hp@redhat.com>
9845
9846         * dbus/dbus-transport.c (_dbus_transport_get_unix_user): fix bug
9847         where we used >= 0 instead of != DBUS_UID_UNSET.
9848
9849 2003-04-25  Havoc Pennington  <hp@redhat.com>
9850
9851         * glib/dbus-gmain.c (remove_watch): fix for a crash when watches
9852         were toggled without add/remove, fix from Anders Gustafsson
9853
9854 2003-04-24  Havoc Pennington  <hp@redhat.com>
9855
9856         * test/data/valid-config-files/basic.conf: add <limit> tags to
9857         this test
9858
9859         * bus/config-parser.h, bus/config-parser.c, bus/bus.c: Implement
9860         <limit> tag in configuration file.
9861
9862 2003-04-24  Havoc Pennington  <hp@redhat.com>
9863
9864         * bus/dispatch.c: somehow missed some name_is
9865
9866         * dbus/dbus-timeout.c (_dbus_timeout_set_enabled)
9867         (_dbus_timeout_set_interval): new
9868
9869         * bus/connection.c (bus_connections_setup_connection): record time
9870         when each connection is first set up, and expire them after the
9871         auth timeout passes.
9872
9873 2003-04-24  Havoc Pennington  <hp@redhat.com>
9874
9875         * dbus/dbus-message.c (dbus_message_name_is): rename
9876         (dbus_message_service_is): rename
9877         (dbus_message_sender_is): rename
9878         (dbus_message_get_service): rename
9879
9880 2003-04-24  Havoc Pennington  <hp@redhat.com>
9881
9882         * configure.in: add --enable-checks
9883
9884         * dbus/dbus-message.c (dbus_message_new): reverse name/service arguments
9885
9886         * dbus/dbus-connection.c (dbus_connection_preallocate_send): fix
9887         to use thread locks.
9888         (_dbus_connection_handler_destroyed_locked): move some private
9889         functions into proper docs group
9890
9891         * dbus/dbus-internals.h: add _dbus_return_if_fail,
9892         _dbus_return_val_if_fail
9893
9894         Throughout: use dbus_return_if_fail
9895
9896 2003-04-23  James Willcox  <jwillcox@gnome.org>
9897
9898         * glib/dbus-glib.h:
9899         * glib/dbus-gmain.c: (add_timeout), (wakeup_main), (create_source),
9900         (dbus_connection_setup_with_g_main),
9901         (dbus_server_setup_with_g_main):
9902         * glib/test-dbus-glib.c: (main):
9903         * glib/test-thread-client.c: (main):
9904         * glib/test-thread-server.c: (new_connection_callback), (main):
9905         * tools/dbus-monitor.c: (main):
9906
9907         Added a GMainContext argument to dbus_connection_setup_with_g_main()
9908         and dbus_server_setup_with_g_main().
9909
9910 2003-04-20  Havoc Pennington  <hp@pobox.com>
9911
9912         * doc/dbus-specification.sgml: document the restrictions on
9913         message and service names
9914
9915 2003-04-22  Havoc Pennington  <hp@redhat.com>
9916
9917         * dbus/dbus-message.c, dbus/dbus-marshal.c: add 64-bit integer
9918         support, and do some code cleanups to share more code and
9919         speed up array marshal/demarshal.
9920
9921         * dbus-1.0.pc.in (Cflags): put libdir include file in cflags
9922
9923         * configure.in: generate dbus-arch-deps.h
9924
9925         * dbus/dbus-protocol.h (DBUS_TYPE_INT64, DBUS_TYPE_UINT64): add
9926         64-bit typecodes
9927
9928 2003-04-22  Havoc Pennington  <hp@redhat.com>
9929
9930         * test/data/valid-messages/opposite-endian.message: fix test
9931         to use proper type for rply field
9932
9933         * test/data/invalid-messages: add tests for below validation
9934
9935         * dbus/dbus-message.c (decode_header_data): validate field types,
9936         and validate that named fields are valid names
9937         (decode_name_field): consider messages in the
9938         org.freedesktop.Local. namespace to be invalid.
9939
9940         * dbus/dbus-string.c (_dbus_string_validate_name): new
9941
9942 2003-04-19  Havoc Pennington  <hp@pobox.com>
9943
9944         * bus/driver.c (bus_driver_handle_hello): check limits and
9945         return an error if they are exceeded.
9946
9947         * bus/connection.c: maintain separate lists of active and inactive
9948         connections, and a count of each. Maintain count of completed
9949         connections per user. Implement code to check connection limits.
9950
9951         * dbus/dbus-list.c (_dbus_list_unlink): export
9952
9953         * bus/bus.c (bus_context_check_security_policy): enforce a maximum
9954         number of bytes in the message queue for a connection
9955
9956 2003-04-18  Havoc Pennington  <hp@pobox.com>
9957
9958         * dbus/dbus-auth.c (record_mechanisms): memleak fixes
9959
9960         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): fix some
9961         memleaks
9962
9963         * dbus/dbus-keyring.c (add_new_key): fix a memleak, and
9964         on realloc be sure to update the pointer in the keyring
9965
9966         * dbus/dbus-string.c (_dbus_string_zero): compensate for align
9967         offset to avoid writing to unallocated memory
9968
9969         * dbus/dbus-auth.c (process_rejected): return FALSE if we fail to
9970         try the next mechanism, so we properly handle OOM
9971
9972         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): fix double-free
9973         on OOM.
9974         (_dbus_keyring_new): fix OOM bug
9975         (_dbus_keyring_new_homedir): always set error; impose a maximum
9976         number of keys we'll load from the file, mostly to speed up the
9977         test suite and make its OOM checks more useful, but also for
9978         general sanity.
9979
9980         * dbus/dbus-auth.c (process_error_server): reject authentication
9981         if we get an error from the client
9982         (process_cancel): on cancel, send REJECTED, per the spec
9983         (process_error_client): send CANCEL if we get an error from the
9984         server.
9985
9986 2003-04-18  Havoc Pennington  <hp@pobox.com>
9987
9988         * dbus/dbus-mainloop.c (_dbus_loop_iterate): fix UMR in verbose
9989         debug spew
9990
9991         * dbus/dbus-auth.c (handle_client_data_cookie_sha1_mech): fix OOM
9992         handling problem
9993
9994         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): only whine
9995         about DBUS_TEST_HOMEDIR once
9996
9997         * bus/Makefile.am (TESTS_ENVIRONMENT): put DBUS_TEST_HOMEDIR in
9998         the environment
9999
10000         * bus/dispatch.c (bus_dispatch_sha1_test): actually load sha1
10001         config file so we test the right thing
10002
10003         Throughout: assorted docs improvements
10004
10005 2003-04-18  Havoc Pennington  <hp@pobox.com>
10006
10007         * glib/dbus-gmain.c: adapt to watch changes
10008
10009         * bus/bus.c, bus/activation.c, etc.: adjust to watch changes
10010
10011         * dbus/dbus-server.h: remove dbus_server_handle_watch
10012
10013         * dbus/dbus-connection.h: remove dbus_connection_handle_watch
10014
10015         * dbus/dbus-watch.c (dbus_watch_handle): change DBusWatch to work
10016         like DBusTimeout, so we don't need dbus_connection_handle_watch
10017         etc.
10018
10019 2003-04-17  Havoc Pennington  <hp@redhat.com>
10020
10021         * dbus/dbus-userdb.c, dbus/dbus-sysdeps.c: redo all the passwd
10022         database usage so it all goes via the DBusUserDatabase cache.
10023
10024 2003-04-17  Havoc Pennington  <hp@redhat.com>
10025
10026         * dbus/dbus-mainloop.c (_dbus_loop_iterate): fix logic so that if
10027         there was an OOM watch we skipped, we always return TRUE so we
10028         iterate again to have a look at it again. Fixes test suite hang.
10029         Code rearrangement also lets us lose some memset and only iterate
10030         over callbacks once.
10031
10032         * bus/driver.c (bus_driver_handle_message): sense of test for
10033         reply was backward
10034
10035 2003-04-16  Havoc Pennington  <hp@pobox.com>
10036
10037         * doc/dbus-specification.sgml: make spec say serials are unsigned
10038
10039         * dbus/dbus-message.h: change message serials to unsigned
10040
10041         * dbus/dbus-connection.c: adapt to message serials being unsigned
10042
10043 2003-04-15  Havoc Pennington  <hp@pobox.com>
10044
10045         * bus/bus.c: create and keep around a shared DBusUserDatabase
10046         object.
10047
10048         * bus/connection.c (bus_connection_get_groups): don't cache
10049         groups for user in the connection object, since user database
10050         object now does that.
10051
10052 2003-04-16  Havoc Pennington  <hp@redhat.com>
10053
10054         * dbus/dbus-message.c (_dbus_message_add_size_counter): keep a
10055         list of size counters
10056         (_dbus_message_loader_putback_message_link): put back a popped link
10057
10058         * dbus/dbus-connection.c
10059         (dbus_connection_set_max_live_messages_size): rename
10060         max_received_size
10061         (dbus_connection_get_outgoing_size): get size of outgoing
10062         queue
10063         (_dbus_connection_set_connection_counter): remove this cruft
10064
10065 2003-04-14  Havoc Pennington  <hp@redhat.com>
10066
10067         * dbus/dbus-userdb.c: user database abstraction, mostly to get
10068         caching, but at some point we might want to be able to use a
10069         different database.
10070
10071         * bus/dispatch.c (bus_dispatch_sha1_test): add a test that uses
10072         SHA1 conf file to test the sha1 auth mechanism, since the regular
10073         test always uses EXTERNAL when available.
10074
10075         * configure.in,
10076         test/data/valid-config-files/debug-allow-all-sha1.conf.in:
10077         add conf file that requires use of sha1 auth
10078
10079 2003-04-13  Havoc Pennington  <hp@pobox.com>
10080
10081         * tools/dbus-send.c, tools/dbus-monitor.c: two utility programs
10082         from Philip Blundell to send messages and monitor them.
10083
10084 2003-04-13  Havoc Pennington  <hp@pobox.com>
10085
10086         * dbus/dbus-mainloop.c: fix some reentrancy issues by refcounting
10087         callbacks
10088
10089         * test/data/valid-config-files/debug-allow-all.conf.in: allow all
10090         users
10091
10092         * dbus/dbus-transport.c (_dbus_transport_get_dispatch_status):
10093         fix to only recover unused bytes if we're already authenticated
10094         (_dbus_transport_get_is_authenticated): fix to still mark us
10095         authenticated if there are unused bytes.
10096
10097         * bus/dispatch.c: implement security policy checking
10098
10099         * bus/connection.c (bus_transaction_send_from_driver): new
10100
10101         * bus/bus.c (bus_context_check_security_policy): new
10102
10103         * bus/dispatch.c (send_service_nonexistent_error): delete this,
10104         now we just set the DBusError and it gets converted to an error
10105         reply.
10106
10107         * bus/connection.c (allow_user_function): enable code using actual
10108         data from the config file
10109
10110         * bus/policy.c (list_allows_user): handle wildcard rules for
10111         user/group connection perms
10112
10113 2003-04-13  Havoc Pennington  <hp@pobox.com>
10114
10115         * bus/config-parser.c: Load up the BusPolicy and BusPolicyRules
10116
10117         * dbus/dbus-sysdeps.c (_dbus_get_user_id): new function
10118
10119         * bus/policy.c (bus_policy_append_mandatory_rule)
10120         (bus_policy_append_default_rule, bus_policy_append_user_rule)
10121         (bus_policy_append_group_rule): new functions
10122
10123 2003-04-12  Havoc Pennington  <hp@pobox.com>
10124
10125         * bus/config-parser.c (bus_config_parser_new): fix a memleak
10126
10127         * dbus/dbus-sysdeps.c: change DBusCredentials to use longs for
10128         the pid/gid/uid, just for paranoia.
10129
10130         * test/break-loader.c (randomly_do_n_things): find a byte
10131         containing a type code, and randomly change it to a different
10132         type code.
10133
10134 2003-04-12  Havoc Pennington  <hp@pobox.com>
10135
10136         * bus/policy.h: change BusPolicy to be the thing from the config
10137         file, and rename old BusPolicy to BusClientPolicy
10138
10139         * bus/bus.c, bus/connection.c, bus/config-parser.c: change to
10140         match change in how policy works
10141
10142         * dbus/dbus-internals.h: mark assert_not_reached as
10143         __attribute((noreturn))__
10144
10145 2003-04-11  Havoc Pennington  <hp@redhat.com>
10146
10147         * doc/dbus-specification.sgml: fix a spot with the wrong name for
10148         the broadcast service. Use boolean return for ServiceExists.
10149
10150 2003-04-11  Havoc Pennington  <hp@redhat.com>
10151
10152         * configure.in: add another directory to look for qt in.
10153
10154 2003-04-11  Havoc Pennington  <hp@redhat.com>
10155
10156         * AUTHORS: add Colin Walters
10157
10158 2003-04-11  Havoc Pennington  <hp@redhat.com>
10159
10160         * NEWS: update
10161
10162         * configure.in: 0.9
10163
10164 2003-04-11  Havoc Pennington  <hp@redhat.com>
10165
10166         * bus/messagebus.in: remove pid file when stopping the
10167         message bus, since the bus won't have privileges to remove it
10168         itself.
10169
10170 2003-04-11  Havoc Pennington  <hp@redhat.com>
10171
10172         * bus/bus.c (bus_context_new): move credentials change after
10173         creating pidfile
10174
10175 2003-04-11  Havoc Pennington  <hp@pobox.com>
10176
10177         * test/decode-gcov.c: add "below average functions" to the
10178         coverage report, and change how some of the code works.
10179
10180         * bus/test-main.c: bracket some stuff in DBUS_BUILD_TESTS so it's
10181         not in the coverage stats.
10182
10183         * test/test-service.c (main): use _dbus_verbose not fprintf in a
10184         couple places so running the test suite doesn't result in megaspam.
10185
10186 2003-04-11  Havoc Pennington  <hp@pobox.com>
10187
10188         * bus/dispatch.c (check_existent_service_activation): accept a no
10189         memory error in a place we didn't before
10190
10191         * bus/test.c (bus_test_run_everything): remove hacky "do it twice
10192         in case the first one failed," since the test suite is less
10193         broken now.
10194
10195 2003-04-10  Havoc Pennington  <hp@pobox.com>
10196
10197         * bus/dispatch.c (check_segfault_service_activation): add test
10198         for launching an executable that just crashes.
10199
10200         * test/test-segfault.c (main): try setting coredumpsize to 0 so we
10201         don't leave a million cores. We'll see how portable this is.
10202
10203 2003-04-10  Havoc Pennington  <hp@pobox.com>
10204
10205         * dbus/dbus-spawn.c (_dbus_spawn_async_with_babysitter): move all
10206         the possible parent failures before we fork, so that we don't
10207         fail to create a babysitter after creating the child.
10208
10209         * bus/activation.c (bus_activation_activate_service): kill child
10210         if we don't successfully complete the activation.
10211
10212 2003-04-10  Havoc Pennington  <hp@redhat.com>
10213
10214         * dbus/dbus-connection.c (dbus_connection_flush): don't spin on
10215         the connection if it's disconnected
10216
10217         * bus/activation.c (bus_activation_service_created): use new
10218         transaction features to roll back removal of pending activation if
10219         we don't successfully create the service after all. Don't remove
10220         pending activation if the function fails.
10221
10222         * dbus/dbus-list.c (_dbus_list_insert_before_link)
10223         (_dbus_list_insert_after_link): new code to facilitate
10224         services.c fixes
10225
10226         * dbus/dbus-hash.c (_dbus_hash_table_insert_string_preallocated):
10227         new functionality, so we can preallocate the ability to insert
10228         into a hash table.
10229
10230         * bus/connection.c (bus_transaction_add_cancel_hook): new function
10231         allowing us to put custom hooks in a transaction to be used for
10232         cancelling said transaction
10233
10234         * doc/dbus-specification.sgml: add some discussion of secondary
10235         service owners, and disallow zero-length service names
10236
10237         * bus/services.c (bus_registry_acquire_service): new function,
10238         splits out part of bus_driver_handle_acquire_service() and fixes
10239         a bug where we didn't remove the service doing the acquiring
10240         from the secondary queue if we failed to remove the current owner
10241         from the front of the queue.
10242
10243 2003-04-10  Alexander Larsson  <alexl@redhat.com>
10244
10245         * doc/dbus-specification.sgml:
10246         s/org.freedesktop.Broadcast/org.freedesktop.DBus.Broadcast/
10247
10248 2003-04-10  Alexander Larsson  <alexl@redhat.com>
10249
10250         * bus/.cvsignore:
10251         * glib/.cvsignore:
10252         * test/.cvsignore:
10253         Added files to cvsignore
10254
10255         * dbus/dbus-message.h:
10256         * dbus/dbus-message.c: (dbus_message_iter_get_named):
10257         Make get_named() take two out argument and return a boolean.
10258         (dbus_message_iter_get_args_valist):
10259         Update usage of get_named().
10260         (dbus_message_iter_append_byte):
10261         Fix typo
10262         (dbus_message_iter_append_named)
10263         Fix typo
10264         (message_iter_test), (check_message_handling_type), (_dbus_message_test):
10265         More tests.
10266
10267 2003-04-10  Alexander Larsson  <alexl@redhat.com>
10268
10269         * dbus/dbus-marshal.[ch]:
10270         Add array_type_pos argument to _dbus_marshal_validate_arg.
10271         Let you pass a NULL end_pos to _dbus_marshal_validate_type.
10272
10273         * dbus/dbus-message.[ch]:
10274         Multi-dimensional arrays have full type specification in the
10275         outermost array. Iter code re-arranged to handle this.
10276         Added some more iter tests.
10277
10278         * doc/dbus-specification.sgml:
10279         Add me to authors.
10280         Remove old FIXME.
10281         Update new array encoding description.
10282         Correct DBUS_SERVICE_FLAGS_REPLACE_EXISTING description.
10283
10284         * test/data/invalid-messages/array-with-mixed-types.message:
10285         * test/data/valid-messages/array-of-array-of-uint32.message:
10286         Change to the new array format.
10287
10288         * test/data/invalid-messages/too-short-dict.message:
10289         Fix bug in test.
10290
10291         * test/data/valid-messages/recursive-types.message:
10292         Fix up and extend test.
10293
10294 2003-04-10  Havoc Pennington  <hp@pobox.com>
10295
10296         * bus/dispatch.c: lots of fixes
10297
10298         * dbus/dbus-mainloop.c (_dbus_loop_dispatch): export
10299         (_dbus_loop_iterate): remove old "quit if no callbacks" code,
10300         that was crack, broke the test service.
10301
10302         * dbus/dbus-transport.c (_dbus_transport_open): fix error
10303         handling to avoid piling up errors if we get a failure on the
10304         first address.
10305
10306         * dbus/dbus-internals.c (_dbus_real_assert_not_reached): include
10307         pid in assertion failures.
10308
10309         * dbus/dbus-mainloop.c (_dbus_loop_iterate): use static arrays up
10310         to some fixed size of file descriptor array. Don't return TRUE
10311         anytime a timeout exists, that led to lots of busy loop silliness
10312         in the tests.
10313
10314 2003-04-09  Havoc Pennington  <hp@redhat.com>
10315
10316         * dbus/dbus-mainloop.c (check_timeout): fix timeouts, I thought
10317         I'd checked this in earlier but hadn't.
10318
10319 2003-04-09  Havoc Pennington  <hp@redhat.com>
10320
10321         * bus/dispatch.c (bus_dispatch_test): get a bit further through
10322         the activation test (man this is getting old!)
10323
10324 2003-04-09  Havoc Pennington  <hp@redhat.com>
10325
10326         * test/test-utils.c: use dispatch status function to fix this up
10327
10328         * bus/connection.c (connection_watch_callback): don't dispatch
10329         from here
10330         (connection_timeout_callback): don't dispatch from here
10331         (bus_connections_setup_connection): set the dispatch status function
10332         (bus_connection_disconnected): unset it
10333
10334         * dbus/dbus-mainloop.c (_dbus_loop_queue_dispatch): new function
10335         used to add a connection to be dispatched
10336         (_dbus_loop_iterate): do the dispatching at the end of each
10337         iteration
10338
10339         * dbus/dbus-connection.c
10340         (dbus_connection_set_dispatch_status_function): new function
10341         allowing us to fix up main loop usage
10342         (_dbus_connection_last_unref): free all the various function
10343         user data
10344         (dbus_connection_dispatch): call the DispatchStatusFunction
10345         whenever this function returns
10346         (dbus_connection_handle_watch): call DispatchStatusFunction
10347         (dbus_connection_send_with_reply_and_block): call DispatchStatusFunction
10348         (reply_handler_timeout): call DispatchStatusFunction
10349         (dbus_connection_flush): call DispatchStatusFunction
10350
10351 2003-04-09  Havoc Pennington  <hp@redhat.com>
10352
10353         * dbus/dbus-bus.c (dbus_bus_register): fix up error handling and
10354         a memory leak
10355
10356         * bus/dispatch.c (check_service_activated): fix bug in test
10357
10358         * dbus/dbus-mainloop.c (check_timeout): fix this up
10359
10360         * dbus/dbus-internals.c (_dbus_verbose_real): include PID in
10361         verbose output so we can sort out output from different processes,
10362         e.g. in the activation case.
10363
10364 2003-04-08  Colin Walters  <walters@gnu.org>
10365
10366         * bus/bus.c (struct BusContext) [pidfile]: New member, to store
10367         the pid file.
10368         (bus_context_new): Set it.
10369         (bus_context_unref): Use it to delete the pid file.
10370
10371 2003-04-08  Havoc Pennington  <hp@redhat.com>
10372
10373         * test/data/invalid-messages/array-with-mixed-types.message:
10374         regression test that fails for the moment
10375
10376         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): reorder
10377         tests for convenience
10378
10379         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): don't allow
10380         array of nil, it broke things.
10381
10382         * test/data/invalid-messages/array-of-nil.message: regression test
10383
10384         * test/data/valid-messages/array-of-array-of-uint32.message:
10385         happened to write this so added it to suite
10386
10387 2003-04-08  Havoc Pennington  <hp@redhat.com>
10388
10389         * bus/driver.c (bus_driver_handle_acquire_service): init
10390         retval/reply before checking name
10391
10392         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): add a
10393         recursion depth argument
10394
10395         * dbus/dbus-message.h (struct DBusMessageIter): put some padding
10396         in the public struct for future extension
10397
10398         * dbus/dbus-message-builder.c (_dbus_message_data_load): fix
10399         typo
10400
10401         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): fix a verbose
10402         message
10403
10404         * doc/dbus-specification.sgml: fix typo
10405
10406 2003-04-08  Alexander Larsson  <alexl@redhat.com>
10407
10408         Implemented recursive types, named types and new-style iters
10409
10410         * bus/driver.c:
10411         * glib/test-thread-client.c: (thread_func):
10412         * glib/test-thread-server.c: (handle_test_message):
10413         * test/test-service.c: (handle_echo):
10414         Update to new api
10415
10416         * dbus/Makefile.am:
10417         * dbus/dbus-dict.c:
10418         * dbus/dbus-dict.h:
10419         * dbus/dbus.h
10420         Remove DBusDict
10421
10422         * dbus/dbus-internals.c: (_dbus_type_to_string):
10423         Update for new types.
10424
10425         * dbus/dbus-marshal.[ch]:
10426         Implement recursive types and the new marshalling format.
10427         Remove hardcoded dict marshalling.
10428         Marshal named types.
10429
10430         * dbus/dbus-message-builder.c:
10431         Add BYTE_ARRAY.
10432         Remove references to old types
10433
10434         * dbus/dbus-message.[ch]:
10435         New non-refcounted iter API that supports recursive iters.
10436         Use iters for appending, including support for recursive
10437         iters.
10438         Add byte and named type support.
10439         Update everything to new marshalling formats.
10440         Add tests for new API.
10441
10442         * dbus/dbus-protocol.h:
10443         Remove old array types.
10444         Add types: BYTE, ARRAY, DICT, NAMED
10445
10446         * dbus/dbus-string.c:
10447         * dbus/dbus-sysdeps.c:
10448         Make parse_double locale safe.
10449
10450         * dbus/dbus-test-main.c:
10451         Call setlocale.
10452
10453         * dbus/dbus-test.c:
10454         Kill dict test
10455
10456         * doc/dbus-specification.sgml:
10457         Update spec
10458
10459         * test/data/incomplete-messages/missing-body.message:
10460         * test/data/invalid-messages/bad-boolean.message:
10461         * test/data/invalid-messages/bad-boolean-array.message:
10462         * test/data/invalid-messages/boolean-array-length-too-long.message-raw:
10463         * test/data/invalid-messages/boolean-has-no-value.message-raw:
10464         * test/data/invalid-messages/too-short-dict.message:
10465         * test/data/valid-messages/dict-simple.message:
10466         * test/data/valid-messages/dict.message:
10467         * test/data/valid-messages/emptiness.message:
10468         * test/data/valid-messages/lots-of-arguments.message:
10469         * test/data/valid-messages/no-padding.message:
10470         * test/data/valid-messages/recursive-types.message:
10471         Add missing NAME fields
10472         Fix up dicts & arrays
10473
10474         * test/data/invalid-messages/dict-with-nil-value.message:
10475         Removed, this is not invalid anymore.
10476
10477         * test/data/valid-messages/recursive-types.message:
10478         Add new test for deeply recursive types.
10479
10480 2003-04-07  Havoc Pennington  <hp@pobox.com>
10481
10482         * bus/driver.c (bus_driver_handle_acquire_service): return an
10483         error if you try to acquire a service that starts with ':'
10484
10485 2003-04-07  Havoc Pennington  <hp@redhat.com>
10486
10487         * doc/dbus-specification.sgml: require that base service names
10488         start with ':' and that the base service is created/deleted
10489         as first and last things a connection does on the bus
10490
10491         * bus/dispatch.c (check_existent_service_activation): lots more
10492         work on the activation test; it doesn't fully pass yet...
10493
10494         * test/test-service.c (main): fix so we don't memleak the
10495         connection to the message bus
10496         (filter_func): accept a message asking us to exit
10497
10498 2003-04-06  Havoc Pennington  <hp@pobox.com>
10499
10500         * qt/Makefile.am (dbusinclude_HEADERS): install dbus-qt.h,
10501         from Colin Walters
10502
10503         * configure.in: fixes to Qt detection from Colin Walters
10504
10505         * doc/Makefile.am: Only remove generated docbook dirs if they
10506         exist, from Colin Walters
10507
10508         * dbus/dbus-bus.c: change how we set well-known connections to
10509         NULL, so that it works if a single connection is stored in
10510         two well-known array slots.
10511
10512         * test/Makefile.am: remove a lot of stuff that isn't immediately
10513         useful, it's in CVS history if we want it.
10514
10515         * test/test-service.c: use dbus-mainloop instead of that
10516         watch.[hc] crack
10517
10518 2003-04-06  Havoc Pennington  <hp@pobox.com>
10519
10520         * dbus/Makefile.am: split lists of sources into stuff that goes in
10521         the library, util functions that go in the lib and are also used
10522         elsewhere, and util functions that are used in tests/daemon but
10523         don't go in the lib.
10524
10525         * dbus/dbus-mainloop.h, dbus/dbus-mainloop.c: move bus/loop.[hc]
10526         here so it can be used in test binaries also
10527
10528 2003-04-06  Havoc Pennington  <hp@pobox.com>
10529
10530         * dbus/dbus-sysdeps.c (_dbus_become_daemon): write the pidfile
10531         here in the parent process, so we can return an error if it
10532         fails. Also, move some of the code into the child so the parent
10533         is less hosed if we fail midway through.
10534
10535         * bus/bus.c (bus_context_new): move pidfile detection further up
10536         in the function, before we start overwriting sockets and such.
10537
10538         * bus/messagebus.in: adjust this a bit, not sure if it will work.
10539
10540         * configure.in: add --with-system-pid-file and --with-system-socket
10541
10542 2003-04-06  Colin Walters  <walters@verbum.org>
10543
10544         * configure.in (DBUS_SYSTEM_PID_FILE): New variable.
10545
10546         * bus/system.conf.in: Declare a pidfile.
10547
10548         * bus/bus.c (bus_context_new): Test for an existing pid file, and
10549         create one (if appropriate).
10550
10551         * bus/config-parser.c (enum ElementType) [ELEMENT_PIDFILE]: New.
10552         (struct BusConfigParser) [pidfile]: New.
10553         (element_type_to_name, merge_included, start_busconfig_child)
10554         (bus_config_parser_end_element, bus_config_parser_content): Handle it.
10555         (bus_config_parser_unref): Free it.
10556         (bus_config_parser_get_pidfile): New function.
10557
10558         * bus/config-parser.h (_dbus_write_pid_file): Prototype.
10559
10560         * dbus/dbus-errors.h (DBUS_ERROR_PIDFILE_EXISTS): New error.
10561
10562         * dbus/dbus-sysdeps.c (_dbus_write_pid_file): New function.
10563
10564         * dbus/dbus-sysdeps.h: Prototype it.
10565
10566 2003-04-06  Havoc Pennington  <hp@pobox.com>
10567
10568         * bus/bus.c (bus_context_new): print the address in here, rather
10569         than in main(), because we need to do it before forking the daemon
10570
10571         * bus/dispatch.c (send_service_nonexistent_error): set the sender
10572         on the service nonexistent error
10573
10574         * bus/driver.c (bus_driver_handle_acquire_service): set the
10575         sender on the AcquireService reply
10576
10577         * test/data/valid-config-files/debug-allow-all.conf.in: Make test
10578         server also listen on a UNIX socket so services can connect to it.
10579
10580 2003-04-06  Havoc Pennington  <hp@pobox.com>
10581
10582         * dbus/dbus-threads.c: Redo how the fake debug mutexes are done
10583         so it detects deadlocks and also we actually init threads when
10584         debugging.
10585
10586 2003-04-06  Havoc Pennington  <hp@pobox.com>
10587
10588         * dbus/dbus-server-unix.c (_dbus_server_new_for_domain_socket):
10589         save the domain socket name, and unlink it when we disconnect the
10590         server. Means that at least when we exit normally, we won't leave
10591         a bunch of junk in /tmp
10592
10593         * dbus/dbus-transport-unix.c
10594         (_dbus_transport_new_for_domain_socket): code cleanup (nicer
10595         memory management). (I was making a real change here but then
10596         didn't)
10597
10598 2003-04-06  Havoc Pennington  <hp@pobox.com>
10599
10600         * bus/bus.c (bus_context_new): fix wrong handling of
10601         server_data_slot_unref() in the error case.
10602
10603         * dbus/dbus-internals.h (_dbus_assert): change so it passes
10604         "(condition) != 0" to _dbus_real_assert so that
10605         "_dbus_assert (pointer)" doesn't cause a warning
10606
10607         * bus/main.c (main): accept --print-address option to print out
10608         the message bus address
10609
10610         * dbus/dbus-sysdeps.c (_dbus_generate_random_ascii): export this
10611
10612         * dbus/dbus-transport.c (_dbus_transport_open): special error for
10613         "tmpdir" option to unix: address on client side
10614
10615         * dbus/dbus-server.c (dbus_server_listen): handle "tmpdir" option
10616         to unix: address
10617
10618         * configure.in (TEST_SOCKET_DIR): locate a temporary directory
10619         we can use to create sockets in the test suite.
10620
10621         * bus/main.c (signal_handler): on SIGTERM, exit the daemon
10622         cleanly. To be used for testing.
10623
10624         * dbus/dbus-spawn.c (babysit): use _dbus_set_signal_handler()
10625
10626         * dbus/dbus-sysdeps.c (_dbus_set_signal_handler): new
10627
10628         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
10629         handle trying to call this when there's no servers active
10630
10631 2003-04-05  Havoc Pennington  <hp@pobox.com>
10632
10633         * NEWS: update
10634
10635         * configure.in: 0.8
10636
10637 2003-04-05  Havoc Pennington  <hp@pobox.com>
10638
10639         * bus/bus.c (setup_server): fix this so dbus-daemon-1 doesn't
10640         crash on startup. Need to get "try starting the daemon"
10641         in the test suite I guess. ;-)
10642
10643         * dbus/dbus-server.h, dbus/dbus-server.c: remove the stuff that
10644         tracked the number of open connections; it's better done in
10645         application-specific code as you want it to span all servers etc.
10646
10647 2003-04-05  Havoc Pennington  <hp@pobox.com>
10648
10649         * bus/Makefile.am (install-data-hook): add missing DESTDIR,
10650         patch from Colin Walters
10651
10652 2003-04-05  Havoc Pennington  <hp@pobox.com>
10653
10654         * doc/config-file.txt (Elements): fix docs of <auth> to reflect
10655         reality; in fact multiple mechanisms are allowed.
10656
10657         * dbus/dbus-internals.c (_dbus_real_assert)
10658         (_dbus_real_assert_not_reached): move guts of _dbus_assert() and
10659         _dbus_assert_not_reached() into functions, so that they don't show
10660         up in basic block counts for test coverage, and don't use up as
10661         much disk space. Does mean slower execution speed though, so
10662         assumes --disable-asserts is the normal production case.
10663
10664 2003-04-05  Havoc Pennington  <hp@pobox.com>
10665
10666         * test/Makefile.am (dist-hook): also dist *.in files
10667
10668         * NEWS: update
10669
10670         * configure.in: 0.7
10671
10672 2003-04-05  Havoc Pennington  <hp@pobox.com>
10673
10674         * dbus/dbus-string.c: docs warning
10675
10676         * dbus/dbus-spawn.c: missing docs
10677
10678         * dbus/dbus-memory.c (struct ShutdownClosure): missing docs
10679
10680 2003-04-05  Havoc Pennington  <hp@pobox.com>
10681
10682         * bus/loop.c (bus_loop_iterate): fix the timeout code, using
10683         magic from GLib
10684
10685         * dbus/dbus-spawn.c (_dbus_babysitter_unref): set sitter_pid
10686         to -1 once we've reaped the babysitter
10687         (_dbus_babysitter_handle_watch): do as much work as we can, not
10688         just one go of it
10689
10690         * bus/activation.c: add code using DBusBabysitter so that we
10691         handle it when a service fails to start up properly.
10692         (bus_activation_service_created): don't remove the activation
10693         entries as we go, just let them get removed when we free the pending
10694         activation. Unref reply messages after sending them.
10695
10696 2003-04-05  Havoc Pennington  <hp@pobox.com>
10697
10698         * test/decode-gcov.c (main): print per-directory stats in the report
10699
10700         * Makefile.am (coverage-report.txt): don't include test/* in gcov stats
10701
10702 2003-04-05  Havoc Pennington  <hp@pobox.com>
10703
10704         * Makefile.am (coverage-report.txt): add target "coverage-report.txt"
10705
10706         * test/decode-gcov.c: hack up a little program to suck data
10707         out of gcov files. Yes this is sort of silly.
10708
10709         * configure.in: define something in config.h and do an
10710         AM_CONDITIONAL when gcov is enabled
10711
10712 2003-04-04  Havoc Pennington  <hp@redhat.com>
10713
10714         * dbus/dbus-spawn.c, dbus/dbus-spawn.h: Change dbus_spawn to
10715         return a "babysitter" object that is used to monitor the status of
10716         the spawned process and reap it when required.
10717
10718         * test/test-segfault.c, test/test-exit.c,
10719         test/test-sleep-forever.c: binaries that do various lame things,
10720         used in the test suite.
10721
10722         * dbus/dbus-sysdeps.c: kill _dbus_errno_to_string()
10723
10724 2003-04-03  Havoc Pennington  <hp@pobox.com>
10725
10726         * dbus/dbus-spawn.c: Move dbus-spawn into a separate file
10727         in preparation for modifying it, dbus-sysdeps is getting
10728         a bit unmanageable.
10729
10730 2003-04-03  Havoc Pennington  <hp@redhat.com>
10731
10732         * bus/loop.h, bus/loop.c: make the mainloop an object so we can
10733         have multiple ones
10734
10735         * bus/*.[hc]: adapt to mainloop change
10736
10737 2003-04-03  Havoc Pennington  <hp@redhat.com>
10738
10739         * bus/activation.c (load_directory): fix up memleaks
10740         (bus_activation_entry_free): free the entry
10741
10742         * dbus/dbus-bus.c (dbus_bus_acquire_service): return an error if
10743         we get one from the message bus; fix memleaks.
10744
10745         * dbus/dbus-message.c (dbus_set_error_from_message): new function
10746
10747 2003-04-03  Havoc Pennington  <hp@pobox.com>
10748
10749         * bus/config-parser.c (bus_config_parser_unref): free
10750         list of mechanisms, bug discovered by test suite enhancements
10751         (putting system.conf and session.conf into suite)
10752
10753         * test/Makefile.am, test/test-service.c: add placeholder for a
10754         test service that we'll activate as part of test suite. Doesn't
10755         do anything yet.
10756
10757         * dbus/dbus-sysdeps.c (_dbus_setenv): support unsetenv by
10758         setting NULL value, and use system malloc not dbus_malloc()
10759         when we have unavoidable memleakage.
10760
10761         * dbus/dbus-bus.c (dbus_bus_get): fix bug where bus type of 0
10762         didn't work, and support DBUS_BUS_ACTIVATION.
10763
10764         * bus/activation.c (child_setup): pass our well-known bus type to
10765         the child
10766
10767         * bus/config-parser.c: support <type> to specify well-known type
10768
10769         * doc/dbus-specification.sgml: document the env variables to
10770         locate well-known buses and find service activator
10771
10772 2003-04-02  Havoc Pennington  <hp@redhat.com>
10773
10774         * test/Makefile.am (all-local): add a rule to copy tests to
10775         builddir, so we can have generated tests. Use this to remove the
10776         silly hack for testing system.conf and session.conf. Will use this
10777         shortly to generate .service files pointing to test binaries.
10778
10779 2003-04-02  Havoc Pennington  <hp@redhat.com>
10780
10781         * dbus/dbus-string.c (set_length): fix a bug - we allocated max of
10782         current alloc and needed new length, not max of the doubled
10783         allocation and needed new length. Also, when building tests,
10784         don't do the double-allocation stuff, just realloc every time.
10785
10786 2003-04-02  Havoc Pennington  <hp@redhat.com>
10787
10788         * dbus/dbus-sysdeps.c (_dbus_file_get_contents): include filenames
10789         in error messages
10790         (_dbus_string_get_dirname): new
10791         (_dbus_sysdeps_test): new
10792         (_dbus_directory_open): include dirnames in error messages
10793
10794         * bus/config-parser.c: interpret <include> and <includedir> and
10795         <servicedir> relative to config file location if the given
10796         filename is not absolute.
10797
10798         * dbus/dbus-string.c (_dbus_string_find_byte_backward): new
10799
10800 2003-04-02  Havoc Pennington  <hp@redhat.com>
10801
10802         * bus/connection.c (bus_transaction_send_error_reply): set sender
10803         service for the error, and unref the reply on success
10804
10805         * bus/activation.c: convert to use BusTransaction so OOM can be
10806         handled correctly
10807         (bus_activation_service_created): set sender of the message
10808
10809 2003-04-01  Havoc Pennington  <hp@redhat.com>
10810
10811         * bus/config-parser.c, bus/bus.c: implement <servicedir> and
10812         <includedir> (at least mostly)
10813
10814         * dbus/dbus-sysdeps.c (_dbus_change_identity): set the group ID
10815         first, then the user ID
10816
10817 2003-04-01  Havoc Pennington  <hp@pobox.com>
10818
10819         * dbus/dbus-server.c (dbus_server_set_auth_mechanisms): new
10820         function
10821
10822         * dbus/dbus-auth.c (_dbus_auth_set_mechanisms): new
10823
10824         * dbus/dbus-internals.c (_dbus_dup_string_array): new function
10825
10826         * dbus/dbus-sysdeps.c (_dbus_listen_unix_socket): chmod the
10827         socket 0777, and unlink any existing socket.
10828
10829         * bus/bus.c (bus_context_new): change our UID/GID and fork if
10830         the configuration file so specifies; set up auth mechanism
10831         restrictions
10832
10833         * bus/config-parser.c (bus_config_parser_content): add support
10834         for <fork> option and fill in code for <auth>
10835
10836         * bus/system.conf.in: add <fork/> to default configuration,
10837         and limit auth mechanisms to EXTERNAL
10838
10839         * doc/config-file.txt (Elements): add <fork>
10840
10841         * dbus/dbus-sysdeps.c (_dbus_become_daemon): new function
10842         (_dbus_change_identity): new function
10843
10844 2003-03-31  Havoc Pennington  <hp@redhat.com>
10845
10846         * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket)
10847         (_dbus_listen_unix_socket): fix off-by-one error in null
10848         termination spotted by Nalin
10849
10850 2003-03-31  Havoc Pennington  <hp@redhat.com>
10851
10852         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): allow setting
10853         DBUS_TEST_HOMEDIR when tests are enabled, so we can test without
10854         having a real home directory available.
10855
10856 2003-03-31  Havoc Pennington  <hp@redhat.com>
10857
10858         * bus/Makefile.am (install-data-hook): create /var/run/dbus
10859
10860         * bus/messagebus.in: add init script for Red Hat /etc/init.d
10861
10862         * configure.in: add support for specifying a style of init script
10863         to install
10864
10865 2003-03-31  Havoc Pennington  <hp@redhat.com>
10866
10867         Fix some annoying DBusString API and fix all affected code.
10868
10869         * dbus/dbus-string.c (_dbus_string_init): get rid of annoying
10870         max_length argument
10871         (_dbus_string_get_data): change to return string instead of using
10872         an out param
10873         (_dbus_string_get_const_data): ditto
10874         (_dbus_string_get_data_len): ditto
10875         (_dbus_string_get_const_data_len): ditto
10876
10877 2003-03-31  Havoc Pennington  <hp@redhat.com>
10878
10879         * bus/main.c (main): fix up the command line arguments to be nicer
10880
10881 2003-03-31  Havoc Pennington  <hp@redhat.com>
10882
10883         * dbus/Makefile.am (INCLUDES): use EXPANDED_LOCALSTATEDIR to
10884         define DBUS_SYSTEM_BUS_PATH as we want to compile in the same
10885         final location that lands in the config file
10886
10887         * bus/config-loader-expat.c (bus_config_load): fix type of
10888         XML_Parser variable
10889
10890         * doc/TODO: remove TODO item for dbus_bus_get()
10891
10892         * dbus/dbus-bus.c (bus_data_free): add missing lock/unlock
10893
10894 2003-03-31  Havoc Pennington  <hp@pobox.com>
10895
10896         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_domain_socket)
10897         (_dbus_transport_new_for_tcp_socket): these didn't need the "server"
10898         argument since they are always client side
10899
10900         * dbus/dbus-server.c (dbus_server_get_address): new function
10901
10902         * bus/main.c (main): take the configuration file as an argument.
10903
10904         * test/data/valid-config-files/debug-allow-all.conf: new file to
10905         use with dispatch.c tests for example
10906
10907         * bus/test-main.c (main): require test data dir
10908
10909         * bus/bus.c (bus_context_new): change this to take a
10910         configuration file name as argument
10911
10912         * doc/config-file.txt (Elements): add <servicedir>
10913
10914         * bus/system.conf, bus/session.conf: new files
10915
10916         * dbus/dbus-bus.c (dbus_bus_get): look for system bus on
10917         well-known socket if none set
10918
10919         * configure.in: create system.conf and session.conf
10920
10921 2003-03-30  Havoc Pennington  <hp@pobox.com>
10922
10923         * bus/config-parser.c: hacking
10924
10925         * dbus/dbus-memory.c: don't use DBusList for the list of stuff
10926         to shut down, since it could cause weirdness with the DBusList
10927         lock
10928
10929         * dbus/dbus-list.c (_dbus_list_test): add tests for the
10930         link-oriented stack routines
10931         (alloc_link): free the mempool if the first alloc from it fails
10932
10933         * dbus/dbus-mempool.c (struct DBusMemBlock): fix alignment issue
10934
10935         * dbus/dbus-string.c (UNICODE_VALID): sync new version of this
10936         from GLib
10937         (_dbus_string_skip_white): new
10938
10939         * doc/config-file.txt (Elements): add <includedir>
10940
10941 2003-03-28  Havoc Pennington  <hp@pobox.com>
10942
10943         * dbus/dbus-string.c (_dbus_string_copy_data_len)
10944         (_dbus_string_copy_data): new functions
10945
10946 2003-03-28  Anders Carlsson  <andersca@codefactory.se>
10947
10948         * dbus/dbus-bus.c: (bus_data_free), (dbus_bus_get):
10949         * dbus/dbus-bus.h:
10950         Add dbus_bus_get.
10951
10952         * dbus/dbus-memory.c:
10953         Fix a doc comment.
10954
10955 2003-03-28  Havoc Pennington  <hp@pobox.com>
10956
10957         * bus/test.c (bus_test_flush_bus): remove the sleep from here,
10958         I think it may have just been superstition. Not sure.
10959
10960         * dbus/dbus-string.c (_dbus_string_base64_decode): catch some OOM
10961         failures that were not being handled.
10962
10963         * dbus/dbus-auth.c (process_auth): fix a memleak in OOM handling
10964
10965         * dbus/dbus-memory.c: add ability to set number of mallocs in a
10966         row that will fail on out-of-memory.
10967
10968         * dbus/dbus-internals.c (_dbus_test_oom_handling): convenience
10969         function for testing out-of-memory handling.
10970
10971         * bus/config-loader-expat.c (memsuite): don't wrap the dbus
10972         allocation functions, they do map exactly to the expat ones.
10973
10974 2003-03-27  Havoc Pennington  <hp@redhat.com>
10975
10976         * bus/config-loader-libxml.c (bus_config_load): add another error
10977         check
10978
10979 2003-03-26  Anders Carlsson  <andersca@codefactory.se>
10980
10981         * doc/TODO:
10982         Add note about automatic service activation.
10983
10984         * doc/dbus-specification.sgml:
10985         Rename the specification and clarify a few things.
10986
10987 2003-03-26  Anders Carlsson  <andersca@codefactory.se>
10988
10989         * Doxyfile.in:
10990         * dbus/dbus-address.c:
10991         * dbus/dbus-dict.c:
10992         * dbus/dbus-marshal.c:
10993         * dbus/dbus-server-debug-pipe.c:
10994         * dbus/dbus-transport-unix.c:
10995         Fix documentation warnings.
10996
10997 2003-03-26  Havoc Pennington  <hp@pobox.com>
10998
10999         * bus/test-main.c, dbus/dbus-test.c (main): check memleaks
11000         after every test so it's quick and easy to see which leaked, and
11001         so we test multiple dbus_shutdown() calls
11002
11003         * configure.in: change configure.in XML stuff to also support
11004         expat
11005
11006         * config-loader-libxml.c: some hacking
11007
11008         * config-loader-expat.c: some hacking
11009
11010         * config-parser.c: some hacking, plus tests
11011
11012 2003-03-25  Havoc Pennington  <hp@redhat.com>
11013
11014         * throughout - add more _DBUS_ASSERT_ERROR_IS_CLEAR
11015
11016         * configure.in: add --with-xml option to specify XML library,
11017         right now only libxml is supported.
11018
11019         * bus/config-loader-libxml.c, config-parser.c: sync some minor
11020         nonworking code between home and work, still just stubs
11021
11022 2003-03-24  Havoc Pennington  <hp@redhat.com>
11023
11024         * dbus/dbus-sysdeps.c (_dbus_set_fd_nonblocking): move to this
11025         file
11026
11027         * dbus/dbus-errors.c (dbus_set_error, dbus_set_error_const): allow
11028         NULL argument for "message" if the error is a well-known one,
11029         fill in a generic message in this case.
11030
11031         * dbus/dbus-errors.h (DBusResultCode): Kill DBusResultCode in
11032         favor of DBusError
11033
11034         * bus/test.c (bus_test_flush_bus): add
11035
11036         * bus/policy.c (bus_policy_test): test code stub
11037
11038 2003-03-24  Havoc Pennington  <hp@pobox.com>
11039
11040         * bus/connection.c (bus_connections_setup_connection): set up
11041         the "can this user connect" function, but it always returns
11042         TRUE until we have a config file parser so we can have a config
11043         file that allows connections.
11044
11045 2003-03-23  Havoc Pennington  <hp@pobox.com>
11046
11047         * dbus/dbus-threads.c (dbus_mutex_new, dbus_condvar_new): with
11048         DBUS_BUILD_TESTS, actually alloc/free a block of memory for
11049         the mutex, so we can check for proper memory management
11050         and OOM handling.
11051
11052         * dbus/dbus-dataslot.c: remove the mutex from
11053         DBusDataSlotAllocator and lock it manually when using it,
11054         to simplify fitting it into the global slots framework.
11055
11056         * dbus/dbus-threads.c (init_static_locks): rework how we're
11057         handling global locks so they are easily shut down.
11058
11059         * bus/policy.c (bus_policy_append_rule): fix
11060
11061         * bus/test-main.c (main): check for memleaks
11062
11063         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): make
11064         test suite check for memleaks
11065
11066         * dbus/dbus-memory.c: add support in test mode for tracking
11067         number of outstanding blocks
11068
11069 2003-03-23  Havoc Pennington  <hp@pobox.com>
11070
11071         * bus/policy.c, bus/bus.c, bus/connection.c: implement allow/deny
11072         policies code
11073
11074         * dbus/dbus-hash.h: add ULONG hash keys
11075
11076         * dbus/dbus-sysdeps.c (_dbus_get_groups): new
11077         (_dbus_get_group_id): new function
11078
11079 2003-03-20  Havoc Pennington  <hp@redhat.com>
11080
11081         * dbus/dbus-connection.c (dbus_connection_set_unix_user_function):
11082         new function
11083         (dbus_connection_get_unix_user): new function
11084
11085 2003-03-20  Havoc Pennington  <hp@pobox.com>
11086
11087         * bus/connection.c (bus_connection_send_oom_error): assert that
11088         message has a sender
11089         (connection_execute_transaction): ditto
11090         (bus_connection_preallocate_oom_error): fix to set the sender, and
11091         set recipient to the destination service, not the bus driver
11092
11093         * bus/policy.c: hacking
11094
11095         * dbus/dbus-message.c (dbus_message_service_is): new function
11096         (dbus_message_sender_is): new
11097
11098 2003-03-19  Havoc Pennington  <hp@redhat.com>
11099
11100         * bus/policy.c: start sketching code for policy restrictions on
11101         what connections can do.
11102
11103 2003-03-18  Havoc Pennington  <hp@redhat.com>
11104
11105         * doc/TODO: some notes on high-level todo items. Little nitpick
11106         stuff is all in @todo, so no need to add it here.
11107
11108         * doc/config-file.txt: some notes on how config file might look
11109
11110 2003-03-18  Anders Carlsson  <andersca@codefactory.se>
11111
11112         * configure.in: 0.6
11113
11114         * NEWS: Update.
11115
11116 2003-03-17  Havoc Pennington  <hp@redhat.com>
11117
11118         * dbus/dbus-internals.h: add gcc attributes so that
11119         our printf-style functions warn on bad arguments to
11120         format
11121
11122         * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): fix printf
11123         format bug
11124
11125         * dbus/dbus-message.c (_dbus_message_loader_queue_messages): fix
11126         printf format bug
11127
11128 2003-03-17  Havoc Pennington  <hp@redhat.com>
11129
11130         * bus/test-main.c (main): make it print something as it runs
11131         so make check doesn't look stuck
11132
11133         * doc/negotiation.txt, doc/dbus-sasl-profile.txt: remove
11134         from CVS, now obsolete
11135
11136 2003-03-17  Anders Carlsson  <andersca@codefactory.se>
11137
11138         * bus/dispatch.c: (bus_dispatch):
11139         Refetch the service name since it may have been reallocated
11140         when dbus_message_set_sender was called.
11141
11142         * dbus/dbus-sysdeps.c: (_dbus_accept):
11143         Add address and address length variables and use them to stop
11144         valgrind from complaining.
11145
11146 2003-03-17  Havoc Pennington  <hp@pobox.com>
11147
11148         All tests pass, no memleaks, no valgrind complaints.
11149
11150         * bus/test.c: refcount handler_slot
11151
11152         * bus/connection.c (bus_connections_new): refcount
11153         connection_data_slot
11154
11155         * dbus/dbus-auth-script.c (_dbus_auth_script_run): delete unused
11156         bytes so that auth scripts pass.
11157
11158         * bus/dispatch.c: init message_handler_slot so it gets allocated
11159         properly
11160
11161         * bus/dispatch.c (message_handler_slot_ref): fix memleak
11162
11163         * dbus/dbus-server-debug-pipe.c (_dbus_server_debug_pipe_new):
11164         dealloc server_pipe_hash when no longer used for benefit of
11165         leak checking
11166
11167         * dbus/dbus-auth.c (process_command): memleak fix
11168
11169         * bus/dispatch.c (check_hello_message): memleak fix
11170
11171 2003-03-16  Havoc Pennington  <hp@pobox.com>
11172
11173         * dbus/dbus-bus.c (ensure_bus_data): fix double-unref of the data slot
11174
11175 2003-03-17  Anders Carlsson  <andersca@codefactory.se>
11176
11177         * bus/activation.c (bus_activation_activate_service): Append
11178         the pending activation entry to the list of pending activations.
11179
11180 2003-03-16  Havoc Pennington  <hp@pobox.com>
11181
11182         * bus/dispatch.c (bus_dispatch_test): remove double-unrefs of
11183         connections
11184
11185         * dbus/dbus-address.c (create_entry): fix OOM handling when
11186         failing to alloc entry->method
11187
11188 2003-03-16  Havoc Pennington  <hp@pobox.com>
11189
11190         * dbus/dbus-watch.c (_dbus_watch_new): handle failure to malloc
11191         the watch
11192
11193         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
11194         add some missing dbus_set_result
11195
11196         * bus/dispatch.c (bus_dispatch_add_connection): handle failure to
11197         alloc the DBusMessageHandler
11198
11199         * dbus/dbus-transport.c (_dbus_transport_disconnect): don't ref
11200         the transport here, since we call this from the finalizer; it
11201         resulted in a double-finalize.
11202
11203         * dbus/dbus-transport.c (_dbus_transport_disconnect): fix a bug
11204         where we tried to use transport->connection that was NULL,
11205         happened when transport was disconnected early on due to OOM
11206
11207         * bus/*.c: adapt to handle OOM for watches/timeouts
11208
11209         * dbus/dbus-transport-unix.c: port to handle OOM during
11210         watch handling
11211
11212         * dbus/dbus-auth.c (_dbus_auth_get_unused_bytes): return a
11213         reference to unused bytes instead of a copy
11214
11215         * dbus/dbus-server.c (dbus_server_handle_watch): return FALSE for
11216         out of memory
11217
11218         * dbus/dbus-connection.c (dbus_connection_handle_watch): return
11219         FALSE on OOM
11220
11221         * dbus/dbus-timeout.c (dbus_timeout_handle): return FALSE for out
11222         of memory
11223
11224 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
11225
11226         * doc/dbus-specification.sgml:
11227         Document reply message for ActivateService.
11228
11229 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
11230
11231         * bus/activation.c: (bus_pending_activation_entry_free),
11232         (bus_pending_activation_free), (bus_activation_new),
11233         (bus_activation_unref), (bus_activation_service_created),
11234         (bus_activation_activate_service):
11235         * bus/activation.h:
11236         * bus/bus.c: (bus_context_new):
11237         * bus/desktop-file.c: (new_section):
11238         * bus/driver.c: (bus_driver_send_service_deleted),
11239         (bus_driver_handle_activate_service):
11240         * bus/services.c: (bus_registry_new), (bus_registry_ensure):
11241         * bus/services.h:
11242         * dbus/dbus-connection.c:
11243         (dbus_connection_send_with_reply_and_block):
11244         * dbus/dbus-message.c: (dbus_message_append_args_valist):
11245         * dbus/dbus-protocol.h:
11246         Make activation work better. Now pending activations will be queued
11247         and the daemon won't try to activate services that are already registered.
11248
11249 2003-03-16  Havoc Pennington  <hp@pobox.com>
11250
11251         * dbus/dbus-bus.c (ensure_bus_data): handle failure to set
11252         connection data
11253
11254         * dbus/dbus-memory.c (_dbus_initialize_malloc_debug): support
11255         DBUS_MALLOC_BACKTRACES to print trace when failing an alloc
11256
11257 2003-03-16  Havoc Pennington  <hp@pobox.com>
11258
11259         * dbus/dbus-string.c (_dbus_string_validate_utf8): oops, unbreak
11260         this. always run the test suite before commit...
11261
11262         * bus/*: adapt to DBusConnection API changes
11263
11264         * glib/dbus-gmain.c: adapt to DBusConnection API changes,
11265         requires renaming stuff to avoid dbus_connection_dispatch name
11266         conflict.
11267
11268         * dbus/dbus-transport.c (_dbus_transport_queue_messages): new
11269         function
11270
11271         * dbus/dbus-message.c (_dbus_message_loader_queue_messages):
11272         separate from _dbus_message_loader_return_buffer()
11273
11274         * dbus/dbus-connection.c (dbus_connection_get_n_messages): remove
11275         this, because it's now always broken to use; the number of
11276         messages in queue vs. the number still buffered by the message
11277         loader is undefined/meaningless. Should use
11278         dbus_connection_get_dispatch_state().
11279         (dbus_connection_dispatch): rename from
11280         dbus_connection_dispatch_message
11281
11282 2003-03-16  Havoc Pennington  <hp@pobox.com>
11283
11284         * dbus/dbus-string.c (_dbus_string_validate_utf8): copy in a real
11285         implementation
11286
11287 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
11288
11289         * dbus/dbus-connection.c:
11290         (dbus_connection_send_with_reply_and_block):
11291         Decrease connection->n_incoming when removing an entry
11292         from the list.
11293         * dbus/dbus-dict.c: (dbus_dict_entry_free),
11294         (dbus_dict_set_boolean_array), (dbus_dict_set_int32_array),
11295         (dbus_dict_set_uint32_array), (dbus_dict_set_double_array),
11296         (dbus_dict_set_byte_array), (dbus_dict_set_string_array),
11297         (dbus_dict_get_boolean_array), (dbus_dict_get_double_array),
11298         (dbus_dict_get_byte_array):
11299         Handle NULL arrays and strings. Also add support for byte arrays.
11300
11301         * dbus/dbus-marshal.c: (_dbus_marshal_byte_array),
11302         (_dbus_marshal_dict), (_dbus_demarshal_byte_array),
11303         (_dbus_demarshal_int32_array), (_dbus_demarshal_uint32_array),
11304         (_dbus_demarshal_double_array), (_dbus_demarshal_string_array),
11305         (_dbus_demarshal_dict), (demarshal_and_validate_len),
11306         (_dbus_marshal_validate_arg), (_dbus_marshal_test):
11307         * dbus/dbus-marshal.h:
11308         Add support for marshalling and demarshalling empty arrays and strings.
11309
11310         * dbus/dbus-message.c: (dbus_message_append_args_valist),
11311         (dbus_message_append_string_array),
11312         (dbus_message_iter_get_boolean),
11313         (dbus_message_iter_get_boolean_array),
11314         (dbus_message_iter_get_int32_array),
11315         (dbus_message_iter_get_uint32_array),
11316         (dbus_message_iter_get_double_array),
11317         (dbus_message_iter_get_byte_array),
11318         (dbus_message_iter_get_string_array), (dbus_message_iter_get_dict),
11319         (check_message_handling):
11320         Add support for getting empty arrays and dicts.
11321
11322         * dbus/dbus-string.c: (_dbus_string_validate_utf8):
11323         Don't do any validation at all for now, that's better than just checking
11324         for ASCII.
11325
11326         * test/data/valid-messages/emptiness.message:
11327         New test message with lots of empty arrays.
11328
11329 2003-03-16  Havoc Pennington  <hp@pobox.com>
11330
11331         * dbus/dbus-connection.c
11332         (_dbus_connection_queue_received_message_link): new function that
11333         can't fail due to OOM
11334
11335         * dbus/dbus-message.c (_dbus_message_loader_pop_message_link):
11336         new function pops a message together with a list link
11337         containing it.
11338
11339         * dbus/dbus-transport-unix.c (queue_messages): use new link-based
11340         message queuing functions to avoid needing to alloc memory
11341
11342 2003-03-16  Havoc Pennington  <hp@pobox.com>
11343
11344         Oops - test code was only testing failure of around 30 of the
11345         mallocs in the test path, but it turns out there are 500+
11346         mallocs. I believe this was due to misguided linking setup such
11347         that there was one copy of dbus_malloc etc. in the daemon and one
11348         in the shared lib, and only daemon mallocs were tested. In any
11349         case, the test case now tests all 500+ mallocs, and doesn't pass
11350         yet, though there are lots of fixes in this patch.
11351
11352         * dbus/dbus-connection.c (dbus_connection_dispatch_message): fix
11353         this so that it doesn't need to allocate memory, since it
11354         has no way of indicating failure due to OOM (and would be
11355         annoying if it did).
11356
11357         * dbus/dbus-list.c (_dbus_list_pop_first_link): new function
11358
11359         * bus/Makefile.am: rearrange to create two self-contained
11360         libraries, to avoid having libraries with overlapping symbols.
11361         that was resulting in weirdness, e.g. I'm pretty sure there
11362         were two copies of global static variables.
11363
11364         * dbus/dbus-internals.c: move the malloc debug stuff to
11365         dbus-memory.c
11366
11367         * dbus/dbus-list.c (free_link): free list mempool if it becomes
11368         empty.
11369
11370         * dbus/dbus-memory.c (_dbus_disable_mem_pools): new function
11371
11372         * dbus/dbus-address.c (dbus_parse_address): free list nodes
11373         on failure.
11374
11375         * bus/dispatch.c (bus_dispatch_add_connection): free
11376         message_handler_slot when no longer using it, so
11377         memory leak checkers are happy for the test suite.
11378
11379         * dbus/dbus-server-debug-pipe.c (debug_finalize): free server name
11380
11381         * bus/bus.c (new_connection_callback): disconnect in here if
11382         bus_connections_setup_connection fails.
11383
11384         * bus/connection.c (bus_connections_unref): fix to free the
11385         connections
11386         (bus_connections_setup_connection): if this fails, don't
11387         disconnect the connection, just be sure there are no side
11388         effects.
11389
11390         * dbus/dbus-string.c (undo_alignment): unbreak this
11391
11392         * dbus/dbus-auth.c (_dbus_auth_unref): free some stuff we were
11393         leaking
11394         (_dbus_auth_new): fix the order in which we free strings
11395         on OOM failure
11396
11397         * bus/connection.c (bus_connection_disconnected): fix to
11398         not send ServiceDeleted multiple times in case of memory
11399         allocation failure
11400
11401         * dbus/dbus-bus.c (dbus_bus_get_base_service): new function to
11402         get the base service name
11403         (dbus_bus_register_client): don't return base service name,
11404         instead store it on the DBusConnection and have an accessor
11405         function for it.
11406         (dbus_bus_register_client): rename dbus_bus_register()
11407
11408         * bus/dispatch.c (check_hello_message): verify that other
11409         connections on the bus also got the correct results, not
11410         just the one sending hello
11411
11412 2003-03-15  Havoc Pennington  <hp@pobox.com>
11413
11414         Make it pass the Hello handling test including all OOM codepaths.
11415         Now to do other messages...
11416
11417         * bus/services.c (bus_service_remove_owner): fix crash when
11418         removing owner from an empty list of owners
11419         (bus_registry_ensure): don't leave service in the list of
11420         a connection's owned services if we fail to put the service
11421         in the hash table.
11422
11423         * bus/connection.c (bus_connection_preallocate_oom_error): set
11424         error flag on the OOM error.
11425
11426         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
11427         handle _dbus_transport_set_connection failure
11428
11429         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd): modify
11430         to create watches up front and simply enable/disable them as
11431         needed.
11432         (unix_connection_set): this can now fail on OOM
11433
11434         * dbus/dbus-timeout.c, dbus/dbus-watch.c: add concept
11435         of enabling/disabling a watch or timeout.
11436
11437         * bus/loop.c (bus_loop_iterate): don't touch disabled
11438         watches/timeouts
11439
11440         * glib/dbus-gmain.c: adapt to enable/disable watches and timeouts
11441
11442 2003-03-15  Havoc Pennington  <hp@pobox.com>
11443
11444         * bus/dispatch.c (bus_dispatch_test): OK, now finally actually
11445         write useful test code, after all that futzing around ;-)
11446
11447         Test does not yet pass because we can't handle OOM in
11448         _dbus_transport_messages_pending (basically,
11449         dbus_connection_preallocate_send() does not prealloc the write
11450         watch). To fix this, I think we need to add new stuff to
11451         set_watch_functions, namely a SetEnabled function so we can alloc
11452         the watch earlier, then enable it later.
11453
11454         * dbus/Makefile.am (libdbus_convenience_la_SOURCES): move
11455         dbus-memory.c to the convenience lib
11456
11457         * bus/test.c: rename some static functions to keep them clearly
11458         distinct from stuff in connection.c. Handle client disconnection.
11459
11460 2003-03-14  Havoc Pennington  <hp@pobox.com>
11461
11462         * bus/dispatch.c (bus_dispatch_test): do test using debug-pipe
11463         transport, tests more of the real codepath. Set up clients
11464         with bus_setup_debug_client.
11465
11466         * bus/test.c (bus_setup_debug_client): function to set up debug
11467         "clients" on the main loop
11468
11469         * dbus/dbus-transport.c (_dbus_transport_open): add debug-pipe
11470         support
11471
11472         * dbus/dbus-server.c (dbus_server_listen): add debug-pipe
11473         server type
11474
11475         * dbus/dbus-server-debug.c: support a debug server based on pipes
11476
11477         * dbus/dbus-sysdeps.c (_dbus_full_duplex_pipe): new function
11478         (_dbus_close): new function
11479
11480         * configure.in: check for socketpair
11481
11482 2003-03-14  Havoc Pennington  <hp@redhat.com>
11483
11484         * dbus/dbus-memory.c: add a "detect buffer overwrites on free"
11485         cheesy hack
11486
11487         * dbus/dbus-transport-debug.c: rework this a good bit to be
11488         less complicated. hopefully still works.
11489
11490         * dbus/dbus-server-debug.c (handle_new_client): remove timeout
11491         manually
11492
11493         * glib/dbus-gmain.c (timeout_handler): don't remove timeout
11494         after running it
11495
11496         * dbus/dbus-message.c (dbus_message_copy): rename from
11497         dbus_message_new_from_message, fix it up to copy
11498         all the message fields, add test case
11499
11500         * bus/dispatch.c (bus_dispatch_test): add some more test code,
11501         not quite passing yet
11502
11503 2003-03-14  Havoc Pennington  <hp@pobox.com>
11504
11505         * bus/loop.c (bus_loop_iterate): add this so we can "run loop
11506         until no work remains" in test code. (the large diff here
11507         is just code movement, no actual changes)
11508
11509         * dbus/dbus-server-debug.c (DEFAULT_INTERVAL): change interval to
11510         1, no point waiting around for test code.
11511         (_dbus_server_debug_accept_transport): unref the timeout
11512         after adding it (right?)
11513
11514         * dbus/dbus-transport-debug.c (DEFAULT_INTERVAL): ditto
11515
11516 2003-03-13  Havoc Pennington  <hp@redhat.com>
11517
11518         * dbus/dbus-timeout.c (_dbus_timeout_list_set_functions): handle
11519         out of memory
11520
11521         * dbus/dbus-watch.c (_dbus_watch_list_set_functions): handle out
11522         of memory
11523
11524         * dbus/dbus-connection.h: Make AddWatchFunction and
11525         AddTimeoutFunction return a bool so they can fail on out-of-memory
11526
11527         * bus/bus.c (bus_context_new): set up timeout handlers
11528
11529         * bus/connection.c (bus_connections_setup_connection): set up
11530         timeout handlers
11531
11532         * glib/dbus-gmain.c: adapt to the fact that set_functions stuff
11533         can fail
11534
11535         * bus/bus.c (bus_context_new): adapt to changes
11536
11537         * bus/connection.c: adapt to changes
11538
11539         * test/watch.c: adapt to DBusWatch changes
11540
11541         * bus/dispatch.c (bus_dispatch_test): started adding this but
11542         didn't finish
11543
11544 2003-03-14  Anders Carlsson  <andersca@codefactory.se>
11545
11546         * bus/dispatch.c (send_service_nonexistent_error): Fix typo.
11547
11548 2003-03-13  Havoc Pennington  <hp@pobox.com>
11549
11550         * bus/test.c, bus/test.h, bus/Makefile.am, bus/test-main.c:
11551         set up a test framework as for the library
11552
11553 2003-03-12  Havoc Pennington  <hp@pobox.com>
11554
11555         Throughout: purge global variables, introduce BusActivation,
11556         BusConnections, BusRegistry, etc. objects instead.
11557
11558         * bus/bus.h, bus/bus.c: introduce BusContext as a global
11559         message bus object
11560
11561         * test/Makefile.am (TEST_BINARIES): disable bus-test for now,
11562         going to redo this a bit differently I think
11563
11564 2003-03-12  Havoc Pennington  <hp@redhat.com>
11565
11566         Mega-patch that gets the message bus daemon initially handling
11567         out-of-memory. Work still needed. Also lots of random
11568         moving stuff to DBusError instead of ResultCode.
11569
11570         * dbus/dbus-list.c (_dbus_list_length_is_one): new function
11571
11572         * dbus/dbus-connection.c
11573         (dbus_connection_send_with_reply_and_block): use DBusError
11574
11575         * dbus/dbus-bus.c: adapt to API changes, make it use DBusError not
11576         DBusResultCode
11577
11578         * dbus/dbus-connection.c (dbus_connection_send): drop the result
11579         code here, as the only failure possible is OOM.
11580
11581         * bus/connection.c (bus_connection_disconnect):
11582         rename bus_connection_disconnected as it's a notification only
11583
11584         * bus/driver.c (bus_driver_handle_acquire_service): don't free
11585         "name" on get_args failure, should be done by get_args;
11586         don't disconnect client for bad args, just return an error.
11587         (bus_driver_handle_service_exists): ditto
11588
11589         * bus/services.c (bus_services_list): NULL-terminate returned array
11590
11591         * bus/driver.c (bus_driver_send_service_lost)
11592         (bus_driver_send_service_acquired): send messages from driver to a
11593         specific client to the client's unique name, not to the broadcast
11594         service.
11595
11596         * dbus/dbus-message.c (decode_header_data): reject messages that
11597         contain no name field
11598         (_dbus_message_get_client_serial): rename to
11599         dbus_message_get_serial and make public
11600         (_dbus_message_set_serial): rename from set_client_serial
11601         (_dbus_message_set_reply_serial): make public
11602         (_dbus_message_get_reply_serial): make public
11603
11604         * bus/connection.c (bus_connection_foreach): allow stopping
11605         iteration by returning FALSE from foreach function.
11606
11607         * dbus/dbus-connection.c (dbus_connection_send_preallocated)
11608         (dbus_connection_free_preallocated_send)
11609         (dbus_connection_preallocate_send): new API for sending a message
11610         without possibility of malloc failure.
11611         (dbus_connection_send_message): rename to just
11612         dbus_connection_send (and same for whole function family)
11613
11614         * dbus/dbus-errors.c (dbus_error_free): make this reinit the error
11615
11616         * dbus/dbus-sysdeps.c (_dbus_exit): new function
11617
11618         * bus/activation.c: handle/return errors
11619
11620         * dbus/dbus-errors.h: add more DBUS_ERROR #define
11621
11622         * dbus/dbus-sysdeps.c (_dbus_directory_open) (_dbus_file_get_contents)
11623         (_dbus_directory_get_next_file): use DBusError instead of DBusResultCode
11624         (_dbus_result_from_errno): move to this file
11625
11626 2003-03-10  Anders Carlsson  <andersca@codefactory.se>
11627
11628         * dbus/dbus-marshal.c:
11629         (_dbus_marshal_set_string):
11630         Take a length argument so we can marshal the correct string
11631         length.
11632
11633         (_dbus_marshal_dict), (_dbus_demarshal_dict),
11634         (_dbus_marshal_get_arg_end_pos), (_dbus_marshal_validate_arg),
11635         (_dbus_marshal_test):
11636         * dbus/dbus-marshal.h:
11637         Add support for marshalling and demarshalling dicts.
11638
11639         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
11640         Add support for TYPE DICT.
11641
11642         * dbus/dbus-message.c: (set_string_field):
11643         Adjust header padding.
11644
11645         (dbus_message_append_args_valist), (dbus_message_append_dict),
11646         (dbus_message_get_args_valist), (dbus_message_iter_get_arg_type),
11647         (dbus_message_iter_get_dict), (_dbus_message_loader_return_buffer),
11648         (check_message_handling), (check_have_valid_message):
11649         * dbus/dbus-message.h:
11650         Add functions for setting and getting dicts.
11651
11652         * dbus/dbus-protocol.h:
11653         Add DBUS_TYPE_DICT.
11654
11655         * dbus/dbus.h:
11656         Add dbus-dict.h
11657
11658         * doc/dbus-specification.sgml:
11659         Add information about how dicts are marshalled.
11660
11661         * test/data/invalid-messages/dict-with-nil-value.message:
11662         * test/data/invalid-messages/too-short-dict.message:
11663         * test/data/valid-messages/dict-simple.message:
11664         * test/data/valid-messages/dict.message:
11665         Add sample messages containing dicts.
11666
11667 2003-03-08  Anders Carlsson  <andersca@codefactory.se>
11668
11669         * dbus/dbus-dict.h: Add DBUS_END_DECLS.
11670
11671 2003-03-07  Anders Carlsson  <andersca@codefactory.se>
11672
11673         * dbus/Makefile.am:
11674         * dbus/dbus-dict.c: (dbus_dict_entry_free), (dbus_dict_new),
11675         (dbus_dict_get_keys), (insert_entry), (dbus_dict_set_boolean),
11676         (dbus_dict_set_int32), (dbus_dict_set_uint32),
11677         (dbus_dict_set_double), (dbus_dict_set_string),
11678         (dbus_dict_set_boolean_array), (dbus_dict_set_int32_array),
11679         (dbus_dict_set_uint32_array), (dbus_dict_set_double_array),
11680         (dbus_dict_set_string_array), (_dbus_dict_test):
11681         * dbus/dbus-dict.h:
11682         Fix according to comments from Havoc.
11683
11684 2003-03-06  Michael Meeks  <michael@server.home>
11685
11686         * configure.in: if we don't have kde-config, disable have_qt.
11687
11688 2003-03-07  Anders Carlsson  <andersca@codefactory.se>
11689
11690         * dbus/Makefile.am:
11691         Add dbus-dict.[ch]
11692
11693         * dbus/dbus-dict.c: (dbus_dict_entry_free), (dbus_dict_new),
11694         (dbus_dict_ref), (dbus_dict_unref), (dbus_dict_contains),
11695         (dbus_dict_remove), (dbus_dict_get_value_type),
11696         (dbus_dict_get_keys), (dbus_dict_put_boolean),
11697         (dbus_dict_put_int32), (dbus_dict_put_uint32),
11698         (dbus_dict_put_double), (dbus_dict_put_string),
11699         (dbus_dict_put_boolean_array), (dbus_dict_put_int32_array),
11700         (dbus_dict_put_uint32_array), (dbus_dict_put_double_array),
11701         (dbus_dict_put_string_array), (dbus_dict_get_boolean),
11702         (dbus_dict_get_int32), (dbus_dict_get_uint32),
11703         (dbus_dict_get_double), (dbus_dict_get_string),
11704         (dbus_dict_get_boolean_array), (dbus_dict_get_int32_array),
11705         (dbus_dict_get_uint32_array), (dbus_dict_get_double_array),
11706         (dbus_dict_get_string_array), (_dbus_dict_test):
11707         * dbus/dbus-dict.h:
11708         Add DBusDict implementation
11709
11710         * dbus/dbus-test.c: (dbus_internal_do_not_use_run_tests):
11711         * dbus/dbus-test.h:
11712         Add _dbus_dict_test
11713
11714 2003-03-04  Havoc Pennington  <hp@pobox.com>
11715
11716         * test/data/auth/*: adapt to changes
11717
11718         * dbus/dbus-auth-script.c (_dbus_auth_script_run): add
11719         USERID_BASE64 and change USERNAME_BASE64 to put in username not
11720         userid
11721
11722         * dbus/dbus-keyring.c (_dbus_keyring_validate_context): prevent
11723         more stuff from being in a context name, to make the protocol
11724         simpler to deal with
11725
11726         * dbus/dbus-errors.c (dbus_error_has_name): new function
11727         (dbus_error_is_set): new function
11728
11729         * dbus/dbus-auth.c: replace DBUS_STUPID_TEST_MECH auth
11730         with DBUS_COOKIE_SHA1, implement DBUS_COOKIE_SHA1
11731
11732         * dbus/dbus-connection.c (dbus_connection_flush): also read
11733         messages during a flush operation
11734
11735         * dbus/Makefile.am: remove dbus-md5 since it isn't currently used.
11736
11737 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
11738
11739         * configure.in: Check for gethostbyname on Solaris.
11740
11741         * dbus/dbus-transport.c: (_dbus_transport_open):
11742         Remove duplicate "tcp" entry.
11743
11744         * doc/dbus-specification.sgml:
11745         Clarify some things.
11746
11747 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
11748
11749         * dbus/dbus-auth.c: (send_rejected), (process_test_subdir):
11750         * dbus/dbus-keyring.c: (_dbus_keyring_new_homedir),
11751         (_dbus_keyring_test):
11752         * dbus/dbus-md5.c: (_dbus_md5_compute):
11753         * dbus/dbus-sha.c: (_dbus_sha_compute):
11754         Plug memory leaks.
11755
11756 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
11757
11758         * README: Add some things.
11759
11760 2003-03-04  Anders Carlsson  <andersca@codefactory.se>
11761
11762         * dbus/dbus-message.c (dbus_message_append_args_valist): Add a break;
11763         after case DBUS_TYPE_BOOELAN.
11764
11765 2003-03-02  Havoc Pennington  <hp@pobox.com>
11766
11767         * test/break-loader.c (randomly_set_extreme_ints): add test that
11768         sets really huge and small integers
11769
11770         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): add check
11771         that length of boolean array fits in the string, and that
11772         string has room for boolean value in single-bool case.
11773
11774         * dbus/dbus-message-builder.c (_dbus_message_data_load): add
11775         optional value to "ALIGN" command which is what to fill the
11776         alignment with.
11777
11778         * test/data/valid-messages/no-padding.message: add regression
11779         test for the message padding problem
11780
11781 2003-03-02  Havoc Pennington  <hp@pobox.com>
11782
11783         * dbus/dbus-message.c (decode_header_data): fix to always init
11784         message_padding, from Benjamin Dauvergne
11785
11786 2003-03-02  Havoc Pennington  <hp@pobox.com>
11787
11788         * configure.in: 0.5
11789
11790         * NEWS: Update.
11791
11792 2003-03-01  Joe Shaw  <joe@assbarn.com>
11793
11794         * configure.in: Check for "struct cmsgcred" and try to access its
11795         members for BSD-like unices.
11796
11797         * dbus/dbus-sysdeps.c (read_credentials_byte): Fold this back into
11798         _dbus_read_credentials_unix_socket().
11799         (_dbus_read_credentials_unix_socket): Use recvmsg() instead of
11800         read() for reading the credential byte off the unix socket.  Use
11801         struct cmsgcred on systems that support it.
11802
11803 2003-02-27  Alexander Larsson  <alexl@redhat.com>
11804
11805         * glib/Makefile.am:
11806         * configure.in:
11807         Make gthreads-2.0 dependency optional. Don't build thread test if
11808         its not found.
11809
11810 2003-02-27  Havoc Pennington  <hp@pobox.com>
11811
11812         * dbus/dbus-connection.c
11813         (dbus_connection_send_message_with_reply_and_block): fix doh!
11814         doh! doh! bug that resulted in never removing a reply from the
11815         queue, no wonder we called get_reply_serial so much ;-)
11816
11817         * dbus/dbus-message.c (struct DBusMessage): cache reply serial
11818         and client serial instead of demarshaling them every time
11819
11820 2003-02-27  Havoc Pennington  <hp@pobox.com>
11821
11822         * dbus/dbus-marshal.c (_dbus_demarshal_int32): rewrite to be much
11823         more inlined, using dbus-string-private.h, speeds things up
11824         substantially
11825
11826         * dbus/dbus-string.c (_dbus_string_free): apply align offset
11827         when freeing the string
11828         (_dbus_string_steal_data): fix for align offset
11829         (undo_alignment): new function
11830
11831 2003-02-26  Havoc Pennington  <hp@redhat.com>
11832
11833         All kinds of audit fixes from Owen, plus initial attempt to
11834         handle unaligned memory returned from malloc.
11835
11836         * dbus/dbus-string.c (_dbus_string_init): clamp max length to
11837         leave room for align_offset and nul byte
11838         (fixup_alignment): function to track an align_offset and
11839         ensure real->str is aligned
11840         (DBUS_GENERIC_STRING_PREAMBLE): len must be less than allocated,
11841         to allow a nul byte plus align offset
11842         (_dbus_string_lock): fix overflow issue
11843         (_dbus_string_init_const_len): add assertions on sanity of len,
11844         assign allocated to be ALLOCATION_PADDING larger than len
11845         (set_length): fixup the overflow handling
11846         (_dbus_string_get_data_len): fix overflow in assertion
11847         (open_gap): detect overflow in size of gap to be opened
11848         (_dbus_string_lengthen): add overflow check
11849         (_dbus_string_align_length): fix overflow with _DBUS_ALIGN_VALUE
11850         (_dbus_string_append): add overflow check
11851         (_dbus_string_append_unichar): overflow
11852         (_dbus_string_delete): fix overflow in assertion
11853         (_dbus_string_copy_len): overflow in assertion
11854         (_dbus_string_replace_len): overflows in assertions
11855         (_dbus_string_find): change to implement in terms of
11856         _dbus_string_find_to
11857         (_dbus_string_find_to): assorted fixage
11858         (_dbus_string_equal_c_str): assert c_str != NULL,
11859         fix logic so the function works
11860         (_dbus_string_ends_with_c_str): fix overflow thingy
11861         (_dbus_string_base64_encode): overflow fix
11862         (_dbus_string_validate_ascii): overflow
11863         (_dbus_string_validate_nul): overflow
11864
11865 2003-02-26  Havoc Pennington  <hp@redhat.com>
11866
11867         * dbus/dbus-marshal.c (_dbus_marshal_test): fix to work with DISABLE_ASSERTS
11868
11869 2003-02-26  Alexander Larsson  <alexl@redhat.com>
11870
11871         * configure.in:
11872         Set DBUS_GLIB_THREADS_LIBS for apps using gthread-2.0
11873
11874         * dbus/dbus-connection.c:
11875         * dbus/dbus-connection.h:
11876         Fix _dbus_connection_acquire_io_path and _dbus_connection_acquire_dispatch.
11877         Add dbus_connection_set_wakeup_main_function and use it when queueing
11878         incoming and outgoing messages.
11879
11880
11881         * dbus/dbus-dataslot.c:
11882         Threadsafe usage of DBusDataSlotAllocator
11883
11884         * dbus/dbus-message.c: (dbus_message_get_args_iter):
11885         dbus_new can fail.
11886
11887         * dbus/dbus-server-unix.c:
11888         Add todo comment
11889
11890         * glib/dbus-gmain.c:
11891         Implement the new wakeup functions for glib.
11892
11893         * glib/Makefile.am:
11894         * glib/test-thread-client.c:
11895         * glib/test-thread-server.c:
11896         * glib/test-thread.h:
11897         Initial cut at some thread test code. Not really done yet.
11898
11899 2003-02-26  Havoc Pennington  <hp@pobox.com>
11900
11901         * dbus/dbus-connection.c
11902         (dbus_connection_send_message_with_reply_and_block): fix crash
11903         where we ref'd the outgoing message instead of the returned reply
11904
11905         * dbus/dbus-transport-unix.c (do_authentication): check read watch
11906         at the end of this function, so if we didn't need to read for
11907         authentication, we reinstall it for receiving messages
11908
11909         * dbus/dbus-message.c (dbus_message_new_reply): allow replies to
11910         a NULL sender for peer-to-peer case
11911
11912         * dbus/dbus-transport-unix.c (check_read_watch): handle
11913         !authenticated case correctly
11914
11915         * glib/dbus-gmain.c: add support for DBusServer
11916
11917         * dbus/dbus-server.c: add data slot support
11918
11919         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): check
11920         return values and handle errors
11921
11922         * dbus/dbus-dataslot.c: factor out the data slot stuff from
11923         DBusConnection
11924
11925         * Doxyfile.in (INPUT): add glib subdir
11926
11927         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): rename
11928         setup_with_g_main instead of hookup_with_g_main; write docs
11929
11930 2003-02-24  Anders Carlsson  <andersca@codefactory.se>
11931
11932         * dbus/dbus-marshal.c: (_dbus_marshal_validate_arg):
11933         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
11934         * dbus/dbus-message.c: (dbus_message_append_boolean),
11935         (dbus_message_append_boolean_array),
11936         (dbus_message_get_args_valist), (_dbus_message_test):
11937         * dbus/dbus-message.h:
11938         * doc/dbus-specification.sgml:
11939         Various fixes as pointed out by Havoc.
11940
11941         * test/data/invalid-messages/bad-boolean-array.message:
11942         * test/data/invalid-messages/bad-boolean.message:
11943         Add invalid boolean value test cases.
11944
11945 2003-02-24  Anders Carlsson  <andersca@codefactory.se>
11946
11947         * dbus/dbus-internals.c: (_dbus_type_to_string):
11948         * dbus/dbus-marshal.c: (_dbus_marshal_get_arg_end_pos),
11949         (_dbus_marshal_validate_arg):
11950         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
11951         * dbus/dbus-message.c: (dbus_message_append_args_valist),
11952         (dbus_message_append_boolean), (dbus_message_append_boolean_array),
11953         (dbus_message_get_args_valist), (dbus_message_iter_get_boolean),
11954         (dbus_message_iter_get_int32), (dbus_message_iter_get_uint32),
11955         (dbus_message_iter_get_double),
11956         (dbus_message_iter_get_boolean_array), (message_iter_test):
11957         * dbus/dbus-message.h:
11958         * dbus/dbus-protocol.h:
11959         * doc/dbus-specification.sgml:
11960         * test/data/valid-messages/lots-of-arguments.message:
11961         Add support for boolean and boolean array types.
11962
11963 2003-02-23  Havoc Pennington  <hp@pobox.com>
11964
11965         * dbus/dbus-keyring.c: finish most of this implementation and
11966         simple unit test
11967
11968         * dbus/dbus-errors.c (dbus_set_error_const, dbus_set_error): make
11969         these barf if the error isn't cleared to NULL
11970
11971         * dbus/dbus-sysdeps.c (_dbus_delete_file): set error on failure
11972         (_dbus_create_directory): new function
11973
11974         * dbus/dbus-errors.c (dbus_set_error): fix warning
11975
11976         * dbus/dbus-string.c (_dbus_string_hex_encode): new function
11977         (_dbus_string_hex_decode): new function
11978         (test_hex_roundtrip): test code
11979
11980         * dbus/dbus-sha.c (_dbus_sha_compute): use dbus_string_hex_encode
11981
11982         * dbus/dbus-md5.c (_dbus_md5_compute): use dbus_string_hex_encode
11983
11984         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): make this use
11985         the save-to-temp/rename trick to atomically write the new file
11986         (_dbus_string_parse_uint): new function
11987
11988 2003-02-22  Havoc Pennington  <hp@pobox.com>
11989
11990         * test/Makefile.am (dist-hook): fix dist for test/data/sha-1
11991
11992 2003-02-22  Havoc Pennington  <hp@pobox.com>
11993
11994         * dbus/dbus-message.c (dbus_message_iter_get_string_array):
11995         (dbus_message_iter_get_byte_array): Fix up doxygen warnings
11996
11997         * dbus/dbus-sha.c: add implementation of SHA-1 algorithm
11998
11999         * dbus/test/data/sha-1: add US government test suite for SHA-1
12000
12001 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
12002
12003         * dbus/dbus-marshal.c: (_dbus_demarshal_string_array):
12004         Make string arrays NULL-terminated.
12005
12006         * dbus/dbus-memory.c: (dbus_free_string_array):
12007         * dbus/dbus-memory.h:
12008         New function for freeing NULL-terminated string arrays.
12009
12010         * dbus/dbus-message-builder.c: (append_quoted_string),
12011         (_dbus_message_data_load):
12012         Add support for array types.
12013
12014         * dbus/dbus-message.c: (check_message_handling):
12015         Add more types as test cases.
12016
12017         * dbus/dbus-sysdeps.c: (_dbus_string_parse_int),
12018         (_dbus_string_parse_double):
12019         Add the start offset to the end offset.
12020
12021         * test/data/valid-messages/lots-of-arguments.message:
12022         New test message with lots of arguments.
12023
12024 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
12025
12026         * dbus/dbus-message.c: (dbus_message_append_nil),
12027         (dbus_message_append_int32), (dbus_message_append_uint32),
12028         (dbus_message_append_double), (dbus_message_append_string),
12029         (dbus_message_append_int32_array),
12030         (dbus_message_append_uint32_array),
12031         (dbus_message_append_double_array),
12032         (dbus_message_append_byte_array),
12033         (dbus_message_append_string_array):
12034         Fix all out-of-memory handling in these functions.
12035
12036 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
12037
12038         * dbus/dbus-message.c: (dbus_message_append_nil):
12039         Fix a silly.
12040
12041 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
12042
12043         * dbus/dbus-message.c: (dbus_message_append_args_valist),
12044         (dbus_message_append_nil), (dbus_message_append_int32_array),
12045         (dbus_message_append_uint32_array),
12046         (dbus_message_append_double_array),
12047         (dbus_message_append_byte_array),
12048         (dbus_message_append_string_array), (dbus_message_get_args_valist),
12049         (dbus_message_iter_get_int32_array),
12050         (dbus_message_iter_get_uint32_array),
12051         (dbus_message_iter_get_double_array),
12052         (dbus_message_iter_get_byte_array),
12053         (dbus_message_iter_get_string_array):
12054
12055         * dbus/dbus-message.h:
12056         Add functions for appending and getting arrays.
12057
12058 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
12059
12060         * dbus/dbus-mempool.c (_dbus_mem_pool_new): Make the
12061         element size at least 8 bytes, fixes mempool tests on
12062         64-bit machines.
12063
12064 2003-02-20  Alexander Larsson  <alexl@redhat.com>
12065
12066         * dbus/dbus-transport-unix.c (unix_do_iteration):
12067         Unlock the connection mutex during a blocking select call.
12068         Add todo about how we need a way to wake up the select.
12069
12070         * dbus/dbus-connection-internal.h:
12071         * dbus/dbus-connection.c:
12072         Add _dbus_connection_lock and _dbus_connection_unlock.
12073
12074 2003-02-19  Havoc Pennington  <hp@pobox.com>
12075
12076         * Doxyfile.in (PREDEFINED): put DOXYGEN_SHOULD_SKIP_THIS in
12077         Doxyfile.in, not Doxyfile
12078
12079         * dbus/dbus-keyring.c: do some hacking on this
12080
12081         * dbus/dbus-sysdeps.c (_dbus_delete_file): new
12082
12083         * dbus/dbus-errors.c (dbus_set_error_const): do not call
12084         dbus_error_init
12085         (dbus_set_error): remove dbus_error_init, check for message ==
12086         NULL *before* we sprintf into it, and add @todo about including
12087         system headers in this file
12088
12089         * dbus/dbus-sysdeps.c (_dbus_create_file_exclusively): new
12090
12091         * dbus/dbus-errors.h (DBUS_ERROR_FAILED): add
12092
12093         * dbus/dbus-sysdeps.c (get_user_info): break this function out to
12094         get various bits of user information based on either username
12095         or user ID
12096         (_dbus_homedir_from_username): new function
12097
12098 2003-02-19  Anders Carlsson  <andersca@codefactory.se>
12099
12100         * configure.in:
12101         Add check for nonposix getpwnam_r
12102
12103         * dbus/dbus-mempool.c: (_dbus_mem_pool_new):
12104         Align the pool element size to a sizeof (void *) boundary.
12105
12106         * dbus/dbus-sysdeps.c: (_dbus_setenv), (_dbus_connect_unix_socket),
12107         (_dbus_listen_unix_socket), (_dbus_credentials_from_username):
12108         General Solaris fixes.
12109
12110         * test/data/valid-messages/simplest-manual.message:
12111         Explicitly state that we want little-endian packing.
12112
12113 2003-02-19  Mikael Hallendal  <micke@codefactory.se>
12114
12115         * dbus/dbus-server.c (dbus_server_listen): Support tcp: addresses.
12116
12117         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_tcp_socket):
12118         Added to create a transport connecting using a tcp/ip socket.
12119
12120         * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): Added to connect
12121         to a tcp socket at given host and port.
12122         (_dbus_listen_tcp_socket): added to listen on tcp socket for given
12123         hostname and port.
12124
12125         * dbus/dbus-server.c (dbus_server_listen): Support tcp: addresses.
12126
12127         * dbus/dbus-server-unix.c (_dbus_server_new_for_tcp_socket):
12128         Added to create a server listening on a TCP/IP socket.
12129
12130 2003-02-19  Havoc Pennington  <hp@pobox.com>
12131
12132         Throughout: mop up all the Doxygen warnings and undocumented
12133         stuff.
12134
12135         * dbus/dbus-sysdeps.c (do_exec): do not use execvp, we don't want
12136         to search any paths.
12137
12138         * dbus/dbus-threads.c: move global mutex initializers to
12139         dbus-internals.h, multiple prototypes was confusing doxygen
12140         besides being kind of ugly
12141
12142         * Doxyfile (PREDEFINED): have Doxygen define
12143         DOXYGEN_SHOULD_SKIP_THIS so we can exclude things from
12144         docs with #ifndef DOXYGEN_SHOULD_SKIP_THIS
12145         (do not abuse the feature! it's for stuff like the autogenerated
12146         macros in dbus-md5.c, not just for things you don't feel like
12147         documenting...)
12148
12149 2003-02-18  Havoc Pennington  <hp@pobox.com>
12150
12151         * dbus/dbus-string.c (_dbus_string_zero): new function
12152
12153         * dbus/dbus-md5.c: include MD5 implementation by L. Peter Deutsch,
12154         wrap it in some dbus-friendly API
12155
12156         * dbus/dbus-types.h: add 16-bit types
12157
12158 2003-02-18  Joe Shaw  <joe@assbarn.com>
12159
12160         * dbus/dbus-auth.c (handle_server_data_stupid_test_mech): Just get
12161         credentials from our currently running process.
12162         (get_word): Fix a buglet where we were copying the entire length
12163         instead of relative to our position.
12164
12165         * dbus/dbus-hash.c (_dbus_hash_test): Don't try to allocate the
12166         keys on the stack... it's 640k of data.
12167
12168         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): Always
12169         read the credentials byte off the socket, even if we don't have
12170         SO_PEERCRED.
12171         (_dbus_poll): Implement poll() using select() for systems which
12172         don't have it.
12173
12174         * glib/test-dbus-glib.c (main): Print out an error if no
12175         parameters are given.
12176
12177         * test/data/auth/fallback.auth-script: Added.  Tests that a client
12178         can fallback to a secondary auth mechanism if the first fails.
12179
12180 2003-02-18  Havoc Pennington  <hp@pobox.com>
12181
12182         * AUTHORS: add Alex
12183
12184 2003-02-17  Havoc Pennington  <hp@pobox.com>
12185
12186         * doc/dbus-specification.sgml: lots of cosmetic
12187         cleanups/rearrangement, add assorted FIXME, change DBUS_ADDRESS
12188         env variable to DBUS_BUS_ADDRESS, s/client/application/,
12189         s/server/bus/ (except in authentication section). Add a section
12190         "Message Bus Message Routing"
12191
12192 2003-02-17  Anders Carlsson  <andersca@codefactory.se.>
12193
12194         Release 0.4
12195
12196         * NEWS: Update
12197
12198 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
12199
12200         * doc/dbus-specification.sgml:
12201         Specification updates.
12202
12203 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
12204
12205         * bus/activation.c: (bus_activation_init), (child_setup),
12206         (bus_activation_activate_service):
12207         * bus/activation.h:
12208         * bus/main.c: (main):
12209         Set DBUS_ADDRESS environment variable.
12210
12211         * dbus/dbus-errors.c: (dbus_set_error):
12212         Don't use va_copy since that's a C99 feature.
12213
12214         * dbus/dbus-sysdeps.c: (_dbus_setenv), (do_exec),
12215         (_dbus_spawn_async):
12216         * dbus/dbus-sysdeps.h:
12217         Add child_setup_func to _dbus_spawn_async.
12218
12219         * doc/dbus-specification.sgml:
12220         Update specification.
12221
12222         * test/spawn-test.c: (setup_func), (main):
12223         Fix test.
12224
12225 2003-02-17  Alexander Larsson  <alexl@redhat.com>
12226
12227         * dbus/dbus-connection.c (_dbus_connection_handler_destroyed_locked):
12228         Added todo.
12229
12230 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
12231
12232         * doc/.cvsignore:
12233         * doc/Makefile.am:
12234         * doc/dbus-test-plan.sgml:
12235         Add test plan document.
12236
12237         * test/Makefile.am:
12238         Fix distcheck.
12239
12240 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
12241
12242         * dbus/dbus-message.c: (decode_header_data),
12243         (_dbus_message_loader_return_buffer):
12244         Set the header padding amount when loading a message.
12245
12246 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
12247
12248         * bus/dispatch.c: (send_one_message):
12249         Only send broadcast messages to registered connections.
12250
12251         * dbus/dbus-message.c: (dbus_message_name_is):
12252         * dbus/dbus-message.h:
12253         New convenience function.
12254
12255         * dbus/dbus-transport-debug.c: (do_reading):
12256         Only dispatch one message per run.
12257
12258         * test/Makefile.am:
12259         * test/bus-test.c: (new_connection_callback), (die),
12260         (test_hello_client1_handler), (test_hello_client2_handler),
12261         (test_hello_replies), (main):
12262
12263         * test/bus-test-loop.[ch]:
12264         Add these.
12265
12266 2003-02-16  Havoc Pennington  <hp@pobox.com>
12267
12268         * dbus/dbus-connection.c (dbus_connection_dispatch_message): fix
12269         backward conditional
12270
12271 2003-02-16  Alexander Larsson  <alexl@redhat.com>
12272
12273         * dbus/dbus-connection.c:
12274         Implement sent_message_with_reply. (with_reply_and block is still
12275         busted).
12276         Made dispatch_message not lose message if OOM.
12277
12278         * dbus/dbus-errors.h:
12279         Add NoReply error (for reply timeouts).
12280
12281 2003-02-16  Alexander Larsson  <alexl@redhat.com>
12282
12283         * dbus/dbus-hash.c (_dbus_hash_table_unref):
12284         Actually free keys and values when destroying hashtable.
12285
12286 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
12287
12288         * dbus/dbus-auth.c: (client_try_next_mechanism):
12289         Plug a leak.
12290
12291         * dbus/dbus-threads.c: (dbus_condvar_wait_timeout):
12292         Return TRUE if there's no thread implementation around.
12293
12294         * glib/dbus-gmain.c: (free_source),
12295         (dbus_connection_hookup_with_g_main):
12296         Make sure to remove the GSource when the connection is finalized.
12297
12298 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
12299
12300         * bus/dispatch.c: (bus_dispatch_message_handler):
12301         * dbus/dbus-errors.h:
12302         Return an error if someone tries to send a message to a service
12303         that doesn't exist.
12304
12305 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
12306
12307         * bus/activation.c: (load_directory), (bus_activation_init),
12308         (bus_activation_activate_service):
12309         * bus/activation.h:
12310         * bus/driver.c:
12311         (bus_driver_handle_activate_service), (bus_driver_handle_message):
12312         More work on the activation handling.
12313
12314         * dbus/dbus-errors.h:
12315         Add some error messages
12316
12317         * dbus/dbus-message.c: (dbus_message_new_error_reply):
12318         * dbus/dbus-message.h:
12319         New function that creates an error message.
12320
12321         * dbus/dbus-protocol.h:
12322         Add ACTIVATE_SERVER message.
12323
12324         * dbus/dbus-server-unix.c: (unix_handle_watch),
12325         (_dbus_server_new_for_domain_socket):
12326         Call _dbus_fd_set_close_on_exec.
12327
12328         * dbus/dbus-sysdeps.c: (make_pipe), (do_exec),
12329         (_dbus_spawn_async), (_dbus_disable_sigpipe),
12330         (_dbus_fd_set_close_on_exec):
12331         * dbus/dbus-sysdeps.h:
12332         Add _dbus_fd_set_close_on exec function. Also add function that checks
12333         that all open fds are set to close-on-exec and warns otherwise.
12334
12335         * dbus/dbus-transport-unix.c:
12336         (_dbus_transport_new_for_domain_socket):
12337         Call _dbus_fd_set_close_on_exec.
12338
12339 2003-02-16  Havoc Pennington  <hp@pobox.com>
12340
12341         * dbus/dbus-connection.c (dbus_connection_set_change_sigpipe):
12342         allow people to avoid setting SIGPIPE to SIG_IGN
12343         (_dbus_connection_new_for_transport): disable SIGPIPE unless
12344         we've been asked not to
12345
12346 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
12347
12348         * dbus/dbus-list.c: (_dbus_list_append_link),
12349         (_dbus_list_prepend_link):
12350         * dbus/dbus-memory.c: (dbus_malloc), (dbus_malloc0),
12351         (dbus_realloc):
12352         Warning fixes.
12353
12354 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
12355
12356         * bus/Makefile.am:
12357         * bus/activation.c: (bus_activation_entry_free),
12358         (add_desktop_file_entry), (load_directory), (bus_activation_init):
12359         * bus/activation.h:
12360         * bus/main.c: (main):
12361         Add simple activation support, doesn't work yet though.
12362
12363 2003-02-15   Zack Rusin  <zack@kde.org>
12364
12365         * qt/dbus-qthread.cpp:  small casting fix
12366
12367 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
12368
12369         * dbus/dbus-errors.c: (dbus_set_error):
12370         * dbus/dbus-errors.h:
12371         Add a few errors and make dbus_set_error void.
12372
12373         * dbus/dbus-sysdeps.c:
12374         (_dbus_errno_to_string), (close_and_invalidate), (make_pipe),
12375         (write_err_and_exit), (read_ints), (do_exec), (_dbus_spawn_async):
12376         * dbus/dbus-sysdeps.h:
12377         Add _dbus_spawn_async.
12378
12379         * test/spawn-test.c: (main):
12380         Test for _dbus_spawn_async.
12381
12382 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
12383
12384         * dbus/dbus-internals.h:
12385         Fix build without tests.
12386
12387         * dbus/dbus-list.c: (alloc_link):
12388         Fix a segfault when a malloc fails.
12389
12390         * dbus/dbus-memory.c: (initialize_malloc_debug), (dbus_malloc),
12391         (dbus_malloc0), (dbus_realloc):
12392         Add support for malloc debugging.
12393
12394 2003-02-15  Alexander Larsson  <alexl@redhat.com>
12395
12396         * dbus/dbus-threads.c:
12397         * dbus/dbus-threads.h:
12398         Add condvars. Remove static mutext from API.
12399         Implement static mutexes by initializing them from threads_init.
12400
12401         * glib/dbus-gthread.c:
12402         * qt/dbus-qthread.cpp:
12403         Update with the thread api changes.
12404
12405
12406         * dbus/dbus-list.c:
12407         * dbus/dbus-list.h:
12408         Turn StaticMutex into normal mutex + init function.
12409         Export new functions _dbus_list_alloc_link, _dbus_list_free_link,
12410         _dbus_list_append_link, _dbus_list_prepend_link
12411
12412
12413         * dbus/dbus-sysdeps.c:
12414         * dbus/dbus-sysdeps.h:
12415         New type dbus_atomic_t, and new functions _dbus_atomic_inc,
12416         _dbus_atomic_dec. Only slow fallback implementation at the moment.
12417
12418         * dbus/dbus-protocol.h:
12419         Add DBUS_MESSAGE_LOCAL_DISCONNECT define
12420
12421         * dbus/dbus-message.c:
12422         Make ref/unref atomic.
12423         Fix some docs.
12424
12425         * dbus/dbus-connection-internal.h:
12426         * dbus/dbus-connection.c:
12427         * dbus/dbus-connection.h:
12428         Make threadsafe.
12429         Change _peek to _borrow,_return & _steal_borrowed.
12430         Change disconnect callback to event.
12431         Make dbus_connection_dispatch_messages reentrant.
12432
12433         * dbus/dbus-transport.c:
12434         Don't ref the connection on calls to the transport
12435         implementation.
12436
12437         * dbus/dbus-message-handler.c:
12438         Make threadsafe.
12439
12440         * glib/dbus-gmain.c:
12441         Don't use peek_message anymore
12442
12443         * test/Makefile.am:
12444         * test/debug-thread.c:
12445         * test/debug-thread.h:
12446         Simple thread implementation that asserts() on deadlocks in
12447         single-threaded code.
12448
12449         * test/bus-test.c:
12450         (main) Call debug_threads_init.
12451
12452         * test/watch.c:
12453         Use disconnect message instead of disconnect callback.
12454
12455         * bus/connection.c:
12456         * bus/connection.h:
12457         Don't call dbus_connection_set_disconnect_function. Instead export
12458         bus_connection_disconnect.
12459
12460         * bus/dispatch.c:
12461         Call bus_connection_disconnect when we get a disconnected message.
12462
12463 2003-02-15  Havoc Pennington  <hp@pobox.com>
12464
12465         * dbus/dbus-message.c (dbus_message_new): fool around with the
12466         docs
12467
12468 2003-02-14  Havoc Pennington  <hp@pobox.com>
12469
12470         * dbus/dbus-mempool.c: fail if the debug functions so indicate
12471
12472         * dbus/dbus-memory.c: fail if the debug functions indicate we
12473         should
12474
12475         * dbus/dbus-internals.c (_dbus_set_fail_alloc_counter)
12476         (_dbus_decrement_fail_alloc_counter): debug functions to
12477         simulate memory allocation failures
12478
12479 2003-02-14  Havoc Pennington  <hp@pobox.com>
12480
12481         * dbus/dbus-errors.h (struct DBusError): add a word of padding
12482         to DBusError
12483
12484 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12485
12486         * bus/driver.c: (bus_driver_handle_hello):
12487         * bus/driver.h:
12488         * bus/services.c: (bus_service_lookup):
12489         Reorder message sending so we get a more sane order.
12490
12491         * test/bus-test.c: (message_handler):
12492         Fix tyop.
12493
12494 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12495
12496         * bus/driver.c: (bus_driver_send_service_deleted),
12497         (bus_driver_send_service_created), (bus_driver_send_service_lost),
12498         (bus_driver_send_service_acquired), (bus_driver_handle_hello),
12499         (bus_driver_send_welcome_message),
12500         (bus_driver_handle_list_services),
12501         (bus_driver_handle_acquire_service),
12502         (bus_driver_handle_service_exists):
12503         * dbus/dbus-bus.c: (dbus_bus_register_client),
12504         (dbus_bus_acquire_service), (dbus_bus_service_exists):
12505         * dbus/dbus-errors.c: (dbus_result_to_string):
12506         * dbus/dbus-errors.h:
12507         * dbus/dbus-message.c: (dbus_message_append_args),
12508         (dbus_message_append_args_valist), (dbus_message_get_args),
12509         (dbus_message_get_args_valist), (dbus_message_get_args_iter),
12510         (dbus_message_iter_get_arg_type), (dbus_message_iter_get_string),
12511         (dbus_message_iter_get_byte_array),
12512         (dbus_message_iter_get_string_array), (message_iter_test),
12513         (check_message_handling), (_dbus_message_test):
12514         * dbus/dbus-message.h:
12515         * test/bus-test.c: (main):
12516         Change fields to arguments in messages, so that they won't be
12517         confused with header fields.
12518
12519         * glib/test-dbus-glib.c: (main):
12520         Remove append_fields from hello message.
12521
12522 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12523
12524         * dbus/dbus-errors.c:
12525         * dbus/dbus-message.c:
12526         * dbus/dbus-string.c:
12527         Documentation fixes.
12528
12529 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12530
12531         * glib/dbus-gmain.c: (timeout_handler), (add_timeout),
12532         (remove_timeout):
12533         Implement support for timeouts in dbus-glib.
12534
12535 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12536
12537         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
12538         * dbus/dbus-message.c: (process_test_subdir):
12539         * test/break-loader.c: (find_breaks_based_on):
12540         Plug some memory leaks.
12541
12542 2003-02-13  Richard Hult  <rhult@codefactory.se>
12543
12544         * bus/main.c: Fix build.
12545
12546         * dbus/dbus-errors.h:
12547         * dbus/dbus-errors.c: Fix copyright for Anders.
12548
12549 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12550
12551         * bus/Makefile.am:
12552         Add utils.[ch]
12553
12554         * bus/connection.c: (bus_connection_foreach):
12555         Fix a warning.
12556
12557         * bus/desktop-file.c: (grow_lines_in_section), (grow_sections),
12558         (unescape_string), (new_section), (parse_section_start),
12559         (parse_key_value), (report_error), (bus_desktop_file_load),
12560         (bus_desktop_file_get_string):
12561         * bus/desktop-file.h:
12562         Use DBusError for error reporting.
12563
12564         * bus/dispatch.c: (send_one_message),
12565         (bus_dispatch_message_handler):
12566         * bus/driver.c: (bus_driver_send_service_deleted),
12567         (bus_driver_send_service_created), (bus_driver_send_service_lost),
12568         (bus_driver_send_service_acquired), (bus_driver_handle_hello),
12569         (bus_driver_send_welcome_message),
12570         (bus_driver_handle_list_services),
12571         (bus_driver_handle_acquire_service),
12572         (bus_driver_handle_service_exists):
12573         * bus/loop.c: (bus_loop_run):
12574         * bus/main.c:
12575         Use BUS_HANDLE_OOM instead of _DBUS_HANDLE_OOM.
12576
12577         * bus/utils.c: (bus_wait_for_memory):
12578         * bus/utils.h:
12579         New files with general utility functions.
12580
12581         * dbus/dbus-internals.h:
12582         Remove _DBUS_HANDLE_OOM.
12583
12584 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12585
12586         * dbus/dbus-errors.c: (dbus_result_to_string), (dbus_error_init),
12587         (dbus_error_free), (dbus_set_error_const), (dbus_set_error):
12588         * dbus/dbus-errors.h:
12589         Add DBusError structure.
12590
12591 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12592
12593         * test/data/valid-messages/standard-acquire-service.message:
12594         * test/data/valid-messages/standard-hello.message:
12595         * test/data/valid-messages/standard-list-services.message:
12596         * test/data/valid-messages/standard-service-exists.message:
12597         Add some standard messages.
12598
12599 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12600
12601         * bus/driver.c: (bus_driver_send_welcome_message),
12602         (bus_driver_handle_list_services),
12603         (bus_driver_handle_acquire_service),
12604         (bus_driver_handle_service_exists), (bus_driver_handle_message):
12605         Update for API changes in libdbus.
12606
12607         * dbus/dbus-message.c: (dbus_message_new_reply):
12608         * dbus/dbus-message.h:
12609         Remove the name argument. The spec states that replies shouldn't
12610         have a name.
12611
12612 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12613
12614         * bus/desktop-file.c: (parse_section_start), (parse_key_value),
12615         (report_error), (bus_desktop_file_load), (lookup_section),
12616         (lookup_line), (bus_desktop_file_get_raw),
12617         (bus_desktop_file_get_string):
12618         * bus/desktop-file.h:
12619         Some fixes, and new functions for getting a key value from a section.
12620
12621 2003-02-13  Havoc Pennington  <hp@pobox.com>
12622
12623         * test/data/auth/fail-after-n-attempts.auth-script: new test
12624
12625         * dbus/dbus-auth.c (send_rejected): shutdown_mech() when we
12626         reject the client.
12627
12628 2003-02-13  Havoc Pennington  <hp@pobox.com>
12629
12630         * dbus/dbus-auth.c (handle_server_data_external_mech): args to
12631         dbus_credentials_match were backward
12632
12633         * dbus/dbus-auth-script.c (_dbus_auth_script_run): support
12634         NO_CREDENTIALS and ROOT_CREDENTIALS
12635
12636         * dbus/dbus-auth.c (_dbus_auth_do_work): move get_state() routine
12637         into here. Never process more commands after we've reached an
12638         end state; store further data as unused bytes.
12639
12640         * test/data/auth/*: add more auth tests
12641
12642         * dbus/dbus-auth-script.c (_dbus_auth_script_run): support EXPECT
12643         command to match exact string and EXPECT_UNUSED to match unused
12644         bytes
12645
12646         * test/Makefile.am (dist-hook): fix to dist all the test stuff
12647
12648 2003-02-12  Havoc Pennington  <hp@pobox.com>
12649
12650         * dbus/dbus-string.c (_dbus_string_pop_line): fix to also strip
12651         \r off of popped lines
12652
12653         * dbus/dbus-auth.c (_dbus_auth_test): write code to run auth
12654         scripts
12655
12656         * dbus/dbus-auth-script.c (_dbus_auth_script_run): when doing a
12657         SEND, append \r\n
12658
12659 2003-02-12  Havoc Pennington  <hp@pobox.com>
12660
12661         * dbus/Makefile.am: remove break-loader from the build, since it
12662         moved.
12663
12664         * configure.in: add --enable-gcov to turn on coverage profiling
12665         flags and disable optimization
12666
12667 2003-02-10  Havoc Pennington  <hp@pobox.com>
12668
12669         * dbus/dbus-auth-script.c, dbus/dbus-auth-script.h: sync
12670         initial cut at test framework for DBusAuth from laptop.
12671         Doesn't quite work yet but it compiles and I need to get
12672         it off the 266mhz laptop. ;-)
12673
12674         * dbus/dbus-server-debug.c (_dbus_server_debug_accept_transport):
12675         fix a memleak in error case
12676
12677 2003-02-12  Anders Carlsson  <andersca@codefactory.se>
12678
12679         * bus/Makefile.am:
12680         * bus/desktop-file.c:
12681         * bus/desktop-file.h:
12682         Add a desktop file parser.
12683
12684 2003-02-11  Zack Rusin  <zack@kde.org>
12685
12686         * qt/message.[h|cpp]: sample implementation
12687         of the KDE wrapper for DBusMessage
12688
12689 2003-02-09  Zack Rusin  <zack@kde.org>
12690
12691         * test/bus-test.c: make_it_compile
12692         * doc/dbus-specification.sgml: minimal semantic fix
12693
12694 2003-02-06  Anders Carlsson  <andersca@codefactory.se>
12695
12696         Release 0.3
12697
12698         * NEWS: Update
12699
12700 2003-02-06  Anders Carlsson  <andersca@codefactory.se>
12701
12702         * dbus/Makefile.am:
12703         * dbus/dbus-break-loader.c:
12704         * test/Makefile.am:
12705         * test/break-loader.c:
12706         Move dbus-break-loader to test/ and rename it to break-loader.
12707
12708 2003-02-02  Havoc Pennington  <hp@pobox.com>
12709
12710         * dbus/dbus-keyring.c, dbus/dbus-keyring.h: template files
12711         for code to manage cookies in your home directory
12712
12713         * dbus/dbus-sysdeps.c (_dbus_generate_random_bytes): new function
12714
12715         * dbus/dbus-auth.c (get_state): impose a maximum number of tries
12716         to authenticate, then disconnect the client.
12717
12718 2003-02-03  Alexander Larsson  <alexl@redhat.com>
12719
12720         * dbus/dbus-message.c (dbus_message_append_fields):
12721         Correct docs.
12722
12723 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
12724
12725         * doc/dbus-specification.sgml:
12726         Update address format section.
12727
12728 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
12729
12730         * test/Makefile.am:
12731         * test/bus-test.c: (get_time), (add_timeout), (remove_timeout),
12732         (message_handler), (new_connection_callback), (loop_quit),
12733         (loop_run), (main):
12734         Add bus test.
12735
12736 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
12737
12738         * bus/driver.c: (bus_driver_handle_service_exists):
12739         Simplify the code a bit.
12740
12741         * dbus/dbus-bus.c: (dbus_bus_service_exists):
12742         Fix a silly.
12743
12744 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
12745
12746         * bus/Makefile.am:
12747         Add libdbus-daemon.la and link to it.
12748
12749 2003-02-01  James Willcox  <jwillcox@gnome.org>
12750
12751         * bus/driver.c: (bus_driver_handle_own_service):
12752         Actually include the service reply code in the message.
12753
12754 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
12755
12756         * bus/driver.c: (bus_driver_handle_service_exists):
12757         Don't unref the incoming message.
12758
12759 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
12760
12761         * dbus/dbus.h: Add dbus-address.h and dbus-bus.h
12762
12763 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
12764
12765         * dbus/dbus-server.c: (dbus_server_listen):
12766         * dbus/dbus-transport.c: (_dbus_transport_open):
12767         ifdef out the calls to the debug transport and server.
12768
12769 2003-02-02  Alexander Larsson  <alexl@redhat.com>
12770
12771         * dbus/dbus-watch.c (dbus_watch_get_flags):
12772         Add note in the docs that ERROR or HANGUP won't be returned
12773         and are assumed always on.
12774
12775         * glib/dbus-gmain.c (add_watch):
12776         Always add IO_ERR | IO_HUP
12777
12778         * dbus/dbus-message.h:
12779         Add semicolon after dbus_message_iter_get_string_array().
12780         Makes qt code build again
12781
12782 2003-02-01  Anders Carlsson  <andersca@codefactory.se>
12783
12784         * bus/driver.c: (create_unique_client_name),
12785         (bus_driver_handle_hello):
12786         Don't take a name, just use a numeric id to identify
12787         each client.
12788
12789         * dbus/Makefile.am:
12790         * dbus/dbus-bus.c: (dbus_bus_register_client),
12791         (dbus_bus_acquire_service), (dbus_bus_service_exists):
12792         * dbus/dbus-bus.h:
12793         Add new convenience functions for communicating with the bus.
12794
12795         * dbus/dbus-message.h:
12796
12797         * dbus/dbus-protocol.h:
12798         Fix a typo.
12799
12800 2003-02-01  Alexander Larsson  <alexl@redhat.com>
12801
12802         * dbus/dbus-message.c (dbus_message_append_fields):
12803         Add some more doc comments.
12804
12805 2003-02-01  Havoc Pennington  <hp@pobox.com>
12806
12807         * dbus/dbus-break-loader.c (randomly_modify_length): change
12808         a 4-byte value in the message as if it were a length
12809
12810         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): don't set
12811         execute bit on saved files
12812
12813 2003-02-01  Havoc Pennington  <hp@pobox.com>
12814
12815         * dbus/dbus-break-loader.c (main): new program to find messages
12816         that break the loader.
12817
12818         * dbus/dbus-sysdeps.c (_dbus_string_append_uint): new function
12819         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): new function
12820
12821         * dbus/dbus-string.c (_dbus_string_set_byte): new
12822
12823 2003-01-31  Havoc Pennington  <hp@pobox.com>
12824
12825         * dbus/dbus-message.c: refactor the test code to be more general,
12826         in preparation for writing a "randomly permute test cases to
12827         try to break the loader" program.
12828
12829 2003-01-31  Havoc Pennington  <hp@pobox.com>
12830
12831         * doc/dbus-specification.sgml: work on the specification
12832
12833         * dbus/dbus-message.c (_dbus_message_loader_return_buffer): check
12834         the protocol version of the message.
12835
12836         * dbus/dbus-protocol.h: drop special _REPLY names, the spec
12837         no longer specifies that.
12838         (DBUS_SERVICE_REPLY_SERVICE_EXISTS): fix flags (1/2/4/8 not
12839         1/2/3/4)
12840
12841         * dbus/dbus-marshal.c (_dbus_marshal_get_arg_end_pos): add missing
12842         "break" for DBUS_TYPE_NIL, remove @todo
12843
12844 2003-01-31  Havoc Pennington  <hp@pobox.com>
12845
12846         * dbus/dbus-message.c (dbus_message_set_is_error_reply): rename
12847         just set_is_error/get_is_error as this is a commonly-used
12848         function, and write docs.
12849
12850 2003-01-31  Anders Carlsson  <andersca@codefactory.se>
12851
12852         * dbus/dbus-address.c: (dbus_address_entry_free):
12853         Free key and value lists.
12854
12855         * dbus/dbus-internals.c: (_dbus_type_to_string):
12856         Add the types we didn't have.
12857
12858         * dbus/dbus-marshal.c: (_dbus_marshal_get_arg_end_pos),
12859         (_dbus_marshal_validate_arg):
12860         Add NIL types.
12861
12862         * dbus/dbus-message.c: (dbus_message_set_sender):
12863         Remove todo about being able to set sender to NULL.
12864
12865         (dbus_message_set_is_error_reply),
12866         (dbus_message_get_is_error_reply):
12867         * dbus/dbus-message.h:
12868         New functions.
12869
12870         * dbus/dbus-protocol.h:
12871         Add error reply flag.
12872
12873         * test/data/valid-messages/opposite-endian.message:
12874         Add NIL type to test.
12875
12876 2003-01-31  Havoc Pennington  <hp@pobox.com>
12877
12878         * doc/dbus-specification.sgml: fully specify the header.  Add
12879         flags and major protocol version, and change header/body len to
12880         unsigned.
12881
12882         * dbus/dbus-message-builder.c (append_saved_length): append length
12883         as uint32
12884
12885         * dbus/dbus-message.c (dbus_message_create_header): change header
12886         length and body length to unsigned. Add the new fields from the
12887         spec
12888         (_dbus_message_loader_return_buffer): unsigned header/body len
12889
12890 2003-01-30  Havoc Pennington  <hp@pobox.com>
12891
12892         * dbus/dbus-auth.c: rework to use only REJECTED, no
12893         MECHANISMS
12894
12895         * doc/dbus-sasl-profile.txt: drop MECHANISMS and just
12896         use REJECTED, suggested by Mark McLoughlin
12897
12898 2003-01-30  Havoc Pennington  <hp@pobox.com>
12899
12900         * dbus/dbus-server.c (dbus_server_listen): @todo about how we need
12901         a better way to report errors here. e.g.  "unix address lacks
12902         path" or something. also "no such file" when the path doesn't
12903         exist, etc.
12904
12905         * dbus/dbus-address.c (dbus_address_entries_free): add @todo about
12906         leaking list nodes
12907         (dbus_parse_address): add @todo about documenting address format,
12908         and allowing , and ; to be escaped
12909
12910 2003-01-30  Anders Carlsson  <andersca@codefactory.se>
12911
12912         * dbus/Makefile.am:
12913         Add dbus-address.[ch]
12914
12915         * dbus/dbus-address.c: (dbus_address_entry_free),
12916         (dbus_address_entries_free), (create_entry),
12917         (dbus_address_entry_get_method), (dbus_address_entry_get_value),
12918         (dbus_parse_address), (_dbus_address_test):
12919         * dbus/dbus-address.h:
12920         New files for dealing with address parsing.
12921
12922         * dbus/dbus-connection.c:
12923         Document timeout functions.
12924
12925         * dbus/dbus-message.c:
12926         Document dbus_message_new_from_message.
12927
12928         * dbus/dbus-server-debug.c:
12929         Document.
12930
12931         * dbus/dbus-server.c: (dbus_server_listen):
12932         Parse address and use correct server implementation.
12933
12934         * dbus/dbus-string.c: (_dbus_string_find_to), (_dbus_string_test):
12935         * dbus/dbus-string.h:
12936         New function with test.
12937
12938         * dbus/dbus-test.c: (dbus_internal_symbol_do_not_use_run_tests):
12939         * dbus/dbus-test.h:
12940         Add address tests.
12941
12942         * dbus/dbus-transport-debug.c:
12943         Document.
12944
12945         * dbus/dbus-transport.c: (_dbus_transport_open):
12946         Parse address and use correct transport implementation.
12947
12948 2003-01-30  Havoc Pennington  <hp@pobox.com>
12949
12950         * dbus/dbus-message.c: use message->byte_order instead of
12951         DBUS_COMPILER_BYTE_ORDER throughout.
12952         (dbus_message_create_header): pad header to align the
12953         start of the body of the message to 8-byte boundary
12954
12955         * dbus/dbus-marshal.h: make all the demarshalers take const
12956         DBusString arguments.
12957
12958         * dbus/dbus-message.c (_dbus_message_loader_return_buffer):
12959         validate message args here, so we don't have to do slow validation
12960         later, and so we catch bad messages as they are incoming. Also add
12961         better checks on header_len and body_len. Also fill in
12962         message->byte_order
12963
12964         * dbus/dbus-string.c (_dbus_string_validate_utf8): new (not
12965         implemented properly)
12966         (_dbus_string_validate_nul): new function to check all-nul
12967
12968         * dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): rename
12969         get_arg_end_pos and remove all validation
12970         (_dbus_marshal_validate_arg): actually do validation here.
12971
12972 2003-01-29  Havoc Pennington  <hp@pobox.com>
12973
12974         * dbus/dbus-message.c (check_message_handling): fix assertion
12975         failure on set_client_serial
12976
12977 2003-01-28  Havoc Pennington  <hp@pobox.com>
12978
12979         * dbus/dbus-server-debug.c: Add doc section comments
12980
12981         * dbus/dbus-transport-debug.c: add doc section comments
12982
12983 2003-01-28  Havoc Pennington  <hp@redhat.com>
12984
12985         * dbus/dbus-string.c (_dbus_string_base64_decode): append bytes in
12986         the reverse order from how I had it
12987         (_dbus_string_base64_encode): reverse encoding order. I was
12988         basically byteswapping everything during encoding.
12989
12990 2003-01-28  Anders Carlsson  <andersca@codefactory.se>
12991
12992         * dbus/dbus-connection-internal.h:
12993         * dbus/dbus-connection.c: (_dbus_connection_add_timeout),
12994         (_dbus_connection_remove_timeout):
12995         Add functions for adding and removing timeouts.
12996
12997         * dbus/dbus-message.c: (dbus_message_new_from_message):
12998         Add new function that takes a message and creates an exact
12999         copy of it, but with the refcount set to 1.
13000         (check_message_handling):
13001         Fix build error.
13002
13003         * dbus/dbus-server-protected.h:
13004         * dbus/dbus-server.c: (_dbus_server_init_base),
13005         (_dbus_server_finalize_base), (_dbus_server_add_timeout),
13006         (dbus_server_set_timeout_functions):
13007         (_dbus_server_remove_timeout):
13008         New functions so that a server can add and remove timeouts.
13009
13010         (dbus_server_listen):
13011         Add commented out call to dbus_server_debug_new.
13012
13013         * dbus/dbus-timeout.c: (_dbus_timeout_new):
13014         Actually set the handler, doh.
13015
13016         * dbus/dbus-transport.c: (_dbus_transport_open):
13017         Add commented out call to dbus_transport_debug_client_new.
13018
13019         * dbus/Makefile.am:
13020         Add dbus-transport-debug.[ch] and dbus-server-debug.[ch]
13021
13022 2003-01-28  Havoc Pennington  <hp@pobox.com>
13023
13024         * dbus/dbus-message.c (check_message_handling): function to check
13025         on the loaded message, iterates over it etc.
13026
13027 2003-01-28  Havoc Pennington  <hp@pobox.com>
13028
13029         * test/Makefile.am (dist-hook): fix make distdir
13030
13031         * dbus/Makefile.am (TESTS_ENVIRONMENT): fix make check
13032
13033 2003-01-27  Havoc Pennington  <hp@pobox.com>
13034
13035         * dbus/dbus-mempool.c (time_for_size): replace printf with
13036         _dbus_verbose
13037
13038         * dbus/dbus-message-builder.c (_dbus_message_data_load): allow
13039         empty lines; fix the SAVE_LENGTH stuff to be
13040         START_LENGTH/END_LENGTH so it actually works; couple other
13041         bugfixes
13042
13043         * test/Makefile.am (dist-hook): add dist-hook for .message files
13044
13045         * dbus/dbus-string.c (DBUS_STRING_COPY_PREAMBLE): source of a copy
13046         can be constant or locked.
13047         (_dbus_string_free): allow freeing a const string as
13048         documented/intended
13049
13050         * dbus/dbus-sysdeps.c (_dbus_concat_dir_and_file): utility
13051
13052         * dbus/dbus-test-main.c (main): take an argument which is the
13053         directory containing test data
13054
13055         * dbus/dbus-message.c (_dbus_message_test): pass a test_data_dir
13056         argument to this and load all the messages in test/data/
13057         checking that they can be loaded or not loaded as appropriate.
13058
13059 2003-01-27  Anders Carlsson  <andersca@codefactory.se>
13060
13061         * bus/dispatch.c: (bus_dispatch_message_handler):
13062         Dispatch messages sent to services.
13063
13064         * bus/driver.c: (bus_driver_send_service_deleted),
13065         (bus_driver_send_service_created), (bus_driver_send_service_lost),
13066         (bus_driver_send_service_acquired):
13067         Add helper functions for sending service related messages.
13068
13069         (bus_driver_send_welcome_message):
13070         Send HELLO_REPLY instead of WELCOME.
13071
13072         (bus_driver_handle_list_services):
13073         Send LIST_SERVICES_REPLY instead of SERVICES.
13074
13075         (bus_driver_handle_own_service),
13076         (bus_driver_handle_service_exists):
13077         New message handlers.
13078
13079         (bus_driver_handle_message):
13080         Invoke new message handlers.
13081
13082         (bus_driver_remove_connection):
13083         Don't remove any services here since that's done automatically
13084         by bus_service_remove_owner now.
13085
13086         * bus/driver.h:
13087         New function signatures.
13088
13089         * bus/services.c: (bus_service_add_owner):
13090         Send ServiceAcquired message if we're the only primary owner.
13091
13092         (bus_service_remove_owner):
13093         Send ServiceAcquired/ServiceLost messages.
13094
13095         (bus_service_set_prohibit_replacement),
13096         (bus_service_get_prohibit_replacement):
13097         Functions for setting prohibit replacement.
13098
13099         (bus_service_has_owner):
13100         New function that checks if a connection is in the owner queue of
13101         a certain service.
13102
13103         * bus/services.h:
13104         Add new function signatures.
13105
13106         * dbus/dbus-list.c: (_dbus_list_test):
13107         Add tests for _dbus_list_remove_last and traversing the list backwards.
13108
13109         * dbus/dbus-list.h:
13110         Fix a typo in _dbus_list_get_prev_link, if we're at the first element we can't
13111         go any further, so return NULL then.
13112
13113         * dbus/dbus-protocol.h:
13114         Add new messages, service flags and service replies.
13115
13116 2003-01-26  Havoc Pennington  <hp@pobox.com>
13117
13118         * dbus/dbus-message-builder.c: implement, completely untested.
13119
13120         * test/data/*: add data to be used in testing.
13121         ".message" files are our simple loadable text format.
13122         ".message-raw" will be binary dumps of messages.
13123
13124         * dbus/dbus-string.c (_dbus_string_starts_with_c_str): new
13125
13126 2003-01-26  Havoc Pennington  <hp@pobox.com>
13127
13128         * dbus/dbus-sysdeps.c (_dbus_file_get_contents): new function
13129
13130         * dbus/dbus-errors.c (dbus_result_to_string): add
13131         file errors
13132
13133         * dbus/dbus-message-builder.c: new file, will contain code to load
13134         up messages from files. Not implemented yet.
13135
13136 2003-01-26  Havoc Pennington  <hp@pobox.com>
13137
13138         * dbus/dbus-message.c (dbus_message_set_sender): support deleting
13139         the sender by setting to NULL
13140
13141 2003-01-26  Havoc Pennington  <hp@pobox.com>
13142
13143         The unit tests pass, but otherwise untested.  If it breaks, the
13144         tests should have been better. ;-)
13145
13146         * bus/driver.c (bus_driver_handle_hello): return if we disconnect
13147         the connection.
13148
13149         * dbus/dbus-message.c: redo everything so we maintain
13150         message->header as the only copy of the various fields.
13151         This avoids the possibility of out-of-memory in some cases,
13152         for example dbus_message_lock() can't run out of memory anymore,
13153         and avoids extra copying. Figured I may as well go ahead and do
13154         this since it was busted for dbus_message_lock to not return
13155         failure on OOM, and dbus_message_write_header was totally
13156         unchecked for OOM. Also fixed some random other bugs.
13157
13158         * dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): verify
13159         that strings are nul-terminated. Also, end_pos can be equal
13160         to string length just not greater than, I think.
13161         (_dbus_marshal_set_int32): new function
13162         (_dbus_marshal_set_uint32): new function
13163         (_dbus_marshal_set_string): new function
13164
13165         * dbus/dbus-connection.c (_dbus_connection_new_for_transport): fix
13166         a warning, init timeout_list to NULL
13167         (dbus_connection_send_message): don't use uninitialized variable
13168         "serial"
13169
13170         * dbus/dbus-string.c (_dbus_string_replace_len): new function
13171
13172 2003-01-26  Anders Carlsson  <andersca@codefactory.se>
13173
13174         * bus/driver.c: (bus_driver_handle_hello),
13175         (bus_driver_send_welcome_message):
13176         Plug leaks
13177
13178 2003-01-26  Anders Carlsson  <andersca@codefactory.se>
13179
13180         * dbus/dbus-auth.c: (process_auth), (_dbus_auth_unref):
13181         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport),
13182         (dbus_connection_unref):
13183         * dbus/dbus-marshal.c: (_dbus_marshal_test):
13184         * dbus/dbus-message.c: (dbus_message_unref),
13185         Plug memory leaks.
13186
13187         (dbus_message_get_fields):
13188         Remove debugging printout.
13189
13190         (_dbus_message_loader_return_buffer):
13191         Don't store the header string.
13192
13193         (_dbus_message_test):
13194         Plug leaks.
13195
13196 2003-01-26  Richard Hult  <rhult@codefactory.se>
13197
13198         * glib/dbus-gmain.c (dbus_connection_dispatch): Traverse a copy of
13199         the file descriptor list, since it can change under us.
13200
13201 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
13202
13203         * glib/dbus-gmain.c: (dbus_connection_prepare),
13204         (dbus_connection_check), (dbus_connection_dispatch), (add_watch),
13205         (remove_watch), (dbus_connection_hookup_with_g_main):
13206         Rewrite the glib handling to use its own GSource instead of a
13207         GIOChannel so we can catch messages put in the queue while waiting
13208         for a reply.
13209
13210 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
13211
13212         * bus/Makefile.am:
13213         * bus/connection.c: (connection_disconnect_handler),
13214         (connection_watch_callback), (bus_connection_setup):
13215         * bus/dispatch.c: (send_one_message),
13216         (bus_dispatch_broadcast_message), (bus_dispatch_message_handler),
13217         (bus_dispatch_add_connection), (bus_dispatch_remove_connection):
13218         * bus/dispatch.h:
13219         * bus/driver.c: (bus_driver_send_service_deleted),
13220         (bus_driver_send_service_created), (bus_driver_handle_hello),
13221         (bus_driver_send_welcome_message),
13222         (bus_driver_handle_list_services), (bus_driver_remove_connection),
13223         (bus_driver_handle_message):
13224         * bus/driver.h:
13225         Refactor code, put the message dispatching in its own file. Use
13226         _DBUS_HANDLE_OOM. Also send ServiceDeleted messages when a client
13227         is disconnected.
13228
13229 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
13230
13231         * dbus/dbus-internals.h:
13232         Add _DBUS_HANDLE_OOM macro, it doesn't do anything currently.
13233
13234         * dbus/dbus-message.c: (dbus_message_get_sender):
13235         * dbus/dbus-message.h:
13236         Implement dbus_message_get_sender.
13237
13238         * dbus/dbus-protocol.h:
13239         Add message and service defines.
13240
13241 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
13242
13243         * dbus/dbus-connection.c: (dbus_connection_send_message):
13244         * dbus/dbus-message-internal.h:
13245         * dbus/dbus-message.c: (_dbus_message_get_client_serial),
13246         (dbus_message_write_header):
13247         Remove _dbus_messag_unlock and don't set the client serial on a
13248         message if one already exists.
13249
13250 2003-01-24  Havoc Pennington  <hp@pobox.com>
13251
13252         * dbus/dbus-list.c (alloc_link): put a thread lock on the global
13253         list_pool
13254
13255         * bus/driver.c (bus_driver_handle_list_services): fix a leak
13256         on OOM
13257
13258 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
13259
13260         * dbus/dbus-list.c: (alloc_link), (free_link):
13261         Use a memory pool for the links.
13262
13263 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
13264
13265         * bus/connection.c: (bus_connection_foreach):
13266         * bus/connection.h:
13267         Add new bus_connection_foreach function.
13268
13269         * bus/driver.c: (send_one_message), (bus_driver_broadcast_message):
13270         Add function that broadcasts a message to all clients.
13271
13272         (bus_driver_send_service_created), (bus_driver_handle_hello),
13273         (bus_driver_send_welcome_message),
13274         (bus_driver_handle_list_services), (bus_driver_message_handler):
13275         Implement functions that take care of listing services, and notifying
13276         clients when new services are created.
13277
13278         * bus/services.c: (bus_services_list):
13279         * bus/services.h:
13280         Add new function that returns an array of strings with the currently
13281         registered services.
13282
13283         * glib/dbus-glib.h:
13284         * glib/dbus-gmain.c:
13285         Update copyright year.
13286
13287 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
13288
13289         * dbus/dbus-connection.c: (dbus_connection_send_message):
13290         Unlock the message in case it was sent earlier.
13291
13292         (dbus_connection_send_message_with_reply_and_block):
13293         Remove the reply message from the list.
13294
13295         * dbus/dbus-marshal.c: (_dbus_demarshal_string_array):
13296         Set array_len and new_pos correctly.
13297
13298         (_dbus_marshal_test):
13299         Remove debug output.
13300
13301         * dbus/dbus-message-internal.h:
13302         * dbus/dbus-message.c: (_dbus_message_get_reply_serial):
13303         New function that returns the reply serial.
13304
13305         (_dbus_message_unlock):
13306         New function that unlocks a message and resets its header.
13307
13308         (dbus_message_append_string_array),
13309         (dbus_message_get_fields_valist),
13310         (dbus_message_iter_get_field_type),
13311         (dbus_message_iter_get_string_array),
13312         (dbus_message_get_fields),
13313         (dbus_message_append_fields_valist):
13314         Handle string arrays.
13315
13316         (dbus_message_set_sender):
13317         Make this function public since the bus daemon needs it.
13318
13319         (decode_header_data):
13320         Set the reply serial to -1 initially.
13321
13322         * dbus/dbus-message.h:
13323         Add dbus_message_set_sender.
13324
13325 2003-01-24  Havoc Pennington  <hp@pobox.com>
13326
13327         * doc/dbus-specification.sgml: add some stuff
13328
13329 2003-01-22  Havoc Pennington  <hp@pobox.com>
13330
13331         * doc/dbus-specification.sgml: Start to document the protocol.
13332
13333 2003-01-22  Havoc Pennington  <hp@pobox.com>
13334
13335         * dbus/dbus-connection.c
13336         (dbus_connection_send_message_with_reply_and_block): add some @todo
13337
13338         * bus/driver.c (bus_driver_add_connection): add a FIXME about memleak
13339
13340 2003-01-21  Havoc Pennington  <hp@pobox.com>
13341
13342         (patch untested because can't compile)
13343
13344         * bus/driver.c (create_unique_client_name): make this function
13345         never recycle client names. Also, caller should initialize
13346         the DBusString.
13347
13348         * dbus/dbus-sysdeps.c (_dbus_get_current_time): new function
13349
13350 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
13351
13352         * dbus/dbus-marshal.c: (_dbus_marshal_double),
13353         (_dbus_marshal_int32), (_dbus_marshal_uint32),
13354         (_dbus_marshal_int32_array), (_dbus_marshal_uint32_array),
13355         (_dbus_marshal_double_array), (_dbus_marshal_string_array),
13356         (_dbus_demarshal_int32_array), (_dbus_demarshal_uint32_array),
13357         (_dbus_demarshal_double_array), (_dbus_demarshal_string_array),
13358         (_dbus_marshal_get_field_end_pos), (_dbus_marshal_test):
13359         * dbus/dbus-marshal.h:
13360         * dbus/dbus-protocol.h:
13361         Add support for marshalling and demarshalling integer, double
13362         and string arrays.
13363
13364 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
13365
13366         * bus/Makefile.am:
13367         Add driver.[ch]
13368
13369         * bus/connection.c: (connection_disconnect_handler):
13370         Remove the connection from the bus driver's list.
13371
13372         (connection_watch_callback): Dispatch messages.
13373
13374         (free_connection_data): Free connection name.
13375
13376         (bus_connection_setup): Add connection to the bus driver's list.
13377         (bus_connection_remove_owned_service):
13378         (bus_connection_set_name), (bus_connection_get_name):
13379         Add functions for setting and getting the connection's name.
13380
13381         * bus/connection.h:
13382         Add function headers.
13383
13384         * bus/driver.c: (create_unique_client_name),
13385         (bus_driver_handle_hello_message),
13386         (bus_driver_send_welcome_message), (bus_driver_message_handler),
13387         (bus_driver_add_connection), (bus_driver_remove_connection):
13388         * bus/driver.h:
13389         * bus/main.c:
13390         * bus/services.c: (bus_service_free):
13391         * bus/services.h:
13392         New file that handles communication and registreation with the bus
13393         itself.
13394
13395 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
13396
13397         * dbus/dbus-connection.c: (dbus_connection_send_message):
13398         Add a new client_serial parameter.
13399
13400         (dbus_connection_send_message_with_reply):
13401         Remove a @todo since we've implemented the blocking function.
13402
13403         (dbus_connection_send_message_with_reply_and_block):
13404         New function that sends a message and waits for a reply and
13405         then returns the reply.
13406
13407         * dbus/dbus-connection.h:
13408         Add new functions.
13409
13410         * dbus/dbus-errors.c: (dbus_result_to_string):
13411         * dbus/dbus-errors.h:
13412         Add new DBUS_RESULT.
13413
13414         * dbus/dbus-message-internal.h:
13415         * dbus/dbus-message.c: (_dbus_message_get_reply_serial),
13416         (_dbus_message_set_sender), (dbus_message_write_header),
13417         (dbus_message_new_reply), (decode_header_data),
13418         (_dbus_message_loader_return_buffer), (_dbus_message_test):
13419         * dbus/dbus-message.h:
13420         Add new functions that set the reply serial and sender.
13421         Also marshal and demarshal them correctly and add test.
13422
13423         * dbus/dbus-protocol.h:
13424         Add new DBUS_MESSAGE_TYPE_SENDER.
13425
13426         * glib/dbus-glib.h:
13427         * glib/dbus-gmain.c: (watch_callback), (free_callback_data),
13428         (add_watch), (remove_watch), (add_timeout), (remove_timeout),
13429         (dbus_connection_hookup_with_g_main):
13430         * glib/test-dbus-glib.c: (main):
13431         Rewrite to use GIOChannel and remove the GSource crack.
13432
13433         * test/echo-client.c: (main):
13434         * test/watch.c: (check_messages):
13435         Update for changed APIs
13436
13437 2003-01-19  Anders Carlsson  <andersca@codefactory.se>
13438
13439         * dbus/Makefile.am: Add dbus-timeout.[cħ]
13440
13441         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport):
13442         Create a DBusTimeoutList.
13443         (dbus_connection_set_timeout_functions): Add new function to
13444         set timeout callbacks
13445
13446         * dbus/dbus-connection.h: Add public DBusTimeout API.
13447
13448         * dbus/dbus-message.c: (dbus_message_get_service):
13449         * dbus/dbus-message.h:  New function.
13450
13451         * dbus/dbus-server.c: Fix small doc typo.
13452
13453         * dbus/dbus-timeout.[ch]: New files for mainloop timeouts.
13454
13455 2003-01-19  Anders Carlsson  <andersca@codefactory.se>
13456
13457         * dbus/dbus-string.c (_dbus_string_move_len): Don't delete all
13458         of the string, just as long as specified.
13459
13460 2003-01-19  Havoc Pennington  <hp@pobox.com>
13461
13462         * dbus/dbus-connection.c (dbus_connection_get_is_authenticated):
13463         new function
13464
13465         * dbus/dbus-server.c (dbus_server_set_max_connections)
13466         (dbus_server_get_max_connections, dbus_server_get_n_connections):
13467         keep track of current number of connections, and add API for
13468         setting a max (but haven't implemented enforcing the max yet)
13469
13470 2003-01-18  Havoc Pennington  <hp@pobox.com>
13471
13472         * dbus/dbus-transport-unix.c (unix_do_iteration): only do the
13473         reading/writing if read_watch != NULL or write_watch != NULL.
13474
13475         * dbus/dbus-message.c (_dbus_message_loader_return_buffer): fix
13476         the message loader code to actually load message->header and
13477         message->body into the newly-created message.
13478
13479         * dbus/dbus-transport-unix.c (check_write_watch): fix a mem leak
13480         in OOM case
13481
13482         * dbus/dbus-connection.c (dbus_connection_set_max_message_size)
13483         (dbus_connection_get_max_message_size)
13484         (dbus_connection_set_max_live_messages_size)
13485         (dbus_connection_get_max_live_messages_size): implement some
13486         resource limitation functions
13487
13488         * dbus/dbus-resources.c: new file implementing some of the
13489         resource limits stuff
13490
13491         * dbus/dbus-message.c (dbus_message_iter_get_byte_array): add
13492         missing docs, add @todo to handle OOM etc.
13493
13494         * dbus/dbus-marshal.c (_dbus_demarshal_byte_array): add missing
13495         docs
13496
13497 2003-01-18  Havoc Pennington  <hp@pobox.com>
13498
13499         * dbus/dbus-connection.c (dbus_connection_unref): disconnect the
13500         connection if it hasn't been already.
13501
13502         * dbus/dbus-connection.h: kill off the idea of an ErrorFunction,
13503         replace with DisconnectFunction.
13504
13505 2003-01-18  Havoc Pennington  <hp@pobox.com>
13506
13507         Building --disable-verbose-mode --disable-asserts --disable-tests
13508         cuts the library from 112K to 45K or so
13509
13510         * configure.in: check for varargs macro support,
13511         add --enable-verbose-mode, --enable-asserts.
13512
13513         * dbus/dbus-internals.h (_dbus_assert): support
13514         DBUS_DISABLE_ASSERT
13515         (_dbus_verbose): support DBUS_ENABLE_VERBOSE_MODE
13516
13517 2003-01-18  Havoc Pennington  <hp@pobox.com>
13518
13519         * dbus/dbus-test.c: include config.h so that tests actually run
13520
13521         * dbus/dbus-string.c: add assertions that stuff is 8-byte aligned,
13522         so the failure mode when that assumption fails will be plenty
13523         obvious.
13524
13525 2003-01-18  Havoc Pennington  <hp@pobox.com>
13526
13527         * configure.in: default --enable-tests to $USE_MAINTAINER_MODE
13528
13529         * dbus/Makefile.am: fix it up so dubs-test-main.c is included in
13530         the distribution
13531
13532         * test/Makefile.am: don't use special variable "TESTS" for echo-*
13533         since we don't want to use those in make check
13534
13535 2003-01-15  Havoc Pennington  <hp@redhat.com>
13536
13537         Release 0.2
13538
13539         * NEWS: update
13540
13541 2003-01-15  Havoc Pennington  <hp@redhat.com>
13542
13543         * test/Makefile.am: fix so that test source code ends up in the
13544         distribution on make distcheck
13545
13546 2003-01-15  Havoc Pennington  <hp@redhat.com>
13547
13548         Release 0.1.
13549
13550         * NEWS: update
13551
13552 2003-01-15  Havoc Pennington  <hp@redhat.com>
13553
13554         * dbus/dbus-test.c (dbus_internal_symbol_do_not_use_run_tests):
13555         fix build when --disable-tests
13556
13557         * Makefile.am (EXTRA_DIST): put HACKING in here
13558
13559         * HACKING: document procedure for making a tarball release.
13560
13561 2003-01-14  Anders Carlsson  <andersca@codefactory.se>
13562
13563         * bus/connection.c: (connection_error_handler),
13564         (bus_connection_setup):
13565         * bus/main.c: (main):
13566         Make sure that the DBusConnectionData struct is NULLed
13567         out to prevent a segfault.
13568
13569         * dbus/dbus-errors.c: (dbus_result_to_string):
13570         * dbus/dbus-errors.h:
13571         * dbus/dbus-message.c: (dbus_message_get_fields),
13572         (dbus_message_get_fields_valist), (_dbus_message_test):
13573         * dbus/dbus-message.h:
13574         Make dbus_message_get_fields return a result code so we can
13575         track invalid fields as well as oom.
13576
13577 2003-01-11  Havoc Pennington  <hp@pobox.com>
13578
13579         * configure.in: change --enable-test/--enable-ansi action-if-given
13580         to enable_foo=$enableval instead of enable_foo=yes
13581
13582 2003-01-08  Havoc Pennington  <hp@pobox.com>
13583
13584         * dbus/dbus-string.c (_dbus_string_align_length): new function
13585
13586         * dbus/dbus-test-main.c: move main() for test app here
13587         * dbus/dbus-test.c
13588         (dbus_internal_symbol_do_not_use_run_tests): we have to export a
13589         symbol to run tests, because dbus-test isn't in the main
13590         library
13591
13592         Code review nitpicks.
13593
13594         * dbus/dbus-message.c (dbus_message_write_header): add newlines
13595         for people with narrow emacs ;-). Assert client_serial was filled
13596         in. Assert message->name != NULL.
13597         (dbus_message_append_fields): have "first_field_type" arg separate
13598         from va list, needed for C++ binding that also uses varargs IIRC
13599         and helps with type safety
13600         (dbus_message_new): add @todo about using DBusString to store
13601         service/name internally
13602         (dbus_message_new): don't leak ->service and ->name on OOM later
13603         in the function
13604         (dbus_message_unref): free the service name
13605         (dbus_message_get_fields): same change to varargs
13606         i.e. first_field_type
13607         (_dbus_message_loader_return_buffer): assert that the message data
13608         is aligned (if not it's a bug in our code). Put in verbose griping
13609         about why we set corrupted = TRUE.
13610         (decode_header_data): add FIXME that char* is evil.  Was going to
13611         add FIXME about evil locale-specific string.h strncmp, but just
13612         switched to wacky string-as-uint32 optimization. Move check for
13613         "no room for field name" above get_const_data_len() to avoid
13614         assertion failure in get_const_data_len if we have trailing 2
13615         bytes or the like. Check for service and name fields being
13616         provided twice. Don't leak service/name on error. Require field
13617         names to be aligned to 4 bytes.
13618
13619         * dbus/dbus-marshal.c: move byte swap stuff to header
13620         (_dbus_pack_int32): uscore-prefix
13621         (_dbus_unpack_int32): uscore-prefix
13622         (_dbus_unpack_uint32): export
13623         (_dbus_demarshal_string): add @todo complaining about use of
13624         memcpy()
13625         (_dbus_marshal_get_field_end_pos): add @todo about bad error
13626         handling allowing corrupt data to go unchecked
13627
13628 2003-01-08  Havoc Pennington  <hp@redhat.com>
13629
13630         * dbus/dbus-transport-unix.c (unix_do_iteration): add read/write
13631         to the select() as needed for authentication. (should be using
13632         _dbus_poll() not select, but for another day)
13633
13634         * dbus/dbus.h: include dbus/dbus-protocol.h
13635
13636 2003-01-08  Anders Carlsson  <andersca@codefactory.se>
13637
13638         * dbus/Makefile.am (dbusinclude_HEADERS): Install
13639         dbus-connection.h
13640
13641 2003-01-08  Anders Carlsson  <andersca@codefactory.se>
13642
13643         * dbus/dbus-internals.c: (_dbus_type_to_string):
13644         New function that returns a string describing a type.
13645
13646         * dbus/dbus-marshal.c: (_dbus_demarshal_byte_array):
13647         * dbus/dbus-marshal.h:
13648         * dbus/dbus-message.c: (dbus_message_get_fields_valist),
13649         (dbus_message_iter_get_field_type), (dbus_message_iter_get_double),
13650         (dbus_message_iter_get_byte_array):
13651         * dbus/dbus-message.h:
13652         Add new convenience functions for appending and getting message fields.
13653         Also add demarshalling routines for byte arrays.
13654
13655 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
13656
13657         * dbus/dbus-connection-internal.h:
13658         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport),
13659         (_dbus_connection_get_next_client_serial),
13660         (dbus_connection_send_message):
13661         * dbus/dbus-internals.h:
13662         * dbus/dbus-marshal.c: (unpack_uint32), (dbus_unpack_int32),
13663         (dbus_pack_int32), (_dbus_marshal_double), (_dbus_marshal_int32),
13664         (_dbus_marshal_uint32), (_dbus_demarshal_double),
13665         (_dbus_demarshal_int32), (_dbus_demarshal_uint32),
13666         (_dbus_demarshal_string), (_dbus_marshal_get_field_end_pos),
13667         (_dbus_verbose_bytes), (_dbus_marshal_test):
13668         * dbus/dbus-marshal.h:
13669         * dbus/dbus-message-internal.h:
13670         * dbus/dbus-message.c: (_dbus_message_set_client_serial),
13671         (dbus_message_write_header), (_dbus_message_lock),
13672         (dbus_message_new), (dbus_message_ref), (dbus_message_unref),
13673         (dbus_message_get_name), (dbus_message_append_int32),
13674         (dbus_message_append_uint32), (dbus_message_append_double),
13675         (dbus_message_append_string), (dbus_message_append_byte_array),
13676         (dbus_message_get_fields_iter), (dbus_message_iter_ref),
13677         (dbus_message_iter_unref), (dbus_message_iter_has_next),
13678         (dbus_message_iter_next), (dbus_message_iter_get_field_type),
13679         (dbus_message_iter_get_string), (dbus_message_iter_get_int32),
13680         (dbus_message_iter_get_uint32), (dbus_message_iter_get_double),
13681         (decode_header_data), (_dbus_message_loader_return_buffer),
13682         (message_iter_test), (_dbus_message_test):
13683         * dbus/dbus-message.h:
13684         * dbus/dbus-protocol.h:
13685         * dbus/dbus-test.c: (main):
13686         * dbus/dbus-test.h:
13687         * glib/test-dbus-glib.c: (message_handler), (main):
13688         * test/echo-client.c: (main):
13689         * test/watch.c: (check_messages):
13690         Make messages sendable and receivable for real.
13691
13692 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
13693
13694         * dbus/dbus-marshal.c: (_dbus_marshal_double),
13695         (_dbus_marshal_string), (_dbus_marshal_byte_array):
13696         * dbus/dbus-message.c: (dbus_message_append_int32),
13697         (dbus_message_append_uint32), (dbus_message_append_double),
13698         (dbus_message_append_string), (dbus_message_append_byte_array):
13699         Handle OOM restoration.
13700
13701 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
13702
13703         * dbus/dbus-marshal.c: (_dbus_marshal_string),
13704         (_dbus_demarshal_string), (_dbus_marshal_test):
13705         * dbus/dbus-marshal.h:
13706         * dbus/dbus-message.c: (dbus_message_get_name),
13707         Document these functions.
13708
13709         (dbus_message_append_int32), (dbus_message_append_uint32),
13710         (dbus_message_append_double), (dbus_message_append_string),
13711         (dbus_message_append_byte_array):
13712         * dbus/dbus-message.h:
13713         Add functions for adding message fields of different types.
13714
13715         * dbus/dbus-protocol.h:
13716         Add the different types.
13717
13718 2003-01-05  Havoc Pennington  <hp@pobox.com>
13719
13720         * bus/connection.c: implement routines for handling connections,
13721         first thing is keeping a list of owned services on each connection
13722         and setting up watches etc.
13723
13724         * bus/services.c: implement a mapping from service names to lists
13725         of connections
13726
13727         * dbus/dbus-hash.c: add DBUS_HASH_POINTER
13728
13729         * dbus/dbus-threads.c (dbus_static_mutex_lock): add functions
13730         to use static mutexes for global data
13731
13732         * dbus/dbus-connection.c (dbus_connection_set_data): add new
13733         collection of functions to set/get application-specific data
13734         on the DBusConnection.
13735
13736 2003-01-04  Havoc Pennington  <hp@pobox.com>
13737
13738         * dbus/dbus-sysdeps.c (_dbus_sleep_milliseconds): new function
13739         (_dbus_poll): new function
13740
13741         * dbus/dbus-internals.h (_DBUS_STRUCT_OFFSET): new macro
13742         copied from GLib
13743
13744         * bus/loop.c: initial code for the daemon main loop
13745
13746 2003-01-04  Havoc Pennington  <hp@pobox.com>
13747
13748         * test/watch.c (error_handler): make it safe if the error handler
13749         is called multiple times (if we s/error handler/disconnect
13750         handler/ we should just guarantee it's called only once)
13751
13752         * dbus/dbus-transport.c (_dbus_transport_disconnect): call the
13753         error handler on disconnect (it's quite possible we should
13754         just change the error handler to a "disconnect handler," I'm
13755         not sure we have any other meaningful errors)
13756
13757         * configure.in: check for getpwnam_r
13758
13759         * dbus/dbus-transport.c, dbus/dbus-transport-unix.c,
13760         dbus/dbus-auth.c: add credentials support, add EXTERNAL auth
13761         mechanism as in SASL spec, using socket credentials
13762
13763         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): new function
13764         (_dbus_send_credentials_unix_socket): new function
13765
13766         * dbus/dbus-sysdeps.c (_dbus_accept_unix_socket): rename just
13767         dbus_accept()
13768         (_dbus_write): only check errno if <0 returned
13769         (_dbus_write_two): ditto
13770
13771 2003-01-02  Anders Carlsson  <andersca@codefactory.se>
13772
13773         * dbus/dbus-marshal.c: (_dbus_marshal_utf8_string),
13774         (_dbus_marshal_byte_array), (_dbus_demarshal_utf8_string),
13775         (_dbus_marshal_test):
13776         * dbus/dbus-marshal.h:
13777         Add _dbus_marshal_byte_array and rename _dbus_marshal_string
13778         to _dbus_marshal_utf8_string. Also fix some tests.
13779
13780 2002-12-28  Harri Porten  <porten@kde.org>
13781
13782         * configure.in: added check for C++ compiler and a very cheesy
13783         check for the Qt integration
13784
13785         * Makefile.am (SUBDIRS): compile qt subdir if support is enabled
13786
13787         * qt/Makefile.am: added
13788
13789         * qt/.cvsignore: added
13790
13791         * qt/dbus-qthread.cc, qt/dbus-qthread.cpp: renamed former to
13792         latter, added #ifdef QT_THREAD_SUPPORT guard.
13793
13794         * dbus/Makefile.am: added missing headers for make dist
13795
13796 2002-12-28  Kristian Rietveld  <kris@gtk.org>
13797
13798         * dbus/Makefile.am: fixup export-symbols-regex.
13799
13800 2002-12-27  Anders Carlsson  <andersca@codefactory.se>
13801
13802         * acinclude.m4: Add this file and put the
13803         PKG_CHECK_MODULE macro in it.
13804
13805 2002-12-27  Anders Carlsson  <andersca@codefactory.se>
13806
13807         * dbus/dbus-marshal.c: (_dbus_marshal_string),
13808         (_dbus_demarshal_double), (_dbus_demarshal_int32),
13809         (_dbus_demarshal_uint32), (_dbus_demarshal_string),
13810         (_dbus_marshal_test):
13811         Make the demarshalling routines align the pos argument.
13812         Add string marshalling tests and fix the obvious bugs
13813         discovered.
13814
13815 2002-12-26  Havoc Pennington  <hp@pobox.com>
13816
13817         * dbus/dbus-auth.c: fixes fixes fixes
13818
13819         * dbus/dbus-transport-unix.c: wire up support for
13820         encoding/decoding data on the wire
13821
13822         * dbus/dbus-auth.c (_dbus_auth_encode_data)
13823         (_dbus_auth_decode_data): append to target string
13824         instead of nuking it.
13825
13826 2002-12-26  Havoc Pennington  <hp@pobox.com>
13827
13828         * dbus/dbus-marshal.h (DBUS_COMPILER_BYTE_ORDER): #ifdef
13829         WORDS_BIGENDIAN then compiler byte order is DBUS_BIG_ENDIAN,
13830         doh
13831
13832         * dbus/dbus-marshal.c: Add macros to do int swapping in-place and
13833         avoid swap_bytes() overhead (ignoring possible assembly stuff for
13834         now). Main point is because I wanted unpack_uint32 to implement
13835         _dbus_verbose_bytes
13836         (_dbus_verbose_bytes): new function
13837
13838         * dbus/dbus-string.c (_dbus_string_validate_ascii): new function
13839
13840         * dbus/dbus-message.c (_dbus_message_loader_get_is_corrupted): add
13841         mechanism to handle a corrupt message stream
13842         (_dbus_message_loader_new): fix preallocation to only prealloc,
13843         not prelengthen
13844
13845         * dbus/dbus-string.c (_dbus_string_skip_blank): fix this function
13846         (_dbus_string_test): enhance tests for copy/move and fix the
13847         functions
13848
13849         * dbus/dbus-transport-unix.c: Hold references in more places to
13850         avoid reentrancy problems
13851
13852         * dbus/dbus-transport.c: ditto
13853
13854         * dbus/dbus-connection.c (dbus_connection_dispatch_message): don't
13855         leak reference count in no-message case
13856
13857         * test/watch.c (do_mainloop): handle adding/removing watches
13858         during iteration over the watches. Also, ref the connection/server
13859         stored on a watch, so we don't try to mangle a destroyed one.
13860
13861         * dbus/dbus-transport-unix.c (do_authentication): perform
13862         authentication
13863
13864         * dbus/dbus-auth.c (get_state): add a state
13865         AUTHENTICATED_WITH_UNUSED_BYTES and return it if required
13866         (_dbus_auth_get_unused_bytes): append the unused bytes
13867         to the passed in string, rather than prepend
13868
13869         * dbus/dbus-transport.c (_dbus_transport_init_base): create
13870         the auth conversation DBusAuth
13871
13872         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd)
13873         (_dbus_transport_new_for_domain_socket): when creating a
13874         transport, pass in whether it's a client-side or server-side
13875         transport so we know which DBusAuth to create
13876
13877 2002-12-03  Havoc Pennington  <hp@pobox.com>
13878
13879         * dbus/dbus-transport-unix.c (unix_finalize): finalize base
13880         _after_ finalizing the derived members
13881         (unix_connection_set): unref watch if we fail to add it
13882
13883         * dbus/dbus-connection.c (dbus_connection_unref): delete the
13884         transport first, so that the connection owned by the
13885         transport will be valid as the transport finalizes.
13886
13887         * dbus/dbus-transport-unix.c (unix_finalize): free the write_watch
13888         if necessary, and remove watches from the connection.
13889
13890         * dbus/dbus-watch.c (_dbus_watch_list_free): improve a comment
13891
13892 2002-12-26  Anders Carlsson  <andersca@codefactory.se>
13893
13894         * dbus/dbus-marshal.c: (_dbus_marshal_string),
13895         (_dbus_demarshal_double), (_dbus_demarshal_int32),
13896         (_dbus_demarshal_uint32), (_dbus_demarshal_string),
13897         (_dbus_marshal_test):
13898         * dbus/dbus-marshal.h:
13899         Add string marshal functions and have the demarshal functions
13900         return the new position.
13901
13902 2002-12-25  Havoc Pennington  <hp@pobox.com>
13903
13904         * doc/dbus-sasl-profile.txt: docs on the authentication protocol,
13905         it is a simple protocol that just maps directly to SASL.
13906
13907         * dbus/dbus-auth.h, dbus/dbus-auth.c: authentication protocol
13908         initial implementation, not actually used yet.
13909
13910         * dbus/dbus-string.c (_dbus_string_find): new function
13911         (_dbus_string_equal): new function
13912         (_dbus_string_base64_encode): new function
13913         (_dbus_string_base64_decode): new function
13914
13915 2002-12-25  Anders Carlsson  <andersca@codefactory.se>
13916
13917         * dbus/Makefile.am:
13918         * dbus/dbus-marshal.c: (swap_bytes), (_dbus_marshal_double),
13919         (_dbus_marshal_int32), (_dbus_marshal_uint32),
13920         (_dbus_demarshal_double), (_dbus_demarshal_int32),
13921         (_dbus_demarshal_uint32), (_dbus_marshal_test):
13922         * dbus/dbus-marshal.h:
13923         * dbus/dbus-protocol.h:
13924         * dbus/dbus-test.c: (main):
13925         * dbus/dbus-test.h:
13926         Add un-optimized marshalling/demarshalling routines.
13927
13928 2002-12-25  Harri Porten  <porten@kde.org>
13929
13930         * qt/dbus-qt.h: adjusted ctor and getter to KDE/Qt conventions
13931
13932 2002-12-24  Zack Rusin  <zack@kde.org>
13933
13934         * qt/dbus-qthread.cc: adding - integrates QMutex into Dbus
13935         * qt/dbus-qt.h: skeleton with two sample implemenatation of the
13936         main loop stuff
13937
13938 2002-12-24  Havoc Pennington  <hp@pobox.com>
13939
13940         * glib/dbus-gthread.c: fix include
13941
13942         * glib/dbus-glib.h: rename DBusMessageHandler for now.
13943         I think glib API needs to change, though, as you don't
13944         want to use DBusMessageFunction, you want to use the
13945         DBusMessageHandler object. Probably
13946         dbus_connection_open_with_g_main_loop()
13947         and dbus_connection_setup_g_main_loop() or something like that
13948         (but think of better names...) that just create a connection
13949         that has watch/timeout functions etc. already set up.
13950
13951         * dbus/dbus-connection.c
13952         (dbus_connection_send_message_with_reply): new function just to
13953         show how the message handler helps us deal with replies.
13954
13955         * dbus/dbus-list.c (_dbus_list_remove_last): new function
13956
13957         * dbus/dbus-string.c (_dbus_string_test): free a string that
13958         wasn't
13959
13960         * dbus/dbus-hash.c: use memory pools for the hash entries
13961         (rebuild_table): be more paranoid about overflow, and
13962         shrink table when we can
13963         (_dbus_hash_test): reduce number of sprintfs and write
13964         valid C89. Add tests for case where we grow and then
13965         shrink the hash table.
13966
13967         * dbus/dbus-mempool.h, dbus/dbus-mempool.c: memory pools
13968
13969         * dbus/dbus-connection.c (dbus_connection_register_handler)
13970         (dbus_connection_unregister_handler): new functions
13971
13972         * dbus/dbus-message.c (dbus_message_get_name): new
13973
13974         * dbus/dbus-list.c: fix docs typo
13975
13976         * dbus/dbus-message-handler.h, dbus/dbus-message-handler.c:
13977         an object representing a handler for messages.
13978
13979 2002-12-16  Anders Carlsson  <andersca@codefactory.se>
13980
13981         * glib/dbus-glib.h:
13982         * glib/dbus-gthread.c: (dbus_gthread_init):
13983         Don't use the gdbus prefix for public functions.
13984
13985 2002-12-16  Anders Carlsson  <andersca@codefactory.se>
13986
13987         * Makefile.am:
13988         * configure.in:
13989         Add GLib checks and fixup .pc files
13990
13991         * glib/Makefile.am:
13992         * glib/dbus-glib.h:
13993         * glib/dbus-gmain.c: (gdbus_connection_prepare),
13994         (gdbus_connection_check), (gdbus_connection_dispatch),
13995         (gdbus_add_connection_watch), (gdbus_remove_connection_watch),
13996         (dbus_connection_gsource_new):
13997         * glib/dbus-gthread.c: (dbus_gmutex_new), (dbus_gmutex_free),
13998         (dbus_gmutex_lock), (dbus_gmutex_unlock), (dbus_gthread_init):
13999         * glib/test-dbus-glib.c: (message_handler), (main):
14000         Add GLib support.
14001
14002 2002-12-15  Harri Porten  <porten@kde.org>
14003
14004         * autogen.sh: check for libtoolize before attempting to use it
14005
14006         * dbus/dbus-transport-unix.c: include <sys/time.h> for timeval
14007         struct.
14008
14009         * .cvsignore: ignore more stamp files
14010
14011         * dbus/dbus-watch.c (_dbus_watch_list_new): fixed doc error
14012
14013         * test/Makefile.am: added -I$(top_srcdir) to be able to compile
14014         without make install.
14015
14016 2002-12-15  Havoc Pennington  <hp@pobox.com>
14017
14018         * dbus/dbus-threads.c: add thread stubs that a higher library
14019         layer can fill in. e.g. the GLib wrapper might fill them in with
14020         GThread stuff. We still need to use this thread API to
14021         thread-safe-ize the library.
14022
14023 2002-12-12  Havoc Pennington  <hp@pobox.com>
14024
14025         * dbus/dbus-transport-unix.c, dbus/dbus-server-unix.c: use the
14026         below new interfaces and include fewer system headers.
14027
14028         * dbus/dbus-sysdeps.c (_dbus_read): new function
14029         (_dbus_write): new function
14030         (_dbus_write_two): new function
14031         (_dbus_connect_unix_socket): new function
14032         (_dbus_listen_unix_socket): new function
14033
14034         * dbus/dbus-message-internal.h: change interfaces to use
14035         DBusString
14036
14037 2002-12-11  Havoc Pennington  <hp@pobox.com>
14038
14039         * dbus/dbus-types.h: add dbus_unichar
14040
14041         * dbus/dbus-internals.c (_dbus_verbose): use _dbus_getenv
14042
14043         * dbus/dbus-connection.c (dbus_connection_send_message): return
14044         TRUE on success
14045
14046         * dbus/dbus-transport.c: include dbus-watch.h
14047
14048         * dbus/dbus-connection.c: include dbus-message-internal.h
14049
14050         * HACKING: add file with coding guidelines stuff.
14051
14052         * dbus/dbus-string.h, dbus/dbus-string.c: Encapsulate all string
14053         handling here, for security purposes (as in vsftpd). Not actually
14054         using this class yet.
14055
14056         * dbus/dbus-sysdeps.h, dbus/dbus-sysdeps.c: Encapsulate all
14057         system/libc usage here, as in vsftpd, for ease of auditing (and
14058         should also simplify portability). Haven't actually moved all the
14059         system/libc usage into here yet.
14060
14061 2002-11-25  Havoc Pennington  <hp@pobox.com>
14062
14063         * dbus/dbus-internals.c (_dbus_verbose): fix to not
14064         always print the first verbose message.
14065
14066 2002-11-24  Havoc Pennington  <hp@pobox.com>
14067
14068         * test/echo-client.c, test/echo-server.c: cheesy test
14069         clients.
14070
14071         * configure.in (AC_CHECK_FUNCS): check for writev
14072
14073         * dbus/dbus-message.c (_dbus_message_get_network_data): new
14074         function
14075
14076         * dbus/dbus-list.c (_dbus_list_foreach): new function
14077
14078         * dbus/dbus-internals.c (_dbus_verbose): new function
14079
14080         * dbus/dbus-server.c, dbus/dbus-server.h: public object
14081         representing a server that listens for connections.
14082
14083         * dbus/.cvsignore: create
14084
14085         * dbus/dbus-errors.h, dbus/dbus-errors.c:
14086         public API for reporting errors
14087
14088         * dbus/dbus-connection.h, dbus/dbus-connection.c:
14089         public object representing a connection that
14090         sends/receives messages. (Same object used for
14091         both client and server.)
14092
14093         * dbus/dbus-transport.h, dbus/dbus-transport.c:
14094         Basic abstraction for different kinds of stream
14095         that we might read/write messages from.
14096
14097 2002-11-23  Havoc Pennington  <hp@pobox.com>
14098
14099         * dbus/dbus-internals.h (_DBUS_INT_MAX): add _DBUS_INT_MIN
14100         _DBUS_INT_MAX
14101
14102         * dbus/dbus-test.c (main): add list test, and include
14103         dbus-test.h as intended
14104
14105         * dbus/dbus-hash.c (_dbus_hash_table_remove_string)
14106         (_dbus_hash_table_remove_int): return value indicates
14107         whether the entry existed to remove
14108
14109         * dbus/dbus-list.c: add linked list utility class,
14110         with docs and tests
14111
14112         * dbus/dbus-hash.c: add TODO item about shrinking the hash bucket
14113         array sometimes.
14114
14115 2002-11-23  Havoc Pennington  <hp@pobox.com>
14116
14117         * Doxyfile.in (INCLUDE_FILE_PATTERNS): expand DBUS_BEGIN_DECLS/
14118         DBUS_END_DECLS to nothing, that should fix this once and for all
14119
14120         * Doxyfile.in (JAVADOC_AUTOBRIEF): set to YES
14121
14122         * dbus/dbus-message.c, dbus/dbus-hash.c:
14123         add some missing @brief
14124
14125 2002-11-23  Havoc Pennington  <hp@pobox.com>
14126
14127         * dbus/dbus-message.h: put semicolons after DEBUG_BEGIN_DECLS
14128         to avoid confusing Doxygen
14129
14130         * dbus/dbus-hash.c: @} not }@
14131
14132         * dbus/dbus-message.c (struct DBusMessage): split out
14133         internals docs
14134
14135 2002-11-23  Havoc Pennington  <hp@pobox.com>
14136
14137         * configure.in: pile on more warning flags if using gcc
14138
14139         * Doxyfile.in (EXTRACT_STATIC): set to NO, so we don't have
14140         to document static functions
14141
14142         * configure.in: add summary to end of configure so it
14143         looks nice and attractive
14144
14145         * dbus/dbus-hash.c: finish implementation and write unit
14146         tests and docs
14147
14148         * configure.in: add --enable-tests to enable unit tests
14149
14150         * dbus/dbus-test.c: test program to run unit tests
14151         for all files in dbus/*, initially runs a test for
14152         dbus-hash.c
14153
14154         * dbus/dbus-internals.h: file to hold some internal utility stuff
14155
14156 2002-11-22  Havoc Pennington  <hp@redhat.com>
14157
14158         * dbus/dbus-hash.c: copy in Tcl hash table, not yet
14159         "ported" away from Tcl
14160
14161         * dbus/dbus-types.h: header for types such as dbus_bool_t
14162
14163 2002-11-22  Havoc Pennington  <hp@redhat.com>
14164
14165         * dbus/dbus.h: fixups for doc warnings
14166
14167         * Doxyfile.in (FILE_PATTERNS): we need to scan .h to pick up
14168         macros
14169         (QUIET): make it quiet so we can see warnings
14170
14171         * dbus/dbus-memory.c: teach D-BUS to allocate and free memory
14172
14173 2002-11-22  Havoc Pennington  <hp@redhat.com>
14174
14175         * Makefile.am: include "Doxyfile" target in all-local
14176
14177         * configure.in: generate the Doxyfile
14178
14179         * Doxyfile.in: move Doxyfile here, so we can use
14180         configure to generate a Doxyfile with the right
14181         version number etc.
14182
14183 2002-11-22  Havoc Pennington  <hp@redhat.com>
14184
14185         * dbus/dbus-message.c: move inline docs into .c file
14186
14187         * Doxyfile (OUTPUT_DIRECTORY): move output to doc/api
14188         so all docs are under doc/
14189         (MAN_EXTENSION): generate man pages. Use extension
14190         ".3dbus" which matches ".3qt" on my system,
14191         I guess this is OK, I don't know really.
14192         (FILE_PATTERNS): look for .c files not .h, makes sense
14193         for plain C I think
14194
14195 2002-11-22  Havoc Pennington  <hp@pobox.com>
14196
14197         * Makefile.am (SUBDIRS): rename subdir "server" to "bus"
14198         because any app can be a server, and any app can be a client,
14199         the bus is a special kind of server.
14200
14201 Thu Nov 21 23:35:31 2002  Zack Rusin  <zack@kde.org>
14202
14203         * Doxyfile : adding. Still needs Makefile rules to be generated
14204         automatically (just run "doxygen" in the toplevel dir for now to
14205         generate docs)
14206
14207         * dbus/dbus-message.h : Adding sample docs (javadoc since
14208         resembles gtk-doc a little more)
14209
14210         * dbus/dbus.h : Adding sample docs
14211
14212 2002-11-21  Havoc Pennington  <hp@redhat.com>
14213
14214         * dbus/Makefile.am (INCLUDES): define DBUS_COMPILATION
14215         so we can allow ourselves to include files directly,
14216         instead of having to use dbus.h
14217
14218         * dbus/dbus.h: fill in
14219
14220         * dbus/dbus-message.h: sketch out a sample header file.
14221         Include griping if you include it directly instead of
14222         via dbus.h
14223
14224         * dbus/dbus-macros.h: new file with macros for extern "C",
14225         TRUE/FALSE, NULL, etc.
14226
14227         * doc/file-boilerplate.c: put include guards in here
14228
14229 2002-11-21  Havoc Pennington  <hp@redhat.com>
14230
14231         * doc/file-boilerplate.c: include both AFL and GPL boilerplate.
14232
14233         * COPYING: include the GPL as well, and license code
14234         under both AFL and GPL.
14235
14236 2002-11-21  Havoc Pennington  <hp@redhat.com>
14237
14238         * acconfig.h: get rid of this
14239
14240         * autogen.sh (run_configure): add --no-configure option
14241
14242         * configure.in: remove AC_ARG_PROGRAM to make
14243         autoconf complain less. add AC_PREREQ.
14244         add AC_DEFINE third arg.
14245
14246 2002-11-21  Anders Carlsson  <andersca@codefactory.se>
14247
14248         * doc/Makefile.am:
14249         Fix references so we can distcheck.
14250
14251 2002-11-21  Havoc Pennington  <hp@redhat.com>
14252
14253         * Initial module creation
14254