* dbus/dbus-connection-internal.h: Add prototype for
[platform/upstream/dbus.git] / ChangeLog
1 2006-09-07  John (J5) Palmieri  <johnp@redhat.com>
2
3         * dbus/dbus-connection-internal.h: Add prototype for 
4         _dbus_connection_test_get_locks to remove warning
5
6 2006-09-07  John (J5) Palmieri  <johnp@redhat.com>
7
8         * dbus/dbus-spawn.c (_dbus_spawn_async_with_babysitter): Make sure we
9         close child_err_report_pipe[WRITE_END] on exec (Patch from 
10         Kimmo Hämäläinen <kimmo dot hamalainen at nokia dot com>)
11
12 2006-09-07  John (J5) Palmieri  <johnp@redhat.com>
13
14         * Clean up close calls to use _dbus_close (Patch from 
15         Kimmo Hämäläinen <kimmo dot hamalainen at nokia dot com>)
16
17 2006-09-06  John (J5) Palmieri  <johnp@redhat.com>
18
19         * doc/TODO:
20         - Remove pending call locking todo item
21         - dbus_connection_open now holds hard ref.  Remove todo item
22         - do proper locking on _dbus_bus_check_connection_and_unref
23           and handle DBUS_BUS_STARTER. Remove todo item
24         - Warn on closing of a shared connection.  Remove todo item
25
26         * bus/bus.c, bus/connection.c, bus/dispatch.c, dbus/dbus-bus.c,
27         dbus/dbus-connection.c: Use the dbus_connection_close_internal
28         so we don't get the warning when closing shared connections
29
30         * test/test-service.c, test/test-shell-service.c: Applications
31         don't close shared connections themselves so we unref instead of
32         close
33
34         * test/test-utils.c (test_connection_shutdown): Close the connection
35
36         * dbus/dbus-bus.c (_dbus_bus_check_connection_and_unref): Changed to
37         _dbus_bus_check_connection_and_unref_unlocked since we only call this
38         method on a locked connection.  
39         Make sure we call _dbus_connection_unref_unlocked instead of 
40         dbus_connection_unref also.
41         Handle DBUS_BUS_STARTER correctly
42
43         * dbus/dbus-connection.c (connection_record_shared_unlocked):
44         Mark as shared and hard ref the connection
45         (connection_forget_shared_unlocked): Remove the hard ref from the 
46         connection
47         (_dbus_connection_close_internal_and_unlock):  New internal function
48         which takes a locked connection and unlocks it after closing it
49         (_dbus_connection_close_internal): New internal function which acts
50         like the origonal dbus_connection_close method by grabbing a connection
51         lock and calling _dbus_connection_close_internal_and_unlock
52         (dbus_connection_close): Public close method, warns when the app
53         trys to close a shared connection
54
55 2006-09-06  John (J5) Palmieri  <johnp@redhat.com>
56
57         * bus/driver.c:
58         (bus_driver_generate_introspect_string): New method for populating
59         a DBusString with the introspect data
60         (bus_driver_handle_introspect): Move introspect generation code to 
61         bus_driver_generate_introspect_string
62
63         * bus/main.c:
64         (introspect): New function which prints out the intropect data and
65         exits
66         (main): Add a --introspect switch
67
68 2006-09-06  John (J5) Palmieri  <johnp@redhat.com>
69
70         * doc/TODO: Removed dtd publishing item.  
71         It seems the dtd has already been added at
72         http://www.freedesktop.org/standards/dbus/1.0/introspect.dtd
73
74 2006-09-05  John (J5) Palmieri  <johnp@redhat.com>
75
76         * doc/TODO, various source files: Audited todo's and FIXME's and
77         prepended the ones we should be looking at with 1.0.  Those
78         prepended with 1.0? need clerification or might not be needed
79         for 1.0
80
81 2006-09-05  John (J5) Palmieri  <johnp@redhat.com>
82
83         * dbus/dbus-pending-call.c: Add some checks so we don't crash on
84         NULL in the public API (Patch from Kimmo Hämäläinen 
85         <kimmo dot hamalainen at nokia dot com>)
86
87 2006-09-05  John (J5) Palmieri  <johnp@redhat.com>
88
89         * configure.in: Fix for OS-X compile time endian issues (patch from
90         Benjamin Reed <ranger at befunk dot com>)
91
92 2006-09-05  John (J5) Palmieri  <johnp@redhat.com>
93
94         * configure.in: Check for no-common compiler flag (OS-X fix from
95         Benjamin Reed <ranger at befunk dot com>)
96
97 2006-09-01  John (J5) Palmieri  <johnp@redhat.com>
98
99         * tools/dbus-launch.c: Add a sigterm handler (patch from Frederic Crozat
100         <fcrozat at mandriva dot com>)
101
102 2006-08-29  Havoc Pennington  <hp@redhat.com>
103
104         * test/test-service.c (path_message_func): fix lack of return value
105
106         * dbus/dbus-sysdeps.c (_dbus_printf_string_upper_bound): fix
107         formatting, remove #ifdef, and fix docs. #ifdef doesn't make
108         any more sense than on anything else in this file.
109         (_dbus_get_tmpdir): add const to return value, and keep the
110         results of the various getenv around in a static variable.
111
112 2006-08-29  Havoc Pennington  <hp@redhat.com>
113
114         * dbus/dbus-sysdeps-util.c, dbus/dbus-sysdeps-util-unix.c: change
115         from Ralf Habacker to move UNIX-specific sysdeps into a separate file.
116
117 2006-08-25  John (J5) Palmieri  <johnp@redhat.com>
118
119         * test/Makefile.am: change find to use syntax that works with non
120         gnu versions of find
121
122 2006-08-25  John (J5) Palmieri  <johnp@redhat.com>
123
124         * dbus/dbus-transport.c: fix invalid deref when checking if
125         a vtable method exists (Patch from Christian Ehrlicher 
126         <ch dot ehrlicher at gmx dot de>)
127
128 2006-08-25  John (J5) Palmieri  <johnp@redhat.com>
129
130         * configure.in, dbus/Makefile.am, test/name-test/run-test.sh, 
131         test/name-test/Makefile.am: Fixed some issues with getting get dbus 
132         to build with builddir != srcdir (Taken from a patch by Bernard Leak
133         <bernard at brenda-arkle dot demon dot co dot uk>)
134
135 2006-08-25  John (J5) Palmieri  <johnp@redhat.com>
136
137         * configure.in: Fix DBUS_DAEMONDIR to use EXPANDED_BINDIR for the
138         default case
139
140 2006-08-25  John (J5) Palmieri  <johnp@redhat.com>
141
142         * configure.ac, bus/Makefile.am: Generalize kqueue support so that
143         it works on any system providing this interface, not only FreeBSD.
144         For example, NetBSD. (Patch by Julio M. Merino Vidal  <jmmv at NetBSD dot org>)
145
146 2006-08-20  Havoc Pennington  <hp@redhat.com>
147
148         * doc/dbus-faq.xml, doc/dbus-tutorial.xml: some improvements to
149         the docs
150
151 2006-08-18  John (J5) Palmieri  <johnp@redhat.com>
152
153         * Released 0.92 
154
155 2006-08-18  John (J5) Palmieri  <johnp@redhat.com>
156
157         * dbus/dbus-threads.c (dbus_threads_init): change the documentation
158         to reflect the init late change
159
160         * bus/bus.c (bus_context_new): Check user before we fork so we can
161         print out an error message a user will be able to see
162
163 2006-08-18  John (J5) Palmieri  <johnp@redhat.com>
164
165         Patch provided by Ralf Habacker (ralf dot habacker at freenet dot de) 
166
167         * dbus/dbus-sysdeps.c, dbus/dbus-threads.c, dbus/dbus-internals.h:
168         Add two more global locks for use on windows platforms.  These are
169         unused on non-windows platforms but are not ifdefed out to avoid
170         potential bugs (i.e. the few bytes lost does not warrent the extra
171         maintanence and complexity that having seperate sets of locks would
172         cause)
173
174 2006-08-18  John (J5) Palmieri  <johnp@redhat.com>
175
176         * bus/services.c (bus_registry_acquire_service): Return an error
177         when an application tries to register the org.freedesktop.DBus Bus Name
178
179         * bus/services.c (bus_registry_release_service): Return an error
180         when an application tries to release the org.freedesktop.DBus Bus Name
181
182 2006-08-17  Alp Toker  <alp@atoker.com>
183
184         * doc/dbus-specification.xml: Fix some minor typos.
185
186 2006-08-17  John (J5) Palmieri  <johnp@redhat.com>
187
188         * configure.in: use $with_init_scripts instead of $operating_system
189         to determine where to store the pid since the init scripts manipulate 
190         the pid file (patch from Marcelo Ricardo Leitner 
191         <marcelo dot leitner at terra dot com dot br>.  
192
193 2006-08-16  John (J5) Palmieri  <johnp@redhat.com>
194
195         * dbus/dbus-threads.c: Add static DBusList *uninitialized_mutex_list and
196         static DBusList *uninitialized_condvar_list to support new late 
197         initialization threading model.  In this model threads can be initialized
198         even after the D-Bus API has been used but still needs to be initialized 
199         before the second thread has been started.  Mutexes and condvar addresses
200         are stored in the two static lists and are replaced with actuall locks
201         when threads are initalized.
202         (_dbus_mutex_new_at_location): New method for creating a mutex and placing
203         the location into the static list
204         (_dbus_mutex_free_at_location): New method for removing a mutex location 
205         from the static list and freeing the mutex
206         (_dbus_condvar_new_at_location): New method for creating a conditional 
207         variable and placing the location into the static list
208         (_dbus_condvar_free_at_location): New method for removing a conditional
209         variable location from the static list and freeing the conditional variable 
210         (init_uninitialized_locks): Atomic method which goes through the static 
211         lists of mutex and condvar location and updates them with actuall locks
212         (init_global_locks): changed to init_locks
213         
214         * dbus/dbus-connection.c:
215         (_dbus_connection_test_get_locks): New method for tests to check connections
216         (_dbus_connection_new_for_transport): Use the new at_location mutex and
217         condvar API
218         (dbus_connection_allocate_data_slot): Pass in the global lock address
219         to _dbus_data_slot_allocator_alloc
220
221         * dbus/dbus-dataslot.c:
222         (_dbus_data_slot_allocator_alloc): Use the address of the mutex
223         instead of the mutex itself
224
225         * dbus/dbus-message.c:
226         (dbus_message_allocate_data_slot): Pass in the global lock address
227         to _dbus_data_slot_allocator_alloc
228
229         * dbus/dbus-pending-call.c:
230         (dbus_pending_call_allocate_data_slot): Pass in the global lock address
231         to _dbus_data_slot_allocator_alloc
232
233         * dbus/dbus-server.c:
234         (_dbus_server_init_base): Use the new at_location mutex API
235         (dbus_server_allocate_data_slot): Pass in the global lock address
236         to _dbus_data_slot_allocator_alloc
237
238         * test/name-test/test-threads-init.c: New test case for late thread
239         initialization
240
241 2006-08-14  John (J5) Palmieri  <johnp@redhat.com>
242
243         * dbus/dbus-dataslot.c (_dbus_data_slot_allocator_alloc):
244         Change _dbus_abort to _dbus_assert_not_reached because _dbus_abort
245         causes compile problems when asserts are turned off
246         Keeping _dbus_warn for printing out the message so even if
247         asserts are turned off the user gets the messages that something is 
248         wrong 
249
250 2006-08-14  John (J5) Palmieri  <johnp@redhat.com>
251
252         Patches by Kjartan Maraas <kmaraas at gnome dot org>
253
254         * bus/services.c (bus_service_list_queued_owners):
255         Add a pointer cast to fix compiler warning
256
257         * dbus/dbus-dataslot.c (_dbus_data_slot_list_get):
258         return a NULL instead of FALSE since the return type
259         is not expecting a boolean
260
261         * dbus/dbus-marshal-basic.c (_dbus_marshal_test):
262         Remove unused variable
263
264         * dbus/dbus-marshal-recursive-util.c (node_new):
265         return a NULL instead of FALSE since the return type
266         is not expecting a boolean
267
268         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
269         Send a NULL into _dbus_transport_new_for_fd instead of a FALSE
270         because we are expecting a pointer not a boolean
271
272         * dbus/dbus-sysdeps-util.c (_dbus_get_tmpdir): 
273         add void as the parameter so some compilers
274         don't complain
275
276         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_domain_socket,
277           _dbus_transport_new_for_tcp_socket):
278         Send a NULL into _dbus_transport_new_for_fd instead of a FALSE
279         because we are expecting a pointer not a boolean
280
281         * test/shell-test.c (test_command_line):
282         cast the second argument to _dbus_list_append to avoid compiler
283         warnings
284
285         * test/test-names.c (main): remove unused variable
286
287         * test/test-service.c (check_hello_from_self_reply):
288         Initialize echo_message and echo_reply to NULL
289         
290         * test/test-shell-service.c (handle_echo):
291         Remove unused variable and cast the third parameter passed to
292         dbus_connection_get_object_path_data to avoid compiler warrnings
293
294         * test/name-test/test-names.c (clear_message_queue):
295         Remove unused function
296
297         * test/name-test/test-pending-call-dispatch.c:
298         Fix format string in printf
299
300
301 2006-08-14  John (J5) Palmieri  <johnp@redhat.com>
302
303         * dbus/dbus-bus.c:
304         * test/name-test/test-names.c:
305         Remove test method dbus_bus_connection_get_unique_name because 
306         we already have public method dbus_bus_get_unique_name that 
307         does the exact same thing
308
309 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
310
311         * dbus/dbus-signature.c:
312         fix typos in Julio's previous patch which cause make check to fail
313
314 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
315
316         * dbus/dbus-address.c (_dbus_address_test): Revert leaking strcmp.  
317         In any case it was wrong since this is a test checking to see if
318         address parsing is correct.  There was no need to get the true
319         tmp directory.  
320
321 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
322
323         * dbus/dbus-macros.h: Revert the addition of stddef.h
324         as we should not be adding it to library headers 
325
326 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
327
328         * dbus/dbus-signature.c:
329         Fix the unit tests so that they work if assertions are not enabled.
330         (patch from Julio M. Merino Vidal  <jmmv at NetBSD dot org>)
331
332 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
333
334         * tools/run-with-tmp-session-bus.sh:
335         * test/name-test/run-test.sh:
336         Remove bashisms (patch from Julio M. Merino Vidal
337         <jmmv at NetBSD dot org>)
338
339 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
340
341         * configure.in: add a version (>= 2.6.0) check for libxml2
342
343 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
344
345         * configure.in: make sure the compiler supports -Wfloat-equal
346         
347         * bus/dir-watch-dnotify.c: move functional code after 
348         variable declerations (C99 fix)  (patches from Jens Granseuer
349         <jensgr at gmx dot net>
350
351 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
352
353         * dbus/dbus-macros.h:
354         add #include <stddef.h> so that Sun compilers don't complain about
355         the defining NULL
356
357 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
358
359         * dbus/dbus-sysdeps.c:
360         * dbus/dbus-address.c:
361         * bus/activation.c:
362         * test/shell-test.c:
363         don't hardcode tmp directory (patch from Dave Meikle 
364         <dmk at davemeikle dot co dot uk>)
365
366 2006-08-09  John (J5) Palmieri  <johnp@redhat.com>
367
368         * dbus/dbus-dataslot.c (_dbus_data_slot_allocator_alloc):
369         Change an assert to a detailed warning and abort.  
370         When allocator->lock != mutex it indicates that the user has failed
371         to initalize threads before using the D-Bus library.  This warning
372         helps the user identify the issue and fix their app.
373
374 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
375
376         These are all patches from Kjartan Maraas <kmaraas at gnome dot org>
377         with cleanups of bugs found from Coverity reports:
378
379         * dbus/dbus-sysdeps-util.c (_dbus_write_pid_file):
380         close the file on error to avoid a leak
381
382         * bus/expirelist.c (bus_expire_list_test):
383         Check for NULL on dbus_new0
384
385         * bus/activation.c (update_directory):
386         remove dead code
387
388         * bus/config-parser.c (merge_service_context_hash, start_selinux_child):
389         Fix some leaks
390
391         * bus/bus.c (process_config_every_time):
392         Fixed a leak
393
394         * bus/desktop-file.c (parse_key_value):
395         Fixed leak
396
397         * bus/selinux.c (bus_selinux_id_table_insert):
398         Fixed leak
399
400 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
401
402         * dbus/dbus-object-tree.c (_dbus_object_subtree_new):
403         remove dead code
404
405 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
406
407         * tools/run-with-tmp-session-bus.sh: use #!/bin/sh instead of
408         #!/bin/bash
409
410 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
411
412         * Doxyfile.in: fix the INPUT line so we can generate docs 
413         when sourcedir != builddir (patch from Cygwin Ports maintainer
414         <yselkowitz at users dot sourceforge dot net>
415
416 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
417
418         * dbus/dbus-sysdeps.h:
419         * dbus/dbus-sysdeps.c: 
420         * dbus/dbus-string.c: 
421         s/_dbus_printf_length/_dbus_printf_string_upper_bound to comform with
422         GLib's function which does the same thing
423
424         * configure.in:
425         * bus/Makefile.am:
426         * bus/dir-watch-default.c:
427         * bus/dir-watch-dnotify.c:
428         * bus/dir-watch-kqueue.c:
429         Add kqueue directory watching for freebsd and split the directory
430         watching code into seperate files per method/arch
431         (patches from Timothy Redaelli <drizzt at gufi dotorg>)
432
433 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
434
435         * configure.in:
436         * tools/Makefile.am:
437         * tools/dbus-launch.c:
438         * bus/Makefile.am:
439         allow --with-dbus-daemondir switch to be used to make the
440         daemon install to a seperate bindir like /usr/libexec
441         (patch from Brian Cameron <brian dot cameron at sun dot com)
442
443 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
444
445         * bus/Makefile.am (install-data-hook): removed the slash after 
446         $(DESTDIR) so we don't get the double slash which does not work
447         in windows (patch from Andras Porjesz 
448         <andras dot porjesz at siemens dot com>)
449
450 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
451
452         * dbus/dbus-sysdeps.h:
453         * dbus/dbus-sysdeps.c: 
454           add _dbus_printf_length (patch from Peter Kümmel 
455           <syntheticpp at gmx dot net>)
456
457 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
458
459         * dbus/dbus-internals.c: unistd.h is not used 
460         (_dbus_verbose_real): only enable verbose printing 
461         if DBUS_VERBOSE environment var is set to '1'
462         (patch from Peter Kümmel <syntheticpp at gmx dot net>)
463
464 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
465
466         * configure.in: add a GCC flag check for -Wdeclaration-after-statement
467         so we still compile on older gcc (patch from Frederic Peters 
468         <fpeters at 0d dot be>
469
470 2006-08-04  Havoc Pennington  <hp@redhat.com>
471
472         * configure.in: add -Wdeclaration-after-statement
473
474         * dbus/dbus-connection.c: change all the pending call stuff to
475         reflect the fact that pending call operations use the connection
476         lock
477
478         * dbus/dbus-pending-call.c: add locking here
479
480         * dbus/dbus-errors.c (struct DBusRealError): don't make the name
481         field const consistent with how message field is done
482
483 2006-08-03  John (J5) Palmieri  <johnp@redhat.com>
484
485         * s/D-BUS/D-Bus/g
486
487 2006-08-03  John (J5) Palmieri  <johnp@redhat.com>
488
489         * dbus/dbus-object-tree.c: Patch by Benjamin Otte 
490         <in7y118 at public.uni-hamburg dot de> - fix invalid
491         read/write reported by valgrind
492
493 2006-07-24  John (J5) Palmieri  <johnp@redhat.com>
494
495         * Released 0.91
496
497 2006-07-22  John (J5) Palmieri  <johnp@redhat.com>
498
499         * dbus/dbus-connection.c:
500         (_dbus_connection_attach_pending_call_unlocked):
501         (connection_timeout_and_complete_all_pending_calls_unlocked):
502         Make sure we set timeout_added on pending calls to FALSE when
503         we remove the timeout from the connection
504
505 2006-07-21  John (J5) Palmieri  <johnp@redhat.com>
506
507         * Removed some extra bindings stuff lingering around (thanks timo)
508         * dbus-pendingcall.c (_dbus_pending_call_new): 
509         s/dbus_connection_ref/_dbus_connection_ref_unlocked fixes assertion
510         when we tried to take a lock on an already locked connection
511
512 2006-07-17  John (J5) Palmieri  <johnp@redhat.com>
513
514         * Released 0.90
515
516 2006-07-17  Havoc Pennington  <hp@redhat.com>
517
518         * dbus/dbus-marshal-basic.c (_dbus_type_to_string): support 64-bit
519         ints, reported by Owen Taylor
520
521 2006-07-17  John (J5) Palmieri  <johnp@redhat.com>
522
523         * doc/TODO:
524         * dbus/dbus-bus.c:
525         * dbus-errors.c:
526         * dbus/dbus-marshal-validate.c:
527           Removed TODO items which were fixed or are no longer relevent
528
529 2006-07-17  John (J5) Palmieri  <johnp@redhat.com>
530
531         * dbus-qt4-1.pc.in, dbus-sharp.pc.in:
532         Remove stray files from the stripped bindings
533
534 2006-07-16  Havoc Pennington  <hp@redhat.com>
535
536         * dbus/dbus-pending-call.c (_dbus_pending_call_set_timeout_error):
537         Improve the error message on reply timeout
538
539 2006-07-14  John (J5) Palmieri  <johnp@redhat.com>
540
541         * Remove all bindings
542
543 2006-07-13  John (J5) Palmieri  <johnp@redhat.com>
544
545         * dbus-connection.c (dbus_connection_send_with_reply): return TRUE
546         and set pending_reply out arg to NULL is connection is disconnected
547         (connection_timeout_and_complete_all_pending_calls_unlocked): New
548         static method for cleaning up pending calls on disconnect
549         (_dbus_connection_get_dispatch_status_unlocked): If we have pending 
550         calls queued timeouts on disconnect 
551
552          * dbus/dbus-pending-call.c (_dbus_pending_call_set_connection):
553         Remove 
554
555 2006-07-13  Carlos Garcia Campos  <carlosgc@gnome.org>
556
557         * bus/activation.[ch] (bus_activation_list_services): new function to 
558         get the list of services that can be activated
559
560         * bus/dispatch.c: test coverage for the new bus method
561         ListActivatableNames
562
563         * bus/driver.c: new bus method ListActivatableNames to get the list of
564         services that can be activated
565
566         * doc/dbus-specification.xml: ListActivatableNames method documentation
567
568 2006-07-12  John (J5) Palmieri  <johnp@redhat.com>
569         * dbus/Makefile.am: add dbus-pending-call-internal.h to the list of
570         source files
571
572 2006-07-12  John (J5) Palmieri  <johnp@redhat.com>
573         * dbus/dbus-message-factory.c:
574         Fix index into an array (patch by Peter Kümmel <syntheticpp at gmx.net>)
575
576 2006-07-12  John (J5) Palmieri  <johnp@redhat.com>
577         * dbus/dbus-connection-internal.h:
578         * dbus/dbus-connection.c:
579         * file dbus/dbus-pending-call.c:
580         * dbus/dbus-pending-call.h:
581         Make DBusPendingCall an opaque type even to D-Bus internals
582
583 2006-07-07  John (J5) Palmieri  <johnp@redhat.com>
584
585         * dbus/dbus-connection.h: remove connection_disconnect and replace with
586         connection_close
587
588         * dbus/dbus-connection.c: include dbus-bus.h
589         (_dbus_connection_read_write_dispatch): make static
590
591 2006-07-07  John (J5) Palmieri  <johnp@redhat.com>
592
593         * dbus/dbus-connection.c (dbus_connection_close): removed deprecated
594         function
595         (dbus_connection_dispatch): On disconnect unref any shared connections
596
597         * dbus/dbus-bus.c (_dbus_bus_check_connection_and_unref): new function
598         for cleaning up shared connections on disconnect
599         (internal_bus_get): get a hard refrence to shared connections when
600         they are created
601         
602         * doc/TODO: Remove items which are no longer relevent or have been fixed
603         Split 1.0 todo items with a 0.90 freeze todo list
604  
605 2006-06-14  Ross Burton  <ross@openedhand.com>
606
607         * glib/dbus-gobject.c:
608         Free a leaking GArray (surely not!) in dbus_g_method_return.
609
610 2006-06-14  Ross Burton  <ross@openedhand.com>
611
612         * tools/Makefile.am:
613         * tools/dbus-monitor.c:
614         Don't use the GLib bindings in dbus-monitor (patch from Ralf
615         Habacker).
616         
617 2006-06-14  Ross Burton  <ross@openedhand.com>
618
619         * tools/dbus-print-message.c:
620         Also print the object path when outputting signals or method calls.
621
622 2006-06-13  Thiago Macieira <thiago.macieira@trolltech.com>
623
624         * qt/src/Makefile.am: install the qdbus.h header.
625         This allows people to actually use the installed code.
626
627 2006-06-12  Ross Burton  <ross@openedhand.com>
628
629         * glib/dbus-gproxy.c:
630         Don't leak a GArray when firing signals (thank Rob Taylor for review).
631
632 2006-06-12  Thiago Macieira <thiago.macieira@trolltech.com>
633
634         * Released 0.62
635
636 2006-06-12  Thiago Macieira <thiago.macieira@trolltech.com>
637
638         * dbus/dbus-arch-deps.h.in: Remove spurious semi-colons that
639         break pedantic builds. Closes bug 6043 (patch approved by
640         Havoc back in February).
641
642 2006-06-12  Thiago Macieira <thiago.macieira@trolltech.com>
643
644         * qt/src/qdbusintegrator.cpp: Fix bug in parsing async methods
645         that took a QDBusMessage parameter.
646         * qt/src/qdbusbus.h: Add a default flag for RequestName.
647         * qt/tools/dbus.cpp: Don't use automatic call because we might
648         be calling an async method: request a reply.
649
650 2006-06-11  Thiago Macieira <thiago.macieira@trolltech.com>
651
652         * test/qt/*: Update the testcases, including testing the new
653         functionality of sending null QByteArray and QString over the
654         bus. Add new headertest test and restore the old
655         qdbusxmlparser test.
656
657 2006-06-11  Thiago Macieira <thiago.macieira@trolltech.com>
658
659         * qt/tools/dbuscpp2xml.cpp: Compile on Windows.
660         * qt/tools/dbusidl2cpp.cpp: Add missing newline.
661
662         * qt/examples/Makefile.am:
663         * qt/examples/chat.h: Use UI-generated files with the ui_*.h
664         form.
665
666         * qt/src/qdbusmarshall.cpp: Allow sending of QString() and
667         QByteArray() (nulls) over the bus.
668         * qt/src/qdbusabstractinterface.cpp: Use the correct variable,
669         the one that has the signature suffix stripped.
670         * qt/src/qdbusreply.h: Make some methods const.
671
672 2006-06-09  Thiago Macieira <thiago.macieira@trolltech.com>
673
674         Patch from Timo Hoenig <thoenig@suse.de>.
675
676         * qt/dbus/Makefile.am: New file.  Fix "make dist", add all headers
677         required during build to EXTRA_DIST.
678         * qt/src/Makefile.am: Fix "make dist", add 'qdbus.h' to EXTRA_DIST.
679         * qt/Makefile.am: Fix "make dist", add 'dbus' to DIST_SUBDIRS.
680         * configure.in: Fix "make dist", take care that the Makefile for
681         qt/dbus is being generated.
682
683 2006-06-07  John (J5) Palmieri  <johnp@redhat.com>
684
685         * bus/bus.c: Fix eavesdropping on method calls
686
687 2006-06-07  John (J5) Palmieri  <johnp@redhat.com>
688
689         * configure.in:
690         * dbus/dbus-userdb-util.c:
691         Add Solaris console owner patch from Artem Kachitchkine
692
693 2006-06-07  Thiago Macieira <thiago.macieira@trolltech.com>
694
695         * qt/Makfile.am:
696         * qt/src/Makefile.am: Fix the EXTRA_DIST after the
697         reorganisation. Thanks to Timo Hoenig for pointing this out.
698
699 2006-06-06  Robert McQueen  <robot101@debian.org>
700
701         * glib/dbus-gtype-specialized.c: Fix obvious leak of GArray in every
702           call to dbus_g_type_get_struct.
703
704 2006-06-06  Robert McQueen  <robot101@debian.org>
705
706         * glib/dbus-gvalue-utils.c: Fix the failing test where static string
707           pointers were put into a GPtrArray-based specialised collection, and
708           then freed along with the array. GValues which you add into
709           collections or maps which have the NOCOPY flag set are assumed to not
710           belong to the caller, so rather than the existing pointer-stealing
711           semantics, they are copied instead. Given that the main consumers of
712           this abstraction are the bindings themselves, I don't think this is
713           too bad, but others should watch their choice of take vs set_static.
714
715 2006-06-06  Robert McQueen  <robot101@debian.org>
716
717         * glib/dbus-gvalue-utils.c: Spotted a warning about the return value
718           of g_slist_prepend not being used. Fixed copying of slist-based
719           specialised collections, then wrote a test case and found that it was
720           all broken. Went on to fix iterating and appending too. Good thing
721           nobody uses this code yet.
722
723 2006-06-06  Robert McQueen  <robot101@debian.org>
724
725         * glib/dbus-gvalue-utils.c: Remove duplicated code by having all of
726           the iterators use gvalue_take_ptrarray_value (the GValues themselves
727           are discarded without unsetting, so it makes no difference whether
728           we take or set_static). Remove cases for G_TYPE_POINTER because
729           there really is nothing useful we can do with them in our
730           specialised types - we *need* boxed copy/free functions at the very
731           least.
732
733 2006-06-05  Thiago Macieira <thiago.macieira@trolltech.com>
734
735         * qt/dbus: Add directory. I had forgotten to add this
736         yesterday after the move...
737
738         * qt/examples/Makefile.am:
739         * qt/examples/dbus.cpp: Moved to qt/tools/dbus.cpp.
740
741         * qt/tools/Makefile.am:
742         * qt/tools/dbus.cpp: Moved from qt/examples/dbus.cpp.
743         Added feature to get and set properties.
744         Added validation of service, object path and interface names.
745
746         * qt/tools/dbusidl2cpp.cpp: Two new features:
747         1) Allow specifying both the header and the source file names,
748         by separating them with a colon.
749         2) Don't write an interface output if the -p switch wasn't
750         given, but the -a was.
751
752         * qt/src/*: Fix usage of Iterators and ConstIterators.
753         Fix shadowing of variables by other variables (-Wshadow).
754         Fix keyword-cleanliness in headers.
755         Fix ASCII-cast (QLatin1String, QLatin1Char).
756         Fix validation of member names.
757         Add extra checking of introspection data during XML parsing.
758         Various bug fixes.
759
760 2006-06-04  Thiago Macieira <thiago.macieira@trolltech.com>
761
762         * dbus/Makefile.am:
763         * dbus/qdbus.h: Remove unnecessary file. This is mirrored into
764         qt/dbus/qdbus.h now.
765
766 2006-06-04  Thiago Macieira <thiago.macieira@trolltech.com>
767
768         * configure.in: Make --disable-qt actually do
769           something. Patch inspired by Zack Rusin.
770
771 2006-06-04  Thiago Macieira <thiago.macieira@trolltech.com>
772
773         * qt/: Update to Subversion r548032.
774         This includes a big reorganisation of the files inside the
775         subdir.
776
777 2006-05-30  Sjoerd Simons  <sjoerd@luon.net>
778
779         * dbus/dbus-sysdeps.c: Make tcp socket connection error somewhat more
780         clear:  
781         "Failed to connect to socket <host>:<port> <error>" instead of
782         "Failed to connect to socket <host>: <error>:<port>"
783
784         * dbus/dbus-transport-unix.c: Fix crash when no host option is given
785         for a tcp transport. 
786
787 2006-05-29  Thiago Macieira  <thiago.macieira@trolltech.com>
788
789         * qt/*: Update the QtDBus bindings up to revision 546310 in
790         Subversion.
791         This adds the dbuscpp2xml tool, that parses a C++ header and
792         outputs a D-BUS Introspection XML.
793
794 2006-05-21  Havoc Pennington  <hp@redhat.com>
795
796         * glib/dbus-gproxy.c: Put in a pile of assertions that the proxy name
797         is not NULL when it shouldn't be. Also a couple of possible fixes
798         for #4637 though I don't understand why the bug happens, to be
799         honest... also the object constructor has an assert name != NULL
800         and the name is only currently NULL for peer-to-peer proxies that 
801         I don't think anyone uses? So it should be asserting.
802         Anyway, for now at least see if we get an earlier assertion failure.
803
804         * glib/dbus-gvalue-utils.c: Put in a couple of assertions for
805         apparently broken code to be sure the tests fail and someone 
806         will fix them...
807
808 2006-05-07  Thiago Macieira  <thiago.macieira@trolltech.com>
809
810         * qt/qdbusmarshall.cpp: Fix a problem of demarshalling lists
811         and arrays when they had a single element: has_next returns
812         false, even before you read the element. So, instead, check
813         the array length.
814
815 2006-05-06  Thiago Macieira  <thiago.macieira@trolltech.com>
816
817         * qt/qdbusmessage.cpp:
818         * qt/qdbustypehelper_p.h:
819         * qt/qdbusintegrator.cpp: gcc 3.4 doesn't like Q_FOREACH when
820         the list is a const-reference
821
822 2006-05-03  John (J5) Palmieri  <johnp@redhat.com>
823
824         * Adding old doc patch that never got applied
825         
826         * dbus/bus.c (dbus_bus_add_match): Add documentation
827
828         * doc/dbus-specification.xml: Add documentation for the match rules
829           and the AddMatch and RemoveMatch methods
830
831 2006-05-02  Thiago Macieira  <thiago.macieira@trolltech.com>
832
833         * qt/dbusidl2cpp.cpp: There's no callAsync. Use the correct
834         call (r535506)
835
836         * qt/dbusidl2cpp.cpp:
837         * qt/qdbusabstractadaptor.cpp:
838         * qt/qdbusabstractadaptor.h: Make QDBusAdaptorConnector be a
839         sibling of the QDBusAbstractAdaptor objects instead of the
840         parent. (r535848)
841
842         * qt/dbusidl2cpp.cpp:
843         * qt/qdbusabstractinterface.cpp:
844         * qt/qdbusabstractinterface.h:
845         * qt/qdbusabstractinterface_p.h:
846         * qt/qdbusinterface.cpp: Make properties in interfaces
847         actually work. The code that was generated would not compile,
848         due to moc calls to functions that did not exist. They now
849         shall. (r536571)
850
851 2006-04-30  Thiago Macieira  <thiago.macieira@trolltech.com>
852
853         * Makefile.am:
854         * configure.in:
855         * dbus-qt4-1.pc.in: Add a pkg-config file for libdbus-qt4-1.
856         Thanks to Brad Hards for providing the patch
857
858 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
859
860         * qt/dbusidl2cpp.cpp: There's no callAsync. Use the correct
861         call. (r535506)
862
863 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
864
865         * qt/examples/dbus.cpp: Enhance error messages and use
866         QDBusInterfacePtr.
867
868 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
869
870         * qt/qdbusinterface.h: Rename QDBusRef to QDBusInterfacePtr
871         and disable the copy operators. (r533772, r534746)
872
873         * qt/qdbuserror.h: Remove the automatic cast to bool. (r533929)
874
875         * qt/qdbusabstractinterface.cpp:
876         * qt/qdbusabstractinterface.h: Change the default call mode to
877         not use the event loop. Add convenience call() methods that
878         take a CallMode parameter. (r534042)
879
880         * qt/qdbusconnection.h: Change the default call mode to not
881         use the event loop. (r534042)
882
883         * qt/qdbusinterface.cpp:
884         * qt/qdbusinterface.h: Add a method to tell us if the
885         interface is valid (since we don't return a null pointer
886         anymore) (r534099)
887
888         * qt/qdbusinterface_p.h: Don't crash if metaObject is 0
889         (r534101)
890
891         * qt/qdbusinternalfilters.cpp: Decouple the introspection
892         function in two so taht we get the chance to introspect
893         without having a QDBusMessage (r534102)
894
895         * qt/qdbusbus.h:
896         * qt/qdbusconnection.cpp:
897         * qt/qdbusconnection_p.h:
898         * qt/qdbusintegrator.cpp: Keep a list of our own names to
899         avoid a round-trip to the server when attempting to introspect
900         one of our own objects. Also make sure the filter functions
901         match the empty interface as well. (r534108)
902         Don't keep the connection names. Instead, trust the unique
903         connection name (r534111)
904         Remove event loop usage (r534112)
905
906 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
907
908         * qt/qdbusintegrator.cpp: Fix assertion failure spotted by
909         Brad Hards.
910
911 2006-04-28  Robert McQueen  <robot101@debian.org>
912
913         * glib/dbus-gproxy.c: Fix properties so that they can be given in
914         any order, making it easier for people who inherit from this
915         object.
916
917 2006-04-28  Robert McQueen  <robot101@debian.org>
918
919         * glib/dbus-gvalue-utils.c: Patch from Jakub Stachowski to fix leaking
920         of memory from within pointer arrays and lists. Fixes bug #6300.
921
922 2006-04-28  Robert McQueen  <robot101@debian.org>
923
924         * glib/dbus-gvalue.c: Patch from Jakub Stachowski to fix a leak in
925         generating struct signatures. Fixes bug #6083.
926
927 2006-04-28  Robert McQueen  <robot101@debian.org>
928
929         * qt/Makefile.am: Tweak CLEANFILES from qdbusconnection.moc
930         to qdbusconnection_p.moc.
931
932 2006-04-24 John (J5) Palmieri <johnp@redhat.com>
933
934         * README, INSTALL: Doc fixes
935         Patch from Brad Hards <bradh at frogmouth.net>
936
937 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
938
939         * qt/examples/dbus.cpp: Use the new merged-interface mode for
940         the dynamic meta object. No need to guess which interface to
941         call.
942
943 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
944
945         * qt/qdbusconnection_p.h:
946         * qt/qdbusmetaobject.cpp:
947         * qt/qdbusmetaobject_p.h:
948         * qt/qdbusintegrator.cpp: Use the new merged-interface mode
949         for the dynamic meta object. No need to guess which
950         interface to call.
951         * qt/qdbusabstractinterface_p.h:
952         * qt/qdbusconnection.cpp:
953         * qt/qdbusintegrator.cpp:
954         * qt/qdbusinterface.cpp:
955         * qt/qdbusinterface.h: Make findInterface always return a non-null pointer.
956         Add a QDBusRef that looks and behaves like DCOPRef.
957
958 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
959
960         * dbus/dbus-connection.c: Interfaces are optional in method
961         calls, so don't give up if the interface parameter is NULL.
962         Patch reviewed by Havoc Pennington.
963
964 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
965
966         * qt/qdbusreply.h: Add default constructor and operator=
967           (r532625)
968         * qt/qdbustypehelper_p.h: Use a clean namespace: no foreach()
969           in public headers (r532952)
970         * qt/qdbusabstractinterface.cpp:
971         * qt/qdbusabstractinterface_p.h: Add the AutoDetect mode and
972           make it the default (r532951)
973
974 2006-04-19  John (J5) Palmieri  <johnp@redhat.com>
975
976         * dbus/dbus-connection.c: Fix asserts
977         Patch from Tim Moloney <t.moloney at verizon.net>
978
979 2006-04-19  John (J5) Palmieri  <johnp@redhat.com>
980
981         * mono/Connection.cs, mono/Message.cs: Check Target type
982         Patch from Aaron Bockover (abockover at novell.com)
983
984 2006-04-13  Thiago Macieira  <thiago.macieira@trolltech.com>
985
986         * INSTALL: fine-tune the requirements for the Qt4 binding.
987
988 2006-04-16  Daniel P. Berrange  <dan@berrange.com>
989
990         * tools/dbus-print-message.c: Added support for printing of all 
991           remaining data types. Fixed logic for indentation of compound
992           data types.
993         
994 2006-04-15  Daniel P. Berrange  <dan@berrange.com>
995
996         * INSTALL: fill out content of file providing DBus specific
997           build installations, followed by generic Auto* INSTALL file
998           content
999         
1000 2006-04-13  Thiago Macieira  <thiago.macieira@trolltech.com>
1001
1002         * qt/qdbusintegrator.cpp: Work around g++ 3.3 bug.
1003           Patch by Stefan Eilers. (r529537)
1004
1005 2006-04-13  Thiago Macieira  <thiago.macieira@trolltech.com>
1006
1007         * qt/qdbusinternalfilters.cpp: Don't show the parent's
1008           contents (r528208)
1009
1010 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
1011
1012         * qt/Makefile.am: fix the dependency for
1013           qdbusconnection_p.moc. It's included in qdbusintegrator.cpp,
1014           not in qdbusconnection.cpp.
1015           Thanks to Jakub Stachowski <stachowski@hypair.net> for
1016           spotting this.
1017
1018 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
1019
1020         * qt/examples/listnames.cpp:
1021         * qt/examples/Makefile.am: Three ways to list the names on the
1022           bus.
1023
1024 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
1025
1026         * test/qt/tst_hal.cpp: Remove the waiting, since it's not
1027           needed anymore. Requires Qt 4.1.3 to work properly. (r528148)
1028
1029 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
1030
1031         Merge from Subversion:
1032         * qt/qt-dbus.qdocconf: Update Trolltech's webpage link to
1033           something that exists (r526315)
1034         * qt/qdbusinternalfilters.cpp: Correctly detect non-scriptable
1035           slots/signals (r526316)
1036         * qt/qdbusinternalfilters.cpp: Fix the setProperty call and
1037           also return an unknown-method error if the parameters don't
1038           match for org.freedesktop.DBus.Properties. (r526842)
1039         * qt/examples/dbus.cpp: Allow passing of QVariants (r526843)
1040         * qt/qdbusintegrator.cpp: Restore the proper order of
1041           delivery: don't make method returns be delivered on priority
1042           (r528150)
1043
1044 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
1045
1046         * configure.in qt/Makefile.am: add qt/examples
1047         * qt/examples: Add QtDBus example programs:
1048           - hello: Hello, World
1049           - ping: Simple method-calling program
1050           - pong: Simple object-exporting program (not using adaptors)
1051           - complexping: Interactive method-calling program 
1052                 (also gets and sets properties).
1053           - complexpong: Sample program exporting methods, signals and
1054                 properties, using adaptors.
1055           - dbus: Simple implementation of a generic method-calling
1056                 program, similar to 'dbus-send', but with semantics
1057                 similar to 'dcop'.
1058           - chat: Simplistic chat program, implemented using signals
1059                 and the system bus. Looks like IRC.
1060
1061 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
1062
1063         * configure.in: Detect QtGui (necessary for one of the
1064           example programs). Note: this increases the minimum required
1065           version of Qt to 4.1.3.
1066
1067 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
1068
1069         * test/qt/*: Sync with KDE Subversion revision 523647.
1070         Update the testcases to the new API. Remove testcases for
1071         classes that are no longer public or have been removed.
1072
1073 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
1074
1075         * qt/*: 
1076         * dbus/qdbus.h: Sync with KDE Subversion revision
1077         523647. Hopefully, this will be the last of the
1078         source-incompatible changes. Documentation has been improved;
1079         support for QList<basic-types> has been added; QDBusObject is
1080         gone; QDBus(Abstract)Interface is now a QObject with
1081         auto-generated meta-object; QDBusIntrospection is marked
1082         private, since QMetaObject can be used now; lots of bugfixes.
1083
1084 2006-03-16  John (J5) Palmieri  <johnp@redhat.com>
1085
1086         Patch from Milosz Derezynski <internalerror at gmail.com>
1087         
1088         * configure.in:
1089         Output the service directory in the configure summary
1090
1091         * dbus-1.pc.in:
1092         Add session_bus_services_dir
1093
1094 2006-03-10  Ross Burton  <ross@openedhand.com>
1095
1096         * tools/dbus-print-message.c:
1097         Add support for object paths and signatures.
1098
1099 2006-03-06  Sjoerd Simons <sjoerd@luon.net>
1100
1101         * bus/bus.c: (bus_context_reload_config): Flush the user database cache on
1102         config reload.
1103         * bus/dbus-daemon.1.in: Also note that SIGHUP flushes the user/group
1104         information caches
1105         * dbus/dbus-hash.c: (_dbus_hash_table_remove_all): 
1106         * dbus/dbus-hash.h: Add function to remove all entries from a hash table
1107         * dbus/dbus-userdb.c: (_dbus_user_database_flush):
1108         * dbus/dbus-userdb.h: Add function to flush all user/group information
1109         caches.
1110
1111 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
1112
1113         * qt/dbusidl2cpp.cpp:
1114         * qt/Makefile.am: add the dbusidl2cpp tool, the replacement
1115         for dcopidl2cpp, found in the KDE installations (or the more
1116         modern kalyptus): generate Qt4 C++ code for the input XML
1117         introspection. Currently no IDL parsing.
1118
1119 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
1120
1121         * test/qt/*: Update the self-tests.
1122
1123 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
1124
1125         * qt/*: 
1126         * dbus/qdbus.h: Sync with KDE Subversion revision 516237. This
1127         represents the first feature-complete version of the Qt4
1128         bindings since I took ove maintainership.
1129
1130 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
1131
1132         * qt/Doxyfile: Adding a Doxyfile for the Qt4 bindings
1133         dir. This is C++, so we can't use the DBus ones.
1134
1135 2006-03-02  John (J5) Palmieri  <johnp@redhat.com>
1136
1137         * python/dbus_bindings.pyx: Remove refrence to sys/cdefs.h
1138         (Patch from Artem Kachitchkine <Artem.Kachitchkin at Sun.COM>)
1139
1140 2006-03-02  John (J5) Palmieri  <johnp@redhat.com>
1141
1142         * dbus/dbus-connection.c: 
1143         (_dbus_connection_block_pending_call):
1144         Check to see if our data has already been read off the connection
1145         by another blocking pending call before we block in poll.
1146         (check_for_reply_and_update_dispatch_unlocked):
1147         Code taken from _dbus_connection_block_pending_call - checks for
1148         an already read reply and updates the dispatch if there is one.
1149
1150         * test/name-test/test-pending-call-dispatch.c:
1151         New test for making sure we don't get stuck polling a 
1152         dbus connection which has no data on the socket when
1153         blocking out of order on two or more pending calls.
1154
1155 2006-02-28  Thiago Macieira <thiago.macieira@trolltech.com>
1156
1157         * qt/Makefile.am: Patch by Sjoerd Simons. More .moc issues:
1158         make/automake don't detect that we're talking about the same
1159         .lo file if I specify the full path to the source files.
1160
1161 2006-02-26  Havoc Pennington  <hp@redhat.com>
1162
1163         * bus/dbus-daemon.1.in: improve the language in a couple spots I noticed
1164
1165         * dbus/dbus-bus.c (internal_bus_get): in the error message if the
1166         session bus variable is unset, suggest "man dbus-launch" and "man
1167         dbus-daemon" to figure out how to fix the problem
1168
1169 2006-02-25  Havoc Pennington  <hp@redhat.com>
1170
1171         * glib/dbus-glib-tool.c (usage): fix up the usage message, someone
1172         should make this thing use the new glib options parser
1173
1174 2006-02-25  Thiago Macieira <thiago.macieira@trolltech.com>
1175
1176         * qt/Makefile.am: Patch by Sjoerd Simons. Fix the path to the
1177         .lo files taking moc sources.
1178
1179 2006-02-25  Havoc Pennington  <hp@redhat.com>
1180
1181         * dbus/dbus.h, dbus/Makefile.am: add dbus-signature.h to dbus.h
1182         and install it as a public header
1183
1184 2006-02-24  John (J5) Palmieri  <johnp@redhat.com>
1185
1186         * Released 0.61
1187
1188 2006-02-24  John (J5) Palmieri  <johnp@redhat.com>
1189         
1190         * proxies.py: Fix the callchain
1191
1192 2006-02-24  John (J5) Palmieri <johnp@redhat.com>
1193         
1194         * patch from Sjoerd Simons <sjoerd at debian.org>:      
1195
1196         * dbus/dbus-sysdeps-util.c (_dbus_group_info_free): Moved to 
1197         dbus/dbus-sysdeps.c
1198
1199         * dbus/dbus-userdb.c (_dbus_group_info_free_allocated): Don't
1200         call _dbus_group_info_free_allocated which causes infinite loop,
1201         correctly call _dbus_group_info_free
1202
1203 2006-02-20  Thiago Macieira <thiago.macieira@trolltech.com>
1204
1205         * qt/qdbusinterface_p.h:
1206         * qt/qdbusinterface.cpp: Use the standard
1207         org.freedesktop.DBus.Method.NoReply annotation for the "async"
1208         calls instead of creating one for us.
1209
1210         * qt/qdbusconnection_p.h:
1211         * qt/qdbusintegrator.cpp: Remove debugging code.
1212
1213         * qt/qdbusintegrator.cpp:
1214         * qt/qdbusmessage.cpp:
1215         * qt/qdbusmessage_p.h:
1216         * qt/qdbusmessage.h: Change the behaviour of automatic
1217         reply-sending: now a reply is always sent, unless the caller
1218         didn't request one or if the user slot has already sent one.
1219
1220 2006-02-16  Robert McQueen  <robot101@debian.org>
1221
1222         * configure.in: Patch from Debian packages by Sjoerd Simons
1223         <sjoerd@debian.org> to add --with-qt-moc and --with-qt3-moc
1224         arguments so it's possible to build both bindings in the
1225         same tree.
1226
1227         * qt/Makefile.am: Fix truncated value so that make dist works.
1228
1229 2006-02-16  Robert McQueen  <robot101@debian.org>
1230
1231         * acinclude.m4, configure.in: Patch from Brad Hards
1232         <bradh@frogmouth.net> to avoid warnings from autoconf 1.9 by
1233         improving quoting, re-ordering a few checks, and a few other
1234         aesthetic tidy-ups.
1235
1236 2006-02-16  Robert McQueen  <robot101@debian.org>
1237
1238         * dbus/dbus-message.c (dbus_message_iter_get_fixed_array):
1239         Patch from Rob Taylor <rob.taylor@collabora.co.uk> to correct a bogus
1240         assertion that the next element to read from the iter is fixed in
1241         size. This is not the case when you are at the end of the iter,
1242         because the next element type is INVALID.
1243
1244         * dbus/dbus-string.c (_dbus_string_init_const_len): Correct a
1245         a bogus assert which means that you may not initialise a 0-length
1246         string unless you provide a non-NULL pointer. This prevented
1247         you from marshalling messages containing zero-length arrays in
1248         some cases.
1249
1250         * glib/dbus-gvalue.c (demarshal_collection_array): Another patch
1251         from Rob to correct bogus asserts when trying to demarshal an
1252         array and get_fixed_array got you 0 elements. Append nothing to
1253         the GArray in this case.
1254
1255         * test/glib/test-dbus-glib.c: Add a test case for round-tripping
1256         an empty array via the glib bindings. Without all of the above
1257         patches, this new test fails.
1258
1259 2006-02-16  Robert McQueen  <robot101@debian.org>
1260
1261         * glib/dbus-gmain.c: Make the previous commit compile.
1262
1263         * python/_dbus.py, python/matchrules.py: Patch from Ole Andre
1264         Ravnaas <ole.andre.ravnaas@collabora.co.uk> to allow you to
1265         specify sender_keyword="foo", path_keyword="bar" when adding
1266         a signal listener, so that you can bind to signals generically
1267         but still do something useful in your callback.
1268
1269         * python/dbus_bindings.pyx: Demarshal the byte type as unsigned
1270         chars so that they're not cast to chars and made negative. Thanks
1271         to Jakub Stachowski for reporting this and testing the fix.
1272
1273 2006-02-15  John (J5) Palmieri  <johnp@redhat.com>
1274
1275         * dbus/dbus-glib.h:
1276         * glib/dbus-gmain.h:
1277         (dbus_g_connection_open): new method for openning
1278         a connection to an arbitrary address in the glib bindings
1279
1280         * ChangeLog: checkin last entry which doesn't seem to be commited
1281
1282 2006-02-13  John (J5) Palmieri  <johnp@redhat.com>
1283
1284         * tools/dbus-launch.c: Fixed sh syntax output
1285
1286 2006-02-13  Robert McQueen  <robot101@debian.org>
1287
1288         * glib/dbus-binding-tool-glib.c, glib/dbus-gmain.c,
1289         glib/dbus-gsignature.c, glib/dbus-gtype-specialized.c,
1290         glib/dbus-gtype-specialized.h, glib/dbus-gvalue-utils.c,
1291         glib/dbus-gvalue-utils.h, glib/dbus-gvalue.c:
1292         Patch from Rob Taylor <rob.taylor@collabora.co.uk> to add a big
1293         missing piece of the glib bindings jigsaw puzzle. This modifies
1294         the existing specialised types to have N type parameters (rather
1295         than the current 1 or 2 for arrays and dictionaries respectively).
1296         You can then use this to get a glib type to represent any arbitrary
1297         D-Bus struct type using dbus_g_type_get_struct. The only
1298         implementation of these types is with GValueArrays as before,
1299         but it's now possible to store these in arrays, emit them in
1300         signals, etc.
1301
1302 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
1303
1304         * dbus/dbus-signature.c (dbus_signature_iter_recurse): Correctly
1305         deal with nested arrays (Bug #5823) Patch by Thiago Macieira 
1306         <thiago.macieira at trolltech.com>
1307
1308 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
1309
1310         * mono/doc/Makefile.am: Fix parallel make problem with mono-doc
1311         (Bug #4213) Patch from Doug Goldstein <cardoe at gentoo.org>
1312
1313 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
1314
1315         * bus/connection.c (bus_connections_expect_reply): Make
1316         pending reply limit not common to all connections (Bug #5416)
1317         Patch from Kimmo Hämäläinen <kimmo.hamalainen at nokia.com>
1318
1319 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
1320
1321         * tools/dbus-launch.c: Fixed csh syntax output (Bug #5720)
1322
1323 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
1324
1325         * gcj/Makefile.am: point to correct jar command (Bug #4529)
1326         patch from Doug Goldstein <cardoe at gentoo.org>
1327
1328 2006-02-09  Joe Shaw  <joeshaw@novell.com>
1329
1330         * mono/Arguments.cs: Fix a magic number in the mono bindings
1331         that doesn't work on 64 bit arches.  Patch from Peter Johanson.
1332
1333 2006-01-27  Robert McQueen  <robot101@debian.org>
1334
1335         * glib/dbus-binding-tool-glib.[ch]: Patch based on Ricardo Kekki's
1336         patch to use an annotation org.freedesktop.DBus.GLib.ClientCSymbol
1337         when generating the client-side methods, instead of overloading
1338         CSymbol which broke everything horribly. My apologies.
1339
1340 2006-01-27  Robert McQueen  <robot101@debian.org>
1341
1342         * glib/dbus-gtype-specialized.[ch], glib/dbus-gvalue-utils.c: Patch
1343         by me and Rob Taylor to add a simple_free function to D-Bus map
1344         and collection types, which allows those types which can be freed
1345         with a GDestroyNotify (such as GHashTables and GArrays, but not
1346         GPtrArrays) to be stored as the values in hashtables.
1347
1348         * test/glib/test-dbus-glib.c, test/glib/test-service-glib.{c,xml}:
1349         Patch by Rob Taylor to add nested dicts to the glib tests to check
1350         the above code works, and appears not to leak when called repeatedly.
1351
1352 2006-01-27  Robert McQueen  <robot101@debian.org>
1353
1354         * glib/dbus-gvalue.c (demarshal_valuearray): Patch from Rob Taylor
1355         to free a D-Bus allocated string with dbus_free () instead of
1356         g_free ().
1357
1358 2006-01-27  Iain Holmes  <iain@openedhand.com>
1359
1360         * glib/dbus-gproxy.c (dbus_g_proxy_dispose): Protect the dispose
1361         method from being called multiple times.
1362
1363 2006-01-19  Robert McQueen  <robot101@debian.org>
1364
1365         * glib/dbus-binding-tool-glib.c: Patch from Rob Taylor
1366         <rob.taylor@collabora.co.uk> to add support for generating bindings
1367         to arrays that are represented as GPtrArrays rather than GArrays (ie
1368         size-variable things, such as strings, objects, structs, etc).
1369
1370 2006-01-05  Robert McQueen  <robot101@debian.org>
1371
1372         * dbus/dbus-glib.h, glib/dbus-gproxy.c: Patch from Ricardo Kekki
1373         <ricardo.kekki@movial.fi> to make it possible to inherit from
1374         DBusGProxy, by splitting the DBusGProxy struct into a public part and
1375         a private part, and moving the setting of the DBusGProxyManager into a
1376         connection property, allowing proper GObject construction.
1377
1378 2006-01-05  Robert McQueen  <robot101@debian.org>
1379
1380         * glib/dbus-binding-tool-glib.c: Patch from Ricardo Kekki
1381         <ricardo.kekki@movial.fi> to make dbus-binding-tool heed C symbol name
1382         annotations when generating glib client bindings.
1383
1384 2005-12-19 John (J5) Palmieri  <johnp@redhat.com>
1385
1386         * dbus/dbus-shared.h: Call it shared constants instead of shared macros
1387
1388         * dbus/dbus-protocol.h: add DOxygen markup to quiet warnings
1389
1390 2005-12-19 John (J5) Palmieri  <johnp@redhat.com>
1391
1392         * dbus/dbus-shared.h: add DOxygen markup to quiet warnings
1393
1394 2005-12-19 John (J5) Palmieri  <johnp@redhat.com> 
1395
1396         * dbus/dbus-macros.h: correct DOxygen end of section (s/}@/@})
1397
1398 2005-12-19  Ross Burton  <ross@openedhand.com>
1399
1400         * doc/dbus-tutorial.xml:
1401         Document the Glib client-side bindings, and list all possible annotations.
1402
1403 2005-12-19  John (J5) Palmieri  <johnp@redhat.com>
1404
1405         * dbus/bus.c (dbus_bus_release_name): Add documentation
1406
1407 2005-12-06  Robert McQueen  <robot101@debian.org>
1408
1409         * python/service.py: s/sucessful/successful/ so we're allocating to
1410         and reading from the same variable. Oops.
1411
1412 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
1413
1414         * Released 0.60
1415
1416 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
1417
1418         * test/qt/Makefile.am: build from srcdir
1419
1420         * qt/qtconnection.cpp (requestName): Changed PROHIBIT_REPLACE to ALLOW_REPLACE
1421         Note - this code is wrong and needs to be fixed by the Qt binding
1422         developers.  The flags should be treated as bitfields and not enums.
1423
1424         * qt/qtconnection.h: Change ProhibitReplace to AllowReplace
1425
1426 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
1427
1428         * dbus/dbus-list.c (_dbus_list_insert_after_link, _dbus_list_insert_after, 
1429           link_after): remove #ifdef DBUS_BUILD_TESTS since we use these methods 
1430           in production code
1431
1432 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
1433
1434         * dbus/dbus-connection.c (dbus_connection_read_write): Add new
1435         method for getting messages off the bus in the absence of a
1436         mainloop.  This method is much like 
1437         dbus_connection_read_write_dispatch except it does not dispatch
1438         the messages to a registered filter function.  Instead it
1439         allows a developer to process messages by directly popping
1440         them off the bus.
1441
1442 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
1443
1444         * bus/desktop-file.c (parse_key_value): Ignore locales allowing 
1445         the parser to continue instead of returning error
1446         (bus_desktop_file_load): Do not free parser data when
1447         parse_section_start or parse_key_value fails because it was 
1448         already freed by parser_free (patch from Carlos Garcia Campos  
1449         <carlosgc at gnome.org>)
1450
1451 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
1452
1453         * dbus/dbus-auth.c, dbus/dbus-connection.c, dbus/dbus-keyring.c,
1454         dbus/dbus-server-debug-pipe.c, glib/dbus-binding-tool-glib.c
1455         glib/dbus-glib-tool.c, glib/dbus-gparser.c, glib/dbus-gproxy.c
1456         test/test-segfault.c, test/test-utils.c,
1457         test/glib/test-dbus-glib.c, tools/dbus-cleanup-sockets.c
1458         tools/dbus-launch.c, tools/dbus-tree-view.c, tools/dbus-viewer.c:
1459         Various cleanup of dead code and compiler warnings (patch from
1460         Kjartan Maraas <kmaraas at gnome.org>) 
1461
1462 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
1463
1464         * glib/dbus-gmain.c (connection_setup_add_watch): plugged a leak
1465         (patch from Carlos Garnacho Parro <carlosg at gnome.org>
1466
1467 2005-11-27  Robert McQueen  <robot101@debian.org>
1468
1469         * python/dbus_bindings.pyx: Repair my previous commit which reverted
1470         part of the preceding one. Oops. Merge patch by Johan Hedberg
1471         <johan.hedberg@nokia.com> to fix marshalling of 16-bit integer values
1472         on big-endian platforms.
1473
1474         * test/python/test-client.py: Add some 16-bit integers to the test
1475         values.
1476
1477 2005-11-27  Carlos Garcia Campos  <carlosgc@gnome.org>
1478
1479         * glib/dbus-gobject.c: Append a GValue instead of a basic type in
1480         method return message for property getters
1481
1482 2005-11-27  Robert McQueen  <robot101@debian.org>
1483
1484         * python/dbus_bindings.pyx: Fix a bug where doing a strict append
1485         with type v of an instance of dbus.Variant(foo, type='x') caused
1486         it to be boxed twice before sending over the bus.
1487
1488         * python/dbus_bindings.pyx, python/service.py,
1489         test/python/test-client.py: Update the constants for the new
1490         request_name flags, and update comments/test cases now that queueing
1491         is the default action.
1492
1493 2005-11-22  John (J5) Palmieri  <johnp@redhat.com>
1494
1495         * configure.in:
1496         - Change version to 0.60 for impending release
1497         - upped the sonames because of ABI and API breakage
1498
1499 2005-11-22  John (J5) Palmieri  <johnp@redhat.com>
1500
1501         * configure.in: Add test/name-test/Makefile to the generated
1502         Makefile list
1503
1504         * dbus/dbus-shared.h (#define DBUS_NAME_FLAG_ALLOW_REPLACEMENT):
1505         New flag which replaces DBUS_NAME_FLAG_PROHIBIT_REPLACEMENT
1506         (#define DBUS_NAME_FLAG_DO_NOT_QUEUE): New flag for specifying
1507         not to queue an ower if it can't be the primary owner
1508
1509         * bus/bus.h: Add new internal BusOwner struct
1510
1511         * bus/driver.c (bus_driver_handle_hello): Send flags (0 for default)
1512         to bus_registry_ensure and don't set the prohibit_replacement flag
1513         since they are now set per BusOwner and not per name.
1514         (bus_driver_handle_list_queued_owners): bus method (ListQueuedOwners) 
1515         that returns the list of connections in a name's connection queue
1516         
1517         * bus/services.c (struct BusService): remove prohibit_replacement field
1518         (struct BusOwner): new struct for keeping track of queued connections
1519         and their associated flags for the queue
1520         (struct BusRegistry): add a BusOwner memory pool
1521         (bus_registry_new): initialize the BusOwner memory pool
1522         (bus_registry_unref): free the BusOwner memory pool
1523         (_bus_service_find_owner_link): new internal method for
1524         searching the queue for a specific connection
1525         (bus_owner_set_flags): new method for adding setting the flags on a
1526         bus owner
1527         (bus_owner_new): new method that creates a BusOwner object from the
1528         pool and sets its flags
1529         (bus_owner_ref, bus_owner_unref): ref counting for BusOwner objects
1530         (bus_registry_ensure): Add the flags parameter
1531         (bus_registry_acquire_service): Switch from using raw connections to
1532         using the BusOwner struct
1533         Add new state machine for dealing with the new set of flags
1534         (bus_registry_set_service_context_table, struct OwnershipCancelData, 
1535         cancel_ownership, free_ownership_cancel_data, 
1536         add_cancel_ownership_to_transaction, struct OwnershipRestoreData, 
1537         restore_ownership, free_ownership_restore_data, 
1538         add_restore_ownership_to_transaction): Switch to using BusOwner 
1539         instead of raw connections
1540         (bus_service_add_owner): Add flags parameter
1541         Switch to using BusOwner instead of raw connections
1542         Add state machine for dealing with the new set of flags
1543         (bus_service_swap_owner): Swaps the first and second owners in the
1544         queue.  Used to make sure proper signals are sent when a service looses 
1545         or gains primary ownership.  We never insert an owner at the top of the
1546         queue.  Instead we insert it in the second position and then swap.
1547         (bus_service_remove_owner): Remove the owner from the queue sending
1548         out the NameLost and NameOwnerChanged signals if the we were the 
1549         primary owner
1550         (bus_service_get_primary_owners_connection): New method that extracts
1551         the connection from the primary owner
1552         (bus_service_get_primary_owner): Returns the BusOwner instead of the 
1553         connection
1554         (bus_service_get_allow_replacement): Changed from the old 
1555         bus_service_get_prohibit_replacement method.  Checks the flags of the 
1556         primary owner and returns if it can be replaced or not
1557         (bus_service_set_prohibit_replacement): removed
1558         (bus_service_has_owner): returns TRUE if and owner with
1559         the specified connection exists in the queue
1560         
1561         * dbus/dbus-bus.c (dbus_bus_connection_get_unique_name): New helper
1562         method that only compiles if tests are enabled.  Allows us to get the 
1563         unique name of a connection so we can check it against the queue when
1564         doing regression tests
1565
1566         * bus/activation.c (bus_activation_send_pending_auto_activate),
1567         bus/dispatch.c (bus_dispatch),  
1568         bus/driver.c (bus_driver_handle_get_service_owner, 
1569         bus_driver_handle_get_connection_unix_user, 
1570         bus_driver_handle_get_connection_unix_process_id,
1571         bus_driver_handle_get_connection_selinux_security_context),
1572         bus/signals.c (connection_is_primary_owner): 
1573         use bus_service_get_primary_owners_connection instead of
1574         bus_service_get_primary_owner
1575
1576         * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket, 
1577         _dbus_listen_unix_socket): Calculate the length of the socket
1578         path and use that instead of using a fixed length which was
1579         causing socket names to contain many trailing Nul bytes.
1580
1581         * dbus/dbus-glib-lowlevel.h, glib/dbus-gobject.c
1582         (dbus_g_method_get_sender): New method for extracting the sender 
1583         from a DBusGMethodInvocation
1584         (dbus_g_method_return_get_reply): changed name to 
1585         dbus_g_method_get_reply
1586         (dbus_g_method_return_send_reply): changed name to
1587         dbus_g_method_send reply
1588
1589         * doc/dbus-specification.xml: New docs that describe how the new
1590         queueing system works and talks about the changes to the how
1591         we specify socket names
1592
1593         * glib/examples/example-service.c, 
1594         glib/examples/example-signal-emitter.c,
1595         glib/examples/statemachine/statemachine-server.c:
1596         Changed the RequestName flags to the new system
1597
1598         * test/name-test/ (test-names.c, run-test.sh, Makefile.am): New
1599         regression test suite for testing various states of the new
1600         queueing system
1601         
1602 2005-11-15  Robert McQueen  <robot101@debian.org>
1603
1604         * dbus/dbus-glib-lowlevel.h, glib/dbus-gobject.c: Patch from Rob
1605         Taylor to add two methods, dbus_g_method_return_get_reply and
1606         dbus_g_method_return_send_reply, to allow you to get the reply
1607         message from a DBusGMethodInvocation, append arbitrary stuff to it,
1608         and send it. The GLib bindings can't marshal a return value of
1609         something like a(s) if the array is empty - ultimately they should be
1610         made to heed the signature of the out arguments as the Python bindings
1611         now can, but this is a workable interim solution which might have
1612         other applications.
1613
1614 2005-11-15  Robert McQueen  <robot101@debian.org>
1615
1616         * bus/driver.c, bus/services.c, bus/services.h: Add a ReleaseName
1617         method to org.freedesktop.DBus to release a bus name or give up
1618         waiting in the queue for it.
1619
1620         * dbus/dbus-bus.c, dbus/dbus-bus.h, dbus/dbus-shared.h: Add a
1621         dbus_bus_release_name method to send the ReleaseName method calls.
1622         Add constants for the return values to dbus/dbus-shared.h.
1623
1624         * doc/dbus-specification.xml: Document the new ReleaseName method
1625         in the specification.
1626
1627         * python/dbus_bindings.pyx: Add a low-level python binding for the
1628         release name method.
1629
1630         * python/exceptions.py, python/service.py: Make freeing BusName
1631         objects release the name. Add a NameExistsException, and fix a
1632         bug with creating UnknownMethodException.
1633
1634         * test/python/test-client.py: Add tests for freeing BusName
1635         objects causing names to be released.
1636
1637 2005-11-14  Robert McQueen  <robot101@debian.org>
1638
1639         * python/service.py: Include the traceback in the error reply when we
1640         send an exception over the bus. _BEST_ _PATCH_ _EVER_
1641
1642 2005-11-14  David Zeuthen  <davidz@redhat.com>
1643
1644         Patch from Timo Hoenig <thoenig@suse.de>.
1645
1646         * bus/bus.c: I've recently investigated why the automatic reload
1647         of configuration files does not work as expected.
1648
1649         Currently, reloading configuration files does only work when
1650         running dbus-daemon with --nodaemon.  If we are running as daemon
1651         we're hitting a dnotify bug once we fork the process.
1652
1653         We're initializing the dnotify fds before calling fork().  Once
1654         the child process forked it does still have the fds (and they
1655         still show up in /proc/`pidof dbus-daemon`/fd/) but we're not
1656         getting SIGIO as changes are made to the configuration files.
1657
1658         The attached patch moves the initialization of the dnotify fds to
1659         process_config_postinit().  This is safe for all current code
1660         paths and solves the dnotify disfunction.  If we're running
1661         dbus-daemon as daemon the fds for dnotify are now being
1662         initialized after fork() for the child process.
1663
1664         * configure.in: The current configure.in check for dnotify probes
1665         'x$target_os' for being 'xlinux-gnu'.  I've changed the check to
1666         match for 'xlinux', too. Additionally I have adapted the configure
1667         option's style to match with the others.
1668
1669 2005-11-14  Robert McQueen  <robot101@debian.org>
1670
1671         * python/decorators.py, python/service.py: Add a new argument to the
1672         dbus.service.method decorator called sender_keyword, which if set,
1673         specifies the name of an argument which will be provided the bus
1674         name of the method caller.
1675
1676         * test/python/test-client.py, test/python/test-service.py: Add a
1677         method and test to check the sender_keyword functionality.
1678
1679 2005-11-07  John (J5) Palmieri  <johnp@redhat.com>
1680
1681         * bus/driver.c (bus_driver_handle_reload_config): Make sure we send an 
1682         empty reply so blocking calls don't block forever (Patch from Sjoerd 
1683         Simons <sjoerd at luon.net>)
1684
1685         * AUTHORS: Add Robert McQueen for his work on the Python
1686         Bindings and other parts of D-Bus
1687
1688 2005-11-07  Robert McQueen  <robot101@debian.org>
1689
1690         * python/decorators.py: Change emit_signal function to use the
1691         signature annotation of the signal when marhsalling the arguments from
1692         the service. Fix a bug where the code checking signature length
1693         against argument length referenced the wrong variable.
1694
1695         * python/introspect_parser.py: Avoid adding the type signature of
1696         signal arguments to any methods which occur after them in the
1697         introspection data (!) by making the parser a little more careful
1698         about its current state.
1699
1700         * python/service.py: Remove debug prints from last commit (again :D).
1701
1702         * test/python/test-client.py, test/python/test-service.py: Add test
1703         signals with signature decorators to test the strict marshalling code
1704         gives errors at the right time. Could do with checking the signals
1705         actually get emitted too, given that the test does nothing with
1706         signals at the moment...
1707
1708 2005-11-07  Robert McQueen  <robot101@debian.org>
1709
1710         * python/_dbus.py: Add WeakReferenceDictionary cache of dbus.Bus
1711         instances to stop madness of creating new instances representing
1712         the same bus connection all the time, rendering any tracking of
1713         match rules and bus names quite meaningless. Caught a bug where
1714         the private argument to SessionBus() and friends was being passed
1715         in as use_default_mainloop by mistake. Still some problems with
1716         multiple dbus_binding.Connection instances representing the same
1717         low-level connection (eg when you use both SessionBus() and
1718         StarterBus() in same process), but it's a lot better now than it
1719         was.
1720
1721         * python/dbus_bindings.pyx: Add constants with the return values
1722         for bus_request_name().
1723
1724         * python/service.py: Store bus name instances in a per-dbus.Bus cache
1725         and retrieve the same instances for the same name, so deletion can be
1726         done with refcounting. Also now throws some kind of error if you
1727         don't actually get the name you requested, unlike previously...
1728
1729         * test/python/test-client.py: Add tests for instance caching of buses
1730         and bus name objects.
1731
1732 2005-11-04  Robert McQueen  <robot101@debian.org>
1733
1734         * python/dbus_bindings.pyx, test/python/test-client.py: Fix
1735         marshalling of boolean values. Add some booleans to the values in
1736         the test client.
1737
1738         * python/decorators.py, python/service.py: Add an 'async_callbacks'
1739         argument to the dbus.service.method decorator, which allows you to
1740         name arguments to take two callback functions for replying with
1741         return values or an exception.
1742
1743         * test/python/test-client.py, test/python/test-service.py: Add test
1744         case using asynchronous method reply functions, both return values and
1745         errors, and from within both the function itself and from a mainloop
1746         callback.
1747
1748         * python/decorators.py, python/service.py: Perform checking that the
1749         number of method/signal arguments matches the number of types in the
1750         signature at class loading time, not when you first introspect the
1751         class.
1752
1753         * python/service.py: Remove debug print left by the last commit.
1754
1755 2005-11-03  Robert McQueen  <robot101@debian.org>
1756
1757         * python/service.py: Heavy refactoring of method invocation, with
1758         hopefully no effect on functionality. Nuked _dispatch_dbus_method_call
1759         in favour of a new _message_cb that uses seperate functions for
1760         looking up the method to call, marshalling the return values, and
1761         sending exceptions as errors, and is easier to follow as a
1762         consequence.  Fixes some corner cases about returning things that
1763         don't match your declared out_signature, allows exceptions to define
1764         _dbus_error_name and have it be sent over the bus as the error name,
1765         and paves the way for cool stuff like heeding the message no reply
1766         flag, asynchronous method implementations, informing the method of the
1767         sender, and including backtraces in the error messages.
1768
1769         * test/python/test-client.py: Catch and print exceptions thrown in the
1770         async callback tests, rather than passing them to the low-level
1771         bindings to be ignored in a noisy and frustrating manner.
1772
1773 2005-11-03  Robert McQueen  <robot101@debian.org>
1774
1775         * python/_dbus.py, python/proxies.py, python/service.py: Add __repr__
1776         functions to dbus.Bus, dbus.service.BusName and dbus.service.Object,
1777         tweak others to be consistent.
1778
1779         * test/python/test-client.py: Tweak output of testInheritance.
1780
1781 2005-10-29  Robert McQueen  <robot101@debian.org>
1782
1783         * python/service.py: Major changes to allow multiple inheritance
1784         from classes that define D-Bus interfaces:
1785         
1786          1. Create a new Interface class which is the parent class of
1787             Object, and make the ObjectType metaclass into InterfaceType.
1788         
1789          2. Patch written with Rob Taylor to replace use of method_vtable
1790             with code that walks the class's __MRO__ (method resolution order)
1791             to behave like Python does when invoking methods and allow
1792             overriding as you'd expect. Code is quite tricky because
1793             we have to find two methods, the one to invoke which has the
1794             right name and isn't decorated with the /wrong/ interface,
1795             and the one to pick up the signatures from which is decorated
1796             with the right interface.
1797         
1798             The same caveats apply as to normal multiple inheritance -
1799             this has undefined behaviour if you try and inherit from two
1800             classes that define a method with the same name but are
1801             decorated with different interfaces. You should decorate
1802             your overriding method with the interface you want.
1803         
1804          3. Replace grungy introspection XML generation code in the metaclass
1805             with dictionaries that cope correctly with multiple inheritance
1806             and the overriding of methods. This also uses the signature
1807             decorations to provide correct introspection data, including
1808             the debut appearance of the types of your return values. :D
1809
1810         * test/python/test-client.py, test/python/test-service.py: Add a test
1811         case to try invoking an method that overrides one inherited from a
1812         D-Bus interface class.
1813
1814 2005-10-29  Robert McQueen  <robot101@debian.org>
1815
1816         * python/dbus_bindings.pyx: Tweak 'raise AssertionError' to assert().
1817         Add checking for the end of struct character when marshalling a
1818         struct in MessageIter.append_strict.
1819
1820         * python/examples/example-service.py,
1821         python/examples/gconf-proxy-service.py,
1822         python/examples/gconf-proxy-service2.py: Update to use gobject
1823         mainloop directly rather than appearing to depend on gtk.
1824
1825         * python/test/test-client.py, python/test/test-server.py: Remove
1826         obsolete and broken test scripts for old bindings. We have up to date
1827         and working tests in test/python/.
1828
1829 2005-10-29  Robert McQueen  <robot101@debian.org>
1830
1831         * python/decorators.py: Add optional arguments to the method and
1832         signal decorators to allow you to specify the signature of arguments
1833         and return values. Preserve the doc strings of signal functions in the
1834         decorated version, for pydoc and friends.
1835
1836         * python/dbus_bindings.pyx, python/proxies.py: Replace the
1837         parse_signature_block function with an iterable dbus.Signature()
1838         type. Fix a bug in MessageIter.append_strict where you could append
1839         anything by claiming it was a string.
1840
1841         * python/service.py: Use the out_signature decoration on methods to
1842         marshal return values, meaning you no longer require dbus.Array()
1843         or dbus.Dictionary() to indicate the type when returning empty
1844         arrays or dictionaries. Fix a bug where exceptions which are defined
1845         in __main__ are not turned into error replies.
1846
1847         * test/python/test-client.py, test/python/test-service.py: Add test
1848         for correct marshalling of return values according to out_signature.
1849         Fix a bug in the async call test where the error_handler is missing a
1850         self argument.
1851
1852 2005-10-29  Robert McQueen  <robot101@debian.org>
1853
1854         * glib/Makefile.am, glib/examples/Makefile.am,
1855         glib/examples/statemachine/Makefile.am: Merge patch from Ubuntu by
1856         Daniel Stone to replace explicit calls to libtool with $(LIBTOOL).
1857
1858         * test/python/.cvsignore: Add run-with-tmp-session-bus.conf.
1859
1860         * tools/dbus-monitor.1, tools/dbus-monitor.c: Merge dbus-monitor patch
1861         from Ubuntu by Daniel Silverstone to allow specifying match rules on
1862         the command line.
1863
1864 2005-10-27  Ross Burton  <ross@openedhand.com>
1865
1866         * dbus/dbus-marshal-header.c:
1867         Remove dead code.
1868
1869         * glib/dbus-gobject.c:
1870         Stop compiler warning.
1871
1872 2005-10-25  Ross Burton  <ross@openedhand.com>
1873
1874         * dbus/dbus-auth.c:
1875         * dbus/dbus-server-unix.c:
1876         * dbus/dbus-transport-unix.c:
1877         * glib/dbus-gmain.c:
1878         * glib/dbus-gobject.c:
1879         Add some const keywords.
1880
1881 2005-10-25  Ross Burton  <ross@openedhand.com>
1882
1883         * doc/dbus-specification.xml:
1884         Document the NoReply annotation.
1885
1886         * glib/dbus-binding-tool-glib.h:
1887         * glib/dbus-binding-tool-glib.c:
1888         Respect the NoReply annotation.
1889
1890 2005-10-24  Robert McQueen <robot101@debian.org>
1891
1892         * python/dbus_bindings.pyx (String, MessageIter): make D-Bus strings
1893         derive from unicode instead of str, and encode/decode UTF-8 when
1894         marshalling/unmarshalling bus messages
1895
1896         * python/introspect_parser.py: encode introspection data as UTF-8
1897         before passing the buffer into libxml2
1898
1899         * test/python/test-client.py: add unicode test strings
1900
1901         * test/data/valid-service-files/.cvsignore, test/python/.cvsignore:
1902         ignore generated python test files
1903
1904 2005-10-17  John (J5) Palmieri  <johnp@redhat.com>
1905
1906         * glib/dbus-gvalue-utils.c (hash_free_from_gtype): handle gdouble
1907         and G_TYPE_VALUE_ARRAY (DBUS_TYPE_STRUCT)
1908         (gvalue_from_hash_value, hash_value_from_gvalue): handle gdouble
1909
1910         * glib/dbus-gvalue.c (dbus_gvalue_to_signature): add missing
1911         DBUS_STRUCT_BEGIN_CHAR and DBUS_STRUCT_END_CHAR charaters
1912         when constructing struct signatures
1913
1914         * python/_dbus.py (Bus): handle private connections using the
1915         private keyword in the constructor. defaults to private=False
1916         (Bus::close): new method to close a connection to the bus
1917
1918         * python/dbus_bindings.pyx (Connection::close): renamed method
1919         was previously called disconnect
1920         (bus_get): now supports getting a private connection
1921
1922         * python/proxies.py (ProxyMethod::__call__): check if ignore_reply
1923         keyword is set to True.  if it is, execute the method without waiting
1924         for a reply
1925         (ProxyObject::_introspect_execute_queue): new method for executing
1926         all the pending methods that were waiting for the introspect to
1927         finish.  this is called when introspect either succeeds or fails
1928         (ProxyObject::_introspect_error_handler): call queued methods
1929
1930 2005-10-14  John (J5) Palmieri  <johnp@redhat.com>
1931
1932         * python/dbus_bindings.pyx (MessageIter::append_strict): check for
1933         STRUCT_BEGIN not TYPE_STRUCT in indicate we are marshalling a struct
1934
1935         * python/service.py (Object::_message_cb): handle exceptions correctly
1936         by sending them over the wire to the calling app.  This makes sure
1937         the client returns immediately instead of waiting the 15 seconds to
1938         timeout.
1939
1940         * test/python/test-client.py (TestDBusBindings::testBenchmarkIntrospect): 
1941         Add a test to benchmark how long it takes to introspect a service and 
1942         call a method which returns a large element (pretty fast)
1943
1944         * test/python/test-service.py (TestObject::GetComplexArray): new test 
1945         method which pushes a lot of data
1946
1947 2005-10-13  John (J5) Palmieri  <johnp@redhat.com>
1948
1949         * python/service.py(ObjectType::_reflect_on_signal, _reflect_on_method):        
1950         reclaim memory outside of the loop and use del istead of just setting
1951         the key to None
1952
1953 2005-10-13  John (J5) Palmieri  <johnp@redhat.com>
1954
1955         * python/service.py (ObjectType::_reflect_on_signal): Always close
1956         signal tag even when there are no arguments
1957
1958 2005-10-13  John (J5) Palmieri  <johnp@redhat.com>
1959
1960         * configure.in: Set mono, mono-docs and Qt3 to default
1961         to no instead of auto when building.  These bindings do not
1962         have full time maintainers and will not be supported for the
1963         1.0 release.
1964
1965 2005-10-12  John (J5) Palmieri  <johnp@redhat.com>
1966
1967         patches from Michael Krivoruchko <misha at sun.com>: 
1968         
1969         * dbus/dbus-connection.c (_dbus_connection_queue_received_message_link,
1970         _dbus_connection_message_sent, 
1971         _dbus_connection_send_preallocated_unlocked_no_update, 
1972         _dbus_connection_pop_message_link_unlocked): handle the case when path 
1973         is NULL when calling _dbus_verbose
1974
1975         * configure.in: check for functions getpeerucred and getpeereid
1976
1977         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): provides 
1978         support of auth EXTERNAL on Solaris 10+ (getpeerucred), FreeBSD 4.6+, 
1979         OpenBSD 3.0+ and FreeBSD 5.0+ as well as MacOSX 10.2+ (getpeereid). 
1980         Patch was only tested on Solaris 10 x86 so it might be issues
1981         with other platforms (i.e. BSDs and MacOSX)
1982         
1983
1984 2005-10-05  John (J5) Palmieri  <johnp@redhat.com>
1985
1986         * glib/dbus-gvalue.c (marshal_variant): call _dbus_gvalue_marshal 
1987         instead of marshal basic so we can handle recursive types in a variant
1988
1989         * test/glib/test-dbus-glib.c: Add test for marshaling recurive types
1990         in variants
1991
1992         * test/glib/test-service-glib.c, test-service-glib.xml
1993         (my_object_echo_variant [EchoVariant], 
1994         my_object_process_variant_of_array_of_ints123
1995         [ProcessVariantOfArrayOfInts123]): 
1996         Add two test methods
1997
1998         * python/introspect_parser.py: New module for parsing introspect
1999         data.
2000
2001         * python/dbus_bindings.pyx:
2002         (various places): when throwing errors fix to use errormsg instead 
2003         of message local variable because Pyrex can get confused with other 
2004         message variables (initial patch by Robert McQueen 
2005         <robert.mcqueen at collabora.co.uk>)
2006         (MessageIter::parse_signature_block): new method for getting the next
2007         block in a signiture.
2008         (MessageIter::append_strict): new method for appending values strictly
2009         using the passed in signature instead of guessing at the type
2010         (MessageItter:: append_dict, append_struct, append_array): use 
2011         signatures to marshal children if the signature is available
2012         
2013         * python/exceptions.py (IntrospectionParserException): new exception
2014
2015         * python/proxies.py (ProxyMethod::__call__): Marshal args with 
2016         introspected signatures if available, else we fall back to the
2017         old way of doing things.
2018         (ProxyObject::_introspect_reply_handler ): parse introspection data
2019         
2020         * python/service.py (ObjectType::_reflect_on_method): Properly
2021         terminate <method> if there are no args in the reflection data
2022
2023         * test/python/test-client.py: add tests for talking with the GLib
2024         test server.  This gives us better coverage for introspection since
2025         python to python will always generate arguments as variants.  It also
2026         allows us to test the robustness of the GLib bindings and interlanguage
2027         communications.
2028
2029         
2030 2005-10-03  John (J5) Palmieri  <johnp@redhat.com>
2031
2032         * bus/driver.c (bus_driver_handle_introspect): Add signals
2033         to the introspect data. (patch from Daniel P. Berrange 
2034         <dan at berrange.com>)
2035
2036         * bus/dispatch.c (check_existent_ping): Add testcase for Ping
2037         
2038         * dbus/dbus-connection.c (_dbus_connection_peer_filter,
2039         _dbus_connection_run_builtin_filters): Changed these to
2040         be unlock_no_update functions and call 
2041         _dbus_connection_send_unlocked_no_update instead of
2042         dbus_connection_send to avoid locking errors.
2043         
2044         * doc/TODO: Removed the make Ping test TODO
2045         
2046 2005-09-26  John (J5) Palmieri  <johnp@redhat.com>
2047
2048         * dbus/Python.pyx: Fixed memory leaks when throwing errors.
2049         We now copy the message from a DBusError and then free 
2050         the error object befor throwing the error
2051
2052         * glib/dbus-glib-tool.c: removed extra comma at the end of the
2053         DBusBindingOutputMode enum which was causing a warning.
2054         #include <time.h> so using time_t is explicitly defined
2055
2056 2005-09-26  John (J5) Palmieri  <johnp@redhat.com>
2057
2058         * Integrate patches from Lennart Poettering <mzsqb at 0pointer.de>:
2059         - dbus/dbus-bus.c
2060         (internal_bus_get): new method that take over the heavy lifting
2061         of dbus_bus_get and adds the ability to get a private connection
2062         to the bus
2063         (dbus_bus_get): wrapper to internal_bus_get that provides the same
2064         interface as in previous versions
2065         (dbus_bus_get_private): new method that is a wrapper to 
2066         internal_bus_get to get a private connection to the bus
2067
2068         - dbus/dbus-bus.h
2069         (dbus_bus_get_private): add as a public libdbus interface
2070
2071         - dbus-1.pc.in: output system_bus_default_address and 
2072         sysconfdir variables so apps can use them when compiling
2073
2074 2005-09-23  Harald Fernengel  <harry@kdevelop.org>
2075         * dbus/qt: New Qt bindings
2076
2077 2005-09-12  Waldo Bastian  <bastian@kde.org>
2078
2079         * dbus/dbus-marshal-validate.c,
2080         doc/dbus-specification.xml, test/Makefile.am,
2081         test/test-names.c: allow hyphens in bus names.
2082
2083 2005-09-11  Mark McLoughlin  <mark@skynet.ie>
2084
2085         * test/data/auth/fallback.auth-script: we don't
2086         retry the EXTERNAL method when we know its going
2087         to fail anymore.
2088
2089 2005-09-11  Mark McLoughlin  <mark@skynet.ie>
2090
2091         * dbus/dbus-connection-internal.h: rename
2092         (add|remove|toggle)_(watch|timeout) to unlocked()
2093         
2094         * dbus/dbus-connection.c: ditto.
2095         
2096         * dbus/dbus-timeout.c, dbus/dbus-transport-unix.c:
2097         Update some callers for the renaming.
2098
2099 2005-09-10  Mark McLoughlin  <mark@skynet.ie>
2100
2101         * dbus/dbus-auth.c: (record_mechanisms): don't
2102         retry the first auth mechanism because we know
2103         we're just going to get rejected again.
2104         
2105         * dbus/dbus-keyring.c: (_dbus_keyring_reload):
2106         Fix thinko ... and what a nasty little bugger to
2107         track down you were ...
2108
2109         * dbus/dbus-connection.c:
2110         (_dbus_connection_add_watch),
2111         (_dbus_connection_remove_watch): add note about
2112         these needing the connection to be locked.
2113         (_dbus_connection_get_dispatch_status_unlocked):
2114         set status to DATA_REMAINS when we queue the
2115         disconnected message.
2116         
2117         * bus/dispatch.c:
2118         (bus_dispatch): fix warning.
2119         (check_existent_service_no_auto_start):
2120         Expect ChildSignaled error too.
2121         (check_existent_hello_from_self): fix another
2122         couple of warnings.
2123         
2124 2005-09-08  Joe Shaw  <joeshaw@novell.com>
2125
2126         Patches from James Willcox <snorp@snorp.net>
2127
2128         * mono/Makefile.am: Add Int16.cs and UInt16.cs
2129
2130         * mono/DBusType/Array.cs: Handle multidimensional arrays, and
2131         support array "out" parameters.
2132
2133         * mono/DBusType/Int16.cs, mono/DBusType/UInt16.cs: New files,
2134         for 16-bit int support.
2135
2136 2005-09-06  John (J5) Palmieri  <johnp@redhat.com>
2137
2138         * Released 0.50
2139
2140         * Patch from Steve Grubb:
2141         - bus/activation.c (bus_activation_service_reload_test): clean up
2142         some indentation
2143         - dbus/dbus-keyring.c (_dbus_keyring_reload): fix conditional 
2144         - dbus/dbus-message-factory.c (generate_special): fix a couple of
2145         buffer overflows in the test suite.  This is non critical because
2146         it can not be exploited and this code is only run when doing a 
2147         make check.
2148
2149         * Patch from Yaakov Selkowitz: Build fixes for Cygwin
2150         - configure.in: Don't check and link against kdecore, only qt headers
2151         - dbus/Makefile.am: Add -no-undefined to libdbus_1_la_LDFLAGS
2152         - gcj/org/freedesktop/dbus/Makefile.am:
2153         add libdbus_gcj_1_la_LDFLAGS = -no-undefined
2154         - glib/Makefile.am: Add -no-undefined to libdbus_glib_1_la_LDFLAGS
2155         and $(DBUS_GLIB_LIBS) to dbus_binding_tool_LDADD
2156         - qt/Makefile.am: Add -no-undefined to libdbus_qt_1_la_LDFLAGS
2157         - tools/Makefile.am: Add platform extentions to binaries 
2158         (i.e. .exe on windows)
2159
2160         * configure.in: 
2161         - Make it so if no suitable version of python is found we only 
2162         disable building python instead of exiting the configure script
2163         - Require version 2.4 of glib for glib bindings
2164         - Up version to 0.50
2165
2166         * python/__init__.py: Sync version with libdbus to (0,50,0)
2167         
2168 2005-09-05  Olivier Andrieu  <oliv__a@users.sourceforge.net>
2169
2170         * dbus/dbus-object-tree.c (find_subtree_recurse):
2171         a couple of optimizations (bug #710):
2172         - do a binary search in the tree
2173         - insert a new child at the right place directly, no need for
2174           qsort anymore
2175         - do the "double alloc" thing when allocating children
2176
2177 2005-08-31  John (J5) Palmieri  <johnp@redhat.com>
2178
2179         * python/Makefile.am: Break on pyrexc errors instead of ignoring them
2180
2181         * python/dbus_bindings.pyx: Memory management foo
2182         (global): remove hacky _user_data_references global list
2183         (GIL_safe_cunregister_function_handler): userdata now stuffed into
2184         tuples. Unref user_data
2185         (GIL_safe_cmessage_function_handler): userdata now stuffed into tuples
2186         (Connection::__del__): Remove and replace with __dealloc__ method
2187         (Connection::add_filter): Stuff user_data into a tuple.  Use Py_INCREF
2188         to keep tuple from being deallocated instead of the global var hack
2189         (Connection::register_object_path): Stuff user_data into a tuple.
2190         Use Py_INCREF to keep tuple from being deallocated instead of the 
2191         global var hack
2192         (Connection::register_fallback): Stuff user_data into a tuple.
2193         Use Py_INCREF to keep tuple from being deallocated instead of the 
2194         global var hack
2195         (GIL_safe_pending_call_notification): Don't unref the message
2196         because it gets unreffed when going out of scope.  Py_XDECREF
2197         the user_data
2198         (PendingCall::__del__): Remove and replace with __dealloc__ method
2199         (PendingCall::set_notify): ref the pending call because we will
2200         need it to stick around for when the notify callback gets called
2201         (Message::__del__): Remove and replace with __dealloc__ method
2202
2203         * python/dbus_glib_bindings.pyx (init_gthreads): Changed to 
2204         gthreads_init to match up with the dbus call
2205
2206         * python/glib.py (init_threads): Changed to threads_init to match
2207         up with gobject.threads_init().  init_threads is kept for backwards
2208         compat but will most likely be deprecated in the future
2209
2210         * test/python/test-client.py: 
2211         - revamp to use Python's unittest functionality
2212         - add async call tests
2213         - setup threads in glib and dbus so we make sure locks are working
2214         
2215 2005-08-30  John (J5) Palmieri  <johnp@redhat.com>
2216
2217         * python/dbus_bindings.pyx 
2218         (_pending_call_notification, cunregister_function_handler, 
2219         cmessage_function_handler): All callback functions have been rearranged 
2220         to workaround a bug in Pyrex when working with the GIL which is Python's 
2221         global lock when dealing with threads.  They have been split into
2222         a wrapper function (which assumes the name of the old function) and
2223         a _GIL_safe_<function name> function which contains the functionality
2224         of the old function.  This ensures that Pyrex does not write code
2225         the lock is released.
2226         
2227
2228 2005-08-30  John (J5) Palmieri  <johnp@redhat.com>
2229
2230         * python/dbus_bindings.pyx (_pending_call_notification): Obtain the
2231         GIL global lock when calling back into Python
2232
2233 2005-08-29  John (J5) Palmieri  <johnp@redhat.com>
2234
2235         * Release 0.36.2
2236
2237         * Add Havoc's patch that never got applied to HEAD (Bug #2436):
2238
2239         * bus/policy.c (bus_policy_allow_user): change default "user is
2240         allowed" to be "user has same uid as the bus itself"; any
2241         allow/deny rules will override.
2242
2243         * bus/session.conf.in: don't allow all users, since now by default
2244         the user that ran the bus can connect.
2245
2246 2005-08-26  Colin Walters  <walters@verbum.org>
2247
2248         * tools/dbus-print-message.c (print_message): Flush stdout
2249         after printing a message, so that redirecting to a file, then
2250         hitting Ctrl-C works.
2251
2252 2005-08-25  John (J5) Palmieri  <johnp@redhat.com>
2253
2254         * python/dbus_bindings.pyx: Tracked down a major memleak and fixed it
2255         (EmptyMessage): new class that subclasses Message.  This is a workaround
2256         to a Pyrex bug that fails to call __del__ when the Message object goes out
2257         of scope.  For some reason subclassing Message fixes this bug
2258         (Bus::send_with_reply_and_block): use EmptyMessage instead of Message
2259         - s/Message(_create=0)/EmptyMessage everywhere else
2260         
2261         * test/python/test-{server|client}.py: add the python/.libs directory
2262         to the lookup path so dbus_bindings and dbus_glib_bindings don't
2263         get picked up from the system
2264
2265 2005-08-25  Colin Walters  <walters@verbum.org>
2266
2267         * glib/dbus-gproxy.c (dbus_g_proxy_call): Doc update, thanks
2268         to Ryan Lortie for the suggestion.
2269
2270 2005-08-24  John (J5) Palmieri  <johnp@redhat.com>
2271
2272         * test/python: Add python regression test
2273
2274         * configure.in: Add test/python/Makefile
2275
2276         * test/Makefile.am: Add the python directory to SUBDIRS
2277
2278 2005-08-24  John (J5) Palmieri  <johnp@redhat.com>
2279
2280         * Release 0.36.1
2281
2282         * python/_dbus.py: 
2283         (Interface::connect_to_signal): propigate keywords for match on args
2284         (Bus::add_signal_receiver): Fix typo s/dbus_inteface/dbus_interface
2285
2286         * python/proxies.py (ProxyObject::connect_to_signal):
2287         propigate keywords for match on args
2288
2289         * Makefile.am: point everything to pyexecdir since python borks
2290         on multilib
2291
2292 2005-08-23  John (J5) Palmieri  <johnp@redhat.com>
2293
2294         * Release 0.36
2295
2296 2005-08-23  Colin Walters  <walters@verbum.org>
2297
2298         * test/glib/Makefile.am: Don't multiply-define EXTRA_DIST.
2299
2300 2005-08-23  John (J5) Palmieri  <johnp@redhat.com>
2301
2302         * python/dbus_glib_bindings.pyx: reorder imports and c definitions
2303         to fix some wranings. We now use dbus_bindings.DBusConnection instead
2304         of defining DBusConnection ourselves.
2305
2306 2005-08-18  John (J5) Palmieri  <johnp@redhat.com>
2307
2308         * python/dbus.pth: New path file to fix up problems when installing
2309         c libraries to lib64 and python files to lib.
2310
2311         * python/Makefile.am: install dbus.pth in the correct spot
2312
2313 2005-08-17  John (J5) Palmieri  <johnp@redhat.com>
2314         * ChangeLog: clean up my last entry a bit
2315
2316         * doc/introspect.xsl: New stylesheet for converting introspection data
2317         into browser renderable xhtml. Contributed by Lennart Poettering.
2318
2319         * doc/introspect.dtd: Fixups in the introspect format from Lennart
2320         Poettering.
2321
2322         * doc/dbus-tutorial.xml: 
2323         - Add Colin Walter to the Authors section for authoring the GLib
2324         section
2325         - Add descriptions of the new signature and type functionality
2326         in the Python complex type mapping section
2327         - Add a sidenote on the new args matching functionality in 
2328         the Python bindings
2329         - Fixed up some of the examples to use the gobject.MainLoop
2330         instead of gtk.main
2331         
2332         * python/_dbus.py:
2333         (Bus::_create_args_dict): New. Converts a hash of arg matches
2334         to a more useable format
2335         (Bus::add_signal_receiver): add a **keywords parameter for catching
2336         arg match parameters
2337         (Bus::remove_signal_receiver): add a **keywords parameter for catching
2338         arg match parameters
2339         
2340         * python/matchrules.py:
2341         (MatchTree::exec_matches): Check for arg matches
2342         (SignalMatchRule::add_args_match): New method
2343         (SignalMatchRule::execute): Added args_list parameter as an optimization
2344         so we don't have to marshal the args more than once
2345         (SignalMatchRule::match_args_from_list): New method that checks to see
2346         if the rule's arg matches match an argument list.  Only arguments
2347         set in the rule are checked.
2348         (SignalMatchRule::match_args_from_rule): New method that checks to see
2349         if the rule's arg matches match another rule's.  All args have to match
2350         in order for this method to return true.  If either rule has more args
2351         then it is not a match.
2352         (SignalMatchRule::is_match): Add args match
2353         (SignalMatchRule::repr): Add args to the final output if they exist
2354
2355 2005-08-17  Ross Burton  <ross@burtonini.com>
2356
2357         * glib/dbus-gproxy.c:
2358         (dbus_g_proxy_call_no_reply): unref the message once sent.
2359         (dbus_g_proxy_call): protect against NULL proxy.
2360
2361 2005-08-16  John (J5) Palmieri  <johnp@redhat.com>
2362
2363         * python/__init__.py: Version updated (0, 43, 0)
2364         
2365         * python/dbus_bindings.pyx: 
2366         - Fixed type objects to have self passed into __init__
2367         - Added the Variant type
2368         - Add the ability to specify types or signatures for Array, Variant 
2369         and Dictionary
2370         (Connection::send_with_reply_handlers): return a PendingCall object
2371         (_pending_call_notification): handle the case when an error is returned 
2372         without an error message in the body
2373         (MessageIter::get_boolean): return True or False instead of an integer
2374         (MessageIter::python_value_to_dbus_sig): add direct checking of types 
2375         and add checks for objects with embeded signatures or types (Array, 
2376         Variant and Dictionary)
2377         (MessageIter::append_byte): handle case when the value is a dbus.Byte
2378         (MessageIter::append_dict): handle embeded types or signatures
2379         (MessageIter::append_array): handle embeded types or signatures
2380         (MessageIter::append_variant): new method
2381         
2382         * python/proxies.py:
2383         (DeferedMethod): New. Dummy executable object used when queuing calls 
2384         blocking on introspection data
2385         (ProxyMethod::__call__): add the timeout keyword for specifying longer 
2386         or shorter timeouts for method calls
2387         (ProxyObject): Add first pass at an introspection state machine
2388         (ProxyObject::__init__): Add introspect keyword for turing off an on 
2389         introspection. 
2390         (ProxyObject::_Introspect): Internal Introspect call that bypasses 
2391         the usual mechanisms for sending messages.  This is to avoid a deadlock
2392         where the Intospect call would be queued waiting for the Introspect 
2393         call to finish ;-)
2394         (ProxyObject::_introspect_reply_handler): New.  This method is called 
2395         when introspection returns with no error
2396         (ProxyObject::_introspect_error_handler): New.  This method is called 
2397         when introspection encounters an error
2398         (ProxyObject::__getattr__): Code to handle different introspection 
2399         states.  Queue async calls or block blocking calls if we are 
2400         introspecting.  Pass through as normal if we are not or are done with 
2401         introspecting.
2402         
2403         * python/service.py: Import signal and method from decorators.py
2404
2405         * python/types.py: Add Variant type
2406
2407 2005-08-16  Colin Walters  <walters@verbum.org>
2408
2409         * glib/dbus-gobject.c (dbus_set_g_error): Don't lose if the
2410         DBusError message is NULL.
2411
2412 2005-08-09  Havoc Pennington  <hp@redhat.com>
2413
2414         * dbus/dbus-errors.c: apply patch from Timo Teras to make a
2415         malloc'd copy of the name parameter
2416
2417 2005-08-09  Havoc Pennington  <hp@redhat.com>
2418
2419         * dbus/dbus-message.c (dbus_message_set_reply_serial): print
2420         warning if the reply serial is set to 0
2421
2422 2005-08-04  Colin Walters  <walters@verbum.org>
2423
2424         * glib/dbus-gvalue-utils.h (_dbus_g_type_specialized_builtins_init)
2425         (dbus_g_type_is_fixed, dbus_g_type_fixed_get_size)
2426         (dbus_gvalue_set_from_pointer, dbus_g_hash_table_value_foreach)
2427         (dbus_g_hash_table_insert_values, dbus_g_hash_table_insert_steal_values)
2428         (dbus_gtype_is_valid_hash_key, dbus_gtype_is_valid_hash_value)
2429         (dbus_g_hash_func_from_gtype, dbus_g_hash_free_from_gtype)
2430         (dbus_g_hash_equal_from_gtype, dbus_gvalue_stor, dbus_gvalue_take):
2431         * glib/dbus-gvalue.h (dbus_g_value_types_init)
2432         (dbus_gvalue_demarshal, dbus_gvalue_demarshal_variant)
2433         (dbus_gvalue_demarshal_message, dbus_gvalue_marshal):
2434         
2435         Prefix name with _ to ensure they're not exported.  All callers
2436         updated.
2437
2438         * glib/dbus-gvalue.c (typecode_to_gtype)
2439         (dbus_typecode_maps_to_basic, basic_typecode_to_gtype)
2440         (signature_iter_to_g_type_dict)
2441         (signature_iter_to_g_type_array)
2442         (dbus_gtype_from_signature_iter, dbus_gtype_from_signature)
2443         (dbus_gtypes_from_arg_signature):
2444         Move to dbus-gsignature.c.
2445
2446         * glib/dbus-binding-tool-glib.c (dbus_binding_tool_output_glib_server): Call
2447         dbus_g_type_specialized_builtins_init instead of dbus_g_value_types_init.
2448         (dbus_binding_tool_output_glib_client): Ditto.
2449
2450         * glib/Makefile.am (DBUS_GLIB_INTERNALS): Add dbus-gsignature.c
2451         and dbus-gsignature.h
2452
2453         * test/glib/test-service-glib.c (my_object_rec_arrays): Delete
2454         unused variable.
2455
2456 2005-08-03  Colin Walters  <walters@verbum.org>
2457
2458         * glib/dbus-gobject.c: Add tests on hardcoded object info; this should
2459         catch any incompatible changes accidentally made.
2460
2461 2005-08-03  Havoc Pennington  <hp@redhat.com>
2462
2463         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): fix
2464         typo, from Julien Puydt
2465
2466         * bus/connection.c (bus_connection_disconnected): we were always
2467         doing a wait_for_memory due to a buggy loop, found by Timo Hoenig
2468
2469 2005-08-01  Colin Walters  <walters@verbum.org>
2470
2471         Patch from Joe Markus Clarke:   
2472         
2473         * glib/dbus-gidl.c (property_info_unref, arg_info_unref): Fix
2474         use-after-free.
2475
2476 2005-08-01  Colin Walters  <walters@verbum.org>
2477         
2478         Patch from Joe Markus Clarke:   
2479         
2480         * tools/dbus-send.c (main): 
2481         
2482         Don't use C99 style initializers (bug #3933).
2483         
2484 2005-08-01  Colin Walters  <walters@verbum.org>
2485
2486         Patch from Joe Markus Clarke:   
2487
2488         * glib/dbus-gvalue.c (dbus_g_value_types_init): 
2489         * glib/dbus-gvalue-utils.c (dbus_g_type_specialized_builtins_init) 
2490         * glib/dbus-gobject.c (write_interface):
2491
2492         Don't use C99 style initializers (bug #3933).
2493
2494 2005-07-31  Havoc Pennington  <hp@redhat.com>
2495
2496         * tools/dbus-viewer.c (load_child_nodes): fix invocation of
2497         dbus_g_proxy_call, fix from Piotr Zielinski bug #3920
2498
2499 2005-07-30  Havoc Pennington  <hp@redhat.com>
2500
2501         * fix a bunch of Doxygen warnings and mistakes
2502
2503 2005-07-30  Havoc Pennington  <hp@redhat.com>
2504
2505         * dbus/dbus-sysdeps.c (_dbus_string_parse_uint): remove #ifdef
2506         DBUS_BUILD_TESTS since it's now used in production code
2507
2508 2005-07-29  Havoc Pennington  <hp@redhat.com>
2509
2510         * test/glib/test-profile.c (write_junk): initialize the junk
2511         buffer so valgrind doesn't have a breakdown
2512
2513 2005-07-29  Havoc Pennington  <hp@redhat.com>
2514
2515         * bus/signals.c (bus_signals_test): add match_rule_equal() tests
2516         (match_rule_matches): remove unused arg
2517         (test_matching): add tests for match_rule_matches()
2518
2519         * bus/signals.c (bus_match_rule_parse_arg_match): add ability to
2520         do arg0='foo' arg5='bar' in the match rules
2521         (match_rule_matches): don't match if the arg0='foo' doesn't match.
2522
2523         * dbus/dbus-protocol.h (DBUS_MAXIMUM_MATCH_RULE_ARG_NUMBER): add this
2524
2525 2005-07-29  Ross Burton  <ross@openedhand.com>
2526
2527         * dbus/dbus-connection.c:
2528         Don't create a DBusCondVar which is never used.
2529
2530 2005-07-27  Ross Burton  <ross@openedhand.com>
2531
2532         * dbus/dbus-message.c:
2533         Reduce the size of the maximum cached message to 10K.
2534
2535 2005-07-25  Ross Burton  <ross@openedhand.com>
2536
2537         * glib/dbus-gproxy.c:
2538         Remove matches when all proxies are unregistered.
2539
2540 2005-07-24  Colin Walters  <walters@verbum.org>
2541
2542         * glib/dbus-gvalue.c (signature_iter_to_g_type_array): Don't require
2543         typedata; recursive arrays won't have it.
2544
2545         * test/glib/test-dbus-glib.c:
2546         * test/glib/test-service-glib.c:
2547         * test/glib/test-service-glib.xml: Add recursive arrays tests.
2548         
2549 2005-07-20  John (J5) Palmieir  <johnp@redhat.com>
2550
2551         * python/_dbus.py, _util.py, decorators.py, extract.py, matchrules.py.
2552         proxies.py, service.py: Cleanup of code after running it through the
2553         pyflakes code checker mostly dealing with undefined names.  
2554         (Bug #3828, Patch from Anthony Baxter <anthony@interlink.com.au>)
2555
2556 2005-07-17  John (J5) Palmieri  <johnp@redhat.com>
2557
2558         * NEWS: Update to 0.35.2
2559
2560 2005-07-17  John (J5) Palmieri  <johnp@redhat.com>
2561
2562         * python/_dbus.py: Remove import of the dbus.services
2563         module as it no longer exists (patch from Dimitur Kirov)
2564
2565         * python/service.py (Object::__init__): Fixed typo
2566         s/name/bus_name (patch from Dimitur Kirov)
2567
2568         * python/examples/example-signal-emitter.py: import dbus.glib
2569         to get the main loop and use glib mainloop instead of gtk so
2570         X doesn't have to be running.
2571
2572         * python/examples/example-signal-recipient.py: import dbus.glib
2573         to get the main loop and use glib mainloop instead of gtk so
2574         X doesn't have to be running. Import the decorators module
2575         directly.
2576
2577         * test/glib/Makefile.am:  Added DIST_EXTRA files that distcheck
2578         didn't pick up on but are needed to build
2579
2580         * configure.in: upped version to 0.35.2
2581
2582         * bus/driver.c, bus/selinux.c, bus/selinux.h, dbus/dbus-protocol.h:
2583         added Colin Walters' SELinux API rename patch from head 
2584         s/unix sercurity context/selinux security context/
2585
2586 2005-07-16  John (J5) Palmieri  <johnp@redhat.com>
2587
2588         * python/Makefile.am: dbus_binding.pxd.in should be included 
2589         in EXTRA_DIST not dbus_binding.pxd
2590         fix up $(srcdir) hopefully for the last time
2591
2592         * NEWS: Update to 0.35.1
2593
2594 2005-07-16  Colin Walters  <walters@verbum.org>
2595
2596         * bus/driver.c (bus_driver_handle_get_connection_selinux_security_context): Renamed
2597         from bus_driver_handle_get_connection_unix_security_context.  Update for
2598         error usage.
2599         (message_handlers): Update for renames.
2600
2601         * bus/selinux.c (bus_selinux_allows_send): Handle OOM on
2602         _dbus_string_init failure correctly.
2603         (bus_selinux_append_context): Convert SID to context.  Append it
2604         as a byte array.
2605         (bus_selinux_shutdown): Handle the case where bus_selinux_full_init
2606         hasn't been called.
2607
2608         * bus/selinux.h: Update prototype.
2609
2610         * dbus/dbus-protocol.h (DBUS_ERROR_SELINUX_SECURITY_CONTEXT_UNKNOWN): Renamed
2611         from DBUS_ERROR_UNIX_SECURITY_CONTEXT_UNKNOWN.
2612
2613 2005-07-15  Colin Walters  <walters@verbum.org>
2614
2615         * doc/TODO: Add note about convenience wrappers.
2616
2617 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
2618
2619         * NEWS: Update to 0.35
2620
2621 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
2622
2623         * glib/Makefile.am: Add make-dbus-glib-error-switch.sh to EXTRA_DIST
2624         so distcheck doesn't fail
2625
2626         * glib/examples/Makefile.am: Add example-service.xml and 
2627         example-signal-emitter.xml to EXTRA_DIST so distcheck doesn't fail
2628
2629         * glib/examples/statemachine/Makefile.am: Add statemachine.xml and
2630         statemachine-server.xml to EXTRA_DIST so distcheck doesn't fail
2631
2632         * python/Makefile.am: Preprend $(srcdir)/ to source files so the
2633         compiler looks in the right places during distcheck
2634
2635 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
2636
2637         * glib/example/Makefile.am: Fix a typo which cause make distcheck
2638         to fail
2639
2640 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
2641
2642         * python/examples/example-service.py,
2643         python/examples/example-signal-emitter.py: Fixed up examples
2644         for API changes
2645
2646 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
2647
2648         * python/__init__.py: Upped to version (0,42,0) because of
2649         the API change
2650
2651 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
2652
2653         * ChangeLog: fix date in last entry
2654
2655         * configure.in, bus/system.conf.in: add the ability to configure 
2656         the system bus user at compiletime with the --with-dbus-user flag
2657         (patch from Kristof Vansant)
2658
2659 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
2660
2661         * bus/dispatch.c, test/test-service.c: Add testcase
2662         for sending messages to oneself (TODO item).
2663
2664         * python/service.py (class Object): Swap ordering of bus_name 
2665         and object_path parameters to better support inheritance.
2666
2667         * doc/dbus-tutorial.xml: change Python docs to reflect change
2668         in parameter ordering and fix the inheritance section.
2669
2670         * doc/TODO: remove sending message to oneself TODO item
2671
2672 2005-07-15  Ross Burton  <ross@openedhand.com>
2673
2674         * glib/dbus-gproxy.c:
2675         Fix a leak when calling methods via the proxy.
2676
2677 2005-07-15  Colin Walters  <walters@verbum.org>
2678
2679         * bus/selinux.c (bus_selinux_append_context): Wrap in
2680         HAVE_SELINUX.
2681
2682 2005-07-14  John (J5) Palmieri  <johnp@redhat.com>
2683
2684         * python/_dbus.py (Bus::remove_signal_receiver):
2685         don't add a callback to the match if none has been passed in
2686         
2687         * python/matchrules.py (SignalMatchTree::remove): if the rule
2688         being matched does not have a callback treat it as a wildcard
2689         fix matching logic
2690
2691         * doc/dbus-tutorial.xml: Add Python tutorial
2692
2693 2005-07-14  Colin Walters  <walters@verbum.org>
2694
2695         * bus/driver.c
2696         (bus_driver_handle_get_connection_unix_security_context): New function.
2697         (message_handlers): Add.
2698
2699         * bus/selinux.c (bus_selinux_append_context): New function; appends
2700         security context to message.
2701
2702         * bus/selinux.h: Prototype.
2703
2704         * dbus/dbus-protocol.h (DBUS_ERROR_UNIX_SECURITY_CONTEXT_UNKNOWN): New.
2705
2706 2005-07-14  John (J5) Palmieri  <johnp@redhat.com>
2707
2708         * bus/activation.c: clean up all tabs to be 8 spaces 
2709         (bus_activation_activate_service): make sure we clean up
2710         if activation fails
2711
2712         * bus/dispatch.c: clean up all tabs to be 8 spaces 
2713         (check_shell_fail_service_auto_start): New function
2714         tests to make sure we get fail properly when trying to auto start a service
2715         with a faulty command line
2716         (check_shell_service_success_auto_start): New function tests to make sure
2717         auto started services get the arguments on the command line
2718
2719         * test/test-shell-service.c: Added service for testing auto-starting with 
2720         command line arguments
2721
2722         * test/data/valid-service-files/debug-shell-echo-fail.service.in, 
2723         test/data/valid-service-files/debug-shell-echo-success.service.in:
2724         Added service files for testing auto-starting with command line arguments
2725
2726         * */.cvsignore: added a bunch of generated files to various .cvsignore files
2727
2728 2005-07-14  Rodrigo Moya  <rodrigo@novell.com>
2729
2730         * dbus/dbus-shell.[ch]: copy/pasted code from GLib.
2731         
2732         * dbus/Makefile.am: added new files to build.
2733
2734         * bus/activation.c (bus_activation_activate_service): support
2735         activation commands with parameters.
2736
2737         * test/shell-test.c: added test program for the shell parsing
2738         code.
2739
2740 2005-07-13  David Zeuthen  <davidz@redhat.com>
2741
2742         * tools/dbus-send.c (append_arg, type_from_name): Also support 16 and
2743         64 bit signed and unsigned parameters
2744
2745 2005-07-13  John (J5) Palmieri  <johnp@redhat.com>
2746
2747         * python/.cvsignore: remove dbus_bindings.pyx, add dbus_bindings.pxd
2748
2749         * python/service.py (class Name): renamed BusName to make it clearer
2750         what the object is for (a name on the bus)
2751
2752         * python/examples/example-service.py,
2753         python/examples/example-signal-emitter.py: change the Name object to
2754         BusName
2755
2756 2005-07-12  Colin Walters  <walters@verbum.org>
2757
2758         Patch from Jim Gettys <Jim.Gettys@hp.com>.
2759
2760         * tools/dbus-launch.c: Include sys/select.h.
2761
2762 2005-07-12  John (J5) Palmieri  <johnp@redhat.com>
2763         * python/dbus_bindings.pyx.in: removed
2764
2765         * python/dbus_bindings.pyx: Added.
2766         - Fixed some memleaks (patch from 
2767         Sean Meiners <sean.meiners@linspireinc.com>)
2768         - Broke out the #include "dbus_h_wrapper.h" and put it in its
2769         own pxd file (Pyrex definition)
2770         - Broke out glib dependancies into its own pyx module
2771         
2772         * python/dbus_bindings.pdx: Added.
2773         - Defines C class Connection for exporting to other modules
2774
2775         * python/dbus_glib_bindings.pyx: Added.
2776         - New module to handle lowlevel dbus-glib mainloop integration
2777
2778         * python/glib.py: Added.
2779         - Registers the glib mainloop when you import this module
2780
2781         * python/services.py: Removed (renamed to service.py)
2782         
2783         * python/service.py: Added.
2784         - (class Server): renamed Name
2785
2786         * python/__init__.py: Bump ro version (0,41,0)
2787         -don't import the decorators or service module
2788         by default.  These now reside in the dbus.service namespace
2789
2790         * python/_dbus.py (Bus::__init__): Add code run the main loop 
2791         setup function on creation 
2792
2793         * python/examples/example-service.py,
2794         python/examples/example-signal-emitter.py: update examples
2795
2796         * python/examples/gconf-proxy-service.py,
2797         python/examples/gconf-proxy-service2.py: TODO fix these up
2798
2799         * doc/TODO: Addition
2800         - Added a Python Bindings 1.0 section
2801         - added "Add match on args or match on details to match rules"
2802
2803
2804 2005-07-12  Colin Walters  <walters@verbum.org>
2805
2806         * glib/examples/statemachine/Makefile.am (statemachine-server-glue.h) 
2807         (statemachine-glue.h): 
2808         * glib/examples/Makefile.am (example-service-glue.h) 
2809         (example-signal-emitter-glue.h): 
2810         * glib/Makefile.am (dbus-glib-error-switch.h): 
2811         Add libtool --mode=execute so we use the built library instead
2812         of any installed one.
2813
2814 2005-07-11  Colin Walters  <walters@verbum.org>
2815
2816         * glib/dbus-gvalue.c (struct _DBusGValue): Delete.
2817         (dbus_g_value_types_init): Remove assertion.
2818         (dbus_g_value_get_g_type, dbus_g_value_open)
2819         (dbus_g_value_iterator_get_values, dbus_g_value_get_signature)
2820         (dbus_g_value_copy, dbus_g_value_free): Delete unimplemented
2821         functions related to DBusGValue.  Now we marshal/demarshal
2822         structures as GValueArray.
2823         (dbus_gtype_from_signature_iter): Return G_TYPE_VALUE_ARRAY for
2824         structures.
2825         (signature_iter_to_g_type_array): Don't call
2826         signature_iter_to_g_type_struct.
2827         (signature_iter_to_g_type_struct): Delete.
2828         (dbus_gvalue_to_signature): Delete.
2829         (dbus_gvalue_to_signature): New function with same name as other
2830         one; we can convert structures to signatures.
2831         (demarshal_valuearray): New function.
2832         (get_type_demarshaller): Use it.
2833         (demarshal_recurse): Delete.
2834         (marshal_proxy): New function.
2835         (marshal_map): Warn if we can't determine signature from type.
2836         (marshal_collection_ptrarray): Ditto.
2837         (marshal_collection_array): Ditto.
2838         (get_type_marshaller): Use marshal_valuearray.
2839         (marshal_recurse): Delete.
2840         (_dbus_gvalue_test): Add some tests.
2841
2842         * dbus/dbus-glib.h (struct _DBusGValueIterator): 
2843         (dbus_g_value_get_g_type, DBUS_TYPE_G_VALUE)
2844         (dbus_g_value_open, dbus_g_value_iterator_get_value)
2845         (dbus_g_value_iterator_get_values, dbus_g_value_iterator_recurse)
2846         (dbus_g_value_free): Remove prototypes.
2847
2848         * glib/dbus-binding-tool-glib.c (dbus_g_type_get_lookup_function): Handle
2849         G_TYPE_VALUE_ARRAY.
2850
2851         * glib/examples/example-service.c:
2852         * glib/examples/example-client.c: Implement GetTuple.
2853
2854         * test/glib/test-dbus-glib.c:
2855         * test/glib/test-service-glib.c:
2856         * test/glib/test-service-glib.xml: Add structure tests.
2857
2858 2005-07-10  Colin Walters  <walters@verbum.org>
2859
2860         * doc/TODO: Knock off some GLib items with this patch.
2861
2862         * glib/dbus-gvalue-utils.c (_dbus_gtype_can_signal_error) 
2863         (_dbus_gvalue_signals_error): New functions.
2864
2865         * glib/dbus-gvalue-utils.h: Prototype them.
2866
2867         * glib/dbus-gobject.c (arg_iterate): Update to handle return vals
2868         and change to not output const/retval flags for input args.  All
2869         callers updated.
2870         (invoke_object_method): Refactor to handle return values.  Add
2871         some more comments in various places.  Remove debug g_print.
2872
2873         * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_RETURNVAL): New.
2874
2875         * glib/dbus-binding-tool-glib.c (dbus_g_type_get_marshal_name):
2876         Handle G_TYPE_NONE.
2877         (compute_gsignature): New function; refactored from code from
2878         compute_marshaller and compute_marshaller_name.  Enhance to
2879         handle return values and async ops more cleanly.  Update for
2880         async ops returning NONE instead of BOOLEAN.
2881         (compute_marshaller, compute_marshaller_name): Call compute_gsignature
2882         and output appropriate string.
2883         (generate_glue): Handle return value annotation.  Also don't dump
2884         constness flag for input arguments.
2885
2886         * glib/Makefile.am (DBUS_GLIB_INTERNALS): New variable; contains
2887         files shared between installed library and utilities.
2888         (libdbus_glib_1_la_SOURCES): Move some stuf into DBUS_GLIB_INTERNALS.
2889         (libdbus_gtool_la_SOURCES): Suck in DBUS_GLIB_INTERNALS so the
2890         binding tool can access gtype utility functions.
2891
2892         * test/glib/test-service-glib.c: 
2893         * test/glib/test-service-glib.xml: 
2894         * test/glib/test-dbus-glib.c: Add some tests for return values.
2895
2896 2005-07-09  Colin Walters  <walters@verbum.org>
2897
2898         * glib/dbus-gparser.c (parse_annotation): Add annotations to
2899         argument if available, not method.
2900
2901         * glib/dbus-gobject.c (arg_iterate): More verbose warnings.
2902         (invoke_object_method): First, remove some redundant
2903         GValues (object_value, error_value) in favor of working on
2904         array directly.  Second, rework constness to be less buggy.
2905         Now we iterate directly over the argument metadata instead
2906         of parallel iterating over output signature and metadata.
2907
2908         * glib/dbus-glib-tool.h: Add INVALID_ANNOTATION error.
2909
2910         * glib/dbus-binding-tool-glib.c (generate_glue): Barf on const
2911         annotation on input args.
2912         
2913 2005-07-09  Colin Walters  <walters@verbum.org>
2914
2915         * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_CONST):
2916         Define.
2917
2918         * glib/dbus-binding-tool-glib.c (generate_glue): Handle Const
2919         annotation.
2920
2921         * glib/dbus-gobject.c (arg_iterate): Update to parse constval too.
2922         (method_dir_signature_from_object_info): Handle arg_iterate change.
2923         (write_interface): Ditto.
2924         (lookup_object_info): Don't barf if format_version is > 0.
2925         (invoke_object_method): Handle arg constness.
2926
2927         * glib/dbus-gidl.c (struct ArgInfo): Add annotations.
2928         (arg_info_new): Create.
2929         (arg_info_unref): Destroy.
2930         (arg_info_get_annotations, arg_info_get_annotation) 
2931         (arg_info_add_annotation): New functions.
2932
2933         * glib/dbus-gidl.h: Prototype them.
2934
2935         * glib/dbus-gparser.c (parse_annotation): Allow annotations in
2936         args, disallow them in properties.
2937         (parse_annotation): Handle arg annotations.
2938
2939         * test/glib/test-service-glib.xml: 
2940         * test/glib/test-service-glib.c: Update to make some methods
2941         const.
2942
2943 2005-07-08  Colin Walters  <walters@verbum.org>
2944
2945         * test/glib/test-service-glib.xml: 
2946         * test/glib/test-service-glib.c:
2947         * test/glib/test-dbus-glib.c: Test a{sv}.
2948
2949         * glib/examples/statemachine/statemachine.c:
2950         * glib/examples/statemachine/statemachine-server.c:
2951         * glib/examples/statemachine/statemachine-client.c: Fix some bugs,
2952         add progress bar, etc.
2953
2954         * glib/dbus-gvalue.c (register_array, register_dict): Delete; not
2955         needed anymore due to generic array/map marshalling.
2956         (dbus_g_value_types_init): Don't register basic arrays or the
2957         string/string hash.
2958         (dbus_gtype_from_signature_iter): Don't try to recurse into
2959         variants.
2960         (dbus_gtype_to_signature): Check collection/map before type
2961         metadata.
2962         (demarshal_garray_basic): Renamed to demarshal_collection_array.
2963         (demarshal_ghashtable): Renamed to demarshal_map; fix to use new
2964         generic map creation/append functions instead of hash table
2965         specifically.
2966         (get_type_demarshaller): Handle maps.
2967         (demarshal_collection): Dispatch on collection type to either
2968         demarshal_collection_ptrarray or demarshal_collection_array.
2969         (get_type_marshaller): Handle maps.
2970         (marshal_collection): Dispatch collection type to either
2971         marshal_collection_ptrarray or marshal_collection_array.
2972         (_dbus_gvalue_test): New test.
2973
2974         * glib/dbus-gvalue-utils.c (unset_and_free_g_value): New function.
2975         (hash_free_from_gtype): Use it to free GValues.
2976         (hashtable_append): New function.
2977         (ptrarray_append): Fix prototype.
2978         (slist_append): Ditto.
2979         (_dbus_gvalue_utils_test): Extend tests.
2980
2981         * glib/dbus-gtype-specialized.c
2982         (dbus_g_type_specialized_init_append): Renamed from
2983         dbus_g_type_specialized_collection_init_append.  Remove const from
2984         value, since we steal it.
2985         (dbus_g_type_specialized_map_append): New function.
2986
2987         * glib/dbus-gtype-specialized.h: Update prototypes.
2988         Add DBusGTypeSpecializedMapAppendFunc.
2989
2990         * glib/dbus-gtest.c (dbus_glib_internal_do_not_use_run_tests): Run
2991         _dbus_gvalue_test.
2992         
2993         * glib/dbus-gtest.h: Prototype it.
2994
2995 2005-07-08  Ross Burton  <ross@openedhand.com>
2996
2997         * dbus/dbus-glib.h:
2998         Add DBysGAsyncData for the async bindings.
2999
3000         * glib/dbus-binding-tool-glib.c:
3001         Re-enable the async bindings.
3002
3003         * test/glib/test-dbus-glib.c:
3004         Add a test for the generated async bindings.
3005
3006 2005-07-08  Colin Walters  <walters@verbum.org>
3007
3008         * doc/TODO: Update GLib todo bits, also add a post-1.0 TODO for a
3009         connection concept.
3010         
3011 2005-07-08  Colin Walters  <walters@verbum.org>
3012         
3013         * tools/Makefile.am: Kill of print-introspect in favor of using
3014         dbus-send --print-reply=literal.
3015
3016         * test/glib/test-service-glib.xml: 
3017         * test/glib/test-service-glib.c (my_object_get_objs): New test
3018         for "ao".
3019
3020         * test/glib/test-dbus-glib.c (echo_received_cb): Free echo data.
3021         (main): Test GetObjs.
3022
3023         * glib/examples/statemachine/Makefile.am:
3024         * glib/examples/statemachine/sm-marshal.list:
3025         * glib/examples/statemachine/statemachine-client.c:
3026         * glib/examples/statemachine/statemachine-server.c:
3027         * glib/examples/statemachine/statemachine-server.xml:
3028         * glib/examples/statemachine/statemachine.c:
3029         * glib/examples/statemachine/statemachine.h:
3030         * glib/examples/statemachine/statemachine.xml:
3031
3032         New example.
3033
3034         * glib/examples/example-service.c (main): Move invocation
3035         of dbus_g_object_type_install_info earlier, to emphasize it
3036         should only be done once.
3037
3038         * glib/examples/example-signal-emitter.c (main): Ditto.
3039
3040         * glib/examples/Makefile.am (SUBDIRS): Include statemachine.
3041
3042         * glib/dbus-gvalue.h (dbus_gtype_to_signature)
3043         (dbus_gvalue_marshal): Update prototypes.
3044
3045         * glib/dbus-gvalue.c: Update all marshalling functions to take
3046         const GValue instead of GValue.
3047         (signature_iter_to_g_type_array): Return a GPtrArray for nonfixed
3048         types.
3049         (dbus_gvalue_to_signature): Update for dbus_gtype_to_signature
3050         change.
3051         (dbus_gtype_to_signature): Handle generic collecitons and maps.
3052         Return a newly-allocated string.
3053         (demarshal_proxy, demarshal_object_path, demarshal_object)
3054         (demarshal_strv, demarshal_ghashtable): Set error, don't assert if
3055         we get the wrong types from message.
3056         (get_type_demarshaller): New function, extracted from
3057         dbus_gvalue_demarshal.
3058         (demarshal_collection): New function, demarshals generic
3059         collection.
3060         (dbus_gvalue_demarshal): Just invoke result of
3061         get_type_demarshaller.  Throw error if we don't have one.
3062         (marshal_garray_basic): Abort on OOM.
3063         (get_type_marshaller): New function, extracted from
3064         dbus_gvalue_marshal.
3065         (collection_marshal_iterator, marshal_collection): New functions;
3066         implements generic marshalling for an iteratable specialized
3067         collection.
3068         (dbus_gvalue_marshal): Just invoke result of get_type_marshaller.
3069
3070         * glib/dbus-gvalue-utils.c (gvalue_from_ptrarray_value): Handle
3071         G_TYPE_STRING.
3072         (ptrarray_value_from_gvalue): Ditto.
3073         (ptrarray_append, ptrarray_free): New functions.
3074         (slist_constructor, slist_iterator, slist_copy_elt, slist_copy) 
3075         (slist_append, slist_end_append, slist_free): New functions.
3076         (dbus_g_type_specialized_builtins_init): Add append fuctions
3077         for GPtrArray and GSList.  Register GSList.
3078         (test_specialized_hash, _dbus_gvalue_utils_test): New functions.
3079
3080         * glib/dbus-gtype-specialized.h (DBusGTypeSpecializedAppendContext):
3081         New.
3082         (dbus_g_type_specialized_collection_init_append)
3083         (dbus_g_type_specialized_collection_append)
3084         (dbus_g_type_specialized_collection_end_append): Prototype.
3085         (DBusGTypeSpecializedCollectionVtable): Add append_func and
3086         end_append_func.
3087
3088         * glib/dbus-gtype-specialized.c (dbus_g_type_specialized_collection_init_append) 
3089         (dbus_g_type_specialized_collection_append) 
3090         (dbus_g_type_specialized_collection_end_append): New functions.
3091         (dbus_g_type_map_value_iterate): Take const GValue.
3092         (dbus_g_type_collection_value_iterate): Ditto.
3093
3094         * glib/dbus-gtest.c (dbus_glib_internal_do_not_use_run_tests): Run
3095         _dbus_gvalue_utils_test.
3096         
3097         * glib/dbus-gtest.h: Prototype it.
3098
3099         * glib/dbus-gproxy.c (dbus_g_proxy_manager_filter): Avoid
3100         using uninitialized owner_list.
3101         (dbus_g_proxy_begin_call_internal): Move return_if_fail to
3102         public API.
3103         (dbus_g_proxy_end_call_internal): Update to use error set
3104         from dbus_gvalue_demarshal instead of setting it here.
3105         (dbus_g_proxy_begin_call): Move return_if_fail here.
3106
3107         * glib/dbus-gobject.c (write_interface): Update for
3108         dbus_gtype_to_signature returning new string.
3109
3110         * configure.in: Add glib/examples/statemachine.
3111
3112 2005-07-08  Joe Shaw  <joeshaw@novell.com>
3113
3114         * configure.in: Add a configure option, --with-console-auth-dir
3115         
3116         * dbus/dbus-sysdeps-util.c (_dbus_user_at_console): Use the
3117         new setting.  Patch from Kay Sievers.
3118
3119 2005-07-06  Colin Walters  <walters@verbum.org>
3120
3121         * dbus/dbus-glib.h (DBusGPendingCall, DBusGPendingCallNotify)
3122         (DBUS_TYPE_G_PENDING_CALL, dbus_g_pending_call_get_g_type)
3123         (dbus_g_pending_call_ref, dbus_g_pending_call_unref): Delete.
3124         (dbus_g_pending_call_set_notify, dbus_g_pending_call_cancel):
3125         Delete in favor of dbus_g_proxy_begin_call and
3126         dbus_g_proxy_cancel_call.
3127         (DBusGProxyCall, DBusGProxyCallNotify): New.
3128         (dbus_g_proxy_begin_call): Change prototype to take callback, user
3129         data, and destroy function.  This replaces
3130         dbus_g_pending_call_set_notify.
3131         (dbus_g_proxy_cancel_call): Prototype.
3132         (DBusGAsyncData): Delete, shouldn't be needed anymore.
3133
3134         * glib/dbus-gproxy.c (struct _DBusGProxy): Add call_id_counter and
3135         pending_calls map.
3136         (struct _DBusGProxyManager): Add bus_proxy member, which is an
3137         internal proxy for calls to the bus. Remove
3138         pending_nameowner_calls, now the internal proxy keeps track.
3139         (dbus_g_proxy_manager_unref): Unref bus proxy, remove reference to
3140         pending_nameowner_calls.
3141         (got_name_owner_cb): Update prototype, and use
3142         dbus_g_proxy_end_call.
3143         (got_name_owner_cb): Remove reference to pending_nameowner_calls.
3144         (dbus_g_proxy_manager_register): Delete directly libdbus code in
3145         favor of using internal proxy.
3146         (dbus_g_proxy_manager_unregister): Update to use
3147         dbus_g_proxy_cancel_call for any pending GetNameOwner call.
3148         (dbus_g_proxy_init): Initialize pending calls map.
3149         (dbus_g_proxy_constructor): New.
3150         (dbus_g_proxy_class_init): Add get/set property functions,
3151         constructor, and add NAME, PATH, and INTERFACE properties.
3152         (cancel_pending_call): New function.
3153         (dbus_g_proxy_dispose): Iterate over any outstanding calls and
3154         cancel them.
3155         (dbus_g_proxy_set_property, dbus_g_proxy_get_property): New.
3156         (GPendingNotifyClosure): New structure.
3157         (d_pending_call_notify, d_pending_call_free): Moved here from
3158         dbus-glib.c.
3159         (DBUS_G_VALUE_ARRAY_COLLECT_ALL): Moved around to satisfy function
3160         ordering.
3161         (manager_begin_bus_call): New internal function for talking to
3162         internal bus proxy.
3163         (dbus_g_proxy_new): Construct object using GObjet properties.
3164         (dbus_g_proxy_begin_call_internal): Update to take user data, etc.
3165         Create closure of same, and insert call into map of pending calls.
3166         (dbus_g_proxy_end_call_internal): Take call id instead of pending
3167         call.  Look up pending call in current set.  Remove it when we've
3168         completed.
3169         (dbus_g_pending_call_end, dbus_g_proxy_end_call_internal): Delete.
3170         (dbus_g_proxy_begin_call): Change API to take callback, user data,
3171         and destroy function directly.
3172         (dbus_g_proxy_end_call): Update to take DBusGProxyCall.
3173         (dbus_g_proxy_call): Invoke with NULL callback.
3174         (dbus_g_proxy_cancel_call): New function, replaces
3175         dbus_g_pending_call_cancel.
3176
3177         * glib/dbus-gparser.c (validate_signature): Fix call to
3178         dbus_set_g_error.
3179
3180         * glib/dbus-gobject.c (dbus_g_object_type_dbus_metadata_quark):
3181         New quark for attaching metadata to GType.
3182         (info_hash): Delete.
3183         (lookup_object_info): Look up using quark.
3184         (dbus_g_object_type_install_info): Check that a type is classed,
3185         not that it's an object.  Also just install type data using quark
3186         instead of using global hash.
3187
3188         * glib/dbus-glib.c (dbus_g_pending_call_ref) 
3189         (dbus_g_pending_call_unref, dbus_pending_call_get_g_type)
3190         (GPendingNotifyClosure): Delete.
3191         (d_pending_call_notify, d_pending_call_free): Move to dbus-gproxy.c.
3192         (dbus_g_pending_call_set_notify, dbus_g_pending_call_cancel): Delete.
3193
3194         * glib/dbus-binding-tool-glib.c (generate_client_glue): Disable async
3195         client method generation until we can fix it...
3196         
3197         * tools/dbus-viewer.c (load_child_nodes): Use dbus_g_proxy_call.
3198         (load_from_service_thread_func): Ditto.
3199
3200         * tools/dbus-names-model.c (struct NamesModel): Hold
3201         DBusGProxyCall.
3202         (have_names_notify): Update prototype, use
3203         dbus_g_proxy_cancel_call.
3204         (names_model_reload): Update for new dbus_g_proxy_begin_call API.
3205
3206         * tools/dbus-monitor.c (filter_func): Update for print_message
3207         API change.
3208
3209         * test/glib/test-dbus-glib.c: Add more tests for async
3210         invocations.  Update many begin_call/end_call pairs to just use
3211         dbus_g_proxy_call.
3212
3213         * tools/dbus-send.c (main): Add --print-reply=literal mode.  This
3214         allows us to dump print-introspect.c.
3215
3216         * tools/dbus-print-message.h (print_message): Add literal argument
3217         to print_message which is intended to allow printing arguments without
3218         metadata like "string=".
3219
3220         * tools/dbus-print-message.c (print_iter): Add literal argument.
3221         (print_message): Allow printing string messages literally.
3222
3223 2005-07-05  Colin Walters  <walters@verbum.org>
3224
3225         * glib/dbus-gproxy.c (marshal_dbus_message_to_g_marshaller):
3226         Remove value refcount leak, original patch from Jorn Baayen
3227         <jorn@openedhand.com>.  Also remove useless extra value in favor
3228         of prepending to value array directly.
3229
3230 2005-07-02  Colin Walters  <walters@verbum.org>
3231
3232         * glib/dbus-gmain.c (_dbus_gmain_test): Fix test.
3233
3234 2005-07-01  Colin Walters  <walters@verbum.org>
3235
3236         Patch from Jonathan Matthew <jonathan@kaolin.hn.org>
3237         
3238         * glib/dbus-gvalue.c (basic_typecode_to_gtype): Fix return type.
3239         (dbus_g_value_types_init): Marshal G_TYPE_CHAR as DBUS_TYPE_BYTE,
3240         G_TYPE_LONG as DBUS_TYPE_INT32, G_TYPE_ULONG as DBUS_TYPE_UINT32,
3241         and G_TYPE_FLOAT as DBUS_TYPE_DOUBLE.
3242
3243 2005-06-30  Colin Walters  <walters@verbum.org>
3244
3245         * test/glib/test-dbus-glib.c:
3246         * test/glib/test-service-glib.c:
3247         * test/glib/test-service-glib.xml: Update tests for new error
3248         setting bits, also add async tests (patch from Ross Burton).
3249
3250         * test/glib/Makefile.am (test_service_glib_LDADD): Add
3251         DBUS_GLIB_THREADS_LIBS.
3252
3253         * glib/dbus-gproxy.c (get_name_owner)
3254         (dbus_g_pending_call_end_valist): Ditto.
3255
3256         * glib/dbus-gobject.c (error_metadata): New mapping from GError
3257         domain (GQuark) to DBusGErrorInfo.  
3258         (gerror_domaincode_to_dbus_error_name): Attempt to look up error
3259         quark in error_metadata.  Take message interface as default
3260         error message interface.
3261         (gerror_to_dbus_error_message): Pass message interface.
3262         (dbus_set_g_error): Resurrected.
3263         (dbus_g_error_info_free): New function.
3264         (dbus_g_object_type_install_info): Use g_type_class_ref instead
3265         of _peek to actually create the object class if it hasn't been
3266         created yet.
3267         (dbus_g_error_domain_register): New function.
3268
3269         * glib/dbus-gmain.c (dbus_g_bus_get): Switch to dbus_set_g_error.
3270
3271         * glib/dbus-gparser.c (validate_signature): Ditto.
3272
3273         * dbus/dbus-glib.h (dbus_g_error_set): Delete.
3274         (dbus_g_error_domain_register): Prototype.
3275
3276         * glib/dbus-glib.c (dbus_g_error_set): Delete.
3277         Update tests.
3278
3279 2005-06-29  Colin Walters  <walters@verbum.org>
3280
3281         * dbus/dbus-glib.h: Delete DBUS_TYPE_G_PROXY_ARRAY.  Add
3282         DBUS_TYPE_G_OBJECT_PATH.
3283
3284         * glib/dbus-gvalue.c (dbus_g_value_types_init): Remove marshallers
3285         for G_TYPE_OBJECT and DBUS_TYPE_G_PROXY_ARRAY (the latter should
3286         be handled more generically).  Add DBUS_TYPE_G_OBJECT_PATH.
3287         (dbus_g_object_path_get_g_type): New function.
3288         (dbus_gtype_from_signature_iter): Map DBUS_TYPE_OBJECT_PATH
3289         to DBUS_TYPE_G_OBJECT_PATH by default.
3290         (demarshal_proxy): Remove unused name variable.
3291         (demarshal_object_path, marshal_object_path): New functions.
3292         (demarshal_proxy_array, marshal_proxy_array): Delete.
3293         
3294         * glib/dbus-binding-tool-glib.c (dbus_g_type_get_c_name): Map
3295         DBUS_TYPE_G_OBJECT_PATH to char *.
3296         (dbus_g_type_get_lookup_function): Map builtin
3297         DBUS_TYPE_G_OBJECT_PATH.
3298
3299         * test/glib/test-dbus-glib.c
3300         * test/glib/test-service-glib.c (my_object_objpath): 
3301         Adapt tests to new object path marshalling.
3302
3303 2005-06-29  John (J5) Palmieri  <johnp@redhat.com>
3304
3305         * configure.in: force check for Python >= 2.4
3306
3307 2005-06-29  Colin Walters  <walters@verbum.org>
3308         
3309         Patch from Ross Burton <ross@openedhand.com>
3310         
3311         * glib/dbus-gobject.c (invoke_object_method): Unset object
3312         value in all cases, not only in async case.
3313
3314 2005-06-29  Colin Walters  <walters@verbum.org>
3315
3316         * glib/dbus-gproxy.c (struct _DBusGProxy): Add new member
3317         name_call for keeping track of any outgoing GetNameOwner call.
3318         Also add for_owner and associated.
3319         (struct _DBusGProxyManager): Add owner_names, which is hash table
3320         that maps a base name to a list of names it owns (that we're
3321         interested in).  Add pending_nameowner_calls which is a list of
3322         all outstanding GetNameOwner; avoids us having to iterate over
3323         every proxy.  Add unassociated_proxies which keeps track of name
3324         proxies with no associated name owner.
3325         (dbus_g_proxy_manager_unref): Destroy owner_names.
3326         (struct DBusGProxyNameOwnerInfo): New struct for keeping track of
3327         name refcounts.
3328         (find_name_in_info, name_owner_foreach)
3329         (dbus_g_proxy_manager_lookup_name_owner, insert_nameinfo)
3330         (dbus_g_proxy_manager_monitor_name_owner)
3331         (dbus_g_proxy_manager_unmonitor_name_owner)
3332         (unassociate_proxies, dbus_g_proxy_manager_replace_name_owner):
3333         New functions; they manipulate the owner_names mapping.
3334         (got_name_owner_cb): New function.
3335         (get_name_owner): New function, extracted from
3336         dbus_g_proxy_new_for_name_owner.
3337         (dbus_g_proxy_manager_register): For now we need to keep track of
3338         all NameOwnerChanged.  Also if the proxy is for a name, if we
3339         don't already know the name owner, queue a new GetNameOwner
3340         request and add it to our list of unassociated proxies.  Otherwise
3341         inc the refcount.
3342         (dbus_g_proxy_manager_unregister): If this proxy is for a name,
3343         cancel any pending GetNameOwner call, etc.
3344         (dbus_g_proxy_manager_filter): Handle NameOwnerChanged.  Also use
3345         the owner_names mapping to look up the current names for the
3346         signal source, and dispatch to any proxies for that name.
3347         (dbus_g_proxy_new): Initialize new members.
3348         (dbus_g_proxy_new_for_name): Delete unused proxy variable.
3349         (dbus_g_proxy_new_for_name_owner): Use get_name_owner.
3350         (dbus_g_pending_call_end_valist): New function, extracted from
3351         dbus_g_proxy_end_call_internal.  Useful when we don't have a proxy
3352         but want to use the GLib infrastructure.  Also note how many
3353         arguments in reply were over.
3354         (dbus_g_pending_call_end): New function, just call
3355         dbus_g_pending_call_end_valist.
3356         (dbus_g_proxy_end_call_internal): Just call
3357         dbus_g_pending_call_end_valist.
3358
3359         * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller): Fix lookup
3360         of builtin marshaller for STRING_STRING_STRING.
3361
3362         * test/glib/test-dbus-glib.c: 
3363         * test/glib/test-service-glib.c:
3364         * test/glib/test-service-glib.xml:
3365         Extend tests to cover name proxies, destruction of owner proxies,
3366         etc.
3367         
3368         * glib/examples/example-signal-recipient.c
3369         (dbus_g_proxy_new_for_name_owner): Create a name proxy.
3370         
3371         * tools/dbus-send.c (main): Print D-BUS error name in addition
3372         to message.
3373
3374 2005-06-28  John (J5) Palmieri  <johnp@redhat.com>
3375
3376         * python/dbus_bindings.pyx.in (cunregister_function_handler,
3377         cmessage_function_handler): Patch from 
3378         Anthony Baxter <anthony@interlink.com.au> fixes threading problems
3379         by using the Py_GILState_Ensure/Release to synchronize with the
3380         python runtime.
3381         
3382 2005-06-28  Ray Strode  <rstrode@redhat.com>
3383
3384         *  dbus/dbus-spawn.c (_dbus_babysitter_unref): kill
3385         babysitter helper process on last unref, bug #2813.
3386
3387 2005-06-27  Colin Walters  <walters@verbum.org>
3388
3389         * test/glib/test-dbus-glib.c: 
3390         * test/glib/test-service-glib.c:
3391         * test/glib/test-service-glib.xml:
3392         Test hash table signal emitting.
3393
3394         * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller): Convert
3395         types to their fundamental basis types, since this is what
3396         marshallers operate on.  Also add an entry for VOID__BOXED.
3397         (dbus_g_object_register_marshaller_array): Convert to fundamental.
3398
3399 2005-06-26  Havoc Pennington  <hp@redhat.com>
3400
3401         * doc/dbus-tutorial.xml: fix names of interface/service/path, fix
3402         from Don Park
3403
3404 2005-06-26  Colin Walters  <walters@verbum.org>
3405
3406         * glib/dbus-glib.c (dbus_set_g_error): Delete.
3407         (dbus_g_error_set): New public function from its ashes; used by
3408         both service-side method implementation and GLib bindings
3409         internals.
3410         (dbus_g_error_has_name, dbus_g_error_get_name): New function.
3411         (_dbus_glib_test): Add some tests.
3412
3413         * test/glib/test-dbus-glib.c (main): Test dbus_g_error_has_name.
3414
3415         * test/glib/test-service-glib.c (my_object_throw_error): Use
3416         dbus_g_error_set.
3417
3418         * glib/dbus-gobject.c (gerror_to_dbus_error_message): Handle
3419         errors thrown by dbus_g_error_set.
3420
3421         * glib/dbus-gmain.c (dbus_g_bus_get): Change to dbus_g_error_set.
3422
3423         * glib/dbus-gparser.c (validate_signature): Ditto.
3424
3425         * glib/dbus-gproxy.c (dbus_g_proxy_new_for_name_owner) 
3426         (dbus_g_proxy_end_call_internal): Ditto.
3427
3428         * glib/Makefile.am: Generate dbus-glib-error-switch.h, which
3429         converts DBUS_ERROR_x to DBUS_GERROR_x.
3430         (libdbus_glib_1_la_SOURCES, BUILT_SOURCES, CLEANFILES): Add it.
3431
3432         * doc/TODO: Remove error TODO.
3433
3434         * doc/dbus-tutorial.xml: Update with documentation about error
3435         handling.
3436
3437         * dbus/make-dbus-glib-error-enum.sh: Tighten up regexp to make
3438         sure we only change DBUS_ERROR to DBUS_GERROR, not all ERROR to
3439         GERROR.  Also add DBUS_GERROR_REMOTE_EXCEPTION.
3440
3441 2005-06-22  Colin Walters  <walters@verbum.org>
3442         
3443         Patch from Ross Burton <ross@openedhand.com>
3444
3445         * glib/dbus-gobject.c (dbus_g_method_return): Free out_sig.
3446
3447 2005-06-20  Colin Walters  <walters@verbum.org>
3448
3449         * configure.in: Add glib/examples.
3450
3451         * glib/Makefile.am: Add examples/
3452
3453         * glib/examples/.cvsignore
3454         * glib/examples/Makefile.am
3455         * glib/examples/example-client.c
3456         * glib/examples/example-service.c
3457         * glib/examples/example-service.xml
3458         * glib/examples/example-signal-emitter.c
3459         * glib/examples/example-signal-emitter.xml
3460         * glib/examples/example-signal-recipient.c:
3461         New files; GLib binding examples, ported from
3462         python/examples.
3463
3464 2005-06-20  Colin Walters  <walters@verbum.org>
3465
3466         * dbus/dbus-glib.h: 
3467         * glib/dbus-gproxy.c: Rename dbus_g_proxy_invoke to
3468         dbus_g_proxy_call.
3469
3470         * glib/dbus-binding-tool-glib.c: 
3471         * doc/dbus-tutorial.xml: 
3472         * test/glib/test-dbus-glib.c: Update for rename.
3473         
3474 2005-06-20  Colin Walters  <walters@verbum.org>
3475
3476         Patch suggested by Ross Burton <ross@openedhand.com>
3477
3478         * glib/dbus-gobject.c (export_signals): Free signal name.
3479         (g_value_init): Use G_VALUE_NOCOPY_CONTENTS to plug
3480         memory leak.  Add a bit of documentation.
3481         (dbus_g_method_return_error): Free context, and note we do
3482         so.
3483
3484 2005-06-18  Murray Cumming  <murrayc@murrayc.com>
3485
3486         * dbus/dbus-glib.h:
3487         * glib/dbus-gobject.c:
3488         * glib/dbus-gproxy.c:
3489         * glib/dbus-gvalue.c: Predeclare structs as 
3490         typedef struct _Something Something instead of 
3491         typedef struct Something Something, so we can 
3492         redeclare the prototypes. Other GNOME libraries 
3493         do this already.
3494
3495 2005-06-17  Colin Walters  <walters@verbum.org>
3496
3497         * tools/dbus-names-model.c (have_names_notify): Fix call
3498         to dbus_g_proxy_end_call.
3499         
3500 2005-06-17  Colin Walters  <walters@verbum.org>
3501
3502         * glib/dbus-gproxy.c (dbus_g_proxy_emit_remote_signal): Don't
3503         spew warnings if we get malformed remote signals.
3504
3505         * glib/dbus-gobject.c (propsig_iterate): New function.
3506         (lookup_object_info): New function, extracted from
3507         lookup_object_and_method.
3508         (introspect_properties, introspect_signals): Delete; these
3509         are merged into write_interface.
3510         (write_interface): Write out signals and properties here;
3511         dump the org.gtk.object stuff and use the interface given
3512         in the introspection data blob.  Also fix up property XML.
3513         (lookup_values): New function.
3514         (introspect_interfaces): Gather a mapping from interface to a
3515         list of its methods, signals, and properties, then write out
3516         each interface.
3517         (lookup_object_and_method): Use lookup_object_info.
3518         (struct DBusGSignalClosure): Add interface.
3519         (dbus_g_signal_closure_new): Add interface. Don't dup signame;
3520         we can just use the constant data.
3521         (dbus_g_signal_closure_finalize): Don't free signal name.
3522         (signal_emitter_marshaller): Use interface from signal closure.
3523         (export_signals): Only export signals mentioned in introspection
3524         blob.
3525         (dbus_g_connection_register_g_object): Warn if we have no
3526         introspection data for an object.
3527         (funcsig_equal): Remove unused variable.
3528         (dbus_g_object_register_marshaller): Take varargs instead of
3529         list.
3530         (dbus_g_object_register_marshaller_array): New function,
3531         extracted from old dbus_g_object_register_marshaller.
3532
3533         * glib/dbus-binding-tool-glib.c (struct DBusBindingToolCData): Add
3534         signals and property data.
3535         (write_quoted_string): New function, extracted from generate_glue.
3536         (generate_glue): Write signals and properties to introspection
3537         blob.
3538
3539         * dbus/dbus-glib.h (struct DBusGObjectInfo): Include
3540         exported_signals and exported_properties.
3541         (dbus_g_object_register_marshaller): Update prototype.
3542         (dbus_g_object_register_marshaller_array): Prototype.
3543         
3544         * test/glib/test-dbus-glib.c: Extend testing to cover new signals.
3545
3546         * test/glib/test-service-glib.c: Add new test signals and method
3547         to emit them.
3548
3549         * test/glib/test-service-glib.xml: Add some test signals.
3550
3551         * test/glib/Makefile.am (BUILT_SOURCES): Add my-object-marshal.c
3552         and my-object-marshal.h
3553         (test_service_glib_SOURCES, test_dbus_glib_SOURCES): Add
3554         my-object-marshal.c.
3555         (my-object-marshal.c, my-object-marshal.h): Implement.
3556
3557         * test/glib/.cvsignore: Update.
3558
3559         * doc/TODO: Remove two GLib TODO items fixed by this
3560         patch.
3561
3562 2005-06-16  Colin Walters  <walters@verbum.org>
3563
3564         * doc/TODO: Update for GLib bindings.
3565         
3566 2005-06-16  Colin Walters  <walters@verbum.org>
3567
3568         * glib/dbus-binding-tool-glib.c:
3569         * glib/dbus-gobject.c:
3570         * glib/dbus-gproxy.c:  Add Nokia copyright; Patch
3571         from Ross Burton, for his GLib bindings work.
3572
3573 2005-06-16  Colin Walters  <walters@verbum.org>
3574
3575         * glib/dbus-gobject.c (funcsig_hash, funcsig_equal): Use n_params
3576         to iterate instead of walking to G_TYPE_INVALID.
3577
3578         Patch based on a patch from Ryan Gammon.
3579
3580 2005-06-16  Colin Walters  <walters@verbum.org>
3581
3582         * bus/bus.c (bus_context_new): Set parser to NULL
3583         after we unref it (Patch from Chris Boscolo, #2174).
3584         
3585 2005-06-16  Colin Walters  <walters@verbum.org>
3586
3587         * python/dbus_bindings.pyx.in: Import size_t,
3588         __int64_t, __uint64_t, and __signed.
3589
3590         * dbus/dbus-sysdeps.c <HAVE_CMSGCRED> (write_credentials_byte):
3591         Define cmsg struct, output it.
3592         (_dbus_read_credentials_unix_socket):
3593         Use cmsg struct.
3594         
3595         Patch from Joe Markus Clarke for FreeBSD support.
3596         
3597 2005-06-16  Colin Walters  <walters@verbum.org>
3598
3599         * tools/dbus-send.c (append_array): Use strtok.
3600         (append_dict): New function.
3601         (type_from_name): New function, extracted from main.
3602         (main): Handle sending dicts.
3603
3604         * tools/dbus-print-message.c (print_iter): Print dict
3605         entries.
3606         
3607 2005-06-16  Colin Walters  <walters@verbum.org>
3608
3609         * glib/dbus-gvalue.c (marshal_basic): Marshal NULL string
3610         values as the empty string (#2948).
3611         
3612 2005-06-16  Colin Walters  <walters@verbum.org>
3613
3614         * dbus/Makefile.am:
3615         * mono/doc/Makefile.am:
3616         * test/glib/Makefile.am:
3617
3618         Fix srcdir != builddir issues (Patch from Chris Wilson, #3477)
3619
3620 2005-06-16  Colin Walters  <walters@verbum.org>
3621
3622         * dbus/dbus-marshal-header.c (_dbus_header_load): Set
3623         header byte order from expected byte order (Patch from Chris Wilson, #3475).
3624
3625         * dbus/dbus-marshal-byteswap.c (byteswap_body_helper): 
3626         Increment pointer after swapping fixed array.  Add assertion
3627         for array length.
3628                 
3629 2005-06-15  Colin Walters  <walters@verbum.org>
3630
3631         * dbus/dbus-sysdeps.c <HAVE_CMSGCRED> (_dbus_read_credentials_unix_socket):
3632         Fix call to dbus_set_error.  (Patch from Michael Banck, #3461)
3633         
3634 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
3635
3636         * NEWS: Update to 0.34
3637
3638 2005-06-15  David Zeuthen  <davidz@redhat.com>
3639
3640         * configure.in (LT_CURRENT): Revert back to 1 as the library
3641         hasn't changed and we've certainly not committed to protocol
3642         stability yet.  All this does is to break ABI. See commit note
3643         from hp@redhat.com 2005-05-05 for details.
3644         
3645 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
3646
3647         * dbus/dbus-connection.c (_dbus_connection_peer_filter): New method 
3648         (_dbus_connection_run_builtin_filters): New method
3649         (dbus_connection_dispatch): Run the builtin filters which in turn
3650         runs the peer filter which handles Ping messages.
3651
3652         * doc/TODO: 
3653          - Ping isn't handled: This patch fixes it
3654          
3655          - Add a test case for the Ping message: added TODO item
3656
3657 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
3658
3659         * dbus/dbus-message.c:
3660         (dbus_message_has_path): New method
3661         (dbus_message_has_interface): New method
3662         (dbus_message_has_member): New method
3663
3664         * dbus/dbus/dbus-sysdeps.c (_dbus_check_dir_is_private_to_user):
3665         New method
3666
3667         * dbus/dbus-keyring.c (_dbus_keyring_reload): Check to see that 
3668         the keyring directory is private to the user
3669
3670         * doc/TODO:
3671          - The convenience functions in dbus-bus.h should perhaps have
3672          the signatures that they would have if they were autogenerated
3673          stubs. e.g. the acquire service function. We should also evaluate
3674          which of these functions to include, in light of the fact that
3675          GLib/Qt native stubs will probably also exist.: Punted
3676
3677          - add dbus_message_has_path(), maybe has_member/interface:
3678          fixed in this patch
3679
3680          - in dbus-keyring.c, enforce that the keyring dir is not
3681          world readable/writable: Fixed in this patch
3682
3683 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
3684
3685         * dbus/dbus-marshal-validate.h: Added a new validation
3686         error code DBUS_VALIDITY_UNKNOWN_OOM_ERROR = -4 for 
3687         out of memory errors when validating signitures
3688
3689         * dbus/dbus-marshal-header.c: use DBUS_VALIDITY_UNKNOWN_OOM_ERROR
3690         in places where we previously used DBUS_VALID and a FALSE return 
3691         value to indicate OOM
3692         
3693         * dbus/dbus-marshal-validate.c (_dbus_validate_signature_with_reason):
3694         Use a stack to track the number of elements inside containers.  The 
3695         stack values are then used to validate that dict entries have only two
3696         elements within them.
3697         (validate_body_helper): check the reason for failure when validating
3698         varients
3699         
3700         * dbus/dbus-message.c (load_message): use 
3701         DBUS_VALIDITY_UNKNOWN_OOM_ERROR in places where we previously used 
3702         DBUS_VALID and a FALSE return value to indicate OOM
3703
3704         * doc/TODO: remove "- validate dict entry number of fields" as this
3705         patch fixes it
3706
3707 2005-06-14  David Zeuthen  <davidz@redhat.com>
3708
3709         * bus/bus.c (process_config_every_time): Drop existing conf-dir
3710         watches (if applicable) and add new watches
3711
3712         * bus/main.c (signal_handler): Handle SIGIO if using D_NOTIFY
3713         (main): Setup SIGIO signal handler if using D_NOTIFY
3714
3715         * bus/config-parser.h: Add prototype bus_config_parser_get_conf_dirs
3716
3717         * bus/config-parser.c (struct BusConfigParser): Add conf_dirs list
3718         (merge_included): Also merge conf_dirs list
3719         (bus_config_parser_unref): Clear conf_dirs list
3720         (include_dir): Add directory to conf_dirs list
3721         (bus_config_parser_get_conf_dirs): New function
3722
3723         * bus/dir-watch.[ch]: New files
3724
3725         * bus/Makefile.am (BUS_SOURCES): Add dir-watch.[ch]
3726
3727         * configure.in: Add checks for D_NOTIFY on Linux
3728
3729 2005-06-14  Colin Walters  <walters@verbum.org>
3730
3731         * glib/dbus-binding-tool-glib.c:
3732         * glib/dbus-gobject.c:
3733         * glib/dbus-gvalue.c: Fix indentation and brace style.
3734         
3735 2005-06-14  Ross Burton <ross@openedhand.com>.
3736
3737         * glib/dbus-glib.h: Make DBusGMethodInvocation
3738         a private structure.  Rearrange prototypes a bit.
3739         
3740         * glib/dbus-gproxy.c (dbus_g_proxy_invoke): Add
3741         documentation for first_arg_type.
3742         
3743         * glib/dbus-gobject.c: Move DBusGMethodInvocation
3744         here, add documentation.  Move dbus_g_method_return
3745         and dbus_g_method_return_error into public API
3746         section.
3747
3748 2005-06-14  Colin Walters  <walters@verbum.org>
3749
3750         * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller):
3751         Add missing return statements, noticed by Ross Burton.
3752         
3753 2005-06-13  Ross Burton <ross@openedhand.com>.
3754
3755         * glib/dbus-gobject.c: Handle errors on message
3756         demarshalling by sending error message back.
3757         * glib/dbus-gvalue.c: Initialize return variables.
3758
3759 2005-06-13  Colin Walters  <walters@verbum.org>
3760
3761         * glib/Makefile.am: Fix thinko in last patch.
3762
3763 2005-06-13  Colin Walters  <walters@verbum.org>
3764
3765         * glib/Makefile.am: Move dbus-gtype-specialized.c
3766         and dbus-gtype-specialized.h into a _HEADERS variable,
3767         install them.
3768
3769 2005-06-12  Colin Walters  <walters@verbum.org>
3770
3771         Async signals and various bugfixes and testing by
3772         Ross Burton <ross@openedhand.com>.
3773
3774         * glib/dbus-gvalue.h: (struct DBusBasicGValue): Delete.
3775         (dbus_gvalue_genmarshal_name_from_type)
3776         (dbus_gvalue_ctype_from_type): Moved to dbus-binding-tool-glib.c.
3777         (dbus_gtype_to_dbus_type): Renamed to dbus_gtype_from_signature.
3778         (dbus_g_value_types_init, dbus_gtype_from_signature)
3779         (dbus_gtype_from_signature_iter, dbus_gtype_to_signature)
3780         (dbus_gtypes_from_arg_signature): New function prototypes.
3781         (dbus_gvalue_demarshal): Take context and error arguments.
3782         (dbus_gvalue_demarshal_variant): New function.
3783         (dbus_gvalue_demarshal_message): New function.
3784         (dbus_gvalue_store): Delete.
3785
3786         * glib/dbus-gvalue.c:
3787
3788         File has been almost entirely rewritten; now we special-case
3789         more types such as DBUS_TYPE_SIGNATURE, handle arrays and
3790         hash tables correctly, etc.  Full support for recursive values
3791         is not yet complete.
3792
3793         * glib/dbus-gproxy.c (dbus_g_proxy_class_init): Change last
3794         argument of signal to G_TYPE_POINTER since we now pass a
3795         structure.
3796         (lookup_g_marshaller): Delete in favor of
3797         _dbus_gobject_lookup_marshaller.
3798         (marshal_dbus_message_to_g_marshaller): Use
3799         _dbus_gobject_lookup_marshaller and dbus_gvalue_demarshal_message
3800         to handle remote signal callbacks.
3801         (dbus_g_proxy_new_from_proxy): New function; creates a new
3802         DBusGProxy by copying an existing one.
3803         (dbus_g_proxy_get_interface, dbus_g_proxy_set_interface)
3804         (dbus_g_proxy_get_path): New functions.
3805         (dbus_g_proxy_marshal_args_to_message): New function;
3806         factored out of existing code.
3807         (DBUS_G_VALUE_ARRAY_COLLECT_ALL): Collect all arguments
3808         from a varargs array.
3809         (dbus_g_proxy_begin_call_internal): New function.
3810         (dbus_g_proxy_end_call_internal): New function.
3811         (dbus_g_proxy_begin_call): Take GTypes instead of DBus types
3812         as arguments; simply invoke dbus_g_proxy_begin_call_internal
3813         after collecting args into value array.
3814         (dbus_g_proxy_end_call): Take GTypes instead of DBus types;
3815         invoke dbus_g_proxy_end_call_internal.
3816         (dbus_g_proxy_invoke): Simply invoke begin_call_interanl and
3817         end_call_internal.
3818         (dbus_g_proxy_call_no_reply): Take GTypes instead of DBus
3819         types.
3820         (array_free_all): New function.
3821         (dbus_g_proxy_add_signal): Take GTypes.
3822
3823         * glib/dbus-gobject.h:
3824         (_dbus_glib_marshal_dbus_message_to_gvalue_array): Delete.
3825         (_dbus_gobject_get_path, _dbus_gobject_lookup_marshaller):
3826         Prototype.
3827
3828         * glib/dbus-gobject.c: Add a global marshal_table hash which
3829         stores mappings from type signatures to marshallers.  Change lots
3830         of invocations of dbus_gtype_to_dbus_type to
3831         dbus_gtype_to_signature.
3832         (_dbus_glib_marshal_dbus_message_to_gvalue_array): Delete.
3833         (introspect_signals): Fix test for query.return_type.
3834         (set_object_property): Update invocation of dbus_gvalue_demarshal.
3835         (invoke_object_method): Many changes.  Handle asynchronous
3836         invocations.  Convert arguments with
3837         dbus_gvalue_demarshal_message.  Handle errors.  Use
3838         DBusSignatureIter instead of strlen on args. Handle all arguments
3839         generically.  Special-case variants.
3840         (dbus_g_method_return, dbus_g_method_return_error): New function.
3841         (DBusGSignalClosure): New structure, closes over signal
3842         information.
3843         (dbus_g_signal_closure_new): New function.
3844         (dbus_g_signal_closure_finalize): New function.
3845         (signal_emitter_marshaller): New function; is special marshaller
3846         which emits signals on bus.
3847         (export_signals): New function; introspects object signals and
3848         connects to them.
3849         (dbus_g_object_type_install_info): Take GType instead of
3850         GObjectClass.
3851         (dbus_g_connection_register_g_object): Invoke export_signals.
3852         (dbus_g_connection_lookup_g_object): New function.
3853         (DBusGFuncSignature) New structure; used for mapping type
3854         signatures to marshallers.
3855         (funcsig_hash): New function; hashes DBusGFuncSignature.
3856         (funcsig_equal): New function; compares DBusGFuncSignature.
3857         (_dbus_gobject_lookup_marshaller): New function.
3858         (dbus_g_object_register_marshaller): New function; used to
3859         register a marshaller at runtime for a particular signature.
3860
3861         * glib/dbus-gmain.c (_dbus_gmain_test): Add various tests.
3862
3863         * glib/dbus-binding-tool-glib.h: Add DBUS_GLIB_ANNOTATION_ASYNC
3864         which notes a server method implementation should be
3865         asynchronous.
3866
3867         * glib/dbus-binding-tool-glib.c
3868         (dbus_binding_tool_output_glib_server): Call
3869         dbus_g_value_types_init.
3870         (write_formal_parameters): Use dbus_gtype_from_signature.  Handle
3871         variants specially.
3872         (dbus_g_type_get_lookup_function): Turn GType into an invocation
3873         of a lookup function.
3874         (write_args_for_direction): Use dbus_g_type_get_lookup_function.
3875         (write_untyped_out_args): New method; write output arguments.
3876         (write_formal_declarations_for_direction): Function for
3877         writing prototypes.
3878         (write_formal_parameters_for_direction): Function for
3879         writing implementations.
3880         (write_typed_args_for_direction): Function for writing
3881         arguments prefixed with GTypes.
3882         (write_async_method_client): Write out async version
3883         of method.
3884
3885         * glib/dbus-binding-tool-glib.c: Include dbus-gvalue-utils.h.
3886         (dbus_g_type_get_marshal_name): Move mapping from GType
3887         to marshal name into here.
3888         (dbus_g_type_get_c_name): Move into here.
3889         (compute_marshaller): Convert signature to type with
3890         dbus_gtype_from_signature, use dbus_g_type_get_marshal_name.
3891         (compute_marshaller_name): Ditto.
3892         (compute_marshaller): Handle async signal annotations.
3893         (gather_marshallers): Return if we don't have a known
3894         prefix.
3895         (generate_glue): Collect introspection blob here, and
3896         write all of the blob at the end.  This allows an object
3897         with multiple interfaces to work.
3898         Mark async methods in introspection blob.
3899
3900         * glib/Makefile.am (libdbus_glib_1_la_SOURCES): Add
3901         dbus-gtype-specialized.c, dbus-gtype-specialized.h,
3902         dbus-gvalue-utils.h, dbus-gvalue-utils.c.
3903
3904         * dbus/dbus-glib.h: Don't include dbus-protocol.h; this
3905         avoids people accidentally using DBUS_TYPE_* which should
3906         not be necessary anymore.
3907         Do include dbus-gtype-specialized.h, which are utilities
3908         for GLib container types.
3909         Add various #defines for types such as
3910         DBUS_TYPE_G_BOOLEAN_ARRAY.
3911         (DBusGValueIterator, DBusGValue): Define, not fully used
3912         yet.
3913         (dbus_g_value_get_g_type): Type for recursive value.
3914         (dbus_g_value_open, dbus_g_value_iterator_get_value)
3915         (dbus_g_value_iterator_get_values, dbus_g_value_iterator_recurse)
3916         (dbus_g_value_free): Prototypes.
3917         (dbus_g_object_register_marshaller, dbus_g_proxy_new_from_proxy): Prototype.
3918         (dbus_g_proxy_set_interface): Prototype.
3919         (dbus_g_proxy_begin_call, dbus_g_proxy_end_call)
3920         (dbus_g_proxy_call_no_reply): Take GLib types instead of DBus
3921         types.
3922         (dbus_g_proxy_get_path, dbus_g_proxy_get_interface):
3923         Accessors.
3924         (DBusGAsyncData, DBusGMethodInvocation): Structures for
3925         doing async invocations.
3926         (dbus_g_method_return, dbus_g_method_return_error):
3927         Prototypes.
3928         * doc/dbus-tutorial.xml: Update GLib section.
3929         
3930         * tools/dbus-viewer.c (load_child_nodes): Update
3931         for new invocation type of dbus_g_proxy_end_call.
3932         (load_from_service_thread_func): Ditto.
3933
3934         * tools/print-introspect.c (main): Ditto.
3935
3936         * tools/dbus-names-model.c (have_names_notify)
3937         (names_model_reload, names_model_set_connection)
3938         Use GTypes.
3939
3940         * python/Makefile.am (INCLUDES): Define DBUS_COMPILATION,
3941         needed since Python bindings use GLib bindings.
3942
3943         * test/glib/Makefile.am (INCLUDES): Define DBUS_COMPILATION.
3944         Add --prefix argument.
3945
3946         * tools/Makefile.am: Define DBUS_COMPILATION.  Remove
3947         unneeded --ignore-unsupported arg.
3948         
3949         * test/glib/test-service-glib.c: 
3950         * test/glib/test-service-glib.xml:
3951         * test/glib/test-dbus-glib.c: Add many more tests.
3952
3953 2005-06-06  David Zeuthen  <davidz@redhat.com>
3954
3955         * doc/TODO: Add item about need to remove deprecated functions.
3956
3957         * dbus/dbus-connection.h: Add prototype for dbus_connection_disconnect
3958
3959         * dbus/dbus-connection.c (dbus_connection_disconnect): New function
3960         to repair the ABI which was broken with the last commit.
3961
3962 2005-06-02  John (J5) Palmieri <johnp@redhat.com>
3963
3964         *  dbus/dbus-connection.c, dbus/dbus-connection.h 
3965         (dbus_connection_disconnect): renamed to dbus_connection_close 
3966         for API symmetry with dbus_connection_open
3967         (_dbus_connection_open_internal): 
3968         s/dbus_connection_disconnect/dbus_connection_close
3969
3970         * dbus/dbus-bus.c (dbus_bus_get):
3971         s/dbus_connection_disconnect/dbus_connection_close
3972
3973         * bus/connection.c (bus_connections_unref, 
3974         bus_connections_setup_connection, bus_connections_expire_incomplete):
3975         s/dbus_connection_disconnect/dbus_connection_close
3976
3977         * bus/dispatch.c (bus_dispatch, kill_client_connection, 
3978         kill_client_connection_unchecked, check_hello_connection):
3979         s/dbus_connection_disconnect/dbus_connection_close
3980
3981         * bus/bus.c (new_connection_callback):
3982         s/dbus_connection_disconnect/dbus_connection_close
3983
3984         * tools/dbus-send.c (main):
3985         s/dbus_connection_disconnect/dbus_connection_close
3986
3987         * test/glib/test-profile.c (no_bus_thread_func, with_bus_thread_func):
3988         s/dbus_connection_disconnect/dbus_connection_close
3989         
3990         * test/test-service.c (path_message_func, filter_func):
3991         s/dbus_connection_disconnect/dbus_connection_close
3992         
3993         * doc/TODO: remove connection_open/connection_disconnect lacks symmetry         item that was just fixed
3994         
3995 2005-05-25  Colin Walters  <walters@verbum.org>
3996
3997         * dbus/dbus-protocol.h: Move various bus service #defines such
3998           as DBUS_SERVICE_DBUS and DBUS_NAME_FLAG_PROHIBIT_REPLACEMENT to
3999           dbus/dbus-shared.h.
4000         * dbus/dbus-shared.h: Various defines moved here.
4001         * dbus/dbus-marshal-header.c: Include dbus-shared.h.
4002
4003 2005-05-25  John (J5) Palmieri  <johnp@redhat.com>
4004
4005         * python/__init__.py: Python bindings deserve a minor version
4006         update.  Upped to (0, 40, 2)
4007
4008 2005-05-24  John (J5) Palmieri  <johnp@redhat.com>
4009
4010         * python/decorators.py: add explicitly_pass_message decorator
4011         for passing in the dbus message as keyword for edge case signal
4012         handling
4013
4014         * python/matchrules.py (SignalMatchRule.__repr__): fix output
4015         to conform with what dbus expects for match rules
4016         (SignalMatchRule.execute): add the dbus message as a keyword
4017         if the signal handler has requested it
4018
4019         * python/examples/example/signal-recipient.py: added some more
4020         examples on how to hook up to signals
4021
4022 2005-05-23  John (J5) Palmieri  <johnp@redhat.com>
4023
4024         * python/decorators.py: import dbus_bindings
4025
4026         * python/matchrules.py (SignalMatchRule, SignalMatchTree, 
4027         SignalMatchNode): new classes that implement wildcard signal
4028         callback matching using a tree lookup. Heavily modified from a
4029         patch sent by Celso Pinto (fd.o bug #3241)
4030
4031         * _dbus.py (add_signal_receiver, remove_signal_receiver, _signal_func):
4032         use new match classes to handle signals.
4033
4034 2005-05-19  John (J5) Palmieri  <johnp@redhat.com>
4035         
4036         * python/dbus_bindings.pyx.in: s/TYPE_PATH/TYPE_OBJECT_PATH
4037
4038 2005-05-18  Havoc Pennington  <hp@redhat.com>
4039
4040         * configure.in: use GLIB_GNU_GETTEXT to get INTLLIBS and require
4041         gettext. Not really worth requiring yet perhaps, but any
4042         production quality 1.0 would require it so we should go ahead and
4043         get things set up. We do have a couple token calls to
4044         bindtextdomain in the code already.
4045
4046 2005-05-16  John (J5) Palmieri  <johnp@redhat.com>
4047
4048         * glib/dbus-gmain.c (io_handler_dispatch): fix deadlock
4049         when using recursive g_main_loops
4050
4051         * python/_dbus.py (class Bus): add the ProxyObjectClass
4052         alias for ProxyObject to make it easier for the Twisted 
4053         networking framework to integrate dbus.
4054
4055         * python/proxies.py (class ProxyObject): add the ProxyMethodClass
4056         alias for ProxyMethod to make it easier for the Twisted 
4057         networking framework to integrate dbus. 
4058
4059 2005-05-11  Ross Burton  <ross@openedhand.com>
4060
4061         * glib/dbus-glib-tool.c: Add --prefix argument.
4062         * glib/dbus-binding-tool-glib.h: Add prefix argument.
4063         * glib/dbus-binding-tool-glib.c (compute_marshaller_name):
4064         Add prefix argument.
4065         (generate_glue): Pass prefix argument down.
4066         (dbus_binding_tool_output_glib_server): Pass prefix to
4067         glib-genmarshal.
4068         
4069 2005-05-11  Colin Walters  <walters@verbum.org>
4070
4071         * tools/dbus-send.c (append_array): New function.
4072         (append_arg): Broken out from main.
4073         (main): Add cheesy hack to send arrays and variants.
4074         (usage): Update.
4075         * tools/dbus-print-message.c (print_iter): Broken out
4076         from main.
4077
4078 2005-05-11  Colin Walters  <walters@verbum.org>
4079
4080         * dbus/dbus-signature.c (dbus_signature_iter_get_signature):
4081         New function, returns signature string for signature iter.
4082         * dbus/dbus-signature.h: Prototype it.
4083         * dbus/dbus-message.c (dbus_message_iter_get_signature):
4084         New function, returns signature string for message iter.
4085         (dbus_message_iter_get_array_len): New function, returns
4086         length of array.
4087         (dbus_message_iter_get_fixed_array): Fix assertion; this
4088         function should be used when the iter is pointing to the
4089         contents of an array
4090         * dbus/dbus-message.h: Prototypes.
4091         * dbus/dbus-marshal-recursive.c (_dbus_type_reader_get_array_length):
4092         New function; returns length of an array.
4093         * dbus/dbus-marshal-recursive.h: Prototype it.
4094         
4095 2005-05-11  Colin Walters  <walters@verbum.org>
4096
4097         * dbus/dbus-sysdeps-util.c <!HAVE_POSIX_GETPWNAM_R>: Fix
4098         compilation error.
4099         
4100 2005-05-08  Havoc Pennington  <hp@redhat.com>
4101
4102         * dbus/dbus-sysdeps-util.c (_dbus_become_daemon): write the
4103         daemon's pid, not the parent's pid, to the file descriptor.
4104         Reported by Taj Morton.
4105
4106 2005-05-05  Havoc Pennington  <hp@redhat.com>
4107
4108         * configure.in (LT_*): add notes on how the libtool versioning
4109         works to save thinking. Increment soname to indicate protocol
4110         breakage (though really the library interface hasn't changed I
4111         guess)
4112
4113         * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated):
4114         verify the GUID received from server matches what we were
4115         expecting, if we had an expectation
4116
4117         * dbus/dbus-auth.c (send_ok): send GUID along with the OK command
4118         (_dbus_auth_get_guid_from_server): new function
4119         (send_begin): parse the OK args
4120
4121         * doc/dbus-specification.xml: add GUID to the auth protocol
4122
4123 2005-05-05  John (J5) Palmieri  <johnp@redhat.com>
4124
4125         * Fix my name in previous changelog ;)
4126
4127         * python/proxies.py (ProxyObject.__getattr__): add further patch
4128         from Anthony Baxter to throw an AttributeError when python 
4129         __special__ functions are called instead of marshling them over 
4130         the bus (Bug#1685 comment 3).
4131
4132 2005-05-04  John (J5) Palmieri  <johnp@redhat.com>
4133
4134         * python/Makefile.am: changed to use pyexecdir for the binding
4135         shared libraries (Bug#2494)
4136
4137         * python/exceptions.py: bring exceptions over from the bindings
4138         so they can be used in applications (Bug#2036)
4139         Make all exceptions derive from DBusException
4140
4141         * python/_dbus.py, python/proxies.py: implement __repr__ in a couple
4142         of classes so that print obj doesn't throw an exception (Bug #1685)
4143
4144 2005-05-03  Ross Burton  <ross@openedhand.com>
4145
4146         * glib/dbus-gobject.c (dbus_g_connection_register_g_object):
4147         Return if we get an error during registration.  Set up a
4148         weak reference on object to unregister if object is destroyed.
4149         (unregister_gobject): New function.
4150         
4151 2005-05-01  John (J5) Palmieri  <johnp@redhat.com>
4152
4153         * python/dbus_bindings.pyx.in: 
4154         - added new type classes for hinting to the marashaler what type 
4155         to send over the wire
4156         - added int16 and uint16 marshalers
4157         - Fixed a bug in the type constants that caused int32 to go out
4158         as uint16 over the wire
4159         * python/dbus.py: split up into different files and renamed _dbus.py
4160         * python/__init__.py, python/_util.py, python/decorators.py, 
4161         python/exceptions.py, python/proxies.py, python/services.py,
4162         python/types.py: new files split off from dbus.py
4163         * python/Makefile.am: Add new files, remove dbus.py and 
4164         install all python files to <python module dir>/dbus
4165         * python/examples/*: Added #!/usr/bin/env python to the top of
4166         every example.  Patch provided by Tatavarty Kalyan
4167
4168 2005-04-25  John (J5) Palmieri  <johnp@redhat.com>
4169
4170         * NEWS: Update to 0.33
4171
4172 2005-04-25  John (J5) Palmieri  <johnp@redhat.com>
4173
4174         * python/dbus_bindings.pyx.in (send_with_reply_handlers): New send
4175         method for doing async calls
4176         (_pending_call_notification): New C function for handling pendning call
4177         callbacks
4178         (set_notify): New method for setting pending call notification
4179         
4180         * python/dbus.py: new version tuple "version" is set at (0, 40, 0)
4181         Async capabilities added to remote method calls
4182         (Sender): class removed
4183         (RemoteService): class removed
4184         (ObjectTree): class removed for now
4185         (RemoteObject): Renamed to ProxyObject
4186         (RemoteMethod): Renamed to ProxyMethod
4187         (method): Decorator added for decorating python methods as dbus methods
4188         (signal): Decorator added for decorating python methods as signal emitters
4189         (ObjectType): Metaclass added for generating introspection data and the
4190         method callback vtable
4191         (Interface): Wrapper class added to wrap objects in a dbus interface
4192         (Object): Uses ObjectType as its metaclass and exports Introspect
4193         of the org.freedesktop.DBus.Introspectable interface
4194         (ValidationException, UnknownMethodException): new exceptions
4195
4196         * python/examples/*: Modified to fit with the new bindings
4197
4198 2005-04-23  Havoc Pennington  <hp@redhat.com>
4199
4200         * dbus/dbus-message.c (dbus_message_append_args): fix doc comment,
4201         reported by Tony Houghton
4202
4203         * test/test-service.c (main): test
4204         dbus_connection_get_object_path_data()
4205
4206         * dbus/dbus-object-tree.c (find_handler): be sure we always init
4207         the exact_match
4208         (_dbus_object_tree_get_user_data_unlocked): new function used by
4209         dbus_connection_get_object_path_data()
4210         (do_register): add assertion test for get_user_data_unlocked
4211         (object_tree_test_iteration): more tests
4212
4213         * dbus/dbus-connection.c (dbus_connection_get_object_path_data):
4214         new function from Dan Reed to let you get the user data from 
4215         dbus_connection_register_object_path()
4216
4217 2005-04-23  John (J5) Palmieri  <johnp@redhat.com>
4218
4219         * dbus/dbus-marshal-recursive-util.c: Fixed buffer overflow
4220         in numerous places that did not account for the NULL terminator
4221         (signature_from_seed): changed the manual string copy loop to 
4222         just use strcpy instead
4223         make check should now pass
4224
4225 2005-04-19  John (J5) Palmieri  <johnp@redhat.com>
4226
4227         * dbus/dbus-marshal-header.c (_dbus_header_create): Fix assert
4228         so that it allows messages that are not signals to pass in 
4229         NULL as the interface.
4230
4231 2005-04-18  David Zeuthen  <davidz@redhat.com>
4232
4233         * glib/dbus-gmain.c (io_handler_destroy_source): 
4234         (timeout_handler_destroy_source, connection_setup_free): 
4235         Also unref the source to avoid memory leaks.
4236
4237 2005-04-13  David Zeuthen  <davidz@redhat.com>
4238
4239         * bus/config-parser.c (bus_config_parser_new): Bump this to a
4240         more reasonable, yet still totally arbitrary, value :-). 
4241
4242 2005-04-13  David Zeuthen  <davidz@redhat.com>
4243
4244         * doc/TODO: Added an "important for 1.0" item about selinux
4245         allow/deny messages
4246
4247 2005-04-13  David Zeuthen  <davidz@redhat.com>
4248
4249         * bus/selinux.c: Add c-file-style to top of file
4250         (log_audit_callback): Don't free the data here anymore
4251         (bus_selinux_check): Don't take spid and tpid since appending
4252         that to auxdata may OOM.
4253         (bus_selinux_allows_acquire_service): Handle OOM and signal back
4254         to the caller if we are OOM by taking an error object.
4255         (bus_selinux_allows_send): -do-
4256
4257         * bus/selinux.h: Fix prototypes for bus_selinux_allows_acquire_service
4258         and bus_selinux_allows_send
4259
4260         * bus/bus.c (bus_context_check_security_policy): Pass error and
4261         pass on OOM thrown by bus_selinux_allows_send()
4262
4263         * bus/services.c (bus_registry_acquire_service): Pass error and
4264         pass on OOM thrown by bus_selinux_allows_acquire_service()
4265
4266 2005-04-13  Havoc Pennington  <hp@redhat.com>
4267
4268         * glib/dbus-gmain.c (message_queue_dispatch): only dispatch one
4269         message at a time to avoid monopolizing the main loop, bug 
4270         #2953 from Benjamin Otte
4271
4272 2005-04-09  Havoc Pennington  <hp@redhat.com>
4273
4274         * dbus/dbus-string.c (copy): change a memcpy to memmove due to
4275         possible overlap, fix from Daniel Reed
4276         (fixup_alignment): fix signedness warnings
4277         (_dbus_string_append_unichar): ditto
4278
4279 2005-04-09  Havoc Pennington  <hp@redhat.com>
4280
4281         * dbus/dbus-message-util.c (_dbus_message_test): fix signedness warning
4282
4283         * glib/dbus-glib-tool.c (main): fix warning
4284
4285         * glib/dbus-binding-tool-glib.c (generate_glue): fix warning
4286
4287         * dbus/dbus-connection.c (dbus_connection_read_write_dispatch):
4288         add a new function that can be used in simple applications that
4289         don't have a main loop and are willing to block
4290
4291 2005-04-05  David Zeuthen  <davidz@redhat.com>
4292
4293         Fix https://bugs.freedesktop.org/show_bug.cgi?id=2889
4294
4295         * glib/dbus-gmain.c:
4296         (io_handler_destroy_source): Remove from list of IO handlers
4297         of the ConnectionSetup object
4298         (timeout_handler_destroy_source): -do- for timeout handlers
4299         (io_handler_source_finalized): Don't remove from list since
4300         we now do that in io_handler_destroy_source(). Renamed from
4301         io_handler_source_destroyed
4302         (timeout_handler_source_destroyed): -do- for timeout handlers
4303         (connection_setup_free): It is now safe to iterate over all
4304         IO and timeout handlers as the _destroy_source removes them
4305         from the list synchronously
4306
4307 2005-03-30  Havoc Pennington  <hp@redhat.com>
4308
4309         * configure.in: change check to gtk 2.4
4310
4311         * tools/dbus-viewer.c (name_combo_changed_callback): remove
4312         gtk_combo_box_get_active_text() usage to decrement GTK requirement
4313         to 2.4
4314
4315 2005-03-29  John (J5) Palmieri  <johnp@redhat.com>
4316
4317         * News: Update 0.32
4318
4319         * HACKING: Fixed realease instructions.  configure.in should be updated to
4320           the next release by the person who made the last release.
4321
4322 2005-03-29  John (J5) Palmieri  <johnp@redhat.com>
4323
4324         * python/lvalue_cast_post_process.py - removed.  Patch has been
4325           submitted to Pyrex maintainers that fixes gcc4.0 errors
4326
4327         * python/Makefile.am: removed refrences to lvalue_cast_post_process.py
4328
4329 2005-03-24  Daniel Reed  <n@ml.org>
4330
4331         * tools/Makefile.am: Make print-introspect and
4332         dbus-bus-introspect.xml building conditional on HAVE_GLIB.
4333
4334 2005-03-22  John (J5) Palmieri  <johnp@redhat.com>
4335
4336         * tools/Makefile.am: Patch by Colin Walters that fixes distcheck
4337
4338         * dbus/dbus-userdb.c, dbus/dbus-userdb-util.c: Add patch we have 
4339           had in Red Hat packages for a while but for some reason never 
4340           got merged upstream
4341           (_dbus_is_a_number): New checks if a string
4342           can be converted to a number and does the conversion if it can
4343           (_dbus_user_database_lookup): Add check to see if the given username
4344           is a udi.  This allows udi's to be used instead of usernames in the
4345           config file.
4346           (_dbus_user_database_lookup_group): Add check to see if the given groupname
4347           is a gdi.  This allows gdi's to be used instead of groupnames in the
4348           config file.
4349
4350 2005-03-21  John (J5) Palmieri  <johnp@redhat.com>
4351
4352         * python/lvalue_cast_post_process.py - added post processor to fix Pyrex
4353           code so that it compiles with gcc4.0
4354
4355         * python/Makefile.am: Added lvalue_cast_post_process.py to EXTRA_DIST
4356           run dbus_bindings.c through lvalue_cast_post_process.py and copy the
4357           results back to dbus_binding.c
4358
4359 2005-03-20  Colin Walters  <walters@verbum.org>
4360
4361         Patch suggested by Inguva Rajasekhar <ringuva@novell.com>.
4362
4363         * configure.in: Require GTK+ 2.6.
4364         
4365 2005-03-20  Colin Walters  <walters@verbum.org>
4366
4367         * Makefile.am (SUBDIRS, DIST_SUBDIRS): Build tools before test.
4368
4369 2005-03-17  Tom Parker  <palfrey@tevp.net>
4370
4371         * dbus/dbus-userdb.c (_dbus_user_database_lookup): Don't
4372         print DBUS_UID_UNSET; instead print passed username.  Also
4373         be sure to actually use gid looked up in cache.
4374         
4375         * dbus/dbus-userdb-util.c (_dbus_user_database_lookup_group): Ditto
4376         for DBUS_GID_UNSET and groupname.
4377
4378 2005-03-17  Colin Walters  <walters@verbum.org>
4379
4380         * bus/print-introspect.c: Move to tools/.
4381         * bus/run-with-tmp-session-bus.sh: Ditto.
4382         
4383         * glib/Makefile.am (dbus-glib-bindings.h): Move
4384         generation to tools/Makefile.am.
4385
4386         * test/glib/run-test.sh: Update to handle move
4387         of run-with-tmp-session-bus.sh.
4388
4389         * test/glib/test-service-glib.c: Update to handle
4390         move of dbus-glib-bindings.h.
4391
4392         * tools/print-introspect.c: Moved here
4393         from bus/, and ported to GLib bindings.
4394
4395         * tools/run-with-tmp-session-bus.sh: Moved here
4396         from bus/.
4397
4398         * tools/Makefile.am: Generate dbus-glib-bindings.h
4399         and dbus-bus-introspect.xml here.
4400
4401         * tools/.cvsignore, glib/.cvsignore, bus/.cvsignore:
4402         Update.
4403
4404 2005-03-17  Colin Walters  <walters@verbum.org>
4405
4406         * bus/driver.c (write_args_for_direction): Use
4407         _dbus_string_get_const_data to retrieve string;
4408         _dbus_string_get_const_data_len doesn't actually return
4409         a NULL-terminated substring.
4410
4411         * test/glib/test-service-glib.c: Include dbus-glib-bindings.h.
4412         (main): Change to use org_freedesktop_DBus_request_name
4413         instead of using g_proxy_begin_call/end_call.
4414
4415 2005-03-15  Joe Shaw  <joeshaw@novell.com>
4416
4417         * mono/ProxyBuilder.cs (BuildFinalizer): Fix some invalid IL when
4418         generating the finalizer.  Fixes from Ben Maurer.
4419
4420 2005-03-12  Joe Shaw  <joeshaw@novell.com>
4421
4422         * mono/BusDriver.cs: Update method names: ListServices
4423         becomes ListNames; GetOwner becomes GetNameOwner.
4424
4425         * mono/ProxyBuilder.cs (BuildFinalizer): Need to load arg 0
4426         onto the eval stack when removing the delegate.
4427
4428 2005-03-12  Joe Shaw  <joeshaw@novell.com>
4429
4430         * mono/dbus-sharp.dll.config.in: Don't hardcode 0 for
4431         LT_CURRENT.  Set it to the autoconf variable.
4432                                                                                 
4433         * mono/ProxyBuilder.cs: Add a finalizer to the generated proxy
4434         classes that disconnects the signal handler delegate from the
4435         service object.  Fixes a big leak of proxy objects on the
4436         client side of things.  Patch from Ben Maurer
4437         <bmaurer@ximian.com>
4438
4439 2005-03-12  Colin Walters  <walters@verbum.org>
4440
4441         * bus/driver.c (write_args_for_direction): New function,
4442         parses a type signature into arguments and outputs to
4443         XML.
4444         (bus_driver_handle_introspect): Use it instead of
4445         hardcoding XML for certain signatures.
4446         
4447         * bus/Makefile.am (dbus-bus-introspect.xml): Add
4448         dependency on dbus-daemon.
4449
4450         * glib/dbus-glib-tool.c (main): Parse ignore_unsupported
4451         argument, pass it to dbus_binding_tool_output_glib_client.
4452
4453         * glib/dbus-binding-tool-glib.c
4454         (generate_client_glue): Protect against multiple inclusion.
4455         (dbus_binding_tool_output_glib_client): Add
4456         G_BEGIN_DECLS/G_END_DECLS.
4457
4458         * glib/dbus-binding-tool-glib.c (compute_client_method_name):
4459         Change to just take iface prefix directly.
4460         (write_formal_parameters): Clarify error message.
4461         (check_supported_parameters): New function; checks to see type
4462         signatures of method parameters are supported.
4463         (generate_client_glue): Handle ignore_unsupported flag.
4464         (dbus_binding_tool_output_glib_client): Handle ignore_unsupported
4465         parameter.
4466
4467         * glib/Makefile.am (dbus-glib-bindings.h): Pass
4468         --ignore-unsupported by default until glib bindings
4469         support arrays.
4470
4471 2005-03-11  Colin Walters  <walters@verbum.org>
4472
4473         * glib/Makefile.am: Generate dbus-glib-bindings.h and
4474         install it.
4475
4476         * bus/print-introspect.c: New file; prints introspection
4477         data for a given name and object path.
4478
4479         * bus/run-with-tmp-session-bus.sh: New file, refactored
4480         from test/glib/run-test.sh.  Creates a temporary session
4481         bus and runs another program.
4482
4483         * test/glib/run-test.sh: Refactor to invoke
4484         run-with-tmp-session-bus.sh.
4485
4486         * bus/driver.c (bus_driver_handle_introspect): Fix to print new
4487         introspection format.  Also change to use DBUS_TYPE_x_AS_STRING
4488         macros instead of hardcoding.
4489
4490         * glib/.cvsignore, bus/.cvsignore, test/glib/.cvsignore: Update.
4491
4492 2005-03-11  Joe Shaw  <joeshaw@novell.com>
4493
4494         * dbus/dbus-connection.c (dbus_connection_send_with_reply): Remove
4495         this unref; it doesn't match up evenly in some codepaths.
4496         (_dbus_connection_block_pending_call): Unref at every exitpoint;
4497         this evenly matches with the ref near the top of this function.
4498
4499 2005-03-09  Joe Shaw  <joeshaw@novell.com>
4500
4501         * dbus/dbus-object-tree.c
4502         (_dbus_object_tree_unregister_and_unlock): If checks are enabled
4503         and we try to unregister a path that's not registered, still go
4504         through the process of unlocking and don't just return.
4505
4506 2005-03-09  Colin Walters  <walters@verbum.org>
4507
4508         * glib/dbus-gproxy.c (dbus_g_proxy_invoke): New method; calls
4509         to this are generated for client-side wrappers.  Invokes a
4510         D-BUS method and returns reply values.  
4511
4512         * glib/dbus-binding-tool-glib.c (write_args_sig_for_direction): New
4513         function; writes signature string for argument direction.
4514         (write_args_for_direction): Change to pass input values directly
4515         instead of via address, and fix indentation.
4516         (generate_client_glue): Change to invoke dbus_g_proxy_invoke.  Also
4517         make generated wrappers inlineable.
4518
4519         * dbus/dbus-message.c (dbus_message_iter_get_fixed_array): Add
4520         note about using dbus_type_is_fixed.
4521
4522         * dbus/dbus-marshal-basic.c (_dbus_type_is_fixed): Moved to
4523         dbus/dbus-signature.c as dbus_type_is_fixed.
4524
4525         All callers updated.
4526
4527         * dbus/dbus-signature.c (dbus_type_is_fixed): Moved here
4528         from dbus/dbus-marshal-basic.c:_dbus_type_is_fixed.
4529
4530         * dbus/dbus-signature.h: Prototype.
4531
4532         * glib/dbus-binding-tool-glib.c (compute_marshaller_name): Fix
4533         error printf code.
4534
4535         * test/glib/test-dbus-glib.c (main): Be sure to clear error as
4536         appropriate instead of just freeing it.
4537         (main): Free returned strings using g_free.
4538
4539         * test/glib/Makefile.am (test-service-glib-glue.h)
4540         (test-service-glib-bindings.h): Add dependency on dbus-binding-tool.
4541
4542         * glib/dbus-gvalue.c (MAP_BASIC): Refactored from MAP_BASIC_INIT;
4543         simply maps a simple D-BUS type to GType.
4544         (dbus_dbus_type_to_gtype): Function which maps D-BUS type to
4545         GType.
4546         (dbus_gvalue_init): Just invoke dbus_dbus_type_to_gtype and
4547         initialize the value with it.
4548         (dbus_gvalue_binding_type_from_type): Unused, delete.
4549         (dbus_gvalue_demarshal): Switch to hardcoding demarshalling for
4550         various types instead of unmarshalling to value data directly.
4551         Remove can_convert boolean.
4552         (dbus_gvalue_marshal): Remove duplicate initialization; switch to
4553         returning directly instead of using can_convert boolean.
4554         (dbus_gvalue_store): New function; not related to D-BUS per-se.
4555         Stores a GValue in a pointer to a value of its corresponding C
4556         type.
4557
4558         * glib/dbus-gvalue.h: Remove dbus_gvalue_binding_type_from_type,
4559         add dbus_gvalue_store.
4560
4561 2005-03-08  Joe Shaw  <joeshaw@novell.com>
4562
4563         Fix a bunch of lifecycle and memory management problems
4564         in the mono bindings.
4565
4566         * mono/Arguments.cs (Arguments): Implement IDisposable
4567
4568         * mono/Bus.cs (Bus): Don't allow public instantiation.  This is
4569         strictly a static class.
4570
4571         * mono/Connection.cs: Move the DBusObjectPathVTable and associated
4572         delegates into this file.
4573         (Connection): Implement IDisposable.
4574         (Dispose): Disconnect the connection and set the raw connection
4575         pointer to IntPtr.Zero.
4576         (~Connection): Call Dispose().
4577         (RegisterObjectPath): Added.  Manages the registration of object
4578         paths so we can cleanly disconnect them at dispose/finalize time.
4579         (UnregisterObjectPath): Ditto.
4580         (set_RawConnection): Unregister all of the object paths when
4581         changing the underlying DBusConnection.  Add them back onto the
4582         new connection, if any.
4583
4584         * mono/Handler.cs: Don't implement IDisposable; it doesn't use any
4585         more unmanaged resources anymore, so it's not necessary.  Move all
4586         the DBusObjectPathVTable stuff out of here.
4587         (Handler): Save references to our delegates so that they don't get
4588         finalized.  Call Connection.RegisterObjectPath() instead of
4589         dbus_connection_register_object_path() directly.
4590         (Message_Called): Dispose the message after we're finished with
4591         it.
4592
4593         * mono/Message.cs (Message): Implement IDisposable.
4594         (Dispose): Dispose the Arguments, and set the RawMessage to
4595         IntPtr.Zero.
4596         (SendWithReplyAndBlock): We own the ref to the reply that comes
4597         back from dbus_connection_send_with_reply_and_block() so add a
4598         comment about that and unref it after we've constructed a managed
4599         MethodReturn class around it.  Fixes a big, big leak.
4600
4601         * mono/ProxyBuilder.cs: Reflect into Message to get the Dispose
4602         method.
4603         (BuildSignalHandler): After we've sent the Signal message, dispose
4604         of it.
4605         (BuildMethod): Dispose of the method call and reply messages after
4606         we've sent the message and extracted the data we want from the
4607         reply.
4608
4609         * mono/Service.cs (UnregisterObject): Don't call handler.Dispose()
4610         anymore.
4611         (Service_FilterCalled): Dispose of the message after we're
4612         finished with it.
4613
4614 2005-03-08  Joe Shaw  <joeshaw@novell.com>
4615
4616         * dbus/dbus-connection.c (dbus_connection_send_with_reply):
4617         After we attach our pending call to the connection, unref
4618         it.  Fixes a leak.
4619  
4620         * mono/Connection.cs (set_RawConnection): Disconnect our
4621         filter and match callbacks from the old connection and
4622         reconnect them to the new connection, if any.
4623
4624         * mono/DBusType/Array.cs: "Code" is a static member, so
4625         don't use "this" to refer to it.  Fix for stricter checking
4626         in Mono 1.1.4.
4627  
4628         * mono/DBusType/ObjectPath.cs (Append): Don't leak the
4629         object path that we pass into unmanaged code.
4630  
4631         * mono/DBusType/String.cs (Append): Don't leak the string
4632         that we pass into unmanged code.
4633
4634 2005-03-07  John (J5) Palmieri  <johnp@redhat.com>
4635         * NEWS: Update for 0.31
4636
4637         * configure.in: Release 0.31
4638         add LT_CURRENT, LT_REVISION, LT_AGE for easy soname bumping
4639
4640         * qt/Makefile.am: fixed build
4641
4642         * dbus/Makefile.am: soname bump for libdbus
4643
4644         * glib/Makefile.am: soname bump for libdbus-glib
4645
4646 2005-03-05  Havoc Pennington  <hp@redhat.com>
4647
4648         * dbus/dbus-sysdeps.c:
4649         (pseudorandom_generate_random_bytes_buffer): fix to have no return
4650         value
4651         (_dbus_generate_random_bytes_buffer): fix return value
4652
4653         * dbus/dbus-sysdeps-util.c: s/GETPWNAME/GETPWNAM/ so configure
4654         checks actually work, from Tom Parker <fdo@tevp.net>
4655
4656 2005-03-01  Colin Walters  <walters@verbum.org>
4657
4658         * test/glib/test-dbus-glib.c (lose, lose_gerror): Utility
4659         functions copied from dbus-glib-tool.c.
4660         (main): Convert lots of error code to use them.
4661         Also add some testing for introspection bits.
4662
4663 2005-03-01  Colin Walters  <walters@verbum.org>
4664         
4665         * doc/TODO: Remove introspection signature TODO.
4666
4667 2005-02-27  Colin Walters  <walters@verbum.org>
4668
4669         * glib/dbus-gidl.c (property_info_get_type, arg_info_get_type):
4670         Change return value to const char * instead of int so we can do
4671         full signatures.
4672         (struct PropertyInfo, struct ArgInfo): Store char *.
4673         (property_info_new, arg_info_new): Update parameters, strdup.
4674         (property_info_unref, arg_info_unref): Free.
4675
4676         * glib/dbus-gidl.h: Update prototypes.
4677
4678         * glib/dbus-gparser.c (basic_type_from_string): Delete.
4679         (validate_signature): New function, just validates signature and
4680         sets GError.
4681         (parse_property, parse_arg): Invoke validate_signature.  Store
4682         signature instead of just type code.
4683
4684         * glib/dbus-gvalue.c (base_type_from_signature): New utility
4685         function to return a primary type for a signature, dropping
4686         information about types in container types.
4687         (dbus_gvalue_genmarshal_name_from_type)
4688         (dbus_gvalue_binding_type_from_type)
4689         (dbus_gvalue_ctype_from_type): Update to take full signature
4690          instead of type code.
4691         (dbus_gtype_to_dbus_type): Moved here from glib/dbus-gobject.c.
4692
4693         * glib/dbus-gvalue.h: Update prototypes for above.
4694
4695         * glib/dbus-gobject.c (gtype_to_dbus_type): Moved to
4696         glib/dbus-gvalue.c as dbus_gtype_to_dbus_type.
4697         (introspect_properties, introspect_signals, write_interface):
4698         Update to handle signatures, and remove usage of
4699         _dbus_gutils_type_to_string.
4700         (handle_introspect): Print out type codes instead of e.g. "string"
4701         in hardcoded introspection XML; also use x_AS_STRING constants
4702         instead of hardcoding in string.
4703
4704         * glib/dbus-glib-tool.c (pretty_print): Handle signature change
4705         to string.  Remove usage of _dbus_gutils_type_to_string.
4706
4707         * glib/dbus-gutils.c (_dbus_gutils_type_to_string): Delete.
4708
4709         * glib/dbus-gutils.h (_dbus_gutils_type_to_string): Update for
4710         deletion.
4711         
4712         * glib/dbus-binding-tool-glib.c (compute_marshaller)
4713         (compute_marshaller_name, generate_glue): Handle signature change
4714         to string.
4715         (write_formal_parameters, write_args_for_direction): Ditto, and
4716         remove FIXME.
4717
4718         * tools/dbus-tree-view.c (type_to_string): Delete.
4719         (info_set_func_text): Update to print full signatures.
4720
4721         * test/glib/test-service-glib.xml: Change types to new
4722         introspection format.
4723
4724 2005-02-26  Havoc Pennington  <hp@redhat.com>
4725
4726         * doc/TODO: remove the "guid" item
4727
4728         * test/glib/test-profile.c (no_bus_thread_func): use open_private
4729         (with_bus_thread_func): use open_private
4730
4731         * dbus/dbus-connection.c (dbus_connection_open_private): new
4732         function that works like the old dbus_connection_open()
4733         (dbus_connection_open): now returns an existing connection if
4734         possible
4735
4736         * dbus/dbus-server-unix.c (handle_new_client_fd_and_unlock): pass
4737         through the GUID to the transport
4738
4739         * dbus/dbus-server.c (_dbus_server_init_base): keep around the
4740         GUID in hex-encoded form.
4741
4742         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
4743         pass GUID argument in to the transport
4744
4745         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd): add
4746         guid argument
4747
4748         * dbus/dbus-transport.c (_dbus_transport_init_base): add guid argument
4749
4750         * dbus/dbus-auth.c (_dbus_auth_server_new): add guid argument
4751
4752 2005-02-25  Havoc Pennington  <hp@redhat.com>
4753
4754         * doc/dbus-specification.xml: document the GUID thing
4755
4756         * dbus/dbus-server.c (_dbus_server_init_base): initialize a
4757         globally unique ID for the server, and put a "guid=hexencoded"
4758         field in the address
4759
4760         * dbus/dbus-bus.c: fix missing #include of dbus-threads-internal.h
4761
4762         * dbus/dbus-message.c: ditto
4763
4764         * dbus/dbus-dataslot.c: ditto
4765
4766         * dbus/dbus-list.c: ditto
4767
4768         * dbus/dbus-internals.h: wait, just include
4769         dbus-threads-internal.h here
4770         
4771         * dbus/dbus-string.c (_dbus_string_copy_to_buffer): move back for
4772         use in main library
4773
4774         * dbus/dbus-sysdeps.c (_dbus_generate_random_bytes_buffer): new function
4775
4776 2005-02-24  Colin Walters  <walters@verbum.org>
4777
4778         * test/glib/Makefile.am (EXTRA_DIST): Add test-service-glib.xml
4779
4780 2005-02-24  John (J5) Palmieir  <johnp@redhat.com>
4781
4782         * glib/Makefile.am: added dbus-gobject.h to sources list
4783         so distcheck doesn't fail
4784         
4785 2005-02-24  Havoc Pennington  <hp@redhat.com>
4786
4787         * dbus/dbus-server.c, dbus/dbus-server-unix.c: change semantics so
4788         you must disconnect before unref, since locking and other things
4789         are screwed up otherwise. Fix assorted other locking stuff.
4790
4791         * dbus/dbus-signature.c (dbus_signature_iter_get_element_type):
4792         fix compilation
4793
4794         * dbus/dbus-threads-internal.h: move the mutex/condvar wrappers
4795         into a private header and don't export from the library
4796
4797         * throughout - call _dbus_thread_stuff vs. dbus_thread_stuff
4798
4799 2005-02-24  Colin Walters  <walters@verbum.org>
4800         
4801         * dbus/dbus-signature.c: New file; implements various functions
4802         related to type signatures.  Includes an interator for parsing,
4803         validation functions.
4804         (dbus_type_is_basic): Moved here from
4805         dbus-marshal-basic.c:_dbus_type_is_basic.
4806         (dbus_type_is_container): Moved here from
4807         dbus-marshal-basic.c:_dbus_type_is_container.
4808
4809         All callers of _dbus_type_is_container and _dbus_type_is_basic
4810         updated, and include dbus-signature.h.
4811
4812         * dbus/dbus-signature.h: New file; prototypes for the above.
4813
4814         * dbus/Makefile.am (DBUS_LIB_SOURCES): Add dbus-signature.c,
4815         dbus-signature.h.
4816
4817         * dbus/dbus-marshal-basic.c (map_type_char_to_type): New utility
4818         function factored out of _dbus_first_type_in_signature.
4819         (_dbus_first_type_in_signature_c_str): New function; returns first
4820         type code for a type signature character.
4821
4822         * dbus/dbus-marshal-basic.h: Prototype _dbus_first_type_in_signature_c_str,
4823         handle function moves.
4824
4825         * dbus/dbus-marshal-recursive.h: Export _dbus_type_signature_next.
4826
4827         * dbus/dbus-marshal-recursive.c (_dbus_type_signature_next): New
4828         function; skips to next complete type in type signature.
4829         Implemented using previous skip_one_complete_type.  Now
4830         skip_one_complete_type just delegates to
4831         _dbus_type_signature_next.
4832
4833         * dbus/dbus-marshal-basic.c (_dbus_type_is_basic): Moved
4834         to dbus-signature.c
4835         (_dbus_type_is_container): Ditto.
4836
4837         * doc/dbus-specification.xml: Update introspection sample to
4838         use real type signatures.
4839
4840         * dbus/dbus-test.h: Prototype signature test.
4841
4842         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): Run
4843         signature tests.
4844
4845         * dbus/dbus-protocol.h (DBUS_ERROR_INVALID_SIGNATURE): New error.
4846
4847 2005-02-23  John (J5) Palmieri  <johnp@redhat.com>
4848
4849         * python/dbus_bindings.pyx.in (PendingCall::get_reply):
4850         s/dbus_pending_call_get_reply/dbus_pending_call_steal_reply
4851
4852 2005-02-21  Colin Walters  <walters@verbum.org>
4853
4854         * dbus/dbus-test-main.c (main): Take optional specific test
4855         argument.
4856
4857         * dbus/dbus-test.c (run_test): New function, runs a test function
4858         with no data directory.
4859         (run_data_test): Like above, but takes data directory.
4860         (dbus_internal_do_not_use_run_tests): Take
4861         specific test argument.  Replace lots of cut n' paste code
4862         with run_test and run_data_test.
4863
4864         * dbus/dbus-test.h: Update prototype for
4865         dbus_internal_do_not_use_run_tests.
4866
4867 2005-02-20  Havoc Pennington  <hp@redhat.com>
4868
4869         Fix bugs reported by Daniel P. Berrange
4870         
4871         * dbus/dbus-server.c (_dbus_server_unref_unlocked): new function
4872         (protected_change_watch): new function
4873         (_dbus_server_toggle_watch, _dbus_server_remove_watch)
4874         (_dbus_server_add_watch): change to work like the
4875         dbus-connection.c equivalents; like those, probably kind of
4876         busted, but should at least mostly work for now
4877         (dbus_server_disconnect): drop the lock if we were already
4878         disconnected, patch from Daniel P. Berrange
4879
4880         * dbus/dbus-server.c (_dbus_server_toggle_timeout) 
4881         (_dbus_server_remove_timeout, _dbus_server_add_timeout): all the
4882         same stuff
4883
4884         * doc/TODO: todo about unscrewing this mess
4885
4886 2005-02-19  Colin Walters  <walters@verbum.org>
4887
4888         * glib/dbus-binding-tool-glib.c
4889         (dbus_binding_tool_output_glib_server): Fix iochannel refcounting.
4890
4891         * glib/dbus-glib-tool.c: Include dbus-glib-tool.h, as well
4892         as errno.h and sys/stat.h.
4893         (lose): New function, prints error with
4894         newline and exits.
4895         (lose_gerror): Similar, but takes GError for message.
4896         (main): Add --output argument to specify output file to write to,
4897         instead of always printing to stdout.  In this mode, determine
4898         timestamps on source files to see whether any are newer than the
4899         target file.  If not, exit.  Also convert a number of error
4900         messages to use lose (since it's shorter), and switch to using
4901         g_io_channel_shutdown.
4902
4903 2005-02-19  Havoc Pennington  <hp@redhat.com>
4904
4905         * glib/dbus-gobject.c
4906         (_dbus_glib_marshal_dbus_message_to_gvalue_array): add docs
4907
4908         * glib/dbus-glib.c: fix doxygen warnings
4909
4910         * glib/dbus-gparser.c (parse_annotation): error if an annotation
4911         is found on an <arg>
4912
4913 2005-02-17  Colin Walters  <walters@verbum.org>
4914
4915         * glib/dbus-gobject.h: Don't export
4916         _dbus_glib_marshal_dbus_message_to_gvalue_array.
4917         
4918         * glib/dbus-gobject.c (_dbus_glib_marshal_dbus_message_to_gvalue_array): Do rename.
4919         (invoke_object_method): Handle it.
4920
4921         * glib/dbus-gproxy.c (marshal_dbus_message_to_g_marshaller):
4922         Handle rename.
4923         
4924 2005-02-17  Colin Walters  <walters@verbum.org>
4925
4926         * bus/.cvsignore, doc/.cvsignore
4927         * test/data/valid-service-files/.cvsignore, test/glib/.cvsignore:
4928         Update.
4929
4930 2005-02-17  Colin Walters  <walters@verbum.org>
4931         
4932         * dbus/dbus-protocol.h (DBUS_SERVICE_ORG_FREEDESKTOP_DBUS):
4933         Rename to DBUS_SERVICE_DBUS.
4934         (DBUS_PATH_ORG_FREEDESKTOP_DBUS): Rename to DBUS_PATH_DBUS.
4935         (DBUS_PATH_ORG_FREEDESKTOP_LOCAL): Rename to DBUS_PATH_LOCAL.
4936         Change the value from "org.freedesktop.Local"
4937         to "org.freedesktop.DBus.Local".
4938         (DBUS_INTERFACE_ORG_FREEDESKTOP_DBUS): Rename to DBUS_INTERFACE_DBUS.
4939         (DBUS_INTERFACE_ORG_FREEDESKTOP_INTROSPECTABLE): Rename to
4940         DBUS_INTERFACE_INTROSPECTABLE.
4941         Change the value from "org.freedesktop.Introspectable"
4942         to "org.freedesktop.DBus.Introspectable".
4943         (DBUS_INTERFACE_ORG_FREEDESKTOP_PROPERTIES): Rename to
4944         DBUS_INTERFACE_PROPERTIES.
4945         Change the value from "org.freedesktop.Properties"
4946         to "org.freedesktop.DBus.Properties".
4947         (DBUS_INTERFACE_ORG_FREEDESKTOP_PEER): Rename to
4948         DBUS_INTERFACE_PEER.
4949         Change the value from "org.freedesktop.Peer"
4950         to "org.freedesktop.DBus.Peer".
4951         (DBUS_INTERFACE_ORG_FREEDESKTOP_LOCAL): 
4952         DBUS_INTERFACE_LOCAL.
4953         Change the value from "org.freedesktop.Local"
4954         to "org.freedesktop.DBus.Local".
4955
4956         All other users of those constants have been changed.
4957
4958         * bus/driver.c (bus_driver_handle_introspect): Use constants.
4959
4960         * glib/dbus-gobject.c (handle_introspect): Use constants.
4961
4962         * doc/dbus-faq.xml, doc/dbus-specification.xml: Update for rename.
4963
4964 2005-02-17  Colin Walters  <walters@verbum.org>
4965
4966         * glib/dbus-gparser.c (struct Parser): Add in_annotation boolean.
4967         (parse_node, parse_interface, parse_method, parse_signal)
4968         (parse_property, parse_annotation): Lose if we're currently in an
4969         annotation.
4970         (parse_annotation): New function.
4971         (parser_start_element, parser_end_element): Handle annotation.
4972         (parse_method, parse_interface): Remove support for c_name attribute,
4973         switch to annotations.
4974
4975         * glib/dbus-gidl.h (interface_info_get_binding_names)
4976         (method_info_get_binding_names)
4977         (interface_info_get_binding_name, method_info_get_binding_name)
4978         (interface_info_set_binding_name, method_info_set_binding_name):
4979         Remove.
4980         (interface_info_get_annotations, method_info_get_annotations)
4981         (interface_info_get_annotation, method_info_get_annotation)
4982         (interface_info_add_annotation, method_info_add_annotation):
4983         Prototype.
4984
4985         * glib/dbus-gidl.c (struct InterfaceInfo): Substitute "annotations"
4986         for "bindings".
4987         (struct MethodInfo): Ditto.
4988         Straightfoward conversion of binding methods into annotation methods
4989         as prototyped.
4990
4991         * glib/dbus-glib-tool.c (pretty_print): Print annotations.
4992
4993         * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_C_SYMBOL): Define.
4994
4995         * glib/dbus-binding-tool-glib.c (gather_marshallers, generate_glue):
4996         Use new annotation API.
4997
4998         * doc/introspect.dtd: Fix a number of DTD syntax errors.  Add
4999         annotation element.
5000         
5001         * doc/dbus-specification.xml: Discuss introspection annotations,
5002         include list of well-known annotations.
5003
5004         * test/glib/test-service-glib.xml: Make validate against new DTD.
5005
5006 2005-02-17  Colin Walters  <walters@verbum.org>
5007
5008         This patch is based on initial work from
5009         Paul Kuliniewicz <kuliniew@purdue.edu>.
5010
5011         * glib/dbus-gvalue.c (dbus_gvalue_init): New function; move
5012         initialization of GValue from dbus type to here.
5013         (dbus_gvalue_genmarshal_name_from_type): New function; generates a string
5014         for the "glib-genmarshal" program from a DBus type.
5015         (dbus_gvalue_binding_type_from_type): New function; turns a DBus type
5016         into the C name for it we use in the glib bindings.
5017         (dbus_gvalue_ctype_from_type): New function; maps a DBus type into a
5018         glib C type (not GValue).
5019         (dbus_gvalue_demarshal): invoke dbus_gvalue_init.
5020
5021         * glib/dbus-gutils.c (_dbus_gutils_wincaps_to_uscore): Moved here
5022         from dbus-gobject.c.
5023
5024         * glib/dbus-gutils.h: Prototype it.
5025
5026         * glib/dbus-gproxy.c: Include new dbus-gobject.h.
5027         (marshal_dbus_message_to_g_marshaller): Use new shared function
5028         dbus_glib_marshal_dbus_message_to_gvalue_array.
5029
5030         * glib/dbus-gparser.c (parse_interface, parse_method): Handle c_name attribute.
5031         Will be changed once we have annotations.
5032
5033         * glib/dbus-gobject.c: Change info_hash_mutex from GStaticMutex to
5034         GStaticRWLock.  Callers updated.
5035         (wincaps_to_uscore): Move to dbus-gutils.c.  Callers updated.
5036         (string_table_next): New function for iterating over zero-terminated
5037         string value array.
5038         (string_table_lookup): New function; retrieves specific entry in
5039         array.
5040         (get_method_data): New function; look up method data in object data chunk.
5041         (object_error_domain_prefix_from_object_info)
5042         (object_error_code_from_object_info): New functions, but not implemented yet.
5043         (method_interface_from_object_info): New function; retrieve interface name.
5044         (method_name_from_object_info): New function; retrieve method name.
5045         (method_arg_info_from_object_info): New function; retrieve argument data.
5046         (arg_iterate): New function; iterates over serialized argument data.
5047         (method_dir_signature_from_object_info): New function; returns a
5048         GString holding type signature for arguments for just one
5049         direction (input or output).
5050         (method_input_signature_from_object_info)
5051         (method_output_signature_from_object_info): New functions.
5052         (dbus_glib_marshal_dbus_message_to_gvalue_array): New shared function;
5053         converts dbus message arguments into a GValue array.  Used for both
5054         signal handling and method invocation.
5055         (struct DBusGlibWriteIterfaceData): New utility structure.
5056         (write_interface): New function; generate introspection XML for
5057         an interface.
5058         (introspect_interfaces): New function; gathers all interface->methods,
5059         generates introspection XML for them.
5060         (handle_introspect): Invoke introspect_interfaces.
5061         (get_object_property): Be sure to zero-initalize stack-allocated GValue.
5062         (lookup_object_and_method): New function; examines an incoming message
5063         and attempts to match it up (via interface, method name, and argument
5064         signature) with a known object and method.
5065         (gerror_domaincode_to_dbus_error_name): New function; converts a
5066         GError domain and code into a DBus error name.  Needs GError data
5067         added to object introspection to work well.
5068         (gerror_to_dbus_error_message): Creates a DBusMessage error return from
5069         GError.
5070         (invoke_object_method): New function to invoke an object method
5071         looked up via lookup_object_and_method.  Parses the incoming
5072         message, turns it into a GValue array, then invokes the marshaller
5073         specified in the DBusGMethodInfo.  Creates a new message with
5074         either return values or error message as appropriate.
5075         (gobject_message_function): Invoke lookup_object_and_method and
5076         invoke_object_method.
5077
5078         * glib/dbus-glib-tool.c: Include dbus-binding-tool-glib.h.
5079         (enum DBusBindingOutputMode): New enum for binding output modes.
5080         (pretty_print): Print binding names.
5081         (dbus_binding_tool_error_quark): GError bits.
5082         (version): Fix typo.
5083         (main): Create GIOChannel for output.  Parse new --mode argument,
5084         possible values are "pretty-print", "glib-server", "glib-client".
5085         Use mode to invoke appropriate function.
5086         
5087         * glib/dbus-gobject.h: Prototype dbus_glib_marshal_dbus_message_to_gvalue_array.
5088
5089         * glib/dbus-glib-tool.h: New header, just includes GError bits
5090         for now.
5091
5092         * glib/dbus-gidl.c (struct InterfaceInfo): Add bindings hashtable;
5093         maps binding style to name.
5094         (struct MethodInfo): Ditto.
5095         (get_hash_keys, get_hash_key): Utility function, returns keys for
5096         a GHashTable.
5097         (interface_info_new, method_info_new): Initialize bindings.
5098         (interface_info_unref, method_info_unref): Destroy bindings.
5099         (method_info_get_binding_names, method_info_get_binding_name)
5100         (interface_info_get_binding_names, interface_info_get_binding_name):
5101         Functions for retrieving binding names.
5102         (method_info_set_binding_name, interface_info_set_binding_name):
5103         Functions for setting binding names.
5104
5105         * glib/dbus-binding-tool-glib.h: New file, has prototypes
5106         for glib binding generation.
5107
5108         * glib/dbus-binding-tool-glib.c: New file, implements server-side
5109         and client-side glib glue generation.
5110
5111         * glib/Makefile.am (dbus_binding_tool_SOURCES): Add
5112         dbus-binding-tool-glib.c, dbus-binding-tool-glib.h,
5113         dbus-glib-tool.h.
5114
5115         * dbus/dbus-glib.h (struct DBusGMethodMarshaller): Remove in favor
5116         of using GClosureMarshal directly.
5117         (struct DBusGObjectInfo): Add n_infos member.
5118
5119         * test/glib/test-service-glib.xml: New file; contains introspection data
5120         for MyTestObject used in test-service-glib.c.
5121
5122         * test/glib/test-service-glib.c (enum MyObjectError): New GError enum.
5123         (my_object_do_nothing, my_object_increment, my_object_throw_error)
5124         (my_object_uppercase, my_object_many_args): New test methods.
5125         (main): Use dbus_g_object_class_install_info to include generated object
5126         info.
5127
5128         * test/glib/Makefile.am: Generate server-side glue for test-service-glib.c,
5129         as well as client-side bindings.
5130
5131         * test/glib/test-dbus-glib.c: Include test-service-glib-bindings.h.
5132         (main): Activate TestSuiteGLibService; test invoke a bunch of its methods
5133         using both the dbus_gproxy stuff directly as well as the generated bindings.
5134
5135 2005-02-15  Havoc Pennington  <hp@redhat.com>
5136
5137         * dbus/dbus-connection.c (dbus_connection_dispatch): always
5138         complete a pending call, don't run filters first.
5139
5140         * glib/dbus-gproxy.c (dbus_g_proxy_end_call): change to use
5141         dbus_pending_call_steal_reply
5142
5143         * dbus/dbus-pending-call.c (dbus_pending_call_block): just call
5144         _dbus_connection_block_pending_call
5145         (dbus_pending_call_get_reply): change to steal_reply and return a
5146         ref
5147
5148         * dbus/dbus-connection.c
5149         (dbus_connection_send_with_reply_and_block): port to work in terms
5150         of DBusPendingCall
5151         (_dbus_connection_block_pending_call): replace block_for_reply
5152         with this
5153
5154 2005-02-14  Havoc Pennington  <hp@redhat.com>
5155
5156         * dbus/dbus-userdb-util.c (_dbus_user_database_lookup_group):
5157         properly handle looking up group information by name; fix 
5158         from j@bootlab.org
5159
5160 2005-02-13  Havoc Pennington  <hp@redhat.com>
5161
5162         * dbus/dbus-connection.c (dbus_connection_return_message) 
5163         (dbus_connection_borrow_message): hold dispatch lock while message
5164         is outstanding
5165         (_dbus_connection_block_for_reply): hold dispatch lock while we
5166         block for the reply, so nobody steals our reply
5167         (dbus_connection_pop_message): hold the dispatch lock while we
5168         pluck the message
5169
5170 2005-02-13  Havoc Pennington  <hp@redhat.com>
5171
5172         * dbus/dbus-connection.c (_dbus_connection_acquire_dispatch)
5173         (_dbus_connection_release_dispatch)
5174         (_dbus_connection_acquire_io_path)
5175         (_dbus_connection_release_io_path): make the mutex and condvar
5176         control access to the "acquired" flag. Drop the connection lock
5177         while waiting on the condvar. Hopefully these are baby steps in
5178         roughly the right direction.
5179
5180 2005-02-13  Havoc Pennington  <hp@redhat.com>
5181
5182         * dbus/dbus-connection.c: use separate mutexes for the condition
5183         variables; this is some kind of baseline for sanity, but the
5184         condition variables still aren't used correctly afaict
5185
5186 2005-02-13  Havoc Pennington  <hp@redhat.com>
5187
5188         * dbus/dbus-object-tree.c (handle_default_introspect_and_unlock):
5189         fix a double-unlock
5190
5191         * dbus/dbus-connection.c
5192         (_dbus_connection_detach_pending_call_unlocked): add this
5193
5194         Initial semi-correct pass through to fix thread locking; there are
5195         still some issues with the condition variable paths I'm pretty
5196         sure
5197         
5198         * dbus/dbus-server.c: add a mutex on DBusServer and appropriate
5199         lock/unlock calls
5200
5201         * dbus/dbus-connection.c (_dbus_connection_do_iteration_unlocked):
5202         rename to add _unlocked
5203         (struct DBusConnection): move "dispatch_acquired" and
5204         "io_path_acquired" to use only one bit each.
5205         (CONNECTION_LOCK, CONNECTION_UNLOCK): add checks with !DBUS_DISABLE_CHECKS
5206         (dbus_connection_set_watch_functions): hacky fix to reentrancy
5207         (_dbus_connection_add_watch, _dbus_connection_remove_watch) 
5208         (_dbus_connection_toggle_watch, _dbus_connection_add_timeout) 
5209         (_dbus_connection_remove_timeout) 
5210         (_dbus_connection_toggle_timeout): drop lock when calling out to
5211         user functions; done in a hacky/bad way.
5212         (_dbus_connection_send_and_unlock): add a missing unlock
5213         (_dbus_connection_block_for_reply): add a missing unlock
5214
5215         * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated):
5216         drop lock in a hacky probably unsafe way to call out to user
5217         function
5218
5219 2005-02-12  Havoc Pennington  <hp@redhat.com>
5220
5221         * tools/dbus-tree-view.c (info_set_func_text): display more
5222         details on args
5223
5224         * bus/driver.c (bus_driver_handle_list_services): list the bus
5225         driver
5226
5227         * glib/dbus-gparser.c (parse_arg): generate an arg name if none is supplied
5228
5229         * glib/dbus-gidl.c (signal_info_get_n_args): new function
5230         (method_info_get_n_args): new function
5231
5232 2005-02-12  Havoc Pennington  <hp@redhat.com>
5233
5234         * bus/driver.c (bus_driver_handle_introspect): add introspection
5235         for bus driver
5236
5237 2005-02-12  Havoc Pennington  <hp@redhat.com>
5238
5239         * bus/driver.c: put the signature of each bus driver method in the
5240         table of handlers and check it on incoming calls; this isn't
5241         really useful, but going to add introspect support in a minute.
5242
5243 2005-02-11  Joe Shaw  <joeshaw@novell.com>
5244
5245         * mono/Connection.cs: The unpredictability of finalizers in mono
5246         prevents us from deterministically disconnecting the filters from
5247         the Service class's finalizer, so move tracking of filters and
5248         matches here.  Add API for that.
5249
5250         * mono/Service.cs: Remove the code, add code which calls the
5251         methods now on the Connection class.
5252
5253 2005-02-11  John (J5) Palmieri  <johnp@redhat.com>
5254
5255         * python/dbus.py (class Sender): added to support dbus signals better
5256         (Bus::add_signal_receiver): added expand_args parameter which defaults
5257         to True.  When expand args is True the signal handler will pass the 
5258         message arguments as parameters to the signal handler.  If False
5259         revert to previous behavior where the signal handler must get the
5260         argument list from the message.  This is to help port applications
5261         like HAL that have a tendancy to send variable length argument lists.
5262         self._match_rule_to_receivers is now a dict of dicts.
5263         (Bus::remove_signal_receiver): pop handler off the dict intead of 
5264         removing it from a list
5265         (Bus::_signal_func): change signal handlers so that interface,
5266         signal_name, service, path and message are packed into a Sender
5267         object and that is passed to the handler.  If expand_args is True
5268         extract the args list from the message and append it to the parameter
5269         list
5270         
5271         * python/dbus_bindings.pyx.in (class Signature): added to support 
5272         signiature types
5273         (MessageIter::__init__): changed iteration limit to match D-BUS
5274         (MessageIter::get*): added INT16, UINT16, SIGNATURE, DICT_ENTRY, 
5275         STRUCT and VARIENT type support
5276         (MessageIter::python_value_to_dbus_sig): made recursive to support
5277         recursive types
5278         (MessageIter::append*): added Signature, dict, tuple 
5279         support
5280
5281         * python/examples/example-client.py: added examples of getting tuples
5282         and dicts
5283
5284         * python/examples/example-service.py: added examples of sending tuples
5285         and dicts
5286
5287         * python/examples/example-signal-recipient.py: Fixed to handle new
5288         signal callback format
5289
5290 2005-02-10  Havoc Pennington  <hp@redhat.com>
5291
5292         * test/glib/test-dbus-glib.c (main): fix so this test doesn't fail
5293         (call dbus_g_proxy_add_signal)
5294
5295         * dbus/dbus-server-unix.c (_dbus_server_new_for_tcp_socket):
5296         escape the hostname
5297         (_dbus_server_new_for_domain_socket): escape the path
5298
5299         * dbus/dbus-address.c (dbus_address_escape_value): new
5300         (dbus_address_unescape_value): new
5301         (dbus_parse_address): unescape values
5302
5303         * dbus/dbus-string.c (_dbus_string_append_byte_as_hex): new function
5304
5305         * doc/dbus-specification.xml: explain how to escape values in
5306         addresses
5307
5308 2005-02-10  Havoc Pennington  <hp@redhat.com>
5309
5310         * dbus/dbus-message-factory.c (generate_special): modify test to
5311         avoid using a non-basic dict key
5312
5313         * dbus/dbus-marshal-validate-util.c: add test for the below
5314
5315         * doc/dbus-specification.xml: require that dict keys are a basic
5316         type
5317
5318         * dbus/dbus-marshal-validate.c
5319         (_dbus_validate_signature_with_reason): require that dict key is a
5320         basic type
5321
5322 2005-02-10  Havoc Pennington  <hp@redhat.com>
5323
5324         * dbus/dbus-object-tree.c (handle_default_introspect_and_unlock):
5325         change to be _and_unlock instead of _unlocked
5326
5327         * dbus/dbus-connection.c
5328         (_dbus_connection_send_preallocated_unlocked_no_update): rename to
5329         have no_update so we can find this bug quickly in future
5330
5331 2005-02-10  Havoc Pennington  <hp@redhat.com>
5332
5333         * dbus/dbus-message-util.c (verify_test_message): tests for string
5334         array
5335
5336         * dbus/dbus-message.c (dbus_message_append_args_valist): add
5337         support for arrays of string/signature/path
5338
5339 2005-02-10  Joe Shaw  <joeshaw@novell.com>
5340
5341         * dbus/dbus-connection.c
5342         (_dbus_connection_queue_received_message_link,
5343         _dbus_connection_message_sent): Add the path to
5344         the verbose output.
5345         (_dbus_connection_send_preallocated_and_unlock): Added.  Calls
5346         _dbus_connection_send_preallocated_unlocked(), updated the
5347         dispatch status, and unlocks.  Fixes a bug where certain
5348         situations (like a broken pipe) could cause a Disconnect message
5349         to not be sent, tricking the bus into thinking a service was still
5350         there when the process had quit.
5351         (_dbus_connection_send_preallocated): Call
5352         _dbus_connection_send_preallocated_and_unlock().
5353         (_dbus_connection_send_and_unlock): Added.  Calls
5354         _dbus_connection_send_preallocated_and_unlock().
5355         (dbus_connection_send): Call _dbus_connection_send_and_unlock().
5356         (dbus_connection_send_with_reply): Update the dispatch status and
5357         unlock.
5358
5359         * mono/Service.cs (~Service): Added.  Removes the filter so that
5360         we don't get unmanaged code calling back into a GCed delegate.
5361         (RemoveFilter); Added.
5362
5363 2005-02-09  John (J5) Palmieri  <johnp@redhat.com>
5364
5365         * dbus/dbus-message.c (dbus_message_iter_open_container):
5366         - Removed check for iterator type being an array because
5367         get_arg_type does not work with writer iterators
5368         - Pass NULL to _dbus_type_writer_recurse if signiture is NULL
5369
5370 2005-02-07  Havoc Pennington  <hp@redhat.com>
5371
5372         * doc/dbus-specification.xml: some more language cleanups; add
5373         stuff about how to deal with invalid protocol and extension
5374         points; add _ to allowed chars in auth commands; add EXTENSION_
5375         auth command prefix
5376
5377 2005-02-06  Havoc Pennington  <hp@redhat.com>
5378
5379         * s/expected/required/ in a couple places for clarity
5380
5381 2005-02-07  Colin Walters  <walters@verbum.org>
5382
5383         * bus/selinux.c (bus_selinux_allows_send): Handle NULL for
5384         sender or proposed_recipient.
5385
5386 2005-02-06  Havoc Pennington  <hp@redhat.com>
5387
5388         * dbus/dbus-message-factory.c (generate_special): more tests
5389
5390         * dbus/dbus-marshal-validate.c (validate_body_helper): detect
5391         array length that exceeds the maximum
5392
5393 2005-02-05  Havoc Pennington  <hp@redhat.com>
5394
5395         * dbus/dbus-message-factory.c (generate_special): more test cases,
5396         increasing coverage
5397
5398         * dbus/dbus-marshal-validate.c (validate_body_helper): return the
5399         reason why a signature was invalid
5400
5401         * dbus/dbus-marshal-header.c (load_and_validate_field): fix to
5402         skip the length of the string before we look at it in validation
5403
5404         * dbus/dbus-string-util.c (_dbus_string_test): add tests for
5405         equal_substring
5406
5407         * dbus/dbus-message.c (_dbus_message_loader_new): default
5408         max_message_length to DBUS_MAXIMUM_MESSAGE_LENGTH
5409
5410 2005-02-05  Havoc Pennington  <hp@redhat.com>
5411
5412         * dbus/dbus-marshal-validate.c (validate_body_helper): fix crash
5413         if the signature of a variant was empty
5414         (_dbus_validate_signature_with_reason): catch "(a)" (array inside
5415         struct with no element type)
5416
5417         * dbus/dbus-message-factory.c (generate_uint32_changed): add more
5418         mangled messages to break things
5419
5420 2005-02-04  Havoc Pennington  <hp@redhat.com>
5421
5422         * glib/dbus-gproxy.c (dbus_g_proxy_disconnect_signal): use
5423         g_quark_try_string() so it actually can return 0
5424         (dbus_g_proxy_connect_signal): ditto
5425
5426 2005-02-04  Havoc Pennington  <hp@redhat.com>
5427
5428         * glib/dbus-gproxy.c (dbus_g_proxy_emit_remote_signal): fix a
5429         bogus warning
5430         (tristring_from_message): assert cleanly on null path/interface
5431         (should not be possible though I decided later)
5432         (dbus_g_proxy_dispose): move proxy manager unregistration here
5433         (DBUS_G_PROXY_DESTROYED): add this macro, and use it in a bunch of
5434         g_return_if_fail() checks
5435
5436 2005-02-04  Havoc Pennington  <hp@redhat.com>
5437
5438         * doc/Makefile.am (EXTRA_DIST): add DTDs to makefile
5439
5440         * doc/introspect.dtd: add introspect.dtd from David A. Wheeler
5441         (with some minor changes)
5442
5443         * doc/dbus-specification.xml: add deprecated attribute to
5444         introspection format
5445
5446 2005-01-31  Havoc Pennington  <hp@redhat.com>
5447
5448         * glib/dbus-gproxy.c: rewrite how signals work again, this time I
5449         think it's sort of right
5450
5451 2005-01-30  Havoc Pennington  <hp@redhat.com>
5452
5453         * tools/dbus-viewer.c: kind of half-ass hook up the option menu.
5454
5455 2005-01-30  Havoc Pennington  <hp@redhat.com>
5456
5457         * tools/dbus-names-model.c: dynamically watch NameOwnerChanged
5458
5459         * autogen.sh: change to autotools 1.9
5460
5461         * glib/dbus-gproxy.c: completely change how signals work
5462         (dbus_g_proxy_add_signal): new function to specify signature of a
5463         signal
5464         (dbus_g_proxy_emit_received): marshal the dbus message to GValues,
5465         and g_warning if the incoming message has the wrong signature.
5466
5467 2005-01-30  Havoc Pennington  <hp@redhat.com>
5468
5469         * tools/dbus-names-model.c (have_names_notify): fix this
5470
5471         * dbus/dbus-message.c (_dbus_message_iter_get_args_valist): clean
5472         up the string array handling a bit 
5473
5474 2005-01-30  Havoc Pennington  <hp@redhat.com>
5475
5476         * glib/dbus-glib.c (dbus_g_pending_call_set_notify): new function
5477         (dbus_g_pending_call_cancel): new function
5478
5479         * dbus/dbus-glib.h: move GType decls for connection/message here;
5480         * dbus/dbus-glib.c: move all the g_type and ref/unref stuff in
5481         here, just kind of rationalizing how we handle all that
5482
5483         * tools/dbus-names-model.c: new file for a tree model listing the
5484         services on a bus
5485
5486         * tools/dbus-tree-view.c (model_new): use proper typing on the
5487         model rows
5488
5489 2005-01-30  Havoc Pennington  <hp@redhat.com>
5490
5491         * glib/dbus-gmain.c: add a custom GSource back that just checks
5492         whether the message queue has anything in it; otherwise, there are 
5493         cases where we won't see messages in the queue since there was no 
5494         IO visible to the glib main loop
5495
5496         * dbus/dbus-connection-internal.h (_DBUS_DEFAULT_TIMEOUT_VALUE):
5497         increase default message timeout to 25 seconds
5498
5499 2005-01-30  Havoc Pennington  <hp@redhat.com>
5500
5501         * test/glib/test-profile.c (no_bus_stop_server): remove the
5502         warning about the g_warning that I just fixed
5503
5504         * glib/dbus-gmain.c: rewrite the main loop stuff to avoid the
5505         custom source, seems to be a lot easier to understand and work
5506         better.
5507
5508 2005-01-30  Havoc Pennington  <hp@redhat.com>
5509
5510         I think this main loop thing is conceptually broken, but here are 
5511         some band aids. I'll maybe rewrite it in a minute.
5512         
5513         * glib/dbus-gmain.c (add_timeout): timeout stuff doesn't use the
5514         custom GSource, so don't pass it in; confusing
5515         (gsource_server_finalize, gsource_connection_finalize): add
5516         finalize handlers that remove all the watches.  
5517
5518 2005-01-30  Havoc Pennington  <hp@redhat.com>
5519
5520         * glib/dbus-gobject.c (introspect_properties): fix the XML
5521         generated
5522
5523         * dbus/dbus-message.c (dbus_message_unref): add an in_cache flag
5524         which effectively detects the use of freed messages
5525
5526         * glib/dbus-gobject.c (handle_introspect): modify and return the
5527         reply message instead of the incoming message
5528
5529         * dbus/dbus-object-tree.c (handle_default_introspect_unlocked):
5530         gee, maybe it should SEND THE XML instead of just making a string
5531         and freeing it again ;-)
5532
5533         * tools/dbus-print-message.c (print_message): improve printing of
5534         messages
5535
5536         * configure.in: add debug-glib.service to the output
5537
5538 2005-01-30  Havoc Pennington  <hp@redhat.com>
5539
5540         dbus-viewer introspected and displayed the bus driver
5541         
5542         * dbus/dbus-object-tree.c 
5543         (object_tree_test_iteration): add tests for a handler registered on "/"
5544
5545         * dbus/dbus-object-tree.c
5546         (_dbus_decompose_path): fix to handle path "/" properly
5547         (run_decompose_tests): add tests for path decomposition
5548         
5549         * glib/dbus-gutils.c (_dbus_gutils_split_path): fix to handle "/"
5550         properly
5551
5552         * glib/dbus-gobject.c (handle_introspect): fix quotes
5553
5554         * test/glib/run-test.sh: support launching the bus, then running
5555         dbus-viewer
5556
5557         * test/glib/test-service-glib.c (main): put in a trivial gobject
5558         subclass and register it on the connection
5559
5560         * bus/driver.c (bus_driver_handle_introspect): implement
5561         introspection of the bus driver service
5562
5563         * dbus/dbus-protocol.h: add #defines for the XML namespace,
5564         identifiers, doctype decl
5565
5566         * bus/driver.c (bus_driver_handle_get_service_owner): handle
5567         attempts to get owner of DBUS_SERVICE_ORG_FREEDESKTOP_DBUS by 
5568         returning the service unchanged.
5569         (bus_driver_handle_message): remove old check for reply_serial in
5570         method calls, now the message type deals with that
5571         (bus_driver_handle_message): handle NULL interface
5572
5573         * glib/dbus-gproxy.c (dbus_g_proxy_get_bus_name): new function
5574
5575         * glib/dbus-gloader-expat.c (description_load_from_string): allow
5576         -1 for len
5577
5578         * tools/dbus-viewer.c: add support for introspecting a service on
5579         a bus
5580
5581         * glib/dbus-gproxy.c (dbus_g_pending_call_ref): add
5582         (dbus_g_pending_call_unref): add
5583
5584 2005-01-29  Havoc Pennington  <hp@redhat.com>
5585
5586         * tools/dbus-tree-view.c: add support for displaying properties.
5587         (run dbus-viewer with an introspect xml file as arg, then resize
5588         the window so the tree elements show up, not sure what that is)
5589
5590         * glib/dbus-gobject.c (handle_introspect): return
5591         org.freedesktop.Properties and org.freedesktop.Introspectable
5592         interfaces when we are introspected.
5593
5594         * doc/dbus-specification.xml: allow empty interface name when 
5595         Get/Set a property
5596
5597 2005-01-29  Havoc Pennington  <hp@redhat.com>
5598
5599         * glib/Makefile.am: rename dbus-glib-tool to dbus-binding-tool;
5600         though it uses glib, it could be extended for any binding in
5601         principle
5602
5603         * glib/dbus-gobject.c (gobject_message_function): change to the
5604         new way properties work
5605
5606         * dbus/dbus-protocol.h: add the new interfaces
5607
5608         * doc/dbus-specification.xml: document the introspection format,
5609         Introspectable interface, and add an org.freedesktop.Properties
5610         interface.
5611
5612         * glib/dbus-gparser.c: add support for a <property> element
5613
5614         * glib/dbus-gidl.c: add PropertyInfo
5615
5616         * glib/dbus-gobject.c (handle_introspect): put the outermost
5617         <node> outside the signal and property descriptions.
5618         (introspect_properties): export properties as <property> rather
5619         than as method calls
5620
5621 2005-01-28  Havoc Pennington  <hp@redhat.com>
5622
5623         * doc/TODO, doc/dbus-specification.xml: spec and TODO tweaks
5624         related to authentication protocol
5625
5626 2005-01-28  John (J5) Palmieri  <johnp@redhat.com>
5627
5628         * python/dbus_bindings.pyx.in: Updated to handle new D-BUS type system
5629                 - BUS_ACTIVATION -> BUS_STARTER
5630                 - DBUS_BUS_ACTIVATION -> DBUS_BUS_STARTER
5631                 - class MessageIter (__init__): Added recursion checking 
5632                 so we throw a nice error instead of just disconnecting from the
5633                 bus.
5634                 (get): Added arg_type parameter for recursion.
5635                 Removed the nil type
5636                 Added signiture type placeholder (not implemented)
5637                 Added struct type placeholder (not implemented)
5638                 Added varient type placeholder (not implemented)
5639                 Commented out dict type for now     
5640                 (get_element_type): renamed from get_array_type
5641                 (get_*): changed to use the dbus_message_iter_get_basic API
5642                 (get_*_array): removed in favor of recursive get_array method
5643                 (get_array): new recursive method which calls get to marshal
5644                 the elements of the array
5645                 (value_to_dbus_sig): New method returns the corrasponding
5646                 dbus signiture to a python value
5647                 (append): Comment out dict handling for now
5648                 Handle lists with the new recursive API
5649                 Comment out None handling for now
5650                 (append_nil): removed
5651                 (append_*): changed to use dbus_message_iter_append_basic API
5652                 (append_*_array): removed in favor of recursive append_array 
5653                 method
5654                 (__str__): Make it easier to print out recursive iterators
5655                 for debugging
5656                 - class Message (__str__): moved type inspection to the
5657                 MessageIter class' __str__ method
5658                 (get_iter): Added an append parameter wich defaults to False
5659                 If True use the new API's to create an append iterator
5660
5661         * python/dbus.py: Update to use new bindings API
5662                 - TYPE_ACTIVATION -> TYPE_STARTER
5663                 - class Bus (_get_match_rule): GetServiceOwner -> GetNameOwner
5664                 - class ActivationBus -> class StarterBus
5665                 - class RemoteObject (__call__): get an append iterator
5666                 - (_dispatch_dbus_method_call): get an append iterator
5667                 - class Object (emit_signal): get an append iterator
5668
5669         * python/examples/: Fixed up the examples to work with the new API
5670                 
5671 2005-01-28  Joe Shaw  <joeshaw@novell.com>
5672
5673         * configure.in: Bump version up to 0.30.
5674
5675         * HACKING: Add a release item to bump the version number up after 
5676         a release.
5677
5678 2005-01-28  Havoc Pennington  <hp@redhat.com>
5679
5680         * doc/dbus-specification.xml: update to describe 16-bit types and
5681         dict entries
5682
5683         * dbus/dbus-marshal-basic.c (_dbus_unpack_uint16): fix broken
5684         assertion
5685
5686         * dbus/dbus-protocol.h (DBUS_TYPE_DICT_ENTRY): add DICT_ENTRY as a
5687         type
5688
5689         * dbus/dbus-marshal-recursive.c: implement
5690
5691 2005-01-27  Havoc Pennington  <hp@redhat.com>
5692
5693         * dbus/dbus-arch-deps.h.in: add 16/32-bit types
5694
5695         * configure.in: find the right type for 16 and 32 bit ints as well
5696         as 64
5697
5698         * dbus/dbus-protocol.h (DBUS_TYPE_INT16, DBUS_TYPE_UINT16): add
5699         the 16-bit types so people don't have to stuff them in 32-bit or
5700         byte arrays.
5701
5702 2005-01-27  Havoc Pennington  <hp@redhat.com>
5703
5704         * dbus/dbus-message.c: byteswap the message if you init an
5705         iterator to read/write from it
5706         
5707         * dbus/dbus-marshal-byteswap.c: new file implementing 
5708         _dbus_marshal_byteswap()
5709
5710         * dbus/dbus-marshal-basic.c: add _dbus_swap_array()
5711
5712 2005-01-26  Havoc Pennington  <hp@redhat.com>
5713         
5714         * dbus/dbus-marshal-validate-util.c: break this out (and fix
5715         build, apparently - nobody noticed?)
5716         
5717 2005-01-26  Havoc Pennington  <hp@redhat.com>
5718
5719         * dbus/dbus-marshal-recursive.h: remove todo comment
5720
5721 2005-01-25  Joe Shaw  <joeshaw@novell.com>
5722
5723         * Land the mono binding changes to conform to the new APIs.
5724
5725         * mono/Makefile.am: Remove Custom.cs, DBusType/Custom.cs,
5726         DBusType/Dict.cs, and DBusType/Nil.cs from the build.
5727
5728         * mono/Arguments.cs (GetCodeAsString): Added.  Returns the dbus
5729         type code as a string.
5730         (InitAppending): Rename dbus_message_append_iter_init() to
5731         dbus_message_iter_init_append().
5732
5733         * mono/BusDriver.cs: Rename ServiceEventHandler to
5734         NameOwnerChangedHandler.  Rename GetServiceOwner to GetOwner.
5735         Rename ServiceOwnerChanged to NameOwnerChanged.
5736
5737         * mono/Connection.cs: Rename BaseService to UniqueName, and the
5738         underlying C call.
5739
5740         * mono/Custom.cs: Removed.  The CUSTOM type has been removed.
5741
5742         * mono/Service.cs: Rename Exists to HasOwner, internally rename
5743         dbus_bus_acquire_service() to dbus_bus_request_name().
5744
5745         * mono/DBusType/Array.cs (ctor): Use Type.GetElementType() instead
5746         of Type.UnderlyingSystemType to get the correct element type for
5747         the array.
5748         (ctor): Update code for new APIs: use dbus_message_iter_recurse(),
5749         dbus_message_get_{element|arg}_type() instead of
5750         dbus_message_iter_init_array_iterator().
5751         (Append): Replace dbus_message_iter_append_array() with
5752         dbus_message_iter_open_container() and
5753         dbus_message_iter_close_container().
5754
5755         * mono/DBusType/Custom.cs, mono/DBusType/Nil.cs: Removed.  These
5756         types have been removed.
5757         
5758         * mono/DBusType/*.cs: Replace calls of
5759         dbus_message_iter_get_[type]() to dbus_message_iter_get_basic(),
5760         but specify the type in the DllImport extern declaration.  Ditto
5761         for dbus_message_iter_append_[type]() ->
5762         dbus_message_iter_append_basic().
5763
5764         * mono/example/BusListener.cs: Update for ServiceEventHandler ->
5765         NameOwnerChangedHandler.
5766
5767 2005-01-25  John (J5) Palmieri  <johnp@redhat.com>
5768
5769         * python/dbus_bindings.pyx.in: Rename of methods and bindings
5770                 - get_base_service -> get_unique_name
5771                 - bus_get_base_service -> bus_get_unique_name
5772                 - dbus_bus_get_base_service -> dbus_bus_get_unique_name
5773                 - ACTIVATION_REPLY_ACTIVATED -> DBUS_START_REPLY_SUCCESS 
5774                 - ACTIVATION_REPLY_ALREADY_ACTIVE -> DBUS_START_REPLY_ALREADY_RUNNING
5775                 - bus_activate_service -> bus_start_service_by_name
5776                 - dbus_bus_activate_service -> dbus_bus_start_service_by_name
5777                 - bus_acquire_service -> bus_request_name
5778                 - dbus_bus_acquire_service -> dbus_bus_request_name
5779                 - bus_service_exists -> bus_name_has_owner
5780                 - dbus_bus_service_exists -> dbus_bus_name_has_owner
5781
5782         * python/dbus.py: Rename of methods
5783                 - activate_service -> start_service_by_name
5784                 - bus_acquire_service -> bus_request_name
5785                 - ACTIVATION_REPLY_ACTIVATED -> START_REPLY_SUCCESS 
5786                 - ACTIVATION_REPLY_ALREADY_ACTIVE -> START_REPLY_ALREADY_RUNNING
5787
5788         
5789 2005-01-24  Joe Shaw  <joeshaw@novell.com>
5790
5791         * dbus/dbus-connection.c (dbus_connection_dispatch): Print out the
5792         signature for the method that can't be found.
5793
5794         * dbus/dbus-message.c (dbus_message_iter_init): To check to see if
5795         the message has any arguments, we need to call
5796         _dbus_type_reader_get_current_type(), not
5797         _dbus_type_reader_has_next().
5798
5799 2005-01-24  Havoc Pennington  <hp@redhat.com>
5800
5801         * dbus/dbus-message-factory.c: more testing of message validation
5802
5803         * dbus/dbus-protocol.h (DBUS_MINIMUM_HEADER_SIZE): move to this
5804         header
5805
5806 2005-01-23  Havoc Pennington  <hp@redhat.com>
5807
5808         * dbus/dbus-message-factory.c, dbus/dbus-message-util.c: 
5809         get this all working, not many tests in the framework yet though
5810
5811 2005-01-22  Havoc Pennington  <hp@redhat.com>
5812
5813         * doc/dbus-faq.xml, doc/dbus-tutorial: add a FAQ and update
5814         tutorial, based on work from David Wheeler.
5815
5816 2005-01-21  Havoc Pennington  <hp@redhat.com>
5817
5818         * dbus/dbus-bus.c: add more return_if_fail checks
5819
5820         * dbus/dbus-message.c (load_message): have the "no validation"
5821         mode (have to edit the code to toggle the mode for now though)
5822
5823         * dbus/dbus-marshal-header.c (_dbus_header_load): have a mode that
5824         skips all validation; I want to use this at least for benchmark
5825         baseline, I'm not sure if it should be a publicly-available switch.
5826
5827 2005-01-21  Havoc Pennington  <hp@redhat.com>
5828
5829         * glib/dbus-gmain.c: don't put the GLib bindings in the same
5830         toplevel doxygen group as the low-level API stuff
5831
5832         * dbus/dbus.h: note that libdbus is the low-level API
5833
5834 2005-01-20  Havoc Pennington  <hp@redhat.com>
5835
5836         * update-dbus-docs.sh: script to update docs on the web site, only
5837         works for me though. neener.
5838
5839 2005-01-20  Havoc Pennington  <hp@redhat.com>
5840
5841         * dbus/dbus-sysdeps.c (_dbus_poll): amazingly, trying to compile
5842         code can reveal bugs in it
5843
5844 2005-01-20  Havoc Pennington  <hp@redhat.com>
5845
5846         * dbus/dbus-sysdeps.c (_dbus_poll): fix several bugs in the
5847         select() version, patches from Tor Lillqvist
5848
5849 2005-01-20  Havoc Pennington  <hp@redhat.com>
5850
5851         * doc/dbus-tutorial.xml: replace > with &gt;
5852
5853         * bus/services.c (bus_registry_acquire_service): validate the name
5854         and return a better error if it's no good.
5855
5856         * doc/dbus-specification.xml: note NO_AUTO_START change
5857
5858         * dbus/dbus-protocol.h (DBUS_HEADER_FLAG_NO_AUTO_START): change
5859         from AUTO_START, we're toggling the default
5860
5861         * bus/dispatch.c: adapt the tests to change of auto-start default
5862
5863 2005-01-18  Havoc Pennington  <hp@redhat.com>
5864
5865         * rename dbus-daemon-1 to dbus-daemon throughout
5866
5867 2005-01-18  Havoc Pennington  <hp@redhat.com>
5868
5869         * Throughout, grand renaming to strip out the use of "service",
5870         just say "name" instead (or "bus name" when ambiguous).  Did not
5871         change the internal code of the message bus itself, only the
5872         programmer-facing API and messages.
5873         
5874         * doc/dbus-specification.xml: further update the message bus section
5875         
5876         * bus/config-parser.c (all_are_equiv): fix bug using freed string
5877         in error case
5878
5879 2005-01-17  Havoc Pennington  <hp@redhat.com>
5880
5881         * dbus/dbus-types.h: remove 16-bit types since we don't use them
5882         ever
5883
5884         * dbus/dbus-marshal-validate.c (_dbus_validate_path): disallow any
5885         "invalid name character" not only non-ASCII
5886
5887         * doc/dbus-specification.xml: further update spec, message bus 
5888         parts are still out-of-date but the marshaling etc. stuff is now
5889         accurate-ish
5890
5891 2005-01-17  Havoc Pennington  <hp@redhat.com>
5892
5893         * doc/dbus-specification.xml: partially update spec
5894
5895 2005-01-17  Havoc Pennington  <hp@redhat.com>
5896
5897         * Throughout, align variant bodies according to the contained
5898         type, rather than always to 8. Should save a fair bit of space in
5899         message headers.
5900         
5901         * dbus/dbus-marshal-validate.c (_dbus_validate_body_with_reason):
5902         fix handling of case where p == end
5903
5904         * doc/TODO: remove the dbus_bool_t item and variant alignment items
5905
5906 2005-01-17  Havoc Pennington  <hp@redhat.com>
5907
5908         * dbus/dbus-types.h: hardcode dbus_bool_t to 32 bits
5909
5910         * Throughout: modify DBUS_TYPE_BOOLEAN to be a 32-bit type instead
5911         of an 8-bit type. Now dbus_bool_t is the type to use whenever you 
5912         are marshaling/unmarshaling a boolean.
5913
5914 2005-01-16  Havoc Pennington  <hp@redhat.com>
5915
5916         This is about it on what can be disabled/deleted from libdbus
5917         easily, back below 150K anyhow. Deeper cuts are more work than 
5918         just turning the code off as I've done here.
5919         
5920         * dbus/dbus-marshal-basic.c (_dbus_pack_int32): we don't need the
5921         signed int convenience funcs
5922
5923         * dbus/dbus-internals.c (_dbus_verbose_real): omit when not in
5924         verbose mode
5925
5926         * dbus/dbus-string-util.c, dbus/dbus-string.c: more breaking
5927         things out of libdbus
5928
5929         * dbus/dbus-sysdeps.c, dbus/dbus-sysdeps-util.c: same
5930         
5931         * dbus/dbus-hash.c: purge the TWO_STRINGS crap (well, make it
5932         tests-enabled-only, though it should probably be deleted)
5933
5934         * dbus/dbus-message-util.c: same stuff
5935
5936         * dbus/dbus-auth-util.c: same stuff
5937
5938 2005-01-16  Havoc Pennington  <hp@redhat.com>
5939
5940         * dbus/dbus-userdb-util.c: split out part of dbus-userdb.c
5941
5942         * dbus/dbus-sysdeps.c (_dbus_uid_from_string): move here to pave
5943         way for stripping down dbus-userdb.c stuff included in libdbus.
5944         Rename _dbus_parse_uid for consistency.
5945
5946 2005-01-16  Havoc Pennington  <hp@redhat.com>
5947
5948         * dbus/dbus-internals.c (_dbus_real_assert): print the function
5949         name the assertion failed in
5950
5951         * dbus/dbus-internals.h (_dbus_return_if_fail) 
5952         (_dbus_return_val_if_fail): assert that the name of the function
5953         containing the check doesn't start with '_', since we only want to 
5954         use checks on public functions
5955         
5956         * dbus/dbus-connection.c (_dbus_connection_ref_unlocked): change
5957         checks to assertions
5958
5959         * dbus/dbus-marshal-header.c (_dbus_header_set_field_basic):
5960         change checks to asserts for private function
5961
5962         * dbus/dbus-message.c (_dbus_message_set_serial): checks
5963         to asserts for private function
5964
5965         * dbus/dbus-marshal-recursive.c (skip_one_complete_type): remove
5966         broken assertion that was breaking make check
5967         (_dbus_type_reader_array_is_empty): remove this rather than fix
5968         it, was only used in assertions
5969
5970 2005-01-16  Havoc Pennington  <hp@redhat.com>
5971
5972         * test/unused-code-gc.py: hacky script to find code that's used
5973         only by the bus (not libdbus) or used only by tests or not used at
5974         all. It has some false alarms, but looks like we can clean up a
5975         lot of size from libdbus.
5976
5977         * dbus/dbus-sysdeps.c, dbus/dbus-sysdeps-utils.c,
5978         dbus/Makefile.am: initially move 10K of binary size out of libdbus
5979         
5980 2005-01-16  Havoc Pennington  <hp@redhat.com>
5981
5982         * Add and fix docs according to Doxygen warnings throughout
5983         source.
5984         
5985         * dbus/dbus-marshal-recursive.c
5986         (_dbus_type_reader_array_is_empty): change this to just call
5987         array_reader_get_array_len() and make it static
5988
5989         * dbus/dbus-message.c (dbus_message_iter_get_element_type): rename
5990         from get_array_type
5991         (dbus_message_iter_init_append): rename from append_iter_init
5992
5993         * dbus/dbus-marshal-recursive.c
5994         (_dbus_type_reader_get_element_type): rename from
5995         _dbus_type_reader_get_array_type
5996
5997 2005-01-15  Havoc Pennington  <hp@redhat.com>
5998
5999         * test/glib/test-profile.c (with_bus_server_filter): fix crash
6000
6001         * dbus/dbus-marshal-basic.c (_dbus_unpack_uint32): inline as macro
6002         when DBUS_DISABLE_ASSERT
6003         (_dbus_marshal_set_basic): be sure we align for the string length
6004
6005         * dbus/dbus-marshal-recursive.c (skip_one_complete_type): make
6006         this look faster
6007
6008         * dbus/dbus-string.c (_dbus_string_get_const_data_len): add an
6009         inline macro version
6010         (_dbus_string_set_byte): provide inline macro version
6011
6012 2005-01-15  Havoc Pennington  <hp@redhat.com>
6013
6014         * Land the new message args API and type system.
6015
6016         This patch is huge, but the public API change is not 
6017         really large. The set of D-BUS types has changed somewhat, 
6018         and the arg "getters" are more geared toward language bindings;
6019         they don't make a copy, etc.
6020
6021         There are also some known issues. See these emails for details
6022         on this huge patch:
6023         http://lists.freedesktop.org/archives/dbus/2004-December/001836.html
6024         http://lists.freedesktop.org/archives/dbus/2005-January/001922.html
6025         
6026         * dbus/dbus-marshal-*: all the new stuff
6027
6028         * dbus/dbus-message.c: basically rewritten
6029
6030         * dbus/dbus-memory.c (check_guards): with "guards" enabled, init
6031         freed blocks to be all non-nul bytes so using freed memory is less
6032         likely to work right
6033
6034         * dbus/dbus-internals.c (_dbus_test_oom_handling): add
6035         DBUS_FAIL_MALLOC=N environment variable, so you can do
6036         DBUS_FAIL_MALLOC=0 to skip the out-of-memory checking, or
6037         DBUS_FAIL_MALLOC=10 to make it really, really, really slow and
6038         thorough.
6039
6040         * qt/message.cpp: port to the new message args API
6041         (operator<<): use str.utf8() rather than str.unicode()
6042         (pretty sure this is right from the Qt docs?)
6043
6044         * glib/dbus-gvalue.c: port to the new message args API
6045
6046         * bus/dispatch.c, bus/driver.c: port to the new message args API
6047
6048         * dbus/dbus-string.c (_dbus_string_init_const_len): initialize the
6049         "locked" flag to TRUE and align_offset to 0; I guess we never
6050         looked at these anyhow, but seems cleaner.
6051
6052         * dbus/dbus-string.h (_DBUS_STRING_ALLOCATION_PADDING):
6053         move allocation padding macro to this header; use it to implement
6054         (_DBUS_STRING_STATIC): ability to declare a static string.
6055
6056         * dbus/dbus-message.c (_dbus_message_has_type_interface_member):
6057         change to return TRUE if the interface is not set.
6058
6059         * dbus/dbus-string.[hc]: move the D-BUS specific validation stuff
6060         to dbus-marshal-validate.[hc]
6061
6062         * dbus/dbus-marshal-basic.c (_dbus_type_to_string): move here from
6063         dbus-internals.c
6064
6065         * dbus/Makefile.am: cut over from dbus-marshal.[hc]
6066         to dbus-marshal-*.[hc]
6067
6068         * dbus/dbus-object-tree.c (_dbus_decompose_path): move this
6069         function here from dbus-marshal.c
6070
6071 2005-01-12  Joe Shaw  <joeshaw@novell.com>
6072
6073         * NEWS: Update for 0.23.
6074
6075         * configure.in: Release 0.23.
6076
6077 2005-01-12  Joe Shaw  <joeshaw@novell.com>
6078
6079         * mono/Makefile.am, mono/example/Makefile.am: Always build the 
6080         dbus DLL with --debug.  Clean up after the .mdb files this leaves
6081         behind.
6082
6083         * mono/doc/Makefile.am: Need to uninstall the docs on "make
6084         uninstall"
6085
6086         * mono/Arguments.cs (GetDBusTypeConstructor): If the type
6087         is an enum, get the enum's underlying type.  Another mono
6088         1.1.3 fix.
6089
6090 2005-01-11  Joe Shaw  <joeshaw@novell.com>
6091
6092         Patch from Sjoerd Simons <sjoerd@luon.net>
6093
6094         * mono/Makefile.am, mono/example/Makefile.am: Don't redefine
6095         DESTDIR.  It breaks stuff.
6096
6097 2005-01-11  Joe Shaw  <joeshaw@novell.com>
6098
6099         Patch from Tambet Ingo <tambet@ximian.com>
6100
6101         * mono/DBusType/Array.cs (Get): Get the underlying element type by
6102         calling type.GetElementType().  The code previously depended on
6103         broken Mono behavior, which was fixed in Mono 1.1.3.
6104
6105         * mono/DBusType/Dict.cs (constructor): Fix the parameters for
6106         Activator.CreateInstance() so that the class's constructor is
6107         called with the right parameters.
6108
6109 2005-01-11  Joe Shaw  <joeshaw@novell.com>
6110
6111         Patch from Timo Teräs <ext-timo.teras@nokia.com>
6112
6113         * dbus/dbus-connection.c
6114         (_dbus_connection_queue_received_message_link): Call
6115         _dbus_connection_remove_timeout() instead of the _locked()
6116         variant, since it's always called from
6117         _dbus_connection_handle_watch(), which handles the locking.
6118         Removed the _locked() variant since it's no longer used.
6119
6120 2005-01-03  Havoc Pennington  <hp@redhat.com>
6121
6122         * dbus/dbus-internals.h: I'm an idiot, _dbus_assert certainly can
6123         return
6124         
6125 2004-12-26  Havoc Pennington  <hp@redhat.com>
6126
6127         * dbus/dbus-internals.h: add _DBUS_GNUC_NORETURN to _dbus_assert
6128
6129 2005-01-03  Havoc Pennington  <hp@redhat.com>
6130
6131         * dbus/dbus-sysdeps.c (_dbus_sysdeps_test): fix using == on
6132         floating point
6133
6134         * dbus/dbus-string.c (_dbus_string_insert_alignment): new function
6135
6136 2005-01-02  Havoc Pennington  <hp@redhat.com>
6137
6138         * dbus/dbus-internals.h (_DBUS_ALIGN_OFFSET): new macro
6139
6140 2005-01-01  Havoc Pennington  <hp@redhat.com>
6141
6142         * configure.in: add -Wfloat-equal
6143
6144 2005-01-01  Havoc Pennington  <hp@redhat.com>
6145
6146         * dbus/dbus-sysdeps.h: add _DBUS_DOUBLES_BITWISE_EQUAL macro, 
6147         for a variety of reasons '==' doesn't do this.
6148
6149 2004-12-31  Havoc Pennington  <hp@redhat.com>
6150
6151         * dbus/dbus-string.c (_dbus_string_equal_substrings): new function
6152         I keep wishing I had
6153
6154 2004-12-30  John (J5) Palmieri  <johnp@redhat.com>
6155
6156         * python/dbus.py: s/ACTIVATION_REPLY_ACTIVE/ACTIVATION_REPLY_ACTIVATED
6157
6158 2004-12-30  John (J5) Palmieri  <johnp@redhat.com>
6159
6160         * python/dbus_bindings.pyx.in: Change DBUS_ACTIVATION_REPLY_ACTIVATED
6161         and DBUS_ACTIVATION_REPLY_ALREADY_ACTIVE to match the values in
6162         dbus-protocol.h.  Because they are defines and not enums they are not
6163         autogenerated.
6164
6165 2004-12-26  John (J5) Palmieri  <johnp@redhat.com>
6166
6167         * python/dbus_bindings.pyx.in (bus_activate_service): Bind
6168         dbus_bus_activate_service
6169
6170         * python/dbus.py (Bus.activate_service): activate a service on the
6171         bus.
6172
6173 2004-12-24  Havoc Pennington  <hp@redhat.com>
6174
6175         * test/decode-gcov.c: change to use .gcno and .gcda files, but the
6176         file format has also changed and I haven't adapted to that yet
6177         
6178         * Makefile.am: load .gcno files from latest gcc
6179
6180 2004-12-23  John (J5) Palmieri  <johnp@redhat.com>
6181         * Patch from Rob Taylor <robtaylor@fastmail.fm>
6182
6183         * python/dbus_bindings.pyx.in (bus_get_unix_user): New
6184         lowlevel binding
6185
6186         * python/dbus.py (get_unix_user): Added binding to 
6187         call dbus_bindings.bus_get_unix_user
6188
6189         * python/extract.py: Modified the proto_pat regex to
6190         handle unsigned long
6191
6192 2004-12-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6193
6194         * dbus/make-dbus-glib-error-enum.sh: omit the function keyword for
6195         better POSIX compliance.
6196
6197 2004-12-19  Havoc Pennington  <hp@redhat.com>
6198
6199         * dbus/dbus-string.c (_dbus_string_insert_4_aligned) 
6200         (_dbus_string_insert_8_aligned): new functions
6201
6202         * dbus/dbus-string.c (_dbus_string_alloc_space): new function
6203
6204 2004-12-18  Havoc Pennington  <hp@redhat.com>
6205
6206         * dbus/dbus-string.c (_dbus_string_validate_ascii): use ISASCII
6207         macro
6208
6209         * dbus/dbus-message.c: fix a comment, and add a still-unused
6210         not-implemented function
6211
6212         * dbus/dbus-marshal.h: fix comment
6213
6214         * dbus/dbus-internals.h (_DBUS_ISASCII): new macro
6215
6216 2004-12-17  Joe Shaw  <joeshaw@novell.com>
6217
6218         * mono/DBusType/Byte.cs, mono/DBusType/Int32.cs,
6219         mono/DBusType/Int64.cs, mono/DBusType/UInt32.cs,
6220         mono/DBusType/UInt64.cs: Use Enum.GetUnderlyingType() instead of
6221         Type.UnderlyingSystemType to get the actual system type
6222         underneath.  This code previously depended on the broken Mono
6223         behavior, which was fixed in 1.1.3.
6224
6225 2004-11-27  Havoc Pennington  <hp@redhat.com>
6226
6227         * dbus/dbus-string.h (_dbus_string_get_byte): inline when asserts
6228         are disabled
6229         (_dbus_string_get_const_data): inline when asserts are disabled
6230
6231         * dbus/dbus-message.c: record the _dbus_current_generation of
6232         creation so we can complain if dbus_shutdown() is used improperly.
6233         Do this only if checks are enabled.
6234
6235         * dbus/dbus-connection.c: ditto
6236         
6237 2004-11-26  Havoc Pennington  <hp@redhat.com>
6238
6239         * test/glib/test-profile.c: add with_bus mode to profile echoes
6240         that go through the bus.
6241
6242         * test/glib/run-test.sh: add ability to run test-profile
6243
6244         * bus/dbus-daemon-1.1.in: fix to say that SIGHUP causes partial
6245         config file reload.
6246
6247 2004-11-26  Havoc Pennington  <hp@redhat.com>
6248
6249         * test/glib/test-profile.c: clean up how the fake_malloc_overhead
6250         thing was implemented
6251
6252 2004-11-26  Havoc Pennington  <hp@redhat.com>
6253
6254         * test/glib/test-profile.c: tweak a bit, add support for some
6255         made-up minimal malloc overhead with plain sockets, since in 
6256         real life some sort of buffers are unavoidable thus we could 
6257         count them in the theoretical best case
6258
6259 2004-11-26  Havoc Pennington  <hp@redhat.com>
6260
6261         * dbus/dbus-message.c (dbus_message_cache_or_finalize): fix bug
6262         where I was trying to cache one too many messages
6263
6264 2004-11-26  Havoc Pennington  <hp@redhat.com>
6265
6266         * dbus/dbus-message.c: reimplement message cache as an array which 
6267         makes the cache about twice as fast and saves maybe 1.5% overall
6268
6269 2004-11-26  Havoc Pennington  <hp@redhat.com>
6270
6271         * dbus/dbus-threads.c (init_global_locks): forgot to put the
6272         message cache lock here
6273
6274 2004-11-26  Havoc Pennington  <hp@redhat.com>
6275
6276         * dbus/dbus-message.c (struct DBusMessage): put the locked bit and
6277         the "char byte_order" next to each other to save 4 bytes
6278         (dbus_message_new_empty_header): reduce preallocation, since the
6279         message cache should achieve a similar effect
6280         (dbus_message_cache_or_finalize, dbus_message_get_cached): add a
6281         message cache that keeps a few DBusMessage around in a pool,
6282         another 8% speedup or so.
6283
6284         * dbus/dbus-dataslot.c (_dbus_data_slot_list_clear): new function
6285
6286 2004-11-25  Havoc Pennington  <hp@redhat.com>
6287
6288         * dbus/dbus-transport-unix.c (unix_do_iteration): if we're going
6289         to write, without reading or blocking, try it before the poll()
6290         and skip the poll() if nothing remains to write. This is about a
6291         3% speedup in the echo client/server
6292
6293 2004-11-25  Havoc Pennington  <hp@redhat.com>
6294
6295         The primary change here is to always write() once before adding
6296         the write watch, which gives us about a 10% performance increase.
6297         
6298         * dbus/dbus-transport-unix.c: a number of modifications to cope
6299         with removing messages_pending
6300         (check_write_watch): properly handle
6301         DBUS_AUTH_STATE_WAITING_FOR_MEMORY; adapt to removal of
6302         messages_pending stuff
6303         (check_read_watch): properly handle WAITING_FOR_MEMORY and
6304         AUTHENTICATED cases
6305         (unix_handle_watch): after writing, see if the write watch can be
6306         removed
6307         (unix_do_iteration): assert that write_watch/read_watch are
6308         non-NULL rather than testing that they aren't, since they 
6309         aren't allowed to be NULL. check_write_watch() at the end so 
6310         we add the watch if we did not finish writing (e.g. got EAGAIN)
6311
6312         * dbus/dbus-transport-protected.h: remove messages_pending call,
6313         since it resulted in too much inefficient watch adding/removing; 
6314         instead we now require that the transport user does an iteration 
6315         after queueing outgoing messages, and after trying the first
6316         write() we add a write watch if we got EAGAIN or exceeded our 
6317         max bytes to write per iteration setting
6318
6319         * dbus/dbus-string.c (_dbus_string_validate_signature): add this
6320         function
6321
6322         * dbus/dbus-server-unix.c (unix_finalize): the socket name was
6323         freed and then accessed, valgrind flagged this bug, fix it
6324
6325         * dbus/dbus-message.c: fix several bugs where HEADER_FIELD_LAST was taken
6326         as the last valid field plus 1, where really it is equal to the
6327         last valid field. Corrects some message corruption issues.
6328
6329         * dbus/dbus-mainloop.c: verbosity changes
6330
6331         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): handle OOM
6332         instead of aborting in one of the test codepaths
6333
6334         * dbus/dbus-internals.c (_dbus_verbose_real): fix a bug that
6335         caused not printing the pid ever again if a verbose was missing
6336         the newline at the end
6337         (_dbus_header_field_to_string): add HEADER_FIELD_SIGNATURE
6338
6339         * dbus/dbus-connection.c: verbosity changes; 
6340         (dbus_connection_has_messages_to_send): new function
6341         (_dbus_connection_message_sent): no longer call transport->messages_pending
6342         (_dbus_connection_send_preallocated_unlocked): do one iteration to
6343         try to write() immediately, so we can avoid the write watch. This
6344         is the core purpose of this patchset
6345         (_dbus_connection_get_dispatch_status_unlocked): if disconnected,
6346         dump the outgoing message queue, so nobody will get confused
6347         trying to send them or thinking stuff is pending to be sent
6348
6349         * bus/test.c: verbosity changes
6350
6351         * bus/driver.c: verbosity/assertion changes
6352
6353         * bus/dispatch.c: a bunch of little tweaks to get it working again
6354         because this patchset changes when/where you need to block.
6355
6356 2004-11-23  Havoc Pennington  <hp@redhat.com>
6357
6358         * test/glib/test-profile.c: modify to accept a plain_sockets
6359         argument in which case it will bench plain sockets instead of
6360         libdbus, for comparison purposes.
6361
6362 2004-11-22  Havoc Pennington  <hp@redhat.com>
6363
6364         * test/glib/test-profile.c (N_CLIENT_THREADS): run multiple
6365         threads for more time, so sysprof can get a grip on it.
6366
6367         * dbus/dbus-string.c (_dbus_string_validate_utf8): remove
6368         pointless variable
6369
6370 2004-11-13  Havoc Pennington  <hp@redhat.com>
6371
6372         * test/glib/test-profile.c: fix this thing up a bit
6373
6374         * dbus/dbus-message.c (dbus_message_new_empty_header): increase
6375         preallocation sizes by a fair bit; not sure if this will be an
6376         overall performance win or not, but it does reduce reallocs.
6377
6378         * dbus/dbus-string.c (set_length, reallocate_for_length): ignore
6379         the test hack that forced constant realloc if asserts are
6380         disabled, so we can profile sanely. Sprinkle in some
6381         _DBUS_UNLIKELY() which are probably pointless, but before I
6382         noticed the real performance problem I put them in.
6383         (_dbus_string_validate_utf8): micro-optimize this thing a little
6384         bit, though callgrind says it didn't help; then special-case
6385         ascii, which did help a lot; then be sure we detect nul bytes as
6386         invalid, which is a bugfix.
6387         (align_length_then_lengthen): add some more _DBUS_UNLIKELY
6388         superstition; use memset to nul the padding instead of a manual
6389         loop.
6390         (_dbus_string_get_length): inline this as a
6391         macro; it showed up in the profile because it's used for loop
6392         tests and so forth
6393
6394 2004-11-10  Colin Walters  <walters@verbum.org>
6395
6396         * dbus/dbus-spawn.c (check_babysit_events): Handle EINTR,
6397         for extra paranoia.
6398
6399 2004-11-09  Colin Walters  <walters@verbum.org>
6400
6401         * dbus/dbus-string.c (_dbus_string_get_length): New
6402         function, writes DBusString to C buffer.
6403
6404         * dbus/dbus-string.h: Prototype it.
6405
6406         * dbus/dbus-message.c (dbus_message_type_to_string): New
6407         function, converts message type into C string.
6408
6409         * dbus/dbus-message.h: Prototype it.
6410
6411         * bus/selinux.c (bus_selinux_check): Take source pid,
6412         target pid, and audit data.  Pass audit data to
6413         avc_has_perm.
6414         (log_audit_callback): New function, appends extra
6415         audit information.
6416         (bus_selinux_allows_acquire_service): Also take
6417         service name, add it to audit data.
6418         (bus_selinux_allows_send): Also take message
6419         type, interface, method member, error name,
6420         and destination, and add them to audit data.
6421         (log_cb): Initialize func_audit.
6422         
6423         * bus/selinux.h (bus_selinux_allows_acquire_service)
6424         (bus_selinux_allows_send): Update prototypes 
6425
6426         * bus/services.c (bus_registry_acquire_service): Pass
6427         service name to bus_selinux_allows_acquire_service.
6428
6429         * bus/bus.c (bus_context_check_security_policy): Pass
6430         additional audit data.  Move assignment of dest
6431         to its own line.
6432
6433 2004-11-07  Colin Walters  <walters@verbum.org>
6434
6435         * dbus/dbus-transport-unix.c (do_authentication): Always
6436         initialize auth_completed.
6437         
6438 2004-11-07  Colin Walters  <walters@verbum.org>
6439
6440         * bus/bus.c (load_config): Break into three
6441         separate functions: process_config_first_time_only,
6442         process_config_every_time, and process_config_postinit.
6443         (process_config_every_time): Move call of
6444         bus_registry_set_service_context_table into
6445         process_config_postinit.
6446         (process_config_postinit): New function, does
6447         any processing that needs to happen late
6448         in initialization (and also on reload).
6449         (bus_context_new): Instead of calling load_config,
6450         open config parser here and call process_config_first_time_only
6451         and process_config_every_time directly.  Later, after
6452         we have forked but before changing UID,
6453         invoke bus_selinux_full_init, and then call
6454         process_config_postinit.
6455         (bus_context_reload_config): As in bus_context_new,
6456         load parse file inside here, and call process_config_every_time
6457         and process_config_postinit.
6458
6459         * bus/services.h, bus/services.c
6460         (bus_registry_set_service_context_table): Rename
6461         from bus_registry_set_sid_table.  Take string hash from config
6462         parser, and convert them here into SIDs.
6463
6464         * bus/config-parser.c (struct BusConfigParser): Have
6465         config parser only store a mapping of service->context
6466         string.
6467         (merge_service_context_hash): New function.
6468         (merge_included): Merge context string hashes instead
6469         of using bus_selinux_id_table_union.
6470         (bus_config_parser_new): Don't use bus_selinux_id_table_new;
6471         simply create a new string hash.
6472         (bus_config_parser_unref): Unref it.
6473         (start_selinux_child): Simply insert strings into hash,
6474         don't call bus_selinux_id_table_copy_over.
6475
6476         * bus/selinux.h, bus/selinux.c (bus_selinux_id_table_union)
6477         (bus_selinux_id_table_copy_over): Delete.
6478
6479 2004-11-03  Colin Walters  <walters@verbum.org>
6480
6481         * bus/selinux.c (bus_selinux_pre_init): Kill some unused
6482         variables.
6483         
6484 2004-11-03  Colin Walters  <walters@verbum.org>
6485
6486         * bus/test-main.c (test_pre_hook): Fix test logic,
6487         thanks Joerg Barfurth <Joerg.Barfurth@Sun.COM>.
6488
6489 2004-11-02  Colin Walters  <walters@redhat.com>
6490
6491         * bus/selinux.c (bus_selinux_init): Split into two functions,
6492         bus_selinux_pre_init and bus_selinux_post_init.
6493         (bus_selinux_pre_init): Just determine whether SELinux is
6494         enabled.
6495         (bus_selinux_post_init): Do everything else.
6496
6497         * bus/main.c (main): Call bus_selinux_pre_init before parsing
6498         config file, and bus_selinux_post_init after.  This ensures that
6499         we don't lose the policyreload notification thread that
6500         bus_selinux_init created before forking previously.
6501         
6502         * bus/test-main.c (test_pre_hook): Update for split.
6503
6504 2004-10-31  Owen Fraser-Green  <owen@discobabe.net>
6505
6506         Patch from Johan Fischer <linux@fischaz.com>
6507         
6508         * mono/doc/Makefile.am (install-data-local): Added directory
6509         install for DESTDIR
6510
6511 2004-10-29  Colin Walters  <walters@redhat.com>
6512
6513         * dbus/dbus-sysdeps.h (_dbus_become_daemon): Also take
6514         parameter for fd to write pid to.       
6515
6516         * dbus/dbus-sysdeps.c (_dbus_become_daemon): Implement it.
6517         
6518         * bus/bus.c (bus_context_new): Pass print_pid_fd
6519         to _dbus_become_daemon (bug #1720)
6520
6521 2004-10-29  Colin Walters  <walters@redhat.com>
6522
6523         Patch from Ed Catmur <ed@catmur.co.uk>
6524
6525         * mono/doc/Makefile.am (install-data-local): Handle
6526         DESTDIR.
6527
6528 2004-10-29  Colin Walters  <walters@redhat.com>
6529
6530         * bus/.cvsignore, qt/.cvsignore: Update.
6531
6532 2004-10-29  Colin Walters  <walters@redhat.com>
6533
6534         Patch from Kristof Vansant <de_lupus@pandora.be>
6535
6536         * configure.in: Detect Slackware.
6537         * bus/Makefile.am (SCRIPT_IN_FILES): Add rc.messagebus.in.
6538         * bus/rc.messagebus.in: New file.
6539
6540 2004-10-29  Colin Walters  <walters@redhat.com>
6541
6542         * tools/dbus-monitor.c (filter_func): Return
6543         DBUS_HANDLER_RESULT_HANDLED in filter function
6544         for now.  See:
6545         http://freedesktop.org/pipermail/dbus/2004-August/001433.html
6546
6547 2004-10-29  Colin Walters  <walters@redhat.com>
6548
6549         Patch from Matthew Rickard <mjricka@epoch.ncsc.mil>
6550
6551         * bus/services.c (bus_registry_acquire_service): 
6552         Correctly retrieve service name from DBusString
6553         for printing.
6554
6555 2004-10-29  Colin Walters  <walters@redhat.com>
6556
6557         * dbus/dbus-glib.h: Update documentation to not
6558         refer to internal APIs.
6559
6560 2004-10-27  Joe Shaw  <joeshaw@novell.com>
6561
6562         * mono/Arguments.cs (GetDBusTypeConstructor):
6563         type.UnderlyingSystemType will return "System.Byte" if you do it
6564         on "byte[]", which is not what we want.  So check the type.IsArray
6565         property and use System.Array instead.
6566
6567 2004-10-25  John (J5) Palmieri  <johnp@redhat.com>
6568
6569         * dbus/dbus-sysdeps.c (fill_user_info): On errors do not free
6570         the DBusUserInfo structure since this is passed into the function.
6571         This would cause a double free when the function that allocated
6572         the structure would try to free it when an error occured.
6573
6574         * (bus/session.conf.in, bus/Makefile.am, dbus/configure.in):
6575         use /usr/share/dbus-1/services instead of /usr/lib/dbus-1.0/services
6576         for service activation to avoid 32bit/64bit parallel install issues
6577
6578 2004-10-21  Colin Walters  <walters@verbum.org>
6579
6580         * AUTHORS: Fix my email address, the @gnu.org one
6581         has been bouncing for some time.  Also add J5.
6582         
6583 2004-10-21  Colin Walters  <walters@verbum.org>
6584
6585         * dbus/dbus-transport-unix.c (do_authentication): Return
6586         authentication status to callers.
6587         (unix_handle_watch): If we completed authentication this round,
6588         don't do another read.  Instead wait until the next iteration,
6589         after we've read any pending data in the auth buffer.
6590         (unix_do_iteration): Ditto.
6591         (unix_handle_watch): Updated for new do_authentication prototype.
6592
6593 2004-10-18  Colin Walters  <walters@verbum.org>
6594
6595         * bus/selinux.c (bus_selinux_enabled): Handle
6596         --disable-selinux case.
6597         
6598 2004-10-18  Colin Walters  <walters@verbum.org>
6599
6600         * bus/selinux.h: Add bus_selinux_enabled.
6601         
6602         * bus/selinux.c (bus_selinux_enabled): Implement it.
6603         
6604         * bus/config-parser.c (struct include): Add
6605         if_selinux_enabled member.
6606         (start_busconfig_child): Parse if_selinux_enabled
6607         attribute for include.
6608         (bus_config_parser_content): Handle it.
6609
6610         * bus/session.conf.in, bus/system.conf.in: Add
6611         inclusion of context mapping to default config files;
6612         conditional on SELinux being enabled.
6613         
6614         * doc/busconfig.dtd: Add to if_selinux_enabled to default DTD.
6615         
6616         * test/data/invalid-config-files/badselinux-1.conf, 
6617         test/data/invalid-config-files/badselinux-2.conf:
6618         Test files for bad syntax.
6619         
6620 2004-10-17  Colin Walters  <walters@verbum.org>
6621
6622         * dbus/dbus-memory.c (_dbus_initialize_malloc_debug, check_guards)
6623         (dbus_malloc, dbus_malloc0, dbus_realloc): Fix up printf
6624         format specifier mismatches.
6625
6626 2004-10-07  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6627
6628         * dbus/dbus-sysdeps.c (_dbus_file_get_contents): fix an incorrect
6629         format string.
6630
6631         * glib/dbus-dbus-gmain.c (dbus_g_bus_get): do not mangle NULL
6632         pointer (bug #1540, Leonardo Boiko).
6633
6634 2004-09-28  Jon Trowbridge  <trow@ximian.com>
6635
6636         * mono/BusDriver.cs: Changed BusDriver struct to remove
6637         the ServiceCreated and ServiceDeleted events and replace them
6638         with the new ServiceOwnerChanged event.
6639
6640         * mono/example/BusListener.cs: Added a new example program,
6641         which listens for and reports any ServiceOwnerChanged events
6642         on the bus driver.
6643
6644         * mono/example/Makefile.am (DESTDIR): Build changes for the
6645         new BusListener.cs example.
6646
6647 2004-09-27  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6648
6649         * bus/signals.c (bus_match_rule_parse): validate the components of
6650         match rules (bug #1439).
6651
6652         * dbus/dbus-bus.c (dbus_bus_add_match): add a missing OOM test.
6653
6654 2004-09-24  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6655
6656         * doc/dbus-specification.xml: document ServiceOwnerChanged
6657         signal.
6658         
6659         * bus/driver.c, bus/driver.h, bus/services.c: Use
6660         ServiceOwnerChanged signal instead of ServiceCreated and
6661         ServiceDeleted.
6662         
6663         * bus/dispatch.c: update testcase for the new signal.
6664
6665 2004-09-20  Jon Trowbridge  <trow@ximian.com>
6666
6667         Patch from Nat Friedman <nat@novell.com>
6668
6669         * mono/Makefile.am: A number of small build fixes to allow "make
6670         distcheck" to succeed.
6671
6672         * mono/example/Makefile.am: "make distcheck" fixes.
6673
6674         * mono/AssemblyInfo.cs.in: When signing the assembly, look for the
6675         key in @srcdir@.
6676
6677         * test/Makefile.am: "make distcheck" fixes.
6678
6679 2004-09-17  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6680
6681         * dbus/dbus-sysdeps.c (_dbus_user_at_console): fix memleak in OOM.
6682
6683         * doc/busconfig.dtd: update the DTD for the at_console attribute.
6684
6685         * bus/driver.c (bus_driver_handle_hello): correctly handle Hello
6686         messages after the first one (bug #1389).
6687         
6688         * bus/dispatch.c (check_double_hello_message): add a test case for
6689         the double hello message bug.
6690         (check_existent_service_activation): fix check of spawning error.
6691         
6692 2004-09-16  David Zeuthen  <david@fubar.dk>
6693
6694         * python/dbus_bindings.pyx.in: Add support for int64 and uint64
6695
6696 2004-09-12  David Zeuthen  <david@fubar.dk>
6697
6698         Patch from Kay Sievers <kay.sievers@vrfy.org>
6699
6700         * bus/bus.c (bus_context_new):
6701         * bus/bus.h:
6702         * bus/main.c (usage)
6703         (main):
6704         Add commandline option --nofork to override configuration file
6705         setting.
6706
6707 2004-09-09  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6708
6709         * dbus/dbus-*.h: remove the ; after DBUS_(BEGIN|END)_DECLS. Some C
6710         compilers don't like it (bug #974).
6711
6712 2004-09-04  Harald Fernengel  <harry@kdevelop.org>
6713
6714         * qt/connection.*: Applied patch by Jérôme Lodewyck
6715         <lodewyck@clipper.ens.fr> to integrate an existing
6716         connection into the Qt eventloop
6717
6718 2004-08-30  Jon Trowbridge  <trow@ximian.com>
6719
6720         * mono/BusDriver.cs: Added.  This is a class for interacting with
6721         the org.freedesktop.DBus service.
6722
6723         * mono/Message.cs: Added a mechanism to expose the message that is
6724         currently being dispatched via the static Message.Current
6725         property.  Added Message.Sender and Message.Destination
6726         properties.
6727
6728         * mono/Handler.cs: Expose the dispatched message via
6729         Message.Current when handling method calls.
6730
6731         * mono/Service.cs: Expose the dispatched message via
6732         Message.Current when handling signal emissions.
6733         
6734         * mono/Connection.cs: Bind dbus_bus_get_base_service via the
6735         Connection.BaseService property.
6736
6737 2004-08-28  Havoc Pennington  <hp@redhat.com>
6738
6739         * dbus/dbus-userdb.c (_dbus_is_console_user): remove unused variable
6740
6741         More fixes from Steve Grubb
6742         
6743         * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): fix fd leak
6744         (_dbus_listen_tcp_socket): fix fd leak
6745
6746         * dbus/dbus-spawn.c (read_pid, read_ints): move the "again:" for
6747         EINTR to a bit lower in the code
6748
6749 2004-08-26  Jon Trowbridge  <trow@ximian.com>
6750
6751         * bus/driver.c (bus_driver_handle_service_exists): Respond with
6752         TRUE if we are inquiring about the existence of the built-in
6753         org.freedesktop.DBus service.
6754
6755 2004-08-25  John Palmieri  <johnp@redhat.com>
6756         * bus/config-parser.c:
6757         (struct PolicyType): Add POLICY_CONSOLE
6758         (struct Element.d.policy): s/gid_or_uid/gid_uid_or_at_console
6759         (start_busconfig_child): Sets up console element when
6760         <policy at_console=""> is encountered in a policy file
6761         (append_rule_from_element): Convert console elements to console
6762         rules.
6763
6764         * bus/policy.c: 
6765         (bus_policy_create_client_policy): Add console rules to the client
6766         policy based on if the client is at the console
6767         (bus_policy_append_console_rule): New function for adding a
6768         console rule to a policy
6769         (bus_policy_merge): Handle console rule merging
6770
6771         * dbus/dbus-sysdeps.h: Added the DBUS_CONSOLE_DIR constant
6772         where we check for console user files
6773         
6774         * dbus/dbus-sysdeps.c:
6775         (_dbus_file_exists): New function which checks if the given
6776         file exists
6777         (_dbus_user_at_console): New function which does the system
6778         specific process of checking if the user is at the console
6779
6780         * dbus/dbus-userdb.c:
6781         (_dbus_is_console_user): New function converts a UID to user name
6782         and then calls the system specific _dbus_user_at_console to 
6783         see if the user is at the console and therefor a console user
6784
6785 2004-08-25  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6786
6787         * bus/config-parser.c (set_limit):
6788         * bus/dbus-daemon-1.1.in:
6789         * test/data/valid-config-files/many-rules.conf: set the
6790         max_match_rules_per_connection limt from the config file. 
6791
6792         * doc/busconfig.dtd: update the DTD.
6793
6794         * bus/driver.c: remove some unused variables.
6795
6796 2004-08-24  Mikael Hallendal  <micke@imendio.com>
6797
6798         * dbus/dbus-glib-lowlevel.h: Removed dbus_bus_get_with_g_main since 
6799         it's been replaced by dbus_g_bus_get
6800
6801 2004-08-23  Colin Walters  <walters@redhat.com>
6802
6803         Updated SELinux support from Matthew Rickard <mjricka@epoch.ncsc.mil>
6804
6805         * bus/selinux.h: Prototype bus_selinux_get_policy_root.
6806
6807         * bus/selinux.c: Create a thread for policy reload notification.
6808         (bus_selinux_get_policy_root): Implement.
6809
6810         * bus/config-parser.c (start_busconfig_child)
6811         (bus_config_parser_content): Support SELinux-root relative
6812         inclusion.
6813
6814         * configure.in <HAVE_SELINUX>: Add -lpthread.
6815         
6816         * bus/test-main.c (test_pre_hook, test_post_hook): New.
6817         (test_post_hook): Move memory checking into here.
6818         (test_pre_hook, test_post_hook): Move SELinux checks in
6819         here, but conditional on a DBUS_TEST_SELINUX environment
6820         variable.  Unfortunately we can't run the SELinux checks
6821         as a normal user, since they won't have any permissions
6822         for /selinux.  So this will have to be tested manually
6823         for now, until we have virtualization for most of
6824         libselinux.
6825         
6826 2004-08-23  Havoc Pennington  <hp@redhat.com>
6827
6828         * dbus/dbus-sysdeps.c (_dbus_change_identity): add setgroups() to
6829         drop supplementary groups, suggested by Steve Grubb
6830
6831 2004-08-20  Colin Walters  <walters@redhat.com>
6832
6833         * bus/config-parser.c (start_busconfig_child): Remove some unused
6834         variables.
6835         
6836         * bus/selinux.c (bus_selinux_id_table_insert): Avoid compiler
6837         warning.
6838
6839 2004-08-17  Joe Shaw  <joeshaw@novell.com>
6840
6841         * configure.in: If --enable-mono is passed in, if we can't find
6842         mono error out.
6843
6844         * mono/Makefile.am: Use /gacutil to install assemblies into the
6845         GAC and not /root.
6846
6847 2004-08-12  Havoc Pennington  <hp@redhat.com>
6848
6849         * NEWS: update for 0.22
6850
6851         * configure.in: release 0.22
6852
6853 2004-08-11  Colin Walters  <walters@redhat.com>
6854
6855         * tools/dbus-send.c (main, usage): Add --reply-timeout
6856         argument.
6857
6858 2004-08-10  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6859
6860         * bus/bus.c (process_config_first_time_only): get rid of an unused
6861         DBusError that was causing a memoy leak (bug #989).
6862
6863         * dbus/dbus-keyring.c, dbus/dbus-message.c:
6864         fix compilation on Solaris/Forte C (bug #974)
6865
6866         * bus/main.c (main): plug two minuscule memleaks.
6867
6868 2004-08-10  Havoc Pennington  <hp@redhat.com>
6869
6870         * doc/dbus-tutorial.xml: add some more info on GLib bindings
6871
6872 2004-08-09  Havoc Pennington  <hp@redhat.com>
6873
6874         * COPYING: switch to Academic Free License version 2.1 instead of
6875         2.0, to resolve complaints about patent termination clause.
6876
6877 2004-07-31  John (J5) Palmieri  <johnp@redhat.com>
6878
6879         * README: added documentation for the --enable-python 
6880         configure switch.
6881
6882 2004-07-31  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6883
6884         * bus/config-parser.c (bus_config_parser_new): fix an invalid
6885         _unref in the SELinux support.
6886
6887         * doc/busconfig.dtd: update DTD for SELinux support.
6888
6889         * bus/config-loader-libxml.c: fix error handler and parser
6890         initialisation/cleanup. OOM test now works with libxml2 HEAD.
6891
6892         * configure.in: remove the warning about libxml2.
6893
6894         * dbus/dbus-bus.c: silence doxygen warning.
6895
6896 2004-07-31  Colin Walters  <walters@redhat.com>
6897
6898         * configure.in: Move #error in SELinux check to its own line.
6899
6900 2004-07-31  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6901
6902         * dbus/dbus-internals.h (_DBUS_SET_OOM):
6903         * bus/utils.h (BUS_SET_OOM): use dbus_error_set_const instead of
6904         dbus_error_set.
6905
6906         * bus/dispatch.c (check_send_exit_to_service): fix the test case,
6907         broken by the change in the _SET_OOM macros.
6908
6909 2004-07-31  Colin Walters  <walters@redhat.com>
6910
6911         * bus/selinux.c <HAVE_SELINUX>: Include utils.h to get
6912         BUS_SET_OOM.
6913
6914 2004-07-31  Colin Walters  <walters@redhat.com>
6915
6916         * configure.in: Use AC_TRY_COMPILE instead of AC_EGREP_HEADER
6917         to correctly detect DBUS__ACQUIRE_SVC.  Also add an
6918         AC_MSG_CHECKING.
6919
6920 2004-07-24  Havoc Pennington  <hp@redhat.com>
6921
6922         SELinux support from Matthew Rickard <mjricka@epoch.ncsc.mil>
6923
6924         * bus/selinux.c, bus/selinux.h: new file encapsulating selinux
6925         functionality
6926
6927         * configure.in: add --enable-selinux
6928         
6929         * bus/policy.c (bus_policy_merge): add FIXME to a comment
6930
6931         * bus/main.c (main): initialize and shut down selinux
6932
6933         * bus/connection.c: store SELinux ID on each connection, to avoid 
6934         repeated getting of the string context and converting it into 
6935         an ID
6936
6937         * bus/bus.c (bus_context_get_policy): new accessor, though it
6938         isn't used
6939         (bus_context_check_security_policy): check whether the security
6940         context of sender connection can send to the security context of
6941         recipient connection
6942
6943         * bus/config-parser.c: add parsing for <selinux> and <associate>
6944         
6945         * dbus/dbus-transport.c (_dbus_transport_get_unix_fd): to
6946         implement dbus_connection_get_unix_fd()
6947
6948         * dbus/dbus-connection.c (dbus_connection_get_unix_fd): new
6949         function, used by the selinux stuff
6950         
6951 2004-07-29  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6952
6953         * bus/config-loader-libxml.c: complete the implementation of
6954         libxml backend for config file loader. Doesn't work with full OOM
6955         test yet. 
6956         
6957         * configure.in: change error when selecting libxml into a warning.
6958         
6959         * test/data/invalid-config-files: add two non-well-formed XML
6960         files. 
6961         
6962         * glib/Makefile.am: libdbus_gtool always uses expat, not libxml.
6963         
6964         * dbus/dbus-transport-unix.c (unix_handle_watch): do not
6965         disconnect in case of DBUS_WATCH_HANGUP, several do_reading() may
6966         be necessary to read all the buffer. (bug #894)
6967
6968         * bus/activation.c (bus_activation_activate_service): fix a
6969         potential assertion failure (bug #896). Small optimization in the
6970         case of auto-activation messages.
6971
6972         * dbus/dbus-message.c (verify_test_message, _dbus_message_test):
6973         add test case for byte-through-vararg bug (#901). patch by Kimmo
6974         Hämäläinen. 
6975
6976 2004-07-28  Anders Carlsson  <andersca@gnome.org>
6977
6978         * python/dbus.py:
6979         * python/dbus_bindings.pyx.in:
6980         Add dbus.init_gthreads (), allow emit_signal to pass
6981         arguments to the signal.
6982         
6983 2004-07-24  Havoc Pennington  <hp@redhat.com>
6984
6985         * AUTHORS: add some people, not really comprehensively, let me
6986         know if I missed you
6987
6988 2004-07-24  Havoc Pennington  <hp@redhat.com>
6989
6990         * Makefile.am (DIST_SUBDIRS): add DIST_SUBDIRS, problem solved by
6991         Owen
6992
6993         * test/Makefile.am (DIST_SUBDIRS): here also
6994
6995 2004-07-22  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6996
6997         * dbus/dbus-sysdeps.c (fill_user_info): fix inexistent label name,
6998         breaking build on Solaris, reported by Farhad Saberi on the ML.
6999
7000         * dbus/dbus-message.c (dbus_message_append_args_valist): fix the
7001         va_arg invocation to account for integer promotion in the case of
7002         DBUS_TYPE_BYTE (unsigned char is promoted to int). (bug #901)
7003
7004         * bus/services.c (bus_service_remove_owner): fix bug #902, use
7005         _dbus_list_get_first_link, not _dbus_list_get_first.
7006
7007         * dbus/dbus-bus.c (dbus_bus_service_exists): plug a memory leak.
7008
7009         * dbus/dbus-object-tree.c (free_subtree_recurse): always null
7010         handler functions so that the asserts in _dbus_object_subtree_unref
7011         do not fail.
7012
7013         * dbus/dbus-transport-unix.c (do_reading):
7014         _dbus_transport_queue_messages return value is of type
7015         dbus_bool_t, not DBusDispatchStatus.
7016         
7017 2004-07-19  David Zeuthen  <david@fubar.dk>
7018
7019         * dbus/dbus-protocol.h: Add DBUS_ERROR_UNIX_PROCESS_ID_UNKNOWN
7020
7021         * bus/dispatch.c:
7022         (check_get_connection_unix_user): Debug says GetProperty; but the
7023         method is called GetConnectionUnixUser
7024         (check_get_connection_unix_process_id): New function
7025         (bus_dispatch_test): Actually call check_get_connection_unix_user();
7026         also call check_get_connection_unix_process_id()
7027         
7028         * bus/driver.c:
7029         (bus_driver_handle_get_connection_unix_process_id): New function,
7030         handles GetConnectionUnixProcessID on the org.freedesktop.DBus
7031         interface
7032         
7033         * dbus/dbus-auth.c:
7034         (handle_server_data_external_mech): Set pid from the credentials
7035         obtained from the socket
7036         
7037         * dbus/dbus-connection.c:
7038         (dbus_connection_get_unix_process_id): New function
7039         
7040         * dbus/dbus-connection.h: 
7041         Add prototype for dbus_connection_get_unix_process_id
7042         
7043         * dbus/dbus-transport.c:
7044         (_dbus_transport_get_unix_process_id): New function
7045         
7046         * dbus/dbus-transport.h:
7047         Add prototype for _dbus_transport_get_unix_process_id
7048         
7049 2004-07-19  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7050
7051         * dbus/dbus-message.c: Message counter fix, patch by Christian
7052         Hammond <chipx86@gnupdate.org>
7053
7054 2004-07-18  Seth Nickell  <seth@gnome.org>
7055
7056         * python/dbus.py:
7057         * python/dbus_bindings.pyx.in:
7058         * python/tests/test-client.py:
7059
7060         Add dbus.ByteArray and dbus_bindings.ByteArray
7061         types so that byte streams can be passed back.
7062
7063         Give jdahlin the heaps of credit that are so
7064         rightfully his.
7065         
7066 2004-07-12  Seth Nickell  <seth@gnome.org>
7067
7068         * python/dbus.py:
7069
7070         Add message argument to the default object_method_handler
7071         function.
7072         
7073         * python/dbus_bindings.pyx.in:
7074
7075         Automatically return NIL when passed an empty list
7076         (we can't pass back a list since lists are typed
7077         and we don't have any idea what type the the client
7078         intended the list to be... :-( )
7079         
7080 2004-07-10  Seth Nickell  <seth@gnome.org>
7081
7082         * python/examples/Makefile.am:
7083
7084         Fix distcheck breakage caused by new examples.
7085
7086 2004-07-10  Seth Nickell  <seth@gnome.org>
7087
7088         * python/dbus.py:
7089
7090         Add "message" argument to service-side dbus.Object
7091         methods. This will break existing services written
7092         using the python bindings, but will allow extraction
7093         of all the message information (e.g. who its from).
7094
7095         Add improved "object oriented" signal handling/emission.
7096         
7097         * python/examples/example-service.py:
7098
7099         Nix this example.
7100         
7101         * python/examples/example-signal-emitter.py:
7102         * python/examples/example-signal-recipient.py:
7103
7104         Two new examples that show how to emit and receive
7105         signals using the new APIs.
7106         
7107         * python/examples/example-signals.py:
7108         * python/examples/gconf-proxy-service.py:
7109         * python/examples/gconf-proxy-service2.py:
7110
7111         Add "message" argument to service methods.
7112
7113 2004-06-28  Kay Sievers <kay.sievers@vrfy.org>
7114
7115         * bus/driver.c (bus_driver_handle_get_connection_unix_user)
7116         * dbus/bus.c (dbus_bus_get_unix_user)
7117         * doc/dbus-specification.xml: implement GetConnectionUnixUser
7118         method of org.freedesktop.DBus interface.
7119
7120         * bus/dispatch.c: test case
7121
7122 2004-06-23  John (J5) Palmieri  <johnp@redhat.com>
7123
7124         * python/Makefile.am: switched include directory from glib/ to dbus/
7125         since dbus-glib.h moved
7126  
7127 2004-06-22  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7128
7129         * configure.in: prevent building the gcj stuff and libxml loader
7130         since they are broken.
7131
7132 2004-06-20  Havoc Pennington  <hp@redhat.com>
7133
7134         * dbus/dbus-glib-error-enum.h: autogenerate the GError enum 
7135         codes from the dbus error names
7136         
7137         * glib/dbus-glib.h: move to subdir dbus/ since it's included 
7138         as dbus/dbus-glib.h and that breakage is now visible due to 
7139         including dbus/dbus-glib.h in dbus-glib-lowlevel.h
7140         
7141         * glib/dbus-glib.h: s/gproxy/g_proxy/
7142
7143         * dbus/dbus-shared.h: new header to hold stuff shared with
7144         binding APIs
7145         
7146         * dbus/dbus-protocol.h (DBUS_ERROR_*): move errors here rather
7147         than dbus-errors.h
7148
7149         * glib/dbus-glib.h (dbus_set_g_error): move to
7150         dbus-glib-lowlevel.h
7151
7152         * glib/dbus-glib.h: remove dbus/dbus.h from here; change a bunch
7153         of stuff to enable this
7154
7155         * dbus/dbus-glib-lowlevel.h: put dbus/dbus.h here
7156
7157         * a bunch of other changes with the same basic "separate glib 
7158         bindings from dbus.h" theme
7159         
7160 2004-06-10  Owen Fraser-Green  <owen@discobabe.net>
7161
7162         * dbus-sharp.pc.in: Removed glib-sharp inclusion in Libs.
7163
7164         * python/examples/Makefile.am: Fixed typo in EXTRA_DIST.
7165
7166 2004-06-09  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7167
7168         * bus/driver.c, dbus/dbus-bus.c: use BOOLEAN instead of UINT32 for
7169         the reply value of the ServiceExists message.
7170
7171 2004-06-07  John (J5) Palmieri  <johnp@redhat.com>
7172
7173         * python/dbus_bindings.pyx.in: No longer need to parse path
7174         elements and pass them as arrays of strings.  The C API now
7175         accepts plain path strings.
7176         (_build_parsed_path): removed 
7177
7178 2004-06-07  Havoc Pennington  <hp@redhat.com>
7179
7180         * doc/TODO: remove auto-activation item since it's done; sort
7181         items by importance/milestone
7182
7183 2004-06-07  Havoc Pennington  <hp@redhat.com>
7184
7185         * dbus/dbus-message-builder.c (_dbus_message_data_load): append
7186         random signature when using REQUIRED_FIELDS (this hack won't work
7187         in the long term)
7188
7189         * dbus/dbus-message.c: change the signature to be a header field,
7190         instead of message->signature special-case string. Incremental
7191         step forward. Then we can fix up code to send the signature in the
7192         message, then fix up code to validate said signature, then fix up
7193         code to not put the typecodes inline, etc.
7194         (load_one_message): don't make up the signature after the fact
7195         (decode_header_data): require signature field for the known
7196         message types
7197
7198         * dbus/dbus-marshal.c (_dbus_marshal_string_len): new
7199
7200         * dbus/dbus-protocol.h: add DBUS_HEADER_FIELD_SIGNATURE
7201
7202 2004-06-07  Owen Fraser-Green  <owen@discobabe.net>
7203
7204         * mono/DBusType/ObjectPath.cs: Renamed PathName argument to Path
7205
7206         * mono/Handler.cs: Updated to follow new path argument for
7207         (un-)registering objects.
7208
7209         * mono/example/Makefile.am:
7210         * mono/Makefile.am:
7211         * configure.in: Bumped required version for mono and use new -pkg
7212         syntax for deps
7213
7214 2004-06-05  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7215
7216         * dbus/dbus-connection.h, dbus/dbus-connection.c: have object path
7217         registration functions take the path argument as char* instead of
7218         char**.
7219
7220         * dbus/dbus-marshal.h, dbus/dbus-marshal.c (_dbus_decompose_path):
7221         split off the path decompostion part of
7222         _dbus_demarshal_object_path. Some misc. fixes to silence compiler
7223         warnings. 
7224
7225         * glib/dbus-gobject.c, test/test-service.c: update accordingly.
7226         
7227 2004-06-02  Kristian Høgsberg  <krh@redhat.com>
7228  
7229         * dbus/dbus-auth.c: Rewrite auth protocol handling to use a state
7230         machine approach.  A state is implemented as a function that
7231         handles incoming events as specified for that state.
7232         
7233         * doc/dbus-specification.xml: Update auth protocol state machine
7234         specification to match implementation.  Remove some leftover
7235         base64 examples.
7236
7237 2004-06-02  Kristian Høgsberg  <krh@redhat.com>
7238
7239         * glib/dbus-gproxy.c, glib/dbus-gmain.c, dbus/dbus-string.c,
7240         dbus/dbus-object-tree.c, dbus/dbus-message.c: add comments to
7241         quiet doxygen.
7242
7243         * Doxyfile.in: remove deprecated options.
7244
7245         * dbus/dbus-message-handler.c, dbus/dbus-message-handler.h,
7246         glib/test-thread.h, glib/test-thread-client.c,
7247         glib/test-thread-server.c, glib/test-profile.c,
7248         glib/test-dbus-glib.c: remove these unused files.
7249
7250 2004-06-01  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7251
7252         * dbus/dbus-object-tree.c
7253         (_dbus_object_tree_dispatch_and_unlock): fix dispatch for
7254         non-fallback handlers (bug #684).
7255         (_dbus_object_subtree_new): initialize invoke_as_fallback field.
7256         (find_subtree_recurse): report wether the returned subtree is an
7257         exact match or a "fallback" match higher up in the tree.
7258         (object_tree_test_iteration): update test case.
7259
7260 2004-06-01  Seth Nickell  <seth@gnome.org>
7261
7262         * python/dbus_bindings.pyx.in:
7263         * python/tests/test-client.py:
7264
7265         Round off basic type support. Add dicts (yay!), and 
7266         remaining array types.
7267
7268         Make MessageIter more general so it works for dicts too.
7269
7270         Mark all loop variables as C integers.
7271         
7272 2004-05-31  Havoc Pennington  <hp@redhat.com>
7273
7274         * glib/dbus-gidl.c (method_info_add_arg): keep args sorted with
7275         "in" before "out"
7276
7277         * glib/dbus-gobject.c (dbus_type_to_string): move to dbus-gutils.c
7278
7279         * glib/dbus-glib-tool.c (main): set up to have a --self-test
7280         option that runs the tests, and start filling in some code
7281         including for starters just dumping the interfaces to stdout
7282
7283         * glib/Makefile.am (INCLUDES): define DBUS_LOCALEDIR
7284
7285         * test/data/valid-introspection-files/lots-of-types.xml: test of
7286         an example introspection file
7287
7288         * glib/dbus-gparser.c (parser_check_doctype): doctype should be
7289         "node" (I think...)
7290
7291 2004-05-31  Seth Nickell  <seth@gnome.org>
7292
7293         * python/dbus_bindings.pyx.in:
7294         * python/tests/test-client.py:
7295
7296         Test Suite: 1
7297         Python Bindings: 0
7298
7299         Fix string array memory trashing bug... oops...
7300
7301 2004-05-30  Seth Nickell  <seth@gnome.org>
7302
7303         * python/dbus.py:
7304
7305         Add a nicer-but-less-flexible alternate API for handling 
7306         calls to virtual objects in dbus.ObjectTree.
7307
7308         Screw up the argument order to the dbus.Object constructor
7309         for consistency with dbus.ObjectTree (and to make dbus_methods
7310         optional for future extension)
7311         
7312         * python/examples/Makefile.am:
7313         * python/examples/gconf-proxy-service.py:
7314         * python/examples/gconf-proxy-service2.py:
7315
7316         Alternate implementation of gconf-proxy-service using the
7317         nicer dbus.ObjectTree API.
7318         
7319         * python/examples/example-service.py:
7320         * python/tests/test-server.py
7321
7322         Reverse the argument order to deal with dbus.Object constructor
7323         changes.
7324         
7325 2004-05-30  Seth Nickell  <seth@gnome.org>
7326
7327         * python/examples/example-client.py:
7328         * python/examples/example-service.py:
7329
7330         Take it back. Lists seem to work but they're broken
7331         in the test suite. Make the base examples use
7332         lists (works fine).
7333
7334 2004-05-30  Seth Nickell  <seth@gnome.org>
7335
7336         * python/dbus_bindings.pyx.in:
7337         * python/tests/test-client.py:
7338
7339         Add some more tests and fix errors that crop up.
7340         Unfortunately, currently it seems like marshalling
7341         and unmarshalling of lists is completely broken :-(
7342
7343 2004-05-30  Seth Nickell  <seth@gnome.org>
7344
7345         * python/dbus_bindings.pyx.in:
7346
7347         Add support for ObjectPath type.
7348
7349         * python/dbus.py:
7350
7351         Refactor message handling code to a common function.
7352         
7353         * python/tests/test-client.py:
7354         * python/tests/test-server.py:
7355
7356         Add tests that check to make sure values of all types
7357         can be echoed from a service w/o mangling.
7358         
7359 2004-05-29  Seth Nickell  <seth@gnome.org>
7360
7361         * python/dbus.py:
7362
7363         Add ObjectTree class which allows implementation
7364         of trees of "virtual" objects. Basically the python
7365         wrapper for "register_fallback".
7366         
7367         * python/examples/Makefile.am
7368         * python/examples/gconf-proxy-client.py:
7369         * python/examples/gconf-proxy-service.py:
7370
7371         Implement a simple GConf proxy service that supports
7372         get/set on string and int GConf keys using the ObjectTree.
7373         
7374 2004-05-29  Seth Nickell  <seth@gnome.org>
7375
7376         * python/dbus.py:
7377         * python/examples/example-client.py:
7378         * python/examples/example-service.py:
7379         * python/examples/list-system-services.py:
7380
7381         Add SessionBus, SystemBus and ActivationBus classes
7382         so you don't need to know the special little BUS_TYPE
7383         flag.
7384         
7385 2004-05-29  Havoc Pennington  <hp@redhat.com>
7386
7387         * bus/config-parser.c (process_test_valid_subdir): temporarily
7388         stop testing config parser OOM handling, since expat has issues
7389         http://freedesktop.org/pipermail/dbus/2004-May/001153.html
7390
7391         * bus/dbus-daemon-1.1.in: change requested_reply to
7392         send_requested_reply/receive_requested_reply so we can send the
7393         replies, not just receive them.
7394
7395         * bus/config-parser.c: parse the new
7396         send_requested_reply/receive_requested_reply
7397
7398         * bus/policy.c (bus_client_policy_check_can_send): add
7399         requested_reply argument and use it
7400
7401         * bus/bus.c (bus_context_check_security_policy): pass through
7402         requested_reply status to message send check
7403
7404         * bus/system.conf.in: adapt to requested_reply change
7405         
7406 2004-05-28  Havoc Pennington  <hp@redhat.com>
7407
7408         * test/glib/test-service-glib.c (main): remove unused variable
7409
7410         * glib/dbus-gidl.c (base_info_ref): fix a silly compiler warning
7411
7412         * dbus/dbus-auth.h (enum): remove AUTHENTICATED_WITH_UNUSED_BYTES
7413         from the enum, no longer in use.
7414
7415         * dbus/dbus-sysdeps.h: include config.h so DBUS_VA_COPY actually
7416         works right.
7417
7418         * dbus/dbus-message.c: add various _dbus_return_val_if_fail for
7419         whether error_name passed in is a valid error name.
7420
7421 2004-05-28  John (J5) Palmieri  <johnp@redhat.com>
7422
7423         * dbus/dbus-message.c (dbus_message_get_args): Added support for
7424         OBJECT_PATH and OBJECT_PATH_ARRAY
7425
7426 2004-05-28  Seth Nickell  <seth@gnome.org>
7427
7428         * python/examples/Makefile.am:
7429
7430         Forget to add Makefile.am. Do not pass go.
7431
7432 2004-05-28  Michael Meeks  <michael@ximian.com>
7433
7434         * glib/dbus-gvalue.c (dbus_gvalue_marshal, dbus_gvalue_demarshal): 
7435         fix no int64 case.
7436
7437         * dbus/dbus-string.c (_dbus_string_parse_basic_type): impl.
7438
7439         * dbus/dbus-message.c (_dbus_message_iter_get_basic_type),
7440         (_dbus_message_iter_get_basic_type_array): impl.
7441         drastically simplify ~all relevant _get methods to use these.
7442         (_dbus_message_iter_append_basic_array),
7443         (dbus_message_iter_append_basic): impl
7444         drastically simplify ~all relevant _append methods to use these.
7445
7446         * dbus/dbus-message-builder.c (parse_basic_type) 
7447         (parse_basic_array, lookup_basic_type): impl.
7448         (_dbus_message_data_load): prune scads of duplicate /
7449         cut & paste coding.
7450
7451         * dbus/dbus-marshal.c (_dbus_demarshal_basic_type_array) 
7452         (_dbus_demarshal_basic_type): implement,
7453         (demarshal_and_validate_len/arg): beef up debug.
7454         (_dbus_marshal_basic_type, _dbus_marshal_basic_type_array): impl.
7455
7456 2004-05-27  Seth Nickell  <seth@gnome.org>
7457
7458         * configure.in:
7459         * python/Makefile.am:
7460
7461         Include the example python apps in the tarball.
7462         
7463         * python/examples/list-system-services.py
7464
7465         Add a python new example that fetches the list of services
7466         from the system bus.
7467         
7468 2004-05-27  Seth Nickell  <seth@gnome.org>
7469
7470         * python/dbus.py:
7471         * python/dbus_bindings.pyx.in:
7472
7473         Fix failure to notify that a signal was not handled,
7474         resulted in hung functions.
7475         
7476 2004-05-25  Colin Walters  <walters@redhat.com>
7477
7478         * tools/dbus-monitor.c (main): Monitor all types of messages.
7479
7480 2004-05-23  Owen Fraser-Green  <owen@discobabe.net>
7481
7482         * mono/Handler.cs, mono/Service.cs: Added UnregisterObject method
7483         which unregisters the object path and disposes the handler.
7484
7485 2004-05-23  Kristian Høgsberg  <krh@redhat.com>
7486  
7487         Patch from Timo Teräs <ext-timo.teras@nokia.com> (#614):
7488          
7489         * dbus/dbus-message.c (dbus_message_iter_get_args_valist): Swap
7490         operands to && so we call dbus_message_iter_next () for the last
7491         argument also.
7492
7493 2004-05-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7494
7495         * dbus/dbus-object-tree.c
7496         (_dbus_object_tree_list_registered_unlock, lookup_subtree): return
7497         children even if the requested path isn't registered.
7498         (object_tree_test_iteration): test object_tree_list_registered.
7499
7500         * configure.in: undefine HAVE_ABSTRACT_SOCKETS instead of defining
7501         it to 0.
7502         
7503 2004-05-20  Kristian Høgsberg  <krh@redhat.com>
7504
7505         * doc/TODO: Remove resolved items.
7506
7507         * bus/expirelist.h (struct BusExpireList): remove unused n_items
7508         field.
7509         
7510         * bus/connection.c (bus_connections_expect_reply): Enforce the
7511         per-connection limit on pending replies.
7512         
7513         Patch from Jon Trowbridge <trow@ximian.com>:
7514  
7515         * bus/main.c (setup_reload_pipe): Added.  Creates a pipe and sets
7516         up a watch that triggers a config reload when one end of the pipe
7517         becomes readable.
7518         (signal_handler): Instead of doing the config reload in our SIGHUP
7519         handler, just write to the reload pipe and let the associated
7520         watch handle the reload when control returns to the main loop.
7521  
7522         * bus/driver.c (bus_driver_handle_reload_config): Added.
7523         Implements a ReloadConfig method for requesting a configuration
7524         file reload via the bus driver.
7525  
7526 2004-05-19  Owen Fraser-Green  <owen@discobabe.net>
7527
7528         * HACKING: Updated release instructions concerning the wiki page.
7529
7530 2004-05-18  Kristian Høgsberg  <krh@redhat.com>
7531
7532         * dbus/dbus-auth.c (client_try_next_mechanism): Remove logic to
7533         filter against auth->allowed_mechs; we only add allowed mechs in
7534         record_mechanisms().
7535  
7536         * dbus/dbus-auth-script.c (_dbus_auth_script_run): Add an
7537         ALLOWED_MECHS to auth-script format so we can set the list of
7538         allowed mechanisms.
7539  
7540         * data/auth/client-out-of-mechanisms.auth-script: New test to
7541         check client disconnects when it is out of mechanisms to try.
7542  
7543         * dbus/dbus-auth.c (process_command): Remove check for lines
7544         longer that 1 MB; we only buffer up maximum 16 kB.
7545  
7546         * dbus/dbus-transport.c, dbus/dbus-transport-unix.c,
7547         dbus/dbus-auth-script.c, dbus/dbus-auth.c, dbus/dbus-auth.h:
7548         Remove auth state AUTHENTICATED_WITH_UNUSED_BYTES, instead always
7549         assume there might be unused bytes.
7550  
7551         * dbus/dbus-auth.c (_dbus_auth_do_work): Remove check for
7552         client-out-of-mechs, it is handled in process_reject(). Move check
7553         for max failures to send_rejected(), as it's a server-only thing.
7554
7555         * dbus/dbus-auth.c: Factor out protocol reply code into functions
7556         send_auth(), send_data(), send_rejected(), send_error(),
7557         send_ok(), send_begin() and send_cancel().
7558
7559 2004-05-17  Kristian Høgsberg  <krh@redhat.com>
7560
7561         Remove base64 encoding, replace with hex encoding. Original patch
7562         from trow@ximian.com, added error handling.
7563
7564         * dbus/dbus-string.c (_dbus_string_base64_encode)
7565         (_dbus_string_base64_decode): Remove.
7566         (_dbus_string_hex_decode): Add end_return argument so we can
7567         distinguish between OOM and invalid hex encoding.
7568         (_dbus_string_test): Remove base64 tests and add test case for
7569         invalid hex.
7570
7571         * dbus/dbus-keyring.c, dbus/dbus-auth-script.c, dbus/dbus-auth.c:
7572         Replace base64 with hex.
7573
7574         * test/data/auth/invalid-hex-encoding.auth-script: New test case
7575         for invalid hex encoded data in auth protocol.
7576
7577 2004-05-17  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7578
7579         * dbus/dbus-connection.c (check_for_reply_unlocked): plug a memory
7580         leak.
7581
7582 2004-05-15  Owen Fraser-Green  <owen@discobabe.net>
7583
7584         * mono/dbus-sharp.dll.config.in: Added for GAC
7585         * mono/dbus-sharp.snk: Added for GAC
7586         * mono/Assembly.cs.in: Added for GAC
7587         * mono/Makefile.am: Changes for GAC installation        
7588         * configure.in: Added refs for dbus-sharp.dll.config.in and
7589         Assembly.cs.in. More fixes for mono testing
7590         * mono/example/Makefile.am: Changed var to CSC
7591         * Makefile.am: Changed flag name to DBUS_USE_CSC
7592
7593 2004-05-15  Owen Fraser-Green  <owen@discobabe.net>
7594
7595         * mono/Makefile.am: Added SUBDIRS for docs. Changed SUBDIRS order
7596         * mono/doc/*: Added documentation framework
7597         * configure.in: Added monodoc check
7598         * README: Added description of mono configure flags
7599
7600 2004-05-11  John (J5) Palmieri  <johnp@redhat.com>:
7601
7602         * doc/dbus-specification.xml: Added a "Required" column to the 
7603         header fields table and changed the "zero or more" verbage in
7604         the above paragraph to read "The header must contain the required 
7605         named header fields and zero or more of the optional named header 
7606         fields".
7607         * test/data/invalid-messages/*.message: Added the required PATH 
7608         named header field to the tests so that they don't fail on 
7609         'Missing path field'
7610
7611 2004-05-07  John (J5) Palmieri  <johnp@redhat.com>
7612
7613         * python/dbus-bindings.pyx.in: Stopped the bindings from trashing
7614         the stack by implicitly defining variable and parameter types and
7615         removing the hack of defining C pointers as python objects and later
7616         casting them.
7617
7618 2004-05-02  Owen Fraser-Green  <owen@discobabe.net>
7619
7620         * mono/Makefile.am: Removed test-dbus-sharp.exe from all target
7621
7622 2004-05-01  Owen Fraser-Green  <owen@discobabe.net>
7623
7624         * mono/DBusType/Dict.cs: Handle empty dicts
7625         * mono/DBusType/Array.cs: Handle empty arrays
7626         * mono/Arguments.cs: Handle empty arguments
7627
7628 2004-04-30  Owen Fraser-Green  <owen@discobabe.net>
7629
7630         * dbus-sharp.pc.in: Modified to include include Libs and Requires
7631         field
7632
7633 2004-04-25  Kristian Høgsberg  <krh@redhat.com>
7634
7635         * test/data/valid-messages/standard-*.message: Update message
7636         test scripts to new header field names.
7637
7638 2004-04-22  John (J5) Palmieri  <johnp@redhat.com>
7639
7640         * test/break-loader.c (randomly_do_n_things): tracked down buffer
7641         overflow to times_we_did_each_thing array which would chop off the
7642         first character of the failure_dir string. Increased the size of
7643         the array to 7 to reflect the number of random mutation functions
7644         we have.
7645
7646 2004-04-21  Kristian Høgsberg  <krh@redhat.com>
7647
7648         * dbus/dbus-server-unix.c (unix_finalize): Don't unref
7649         unix_server->watch here, it is unreffed in disconnect.
7650         (_dbus_server_new_for_tcp_socket): convert NULL host to
7651         "localhost" here so we don't append NULL to address.
7652         
7653         * dbus/dbus-server.c (_dbus_server_test): Add test case for
7654         various addresses, including tcp with no explicit host.
7655
7656 2004-04-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7657
7658         * dbus/dbus-message.c (decode_header_data, decode_string_field):
7659         fix incorrect setting of .name_offset in the HeaderField (it was
7660         off by two bytes, positioned right after the name and typecode)
7661
7662         * bus/bus.c (bus_context_new, bus_context_unref): test before
7663         calling dbus_server_free_data_slot and _dbus_user_database_unref
7664         in case of an error.
7665
7666         * tools/Makefile.am: add $(DBUS_GLIB_TOOL_LIBS), xml libs needed
7667         by libdbus-gtool.
7668
7669 2004-04-19  Kristian Høgsberg  <krh@redhat.com>
7670
7671         * dbus/dbus-transport-unix.c (unix_do_iteration): Rewrite to use
7672         _dbus_poll() instead of select().
7673
7674 2004-04-15  Jon Trowbridge  <trow@ximian.com>
7675
7676         * bus/main.c (signal_handler): Reload the configuration files
7677         on SIGHUP.
7678         (main): Set up our SIGHUP handler.
7679
7680         * bus/bus.c (struct BusContext): Store the config file, user and
7681         fork flag in the BusContext.
7682         (process_config_first_time_only): Added.  Contains the code
7683         (previously in bus_context_new) for setting up the BusContext from
7684         the BusConfigParser that should only be run the first time the
7685         config files are read.
7686         (process_config_every_time): Added.  Contains the code (previously
7687         in bus_context_new) for setting up the BusContext from the
7688         BusConfigParser that should be run every time the config files are
7689         read.
7690         (load_config): Added.  Builds a BusConfigParser from the config
7691         files and passes the resulting structure off to
7692         process_config_first_time_only (assuming this is the first time)
7693         and process_config_every_time.
7694         (bus_context_new): All of the config-related code has been moved
7695         to process_config_first_time_only and process_config_every_time.
7696         Now this function just does the non-config-related initializations
7697         and calls load_config.
7698         (bus_context_reload_config): Added.
7699
7700 2004-04-15  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7701
7702         * bus/driver.c (bus_driver_handle_get_service_owner):
7703         implement a GetServiceOwner method.
7704         * doc/dbus-specification.xml: document it.
7705         * dbus/dbus-errors.h: add a 'ServiceHasNoOwner' error.
7706         
7707         * glib/dbus-gproxy.c (dbus_gproxy_new_for_service_owner):
7708         implement, using the bus GetServiceOwner method.
7709
7710         * test/glib/test-dbus-glib.c:
7711         use dbus_gproxy_new_for_service_owner so that we can receive the
7712         signal. 
7713
7714 2004-04-15  John (J5) Palmieri  <johnp@redhat.com>
7715
7716         * dbus/dbus-internals.c, dbus/dbus-message-builder.c,
7717         dbus/dbus-message.c, dbus/dbus-protocol.h
7718         (DBUS_HEADER_FIELD_SERVICE): renamed DBUS_HEADER_FIELD_DESTINATION
7719
7720         * dbus/dbus-internals.c, dbus/dbus-message-builder.c,
7721         dbus/dbus-message.c, dbus/dbus-protocol.h
7722         (DBUS_HEADER_FIELD_SENDER_SERVICE): renamed DBUS_HEADER_FIELD_SENDER
7723
7724         * dbus/dbus-internals.c (_dbus_header_field_to_string):
7725         DBUS_HEADER_FIELD_DESTINATION resolves to "destination"
7726         DBUS_HEADER_FIELD_SENDER resolves to "sender"
7727
7728         * doc/dbus-specification.xml (Header Fields Table):
7729         s/SERVICE/DESTINATION
7730         s/SENDER_SERVICE/SENDER
7731
7732
7733 2004-04-14  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7734
7735         * test/glib/test-dbus-glib.c (timed_exit): fail the test after
7736         a few seconds.
7737
7738 2004-04-13  Michael Meeks  <michael@ximian.com>
7739
7740         * glib/dbus-gobject.c (handle_introspect): split out
7741         (introspect_properties): this.
7742         (handle_introspect): implement this.
7743
7744         * test/glib/Makefile.am: use the absolute path so the bus
7745         daemon's chdir ("/") doesn't kill us dead.
7746
7747         * configure.in: subst ABSOLUTE_TOP_BUILDDIR
7748
7749 2004-04-12  Jon Trowbridge  <trow@ximian.com>
7750
7751         * bus/config-parser.c (struct BusConfigParser): Added
7752         included_files field.
7753         (seen_include): Added.  Checks whether or not a file has already
7754         been included by any parent BusConfigParser.
7755         (bus_config_parser_new): Copy the parent's included_files.
7756         (include_file): Track which files have been included, and fail on
7757         circular inclusions.
7758         (process_test_valid_subdir): Changed printf to report if we are
7759         testing valid or invalid conf files.
7760         (all_are_equiv): Changed printf to be a bit clearer about
7761         what we are actually doing.
7762         (bus_config_parser_test): Test invalid configuration files.
7763
7764 2004-04-09  Jon Trowbridge  <trow@ximian.com>
7765
7766         * bus/config-parser.c (bus_config_parser_new): Added a 'parent'
7767         argument.  If non-null, the newly-constructed BusConfigParser will
7768         be initialized with the parent's BusLimits instead of the default
7769         values.
7770         (include_file): When including a config file, pass in
7771         the current parser as the parent and then copy the BusLimits
7772         from the included BusConfigParser pack to the current parser.
7773         (process_test_valid_subdir): Renamed from process_test_subdir.
7774         (process_test_equiv_subdir): Added.  Walks through a directory,
7775         descending into each subdirectory and loading the config files
7776         it finds there.  If any subdirectory contains two config files
7777         that don't produce identical BusConfigParser structs, fail.
7778         For now, the BusConfigParser's BusPolicies are not compared.
7779         (bus_config_parser_test): Call both process_test_valid_subdir and
7780         process_test_equiv_subdir.
7781
7782         * bus/config-loader-libxml.c (bus_config_load): Take a parent
7783         argument and pass it along to the call to bus_config_parser_new.
7784         Also made a few small changes to allow this code to compile.
7785
7786         * bus/config-loader-expat.c (bus_config_load): Take a parent
7787         argument and pass it along to the call to bus_config_parser_new.
7788
7789         * bus/bus.c (bus_context_new): Load the config file
7790         with a NULL parent argument.
7791
7792 2004-03-29  Michael Meeks  <michael@ximian.com>
7793
7794         * glib/dbus-gobject.c (introspect_properties): split
7795         out, fix mangled 'while' flow control.
7796         (introspect_signals): implement.
7797         (handle_introspect): update.
7798
7799 2004-03-29  Michael Meeks  <michael@ximian.com>
7800
7801         * glib/dbus-gobject.c (set_object_property): split out / 
7802         re-work, use the property type, and not the message type(!)
7803         (get_object_property): ditto.
7804
7805         * glib/dbus-gvalue.c (dbus_gvalue_demarshal),
7806         (dbus_gvalue_marshal): make this code re-usable, needed
7807         for signals too, also on both proxy and server side.
7808         Re-write for more efficiency / readability.
7809
7810 2004-03-29  Michael Meeks  <michael@ximian.com>
7811
7812         * dbus/dbus-message.c
7813         (dbus_message_new_error_printf): impl.
7814
7815         * dbus/dbus-connection.c
7816         (dbus_connection_unregister_object_path): fix warning.
7817
7818         * configure.in: fix no-mono-installed situation.
7819
7820 2004-03-27  Havoc Pennington  <hp@redhat.com>
7821
7822         Patch from Timo Teräs:
7823         
7824         * tools/dbus-send.c (main): if --print-reply, assume type is
7825         method call; support boolean type args
7826         
7827         * dbus/dbus-connection.c (dbus_connection_send_with_reply): fix a
7828         bunch of memleak and logic bugs
7829         
7830 2004-03-23  Owen Fraser-Green  <owen@discobabe.net>
7831
7832         * mono/Arguments.cs:
7833         * mono/Introspector.cs:
7834         * mono/Handler.cs:
7835         * mono/InterfaceProxy.cs:
7836         * mono/Message.cs
7837         * mono/ProxyBuilder.cs:
7838         * mono/Service.cs:
7839         Added InterfaceProxy class to avoid building proxies for every
7840         object.
7841
7842         * dbus-message.h:
7843         * dbus-message.c (dbus_message_append_args_valist)
7844         (dbus_message_iter_get_object_path)
7845         (dbus_message_iter_get_object_path_array)
7846         (dbus_message_iter_append_object_path)
7847         (dbus_message_iter_append_object_path_array):
7848         Added object_path iter functions to handle OBJECT_PATH arguments
7849         
7850 2004-03-23  Owen Fraser-Green  <owen@discobabe.net>
7851
7852         First checkin of mono bindings.
7853         * configure.in:
7854         * Makefile.am:
7855         Build stuff for the bindings
7856         * dbus-sharp.pc.in: Added for pkgconfig
7857         
7858 2004-03-21  Havoc Pennington  <hp@redhat.com>
7859
7860         * test/test-service.c (main): remove debug spew
7861
7862 2004-03-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7863
7864         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): accept empty
7865         arrays
7866
7867         * dbus/dbus-message.h, bus/dbus-message.c (dbus_message_iter_init)
7868         (dbus_message_iter_init_array_iterator)
7869         (dbus_message_iter_init_dict_iterator): return a dbus_bool_t to
7870         indicate whether the iterator is empty
7871
7872         * dbus/dbus-pending-call.c, dbus/dbus-server.c: silence compiler
7873         warnings
7874
7875 2004-03-19  Havoc Pennington  <hp@redhat.com>
7876
7877         * NEWS: 0.21 updates
7878
7879         * configure.in: 0.21
7880
7881         * doc/Makefile.am: add all XMLTO usage to DBUS_XML_DOCS_ENABLED
7882         
7883         * python/Makefile.am: change to avoid dist of dbus_bindings.c so
7884         you don't need pyrex to make dist
7885
7886         * qt/Makefile.am (libdbus_qt_1_la_SOURCES): add integrator.h to
7887         sources; run moc
7888         
7889 2004-03-18  Richard Hult  <richard@imendio.com>
7890
7891         * dbus/dbus-message.c (dbus_message_get_auto_activation) 
7892         (dbus_message_set_auto_activation): Add doxygen docs.
7893
7894 2004-03-16  Richard Hult  <richard@imendio.com>
7895
7896         * bus/activation.c: (bus_activation_service_created),
7897         (bus_activation_send_pending_auto_activation_messages),
7898         (bus_activation_activate_service):
7899         * bus/activation.h:
7900         * bus/dispatch.c: (bus_dispatch),
7901         (check_nonexistent_service_auto_activation),
7902         (check_service_auto_activated),
7903         (check_segfault_service_auto_activation),
7904         (check_existent_service_auto_activation), (bus_dispatch_test):
7905         * bus/driver.c: (bus_driver_handle_activate_service):
7906         * bus/services.c: (bus_registry_acquire_service):
7907         * dbus/dbus-message.c: (dbus_message_set_auto_activation),
7908         (dbus_message_get_auto_activation):
7909         * dbus/dbus-message.h:
7910         * dbus/dbus-protocol.h: Implement auto-activation.
7911         
7912         * doc/dbus-specification.xml: Add auto-activation to the spec.
7913
7914 2004-03-12  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7915
7916         * dbus/dbus-marshal.c (_dbus_marshal_get_arg_end_pos):
7917         fix a bug with CUSTOM types.
7918
7919         * dbus/dbus-message.c (message_iter_test, _dbus_message_test): add
7920         a unit test for this bug (used to fail).
7921
7922 2004-03-12  Mikael Hallendal  <micke@imendio.com>
7923
7924         * bus/activation.c:
7925         (babysitter_watch_callback): notify all pending activations waiting for
7926           the same exec that the activation failed.
7927         (bus_activation_activate_service): shortcut the activation if we 
7928           already waiting for the same executable to start up.
7929
7930 2004-03-12  Mikael Hallendal  <micke@imendio.com>
7931
7932         * bus/activation.c: 
7933         - Added service file reloading. 
7934           Each service files directory is kept in an hash table in 
7935           BusActivation and each BusActivationEntry knows what .service-file it
7936           was read from. So when you try to activate a service the bus will 
7937           check if it's been updated, removed or if new .service-files has 
7938           been installed.
7939         - Test code at the bottom for the service file reloading.
7940         * bus/test-main.c: (main):
7941         * bus/test.h:
7942         - added service reloading test.
7943         * dbus/dbus-sysdeps.c: 
7944         * dbus/dbus-sysdeps.h: (_dbus_delete_directory): Added.
7945
7946 2004-03-08  Michael Meeks  <michael@ximian.com>
7947
7948         * dbus/dbus-connection.c (_dbus_connection_block_for_reply): 
7949         bail immediately if disconnected, to avoid busy loop.
7950
7951         * dbus/dbus-message.c (dbus_message_iter_get_args_valist):
7952         cleanup cut/paste/inefficiency.
7953
7954 2004-03-01  David Zeuthen  <david@fubar.dk>
7955
7956         * dbus/dbus-string.c (_dbus_string_append_printf_valist): Fix a
7957         bug where args were used twice. This bug resulted in a segfault
7958         on a Debian/PPC system when starting the messagebus daemon. Include
7959         dbus-sysdeps.h for DBUS_VA_COPY
7960
7961         * dbus/dbus-sysdeps.h: Define DBUS_VA_COPY if neccessary. From GLib
7962
7963         * configure.in: Check for va_copy; define DBUS_VA_COPY to the
7964         appropriate va_copy implementation. From GLib
7965         
7966 2004-02-24  Joe Shaw  <joe@ximian.com>
7967
7968         * bus/services.c (bus_registry_acquire_service): We need to pass
7969         in the service name to dbus_set_error() to prevent a crash.
7970
7971 2003-12-26  Anders Carlsson  <andersca@gnome.org>
7972
7973         * AUTHORS: Reveal my True identity.
7974
7975 2003-12-17  Mikael Hallendal  <micke@imendio.com>
7976
7977         * dbus/dbus-message.c: (dbus_message_append_args_valist): 
7978         - Added case for DBUS_TYPE_BYTE, patch from Johan Hedberg.
7979
7980 2003-12-13  Mikael Hallendal  <micke@imendio.com>
7981
7982         * doc/TODO: Added not about better error check of configuration files.
7983
7984 2003-12-02  Richard Hult  <richard@imendio.com>
7985
7986         * Update AFL version to 2.0 throughout the source files to reflect
7987         the update that was done a while ago.
7988
7989 2003-12-02  Richard Hult  <richard@imendio.com>
7990
7991         * dbus/dbus-message.c (dbus_message_iter_append_dict): Set
7992         wrote_dict_key to FALSE on the iter that the dict is appended to,
7993         just like when appending other types. Fixes a bug where a dict
7994         couldn't be put inside a dict.
7995         (dbus_message_iter_append_dict_key): Fix typo in warning message.
7996         (message_iter_test, _dbus_message_test): Add test case for dict
7997         inside dict.
7998
7999 2003-12-01  David Zeuthen  <david@fubar.dk>
8000
8001         * python/dbus.py: Add the actual message when calling the reciever
8002         of a signal such that parameters can be inspected. Add the method
8003         remove_signal_receiver
8004         
8005 2003-11-26  Mikael Hallendal  <micke@imendio.com>
8006
8007         * bus/*.[ch]:
8008         * dbus/*.[ch]:
8009         * glib/*.[ch]: Made ref functions return the pointer
8010
8011 2003-11-25  Zack Rusin  <zack@kde.org>
8012
8013         * qt/integrator.h, qt/integrator.cpp: Adding handling of DBusServer,
8014
8015         * qt/server.h, qt/server.cpp, qt/Makefile.am: Adding DBusServer 
8016         wrappers,
8017
8018         * qt/connection.h, qt/connection.cpp: Adjusting to changes in 
8019         the Integrator and to better fit with the server,
8020
8021 2003-11-24  Zack Rusin  <zack@kde.org>
8022
8023         * qt/connection.h, qt/connection.cpp: removing initDbus method since
8024         the integrator handles it now
8025
8026         * qt/integrator.h, qt/integrator.cpp: reworking handling of timeouts,
8027         since QTimer wasn't really meant to be used the way DBusTimeout is
8028
8029 2003-11-24  Zack Rusin  <zack@kde.org>
8030
8031         * qt/integrator.h, qt/integrator.cpp, Makefile.am: Adding 
8032         Integrator class which integrates D-BUS with the Qt event loop,
8033
8034         * qt/connection.h, qt/connection.cpp: Move all the code which
8035         was dealing with D-BUS integration to the Integrator class,
8036         and start using Integrator,
8037
8038 2003-11-23  Zack Rusin  <zack@kde.org>
8039
8040         * qt/connection.h, qt/connection.cpp: Adding the DBusConnection 
8041         wrapper
8042
8043         * qt/message.h, qt/message.cpp: updating to the current D-BUS api,
8044         switching namespaces to DBusQt, reworking the class,
8045
8046         * Makefile.cvs: switching dependencies so that it matches KDE 
8047         schematics,
8048         
8049         * qt/Makefile.am: adding connection.{h,cpp} and message.{h,cpp} to 
8050         the library
8051
8052 2003-11-19  Havoc Pennington  <hp@redhat.com>
8053
8054         * NEWS: update
8055
8056         * configure.in: bump version to 0.20
8057
8058         * configure.in (have_qt): add yet another place to look for qt
8059         (someone hand trolltech a .pc file...)
8060
8061 2003-11-01  Havoc Pennington  <hp@redhat.com>
8062
8063         * doc/dbus-specification.xml: add state machine docs on the auth
8064         protocol; just a first draft, I'm sure it's wrong.      
8065
8066 2003-10-28  David Zeuthen  <david@fubar.dk>
8067
8068         * python/dbus_bindings.pyx.in: add get_dict to handle dictionaries
8069         return types. Fixup TYPE_* to reflect changes in dbus/dbus-protocol.h
8070         
8071 2003-10-28  Havoc Pennington  <hp@redhat.com>
8072
8073         * dbus/dbus-message.c (get_next_field): delete unused function
8074
8075 2003-10-28  Havoc Pennington  <hp@redhat.com>
8076
8077         * bus/expirelist.c (do_expiration_with_current_time): detect
8078         failure of the expire_func due to OOM
8079
8080         * bus/connection.c (bus_pending_reply_expired): return FALSE on OOM
8081
8082         * bus/dispatch.c (check_send_exit_to_service): fix to handle the
8083         NoReply error that's now created by the bus when the service exits
8084
8085 2003-10-28  Havoc Pennington  <hp@redhat.com>
8086
8087         * dbus/dbus-message.c (_dbus_message_test): enable and fix the
8088         tests for set_path, set_interface, set_member, etc.
8089
8090         * dbus/dbus-string.c (_dbus_string_insert_bytes): allow 0 bytes
8091
8092         * dbus/dbus-message.c (set_string_field): always just delete and
8093         re-append the field; accept NULL for deletion
8094         (re_align_fields_recurse): reimplement
8095         
8096 2003-10-26  Havoc Pennington  <hp@redhat.com>
8097
8098         * dbus/dbus-connection.c: fix docs to properly describe the
8099         disconnected message
8100         (_dbus_connection_notify_disconnected): remove this function; 
8101         we can't synchronously add the disconnected message, we have to 
8102         do it after we've queued any remaining real messages
8103         (_dbus_connection_get_dispatch_status_unlocked): queue the
8104         disconnect message only if the transport has finished queueing all
8105         its real messages and is disconnected.
8106         (dbus_connection_disconnect): update the dispatch status here
8107
8108 2003-10-22  Havoc Pennington  <hp@redhat.com>
8109
8110         * bus/bus.c (bus_context_check_security_policy): fix up assertion
8111
8112         * bus/connection.c (bus_transaction_send_from_driver): set the
8113         destination to the connection's base service
8114
8115 2003-10-20  Havoc Pennington  <hp@redhat.com>
8116
8117         hmm, make check is currently not passing.
8118         
8119         * doc/dbus-specification.xml: add requirement that custom type
8120         names follow the same rules as interface names.
8121
8122         * dbus/dbus-protocol.h: change some of the byte codes, to avoid
8123         duplication and allow 'c' to be 'custom'; dict is now 'm' for
8124         'map'
8125
8126         * doc/dbus-specification.xml: update type codes to match
8127         dbus-protocol.h, using the ASCII byte values. Rename type NAMED to
8128         CUSTOM. Add type OBJECT_PATH to the spec.
8129
8130 2003-10-17  Havoc Pennington  <hp@redhat.com>
8131
8132         * bus/driver.c (create_unique_client_name): use "." as separator
8133         in base service names instead of '-'
8134
8135         * dbus/dbus-string.c (_dbus_string_get_byte): allow getting nul
8136         byte at the end of the string
8137
8138         * dbus/dbus-internals.h (_DBUS_LIKELY, _DBUS_UNLIKELY): add
8139         optimization macros since string validation seems to be a slow
8140         point.
8141         
8142         * doc/dbus-specification.xml: restrict valid
8143         service/interface/member/error names. Add test suite code for the
8144         name validation.
8145
8146         * dbus/dbus-string.c: limit service/interface/member/error names 
8147         to [0-9][A-Z][a-z]_
8148
8149         * dbus/dbus-connection.c (dbus_connection_dispatch): add missing
8150         format arg to verbose spew
8151
8152         * glib/dbus-gproxy.c (dbus_gproxy_call_no_reply): if not out of
8153         memory, return instead of g_error
8154
8155         * test/test-service.c (path_message_func): support emitting a
8156         signal on request
8157
8158         * dbus/dbus-bus.c (init_connections_unlocked): only fill in
8159         activation bus type if DBUS_BUS_ACTIVATION was set; default to
8160         assuming the activation bus was the session bus so that services
8161         started manually will still register.
8162         (init_connections_unlocked): fix so that in OOM situation we get
8163         the same semantics when retrying the function
8164         
8165         * test/test-service.c (main): change to use path registration, to
8166         test those codepaths; register with DBUS_BUS_ACTIVATION rather
8167         than DBUS_BUS_SESSION
8168
8169 2003-10-16  Havoc Pennington  <hp@redhat.com>
8170
8171         * glib/dbus-gtest-main.c: bracket with #ifdef DBUS_BUILD_TESTS
8172
8173         * Makefile.am (GCOV_DIRS): remove "test", we don't care about test
8174         coverage of the tests
8175         (coverage-report.txt): don't move the .da and .bbg files around
8176
8177 2003-10-16  Havoc Pennington  <hp@redhat.com>
8178
8179         * bus/bus.c (struct BusContext): remove struct field I didn't mean
8180         to put there
8181
8182 2003-10-16  Havoc Pennington  <hp@redhat.com>
8183
8184         * bus/connection.c (bus_pending_reply_expired): either cancel or
8185         execute, not both
8186         (bus_connections_check_reply): use unlink, not remove_link, as we
8187         don't want to free the link; fixes double free mess
8188
8189         * dbus/dbus-pending-call.c (dbus_pending_call_block): fix in case
8190         where no reply was received
8191
8192         * dbus/dbus-connection.c (_dbus_pending_call_complete_and_unlock):
8193         fix a refcount leak
8194
8195         * bus/signals.c (match_rule_matches): add special cases for the
8196         bus driver, so you can match on sender/destination for it.
8197
8198         * dbus/dbus-sysdeps.c (_dbus_abort): print backtrace if
8199         DBUS_PRINT_BACKTRACE is set
8200
8201         * dbus/dbus-internals.c: add pid to assertion failure messages
8202
8203         * dbus/dbus-connection.c: add message type code to the debug spew
8204
8205         * glib/dbus-gproxy.c (gproxy_get_match_rule): match rules want
8206         sender=foo not service=foo
8207
8208         * dbus/dbus-bus.c (dbus_bus_get): if the activation bus is the
8209         session bus but DBUS_SESSION_BUS_ADDRESS isn't set, use 
8210         DBUS_ACTIVATION_ADDRESS instead
8211
8212         * bus/activation.c: set DBUS_SESSION_BUS_ADDRESS,
8213         DBUS_SYSTEM_BUS_ADDRESS if appropriate
8214
8215         * bus/bus.c (bus_context_new): handle OOM copying bus type into
8216         context struct
8217
8218         * dbus/dbus-message.c (dbus_message_iter_get_object_path): new function
8219         (dbus_message_iter_get_object_path_array): new function (half
8220         finished, disabled for the moment)
8221         
8222         * glib/dbus-gproxy.c (dbus_gproxy_end_call): properly handle
8223         DBUS_MESSAGE_TYPE_ERROR
8224
8225         * tools/dbus-launch.c (babysit): support DBUS_DEBUG_OUTPUT to
8226         avoid redirecting stderr to /dev/null
8227         (babysit): close stdin if not doing the "exit_with_session" thing
8228
8229         * dbus/dbus-sysdeps.c (_dbus_become_daemon): delete some leftover
8230         debug code; change DBUS_DEBUG_OUTPUT to only enable stderr, not
8231         stdout/stdin, so things don't get confused
8232         
8233         * bus/system.conf.in: fix to allow replies, I modified .conf
8234         instead of .conf.in again.
8235
8236 2003-10-14  David Zeuthen  <david@fubar.dk>
8237
8238         * python/dbus_bindings.pyx.in (MessageIter.get): fixed typo in
8239         argtype to arg_type when raising unknown arg type exception.
8240         Changed type list to reflect the changes in dbus-protocol.h so 
8241         the bindings actually work.
8242
8243 2003-10-14  Havoc Pennington  <hp@redhat.com>
8244
8245         * test/decode-gcov.c: support gcc 3.3 also, though gcc 3.3 seems
8246         to have a bug keeping it from outputting the .da files sometimes
8247         (string_get_string): don't append garbage nul bytes to the string.
8248
8249 2003-10-15  Seth Nickell  <seth@gnome.org>
8250
8251         * python/Makefile.am:
8252
8253         Include dbus_h_wrapper.h in the dist tarball.
8254
8255 2003-10-14  Havoc Pennington  <hp@redhat.com>
8256
8257         * bus/bus.c (bus_context_check_security_policy): revamp this to
8258         work more sanely with new policy-based requested reply setup
8259
8260         * bus/connection.c (bus_transaction_send_from_driver): set bus
8261         driver messages as no reply
8262
8263         * bus/policy.c (bus_client_policy_check_can_receive): handle a
8264         requested_reply attribute on allow/deny rules
8265
8266         * bus/system.conf: add <allow requested_reply="true"/>
8267
8268         * bus/driver.c (bus_driver_handle_message): fix check for replies
8269         sent to the bus driver, which was backward. How did this ever work
8270         at all though? I think I'm missing something.
8271
8272         * dbus/dbus-message.c (decode_header_data): require error and
8273         method return messages to have a reply serial field to be valid
8274         (_dbus_message_loader_queue_messages): break up this function;
8275         validate that reply serial and plain serial are nonzero; 
8276         clean up the OOM/error handling.
8277         (get_uint_field): don't return -1 from this
8278         (dbus_message_create_header): fix signed/unsigned bug
8279
8280         * bus/connection.c (bus_connections_expect_reply): save serial of
8281         the incoming message, not reply serial
8282
8283 2003-10-14  Havoc Pennington  <hp@redhat.com>
8284
8285         * bus/connection.c: implement pending reply tracking using
8286         BusExpireList
8287
8288         * bus/bus.c (bus_context_check_security_policy): verify that a
8289         reply is pending in order to allow a reply to be sent. Deny 
8290         messages of unknown type.
8291
8292         * bus/dbus-daemon-1.1.in: update to mention new resource limits
8293
8294         * bus/bus.c (bus_context_get_max_replies_per_connection): new
8295         (bus_context_get_reply_timeout): new
8296
8297 2003-10-13  Seth Nickell  <seth@gnome.org>
8298
8299         * python/Makefile.am:
8300
8301         Pass "make distcheck": remove a couple files from DIST_FILES
8302         that weren't included in the final version.
8303
8304 2003-10-12  Havoc Pennington  <hp@pobox.com>
8305
8306         Added test code that 1) starts an actual bus daemon and 2) uses
8307         DBusGProxy; fixed bugs that were revealed by the test. Lots 
8308         more testing possible, but this is the basic framework.
8309         
8310         * glib/dbus-gproxy.c (dbus_gproxy_manager_unregister): remove
8311         empty proxy lists from the proxy list hash
8312
8313         * dbus/dbus-message.c (dbus_message_iter_get_args_valist): add a
8314         couple of return_if_fail checks
8315
8316         * dbus/dbus-pending-call.c (_dbus_pending_call_new): use dbus_new0
8317         to allocate, so everything is cleared to NULL as it should be.
8318
8319         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): pass
8320         source as data to dbus_connection_set_timeout_functions() as the 
8321         timeout functions expected
8322
8323         * test/glib/run-test.sh: add a little script to start up a message
8324         bus and run tests using it
8325
8326         * tools/dbus-launch.1: updates
8327
8328         * tools/dbus-launch.c (main): add --config-file option
8329
8330         * tools/dbus-launch.c (main): remove confusing else if (runprog)
8331         that could never be reached.
8332
8333         * dbus/dbus-message.c (dbus_message_new_method_return) 
8334         (dbus_message_new_error, dbus_message_new_signal): set the
8335         no-reply-expected flag on all these. Redundant, but may
8336         as well be consistent.
8337
8338 2003-10-11  Havoc Pennington  <hp@pobox.com>
8339
8340         * test/decode-gcov.c (function_solve_graph): make broken block
8341         graph a nonfatal error since it seems to be broken. Need to debug
8342         this.
8343
8344         * dbus/dbus-marshal.c (_dbus_type_is_valid): new function since we
8345         can't just check type > INVALID < LAST anymore
8346
8347         * dbus/dbus-message.c (dbus_message_get_signature): new function
8348         (dbus_message_has_signature): new function
8349         (struct DBusMessage): add signature field (right now it isn't sent
8350         over the wire, just generated on the fly)
8351         (dbus_message_copy): copy the signature, and init strings to
8352         proper length to avoid some reallocs
8353         (dbus_message_iter_init_array_iterator): return void, since it
8354         can't fail
8355         (dbus_message_iter_init_dict_iterator): return void since it can't fail
8356         (_dbus_message_loader_queue_messages): add silly temporary hack to
8357         fill in message->signature on load
8358
8359         * dbus/dbus-protocol.h: change DBUS_TYPE_* values to be ASCII
8360         characters, so they are relatively human-readable.
8361
8362 2003-10-11  Havoc Pennington  <hp@pobox.com>
8363
8364         * dbus/dbus-message.c (_dbus_message_test): add more test
8365         coverage, but #if 0 for now since they uncover a bug 
8366         not fixed yet; I think in re_align_field_recurse()
8367         (re_align_field_recurse): add FIXME about broken assertion
8368
8369         * dbus/dbus-sysdeps.c (_dbus_sysdeps_test): add more test coverage
8370
8371         * bus/connection.c: share a couple code bits with expirelist.c
8372
8373         * bus/expirelist.h, bus/expirelist.c: implement a generic
8374         expire-items-after-N-seconds facility, was going to share between
8375         expiring connections and replies, decided not to use for expiring
8376         connections for now.
8377
8378         * COPYING: include AFL 2.0 (still need to change all the file headers)
8379
8380 2003-10-09  Havoc Pennington  <hp@redhat.com>
8381
8382         * configure.in: define DBUS_HAVE_GCC33_GCOV if we have
8383         gcc 3.3. Not that we do anything about it yet.
8384
8385         * bus/signals.c (bus_match_rule_parse): impose max length on the
8386         match rule text
8387
8388         * dbus/dbus-protocol.h: add DBUS_MAXIMUM_MATCH_RULE_LENGTH
8389
8390 2003-10-09  Havoc Pennington  <hp@redhat.com>
8391
8392         Make matching rules theoretically work (add parser).
8393         
8394         * bus/bus.c (bus_context_check_security_policy): fix up to handle
8395         the case where destination is explicitly specified as bus driver
8396         and someone else is eavesdropping.
8397         
8398         * bus/policy.c (bus_client_policy_check_can_receive): fix up
8399         definition of eavesdropping and assertion
8400
8401         * tools/dbus-send.c (main): use dbus_message_type_from_string
8402
8403         * bus/signals.c (bus_match_rule_parse): implement
8404
8405         * dbus/dbus-message.c (dbus_message_type_from_string): new
8406
8407         * dbus/dbus-errors.h (DBUS_ERROR_MATCH_RULE_INVALID): add
8408
8409 2003-10-02  Havoc Pennington  <hp@pobox.com>
8410
8411         * glib/dbus-gproxy.c (dbus_gproxy_call_no_reply): rename from
8412         dbus_gproxy_oneway_call
8413
8414         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main) 
8415         (dbus_server_setup_with_g_main): fix to allow calling them more
8416         than once on the same args
8417         (dbus_bus_get_with_g_main): new function
8418
8419 2003-10-02  Havoc Pennington  <hp@redhat.com>
8420
8421         * doc/dbus-tutorial.xml: write some stuff
8422
8423 2003-09-29  Havoc Pennington  <hp@pobox.com>
8424
8425         * configure.in: split checks for Doxygen from XML docs, check for
8426         xmlto
8427
8428         * doc/Makefile.am: XML-ify all the docs, and add a blank
8429         dbus-tutorial.xml
8430
8431 2003-09-29  Havoc Pennington  <hp@pobox.com>
8432
8433         * Merge dbus-object-names branch. To see the entire patch 
8434         do cvs diff -r DBUS_OBJECT_NAMES_BRANCHPOINT -r dbus-object-names,
8435         it's huuuuge though.
8436         To revert, I tagged DBUS_BEFORE_OBJECT_NAMES_MERGE.
8437         
8438 2003-09-28  Havoc Pennington  <hp@pobox.com>
8439
8440         * HACKING: update to reflect new server
8441
8442 2003-09-26  Seth Nickell  <seth@gnome.org>
8443
8444         * python/dbus.py:
8445         * python/examples/example-signals.py:
8446
8447         Start implementing some notions of signals. The API
8448         is really terrible, but they sort of work (with the
8449         exception of being able to filter by service, and to
8450         transmit signals *as* a particular service). Need to
8451         figure out how to make messages come from the service
8452         we registered :-(
8453         
8454         * python/dbus_bindings.pyx.in:
8455
8456         Removed duplicate message_handler callbacks.
8457         
8458 2003-09-25  Havoc Pennington  <hp@redhat.com>
8459
8460         * bus/session.conf.in: fix my mess
8461
8462 2003-09-25  Havoc Pennington  <hp@pobox.com>
8463
8464         * bus/session.conf.in: fix security policy, reported by Seth Nickell
8465
8466 2003-09-25  Seth Nickell  <seth@gnome.org>
8467
8468         * python/examples/example-service.py:
8469
8470         Johan notices complete wrong code in example-service, but
8471         completely wrong in a way that works exactly the same (!).
8472         Johan is confused, how could this possibly work? Example
8473         code fails to serve purpose of making things clear.
8474         Seth fixes.
8475
8476 2003-09-25  Mark McLoughlin  <mark@skynet.ie>
8477
8478         * doc/dbus-specification.sgml: don't require header fields
8479         to be 4-byte aligned and specify that fields should be
8480         distinguished from padding by the fact that zero is not
8481         a valid field name.
8482         
8483         * doc/TODO: remove re-alignment item and add item to doc
8484         the OBJECT_PATH type.
8485         
8486         * dbus/dbus-message.c:
8487         (HeaderField): rename the original member to value_offset
8488         and introduce a name_offset member to keep track of where
8489         the field actually begins.
8490         (adjust_field_offsets): remove.
8491         (append_int_field), (append_uint_field),
8492         (append_string_field): don't align the start of the header
8493         field to a 4-byte boundary.
8494         (get_next_field): impl finding the next marhsalled field
8495         after a given field.
8496         (re_align_field_recurse): impl re-aligning a number of
8497         already marshalled fields.
8498         (delete_field): impl deleting a field of any type and
8499         re-aligning any following fields.
8500         (delete_int_or_uint_field), (delete_string_field): remove.
8501         (set_int_field), (set_uint_field): no need to re-check
8502         that we have the correct type for the field.
8503         (set_string_field): ditto and impl re-aligning any
8504         following fields.
8505         (decode_header_data): update to take into account that
8506         the fields aren't 4-byte aligned any more and the new
8507         way to distinguish padding from header fields. Also,
8508         don't exit when there is too much header padding.
8509         (process_test_subdir): print the directory.
8510         (_dbus_message_test): add test to make sure a following
8511         field is re-aligned correctly after field deletion.
8512         
8513         * dbus/dbus-string.[ch]:
8514         (_dbus_string_insert_bytes): rename from insert_byte and
8515         allow the insert of multiple bytes.
8516         (_dbus_string_test): test inserting multiple bytes.
8517
8518         * dbus/dbus-marshal.c: (_dbus_marshal_set_string): add
8519         warning note to docs about having to re-align any
8520         marshalled values following the string.
8521         
8522         * dbus/dbus-message-builder.c:
8523         (append_string_field), (_dbus_message_data_load):
8524         don't align the header field.
8525         
8526         * dbus/dbus-auth.c: (process_test_subdir): print the
8527         directory.
8528         
8529         * test/break-loader.c: (randomly_add_one_byte): upd. for
8530         insert_byte change.
8531         
8532         * test/data/invalid-messages/bad-header-field-alignment.message:
8533         new test case.
8534         
8535         * test/data/valid-messages/unknown-header-field.message: shove
8536         a dict in the unknown field.
8537
8538 2003-09-25  Seth Nickell  <seth@gnome.org>
8539
8540         * python/dbus.py:
8541         * python/dbus_bindings.pyx.in:
8542
8543         Handle return values.
8544         
8545         * python/examples/example-client.py:
8546         * python/examples/example-service.py:
8547
8548         Pass back return values from the service to the client.
8549         
8550 2003-09-24  Seth Nickell  <seth@gnome.org>
8551
8552         * python/dbus.py:
8553
8554         Connect Object methods (when you are sharing an object) up... pass
8555         in a list of methods to be shared. Sharing all the methods just
8556         worked out too weird. You can now create nice Services over the
8557         DBus in Python. :-)
8558         
8559         * python/dbus_bindings.pyx.in:
8560
8561         Keep references to user_data tuples passed into C functions so 
8562         Python doesn't garbage collect on us.
8563
8564         Implement MethodReturn and Error subclasses of Message for creating
8565         DBusMessage's of those types.
8566         
8567         * python/examples/example-client.py:
8568         * python/examples/example-service.py:
8569
8570         Simple example code showing both how create DBus services and objects,
8571         and how to use them.
8572
8573 2003-09-23  Havoc Pennington  <hp@pobox.com>
8574
8575         * glib/dbus-gproxy.c (dbus_gproxy_manager_filter): implement
8576
8577 2003-09-23  Havoc Pennington  <hp@redhat.com>
8578
8579         * glib/dbus-gproxy.c (dbus_gproxy_connect_signal): implement
8580         (dbus_gproxy_disconnect_signal): implement
8581         (dbus_gproxy_manager_remove_signal_match): implement
8582         (dbus_gproxy_manager_add_signal_match): implement
8583         (dbus_gproxy_oneway_call): implement
8584
8585 2003-09-23  Havoc Pennington  <hp@pobox.com>
8586
8587         * glib/dbus-gproxy.c (struct DBusGProxy): convert to a GObject
8588         subclass. This means dropping the transparent thread safety of the
8589         proxy; you now need a separate proxy per-thread, or your own
8590         locking on the proxy. Probably right anyway.
8591         (dbus_gproxy_ref, dbus_gproxy_unref): nuke, just use g_object_ref
8592
8593 2003-09-22  Havoc Pennington  <hp@redhat.com>
8594
8595         * glib/dbus-gproxy.c (dbus_gproxy_manager_get): implement
8596
8597 2003-09-21  Seth Nickell  <seth@gnome.org>
8598
8599         First checkin of the Python bindings.
8600         
8601         * python/.cvsignore:
8602         * python/Makefile.am:
8603         * python/dbus_bindings.pyx.in:
8604         * python/dbus_h_wrapper.h:
8605
8606         Pieces for Pyrex to operate on, building a dbus_bindings.so
8607         python module for low-level access to the DBus APIs.
8608         
8609         * python/dbus.py:
8610
8611         High-level Python module for accessing DBus objects.
8612
8613         * configure.in:
8614         * Makefile.am:
8615
8616         Build stuff for the python bindings.
8617
8618         * acinclude.m4:
8619
8620         Extra macro needed for finding the Python C header files.
8621
8622 2003-09-21  Havoc Pennington  <hp@pobox.com>
8623
8624         * glib/dbus-gproxy.c (dbus_gproxy_manager_new): start
8625         implementing the proxy manager, didn't get very far.
8626
8627         * dbus/dbus-bus.c (dbus_bus_add_match): new
8628         (dbus_bus_remove_match): new
8629
8630         * glib/dbus-gproxy.c (dbus_gproxy_new_for_service): add a
8631         path_name argument; adjust the other not-yet-implemented 
8632         gproxy constructors to be what I think they should be.
8633
8634 2003-09-21  Havoc Pennington  <hp@pobox.com>
8635
8636         * dbus/dbus-bus.c (dbus_bus_get): set exit_on_disconnect to TRUE
8637         by default for message bus connections.
8638
8639         * dbus/dbus-connection.c (dbus_connection_dispatch): exit if
8640         exit_on_disconnect flag is set and we process the disconnected
8641         signal.
8642         (dbus_connection_set_exit_on_disconnect): new function
8643
8644 2003-09-21  Havoc Pennington  <hp@pobox.com>
8645
8646         Get matching rules mostly working in the bus; only actually
8647         parsing the rule text remains. However, the client side of
8648         "signal connections" hasn't been started, this patch is only the
8649         bus side.
8650         
8651         * dbus/dispatch.c: fix for the matching rules changes
8652         
8653         * bus/driver.c (bus_driver_handle_remove_match)
8654         (bus_driver_handle_add_match): send an ack reply from these
8655         method calls
8656
8657         * glib/dbus-gproxy.c (dbus_gproxy_begin_call): fix order of
8658         arguments, reported by Seth Nickell
8659
8660         * bus/config-parser.c (append_rule_from_element): support
8661         eavesdrop=true|false attribute on policies so match rules 
8662         can be prevented from snooping on the system bus.
8663
8664         * bus/dbus-daemon-1.1.in: consistently use terminology "sender"
8665         and "destination" in attribute names; fix some docs bugs; 
8666         add eavesdrop=true|false attribute
8667
8668         * bus/driver.c (bus_driver_handle_add_match)
8669         (bus_driver_handle_remove_match): handle AddMatch, RemoveMatch
8670         messages
8671
8672         * dbus/dbus-protocol.h (DBUS_SERVICE_ORG_FREEDESKTOP_BROADCAST): get
8673         rid of broadcast service concept, signals are just always broadcast
8674
8675         * bus/signals.c, bus/dispatch.c, bus/connection.c, bus/bus.c:
8676         mostly implement matching rules stuff (currently only exposed as signal
8677         connections)
8678
8679 2003-09-21  Mark McLoughlin  <mark@skynet.ie>
8680
8681         * doc/dbus-specification.sgml: Change the header field name
8682         to be an enum and update the rest of the spec to reference
8683         the fields using the conventinal name.
8684
8685         * dbus/dbus-protocol.h: update to reflect the spec.
8686
8687         * doc/TODO: add item to remove the 4 byte alignment requirement.
8688         
8689         * dbus/dbus-message.c: Remove the code to generalise the
8690         header/body length and serial number header fields as named
8691         header fields so we can reference field names using the 
8692         protocol values.
8693         (append_int_field), (append_uint_field), (append_string_field):
8694         Append the field name as a byte rather than four chars.
8695         (delete_int_or_uint_field), (delete_string_field): reflect the
8696         fact that the field name and typecode now occupy 4 bytes instead
8697         of 8.
8698         (decode_string_field), (decode_header_data): update to reflect
8699         protocol changes and move the field specific encoding from
8700         decode_string_field() back into decode_header_data().
8701         
8702         * dbus/dbus-internals.[ch]: (_dbus_header_field_to_string):
8703         Add utility to aid debugging.
8704         
8705         * dbus/dbus-message-builder.c:
8706         (append_string_field), (_dbus_message_data_load): Update to
8707         reflect protocol changes; Change the FIELD_NAME directive
8708         to HEADER_FIELD and allow it to take the field's conventional
8709         name rather than the actual value.
8710         
8711         * test/data/*/*.message: Update to use HEADER_FIELD instead
8712         of FIELD_NAME; Always align the header on an 8 byte boundary
8713         *before* updating the header length.
8714
8715 2003-09-15  Havoc Pennington  <hp@pobox.com>
8716
8717         * dbus/dbus-pending-call.c: add the get/set object data
8718         boilerplate as for DBusConnection, etc. Use generic object data
8719         for the notify callback.
8720
8721         * glib/dbus-gparser.c (parse_node): parse child nodes
8722
8723         * tools/dbus-viewer.c: more hacking on the dbus-viewer
8724         
8725         * glib/dbus-gutils.c (_dbus_gutils_split_path): add a file to
8726         contain functions shared between the convenience lib and the
8727         installed lib
8728
8729         * glib/Makefile.am (libdbus_glib_1_la_LDFLAGS): add
8730         -export-symbols-regex to the GLib library
8731
8732         * dbus/dbus-object-tree.c (_dbus_object_tree_dispatch_and_unlock):
8733         fix the locking in here, and add a default handler for
8734         Introspect() that just returns sub-nodes.
8735
8736 2003-09-14  Havoc Pennington  <hp@pobox.com>
8737
8738         * glib/dbus-gthread.c (dbus_g_thread_init): rename to make g_foo
8739         rather than gfoo consistent
8740
8741         * glib/dbus-gproxy.h: delete for now, move contents to
8742         dbus-glib.h, because the include files don't work right since we
8743         aren't in the dbus/ subdir.
8744         
8745         * glib/dbus-gproxy.c (dbus_gproxy_send): finish implementing
8746         (dbus_gproxy_end_call): finish
8747         (dbus_gproxy_begin_call): finish
8748
8749         * glib/dbus-gmain.c (dbus_set_g_error): new
8750
8751         * glib/dbus-gobject.c (handle_introspect): include information
8752         about child nodes in the introspection
8753
8754         * dbus/dbus-connection.c (dbus_connection_list_registered): new
8755         function to help in implementation of introspection
8756
8757         * dbus/dbus-object-tree.c
8758         (_dbus_object_tree_list_registered_and_unlock): new function
8759
8760 2003-09-12  Havoc Pennington  <hp@pobox.com>
8761
8762         * glib/dbus-gidl.h: add common base class for all the foo_info
8763         types
8764
8765         * tools/dbus-viewer.c: add GTK-based introspection UI thingy
8766         similar to kdcop
8767
8768         * test/Makefile.am: try test srcdir -ef . in addition to test
8769         srcdir = ., one of them should work (yeah lame)
8770         
8771         * glib/Makefile.am: build the "idl" parser stuff as a convenience
8772         library
8773         
8774         * glib/dbus-gparser.h: make description_load routines return
8775         NodeInfo* not Parser*
8776
8777         * Makefile.am (SUBDIRS): build test dir after all library dirs
8778
8779         * configure.in: add GTK+ detection
8780
8781 2003-09-07  Havoc Pennington  <hp@pobox.com>
8782
8783         * Make Doxygen contented.
8784
8785 2003-09-07  Havoc Pennington  <hp@pobox.com>
8786
8787         * doc/dbus-specification.sgml: more updates
8788
8789 2003-09-06  Havoc Pennington  <hp@pobox.com>
8790
8791         * doc/dbus-specification.sgml: partial updates
8792
8793         * bus/dbus-daemon-1.1.in: fix the config file docs for the
8794         zillionth time; hopefully I edited the right file this time.
8795
8796         * bus/config-parser.c (append_rule_from_element): support
8797         send_type, send_path, receive_type, receive_path
8798
8799         * bus/policy.c: add message type and path to the list of things
8800         that can be "firewalled"
8801
8802 2003-09-06  Havoc Pennington  <hp@pobox.com>
8803
8804         * dbus/dbus-connection.c (dbus_connection_register_fallback): add this
8805         (dbus_connection_register_object_path): make this not handle
8806         messages to paths below the given path
8807
8808 2003-09-03  Havoc Pennington  <hp@pobox.com>
8809
8810         * test/glib/Makefile.am: add this with random glib-linked test
8811         programs
8812
8813         * glib/Makefile.am: remove the random test programs from here,
8814         leave only the unit tests
8815
8816         * glib/dbus-gobject.c (_dbus_gobject_test): add test for 
8817         uscore/javacaps conversion, and fix     
8818         (get_object_property, set_object_property): change to .NET
8819         convention for mapping props to methods, set_FooBar/get_FooBar, 
8820         since one language has such a convention we may as well copy it. 
8821         Plus real methods in either getFooBar or get_foo_bar style won't 
8822         collide with this convention.
8823
8824 2003-09-01  Havoc Pennington  <hp@pobox.com>
8825
8826         * glib/dbus-gparser.c: implement
8827
8828         * glib/dbus-gobject.c: start implementing skeletons support
8829
8830         * configure.in: when disabling checks/assert, also define
8831         G_DISABLE_ASSERT and G_DISABLE_CHECKS
8832
8833 2003-09-01  Havoc Pennington  <hp@pobox.com>
8834
8835         * glib/Makefile.am: rearrange a bunch of files and get "make
8836         check" framework set up
8837
8838 2003-08-31  Havoc Pennington  <hp@pobox.com>
8839
8840         * fix build with --disable-tests
8841
8842 2003-08-30  Havoc Pennington  <hp@pobox.com>
8843
8844         * dbus/dbus-connection.c: purge DBusMessageHandler
8845
8846         * dbus/dbus-message-handler.c: remove DBusMessageHandler, just 
8847         use callbacks everywhere
8848
8849 2003-08-30  Havoc Pennington  <hp@pobox.com>
8850
8851         * test/data/valid-config-files/system.d/test.conf: change to 
8852         root for the user so warnings don't get printed
8853
8854         * dbus/dbus-message.c: add dbus_message_get_path,
8855         dbus_message_set_path
8856         
8857         * dbus/dbus-object-tree.c (do_test_dispatch): add test of
8858         dispatching to a path
8859
8860         * dbus/dbus-string.c (_dbus_string_validate_path): add
8861
8862         * dbus/dbus-marshal.c (_dbus_demarshal_object_path): implement
8863         (_dbus_marshal_object_path): implement
8864
8865         * dbus/dbus-protocol.h (DBUS_HEADER_FIELD_PATH): new header field 
8866         to contain the path to the target object
8867         (DBUS_HEADER_FIELD_SENDER_SERVICE): rename
8868         DBUS_HEADER_FIELD_SENDER to explicitly say it's the sender service
8869
8870 2003-08-30  Havoc Pennington  <hp@pobox.com>
8871
8872         * dbus/dbus-object-tree.c: write tests and fix the discovered bugs
8873
8874 2003-08-29  Havoc Pennington  <hp@pobox.com>
8875
8876         * dbus/dbus-object-tree.c: modify to allow overlapping paths to be
8877         registered
8878         (struct DBusObjectSubtree): shrink this
8879         a lot, since we may have a lot of them
8880         (_dbus_object_tree_free_all_unlocked): implement
8881         (_dbus_object_tree_dispatch_and_unlock): implement
8882
8883 2003-08-29  Havoc Pennington  <hp@pobox.com>
8884
8885         * dbus/dbus-internals.h: fix _DBUS_N_GLOBAL_LOCKS
8886
8887 2003-08-28  Havoc Pennington  <hp@pobox.com>
8888
8889         purge DBusObjectID
8890         
8891         * dbus/dbus-connection.c: port to no ObjectID, create a
8892         DBusObjectTree, rename ObjectTree to ObjectPath in public API
8893
8894         * dbus/dbus-connection.h (struct DBusObjectTreeVTable): delete 
8895         everything except UnregisterFunction and MessageFunction
8896         
8897         * dbus/dbus-marshal.c: port away from DBusObjectID, 
8898         add DBUS_TYPE_OBJECT_PATH
8899         
8900         * dbus/dbus-object-registry.[hc], dbus/dbus-object.[hc], 
8901         dbus/dbus-objectid.[hc]: remove these, we are moving to 
8902         path-based object IDs
8903
8904 2003-08-25  Havoc Pennington  <hp@pobox.com>
8905
8906         Just noticed that dbus_message_test is hosed, I wonder when I
8907         broke that. I thought make check was passing earlier...
8908         
8909         * dbus/dbus-object-tree.c: add new "object tree" to match DCOP 
8910         container tree, will replace most of dbus-object-registry
8911
8912         * dbus/dbus-string.c (_dbus_string_append_printf_valist): fix C99
8913         screwup
8914
8915 2003-08-19  Havoc Pennington  <hp@pobox.com>
8916
8917         * dbus/dbus-message.c (decode_string_field): support FIELD_SENDER
8918         (dbus_message_is_error): fix this function
8919
8920         * bus/dbus-daemon-1.1: clarify logic on when <deny>/<allow> rules
8921         match
8922
8923         * bus/policy.c (bus_client_policy_check_can_receive): fix code to
8924         reflect clarified man page
8925         (bus_client_policy_check_can_send): ditto
8926         
8927         * bus/session.conf.in: fixup
8928
8929         * bus/system.conf.in: fixup
8930
8931 2003-08-18  Havoc Pennington  <hp@redhat.com>
8932
8933         * dbus/dbus-hash.c (_dbus_hash_table_insert_two_strings): fix
8934
8935         * dbus/dbus-message.c (_dbus_message_loader_queue_messages): fix
8936         dumb bug created earlier (wrong order of args to
8937         decode_header_data())
8938         
8939         * tools/dbus-send.c: port
8940
8941         * tools/dbus-print-message.c (print_message): port
8942
8943         * test/data/*messages: port all messages over
8944         
8945         * dbus/dbus-message-builder.c: support including 
8946         message type
8947         
8948         * bus/driver.c: port over
8949         
8950         * bus/dispatch.c: port over to new stuff
8951
8952         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
8953         rename disconnect signal to "Disconnected"
8954
8955 2003-08-17  Havoc Pennington  <hp@pobox.com>
8956
8957         This doesn't compile yet, but syncing up so I can hack on it from
8958         work. What are branches for if not broken code? ;-)
8959         
8960         * dbus/dbus-protocol.h: remove DBUS_HEADER_FIELD_NAME, add
8961         DBUS_HEADER_FIELD_INTERFACE, DBUS_HEADER_FIELD_MEMBER,
8962         DBUS_HEADER_FIELD_ERROR_NAME
8963         
8964         * dbus/dbus-hash.c: Introduce DBUS_HASH_TWO_STRINGS as hack to use
8965         for the interface+member pairs
8966         (string_hash): change to use g_str_hash algorithm
8967         (find_direct_function, find_string_function): refactor these to
8968         share most code.
8969         
8970         * dbus/dbus-message.c: port all of this over to support 
8971         interface/member fields instead of name field
8972
8973         * dbus/dbus-object-registry.c: port over
8974         
8975         * dbus/dbus-string.c (_dbus_string_validate_interface): rename
8976         from _dbus_string_validate_name
8977
8978         * bus/dbus-daemon-1.1: change file format for the 
8979         <deny>/<allow> stuff to match new message naming scheme
8980
8981         * bus/policy.c: port over
8982
8983         * bus/config-parser.c: parse new format
8984         
8985 2003-08-16  Havoc Pennington  <hp@pobox.com>
8986
8987         * dbus/dbus-object-registry.c (add_and_remove_objects): remove
8988         broken assertion
8989
8990         * glib/dbus-gproxy.c: some hacking
8991
8992 2003-08-15  Havoc Pennington  <hp@redhat.com>
8993
8994         * dbus/dbus-pending-call.c (dbus_pending_call_block): implement
8995
8996         * dbus/dbus-connection.c
8997         (dbus_connection_send_with_reply_and_block): factor out internals;
8998         change to convert any error replies to DBusError instead of 
8999         returning them as a message
9000
9001 2003-08-15  Havoc Pennington  <hp@pobox.com>
9002
9003         * dbus/dbus-connection.c, 
9004         dbus/dbus-pending-call.c: Finish the pending call stuff
9005
9006 2003-08-14  Havoc Pennington  <hp@redhat.com>
9007
9008         * dbus/dbus-pending-call.c: start on new object that will replace
9009         DBusMessageHandler and ReplyHandlerData for tracking outstanding
9010         replies
9011
9012         * dbus/dbus-gproxy.c: start on proxy object used to communicate
9013         with remote interfaces
9014
9015         * dbus/dbus-gidl.c: do the boring boilerplate in here
9016         
9017 2003-08-12  Havoc Pennington  <hp@pobox.com>
9018
9019         * bus/dispatch.c (bus_dispatch): make this return proper 
9020         DBusHandlerResult to avoid DBUS_ERROR_UNKNOWN_METHOD
9021
9022         * dbus/dbus-errors.c (dbus_set_error): use
9023         _dbus_string_append_printf_valist
9024
9025         * dbus/dbus-string.c (_dbus_string_append_printf_valist)
9026         (_dbus_string_append_printf): new
9027
9028         * dbus/dbus-errors.h (DBUS_ERROR_UNKNOWN_MESSAGE): change to
9029         UNKNOWN_METHOD
9030
9031         * dbus/dbus-connection.c (dbus_connection_dispatch): handle
9032         DBUS_HANDLER_RESULT_NEED_MEMORY; send default error reply if a
9033         message is unhandled.
9034
9035 2003-08-11  Havoc Pennington  <hp@pobox.com>
9036
9037         * bus/test.c (client_disconnect_handler): change to return
9038         HANDLED (would have been REMOVE_MESSAGE)
9039
9040         * dbus/dbus-object.h (enum DBusHandlerResult): rename to
9041         HANDLED/NOT_YET_HANDLED instead of
9042         REMOVE_MESSAGE/ALLOW_MORE_HANDLERS to make it clearer how it 
9043         should be used.
9044
9045 2003-08-10  Havoc Pennington  <hp@pobox.com>
9046
9047         * tools/dbus-send.c (main): add --type argument, for now
9048         supporting only method_call and signal types.
9049
9050         * tools/dbus-print-message.c: print message type
9051
9052         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
9053         init connection->objects
9054
9055         * doc/dbus-specification.sgml: fix sgml
9056
9057         * bus/*.c: port over to object-instance API changes
9058
9059         * test/test-service.c: ditto
9060         
9061         * dbus/dbus-message.c (dbus_message_create_header): allow #NULL
9062         name, we will have to fix up the rest of the code to also handle
9063         this
9064         (dbus_message_new): generic message-creation call
9065         (set_string_field): allow appending name field
9066
9067 2003-08-06  Havoc Pennington  <hp@pobox.com>
9068
9069         * dbus/dbus-object-registry.c: implement signal connection 
9070         and dispatch
9071
9072         * dbus/dbus-connection.c (_dbus_connection_unref_unlocked): new
9073
9074         * dbus/dbus-internals.c (_dbus_memdup): new function
9075
9076 2003-08-02  Havoc Pennington  <hp@pobox.com>
9077
9078         * dbus/dbus-message.c (dbus_message_get_no_reply)
9079         (dbus_message_set_no_reply): add these and remove
9080         set_is_error/get_is_error
9081
9082         * dbus/dbus-protocol.h, doc/dbus-specification.sgml: 
9083         remove the ERROR flag, since there's now an ERROR type
9084
9085 2003-08-01  Havoc Pennington  <hp@pobox.com>
9086
9087         * dbus/dbus-object-registry.c (_dbus_object_registry_handle_and_unlock):
9088         implement
9089
9090         * dbus/dbus-message.c (dbus_message_get_type): new function
9091
9092         * doc/dbus-specification.sgml: add "type" byte to messages
9093
9094 2003-08-01  Havoc Pennington  <hp@pobox.com>
9095
9096         * dbus/dbus-protocol.h (DBUS_MESSAGE_TYPE_*): introduce
9097         a message type enum to distinguish kinds of message
9098         (DBUS_HEADER_FLAG_NO_REPLY_EXPECTED): flag for a message 
9099         that need not be replied to
9100
9101 2003-08-01  Havoc Pennington  <hp@pobox.com>
9102
9103         * dbus/dbus-marshal.c: adapt to DBusObjectID changes
9104         (unpack_8_octets): fix no-64-bit-int bug
9105
9106         * dbus/dbus-object-registry.c (validate_id): validate the 
9107         connection ID bits, not just the instance ID.
9108
9109         * dbus/dbus-connection.c (_dbus_connection_init_id): initialize
9110         the connection-global 33 bits of the object ID
9111
9112         * dbus/dbus-object-registry.c (info_from_entry): fill in 
9113         object ID in the new way
9114
9115         * dbus/dbus-objectid.h: rather than high/low bits, specifically 
9116         define server/client/instance bits.
9117
9118 2003-07-30  Havoc Pennington  <hp@pobox.com>
9119
9120         * dbus/dbus-connection.c (dbus_connection_register_object): fix
9121         build
9122
9123 2003-07-13  Havoc Pennington  <hp@pobox.com>
9124
9125         * dbus/dbus-object.h (struct DBusObjectVTable): add padding
9126         fields to DBusObjectVTable and DBusObjectInfo
9127
9128 2003-07-12  Havoc Pennington  <hp@pobox.com>
9129
9130         * dbus/dbus-object-registry.c: implement unit test,
9131         fix bugs discovered in process
9132
9133         * dbus/dbus-connection.c: remove handler_table and
9134         register_handler(), add DBusObjectRegistry usage
9135
9136         * dbus/dbus-objectid.c (dbus_object_id_is_null)
9137         (dbus_object_id_set_null): new functions
9138
9139 2003-07-08  Havoc Pennington  <hp@pobox.com>
9140
9141         * dbus/dbus-object.c: implement some of this
9142
9143         * dbus/dbus-object-registry.c
9144         (_dbus_object_registry_add_and_unlock): fill in the object_id out
9145         param
9146         (_dbus_object_registry_new): handle OOM
9147
9148 2003-07-08  Havoc Pennington  <hp@pobox.com>
9149
9150         * dbus/dbus-object.h: sketch out an API for registering objects
9151         with a connection, that allows us to use as little as 24 bytes
9152         per object and lets application code represent an object in 
9153         any conceivable way.
9154
9155         * dbus/dbus-object-registry.c: implement the hard bits of the
9156         DBusConnection aspect of object API. Not yet wired up.
9157         
9158 2003-07-06  Havoc Pennington  <hp@pobox.com>
9159
9160         * dbus/dbus-marshal.c (_dbus_marshal_set_object_id): new function
9161         (_dbus_marshal_object_id): new
9162         (_dbus_demarshal_object_id): new
9163         (_dbus_marshal_get_arg_end_pos): support object ID type, and
9164         consolidate identical switch cases. Don't conditionalize handling
9165         of DBUS_TYPE_UINT64, need to handle the type always.
9166         (_dbus_marshal_validate_arg): consolidate identical cases, and
9167         handle DBUS_TYPE_OBJECT_ID
9168
9169         * dbus/dbus-objectid.c: new file with DBusObjectID data type.
9170
9171         * dbus/dbus-protocol.h: add DBUS_TYPE_OBJECT_ID
9172
9173 2003-09-28  Havoc Pennington  <hp@pobox.com>
9174
9175         * real 0.13 release
9176
9177 2003-09-28  Havoc Pennington  <hp@pobox.com>
9178
9179         * doc/Makefile.am (dbus-specification.html): testing a funky hack
9180         to work with Debian db2html
9181
9182 2003-09-28  Havoc Pennington  <hp@pobox.com>
9183
9184         * configure.in: 0.13
9185
9186         * doc/Makefile.am (dbus-test-plan.html): accept nonexistence of
9187         stylesheet-images for benefit of Debian
9188         
9189         Change back to using filesystem-linked sockets for the system
9190         bus, so only root can create the default system bus address.
9191         
9192         * bus/system.conf.in: change to use
9193         DBUS_SYSTEM_BUS_DEFAULT_ADDRESS
9194
9195         * dbus/Makefile.am (INCLUDES): remove DBUS_SYSTEM_BUS_PATH define
9196         from here.
9197
9198         * configure.in: define DBUS_SYSTEM_BUS_DEFAULT_ADDRESS
9199         here, and AC_DEFINE DBUS_SYSTEM_PATH
9200
9201 2003-08-09  Anders Carlsson  <andersca@codefactory.se>
9202
9203         * doc/TODO:
9204         * doc/busconfig.dtd:
9205         Add busconfig DTD.
9206         
9207 2003-08-09  Anders Carlsson  <andersca@codefactory.se>
9208
9209         * doc/dbus-specification.sgml:
9210         Add activation reply values.
9211         
9212 2003-08-05  Havoc Pennington  <hp@redhat.com>
9213
9214         * configure.in: 0.12
9215
9216 2003-08-05  Anders Carlsson  <andersca@codefactory.se>
9217
9218         * glib/dbus-gmain.c: (watch_fd_new), (watch_fd_ref),
9219         (watch_fd_unref), (dbus_gsource_check), (dbus_gsource_dispatch),
9220         (add_watch), (remove_watch), (create_source):
9221         Refcount fds, fixes some reentrancy issues.
9222         
9223 2003-07-30  Havoc Pennington  <hp@redhat.com>
9224
9225         * dbus/dbus-bus.c (init_connections_unlocked): fix default system
9226         bus address to be abstract if we have abstract sockets
9227
9228         * NEWS: update
9229
9230 2003-07-28  Havoc Pennington  <hp@redhat.com>
9231
9232         * bus/messagebus.in: fix to avoid processname/servicename 
9233         confusion, from Michael Kearey
9234         https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=100965
9235         
9236 2003-07-23  Havoc Pennington  <hp@pobox.com>
9237
9238         * dbus/dbus-message.c (dbus_message_iter_get_named): 
9239         fix from Andy Hanton to remove broken "+1"
9240
9241 2003-07-16  Havoc Pennington  <hp@pobox.com>
9242
9243         * tools/dbus-launch.c (babysit): close stdout/stderr in the
9244         babysitter process, as suggested by Thomas Leonard, so 
9245         an "eval `dbus-launch --exit-with-session`" will actually 
9246         return
9247
9248 2003-07-16  Havoc Pennington  <hp@pobox.com>
9249
9250         * configure.in: print out EXPANDED_* variables in the summary at
9251         the end; clean up the code that computes EXPANDED_ variables and
9252         get the ones using exec_prefix right. Should make things work
9253         when you build without --prefix
9254
9255 2003-06-29  Havoc Pennington  <hp@pobox.com>
9256
9257         * mono/Test.cs (class Test): fire up a main loop and run it
9258
9259         * mono/DBus.cs (DBus): don't g_thread_init since it can only be
9260         done once, the app has to do it
9261
9262 2003-06-26  Havoc Pennington  <hp@pobox.com>
9263
9264         * mono/Connection.cs: set up connection with the glib main loop
9265
9266 2003-07-01  Havoc Pennington  <hp@redhat.com>
9267
9268         * doc/dbus-specification.sgml: clarify the format of a type code,
9269         change suggested by Jim Blandy
9270
9271 2003-06-29  Miloslav Trmac  <mitr@volny.cz>
9272
9273         * doc/Makefile.am:
9274         * tools/Makefile.am: Don't assume srcdir == builddir.
9275
9276         * dbus/dbus-memory.c (dbus_realloc): Don't check guards after shrinking
9277         the allocated block.
9278         (_dbus_memory_test): New function.
9279         * dbus/dbus-test.h: Add _dbus_memory_test ().
9280         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): Call it.
9281
9282         * dbus/dbus-message.c (decode_header_data): Use %.4s instead
9283         of %c%c%c%c.
9284         (dbus_message_new): Remove obsolete @todo.
9285
9286         * dbus/dbus-marshal.c (_dbus_marshal_set_int64)
9287         (_dbus_marshal_set_uint64): Fix comment.
9288
9289         * dbus/dbus-message.c (append_int_field, append_uint_field): Don't
9290         hardcode FIELD_REPLY_SERIAL.
9291
9292         * dbus/dbus-mainloop.c (_dbus_loop_remove_watch)
9293         (_dbus_loop_remove_timeout): Cast function pointers to (void *) for %p
9294
9295         * configure.in: Add -D_POSIX_C_SOURCE=199309L -DBSD_SOURCE to CFLAGS
9296         and disable DBUS_USE_ATOMIC_INT_486 when --enable-ansi is used
9297
9298 2003-06-24  Havoc Pennington  <hp@pobox.com>
9299
9300         * mono/*.cs: Use IntPtr.Zero instead of ((IntPtr) 0)
9301
9302 2003-06-23  Anders Carlsson  <andersca@codefactory.se>
9303
9304         * configure.in:
9305         * gcj/.cvsignore:
9306         * gcj/Hello.java:
9307         * gcj/Makefile.am:
9308         * gcj/TestMessage.java: (TestMessage), (TestMessage.main):
9309         * gcj/org/.cvsignore:
9310         * gcj/org/Makefile.am:
9311         * gcj/org/freedesktop/.cvsignore:
9312         * gcj/org/freedesktop/Makefile.am:
9313         * gcj/org/freedesktop/dbus/.cvsignore:
9314         * gcj/org/freedesktop/dbus/Makefile.am:
9315         * gcj/org/freedesktop/dbus/Message.java: (Message),
9316         (Message.Message):
9317         * gcj/org/freedesktop/dbus/natMessage.cc:
9318         Fix the build system.
9319
9320 2003-06-22  Havoc Pennington  <hp@pobox.com>
9321
9322         * mono/Connection.cs: add more bindings
9323
9324         * dbus/dbus-threads.c (dbus_threads_init): allow calling this
9325         more than once.
9326
9327 2003-06-22  Havoc Pennington  <hp@pobox.com>
9328
9329         * mono/Connection.cs, mono/DBus.cs, mono/Error.cs:
9330         Start wrapping more stuff.
9331
9332 2003-06-22  Havoc Pennington  <hp@pobox.com>
9333
9334         * mono/Message.cs: implement Message.Wrap() that ensures we only
9335         have a single C# wrapper per DBusMessage, assuming it works which
9336         it probably doesn't.
9337
9338         * dbus/dbus-message.c (dbus_message_allocate_data_slot): new
9339         (dbus_message_free_data_slot): new
9340         (dbus_message_set_data): new
9341         (dbus_message_get_data): new
9342
9343 2003-06-22  Havoc Pennington  <hp@pobox.com>
9344
9345         * dbus/dbus-dataslot.c (_dbus_data_slot_allocator_unref)
9346         (_dbus_data_slot_allocator_alloc): rework these to keep a
9347         reference count on each slot and automatically manage a global
9348         slot ID variable passed in by address
9349
9350         * bus/bus.c: convert to new dataslot API
9351
9352         * dbus/dbus-bus.c: convert to new dataslot API
9353
9354         * dbus/dbus-connection.c: convert to new dataslot API
9355
9356         * dbus/dbus-server.c: convert to new dataslot API
9357
9358         * glib/dbus-gmain.c: ditto
9359
9360         * bus/test.c: ditto
9361
9362         * bus/connection.c: ditto
9363
9364 2003-06-22  Anders Carlsson  <andersca@codefactory.se>
9365
9366         * configure.in: Add AM_PROG_GCJ and move AM_PROG_LIBTOOL
9367         after the gcj checks so that the correct configuration tags
9368         will be added to libtool.
9369
9370         * dbus-glib-1.pc.in: No need to specify any includes since
9371         dbus-1.pc.in has those.
9372
9373 2003-06-22  Havoc Pennington  <hp@pobox.com>
9374
9375         * mono/*, gcj/*, configure.in, Makefile.am:
9376         Check in makefiles and subdirs for mono and gcj bindings.
9377         Neither binding actually exists, just trying to get through
9378         all the build and other boring bits.
9379
9380 2003-06-21  Philip Blundell  <philb@gnu.org>
9381
9382         * tools/dbus-monitor.1: Updated.
9383
9384         * tools/dbus-send.1: Likewise.
9385
9386 2003-06-20  Anders Carlsson  <andersca@codefactory.se>
9387
9388         * dbus/dbus-transport-unix.c (unix_handle_watch): Check
9389         for hangup and error after checking read so we won't discard
9390         pending data if both hangup and read are set.
9391
9392 2003-06-19  Philip Blundell  <philb@gnu.org>
9393
9394         * tools/dbus-print-message.c (print_message): Handle BOOLEAN.
9395
9396         * tools/dbus-send.c: Accept both --system and --session.
9397
9398         * tools/dbus-monitor.c: Same here.
9399
9400 2003-06-19  Anders Carlsson  <andersca@codefactory.se>
9401
9402         * glib/dbus-glib.h: Fix so that dbus-glib.h can be used
9403         from C++ (Patch by Miloslav Trmac).
9404
9405 2003-06-15  Joe Shaw  <joe@assbarn.com>
9406
9407         * configure.in: Check for socklen_t.
9408
9409         * dbus/dbus-sysdeps.c: Define socklen_t if it's not defined.
9410
9411         * test/test-segfault.c: Add #include <sys/time.h>
9412
9413         * tools/Makefile.am: Add DBUS_X_CFLAGS to the INCLUDES since
9414         dbus-launch needs it.
9415
9416 2003-06-09  Havoc Pennington  <hp@redhat.com>
9417
9418         * dbus/dbus-sysdeps.c (_dbus_listen_unix_socket): don't use
9419         SUN_LEN, it breaks abstract socket usage
9420
9421         * dbus/dbus-internals.c (_dbus_verbose_real): only print PID at
9422         starts of lines.
9423
9424 2003-06-04  Havoc Pennington  <hp@pobox.com>
9425
9426         * dbus/dbus-server.c (dbus_server_listen): allow abstract sockets
9427         using unix:abstract=/foo, and when listening in a tmpdir
9428         i.e. unix:tmpdir=/tmp, always use abstract sockets if we can.
9429
9430         * dbus/dbus-transport.c (_dbus_transport_open): support
9431         unix:abstract=/foo
9432
9433         * dbus/dbus-server-unix.c (_dbus_server_new_for_domain_socket):
9434         support abstract sockets
9435
9436         * dbus/dbus-transport-unix.c
9437         (_dbus_transport_new_for_domain_socket): support abstract sockets
9438
9439         * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket): add "abstract"
9440         toggle as an argument, implement abstract namespace support
9441         (_dbus_listen_unix_socket): ditto
9442
9443         * configure.in: add --enable-abstract-sockets and implement
9444         a configure check for autodetection of the right value.
9445
9446 2003-06-01  Havoc Pennington  <hp@pobox.com>
9447
9448         * tools/dbus-cleanup-sockets.c: add utility to clean up sockets
9449         in /tmp (though on Linux this will end up being useless,
9450         when we add abstract namespace support)
9451
9452         * configure.in: define DBUS_SESSION_SOCKET_DIR in addition to
9453         subst'ing it
9454
9455 2003-05-28  Colin Walters  <walters@verbum.org>
9456
9457         * tools/dbus-monitor.c (main): Fix silly typo (s/--session/--system/).
9458
9459 2003-05-18  Anders Carlsson  <andersca@codefactory.se>
9460
9461         * dbus/dbus-message.c (dbus_message_new): Remove @todo.
9462
9463 2003-05-17  Colin Walters  <walters@gnu.org>
9464
9465         * tools/dbus-send.c: Don't exit with an error code if --help was
9466         passed.  Default to using the session bus instead of the system
9467         one.
9468
9469         * tools/dbus-launch.c: Ditto.
9470
9471         * tools/dbus-monitor.c: Ditto.
9472
9473         * tools/dbus-send.1: Update with new arguments.
9474
9475         * tools/dbus-launch.c: Emit code to export variables.  New
9476         arguments -s and -c to specify shell syntax, and a bit of code to
9477         autodetect syntax.  Also, allow specifying a program to run.
9478
9479         * tools/dbus-launch.1: Update with new arguments.
9480
9481         * tools/dbus-send.1: Ditto.
9482
9483         * tools/dbus-monitor.1: Ditto.
9484
9485 2003-05-17  Havoc Pennington  <hp@pobox.com>
9486
9487         * bus/config-parser.c (merge_included): merge in policies from
9488         child configuration file.
9489
9490         * bus/policy.c (bus_policy_merge): function to merge two policies
9491         together
9492
9493 2003-05-16  Havoc Pennington  <hp@redhat.com>
9494
9495         * dbus/dbus-connection.c: disable verbose lock spew
9496
9497         * tools/dbus-send.c: add --print-reply command line option
9498
9499         * tools/dbus-print-message.h (print_message): new util function
9500         shared by dbus-send and dbus-monitor
9501
9502         * tools/dbus-monitor.c (handler_func): exit on disconnect
9503
9504         * dbus/dbus-transport-unix.c (do_reading): if the transport is
9505         disconnected, don't try to use the read_watch
9506
9507         * dbus/dbus-watch.c (dbus_watch_get_enabled): assert watch != NULL
9508         so we can find this bug more easily
9509
9510 2003-05-16  Havoc Pennington  <hp@redhat.com>
9511
9512         * bus/policy.c (free_rule_list_func): avoid a crash when passed
9513         NULL as DBusHashTable is annoyingly likely to do.
9514
9515 2003-05-16  Colin Walters  <walters@verbum.org>
9516
9517         * tools/dbus-monitor.c: Add --session argument and usage()
9518         function.
9519
9520         * tools/dbus-monitor.1: Update with new --session arg.
9521
9522         * bus/Makefile.am (install-data-hook): Create
9523         $(libdir)/dbus-1.0/services so that the session bus is happy.
9524
9525 2003-05-15  Havoc Pennington  <hp@redhat.com>
9526
9527         * dbus/dbus-sysdeps.c (_dbus_atomic_dec, _dbus_atomic_inc): work
9528         on non-x86. ifdef's are evil.
9529
9530 2003-05-15  Havoc Pennington  <hp@redhat.com>
9531
9532         * configure.in: 0.11
9533
9534         * NEWS: update
9535
9536         * bus/Makefile.am (initddir): apparently we are supposed to put
9537         init scripts in /etc/rc.d/init.d not /etc/init.d
9538
9539         * bus/Makefile.am: remove the "you must --enable-tests to make
9540         check" as it broke distcheck
9541
9542         * bus/Makefile.am (install-data-hook): create /etc/dbus-1/system.d
9543
9544 2003-05-13  James Willcox  <jwillcox@gnome.org>
9545
9546         * configure.in:
9547         * bus/activation.c: (bus_activation_service_created),
9548         (bus_activation_activate_service):
9549         * bus/driver.c: (bus_driver_send_service_deleted),
9550         (bus_driver_send_service_created), (bus_driver_send_service_lost),
9551         (bus_driver_send_service_acquired),
9552         (bus_driver_send_welcome_message),
9553         (bus_driver_handle_list_services):
9554         * bus/session.conf.in:
9555         * dbus/dbus-bus.c: (dbus_bus_acquire_service),
9556         (dbus_bus_service_exists), (dbus_bus_activate_service):
9557         * dbus/dbus-bus.h:
9558
9559         Add some convenience API which lets you activate a service, and did a
9560         bunch of s/0/DBUS_TYPE_INVALID/ in calls to dbus_message_append_args()
9561         and dbus_message_get_args()
9562
9563 2003-05-11  Havoc Pennington  <hp@pobox.com>
9564
9565         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): fix to avoid
9566         calling _dbus_marshal_validate_arg() for every byte in a byte
9567         array, etc.
9568
9569         * dbus/dbus-message-handler.c: use atomic reference counting to
9570         reduce number of locks slightly; the global lock in here sucks
9571
9572         * dbus/dbus-connection.c
9573         (_dbus_connection_update_dispatch_status_and_unlock): variant of
9574         update_dispatch_status that can be called with lock held; then use
9575         in a couple places to reduce locking/unlocking
9576         (dbus_connection_send): hold the lock over the whole function
9577         instead of acquiring it twice.
9578
9579         * dbus/dbus-timeout.c (_dbus_timeout_new): handle OOM
9580
9581         * bus/connection.c (bus_connections_setup_connection): fix access
9582         to already-freed memory.
9583
9584         * dbus/dbus-connection.c: keep a little cache of linked list
9585         nodes, to avoid using the global linked list alloc lock in the
9586         normal send-message case. Instead we just use the connection lock
9587         that we already have to take.
9588
9589         * dbus/dbus-list.c (_dbus_list_find_last): new function
9590
9591         * dbus/dbus-sysdeps.c (_dbus_atomic_inc, _dbus_atomic_dec):
9592         change to use a struct for the atomic type; fix docs,
9593         they return value before increment, not after increment.
9594
9595         * dbus/dbus-string.c (_dbus_string_append_4_aligned)
9596         (_dbus_string_append_8_aligned): new functions to try to
9597         microoptimize this operation.
9598         (reallocate_for_length): break this out of set_length(), to
9599         improve profile info, and also so we can consider inlining the
9600         set_length() part.
9601
9602         * dbus/dbus-message.c (dbus_message_new_empty_header): init data
9603         strings with some preallocation, cuts down on our calls to realloc
9604         a fair bit. Though if we can get the "move entire string to empty
9605         string" optimization below to kick in here, it would be better.
9606
9607         * dbus/dbus-string.c (_dbus_string_move): just call
9608         _dbus_string_move_len
9609         (_dbus_string_move_len): add a special case for moving
9610         an entire string into an empty string; we can just
9611         swap the string data instead of doing any reallocs.
9612         (_dbus_string_init_preallocated): new function
9613
9614 2003-05-11  Havoc Pennington  <hp@pobox.com>
9615
9616         Write a "test-profile" that does echo client-server with threads;
9617         profile reveals lock contention, memcpy/realloc of buffers, and
9618         UTF-8 validation as hot spots. 20% of lock contention eliminated
9619         with dbus_atomic_inc/dec implementation on x86.  Much remaining
9620         contention is global mempool locks for GList and DBusList.
9621
9622         * dbus/dbus-sysdeps.c (_dbus_atomic_inc, _dbus_atomic_dec): add
9623         x86 implementation
9624
9625         * dbus/dbus-connection.c (struct DBusConnection): use
9626         dbus_atomic_t for the reference count
9627
9628         * dbus/dbus-message.c (struct DBusMessage): declare
9629         dbus_atomic_t values as volatile
9630
9631         * configure.in: code to detect ability to use atomic integer
9632         operations in assembly, from GLib patch
9633
9634         * dbus/dbus-internals.c (_dbus_verbose_real): call getpid every
9635         time, tired of it being wrong in threads and forked processes
9636
9637         * glib/test-profile.c: a little program to bounce messages back
9638         and forth between threads and eat CPU
9639
9640         * dbus/dbus-connection.c: add debug spew macros for debugging
9641         thread locks; include config.h at top; fix deadlock in
9642         dbus_connection_flush()
9643
9644 2003-05-08  Havoc Pennington  <hp@pobox.com>
9645
9646         * dbus/dbus-spawn.c: s/_exit/exit/ because it was keeping gcov
9647         data from getting written, and there wasn't a good reason to
9648         use _exit really.
9649
9650         * test/decode-gcov.c (mark_inside_dbus_build_tests): don't count
9651         dbus_verbose lines in test coverage
9652         (main): add list of functions sorted by # of untested blocks
9653         to the coverage report
9654
9655         * dbus/dbus-mempool.c: put some test-only code in DBUS_BUILD_TESTS
9656
9657         * dbus/dbus-marshal.c (_dbus_marshal_test): extend test coverage
9658
9659         * dbus/dbus-message-handler.c (_dbus_message_handler_test):
9660         extend test coverage
9661
9662         * test/data/auth/cancel.auth-script: test canceling an
9663         authentication
9664
9665         * dbus/Makefile.am: remove dbus-server-debug.[hc] for now, as they
9666         aren't used. in CVS history if we end up needing them.
9667
9668 2003-05-04  Havoc Pennington  <hp@pobox.com>
9669
9670         * dbus/dbus-message-handler.c (_dbus_message_handler_test): add
9671         unit test
9672
9673         * dbus/dbus-marshal.c (_dbus_demarshal_string_array): fix this
9674         function, which assumed length was in # of strings, not bytes
9675
9676         * dbus/dbus-message.c (_dbus_message_test): add tests for some
9677         missing coverage
9678
9679         * dbus/dbus-connection.c
9680         (_dbus_connection_queue_received_message): disable function for
9681         now, we are only using it in test mode
9682
9683         * dbus/dbus-message.c (_dbus_message_loader_queue_messages):
9684         remove a mistaken FIXME
9685
9686 2003-05-04  Havoc Pennington  <hp@pobox.com>
9687
9688         * dbus/dbus-connection.c (dbus_connection_preallocate_send):
9689         unlock mutex on successful return, patch from Anders Gustafsson
9690
9691 2003-05-04  Havoc Pennington  <hp@pobox.com>
9692
9693         * dbus-glib-1.pc.in (Requires): fix dependencies, from
9694         Anders Gustafsson
9695
9696 2003-05-04  Havoc Pennington  <hp@pobox.com>
9697
9698         * tools/dbus-launch.c: implement
9699
9700         * bus/main.c (main), bus/bus.c (bus_context_new):
9701         implement --print-pid and --fork
9702
9703 2003-05-03  Havoc Pennington  <hp@redhat.com>
9704
9705         * dbus/dbus-address.c (dbus_parse_address): fix bug when a key in
9706         the address had no value, and add to test suite. Fix and
9707         regression test from Miloslav Trmac
9708
9709 2003-05-03  Havoc Pennington  <hp@pobox.com>
9710
9711         * dbus/dbus-watch.c (dbus_watch_handle): warn and return if a
9712         watch is invalid when handled
9713
9714         * tools/Makefile.am, tools/dbus-launch.c, tools/dbus-launch.1: add
9715         dbus-launch utility to launch the bus from a shell script.  Didn't
9716         actually implement dbus-launch yet, it's just a placeholder still.
9717
9718 2003-05-03  Havoc Pennington  <hp@pobox.com>
9719
9720         * bus/Makefile.am, bus/dbus-daemon-1.1.in: man page for the
9721         daemon; also documents daemon config file, so replaces
9722         doc/config-file.txt. Corrected some stuff from config-file.txt in
9723         the process of moving it.
9724
9725 2003-05-03  Havoc Pennington  <hp@pobox.com>
9726
9727         * tools/Makefile.am, tools/dbus-send.1, tools/dbus-monitor.1:
9728         add some man pages
9729
9730 2003-05-03  Colin Walters  <walters@verbum.org>
9731
9732         * dbus/dbus-sysdeps.c (fill_user_info): Test against
9733         DBUS_UID_UNSET to determine whether to do a uid lookup or not.
9734
9735         * Makefile.am: Update to use new .pc versioning scheme.
9736
9737 2003-05-02  Havoc Pennington  <hp@redhat.com>
9738
9739         * bus/system.conf.in: allow send/receive to/from message bus
9740         service
9741
9742 2003-04-30  Havoc Pennington  <hp@redhat.com>
9743
9744         * configure.in: print a note when building with unit tests and
9745         without assertions
9746
9747 2003-04-30  Havoc Pennington  <hp@redhat.com>
9748
9749         * Makefile.am: add a check-local that complains if you didn't
9750         configure with --enable-tests
9751
9752 2003-04-29  Havoc Pennington  <hp@redhat.com>
9753
9754         * glib/dbus-gmain.c: docs cleanups
9755
9756         * dbus/dbus-types.h: add docs on int64 types
9757
9758         * dbus/dbus-memory.c: fix docs to avoid putting private API in
9759         public API docs section
9760
9761 2003-04-29  Havoc Pennington  <hp@redhat.com>
9762
9763         * dbus-1.pc.in, dbus-glib-1.pc.in: rename these from
9764         dbus-1.0.pc.in, dbus-glib-1.0.pc.in. As these change with the
9765         parallel install API version, not with the D-BUS package version.
9766
9767         * HACKING: move some of README over here
9768
9769         * README: updates, and document API/ABI policy
9770
9771         * configure.in: reindentation
9772
9773 2003-04-29  Havoc Pennington  <hp@redhat.com>
9774
9775         * dbus/dbus.h: add "you have to define DBUS_API_SUBJECT_TO_CHANGE
9776         to use this library" to be sure people have the right
9777         expectations.
9778
9779 2003-04-28  Havoc Pennington  <hp@redhat.com>
9780
9781         * configure.in: add --enable-docs which by default is auto yes if
9782         doxygen and db2html found, no otherwise; but can be forced on/off
9783
9784         * doc/Makefile.am: conditionalize whether to build docs on
9785         --enable-docs
9786
9787 2003-04-28  Havoc Pennington  <hp@redhat.com>
9788
9789         * configure.in: 0.10
9790
9791         * NEWS: update
9792
9793         * bus/system.conf.in: add <includedir>system.d</includedir>
9794
9795         * dbus/dbus-userdb.c (_dbus_user_database_lookup): fix bug when
9796         username was provided but not uid
9797
9798         * bus/config-parser.c (struct BusConfigParser): keep track of
9799         whether the parser is toplevel or was included; change some
9800         of the error handling if it's included.
9801
9802 2003-04-27  Havoc Pennington  <hp@pobox.com>
9803
9804         Unbreak my code...
9805
9806         * dbus/dbus-transport.c (_dbus_transport_get_dispatch_status):
9807         report correct status if we finish processing authentication
9808         inside this function.
9809
9810         * bus/activation.c (try_send_activation_failure): use
9811         bus_transaction_send_error_reply
9812
9813         * bus/connection.c (bus_connection_get_groups): return an error
9814         explaining the problem
9815
9816         * bus/bus.c (bus_context_check_security_policy): implement
9817         restriction here that inactive connections can only send the
9818         hello message. Also, allow bus driver to send anything to
9819         any recipient.
9820
9821         * bus/connection.c (bus_connection_complete): create the
9822         BusClientPolicy here instead of on-demand.
9823         (bus_connection_get_policy): don't return an error
9824
9825         * dbus/dbus-message.c (dbus_message_new_error_reply): allow NULL
9826         sender field in message being replied to
9827
9828         * bus/bus.c (bus_context_check_security_policy): fix silly typo
9829         causing it to return FALSE always
9830
9831         * bus/policy.c (bus_client_policy_check_can_send): fix bug where
9832         we checked sender rather than destination
9833
9834 2003-04-25  Havoc Pennington  <hp@redhat.com>
9835
9836         test suite is slightly hosed at the moment, will fix soon
9837
9838         * bus/connection.c (bus_connections_expire_incomplete): fix to
9839         properly disable the timeout when required
9840         (bus_connection_set_name): check whether we can remove incomplete
9841         connections timeout after we complete each connection.
9842
9843         * dbus/dbus-mainloop.c (check_timeout): fix this up a bit,
9844         probably still broken.
9845
9846         * bus/services.c (bus_registry_acquire_service): implement max
9847         number of services owned, and honor allow/deny rules on which
9848         services a connection can own.
9849
9850         * bus/connection.c (bus_connection_get_policy): report errors here
9851
9852         * bus/activation.c: implement limit on number of pending
9853         activations
9854
9855 2003-04-25  Havoc Pennington  <hp@redhat.com>
9856
9857         * dbus/dbus-transport.c (_dbus_transport_get_unix_user): fix bug
9858         where we used >= 0 instead of != DBUS_UID_UNSET.
9859
9860 2003-04-25  Havoc Pennington  <hp@redhat.com>
9861
9862         * glib/dbus-gmain.c (remove_watch): fix for a crash when watches
9863         were toggled without add/remove, fix from Anders Gustafsson
9864
9865 2003-04-24  Havoc Pennington  <hp@redhat.com>
9866
9867         * test/data/valid-config-files/basic.conf: add <limit> tags to
9868         this test
9869
9870         * bus/config-parser.h, bus/config-parser.c, bus/bus.c: Implement
9871         <limit> tag in configuration file.
9872
9873 2003-04-24  Havoc Pennington  <hp@redhat.com>
9874
9875         * bus/dispatch.c: somehow missed some name_is
9876
9877         * dbus/dbus-timeout.c (_dbus_timeout_set_enabled)
9878         (_dbus_timeout_set_interval): new
9879
9880         * bus/connection.c (bus_connections_setup_connection): record time
9881         when each connection is first set up, and expire them after the
9882         auth timeout passes.
9883
9884 2003-04-24  Havoc Pennington  <hp@redhat.com>
9885
9886         * dbus/dbus-message.c (dbus_message_name_is): rename
9887         (dbus_message_service_is): rename
9888         (dbus_message_sender_is): rename
9889         (dbus_message_get_service): rename
9890
9891 2003-04-24  Havoc Pennington  <hp@redhat.com>
9892
9893         * configure.in: add --enable-checks
9894
9895         * dbus/dbus-message.c (dbus_message_new): reverse name/service arguments
9896
9897         * dbus/dbus-connection.c (dbus_connection_preallocate_send): fix
9898         to use thread locks.
9899         (_dbus_connection_handler_destroyed_locked): move some private
9900         functions into proper docs group
9901
9902         * dbus/dbus-internals.h: add _dbus_return_if_fail,
9903         _dbus_return_val_if_fail
9904
9905         Throughout: use dbus_return_if_fail
9906
9907 2003-04-23  James Willcox  <jwillcox@gnome.org>
9908
9909         * glib/dbus-glib.h:
9910         * glib/dbus-gmain.c: (add_timeout), (wakeup_main), (create_source),
9911         (dbus_connection_setup_with_g_main),
9912         (dbus_server_setup_with_g_main):
9913         * glib/test-dbus-glib.c: (main):
9914         * glib/test-thread-client.c: (main):
9915         * glib/test-thread-server.c: (new_connection_callback), (main):
9916         * tools/dbus-monitor.c: (main):
9917
9918         Added a GMainContext argument to dbus_connection_setup_with_g_main()
9919         and dbus_server_setup_with_g_main().
9920
9921 2003-04-20  Havoc Pennington  <hp@pobox.com>
9922
9923         * doc/dbus-specification.sgml: document the restrictions on
9924         message and service names
9925
9926 2003-04-22  Havoc Pennington  <hp@redhat.com>
9927
9928         * dbus/dbus-message.c, dbus/dbus-marshal.c: add 64-bit integer
9929         support, and do some code cleanups to share more code and
9930         speed up array marshal/demarshal.
9931
9932         * dbus-1.0.pc.in (Cflags): put libdir include file in cflags
9933
9934         * configure.in: generate dbus-arch-deps.h
9935
9936         * dbus/dbus-protocol.h (DBUS_TYPE_INT64, DBUS_TYPE_UINT64): add
9937         64-bit typecodes
9938
9939 2003-04-22  Havoc Pennington  <hp@redhat.com>
9940
9941         * test/data/valid-messages/opposite-endian.message: fix test
9942         to use proper type for rply field
9943
9944         * test/data/invalid-messages: add tests for below validation
9945
9946         * dbus/dbus-message.c (decode_header_data): validate field types,
9947         and validate that named fields are valid names
9948         (decode_name_field): consider messages in the
9949         org.freedesktop.Local. namespace to be invalid.
9950
9951         * dbus/dbus-string.c (_dbus_string_validate_name): new
9952
9953 2003-04-19  Havoc Pennington  <hp@pobox.com>
9954
9955         * bus/driver.c (bus_driver_handle_hello): check limits and
9956         return an error if they are exceeded.
9957
9958         * bus/connection.c: maintain separate lists of active and inactive
9959         connections, and a count of each. Maintain count of completed
9960         connections per user. Implement code to check connection limits.
9961
9962         * dbus/dbus-list.c (_dbus_list_unlink): export
9963
9964         * bus/bus.c (bus_context_check_security_policy): enforce a maximum
9965         number of bytes in the message queue for a connection
9966
9967 2003-04-18  Havoc Pennington  <hp@pobox.com>
9968
9969         * dbus/dbus-auth.c (record_mechanisms): memleak fixes
9970
9971         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): fix some
9972         memleaks
9973
9974         * dbus/dbus-keyring.c (add_new_key): fix a memleak, and
9975         on realloc be sure to update the pointer in the keyring
9976
9977         * dbus/dbus-string.c (_dbus_string_zero): compensate for align
9978         offset to avoid writing to unallocated memory
9979
9980         * dbus/dbus-auth.c (process_rejected): return FALSE if we fail to
9981         try the next mechanism, so we properly handle OOM
9982
9983         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): fix double-free
9984         on OOM.
9985         (_dbus_keyring_new): fix OOM bug
9986         (_dbus_keyring_new_homedir): always set error; impose a maximum
9987         number of keys we'll load from the file, mostly to speed up the
9988         test suite and make its OOM checks more useful, but also for
9989         general sanity.
9990
9991         * dbus/dbus-auth.c (process_error_server): reject authentication
9992         if we get an error from the client
9993         (process_cancel): on cancel, send REJECTED, per the spec
9994         (process_error_client): send CANCEL if we get an error from the
9995         server.
9996
9997 2003-04-18  Havoc Pennington  <hp@pobox.com>
9998
9999         * dbus/dbus-mainloop.c (_dbus_loop_iterate): fix UMR in verbose
10000         debug spew
10001
10002         * dbus/dbus-auth.c (handle_client_data_cookie_sha1_mech): fix OOM
10003         handling problem
10004
10005         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): only whine
10006         about DBUS_TEST_HOMEDIR once
10007
10008         * bus/Makefile.am (TESTS_ENVIRONMENT): put DBUS_TEST_HOMEDIR in
10009         the environment
10010
10011         * bus/dispatch.c (bus_dispatch_sha1_test): actually load sha1
10012         config file so we test the right thing
10013
10014         Throughout: assorted docs improvements
10015
10016 2003-04-18  Havoc Pennington  <hp@pobox.com>
10017
10018         * glib/dbus-gmain.c: adapt to watch changes
10019
10020         * bus/bus.c, bus/activation.c, etc.: adjust to watch changes
10021
10022         * dbus/dbus-server.h: remove dbus_server_handle_watch
10023
10024         * dbus/dbus-connection.h: remove dbus_connection_handle_watch
10025
10026         * dbus/dbus-watch.c (dbus_watch_handle): change DBusWatch to work
10027         like DBusTimeout, so we don't need dbus_connection_handle_watch
10028         etc.
10029
10030 2003-04-17  Havoc Pennington  <hp@redhat.com>
10031
10032         * dbus/dbus-userdb.c, dbus/dbus-sysdeps.c: redo all the passwd
10033         database usage so it all goes via the DBusUserDatabase cache.
10034
10035 2003-04-17  Havoc Pennington  <hp@redhat.com>
10036
10037         * dbus/dbus-mainloop.c (_dbus_loop_iterate): fix logic so that if
10038         there was an OOM watch we skipped, we always return TRUE so we
10039         iterate again to have a look at it again. Fixes test suite hang.
10040         Code rearrangement also lets us lose some memset and only iterate
10041         over callbacks once.
10042
10043         * bus/driver.c (bus_driver_handle_message): sense of test for
10044         reply was backward
10045
10046 2003-04-16  Havoc Pennington  <hp@pobox.com>
10047
10048         * doc/dbus-specification.sgml: make spec say serials are unsigned
10049
10050         * dbus/dbus-message.h: change message serials to unsigned
10051
10052         * dbus/dbus-connection.c: adapt to message serials being unsigned
10053
10054 2003-04-15  Havoc Pennington  <hp@pobox.com>
10055
10056         * bus/bus.c: create and keep around a shared DBusUserDatabase
10057         object.
10058
10059         * bus/connection.c (bus_connection_get_groups): don't cache
10060         groups for user in the connection object, since user database
10061         object now does that.
10062
10063 2003-04-16  Havoc Pennington  <hp@redhat.com>
10064
10065         * dbus/dbus-message.c (_dbus_message_add_size_counter): keep a
10066         list of size counters
10067         (_dbus_message_loader_putback_message_link): put back a popped link
10068
10069         * dbus/dbus-connection.c
10070         (dbus_connection_set_max_live_messages_size): rename
10071         max_received_size
10072         (dbus_connection_get_outgoing_size): get size of outgoing
10073         queue
10074         (_dbus_connection_set_connection_counter): remove this cruft
10075
10076 2003-04-14  Havoc Pennington  <hp@redhat.com>
10077
10078         * dbus/dbus-userdb.c: user database abstraction, mostly to get
10079         caching, but at some point we might want to be able to use a
10080         different database.
10081
10082         * bus/dispatch.c (bus_dispatch_sha1_test): add a test that uses
10083         SHA1 conf file to test the sha1 auth mechanism, since the regular
10084         test always uses EXTERNAL when available.
10085
10086         * configure.in,
10087         test/data/valid-config-files/debug-allow-all-sha1.conf.in:
10088         add conf file that requires use of sha1 auth
10089
10090 2003-04-13  Havoc Pennington  <hp@pobox.com>
10091
10092         * tools/dbus-send.c, tools/dbus-monitor.c: two utility programs
10093         from Philip Blundell to send messages and monitor them.
10094
10095 2003-04-13  Havoc Pennington  <hp@pobox.com>
10096
10097         * dbus/dbus-mainloop.c: fix some reentrancy issues by refcounting
10098         callbacks
10099
10100         * test/data/valid-config-files/debug-allow-all.conf.in: allow all
10101         users
10102
10103         * dbus/dbus-transport.c (_dbus_transport_get_dispatch_status):
10104         fix to only recover unused bytes if we're already authenticated
10105         (_dbus_transport_get_is_authenticated): fix to still mark us
10106         authenticated if there are unused bytes.
10107
10108         * bus/dispatch.c: implement security policy checking
10109
10110         * bus/connection.c (bus_transaction_send_from_driver): new
10111
10112         * bus/bus.c (bus_context_check_security_policy): new
10113
10114         * bus/dispatch.c (send_service_nonexistent_error): delete this,
10115         now we just set the DBusError and it gets converted to an error
10116         reply.
10117
10118         * bus/connection.c (allow_user_function): enable code using actual
10119         data from the config file
10120
10121         * bus/policy.c (list_allows_user): handle wildcard rules for
10122         user/group connection perms
10123
10124 2003-04-13  Havoc Pennington  <hp@pobox.com>
10125
10126         * bus/config-parser.c: Load up the BusPolicy and BusPolicyRules
10127
10128         * dbus/dbus-sysdeps.c (_dbus_get_user_id): new function
10129
10130         * bus/policy.c (bus_policy_append_mandatory_rule)
10131         (bus_policy_append_default_rule, bus_policy_append_user_rule)
10132         (bus_policy_append_group_rule): new functions
10133
10134 2003-04-12  Havoc Pennington  <hp@pobox.com>
10135
10136         * bus/config-parser.c (bus_config_parser_new): fix a memleak
10137
10138         * dbus/dbus-sysdeps.c: change DBusCredentials to use longs for
10139         the pid/gid/uid, just for paranoia.
10140
10141         * test/break-loader.c (randomly_do_n_things): find a byte
10142         containing a type code, and randomly change it to a different
10143         type code.
10144
10145 2003-04-12  Havoc Pennington  <hp@pobox.com>
10146
10147         * bus/policy.h: change BusPolicy to be the thing from the config
10148         file, and rename old BusPolicy to BusClientPolicy
10149
10150         * bus/bus.c, bus/connection.c, bus/config-parser.c: change to
10151         match change in how policy works
10152
10153         * dbus/dbus-internals.h: mark assert_not_reached as
10154         __attribute((noreturn))__
10155
10156 2003-04-11  Havoc Pennington  <hp@redhat.com>
10157
10158         * doc/dbus-specification.sgml: fix a spot with the wrong name for
10159         the broadcast service. Use boolean return for ServiceExists.
10160
10161 2003-04-11  Havoc Pennington  <hp@redhat.com>
10162
10163         * configure.in: add another directory to look for qt in.
10164
10165 2003-04-11  Havoc Pennington  <hp@redhat.com>
10166
10167         * AUTHORS: add Colin Walters
10168
10169 2003-04-11  Havoc Pennington  <hp@redhat.com>
10170
10171         * NEWS: update
10172
10173         * configure.in: 0.9
10174
10175 2003-04-11  Havoc Pennington  <hp@redhat.com>
10176
10177         * bus/messagebus.in: remove pid file when stopping the
10178         message bus, since the bus won't have privileges to remove it
10179         itself.
10180
10181 2003-04-11  Havoc Pennington  <hp@redhat.com>
10182
10183         * bus/bus.c (bus_context_new): move credentials change after
10184         creating pidfile
10185
10186 2003-04-11  Havoc Pennington  <hp@pobox.com>
10187
10188         * test/decode-gcov.c: add "below average functions" to the
10189         coverage report, and change how some of the code works.
10190
10191         * bus/test-main.c: bracket some stuff in DBUS_BUILD_TESTS so it's
10192         not in the coverage stats.
10193
10194         * test/test-service.c (main): use _dbus_verbose not fprintf in a
10195         couple places so running the test suite doesn't result in megaspam.
10196
10197 2003-04-11  Havoc Pennington  <hp@pobox.com>
10198
10199         * bus/dispatch.c (check_existent_service_activation): accept a no
10200         memory error in a place we didn't before
10201
10202         * bus/test.c (bus_test_run_everything): remove hacky "do it twice
10203         in case the first one failed," since the test suite is less
10204         broken now.
10205
10206 2003-04-10  Havoc Pennington  <hp@pobox.com>
10207
10208         * bus/dispatch.c (check_segfault_service_activation): add test
10209         for launching an executable that just crashes.
10210
10211         * test/test-segfault.c (main): try setting coredumpsize to 0 so we
10212         don't leave a million cores. We'll see how portable this is.
10213
10214 2003-04-10  Havoc Pennington  <hp@pobox.com>
10215
10216         * dbus/dbus-spawn.c (_dbus_spawn_async_with_babysitter): move all
10217         the possible parent failures before we fork, so that we don't
10218         fail to create a babysitter after creating the child.
10219
10220         * bus/activation.c (bus_activation_activate_service): kill child
10221         if we don't successfully complete the activation.
10222
10223 2003-04-10  Havoc Pennington  <hp@redhat.com>
10224
10225         * dbus/dbus-connection.c (dbus_connection_flush): don't spin on
10226         the connection if it's disconnected
10227
10228         * bus/activation.c (bus_activation_service_created): use new
10229         transaction features to roll back removal of pending activation if
10230         we don't successfully create the service after all. Don't remove
10231         pending activation if the function fails.
10232
10233         * dbus/dbus-list.c (_dbus_list_insert_before_link)
10234         (_dbus_list_insert_after_link): new code to facilitate
10235         services.c fixes
10236
10237         * dbus/dbus-hash.c (_dbus_hash_table_insert_string_preallocated):
10238         new functionality, so we can preallocate the ability to insert
10239         into a hash table.
10240
10241         * bus/connection.c (bus_transaction_add_cancel_hook): new function
10242         allowing us to put custom hooks in a transaction to be used for
10243         cancelling said transaction
10244
10245         * doc/dbus-specification.sgml: add some discussion of secondary
10246         service owners, and disallow zero-length service names
10247
10248         * bus/services.c (bus_registry_acquire_service): new function,
10249         splits out part of bus_driver_handle_acquire_service() and fixes
10250         a bug where we didn't remove the service doing the acquiring
10251         from the secondary queue if we failed to remove the current owner
10252         from the front of the queue.
10253
10254 2003-04-10  Alexander Larsson  <alexl@redhat.com>
10255
10256         * doc/dbus-specification.sgml:
10257         s/org.freedesktop.Broadcast/org.freedesktop.DBus.Broadcast/
10258
10259 2003-04-10  Alexander Larsson  <alexl@redhat.com>
10260
10261         * bus/.cvsignore:
10262         * glib/.cvsignore:
10263         * test/.cvsignore:
10264         Added files to cvsignore
10265
10266         * dbus/dbus-message.h:
10267         * dbus/dbus-message.c: (dbus_message_iter_get_named):
10268         Make get_named() take two out argument and return a boolean.
10269         (dbus_message_iter_get_args_valist):
10270         Update usage of get_named().
10271         (dbus_message_iter_append_byte):
10272         Fix typo
10273         (dbus_message_iter_append_named)
10274         Fix typo
10275         (message_iter_test), (check_message_handling_type), (_dbus_message_test):
10276         More tests.
10277
10278 2003-04-10  Alexander Larsson  <alexl@redhat.com>
10279
10280         * dbus/dbus-marshal.[ch]:
10281         Add array_type_pos argument to _dbus_marshal_validate_arg.
10282         Let you pass a NULL end_pos to _dbus_marshal_validate_type.
10283
10284         * dbus/dbus-message.[ch]:
10285         Multi-dimensional arrays have full type specification in the
10286         outermost array. Iter code re-arranged to handle this.
10287         Added some more iter tests.
10288
10289         * doc/dbus-specification.sgml:
10290         Add me to authors.
10291         Remove old FIXME.
10292         Update new array encoding description.
10293         Correct DBUS_SERVICE_FLAGS_REPLACE_EXISTING description.
10294
10295         * test/data/invalid-messages/array-with-mixed-types.message:
10296         * test/data/valid-messages/array-of-array-of-uint32.message:
10297         Change to the new array format.
10298
10299         * test/data/invalid-messages/too-short-dict.message:
10300         Fix bug in test.
10301
10302         * test/data/valid-messages/recursive-types.message:
10303         Fix up and extend test.
10304
10305 2003-04-10  Havoc Pennington  <hp@pobox.com>
10306
10307         * bus/dispatch.c: lots of fixes
10308
10309         * dbus/dbus-mainloop.c (_dbus_loop_dispatch): export
10310         (_dbus_loop_iterate): remove old "quit if no callbacks" code,
10311         that was crack, broke the test service.
10312
10313         * dbus/dbus-transport.c (_dbus_transport_open): fix error
10314         handling to avoid piling up errors if we get a failure on the
10315         first address.
10316
10317         * dbus/dbus-internals.c (_dbus_real_assert_not_reached): include
10318         pid in assertion failures.
10319
10320         * dbus/dbus-mainloop.c (_dbus_loop_iterate): use static arrays up
10321         to some fixed size of file descriptor array. Don't return TRUE
10322         anytime a timeout exists, that led to lots of busy loop silliness
10323         in the tests.
10324
10325 2003-04-09  Havoc Pennington  <hp@redhat.com>
10326
10327         * dbus/dbus-mainloop.c (check_timeout): fix timeouts, I thought
10328         I'd checked this in earlier but hadn't.
10329
10330 2003-04-09  Havoc Pennington  <hp@redhat.com>
10331
10332         * bus/dispatch.c (bus_dispatch_test): get a bit further through
10333         the activation test (man this is getting old!)
10334
10335 2003-04-09  Havoc Pennington  <hp@redhat.com>
10336
10337         * test/test-utils.c: use dispatch status function to fix this up
10338
10339         * bus/connection.c (connection_watch_callback): don't dispatch
10340         from here
10341         (connection_timeout_callback): don't dispatch from here
10342         (bus_connections_setup_connection): set the dispatch status function
10343         (bus_connection_disconnected): unset it
10344
10345         * dbus/dbus-mainloop.c (_dbus_loop_queue_dispatch): new function
10346         used to add a connection to be dispatched
10347         (_dbus_loop_iterate): do the dispatching at the end of each
10348         iteration
10349
10350         * dbus/dbus-connection.c
10351         (dbus_connection_set_dispatch_status_function): new function
10352         allowing us to fix up main loop usage
10353         (_dbus_connection_last_unref): free all the various function
10354         user data
10355         (dbus_connection_dispatch): call the DispatchStatusFunction
10356         whenever this function returns
10357         (dbus_connection_handle_watch): call DispatchStatusFunction
10358         (dbus_connection_send_with_reply_and_block): call DispatchStatusFunction
10359         (reply_handler_timeout): call DispatchStatusFunction
10360         (dbus_connection_flush): call DispatchStatusFunction
10361
10362 2003-04-09  Havoc Pennington  <hp@redhat.com>
10363
10364         * dbus/dbus-bus.c (dbus_bus_register): fix up error handling and
10365         a memory leak
10366
10367         * bus/dispatch.c (check_service_activated): fix bug in test
10368
10369         * dbus/dbus-mainloop.c (check_timeout): fix this up
10370
10371         * dbus/dbus-internals.c (_dbus_verbose_real): include PID in
10372         verbose output so we can sort out output from different processes,
10373         e.g. in the activation case.
10374
10375 2003-04-08  Colin Walters  <walters@gnu.org>
10376
10377         * bus/bus.c (struct BusContext) [pidfile]: New member, to store
10378         the pid file.
10379         (bus_context_new): Set it.
10380         (bus_context_unref): Use it to delete the pid file.
10381
10382 2003-04-08  Havoc Pennington  <hp@redhat.com>
10383
10384         * test/data/invalid-messages/array-with-mixed-types.message:
10385         regression test that fails for the moment
10386
10387         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): reorder
10388         tests for convenience
10389
10390         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): don't allow
10391         array of nil, it broke things.
10392
10393         * test/data/invalid-messages/array-of-nil.message: regression test
10394
10395         * test/data/valid-messages/array-of-array-of-uint32.message:
10396         happened to write this so added it to suite
10397
10398 2003-04-08  Havoc Pennington  <hp@redhat.com>
10399
10400         * bus/driver.c (bus_driver_handle_acquire_service): init
10401         retval/reply before checking name
10402
10403         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): add a
10404         recursion depth argument
10405
10406         * dbus/dbus-message.h (struct DBusMessageIter): put some padding
10407         in the public struct for future extension
10408
10409         * dbus/dbus-message-builder.c (_dbus_message_data_load): fix
10410         typo
10411
10412         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): fix a verbose
10413         message
10414
10415         * doc/dbus-specification.sgml: fix typo
10416
10417 2003-04-08  Alexander Larsson  <alexl@redhat.com>
10418
10419         Implemented recursive types, named types and new-style iters
10420
10421         * bus/driver.c:
10422         * glib/test-thread-client.c: (thread_func):
10423         * glib/test-thread-server.c: (handle_test_message):
10424         * test/test-service.c: (handle_echo):
10425         Update to new api
10426
10427         * dbus/Makefile.am:
10428         * dbus/dbus-dict.c:
10429         * dbus/dbus-dict.h:
10430         * dbus/dbus.h
10431         Remove DBusDict
10432
10433         * dbus/dbus-internals.c: (_dbus_type_to_string):
10434         Update for new types.
10435
10436         * dbus/dbus-marshal.[ch]:
10437         Implement recursive types and the new marshalling format.
10438         Remove hardcoded dict marshalling.
10439         Marshal named types.
10440
10441         * dbus/dbus-message-builder.c:
10442         Add BYTE_ARRAY.
10443         Remove references to old types
10444
10445         * dbus/dbus-message.[ch]:
10446         New non-refcounted iter API that supports recursive iters.
10447         Use iters for appending, including support for recursive
10448         iters.
10449         Add byte and named type support.
10450         Update everything to new marshalling formats.
10451         Add tests for new API.
10452
10453         * dbus/dbus-protocol.h:
10454         Remove old array types.
10455         Add types: BYTE, ARRAY, DICT, NAMED
10456
10457         * dbus/dbus-string.c:
10458         * dbus/dbus-sysdeps.c:
10459         Make parse_double locale safe.
10460
10461         * dbus/dbus-test-main.c:
10462         Call setlocale.
10463
10464         * dbus/dbus-test.c:
10465         Kill dict test
10466
10467         * doc/dbus-specification.sgml:
10468         Update spec
10469
10470         * test/data/incomplete-messages/missing-body.message:
10471         * test/data/invalid-messages/bad-boolean.message:
10472         * test/data/invalid-messages/bad-boolean-array.message:
10473         * test/data/invalid-messages/boolean-array-length-too-long.message-raw:
10474         * test/data/invalid-messages/boolean-has-no-value.message-raw:
10475         * test/data/invalid-messages/too-short-dict.message:
10476         * test/data/valid-messages/dict-simple.message:
10477         * test/data/valid-messages/dict.message:
10478         * test/data/valid-messages/emptiness.message:
10479         * test/data/valid-messages/lots-of-arguments.message:
10480         * test/data/valid-messages/no-padding.message:
10481         * test/data/valid-messages/recursive-types.message:
10482         Add missing NAME fields
10483         Fix up dicts & arrays
10484
10485         * test/data/invalid-messages/dict-with-nil-value.message:
10486         Removed, this is not invalid anymore.
10487
10488         * test/data/valid-messages/recursive-types.message:
10489         Add new test for deeply recursive types.
10490
10491 2003-04-07  Havoc Pennington  <hp@pobox.com>
10492
10493         * bus/driver.c (bus_driver_handle_acquire_service): return an
10494         error if you try to acquire a service that starts with ':'
10495
10496 2003-04-07  Havoc Pennington  <hp@redhat.com>
10497
10498         * doc/dbus-specification.sgml: require that base service names
10499         start with ':' and that the base service is created/deleted
10500         as first and last things a connection does on the bus
10501
10502         * bus/dispatch.c (check_existent_service_activation): lots more
10503         work on the activation test; it doesn't fully pass yet...
10504
10505         * test/test-service.c (main): fix so we don't memleak the
10506         connection to the message bus
10507         (filter_func): accept a message asking us to exit
10508
10509 2003-04-06  Havoc Pennington  <hp@pobox.com>
10510
10511         * qt/Makefile.am (dbusinclude_HEADERS): install dbus-qt.h,
10512         from Colin Walters
10513
10514         * configure.in: fixes to Qt detection from Colin Walters
10515
10516         * doc/Makefile.am: Only remove generated docbook dirs if they
10517         exist, from Colin Walters
10518
10519         * dbus/dbus-bus.c: change how we set well-known connections to
10520         NULL, so that it works if a single connection is stored in
10521         two well-known array slots.
10522
10523         * test/Makefile.am: remove a lot of stuff that isn't immediately
10524         useful, it's in CVS history if we want it.
10525
10526         * test/test-service.c: use dbus-mainloop instead of that
10527         watch.[hc] crack
10528
10529 2003-04-06  Havoc Pennington  <hp@pobox.com>
10530
10531         * dbus/Makefile.am: split lists of sources into stuff that goes in
10532         the library, util functions that go in the lib and are also used
10533         elsewhere, and util functions that are used in tests/daemon but
10534         don't go in the lib.
10535
10536         * dbus/dbus-mainloop.h, dbus/dbus-mainloop.c: move bus/loop.[hc]
10537         here so it can be used in test binaries also
10538
10539 2003-04-06  Havoc Pennington  <hp@pobox.com>
10540
10541         * dbus/dbus-sysdeps.c (_dbus_become_daemon): write the pidfile
10542         here in the parent process, so we can return an error if it
10543         fails. Also, move some of the code into the child so the parent
10544         is less hosed if we fail midway through.
10545
10546         * bus/bus.c (bus_context_new): move pidfile detection further up
10547         in the function, before we start overwriting sockets and such.
10548
10549         * bus/messagebus.in: adjust this a bit, not sure if it will work.
10550
10551         * configure.in: add --with-system-pid-file and --with-system-socket
10552
10553 2003-04-06  Colin Walters  <walters@verbum.org>
10554
10555         * configure.in (DBUS_SYSTEM_PID_FILE): New variable.
10556
10557         * bus/system.conf.in: Declare a pidfile.
10558
10559         * bus/bus.c (bus_context_new): Test for an existing pid file, and
10560         create one (if appropriate).
10561
10562         * bus/config-parser.c (enum ElementType) [ELEMENT_PIDFILE]: New.
10563         (struct BusConfigParser) [pidfile]: New.
10564         (element_type_to_name, merge_included, start_busconfig_child)
10565         (bus_config_parser_end_element, bus_config_parser_content): Handle it.
10566         (bus_config_parser_unref): Free it.
10567         (bus_config_parser_get_pidfile): New function.
10568
10569         * bus/config-parser.h (_dbus_write_pid_file): Prototype.
10570
10571         * dbus/dbus-errors.h (DBUS_ERROR_PIDFILE_EXISTS): New error.
10572
10573         * dbus/dbus-sysdeps.c (_dbus_write_pid_file): New function.
10574
10575         * dbus/dbus-sysdeps.h: Prototype it.
10576
10577 2003-04-06  Havoc Pennington  <hp@pobox.com>
10578
10579         * bus/bus.c (bus_context_new): print the address in here, rather
10580         than in main(), because we need to do it before forking the daemon
10581
10582         * bus/dispatch.c (send_service_nonexistent_error): set the sender
10583         on the service nonexistent error
10584
10585         * bus/driver.c (bus_driver_handle_acquire_service): set the
10586         sender on the AcquireService reply
10587
10588         * test/data/valid-config-files/debug-allow-all.conf.in: Make test
10589         server also listen on a UNIX socket so services can connect to it.
10590
10591 2003-04-06  Havoc Pennington  <hp@pobox.com>
10592
10593         * dbus/dbus-threads.c: Redo how the fake debug mutexes are done
10594         so it detects deadlocks and also we actually init threads when
10595         debugging.
10596
10597 2003-04-06  Havoc Pennington  <hp@pobox.com>
10598
10599         * dbus/dbus-server-unix.c (_dbus_server_new_for_domain_socket):
10600         save the domain socket name, and unlink it when we disconnect the
10601         server. Means that at least when we exit normally, we won't leave
10602         a bunch of junk in /tmp
10603
10604         * dbus/dbus-transport-unix.c
10605         (_dbus_transport_new_for_domain_socket): code cleanup (nicer
10606         memory management). (I was making a real change here but then
10607         didn't)
10608
10609 2003-04-06  Havoc Pennington  <hp@pobox.com>
10610
10611         * bus/bus.c (bus_context_new): fix wrong handling of
10612         server_data_slot_unref() in the error case.
10613
10614         * dbus/dbus-internals.h (_dbus_assert): change so it passes
10615         "(condition) != 0" to _dbus_real_assert so that
10616         "_dbus_assert (pointer)" doesn't cause a warning
10617
10618         * bus/main.c (main): accept --print-address option to print out
10619         the message bus address
10620
10621         * dbus/dbus-sysdeps.c (_dbus_generate_random_ascii): export this
10622
10623         * dbus/dbus-transport.c (_dbus_transport_open): special error for
10624         "tmpdir" option to unix: address on client side
10625
10626         * dbus/dbus-server.c (dbus_server_listen): handle "tmpdir" option
10627         to unix: address
10628
10629         * configure.in (TEST_SOCKET_DIR): locate a temporary directory
10630         we can use to create sockets in the test suite.
10631
10632         * bus/main.c (signal_handler): on SIGTERM, exit the daemon
10633         cleanly. To be used for testing.
10634
10635         * dbus/dbus-spawn.c (babysit): use _dbus_set_signal_handler()
10636
10637         * dbus/dbus-sysdeps.c (_dbus_set_signal_handler): new
10638
10639         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
10640         handle trying to call this when there's no servers active
10641
10642 2003-04-05  Havoc Pennington  <hp@pobox.com>
10643
10644         * NEWS: update
10645
10646         * configure.in: 0.8
10647
10648 2003-04-05  Havoc Pennington  <hp@pobox.com>
10649
10650         * bus/bus.c (setup_server): fix this so dbus-daemon-1 doesn't
10651         crash on startup. Need to get "try starting the daemon"
10652         in the test suite I guess. ;-)
10653
10654         * dbus/dbus-server.h, dbus/dbus-server.c: remove the stuff that
10655         tracked the number of open connections; it's better done in
10656         application-specific code as you want it to span all servers etc.
10657
10658 2003-04-05  Havoc Pennington  <hp@pobox.com>
10659
10660         * bus/Makefile.am (install-data-hook): add missing DESTDIR,
10661         patch from Colin Walters
10662
10663 2003-04-05  Havoc Pennington  <hp@pobox.com>
10664
10665         * doc/config-file.txt (Elements): fix docs of <auth> to reflect
10666         reality; in fact multiple mechanisms are allowed.
10667
10668         * dbus/dbus-internals.c (_dbus_real_assert)
10669         (_dbus_real_assert_not_reached): move guts of _dbus_assert() and
10670         _dbus_assert_not_reached() into functions, so that they don't show
10671         up in basic block counts for test coverage, and don't use up as
10672         much disk space. Does mean slower execution speed though, so
10673         assumes --disable-asserts is the normal production case.
10674
10675 2003-04-05  Havoc Pennington  <hp@pobox.com>
10676
10677         * test/Makefile.am (dist-hook): also dist *.in files
10678
10679         * NEWS: update
10680
10681         * configure.in: 0.7
10682
10683 2003-04-05  Havoc Pennington  <hp@pobox.com>
10684
10685         * dbus/dbus-string.c: docs warning
10686
10687         * dbus/dbus-spawn.c: missing docs
10688
10689         * dbus/dbus-memory.c (struct ShutdownClosure): missing docs
10690
10691 2003-04-05  Havoc Pennington  <hp@pobox.com>
10692
10693         * bus/loop.c (bus_loop_iterate): fix the timeout code, using
10694         magic from GLib
10695
10696         * dbus/dbus-spawn.c (_dbus_babysitter_unref): set sitter_pid
10697         to -1 once we've reaped the babysitter
10698         (_dbus_babysitter_handle_watch): do as much work as we can, not
10699         just one go of it
10700
10701         * bus/activation.c: add code using DBusBabysitter so that we
10702         handle it when a service fails to start up properly.
10703         (bus_activation_service_created): don't remove the activation
10704         entries as we go, just let them get removed when we free the pending
10705         activation. Unref reply messages after sending them.
10706
10707 2003-04-05  Havoc Pennington  <hp@pobox.com>
10708
10709         * test/decode-gcov.c (main): print per-directory stats in the report
10710
10711         * Makefile.am (coverage-report.txt): don't include test/* in gcov stats
10712
10713 2003-04-05  Havoc Pennington  <hp@pobox.com>
10714
10715         * Makefile.am (coverage-report.txt): add target "coverage-report.txt"
10716
10717         * test/decode-gcov.c: hack up a little program to suck data
10718         out of gcov files. Yes this is sort of silly.
10719
10720         * configure.in: define something in config.h and do an
10721         AM_CONDITIONAL when gcov is enabled
10722
10723 2003-04-04  Havoc Pennington  <hp@redhat.com>
10724
10725         * dbus/dbus-spawn.c, dbus/dbus-spawn.h: Change dbus_spawn to
10726         return a "babysitter" object that is used to monitor the status of
10727         the spawned process and reap it when required.
10728
10729         * test/test-segfault.c, test/test-exit.c,
10730         test/test-sleep-forever.c: binaries that do various lame things,
10731         used in the test suite.
10732
10733         * dbus/dbus-sysdeps.c: kill _dbus_errno_to_string()
10734
10735 2003-04-03  Havoc Pennington  <hp@pobox.com>
10736
10737         * dbus/dbus-spawn.c: Move dbus-spawn into a separate file
10738         in preparation for modifying it, dbus-sysdeps is getting
10739         a bit unmanageable.
10740
10741 2003-04-03  Havoc Pennington  <hp@redhat.com>
10742
10743         * bus/loop.h, bus/loop.c: make the mainloop an object so we can
10744         have multiple ones
10745
10746         * bus/*.[hc]: adapt to mainloop change
10747
10748 2003-04-03  Havoc Pennington  <hp@redhat.com>
10749
10750         * bus/activation.c (load_directory): fix up memleaks
10751         (bus_activation_entry_free): free the entry
10752
10753         * dbus/dbus-bus.c (dbus_bus_acquire_service): return an error if
10754         we get one from the message bus; fix memleaks.
10755
10756         * dbus/dbus-message.c (dbus_set_error_from_message): new function
10757
10758 2003-04-03  Havoc Pennington  <hp@pobox.com>
10759
10760         * bus/config-parser.c (bus_config_parser_unref): free
10761         list of mechanisms, bug discovered by test suite enhancements
10762         (putting system.conf and session.conf into suite)
10763
10764         * test/Makefile.am, test/test-service.c: add placeholder for a
10765         test service that we'll activate as part of test suite. Doesn't
10766         do anything yet.
10767
10768         * dbus/dbus-sysdeps.c (_dbus_setenv): support unsetenv by
10769         setting NULL value, and use system malloc not dbus_malloc()
10770         when we have unavoidable memleakage.
10771
10772         * dbus/dbus-bus.c (dbus_bus_get): fix bug where bus type of 0
10773         didn't work, and support DBUS_BUS_ACTIVATION.
10774
10775         * bus/activation.c (child_setup): pass our well-known bus type to
10776         the child
10777
10778         * bus/config-parser.c: support <type> to specify well-known type
10779
10780         * doc/dbus-specification.sgml: document the env variables to
10781         locate well-known buses and find service activator
10782
10783 2003-04-02  Havoc Pennington  <hp@redhat.com>
10784
10785         * test/Makefile.am (all-local): add a rule to copy tests to
10786         builddir, so we can have generated tests. Use this to remove the
10787         silly hack for testing system.conf and session.conf. Will use this
10788         shortly to generate .service files pointing to test binaries.
10789
10790 2003-04-02  Havoc Pennington  <hp@redhat.com>
10791
10792         * dbus/dbus-string.c (set_length): fix a bug - we allocated max of
10793         current alloc and needed new length, not max of the doubled
10794         allocation and needed new length. Also, when building tests,
10795         don't do the double-allocation stuff, just realloc every time.
10796
10797 2003-04-02  Havoc Pennington  <hp@redhat.com>
10798
10799         * dbus/dbus-sysdeps.c (_dbus_file_get_contents): include filenames
10800         in error messages
10801         (_dbus_string_get_dirname): new
10802         (_dbus_sysdeps_test): new
10803         (_dbus_directory_open): include dirnames in error messages
10804
10805         * bus/config-parser.c: interpret <include> and <includedir> and
10806         <servicedir> relative to config file location if the given
10807         filename is not absolute.
10808
10809         * dbus/dbus-string.c (_dbus_string_find_byte_backward): new
10810
10811 2003-04-02  Havoc Pennington  <hp@redhat.com>
10812
10813         * bus/connection.c (bus_transaction_send_error_reply): set sender
10814         service for the error, and unref the reply on success
10815
10816         * bus/activation.c: convert to use BusTransaction so OOM can be
10817         handled correctly
10818         (bus_activation_service_created): set sender of the message
10819
10820 2003-04-01  Havoc Pennington  <hp@redhat.com>
10821
10822         * bus/config-parser.c, bus/bus.c: implement <servicedir> and
10823         <includedir> (at least mostly)
10824
10825         * dbus/dbus-sysdeps.c (_dbus_change_identity): set the group ID
10826         first, then the user ID
10827
10828 2003-04-01  Havoc Pennington  <hp@pobox.com>
10829
10830         * dbus/dbus-server.c (dbus_server_set_auth_mechanisms): new
10831         function
10832
10833         * dbus/dbus-auth.c (_dbus_auth_set_mechanisms): new
10834
10835         * dbus/dbus-internals.c (_dbus_dup_string_array): new function
10836
10837         * dbus/dbus-sysdeps.c (_dbus_listen_unix_socket): chmod the
10838         socket 0777, and unlink any existing socket.
10839
10840         * bus/bus.c (bus_context_new): change our UID/GID and fork if
10841         the configuration file so specifies; set up auth mechanism
10842         restrictions
10843
10844         * bus/config-parser.c (bus_config_parser_content): add support
10845         for <fork> option and fill in code for <auth>
10846
10847         * bus/system.conf.in: add <fork/> to default configuration,
10848         and limit auth mechanisms to EXTERNAL
10849
10850         * doc/config-file.txt (Elements): add <fork>
10851
10852         * dbus/dbus-sysdeps.c (_dbus_become_daemon): new function
10853         (_dbus_change_identity): new function
10854
10855 2003-03-31  Havoc Pennington  <hp@redhat.com>
10856
10857         * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket)
10858         (_dbus_listen_unix_socket): fix off-by-one error in null
10859         termination spotted by Nalin
10860
10861 2003-03-31  Havoc Pennington  <hp@redhat.com>
10862
10863         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): allow setting
10864         DBUS_TEST_HOMEDIR when tests are enabled, so we can test without
10865         having a real home directory available.
10866
10867 2003-03-31  Havoc Pennington  <hp@redhat.com>
10868
10869         * bus/Makefile.am (install-data-hook): create /var/run/dbus
10870
10871         * bus/messagebus.in: add init script for Red Hat /etc/init.d
10872
10873         * configure.in: add support for specifying a style of init script
10874         to install
10875
10876 2003-03-31  Havoc Pennington  <hp@redhat.com>
10877
10878         Fix some annoying DBusString API and fix all affected code.
10879
10880         * dbus/dbus-string.c (_dbus_string_init): get rid of annoying
10881         max_length argument
10882         (_dbus_string_get_data): change to return string instead of using
10883         an out param
10884         (_dbus_string_get_const_data): ditto
10885         (_dbus_string_get_data_len): ditto
10886         (_dbus_string_get_const_data_len): ditto
10887
10888 2003-03-31  Havoc Pennington  <hp@redhat.com>
10889
10890         * bus/main.c (main): fix up the command line arguments to be nicer
10891
10892 2003-03-31  Havoc Pennington  <hp@redhat.com>
10893
10894         * dbus/Makefile.am (INCLUDES): use EXPANDED_LOCALSTATEDIR to
10895         define DBUS_SYSTEM_BUS_PATH as we want to compile in the same
10896         final location that lands in the config file
10897
10898         * bus/config-loader-expat.c (bus_config_load): fix type of
10899         XML_Parser variable
10900
10901         * doc/TODO: remove TODO item for dbus_bus_get()
10902
10903         * dbus/dbus-bus.c (bus_data_free): add missing lock/unlock
10904
10905 2003-03-31  Havoc Pennington  <hp@pobox.com>
10906
10907         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_domain_socket)
10908         (_dbus_transport_new_for_tcp_socket): these didn't need the "server"
10909         argument since they are always client side
10910
10911         * dbus/dbus-server.c (dbus_server_get_address): new function
10912
10913         * bus/main.c (main): take the configuration file as an argument.
10914
10915         * test/data/valid-config-files/debug-allow-all.conf: new file to
10916         use with dispatch.c tests for example
10917
10918         * bus/test-main.c (main): require test data dir
10919
10920         * bus/bus.c (bus_context_new): change this to take a
10921         configuration file name as argument
10922
10923         * doc/config-file.txt (Elements): add <servicedir>
10924
10925         * bus/system.conf, bus/session.conf: new files
10926
10927         * dbus/dbus-bus.c (dbus_bus_get): look for system bus on
10928         well-known socket if none set
10929
10930         * configure.in: create system.conf and session.conf
10931
10932 2003-03-30  Havoc Pennington  <hp@pobox.com>
10933
10934         * bus/config-parser.c: hacking
10935
10936         * dbus/dbus-memory.c: don't use DBusList for the list of stuff
10937         to shut down, since it could cause weirdness with the DBusList
10938         lock
10939
10940         * dbus/dbus-list.c (_dbus_list_test): add tests for the
10941         link-oriented stack routines
10942         (alloc_link): free the mempool if the first alloc from it fails
10943
10944         * dbus/dbus-mempool.c (struct DBusMemBlock): fix alignment issue
10945
10946         * dbus/dbus-string.c (UNICODE_VALID): sync new version of this
10947         from GLib
10948         (_dbus_string_skip_white): new
10949
10950         * doc/config-file.txt (Elements): add <includedir>
10951
10952 2003-03-28  Havoc Pennington  <hp@pobox.com>
10953
10954         * dbus/dbus-string.c (_dbus_string_copy_data_len)
10955         (_dbus_string_copy_data): new functions
10956
10957 2003-03-28  Anders Carlsson  <andersca@codefactory.se>
10958
10959         * dbus/dbus-bus.c: (bus_data_free), (dbus_bus_get):
10960         * dbus/dbus-bus.h:
10961         Add dbus_bus_get.
10962
10963         * dbus/dbus-memory.c:
10964         Fix a doc comment.
10965
10966 2003-03-28  Havoc Pennington  <hp@pobox.com>
10967
10968         * bus/test.c (bus_test_flush_bus): remove the sleep from here,
10969         I think it may have just been superstition. Not sure.
10970
10971         * dbus/dbus-string.c (_dbus_string_base64_decode): catch some OOM
10972         failures that were not being handled.
10973
10974         * dbus/dbus-auth.c (process_auth): fix a memleak in OOM handling
10975
10976         * dbus/dbus-memory.c: add ability to set number of mallocs in a
10977         row that will fail on out-of-memory.
10978
10979         * dbus/dbus-internals.c (_dbus_test_oom_handling): convenience
10980         function for testing out-of-memory handling.
10981
10982         * bus/config-loader-expat.c (memsuite): don't wrap the dbus
10983         allocation functions, they do map exactly to the expat ones.
10984
10985 2003-03-27  Havoc Pennington  <hp@redhat.com>
10986
10987         * bus/config-loader-libxml.c (bus_config_load): add another error
10988         check
10989
10990 2003-03-26  Anders Carlsson  <andersca@codefactory.se>
10991
10992         * doc/TODO:
10993         Add note about automatic service activation.
10994
10995         * doc/dbus-specification.sgml:
10996         Rename the specification and clarify a few things.
10997
10998 2003-03-26  Anders Carlsson  <andersca@codefactory.se>
10999
11000         * Doxyfile.in:
11001         * dbus/dbus-address.c:
11002         * dbus/dbus-dict.c:
11003         * dbus/dbus-marshal.c:
11004         * dbus/dbus-server-debug-pipe.c:
11005         * dbus/dbus-transport-unix.c:
11006         Fix documentation warnings.
11007
11008 2003-03-26  Havoc Pennington  <hp@pobox.com>
11009
11010         * bus/test-main.c, dbus/dbus-test.c (main): check memleaks
11011         after every test so it's quick and easy to see which leaked, and
11012         so we test multiple dbus_shutdown() calls
11013
11014         * configure.in: change configure.in XML stuff to also support
11015         expat
11016
11017         * config-loader-libxml.c: some hacking
11018
11019         * config-loader-expat.c: some hacking
11020
11021         * config-parser.c: some hacking, plus tests
11022
11023 2003-03-25  Havoc Pennington  <hp@redhat.com>
11024
11025         * throughout - add more _DBUS_ASSERT_ERROR_IS_CLEAR
11026
11027         * configure.in: add --with-xml option to specify XML library,
11028         right now only libxml is supported.
11029
11030         * bus/config-loader-libxml.c, config-parser.c: sync some minor
11031         nonworking code between home and work, still just stubs
11032
11033 2003-03-24  Havoc Pennington  <hp@redhat.com>
11034
11035         * dbus/dbus-sysdeps.c (_dbus_set_fd_nonblocking): move to this
11036         file
11037
11038         * dbus/dbus-errors.c (dbus_set_error, dbus_set_error_const): allow
11039         NULL argument for "message" if the error is a well-known one,
11040         fill in a generic message in this case.
11041
11042         * dbus/dbus-errors.h (DBusResultCode): Kill DBusResultCode in
11043         favor of DBusError
11044
11045         * bus/test.c (bus_test_flush_bus): add
11046
11047         * bus/policy.c (bus_policy_test): test code stub
11048
11049 2003-03-24  Havoc Pennington  <hp@pobox.com>
11050
11051         * bus/connection.c (bus_connections_setup_connection): set up
11052         the "can this user connect" function, but it always returns
11053         TRUE until we have a config file parser so we can have a config
11054         file that allows connections.
11055
11056 2003-03-23  Havoc Pennington  <hp@pobox.com>
11057
11058         * dbus/dbus-threads.c (dbus_mutex_new, dbus_condvar_new): with
11059         DBUS_BUILD_TESTS, actually alloc/free a block of memory for
11060         the mutex, so we can check for proper memory management
11061         and OOM handling.
11062
11063         * dbus/dbus-dataslot.c: remove the mutex from
11064         DBusDataSlotAllocator and lock it manually when using it,
11065         to simplify fitting it into the global slots framework.
11066
11067         * dbus/dbus-threads.c (init_static_locks): rework how we're
11068         handling global locks so they are easily shut down.
11069
11070         * bus/policy.c (bus_policy_append_rule): fix
11071
11072         * bus/test-main.c (main): check for memleaks
11073
11074         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): make
11075         test suite check for memleaks
11076
11077         * dbus/dbus-memory.c: add support in test mode for tracking
11078         number of outstanding blocks
11079
11080 2003-03-23  Havoc Pennington  <hp@pobox.com>
11081
11082         * bus/policy.c, bus/bus.c, bus/connection.c: implement allow/deny
11083         policies code
11084
11085         * dbus/dbus-hash.h: add ULONG hash keys
11086
11087         * dbus/dbus-sysdeps.c (_dbus_get_groups): new
11088         (_dbus_get_group_id): new function
11089
11090 2003-03-20  Havoc Pennington  <hp@redhat.com>
11091
11092         * dbus/dbus-connection.c (dbus_connection_set_unix_user_function):
11093         new function
11094         (dbus_connection_get_unix_user): new function
11095
11096 2003-03-20  Havoc Pennington  <hp@pobox.com>
11097
11098         * bus/connection.c (bus_connection_send_oom_error): assert that
11099         message has a sender
11100         (connection_execute_transaction): ditto
11101         (bus_connection_preallocate_oom_error): fix to set the sender, and
11102         set recipient to the destination service, not the bus driver
11103
11104         * bus/policy.c: hacking
11105
11106         * dbus/dbus-message.c (dbus_message_service_is): new function
11107         (dbus_message_sender_is): new
11108
11109 2003-03-19  Havoc Pennington  <hp@redhat.com>
11110
11111         * bus/policy.c: start sketching code for policy restrictions on
11112         what connections can do.
11113
11114 2003-03-18  Havoc Pennington  <hp@redhat.com>
11115
11116         * doc/TODO: some notes on high-level todo items. Little nitpick
11117         stuff is all in @todo, so no need to add it here.
11118
11119         * doc/config-file.txt: some notes on how config file might look
11120
11121 2003-03-18  Anders Carlsson  <andersca@codefactory.se>
11122
11123         * configure.in: 0.6
11124
11125         * NEWS: Update.
11126
11127 2003-03-17  Havoc Pennington  <hp@redhat.com>
11128
11129         * dbus/dbus-internals.h: add gcc attributes so that
11130         our printf-style functions warn on bad arguments to
11131         format
11132
11133         * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): fix printf
11134         format bug
11135
11136         * dbus/dbus-message.c (_dbus_message_loader_queue_messages): fix
11137         printf format bug
11138
11139 2003-03-17  Havoc Pennington  <hp@redhat.com>
11140
11141         * bus/test-main.c (main): make it print something as it runs
11142         so make check doesn't look stuck
11143
11144         * doc/negotiation.txt, doc/dbus-sasl-profile.txt: remove
11145         from CVS, now obsolete
11146
11147 2003-03-17  Anders Carlsson  <andersca@codefactory.se>
11148
11149         * bus/dispatch.c: (bus_dispatch):
11150         Refetch the service name since it may have been reallocated
11151         when dbus_message_set_sender was called.
11152
11153         * dbus/dbus-sysdeps.c: (_dbus_accept):
11154         Add address and address length variables and use them to stop
11155         valgrind from complaining.
11156
11157 2003-03-17  Havoc Pennington  <hp@pobox.com>
11158
11159         All tests pass, no memleaks, no valgrind complaints.
11160
11161         * bus/test.c: refcount handler_slot
11162
11163         * bus/connection.c (bus_connections_new): refcount
11164         connection_data_slot
11165
11166         * dbus/dbus-auth-script.c (_dbus_auth_script_run): delete unused
11167         bytes so that auth scripts pass.
11168
11169         * bus/dispatch.c: init message_handler_slot so it gets allocated
11170         properly
11171
11172         * bus/dispatch.c (message_handler_slot_ref): fix memleak
11173
11174         * dbus/dbus-server-debug-pipe.c (_dbus_server_debug_pipe_new):
11175         dealloc server_pipe_hash when no longer used for benefit of
11176         leak checking
11177
11178         * dbus/dbus-auth.c (process_command): memleak fix
11179
11180         * bus/dispatch.c (check_hello_message): memleak fix
11181
11182 2003-03-16  Havoc Pennington  <hp@pobox.com>
11183
11184         * dbus/dbus-bus.c (ensure_bus_data): fix double-unref of the data slot
11185
11186 2003-03-17  Anders Carlsson  <andersca@codefactory.se>
11187
11188         * bus/activation.c (bus_activation_activate_service): Append
11189         the pending activation entry to the list of pending activations.
11190
11191 2003-03-16  Havoc Pennington  <hp@pobox.com>
11192
11193         * bus/dispatch.c (bus_dispatch_test): remove double-unrefs of
11194         connections
11195
11196         * dbus/dbus-address.c (create_entry): fix OOM handling when
11197         failing to alloc entry->method
11198
11199 2003-03-16  Havoc Pennington  <hp@pobox.com>
11200
11201         * dbus/dbus-watch.c (_dbus_watch_new): handle failure to malloc
11202         the watch
11203
11204         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
11205         add some missing dbus_set_result
11206
11207         * bus/dispatch.c (bus_dispatch_add_connection): handle failure to
11208         alloc the DBusMessageHandler
11209
11210         * dbus/dbus-transport.c (_dbus_transport_disconnect): don't ref
11211         the transport here, since we call this from the finalizer; it
11212         resulted in a double-finalize.
11213
11214         * dbus/dbus-transport.c (_dbus_transport_disconnect): fix a bug
11215         where we tried to use transport->connection that was NULL,
11216         happened when transport was disconnected early on due to OOM
11217
11218         * bus/*.c: adapt to handle OOM for watches/timeouts
11219
11220         * dbus/dbus-transport-unix.c: port to handle OOM during
11221         watch handling
11222
11223         * dbus/dbus-auth.c (_dbus_auth_get_unused_bytes): return a
11224         reference to unused bytes instead of a copy
11225
11226         * dbus/dbus-server.c (dbus_server_handle_watch): return FALSE for
11227         out of memory
11228
11229         * dbus/dbus-connection.c (dbus_connection_handle_watch): return
11230         FALSE on OOM
11231
11232         * dbus/dbus-timeout.c (dbus_timeout_handle): return FALSE for out
11233         of memory
11234
11235 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
11236
11237         * doc/dbus-specification.sgml:
11238         Document reply message for ActivateService.
11239
11240 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
11241
11242         * bus/activation.c: (bus_pending_activation_entry_free),
11243         (bus_pending_activation_free), (bus_activation_new),
11244         (bus_activation_unref), (bus_activation_service_created),
11245         (bus_activation_activate_service):
11246         * bus/activation.h:
11247         * bus/bus.c: (bus_context_new):
11248         * bus/desktop-file.c: (new_section):
11249         * bus/driver.c: (bus_driver_send_service_deleted),
11250         (bus_driver_handle_activate_service):
11251         * bus/services.c: (bus_registry_new), (bus_registry_ensure):
11252         * bus/services.h:
11253         * dbus/dbus-connection.c:
11254         (dbus_connection_send_with_reply_and_block):
11255         * dbus/dbus-message.c: (dbus_message_append_args_valist):
11256         * dbus/dbus-protocol.h:
11257         Make activation work better. Now pending activations will be queued
11258         and the daemon won't try to activate services that are already registered.
11259
11260 2003-03-16  Havoc Pennington  <hp@pobox.com>
11261
11262         * dbus/dbus-bus.c (ensure_bus_data): handle failure to set
11263         connection data
11264
11265         * dbus/dbus-memory.c (_dbus_initialize_malloc_debug): support
11266         DBUS_MALLOC_BACKTRACES to print trace when failing an alloc
11267
11268 2003-03-16  Havoc Pennington  <hp@pobox.com>
11269
11270         * dbus/dbus-string.c (_dbus_string_validate_utf8): oops, unbreak
11271         this. always run the test suite before commit...
11272
11273         * bus/*: adapt to DBusConnection API changes
11274
11275         * glib/dbus-gmain.c: adapt to DBusConnection API changes,
11276         requires renaming stuff to avoid dbus_connection_dispatch name
11277         conflict.
11278
11279         * dbus/dbus-transport.c (_dbus_transport_queue_messages): new
11280         function
11281
11282         * dbus/dbus-message.c (_dbus_message_loader_queue_messages):
11283         separate from _dbus_message_loader_return_buffer()
11284
11285         * dbus/dbus-connection.c (dbus_connection_get_n_messages): remove
11286         this, because it's now always broken to use; the number of
11287         messages in queue vs. the number still buffered by the message
11288         loader is undefined/meaningless. Should use
11289         dbus_connection_get_dispatch_state().
11290         (dbus_connection_dispatch): rename from
11291         dbus_connection_dispatch_message
11292
11293 2003-03-16  Havoc Pennington  <hp@pobox.com>
11294
11295         * dbus/dbus-string.c (_dbus_string_validate_utf8): copy in a real
11296         implementation
11297
11298 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
11299
11300         * dbus/dbus-connection.c:
11301         (dbus_connection_send_with_reply_and_block):
11302         Decrease connection->n_incoming when removing an entry
11303         from the list.
11304         * dbus/dbus-dict.c: (dbus_dict_entry_free),
11305         (dbus_dict_set_boolean_array), (dbus_dict_set_int32_array),
11306         (dbus_dict_set_uint32_array), (dbus_dict_set_double_array),
11307         (dbus_dict_set_byte_array), (dbus_dict_set_string_array),
11308         (dbus_dict_get_boolean_array), (dbus_dict_get_double_array),
11309         (dbus_dict_get_byte_array):
11310         Handle NULL arrays and strings. Also add support for byte arrays.
11311
11312         * dbus/dbus-marshal.c: (_dbus_marshal_byte_array),
11313         (_dbus_marshal_dict), (_dbus_demarshal_byte_array),
11314         (_dbus_demarshal_int32_array), (_dbus_demarshal_uint32_array),
11315         (_dbus_demarshal_double_array), (_dbus_demarshal_string_array),
11316         (_dbus_demarshal_dict), (demarshal_and_validate_len),
11317         (_dbus_marshal_validate_arg), (_dbus_marshal_test):
11318         * dbus/dbus-marshal.h:
11319         Add support for marshalling and demarshalling empty arrays and strings.
11320
11321         * dbus/dbus-message.c: (dbus_message_append_args_valist),
11322         (dbus_message_append_string_array),
11323         (dbus_message_iter_get_boolean),
11324         (dbus_message_iter_get_boolean_array),
11325         (dbus_message_iter_get_int32_array),
11326         (dbus_message_iter_get_uint32_array),
11327         (dbus_message_iter_get_double_array),
11328         (dbus_message_iter_get_byte_array),
11329         (dbus_message_iter_get_string_array), (dbus_message_iter_get_dict),
11330         (check_message_handling):
11331         Add support for getting empty arrays and dicts.
11332
11333         * dbus/dbus-string.c: (_dbus_string_validate_utf8):
11334         Don't do any validation at all for now, that's better than just checking
11335         for ASCII.
11336
11337         * test/data/valid-messages/emptiness.message:
11338         New test message with lots of empty arrays.
11339
11340 2003-03-16  Havoc Pennington  <hp@pobox.com>
11341
11342         * dbus/dbus-connection.c
11343         (_dbus_connection_queue_received_message_link): new function that
11344         can't fail due to OOM
11345
11346         * dbus/dbus-message.c (_dbus_message_loader_pop_message_link):
11347         new function pops a message together with a list link
11348         containing it.
11349
11350         * dbus/dbus-transport-unix.c (queue_messages): use new link-based
11351         message queuing functions to avoid needing to alloc memory
11352
11353 2003-03-16  Havoc Pennington  <hp@pobox.com>
11354
11355         Oops - test code was only testing failure of around 30 of the
11356         mallocs in the test path, but it turns out there are 500+
11357         mallocs. I believe this was due to misguided linking setup such
11358         that there was one copy of dbus_malloc etc. in the daemon and one
11359         in the shared lib, and only daemon mallocs were tested. In any
11360         case, the test case now tests all 500+ mallocs, and doesn't pass
11361         yet, though there are lots of fixes in this patch.
11362
11363         * dbus/dbus-connection.c (dbus_connection_dispatch_message): fix
11364         this so that it doesn't need to allocate memory, since it
11365         has no way of indicating failure due to OOM (and would be
11366         annoying if it did).
11367
11368         * dbus/dbus-list.c (_dbus_list_pop_first_link): new function
11369
11370         * bus/Makefile.am: rearrange to create two self-contained
11371         libraries, to avoid having libraries with overlapping symbols.
11372         that was resulting in weirdness, e.g. I'm pretty sure there
11373         were two copies of global static variables.
11374
11375         * dbus/dbus-internals.c: move the malloc debug stuff to
11376         dbus-memory.c
11377
11378         * dbus/dbus-list.c (free_link): free list mempool if it becomes
11379         empty.
11380
11381         * dbus/dbus-memory.c (_dbus_disable_mem_pools): new function
11382
11383         * dbus/dbus-address.c (dbus_parse_address): free list nodes
11384         on failure.
11385
11386         * bus/dispatch.c (bus_dispatch_add_connection): free
11387         message_handler_slot when no longer using it, so
11388         memory leak checkers are happy for the test suite.
11389
11390         * dbus/dbus-server-debug-pipe.c (debug_finalize): free server name
11391
11392         * bus/bus.c (new_connection_callback): disconnect in here if
11393         bus_connections_setup_connection fails.
11394
11395         * bus/connection.c (bus_connections_unref): fix to free the
11396         connections
11397         (bus_connections_setup_connection): if this fails, don't
11398         disconnect the connection, just be sure there are no side
11399         effects.
11400
11401         * dbus/dbus-string.c (undo_alignment): unbreak this
11402
11403         * dbus/dbus-auth.c (_dbus_auth_unref): free some stuff we were
11404         leaking
11405         (_dbus_auth_new): fix the order in which we free strings
11406         on OOM failure
11407
11408         * bus/connection.c (bus_connection_disconnected): fix to
11409         not send ServiceDeleted multiple times in case of memory
11410         allocation failure
11411
11412         * dbus/dbus-bus.c (dbus_bus_get_base_service): new function to
11413         get the base service name
11414         (dbus_bus_register_client): don't return base service name,
11415         instead store it on the DBusConnection and have an accessor
11416         function for it.
11417         (dbus_bus_register_client): rename dbus_bus_register()
11418
11419         * bus/dispatch.c (check_hello_message): verify that other
11420         connections on the bus also got the correct results, not
11421         just the one sending hello
11422
11423 2003-03-15  Havoc Pennington  <hp@pobox.com>
11424
11425         Make it pass the Hello handling test including all OOM codepaths.
11426         Now to do other messages...
11427
11428         * bus/services.c (bus_service_remove_owner): fix crash when
11429         removing owner from an empty list of owners
11430         (bus_registry_ensure): don't leave service in the list of
11431         a connection's owned services if we fail to put the service
11432         in the hash table.
11433
11434         * bus/connection.c (bus_connection_preallocate_oom_error): set
11435         error flag on the OOM error.
11436
11437         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
11438         handle _dbus_transport_set_connection failure
11439
11440         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd): modify
11441         to create watches up front and simply enable/disable them as
11442         needed.
11443         (unix_connection_set): this can now fail on OOM
11444
11445         * dbus/dbus-timeout.c, dbus/dbus-watch.c: add concept
11446         of enabling/disabling a watch or timeout.
11447
11448         * bus/loop.c (bus_loop_iterate): don't touch disabled
11449         watches/timeouts
11450
11451         * glib/dbus-gmain.c: adapt to enable/disable watches and timeouts
11452
11453 2003-03-15  Havoc Pennington  <hp@pobox.com>
11454
11455         * bus/dispatch.c (bus_dispatch_test): OK, now finally actually
11456         write useful test code, after all that futzing around ;-)
11457
11458         Test does not yet pass because we can't handle OOM in
11459         _dbus_transport_messages_pending (basically,
11460         dbus_connection_preallocate_send() does not prealloc the write
11461         watch). To fix this, I think we need to add new stuff to
11462         set_watch_functions, namely a SetEnabled function so we can alloc
11463         the watch earlier, then enable it later.
11464
11465         * dbus/Makefile.am (libdbus_convenience_la_SOURCES): move
11466         dbus-memory.c to the convenience lib
11467
11468         * bus/test.c: rename some static functions to keep them clearly
11469         distinct from stuff in connection.c. Handle client disconnection.
11470
11471 2003-03-14  Havoc Pennington  <hp@pobox.com>
11472
11473         * bus/dispatch.c (bus_dispatch_test): do test using debug-pipe
11474         transport, tests more of the real codepath. Set up clients
11475         with bus_setup_debug_client.
11476
11477         * bus/test.c (bus_setup_debug_client): function to set up debug
11478         "clients" on the main loop
11479
11480         * dbus/dbus-transport.c (_dbus_transport_open): add debug-pipe
11481         support
11482
11483         * dbus/dbus-server.c (dbus_server_listen): add debug-pipe
11484         server type
11485
11486         * dbus/dbus-server-debug.c: support a debug server based on pipes
11487
11488         * dbus/dbus-sysdeps.c (_dbus_full_duplex_pipe): new function
11489         (_dbus_close): new function
11490
11491         * configure.in: check for socketpair
11492
11493 2003-03-14  Havoc Pennington  <hp@redhat.com>
11494
11495         * dbus/dbus-memory.c: add a "detect buffer overwrites on free"
11496         cheesy hack
11497
11498         * dbus/dbus-transport-debug.c: rework this a good bit to be
11499         less complicated. hopefully still works.
11500
11501         * dbus/dbus-server-debug.c (handle_new_client): remove timeout
11502         manually
11503
11504         * glib/dbus-gmain.c (timeout_handler): don't remove timeout
11505         after running it
11506
11507         * dbus/dbus-message.c (dbus_message_copy): rename from
11508         dbus_message_new_from_message, fix it up to copy
11509         all the message fields, add test case
11510
11511         * bus/dispatch.c (bus_dispatch_test): add some more test code,
11512         not quite passing yet
11513
11514 2003-03-14  Havoc Pennington  <hp@pobox.com>
11515
11516         * bus/loop.c (bus_loop_iterate): add this so we can "run loop
11517         until no work remains" in test code. (the large diff here
11518         is just code movement, no actual changes)
11519
11520         * dbus/dbus-server-debug.c (DEFAULT_INTERVAL): change interval to
11521         1, no point waiting around for test code.
11522         (_dbus_server_debug_accept_transport): unref the timeout
11523         after adding it (right?)
11524
11525         * dbus/dbus-transport-debug.c (DEFAULT_INTERVAL): ditto
11526
11527 2003-03-13  Havoc Pennington  <hp@redhat.com>
11528
11529         * dbus/dbus-timeout.c (_dbus_timeout_list_set_functions): handle
11530         out of memory
11531
11532         * dbus/dbus-watch.c (_dbus_watch_list_set_functions): handle out
11533         of memory
11534
11535         * dbus/dbus-connection.h: Make AddWatchFunction and
11536         AddTimeoutFunction return a bool so they can fail on out-of-memory
11537
11538         * bus/bus.c (bus_context_new): set up timeout handlers
11539
11540         * bus/connection.c (bus_connections_setup_connection): set up
11541         timeout handlers
11542
11543         * glib/dbus-gmain.c: adapt to the fact that set_functions stuff
11544         can fail
11545
11546         * bus/bus.c (bus_context_new): adapt to changes
11547
11548         * bus/connection.c: adapt to changes
11549
11550         * test/watch.c: adapt to DBusWatch changes
11551
11552         * bus/dispatch.c (bus_dispatch_test): started adding this but
11553         didn't finish
11554
11555 2003-03-14  Anders Carlsson  <andersca@codefactory.se>
11556
11557         * bus/dispatch.c (send_service_nonexistent_error): Fix typo.
11558
11559 2003-03-13  Havoc Pennington  <hp@pobox.com>
11560
11561         * bus/test.c, bus/test.h, bus/Makefile.am, bus/test-main.c:
11562         set up a test framework as for the library
11563
11564 2003-03-12  Havoc Pennington  <hp@pobox.com>
11565
11566         Throughout: purge global variables, introduce BusActivation,
11567         BusConnections, BusRegistry, etc. objects instead.
11568
11569         * bus/bus.h, bus/bus.c: introduce BusContext as a global
11570         message bus object
11571
11572         * test/Makefile.am (TEST_BINARIES): disable bus-test for now,
11573         going to redo this a bit differently I think
11574
11575 2003-03-12  Havoc Pennington  <hp@redhat.com>
11576
11577         Mega-patch that gets the message bus daemon initially handling
11578         out-of-memory. Work still needed. Also lots of random
11579         moving stuff to DBusError instead of ResultCode.
11580
11581         * dbus/dbus-list.c (_dbus_list_length_is_one): new function
11582
11583         * dbus/dbus-connection.c
11584         (dbus_connection_send_with_reply_and_block): use DBusError
11585
11586         * dbus/dbus-bus.c: adapt to API changes, make it use DBusError not
11587         DBusResultCode
11588
11589         * dbus/dbus-connection.c (dbus_connection_send): drop the result
11590         code here, as the only failure possible is OOM.
11591
11592         * bus/connection.c (bus_connection_disconnect):
11593         rename bus_connection_disconnected as it's a notification only
11594
11595         * bus/driver.c (bus_driver_handle_acquire_service): don't free
11596         "name" on get_args failure, should be done by get_args;
11597         don't disconnect client for bad args, just return an error.
11598         (bus_driver_handle_service_exists): ditto
11599
11600         * bus/services.c (bus_services_list): NULL-terminate returned array
11601
11602         * bus/driver.c (bus_driver_send_service_lost)
11603         (bus_driver_send_service_acquired): send messages from driver to a
11604         specific client to the client's unique name, not to the broadcast
11605         service.
11606
11607         * dbus/dbus-message.c (decode_header_data): reject messages that
11608         contain no name field
11609         (_dbus_message_get_client_serial): rename to
11610         dbus_message_get_serial and make public
11611         (_dbus_message_set_serial): rename from set_client_serial
11612         (_dbus_message_set_reply_serial): make public
11613         (_dbus_message_get_reply_serial): make public
11614
11615         * bus/connection.c (bus_connection_foreach): allow stopping
11616         iteration by returning FALSE from foreach function.
11617
11618         * dbus/dbus-connection.c (dbus_connection_send_preallocated)
11619         (dbus_connection_free_preallocated_send)
11620         (dbus_connection_preallocate_send): new API for sending a message
11621         without possibility of malloc failure.
11622         (dbus_connection_send_message): rename to just
11623         dbus_connection_send (and same for whole function family)
11624
11625         * dbus/dbus-errors.c (dbus_error_free): make this reinit the error
11626
11627         * dbus/dbus-sysdeps.c (_dbus_exit): new function
11628
11629         * bus/activation.c: handle/return errors
11630
11631         * dbus/dbus-errors.h: add more DBUS_ERROR #define
11632
11633         * dbus/dbus-sysdeps.c (_dbus_directory_open) (_dbus_file_get_contents)
11634         (_dbus_directory_get_next_file): use DBusError instead of DBusResultCode
11635         (_dbus_result_from_errno): move to this file
11636
11637 2003-03-10  Anders Carlsson  <andersca@codefactory.se>
11638
11639         * dbus/dbus-marshal.c:
11640         (_dbus_marshal_set_string):
11641         Take a length argument so we can marshal the correct string
11642         length.
11643
11644         (_dbus_marshal_dict), (_dbus_demarshal_dict),
11645         (_dbus_marshal_get_arg_end_pos), (_dbus_marshal_validate_arg),
11646         (_dbus_marshal_test):
11647         * dbus/dbus-marshal.h:
11648         Add support for marshalling and demarshalling dicts.
11649
11650         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
11651         Add support for TYPE DICT.
11652
11653         * dbus/dbus-message.c: (set_string_field):
11654         Adjust header padding.
11655
11656         (dbus_message_append_args_valist), (dbus_message_append_dict),
11657         (dbus_message_get_args_valist), (dbus_message_iter_get_arg_type),
11658         (dbus_message_iter_get_dict), (_dbus_message_loader_return_buffer),
11659         (check_message_handling), (check_have_valid_message):
11660         * dbus/dbus-message.h:
11661         Add functions for setting and getting dicts.
11662
11663         * dbus/dbus-protocol.h:
11664         Add DBUS_TYPE_DICT.
11665
11666         * dbus/dbus.h:
11667         Add dbus-dict.h
11668
11669         * doc/dbus-specification.sgml:
11670         Add information about how dicts are marshalled.
11671
11672         * test/data/invalid-messages/dict-with-nil-value.message:
11673         * test/data/invalid-messages/too-short-dict.message:
11674         * test/data/valid-messages/dict-simple.message:
11675         * test/data/valid-messages/dict.message:
11676         Add sample messages containing dicts.
11677
11678 2003-03-08  Anders Carlsson  <andersca@codefactory.se>
11679
11680         * dbus/dbus-dict.h: Add DBUS_END_DECLS.
11681
11682 2003-03-07  Anders Carlsson  <andersca@codefactory.se>
11683
11684         * dbus/Makefile.am:
11685         * dbus/dbus-dict.c: (dbus_dict_entry_free), (dbus_dict_new),
11686         (dbus_dict_get_keys), (insert_entry), (dbus_dict_set_boolean),
11687         (dbus_dict_set_int32), (dbus_dict_set_uint32),
11688         (dbus_dict_set_double), (dbus_dict_set_string),
11689         (dbus_dict_set_boolean_array), (dbus_dict_set_int32_array),
11690         (dbus_dict_set_uint32_array), (dbus_dict_set_double_array),
11691         (dbus_dict_set_string_array), (_dbus_dict_test):
11692         * dbus/dbus-dict.h:
11693         Fix according to comments from Havoc.
11694
11695 2003-03-06  Michael Meeks  <michael@server.home>
11696
11697         * configure.in: if we don't have kde-config, disable have_qt.
11698
11699 2003-03-07  Anders Carlsson  <andersca@codefactory.se>
11700
11701         * dbus/Makefile.am:
11702         Add dbus-dict.[ch]
11703
11704         * dbus/dbus-dict.c: (dbus_dict_entry_free), (dbus_dict_new),
11705         (dbus_dict_ref), (dbus_dict_unref), (dbus_dict_contains),
11706         (dbus_dict_remove), (dbus_dict_get_value_type),
11707         (dbus_dict_get_keys), (dbus_dict_put_boolean),
11708         (dbus_dict_put_int32), (dbus_dict_put_uint32),
11709         (dbus_dict_put_double), (dbus_dict_put_string),
11710         (dbus_dict_put_boolean_array), (dbus_dict_put_int32_array),
11711         (dbus_dict_put_uint32_array), (dbus_dict_put_double_array),
11712         (dbus_dict_put_string_array), (dbus_dict_get_boolean),
11713         (dbus_dict_get_int32), (dbus_dict_get_uint32),
11714         (dbus_dict_get_double), (dbus_dict_get_string),
11715         (dbus_dict_get_boolean_array), (dbus_dict_get_int32_array),
11716         (dbus_dict_get_uint32_array), (dbus_dict_get_double_array),
11717         (dbus_dict_get_string_array), (_dbus_dict_test):
11718         * dbus/dbus-dict.h:
11719         Add DBusDict implementation
11720
11721         * dbus/dbus-test.c: (dbus_internal_do_not_use_run_tests):
11722         * dbus/dbus-test.h:
11723         Add _dbus_dict_test
11724
11725 2003-03-04  Havoc Pennington  <hp@pobox.com>
11726
11727         * test/data/auth/*: adapt to changes
11728
11729         * dbus/dbus-auth-script.c (_dbus_auth_script_run): add
11730         USERID_BASE64 and change USERNAME_BASE64 to put in username not
11731         userid
11732
11733         * dbus/dbus-keyring.c (_dbus_keyring_validate_context): prevent
11734         more stuff from being in a context name, to make the protocol
11735         simpler to deal with
11736
11737         * dbus/dbus-errors.c (dbus_error_has_name): new function
11738         (dbus_error_is_set): new function
11739
11740         * dbus/dbus-auth.c: replace DBUS_STUPID_TEST_MECH auth
11741         with DBUS_COOKIE_SHA1, implement DBUS_COOKIE_SHA1
11742
11743         * dbus/dbus-connection.c (dbus_connection_flush): also read
11744         messages during a flush operation
11745
11746         * dbus/Makefile.am: remove dbus-md5 since it isn't currently used.
11747
11748 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
11749
11750         * configure.in: Check for gethostbyname on Solaris.
11751
11752         * dbus/dbus-transport.c: (_dbus_transport_open):
11753         Remove duplicate "tcp" entry.
11754
11755         * doc/dbus-specification.sgml:
11756         Clarify some things.
11757
11758 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
11759
11760         * dbus/dbus-auth.c: (send_rejected), (process_test_subdir):
11761         * dbus/dbus-keyring.c: (_dbus_keyring_new_homedir),
11762         (_dbus_keyring_test):
11763         * dbus/dbus-md5.c: (_dbus_md5_compute):
11764         * dbus/dbus-sha.c: (_dbus_sha_compute):
11765         Plug memory leaks.
11766
11767 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
11768
11769         * README: Add some things.
11770
11771 2003-03-04  Anders Carlsson  <andersca@codefactory.se>
11772
11773         * dbus/dbus-message.c (dbus_message_append_args_valist): Add a break;
11774         after case DBUS_TYPE_BOOELAN.
11775
11776 2003-03-02  Havoc Pennington  <hp@pobox.com>
11777
11778         * test/break-loader.c (randomly_set_extreme_ints): add test that
11779         sets really huge and small integers
11780
11781         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): add check
11782         that length of boolean array fits in the string, and that
11783         string has room for boolean value in single-bool case.
11784
11785         * dbus/dbus-message-builder.c (_dbus_message_data_load): add
11786         optional value to "ALIGN" command which is what to fill the
11787         alignment with.
11788
11789         * test/data/valid-messages/no-padding.message: add regression
11790         test for the message padding problem
11791
11792 2003-03-02  Havoc Pennington  <hp@pobox.com>
11793
11794         * dbus/dbus-message.c (decode_header_data): fix to always init
11795         message_padding, from Benjamin Dauvergne
11796
11797 2003-03-02  Havoc Pennington  <hp@pobox.com>
11798
11799         * configure.in: 0.5
11800
11801         * NEWS: Update.
11802
11803 2003-03-01  Joe Shaw  <joe@assbarn.com>
11804
11805         * configure.in: Check for "struct cmsgcred" and try to access its
11806         members for BSD-like unices.
11807
11808         * dbus/dbus-sysdeps.c (read_credentials_byte): Fold this back into
11809         _dbus_read_credentials_unix_socket().
11810         (_dbus_read_credentials_unix_socket): Use recvmsg() instead of
11811         read() for reading the credential byte off the unix socket.  Use
11812         struct cmsgcred on systems that support it.
11813
11814 2003-02-27  Alexander Larsson  <alexl@redhat.com>
11815
11816         * glib/Makefile.am:
11817         * configure.in:
11818         Make gthreads-2.0 dependency optional. Don't build thread test if
11819         its not found.
11820
11821 2003-02-27  Havoc Pennington  <hp@pobox.com>
11822
11823         * dbus/dbus-connection.c
11824         (dbus_connection_send_message_with_reply_and_block): fix doh!
11825         doh! doh! bug that resulted in never removing a reply from the
11826         queue, no wonder we called get_reply_serial so much ;-)
11827
11828         * dbus/dbus-message.c (struct DBusMessage): cache reply serial
11829         and client serial instead of demarshaling them every time
11830
11831 2003-02-27  Havoc Pennington  <hp@pobox.com>
11832
11833         * dbus/dbus-marshal.c (_dbus_demarshal_int32): rewrite to be much
11834         more inlined, using dbus-string-private.h, speeds things up
11835         substantially
11836
11837         * dbus/dbus-string.c (_dbus_string_free): apply align offset
11838         when freeing the string
11839         (_dbus_string_steal_data): fix for align offset
11840         (undo_alignment): new function
11841
11842 2003-02-26  Havoc Pennington  <hp@redhat.com>
11843
11844         All kinds of audit fixes from Owen, plus initial attempt to
11845         handle unaligned memory returned from malloc.
11846
11847         * dbus/dbus-string.c (_dbus_string_init): clamp max length to
11848         leave room for align_offset and nul byte
11849         (fixup_alignment): function to track an align_offset and
11850         ensure real->str is aligned
11851         (DBUS_GENERIC_STRING_PREAMBLE): len must be less than allocated,
11852         to allow a nul byte plus align offset
11853         (_dbus_string_lock): fix overflow issue
11854         (_dbus_string_init_const_len): add assertions on sanity of len,
11855         assign allocated to be ALLOCATION_PADDING larger than len
11856         (set_length): fixup the overflow handling
11857         (_dbus_string_get_data_len): fix overflow in assertion
11858         (open_gap): detect overflow in size of gap to be opened
11859         (_dbus_string_lengthen): add overflow check
11860         (_dbus_string_align_length): fix overflow with _DBUS_ALIGN_VALUE
11861         (_dbus_string_append): add overflow check
11862         (_dbus_string_append_unichar): overflow
11863         (_dbus_string_delete): fix overflow in assertion
11864         (_dbus_string_copy_len): overflow in assertion
11865         (_dbus_string_replace_len): overflows in assertions
11866         (_dbus_string_find): change to implement in terms of
11867         _dbus_string_find_to
11868         (_dbus_string_find_to): assorted fixage
11869         (_dbus_string_equal_c_str): assert c_str != NULL,
11870         fix logic so the function works
11871         (_dbus_string_ends_with_c_str): fix overflow thingy
11872         (_dbus_string_base64_encode): overflow fix
11873         (_dbus_string_validate_ascii): overflow
11874         (_dbus_string_validate_nul): overflow
11875
11876 2003-02-26  Havoc Pennington  <hp@redhat.com>
11877
11878         * dbus/dbus-marshal.c (_dbus_marshal_test): fix to work with DISABLE_ASSERTS
11879
11880 2003-02-26  Alexander Larsson  <alexl@redhat.com>
11881
11882         * configure.in:
11883         Set DBUS_GLIB_THREADS_LIBS for apps using gthread-2.0
11884
11885         * dbus/dbus-connection.c:
11886         * dbus/dbus-connection.h:
11887         Fix _dbus_connection_acquire_io_path and _dbus_connection_acquire_dispatch.
11888         Add dbus_connection_set_wakeup_main_function and use it when queueing
11889         incoming and outgoing messages.
11890
11891
11892         * dbus/dbus-dataslot.c:
11893         Threadsafe usage of DBusDataSlotAllocator
11894
11895         * dbus/dbus-message.c: (dbus_message_get_args_iter):
11896         dbus_new can fail.
11897
11898         * dbus/dbus-server-unix.c:
11899         Add todo comment
11900
11901         * glib/dbus-gmain.c:
11902         Implement the new wakeup functions for glib.
11903
11904         * glib/Makefile.am:
11905         * glib/test-thread-client.c:
11906         * glib/test-thread-server.c:
11907         * glib/test-thread.h:
11908         Initial cut at some thread test code. Not really done yet.
11909
11910 2003-02-26  Havoc Pennington  <hp@pobox.com>
11911
11912         * dbus/dbus-connection.c
11913         (dbus_connection_send_message_with_reply_and_block): fix crash
11914         where we ref'd the outgoing message instead of the returned reply
11915
11916         * dbus/dbus-transport-unix.c (do_authentication): check read watch
11917         at the end of this function, so if we didn't need to read for
11918         authentication, we reinstall it for receiving messages
11919
11920         * dbus/dbus-message.c (dbus_message_new_reply): allow replies to
11921         a NULL sender for peer-to-peer case
11922
11923         * dbus/dbus-transport-unix.c (check_read_watch): handle
11924         !authenticated case correctly
11925
11926         * glib/dbus-gmain.c: add support for DBusServer
11927
11928         * dbus/dbus-server.c: add data slot support
11929
11930         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): check
11931         return values and handle errors
11932
11933         * dbus/dbus-dataslot.c: factor out the data slot stuff from
11934         DBusConnection
11935
11936         * Doxyfile.in (INPUT): add glib subdir
11937
11938         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): rename
11939         setup_with_g_main instead of hookup_with_g_main; write docs
11940
11941 2003-02-24  Anders Carlsson  <andersca@codefactory.se>
11942
11943         * dbus/dbus-marshal.c: (_dbus_marshal_validate_arg):
11944         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
11945         * dbus/dbus-message.c: (dbus_message_append_boolean),
11946         (dbus_message_append_boolean_array),
11947         (dbus_message_get_args_valist), (_dbus_message_test):
11948         * dbus/dbus-message.h:
11949         * doc/dbus-specification.sgml:
11950         Various fixes as pointed out by Havoc.
11951
11952         * test/data/invalid-messages/bad-boolean-array.message:
11953         * test/data/invalid-messages/bad-boolean.message:
11954         Add invalid boolean value test cases.
11955
11956 2003-02-24  Anders Carlsson  <andersca@codefactory.se>
11957
11958         * dbus/dbus-internals.c: (_dbus_type_to_string):
11959         * dbus/dbus-marshal.c: (_dbus_marshal_get_arg_end_pos),
11960         (_dbus_marshal_validate_arg):
11961         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
11962         * dbus/dbus-message.c: (dbus_message_append_args_valist),
11963         (dbus_message_append_boolean), (dbus_message_append_boolean_array),
11964         (dbus_message_get_args_valist), (dbus_message_iter_get_boolean),
11965         (dbus_message_iter_get_int32), (dbus_message_iter_get_uint32),
11966         (dbus_message_iter_get_double),
11967         (dbus_message_iter_get_boolean_array), (message_iter_test):
11968         * dbus/dbus-message.h:
11969         * dbus/dbus-protocol.h:
11970         * doc/dbus-specification.sgml:
11971         * test/data/valid-messages/lots-of-arguments.message:
11972         Add support for boolean and boolean array types.
11973
11974 2003-02-23  Havoc Pennington  <hp@pobox.com>
11975
11976         * dbus/dbus-keyring.c: finish most of this implementation and
11977         simple unit test
11978
11979         * dbus/dbus-errors.c (dbus_set_error_const, dbus_set_error): make
11980         these barf if the error isn't cleared to NULL
11981
11982         * dbus/dbus-sysdeps.c (_dbus_delete_file): set error on failure
11983         (_dbus_create_directory): new function
11984
11985         * dbus/dbus-errors.c (dbus_set_error): fix warning
11986
11987         * dbus/dbus-string.c (_dbus_string_hex_encode): new function
11988         (_dbus_string_hex_decode): new function
11989         (test_hex_roundtrip): test code
11990
11991         * dbus/dbus-sha.c (_dbus_sha_compute): use dbus_string_hex_encode
11992
11993         * dbus/dbus-md5.c (_dbus_md5_compute): use dbus_string_hex_encode
11994
11995         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): make this use
11996         the save-to-temp/rename trick to atomically write the new file
11997         (_dbus_string_parse_uint): new function
11998
11999 2003-02-22  Havoc Pennington  <hp@pobox.com>
12000
12001         * test/Makefile.am (dist-hook): fix dist for test/data/sha-1
12002
12003 2003-02-22  Havoc Pennington  <hp@pobox.com>
12004
12005         * dbus/dbus-message.c (dbus_message_iter_get_string_array):
12006         (dbus_message_iter_get_byte_array): Fix up doxygen warnings
12007
12008         * dbus/dbus-sha.c: add implementation of SHA-1 algorithm
12009
12010         * dbus/test/data/sha-1: add US government test suite for SHA-1
12011
12012 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
12013
12014         * dbus/dbus-marshal.c: (_dbus_demarshal_string_array):
12015         Make string arrays NULL-terminated.
12016
12017         * dbus/dbus-memory.c: (dbus_free_string_array):
12018         * dbus/dbus-memory.h:
12019         New function for freeing NULL-terminated string arrays.
12020
12021         * dbus/dbus-message-builder.c: (append_quoted_string),
12022         (_dbus_message_data_load):
12023         Add support for array types.
12024
12025         * dbus/dbus-message.c: (check_message_handling):
12026         Add more types as test cases.
12027
12028         * dbus/dbus-sysdeps.c: (_dbus_string_parse_int),
12029         (_dbus_string_parse_double):
12030         Add the start offset to the end offset.
12031
12032         * test/data/valid-messages/lots-of-arguments.message:
12033         New test message with lots of arguments.
12034
12035 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
12036
12037         * dbus/dbus-message.c: (dbus_message_append_nil),
12038         (dbus_message_append_int32), (dbus_message_append_uint32),
12039         (dbus_message_append_double), (dbus_message_append_string),
12040         (dbus_message_append_int32_array),
12041         (dbus_message_append_uint32_array),
12042         (dbus_message_append_double_array),
12043         (dbus_message_append_byte_array),
12044         (dbus_message_append_string_array):
12045         Fix all out-of-memory handling in these functions.
12046
12047 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
12048
12049         * dbus/dbus-message.c: (dbus_message_append_nil):
12050         Fix a silly.
12051
12052 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
12053
12054         * dbus/dbus-message.c: (dbus_message_append_args_valist),
12055         (dbus_message_append_nil), (dbus_message_append_int32_array),
12056         (dbus_message_append_uint32_array),
12057         (dbus_message_append_double_array),
12058         (dbus_message_append_byte_array),
12059         (dbus_message_append_string_array), (dbus_message_get_args_valist),
12060         (dbus_message_iter_get_int32_array),
12061         (dbus_message_iter_get_uint32_array),
12062         (dbus_message_iter_get_double_array),
12063         (dbus_message_iter_get_byte_array),
12064         (dbus_message_iter_get_string_array):
12065
12066         * dbus/dbus-message.h:
12067         Add functions for appending and getting arrays.
12068
12069 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
12070
12071         * dbus/dbus-mempool.c (_dbus_mem_pool_new): Make the
12072         element size at least 8 bytes, fixes mempool tests on
12073         64-bit machines.
12074
12075 2003-02-20  Alexander Larsson  <alexl@redhat.com>
12076
12077         * dbus/dbus-transport-unix.c (unix_do_iteration):
12078         Unlock the connection mutex during a blocking select call.
12079         Add todo about how we need a way to wake up the select.
12080
12081         * dbus/dbus-connection-internal.h:
12082         * dbus/dbus-connection.c:
12083         Add _dbus_connection_lock and _dbus_connection_unlock.
12084
12085 2003-02-19  Havoc Pennington  <hp@pobox.com>
12086
12087         * Doxyfile.in (PREDEFINED): put DOXYGEN_SHOULD_SKIP_THIS in
12088         Doxyfile.in, not Doxyfile
12089
12090         * dbus/dbus-keyring.c: do some hacking on this
12091
12092         * dbus/dbus-sysdeps.c (_dbus_delete_file): new
12093
12094         * dbus/dbus-errors.c (dbus_set_error_const): do not call
12095         dbus_error_init
12096         (dbus_set_error): remove dbus_error_init, check for message ==
12097         NULL *before* we sprintf into it, and add @todo about including
12098         system headers in this file
12099
12100         * dbus/dbus-sysdeps.c (_dbus_create_file_exclusively): new
12101
12102         * dbus/dbus-errors.h (DBUS_ERROR_FAILED): add
12103
12104         * dbus/dbus-sysdeps.c (get_user_info): break this function out to
12105         get various bits of user information based on either username
12106         or user ID
12107         (_dbus_homedir_from_username): new function
12108
12109 2003-02-19  Anders Carlsson  <andersca@codefactory.se>
12110
12111         * configure.in:
12112         Add check for nonposix getpwnam_r
12113
12114         * dbus/dbus-mempool.c: (_dbus_mem_pool_new):
12115         Align the pool element size to a sizeof (void *) boundary.
12116
12117         * dbus/dbus-sysdeps.c: (_dbus_setenv), (_dbus_connect_unix_socket),
12118         (_dbus_listen_unix_socket), (_dbus_credentials_from_username):
12119         General Solaris fixes.
12120
12121         * test/data/valid-messages/simplest-manual.message:
12122         Explicitly state that we want little-endian packing.
12123
12124 2003-02-19  Mikael Hallendal  <micke@codefactory.se>
12125
12126         * dbus/dbus-server.c (dbus_server_listen): Support tcp: addresses.
12127
12128         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_tcp_socket):
12129         Added to create a transport connecting using a tcp/ip socket.
12130
12131         * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): Added to connect
12132         to a tcp socket at given host and port.
12133         (_dbus_listen_tcp_socket): added to listen on tcp socket for given
12134         hostname and port.
12135
12136         * dbus/dbus-server.c (dbus_server_listen): Support tcp: addresses.
12137
12138         * dbus/dbus-server-unix.c (_dbus_server_new_for_tcp_socket):
12139         Added to create a server listening on a TCP/IP socket.
12140
12141 2003-02-19  Havoc Pennington  <hp@pobox.com>
12142
12143         Throughout: mop up all the Doxygen warnings and undocumented
12144         stuff.
12145
12146         * dbus/dbus-sysdeps.c (do_exec): do not use execvp, we don't want
12147         to search any paths.
12148
12149         * dbus/dbus-threads.c: move global mutex initializers to
12150         dbus-internals.h, multiple prototypes was confusing doxygen
12151         besides being kind of ugly
12152
12153         * Doxyfile (PREDEFINED): have Doxygen define
12154         DOXYGEN_SHOULD_SKIP_THIS so we can exclude things from
12155         docs with #ifndef DOXYGEN_SHOULD_SKIP_THIS
12156         (do not abuse the feature! it's for stuff like the autogenerated
12157         macros in dbus-md5.c, not just for things you don't feel like
12158         documenting...)
12159
12160 2003-02-18  Havoc Pennington  <hp@pobox.com>
12161
12162         * dbus/dbus-string.c (_dbus_string_zero): new function
12163
12164         * dbus/dbus-md5.c: include MD5 implementation by L. Peter Deutsch,
12165         wrap it in some dbus-friendly API
12166
12167         * dbus/dbus-types.h: add 16-bit types
12168
12169 2003-02-18  Joe Shaw  <joe@assbarn.com>
12170
12171         * dbus/dbus-auth.c (handle_server_data_stupid_test_mech): Just get
12172         credentials from our currently running process.
12173         (get_word): Fix a buglet where we were copying the entire length
12174         instead of relative to our position.
12175
12176         * dbus/dbus-hash.c (_dbus_hash_test): Don't try to allocate the
12177         keys on the stack... it's 640k of data.
12178
12179         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): Always
12180         read the credentials byte off the socket, even if we don't have
12181         SO_PEERCRED.
12182         (_dbus_poll): Implement poll() using select() for systems which
12183         don't have it.
12184
12185         * glib/test-dbus-glib.c (main): Print out an error if no
12186         parameters are given.
12187
12188         * test/data/auth/fallback.auth-script: Added.  Tests that a client
12189         can fallback to a secondary auth mechanism if the first fails.
12190
12191 2003-02-18  Havoc Pennington  <hp@pobox.com>
12192
12193         * AUTHORS: add Alex
12194
12195 2003-02-17  Havoc Pennington  <hp@pobox.com>
12196
12197         * doc/dbus-specification.sgml: lots of cosmetic
12198         cleanups/rearrangement, add assorted FIXME, change DBUS_ADDRESS
12199         env variable to DBUS_BUS_ADDRESS, s/client/application/,
12200         s/server/bus/ (except in authentication section). Add a section
12201         "Message Bus Message Routing"
12202
12203 2003-02-17  Anders Carlsson  <andersca@codefactory.se.>
12204
12205         Release 0.4
12206
12207         * NEWS: Update
12208
12209 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
12210
12211         * doc/dbus-specification.sgml:
12212         Specification updates.
12213
12214 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
12215
12216         * bus/activation.c: (bus_activation_init), (child_setup),
12217         (bus_activation_activate_service):
12218         * bus/activation.h:
12219         * bus/main.c: (main):
12220         Set DBUS_ADDRESS environment variable.
12221
12222         * dbus/dbus-errors.c: (dbus_set_error):
12223         Don't use va_copy since that's a C99 feature.
12224
12225         * dbus/dbus-sysdeps.c: (_dbus_setenv), (do_exec),
12226         (_dbus_spawn_async):
12227         * dbus/dbus-sysdeps.h:
12228         Add child_setup_func to _dbus_spawn_async.
12229
12230         * doc/dbus-specification.sgml:
12231         Update specification.
12232
12233         * test/spawn-test.c: (setup_func), (main):
12234         Fix test.
12235
12236 2003-02-17  Alexander Larsson  <alexl@redhat.com>
12237
12238         * dbus/dbus-connection.c (_dbus_connection_handler_destroyed_locked):
12239         Added todo.
12240
12241 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
12242
12243         * doc/.cvsignore:
12244         * doc/Makefile.am:
12245         * doc/dbus-test-plan.sgml:
12246         Add test plan document.
12247
12248         * test/Makefile.am:
12249         Fix distcheck.
12250
12251 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
12252
12253         * dbus/dbus-message.c: (decode_header_data),
12254         (_dbus_message_loader_return_buffer):
12255         Set the header padding amount when loading a message.
12256
12257 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
12258
12259         * bus/dispatch.c: (send_one_message):
12260         Only send broadcast messages to registered connections.
12261
12262         * dbus/dbus-message.c: (dbus_message_name_is):
12263         * dbus/dbus-message.h:
12264         New convenience function.
12265
12266         * dbus/dbus-transport-debug.c: (do_reading):
12267         Only dispatch one message per run.
12268
12269         * test/Makefile.am:
12270         * test/bus-test.c: (new_connection_callback), (die),
12271         (test_hello_client1_handler), (test_hello_client2_handler),
12272         (test_hello_replies), (main):
12273
12274         * test/bus-test-loop.[ch]:
12275         Add these.
12276
12277 2003-02-16  Havoc Pennington  <hp@pobox.com>
12278
12279         * dbus/dbus-connection.c (dbus_connection_dispatch_message): fix
12280         backward conditional
12281
12282 2003-02-16  Alexander Larsson  <alexl@redhat.com>
12283
12284         * dbus/dbus-connection.c:
12285         Implement sent_message_with_reply. (with_reply_and block is still
12286         busted).
12287         Made dispatch_message not lose message if OOM.
12288
12289         * dbus/dbus-errors.h:
12290         Add NoReply error (for reply timeouts).
12291
12292 2003-02-16  Alexander Larsson  <alexl@redhat.com>
12293
12294         * dbus/dbus-hash.c (_dbus_hash_table_unref):
12295         Actually free keys and values when destroying hashtable.
12296
12297 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
12298
12299         * dbus/dbus-auth.c: (client_try_next_mechanism):
12300         Plug a leak.
12301
12302         * dbus/dbus-threads.c: (dbus_condvar_wait_timeout):
12303         Return TRUE if there's no thread implementation around.
12304
12305         * glib/dbus-gmain.c: (free_source),
12306         (dbus_connection_hookup_with_g_main):
12307         Make sure to remove the GSource when the connection is finalized.
12308
12309 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
12310
12311         * bus/dispatch.c: (bus_dispatch_message_handler):
12312         * dbus/dbus-errors.h:
12313         Return an error if someone tries to send a message to a service
12314         that doesn't exist.
12315
12316 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
12317
12318         * bus/activation.c: (load_directory), (bus_activation_init),
12319         (bus_activation_activate_service):
12320         * bus/activation.h:
12321         * bus/driver.c:
12322         (bus_driver_handle_activate_service), (bus_driver_handle_message):
12323         More work on the activation handling.
12324
12325         * dbus/dbus-errors.h:
12326         Add some error messages
12327
12328         * dbus/dbus-message.c: (dbus_message_new_error_reply):
12329         * dbus/dbus-message.h:
12330         New function that creates an error message.
12331
12332         * dbus/dbus-protocol.h:
12333         Add ACTIVATE_SERVER message.
12334
12335         * dbus/dbus-server-unix.c: (unix_handle_watch),
12336         (_dbus_server_new_for_domain_socket):
12337         Call _dbus_fd_set_close_on_exec.
12338
12339         * dbus/dbus-sysdeps.c: (make_pipe), (do_exec),
12340         (_dbus_spawn_async), (_dbus_disable_sigpipe),
12341         (_dbus_fd_set_close_on_exec):
12342         * dbus/dbus-sysdeps.h:
12343         Add _dbus_fd_set_close_on exec function. Also add function that checks
12344         that all open fds are set to close-on-exec and warns otherwise.
12345
12346         * dbus/dbus-transport-unix.c:
12347         (_dbus_transport_new_for_domain_socket):
12348         Call _dbus_fd_set_close_on_exec.
12349
12350 2003-02-16  Havoc Pennington  <hp@pobox.com>
12351
12352         * dbus/dbus-connection.c (dbus_connection_set_change_sigpipe):
12353         allow people to avoid setting SIGPIPE to SIG_IGN
12354         (_dbus_connection_new_for_transport): disable SIGPIPE unless
12355         we've been asked not to
12356
12357 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
12358
12359         * dbus/dbus-list.c: (_dbus_list_append_link),
12360         (_dbus_list_prepend_link):
12361         * dbus/dbus-memory.c: (dbus_malloc), (dbus_malloc0),
12362         (dbus_realloc):
12363         Warning fixes.
12364
12365 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
12366
12367         * bus/Makefile.am:
12368         * bus/activation.c: (bus_activation_entry_free),
12369         (add_desktop_file_entry), (load_directory), (bus_activation_init):
12370         * bus/activation.h:
12371         * bus/main.c: (main):
12372         Add simple activation support, doesn't work yet though.
12373
12374 2003-02-15   Zack Rusin  <zack@kde.org>
12375
12376         * qt/dbus-qthread.cpp:  small casting fix
12377
12378 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
12379
12380         * dbus/dbus-errors.c: (dbus_set_error):
12381         * dbus/dbus-errors.h:
12382         Add a few errors and make dbus_set_error void.
12383
12384         * dbus/dbus-sysdeps.c:
12385         (_dbus_errno_to_string), (close_and_invalidate), (make_pipe),
12386         (write_err_and_exit), (read_ints), (do_exec), (_dbus_spawn_async):
12387         * dbus/dbus-sysdeps.h:
12388         Add _dbus_spawn_async.
12389
12390         * test/spawn-test.c: (main):
12391         Test for _dbus_spawn_async.
12392
12393 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
12394
12395         * dbus/dbus-internals.h:
12396         Fix build without tests.
12397
12398         * dbus/dbus-list.c: (alloc_link):
12399         Fix a segfault when a malloc fails.
12400
12401         * dbus/dbus-memory.c: (initialize_malloc_debug), (dbus_malloc),
12402         (dbus_malloc0), (dbus_realloc):
12403         Add support for malloc debugging.
12404
12405 2003-02-15  Alexander Larsson  <alexl@redhat.com>
12406
12407         * dbus/dbus-threads.c:
12408         * dbus/dbus-threads.h:
12409         Add condvars. Remove static mutext from API.
12410         Implement static mutexes by initializing them from threads_init.
12411
12412         * glib/dbus-gthread.c:
12413         * qt/dbus-qthread.cpp:
12414         Update with the thread api changes.
12415
12416
12417         * dbus/dbus-list.c:
12418         * dbus/dbus-list.h:
12419         Turn StaticMutex into normal mutex + init function.
12420         Export new functions _dbus_list_alloc_link, _dbus_list_free_link,
12421         _dbus_list_append_link, _dbus_list_prepend_link
12422
12423
12424         * dbus/dbus-sysdeps.c:
12425         * dbus/dbus-sysdeps.h:
12426         New type dbus_atomic_t, and new functions _dbus_atomic_inc,
12427         _dbus_atomic_dec. Only slow fallback implementation at the moment.
12428
12429         * dbus/dbus-protocol.h:
12430         Add DBUS_MESSAGE_LOCAL_DISCONNECT define
12431
12432         * dbus/dbus-message.c:
12433         Make ref/unref atomic.
12434         Fix some docs.
12435
12436         * dbus/dbus-connection-internal.h:
12437         * dbus/dbus-connection.c:
12438         * dbus/dbus-connection.h:
12439         Make threadsafe.
12440         Change _peek to _borrow,_return & _steal_borrowed.
12441         Change disconnect callback to event.
12442         Make dbus_connection_dispatch_messages reentrant.
12443
12444         * dbus/dbus-transport.c:
12445         Don't ref the connection on calls to the transport
12446         implementation.
12447
12448         * dbus/dbus-message-handler.c:
12449         Make threadsafe.
12450
12451         * glib/dbus-gmain.c:
12452         Don't use peek_message anymore
12453
12454         * test/Makefile.am:
12455         * test/debug-thread.c:
12456         * test/debug-thread.h:
12457         Simple thread implementation that asserts() on deadlocks in
12458         single-threaded code.
12459
12460         * test/bus-test.c:
12461         (main) Call debug_threads_init.
12462
12463         * test/watch.c:
12464         Use disconnect message instead of disconnect callback.
12465
12466         * bus/connection.c:
12467         * bus/connection.h:
12468         Don't call dbus_connection_set_disconnect_function. Instead export
12469         bus_connection_disconnect.
12470
12471         * bus/dispatch.c:
12472         Call bus_connection_disconnect when we get a disconnected message.
12473
12474 2003-02-15  Havoc Pennington  <hp@pobox.com>
12475
12476         * dbus/dbus-message.c (dbus_message_new): fool around with the
12477         docs
12478
12479 2003-02-14  Havoc Pennington  <hp@pobox.com>
12480
12481         * dbus/dbus-mempool.c: fail if the debug functions so indicate
12482
12483         * dbus/dbus-memory.c: fail if the debug functions indicate we
12484         should
12485
12486         * dbus/dbus-internals.c (_dbus_set_fail_alloc_counter)
12487         (_dbus_decrement_fail_alloc_counter): debug functions to
12488         simulate memory allocation failures
12489
12490 2003-02-14  Havoc Pennington  <hp@pobox.com>
12491
12492         * dbus/dbus-errors.h (struct DBusError): add a word of padding
12493         to DBusError
12494
12495 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12496
12497         * bus/driver.c: (bus_driver_handle_hello):
12498         * bus/driver.h:
12499         * bus/services.c: (bus_service_lookup):
12500         Reorder message sending so we get a more sane order.
12501
12502         * test/bus-test.c: (message_handler):
12503         Fix tyop.
12504
12505 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12506
12507         * bus/driver.c: (bus_driver_send_service_deleted),
12508         (bus_driver_send_service_created), (bus_driver_send_service_lost),
12509         (bus_driver_send_service_acquired), (bus_driver_handle_hello),
12510         (bus_driver_send_welcome_message),
12511         (bus_driver_handle_list_services),
12512         (bus_driver_handle_acquire_service),
12513         (bus_driver_handle_service_exists):
12514         * dbus/dbus-bus.c: (dbus_bus_register_client),
12515         (dbus_bus_acquire_service), (dbus_bus_service_exists):
12516         * dbus/dbus-errors.c: (dbus_result_to_string):
12517         * dbus/dbus-errors.h:
12518         * dbus/dbus-message.c: (dbus_message_append_args),
12519         (dbus_message_append_args_valist), (dbus_message_get_args),
12520         (dbus_message_get_args_valist), (dbus_message_get_args_iter),
12521         (dbus_message_iter_get_arg_type), (dbus_message_iter_get_string),
12522         (dbus_message_iter_get_byte_array),
12523         (dbus_message_iter_get_string_array), (message_iter_test),
12524         (check_message_handling), (_dbus_message_test):
12525         * dbus/dbus-message.h:
12526         * test/bus-test.c: (main):
12527         Change fields to arguments in messages, so that they won't be
12528         confused with header fields.
12529
12530         * glib/test-dbus-glib.c: (main):
12531         Remove append_fields from hello message.
12532
12533 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12534
12535         * dbus/dbus-errors.c:
12536         * dbus/dbus-message.c:
12537         * dbus/dbus-string.c:
12538         Documentation fixes.
12539
12540 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12541
12542         * glib/dbus-gmain.c: (timeout_handler), (add_timeout),
12543         (remove_timeout):
12544         Implement support for timeouts in dbus-glib.
12545
12546 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12547
12548         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
12549         * dbus/dbus-message.c: (process_test_subdir):
12550         * test/break-loader.c: (find_breaks_based_on):
12551         Plug some memory leaks.
12552
12553 2003-02-13  Richard Hult  <rhult@codefactory.se>
12554
12555         * bus/main.c: Fix build.
12556
12557         * dbus/dbus-errors.h:
12558         * dbus/dbus-errors.c: Fix copyright for Anders.
12559
12560 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12561
12562         * bus/Makefile.am:
12563         Add utils.[ch]
12564
12565         * bus/connection.c: (bus_connection_foreach):
12566         Fix a warning.
12567
12568         * bus/desktop-file.c: (grow_lines_in_section), (grow_sections),
12569         (unescape_string), (new_section), (parse_section_start),
12570         (parse_key_value), (report_error), (bus_desktop_file_load),
12571         (bus_desktop_file_get_string):
12572         * bus/desktop-file.h:
12573         Use DBusError for error reporting.
12574
12575         * bus/dispatch.c: (send_one_message),
12576         (bus_dispatch_message_handler):
12577         * bus/driver.c: (bus_driver_send_service_deleted),
12578         (bus_driver_send_service_created), (bus_driver_send_service_lost),
12579         (bus_driver_send_service_acquired), (bus_driver_handle_hello),
12580         (bus_driver_send_welcome_message),
12581         (bus_driver_handle_list_services),
12582         (bus_driver_handle_acquire_service),
12583         (bus_driver_handle_service_exists):
12584         * bus/loop.c: (bus_loop_run):
12585         * bus/main.c:
12586         Use BUS_HANDLE_OOM instead of _DBUS_HANDLE_OOM.
12587
12588         * bus/utils.c: (bus_wait_for_memory):
12589         * bus/utils.h:
12590         New files with general utility functions.
12591
12592         * dbus/dbus-internals.h:
12593         Remove _DBUS_HANDLE_OOM.
12594
12595 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12596
12597         * dbus/dbus-errors.c: (dbus_result_to_string), (dbus_error_init),
12598         (dbus_error_free), (dbus_set_error_const), (dbus_set_error):
12599         * dbus/dbus-errors.h:
12600         Add DBusError structure.
12601
12602 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12603
12604         * test/data/valid-messages/standard-acquire-service.message:
12605         * test/data/valid-messages/standard-hello.message:
12606         * test/data/valid-messages/standard-list-services.message:
12607         * test/data/valid-messages/standard-service-exists.message:
12608         Add some standard messages.
12609
12610 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12611
12612         * bus/driver.c: (bus_driver_send_welcome_message),
12613         (bus_driver_handle_list_services),
12614         (bus_driver_handle_acquire_service),
12615         (bus_driver_handle_service_exists), (bus_driver_handle_message):
12616         Update for API changes in libdbus.
12617
12618         * dbus/dbus-message.c: (dbus_message_new_reply):
12619         * dbus/dbus-message.h:
12620         Remove the name argument. The spec states that replies shouldn't
12621         have a name.
12622
12623 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12624
12625         * bus/desktop-file.c: (parse_section_start), (parse_key_value),
12626         (report_error), (bus_desktop_file_load), (lookup_section),
12627         (lookup_line), (bus_desktop_file_get_raw),
12628         (bus_desktop_file_get_string):
12629         * bus/desktop-file.h:
12630         Some fixes, and new functions for getting a key value from a section.
12631
12632 2003-02-13  Havoc Pennington  <hp@pobox.com>
12633
12634         * test/data/auth/fail-after-n-attempts.auth-script: new test
12635
12636         * dbus/dbus-auth.c (send_rejected): shutdown_mech() when we
12637         reject the client.
12638
12639 2003-02-13  Havoc Pennington  <hp@pobox.com>
12640
12641         * dbus/dbus-auth.c (handle_server_data_external_mech): args to
12642         dbus_credentials_match were backward
12643
12644         * dbus/dbus-auth-script.c (_dbus_auth_script_run): support
12645         NO_CREDENTIALS and ROOT_CREDENTIALS
12646
12647         * dbus/dbus-auth.c (_dbus_auth_do_work): move get_state() routine
12648         into here. Never process more commands after we've reached an
12649         end state; store further data as unused bytes.
12650
12651         * test/data/auth/*: add more auth tests
12652
12653         * dbus/dbus-auth-script.c (_dbus_auth_script_run): support EXPECT
12654         command to match exact string and EXPECT_UNUSED to match unused
12655         bytes
12656
12657         * test/Makefile.am (dist-hook): fix to dist all the test stuff
12658
12659 2003-02-12  Havoc Pennington  <hp@pobox.com>
12660
12661         * dbus/dbus-string.c (_dbus_string_pop_line): fix to also strip
12662         \r off of popped lines
12663
12664         * dbus/dbus-auth.c (_dbus_auth_test): write code to run auth
12665         scripts
12666
12667         * dbus/dbus-auth-script.c (_dbus_auth_script_run): when doing a
12668         SEND, append \r\n
12669
12670 2003-02-12  Havoc Pennington  <hp@pobox.com>
12671
12672         * dbus/Makefile.am: remove break-loader from the build, since it
12673         moved.
12674
12675         * configure.in: add --enable-gcov to turn on coverage profiling
12676         flags and disable optimization
12677
12678 2003-02-10  Havoc Pennington  <hp@pobox.com>
12679
12680         * dbus/dbus-auth-script.c, dbus/dbus-auth-script.h: sync
12681         initial cut at test framework for DBusAuth from laptop.
12682         Doesn't quite work yet but it compiles and I need to get
12683         it off the 266mhz laptop. ;-)
12684
12685         * dbus/dbus-server-debug.c (_dbus_server_debug_accept_transport):
12686         fix a memleak in error case
12687
12688 2003-02-12  Anders Carlsson  <andersca@codefactory.se>
12689
12690         * bus/Makefile.am:
12691         * bus/desktop-file.c:
12692         * bus/desktop-file.h:
12693         Add a desktop file parser.
12694
12695 2003-02-11  Zack Rusin  <zack@kde.org>
12696
12697         * qt/message.[h|cpp]: sample implementation
12698         of the KDE wrapper for DBusMessage
12699
12700 2003-02-09  Zack Rusin  <zack@kde.org>
12701
12702         * test/bus-test.c: make_it_compile
12703         * doc/dbus-specification.sgml: minimal semantic fix
12704
12705 2003-02-06  Anders Carlsson  <andersca@codefactory.se>
12706
12707         Release 0.3
12708
12709         * NEWS: Update
12710
12711 2003-02-06  Anders Carlsson  <andersca@codefactory.se>
12712
12713         * dbus/Makefile.am:
12714         * dbus/dbus-break-loader.c:
12715         * test/Makefile.am:
12716         * test/break-loader.c:
12717         Move dbus-break-loader to test/ and rename it to break-loader.
12718
12719 2003-02-02  Havoc Pennington  <hp@pobox.com>
12720
12721         * dbus/dbus-keyring.c, dbus/dbus-keyring.h: template files
12722         for code to manage cookies in your home directory
12723
12724         * dbus/dbus-sysdeps.c (_dbus_generate_random_bytes): new function
12725
12726         * dbus/dbus-auth.c (get_state): impose a maximum number of tries
12727         to authenticate, then disconnect the client.
12728
12729 2003-02-03  Alexander Larsson  <alexl@redhat.com>
12730
12731         * dbus/dbus-message.c (dbus_message_append_fields):
12732         Correct docs.
12733
12734 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
12735
12736         * doc/dbus-specification.sgml:
12737         Update address format section.
12738
12739 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
12740
12741         * test/Makefile.am:
12742         * test/bus-test.c: (get_time), (add_timeout), (remove_timeout),
12743         (message_handler), (new_connection_callback), (loop_quit),
12744         (loop_run), (main):
12745         Add bus test.
12746
12747 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
12748
12749         * bus/driver.c: (bus_driver_handle_service_exists):
12750         Simplify the code a bit.
12751
12752         * dbus/dbus-bus.c: (dbus_bus_service_exists):
12753         Fix a silly.
12754
12755 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
12756
12757         * bus/Makefile.am:
12758         Add libdbus-daemon.la and link to it.
12759
12760 2003-02-01  James Willcox  <jwillcox@gnome.org>
12761
12762         * bus/driver.c: (bus_driver_handle_own_service):
12763         Actually include the service reply code in the message.
12764
12765 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
12766
12767         * bus/driver.c: (bus_driver_handle_service_exists):
12768         Don't unref the incoming message.
12769
12770 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
12771
12772         * dbus/dbus.h: Add dbus-address.h and dbus-bus.h
12773
12774 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
12775
12776         * dbus/dbus-server.c: (dbus_server_listen):
12777         * dbus/dbus-transport.c: (_dbus_transport_open):
12778         ifdef out the calls to the debug transport and server.
12779
12780 2003-02-02  Alexander Larsson  <alexl@redhat.com>
12781
12782         * dbus/dbus-watch.c (dbus_watch_get_flags):
12783         Add note in the docs that ERROR or HANGUP won't be returned
12784         and are assumed always on.
12785
12786         * glib/dbus-gmain.c (add_watch):
12787         Always add IO_ERR | IO_HUP
12788
12789         * dbus/dbus-message.h:
12790         Add semicolon after dbus_message_iter_get_string_array().
12791         Makes qt code build again
12792
12793 2003-02-01  Anders Carlsson  <andersca@codefactory.se>
12794
12795         * bus/driver.c: (create_unique_client_name),
12796         (bus_driver_handle_hello):
12797         Don't take a name, just use a numeric id to identify
12798         each client.
12799
12800         * dbus/Makefile.am:
12801         * dbus/dbus-bus.c: (dbus_bus_register_client),
12802         (dbus_bus_acquire_service), (dbus_bus_service_exists):
12803         * dbus/dbus-bus.h:
12804         Add new convenience functions for communicating with the bus.
12805
12806         * dbus/dbus-message.h:
12807
12808         * dbus/dbus-protocol.h:
12809         Fix a typo.
12810
12811 2003-02-01  Alexander Larsson  <alexl@redhat.com>
12812
12813         * dbus/dbus-message.c (dbus_message_append_fields):
12814         Add some more doc comments.
12815
12816 2003-02-01  Havoc Pennington  <hp@pobox.com>
12817
12818         * dbus/dbus-break-loader.c (randomly_modify_length): change
12819         a 4-byte value in the message as if it were a length
12820
12821         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): don't set
12822         execute bit on saved files
12823
12824 2003-02-01  Havoc Pennington  <hp@pobox.com>
12825
12826         * dbus/dbus-break-loader.c (main): new program to find messages
12827         that break the loader.
12828
12829         * dbus/dbus-sysdeps.c (_dbus_string_append_uint): new function
12830         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): new function
12831
12832         * dbus/dbus-string.c (_dbus_string_set_byte): new
12833
12834 2003-01-31  Havoc Pennington  <hp@pobox.com>
12835
12836         * dbus/dbus-message.c: refactor the test code to be more general,
12837         in preparation for writing a "randomly permute test cases to
12838         try to break the loader" program.
12839
12840 2003-01-31  Havoc Pennington  <hp@pobox.com>
12841
12842         * doc/dbus-specification.sgml: work on the specification
12843
12844         * dbus/dbus-message.c (_dbus_message_loader_return_buffer): check
12845         the protocol version of the message.
12846
12847         * dbus/dbus-protocol.h: drop special _REPLY names, the spec
12848         no longer specifies that.
12849         (DBUS_SERVICE_REPLY_SERVICE_EXISTS): fix flags (1/2/4/8 not
12850         1/2/3/4)
12851
12852         * dbus/dbus-marshal.c (_dbus_marshal_get_arg_end_pos): add missing
12853         "break" for DBUS_TYPE_NIL, remove @todo
12854
12855 2003-01-31  Havoc Pennington  <hp@pobox.com>
12856
12857         * dbus/dbus-message.c (dbus_message_set_is_error_reply): rename
12858         just set_is_error/get_is_error as this is a commonly-used
12859         function, and write docs.
12860
12861 2003-01-31  Anders Carlsson  <andersca@codefactory.se>
12862
12863         * dbus/dbus-address.c: (dbus_address_entry_free):
12864         Free key and value lists.
12865
12866         * dbus/dbus-internals.c: (_dbus_type_to_string):
12867         Add the types we didn't have.
12868
12869         * dbus/dbus-marshal.c: (_dbus_marshal_get_arg_end_pos),
12870         (_dbus_marshal_validate_arg):
12871         Add NIL types.
12872
12873         * dbus/dbus-message.c: (dbus_message_set_sender):
12874         Remove todo about being able to set sender to NULL.
12875
12876         (dbus_message_set_is_error_reply),
12877         (dbus_message_get_is_error_reply):
12878         * dbus/dbus-message.h:
12879         New functions.
12880
12881         * dbus/dbus-protocol.h:
12882         Add error reply flag.
12883
12884         * test/data/valid-messages/opposite-endian.message:
12885         Add NIL type to test.
12886
12887 2003-01-31  Havoc Pennington  <hp@pobox.com>
12888
12889         * doc/dbus-specification.sgml: fully specify the header.  Add
12890         flags and major protocol version, and change header/body len to
12891         unsigned.
12892
12893         * dbus/dbus-message-builder.c (append_saved_length): append length
12894         as uint32
12895
12896         * dbus/dbus-message.c (dbus_message_create_header): change header
12897         length and body length to unsigned. Add the new fields from the
12898         spec
12899         (_dbus_message_loader_return_buffer): unsigned header/body len
12900
12901 2003-01-30  Havoc Pennington  <hp@pobox.com>
12902
12903         * dbus/dbus-auth.c: rework to use only REJECTED, no
12904         MECHANISMS
12905
12906         * doc/dbus-sasl-profile.txt: drop MECHANISMS and just
12907         use REJECTED, suggested by Mark McLoughlin
12908
12909 2003-01-30  Havoc Pennington  <hp@pobox.com>
12910
12911         * dbus/dbus-server.c (dbus_server_listen): @todo about how we need
12912         a better way to report errors here. e.g.  "unix address lacks
12913         path" or something. also "no such file" when the path doesn't
12914         exist, etc.
12915
12916         * dbus/dbus-address.c (dbus_address_entries_free): add @todo about
12917         leaking list nodes
12918         (dbus_parse_address): add @todo about documenting address format,
12919         and allowing , and ; to be escaped
12920
12921 2003-01-30  Anders Carlsson  <andersca@codefactory.se>
12922
12923         * dbus/Makefile.am:
12924         Add dbus-address.[ch]
12925
12926         * dbus/dbus-address.c: (dbus_address_entry_free),
12927         (dbus_address_entries_free), (create_entry),
12928         (dbus_address_entry_get_method), (dbus_address_entry_get_value),
12929         (dbus_parse_address), (_dbus_address_test):
12930         * dbus/dbus-address.h:
12931         New files for dealing with address parsing.
12932
12933         * dbus/dbus-connection.c:
12934         Document timeout functions.
12935
12936         * dbus/dbus-message.c:
12937         Document dbus_message_new_from_message.
12938
12939         * dbus/dbus-server-debug.c:
12940         Document.
12941
12942         * dbus/dbus-server.c: (dbus_server_listen):
12943         Parse address and use correct server implementation.
12944
12945         * dbus/dbus-string.c: (_dbus_string_find_to), (_dbus_string_test):
12946         * dbus/dbus-string.h:
12947         New function with test.
12948
12949         * dbus/dbus-test.c: (dbus_internal_symbol_do_not_use_run_tests):
12950         * dbus/dbus-test.h:
12951         Add address tests.
12952
12953         * dbus/dbus-transport-debug.c:
12954         Document.
12955
12956         * dbus/dbus-transport.c: (_dbus_transport_open):
12957         Parse address and use correct transport implementation.
12958
12959 2003-01-30  Havoc Pennington  <hp@pobox.com>
12960
12961         * dbus/dbus-message.c: use message->byte_order instead of
12962         DBUS_COMPILER_BYTE_ORDER throughout.
12963         (dbus_message_create_header): pad header to align the
12964         start of the body of the message to 8-byte boundary
12965
12966         * dbus/dbus-marshal.h: make all the demarshalers take const
12967         DBusString arguments.
12968
12969         * dbus/dbus-message.c (_dbus_message_loader_return_buffer):
12970         validate message args here, so we don't have to do slow validation
12971         later, and so we catch bad messages as they are incoming. Also add
12972         better checks on header_len and body_len. Also fill in
12973         message->byte_order
12974
12975         * dbus/dbus-string.c (_dbus_string_validate_utf8): new (not
12976         implemented properly)
12977         (_dbus_string_validate_nul): new function to check all-nul
12978
12979         * dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): rename
12980         get_arg_end_pos and remove all validation
12981         (_dbus_marshal_validate_arg): actually do validation here.
12982
12983 2003-01-29  Havoc Pennington  <hp@pobox.com>
12984
12985         * dbus/dbus-message.c (check_message_handling): fix assertion
12986         failure on set_client_serial
12987
12988 2003-01-28  Havoc Pennington  <hp@pobox.com>
12989
12990         * dbus/dbus-server-debug.c: Add doc section comments
12991
12992         * dbus/dbus-transport-debug.c: add doc section comments
12993
12994 2003-01-28  Havoc Pennington  <hp@redhat.com>
12995
12996         * dbus/dbus-string.c (_dbus_string_base64_decode): append bytes in
12997         the reverse order from how I had it
12998         (_dbus_string_base64_encode): reverse encoding order. I was
12999         basically byteswapping everything during encoding.
13000
13001 2003-01-28  Anders Carlsson  <andersca@codefactory.se>
13002
13003         * dbus/dbus-connection-internal.h:
13004         * dbus/dbus-connection.c: (_dbus_connection_add_timeout),
13005         (_dbus_connection_remove_timeout):
13006         Add functions for adding and removing timeouts.
13007
13008         * dbus/dbus-message.c: (dbus_message_new_from_message):
13009         Add new function that takes a message and creates an exact
13010         copy of it, but with the refcount set to 1.
13011         (check_message_handling):
13012         Fix build error.
13013
13014         * dbus/dbus-server-protected.h:
13015         * dbus/dbus-server.c: (_dbus_server_init_base),
13016         (_dbus_server_finalize_base), (_dbus_server_add_timeout),
13017         (dbus_server_set_timeout_functions):
13018         (_dbus_server_remove_timeout):
13019         New functions so that a server can add and remove timeouts.
13020
13021         (dbus_server_listen):
13022         Add commented out call to dbus_server_debug_new.
13023
13024         * dbus/dbus-timeout.c: (_dbus_timeout_new):
13025         Actually set the handler, doh.
13026
13027         * dbus/dbus-transport.c: (_dbus_transport_open):
13028         Add commented out call to dbus_transport_debug_client_new.
13029
13030         * dbus/Makefile.am:
13031         Add dbus-transport-debug.[ch] and dbus-server-debug.[ch]
13032
13033 2003-01-28  Havoc Pennington  <hp@pobox.com>
13034
13035         * dbus/dbus-message.c (check_message_handling): function to check
13036         on the loaded message, iterates over it etc.
13037
13038 2003-01-28  Havoc Pennington  <hp@pobox.com>
13039
13040         * test/Makefile.am (dist-hook): fix make distdir
13041
13042         * dbus/Makefile.am (TESTS_ENVIRONMENT): fix make check
13043
13044 2003-01-27  Havoc Pennington  <hp@pobox.com>
13045
13046         * dbus/dbus-mempool.c (time_for_size): replace printf with
13047         _dbus_verbose
13048
13049         * dbus/dbus-message-builder.c (_dbus_message_data_load): allow
13050         empty lines; fix the SAVE_LENGTH stuff to be
13051         START_LENGTH/END_LENGTH so it actually works; couple other
13052         bugfixes
13053
13054         * test/Makefile.am (dist-hook): add dist-hook for .message files
13055
13056         * dbus/dbus-string.c (DBUS_STRING_COPY_PREAMBLE): source of a copy
13057         can be constant or locked.
13058         (_dbus_string_free): allow freeing a const string as
13059         documented/intended
13060
13061         * dbus/dbus-sysdeps.c (_dbus_concat_dir_and_file): utility
13062
13063         * dbus/dbus-test-main.c (main): take an argument which is the
13064         directory containing test data
13065
13066         * dbus/dbus-message.c (_dbus_message_test): pass a test_data_dir
13067         argument to this and load all the messages in test/data/
13068         checking that they can be loaded or not loaded as appropriate.
13069
13070 2003-01-27  Anders Carlsson  <andersca@codefactory.se>
13071
13072         * bus/dispatch.c: (bus_dispatch_message_handler):
13073         Dispatch messages sent to services.
13074
13075         * bus/driver.c: (bus_driver_send_service_deleted),
13076         (bus_driver_send_service_created), (bus_driver_send_service_lost),
13077         (bus_driver_send_service_acquired):
13078         Add helper functions for sending service related messages.
13079
13080         (bus_driver_send_welcome_message):
13081         Send HELLO_REPLY instead of WELCOME.
13082
13083         (bus_driver_handle_list_services):
13084         Send LIST_SERVICES_REPLY instead of SERVICES.
13085
13086         (bus_driver_handle_own_service),
13087         (bus_driver_handle_service_exists):
13088         New message handlers.
13089
13090         (bus_driver_handle_message):
13091         Invoke new message handlers.
13092
13093         (bus_driver_remove_connection):
13094         Don't remove any services here since that's done automatically
13095         by bus_service_remove_owner now.
13096
13097         * bus/driver.h:
13098         New function signatures.
13099
13100         * bus/services.c: (bus_service_add_owner):
13101         Send ServiceAcquired message if we're the only primary owner.
13102
13103         (bus_service_remove_owner):
13104         Send ServiceAcquired/ServiceLost messages.
13105
13106         (bus_service_set_prohibit_replacement),
13107         (bus_service_get_prohibit_replacement):
13108         Functions for setting prohibit replacement.
13109
13110         (bus_service_has_owner):
13111         New function that checks if a connection is in the owner queue of
13112         a certain service.
13113
13114         * bus/services.h:
13115         Add new function signatures.
13116
13117         * dbus/dbus-list.c: (_dbus_list_test):
13118         Add tests for _dbus_list_remove_last and traversing the list backwards.
13119
13120         * dbus/dbus-list.h:
13121         Fix a typo in _dbus_list_get_prev_link, if we're at the first element we can't
13122         go any further, so return NULL then.
13123
13124         * dbus/dbus-protocol.h:
13125         Add new messages, service flags and service replies.
13126
13127 2003-01-26  Havoc Pennington  <hp@pobox.com>
13128
13129         * dbus/dbus-message-builder.c: implement, completely untested.
13130
13131         * test/data/*: add data to be used in testing.
13132         ".message" files are our simple loadable text format.
13133         ".message-raw" will be binary dumps of messages.
13134
13135         * dbus/dbus-string.c (_dbus_string_starts_with_c_str): new
13136
13137 2003-01-26  Havoc Pennington  <hp@pobox.com>
13138
13139         * dbus/dbus-sysdeps.c (_dbus_file_get_contents): new function
13140
13141         * dbus/dbus-errors.c (dbus_result_to_string): add
13142         file errors
13143
13144         * dbus/dbus-message-builder.c: new file, will contain code to load
13145         up messages from files. Not implemented yet.
13146
13147 2003-01-26  Havoc Pennington  <hp@pobox.com>
13148
13149         * dbus/dbus-message.c (dbus_message_set_sender): support deleting
13150         the sender by setting to NULL
13151
13152 2003-01-26  Havoc Pennington  <hp@pobox.com>
13153
13154         The unit tests pass, but otherwise untested.  If it breaks, the
13155         tests should have been better. ;-)
13156
13157         * bus/driver.c (bus_driver_handle_hello): return if we disconnect
13158         the connection.
13159
13160         * dbus/dbus-message.c: redo everything so we maintain
13161         message->header as the only copy of the various fields.
13162         This avoids the possibility of out-of-memory in some cases,
13163         for example dbus_message_lock() can't run out of memory anymore,
13164         and avoids extra copying. Figured I may as well go ahead and do
13165         this since it was busted for dbus_message_lock to not return
13166         failure on OOM, and dbus_message_write_header was totally
13167         unchecked for OOM. Also fixed some random other bugs.
13168
13169         * dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): verify
13170         that strings are nul-terminated. Also, end_pos can be equal
13171         to string length just not greater than, I think.
13172         (_dbus_marshal_set_int32): new function
13173         (_dbus_marshal_set_uint32): new function
13174         (_dbus_marshal_set_string): new function
13175
13176         * dbus/dbus-connection.c (_dbus_connection_new_for_transport): fix
13177         a warning, init timeout_list to NULL
13178         (dbus_connection_send_message): don't use uninitialized variable
13179         "serial"
13180
13181         * dbus/dbus-string.c (_dbus_string_replace_len): new function
13182
13183 2003-01-26  Anders Carlsson  <andersca@codefactory.se>
13184
13185         * bus/driver.c: (bus_driver_handle_hello),
13186         (bus_driver_send_welcome_message):
13187         Plug leaks
13188
13189 2003-01-26  Anders Carlsson  <andersca@codefactory.se>
13190
13191         * dbus/dbus-auth.c: (process_auth), (_dbus_auth_unref):
13192         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport),
13193         (dbus_connection_unref):
13194         * dbus/dbus-marshal.c: (_dbus_marshal_test):
13195         * dbus/dbus-message.c: (dbus_message_unref),
13196         Plug memory leaks.
13197
13198         (dbus_message_get_fields):
13199         Remove debugging printout.
13200
13201         (_dbus_message_loader_return_buffer):
13202         Don't store the header string.
13203
13204         (_dbus_message_test):
13205         Plug leaks.
13206
13207 2003-01-26  Richard Hult  <rhult@codefactory.se>
13208
13209         * glib/dbus-gmain.c (dbus_connection_dispatch): Traverse a copy of
13210         the file descriptor list, since it can change under us.
13211
13212 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
13213
13214         * glib/dbus-gmain.c: (dbus_connection_prepare),
13215         (dbus_connection_check), (dbus_connection_dispatch), (add_watch),
13216         (remove_watch), (dbus_connection_hookup_with_g_main):
13217         Rewrite the glib handling to use its own GSource instead of a
13218         GIOChannel so we can catch messages put in the queue while waiting
13219         for a reply.
13220
13221 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
13222
13223         * bus/Makefile.am:
13224         * bus/connection.c: (connection_disconnect_handler),
13225         (connection_watch_callback), (bus_connection_setup):
13226         * bus/dispatch.c: (send_one_message),
13227         (bus_dispatch_broadcast_message), (bus_dispatch_message_handler),
13228         (bus_dispatch_add_connection), (bus_dispatch_remove_connection):
13229         * bus/dispatch.h:
13230         * bus/driver.c: (bus_driver_send_service_deleted),
13231         (bus_driver_send_service_created), (bus_driver_handle_hello),
13232         (bus_driver_send_welcome_message),
13233         (bus_driver_handle_list_services), (bus_driver_remove_connection),
13234         (bus_driver_handle_message):
13235         * bus/driver.h:
13236         Refactor code, put the message dispatching in its own file. Use
13237         _DBUS_HANDLE_OOM. Also send ServiceDeleted messages when a client
13238         is disconnected.
13239
13240 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
13241
13242         * dbus/dbus-internals.h:
13243         Add _DBUS_HANDLE_OOM macro, it doesn't do anything currently.
13244
13245         * dbus/dbus-message.c: (dbus_message_get_sender):
13246         * dbus/dbus-message.h:
13247         Implement dbus_message_get_sender.
13248
13249         * dbus/dbus-protocol.h:
13250         Add message and service defines.
13251
13252 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
13253
13254         * dbus/dbus-connection.c: (dbus_connection_send_message):
13255         * dbus/dbus-message-internal.h:
13256         * dbus/dbus-message.c: (_dbus_message_get_client_serial),
13257         (dbus_message_write_header):
13258         Remove _dbus_messag_unlock and don't set the client serial on a
13259         message if one already exists.
13260
13261 2003-01-24  Havoc Pennington  <hp@pobox.com>
13262
13263         * dbus/dbus-list.c (alloc_link): put a thread lock on the global
13264         list_pool
13265
13266         * bus/driver.c (bus_driver_handle_list_services): fix a leak
13267         on OOM
13268
13269 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
13270
13271         * dbus/dbus-list.c: (alloc_link), (free_link):
13272         Use a memory pool for the links.
13273
13274 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
13275
13276         * bus/connection.c: (bus_connection_foreach):
13277         * bus/connection.h:
13278         Add new bus_connection_foreach function.
13279
13280         * bus/driver.c: (send_one_message), (bus_driver_broadcast_message):
13281         Add function that broadcasts a message to all clients.
13282
13283         (bus_driver_send_service_created), (bus_driver_handle_hello),
13284         (bus_driver_send_welcome_message),
13285         (bus_driver_handle_list_services), (bus_driver_message_handler):
13286         Implement functions that take care of listing services, and notifying
13287         clients when new services are created.
13288
13289         * bus/services.c: (bus_services_list):
13290         * bus/services.h:
13291         Add new function that returns an array of strings with the currently
13292         registered services.
13293
13294         * glib/dbus-glib.h:
13295         * glib/dbus-gmain.c:
13296         Update copyright year.
13297
13298 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
13299
13300         * dbus/dbus-connection.c: (dbus_connection_send_message):
13301         Unlock the message in case it was sent earlier.
13302
13303         (dbus_connection_send_message_with_reply_and_block):
13304         Remove the reply message from the list.
13305
13306         * dbus/dbus-marshal.c: (_dbus_demarshal_string_array):
13307         Set array_len and new_pos correctly.
13308
13309         (_dbus_marshal_test):
13310         Remove debug output.
13311
13312         * dbus/dbus-message-internal.h:
13313         * dbus/dbus-message.c: (_dbus_message_get_reply_serial):
13314         New function that returns the reply serial.
13315
13316         (_dbus_message_unlock):
13317         New function that unlocks a message and resets its header.
13318
13319         (dbus_message_append_string_array),
13320         (dbus_message_get_fields_valist),
13321         (dbus_message_iter_get_field_type),
13322         (dbus_message_iter_get_string_array),
13323         (dbus_message_get_fields),
13324         (dbus_message_append_fields_valist):
13325         Handle string arrays.
13326
13327         (dbus_message_set_sender):
13328         Make this function public since the bus daemon needs it.
13329
13330         (decode_header_data):
13331         Set the reply serial to -1 initially.
13332
13333         * dbus/dbus-message.h:
13334         Add dbus_message_set_sender.
13335
13336 2003-01-24  Havoc Pennington  <hp@pobox.com>
13337
13338         * doc/dbus-specification.sgml: add some stuff
13339
13340 2003-01-22  Havoc Pennington  <hp@pobox.com>
13341
13342         * doc/dbus-specification.sgml: Start to document the protocol.
13343
13344 2003-01-22  Havoc Pennington  <hp@pobox.com>
13345
13346         * dbus/dbus-connection.c
13347         (dbus_connection_send_message_with_reply_and_block): add some @todo
13348
13349         * bus/driver.c (bus_driver_add_connection): add a FIXME about memleak
13350
13351 2003-01-21  Havoc Pennington  <hp@pobox.com>
13352
13353         (patch untested because can't compile)
13354
13355         * bus/driver.c (create_unique_client_name): make this function
13356         never recycle client names. Also, caller should initialize
13357         the DBusString.
13358
13359         * dbus/dbus-sysdeps.c (_dbus_get_current_time): new function
13360
13361 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
13362
13363         * dbus/dbus-marshal.c: (_dbus_marshal_double),
13364         (_dbus_marshal_int32), (_dbus_marshal_uint32),
13365         (_dbus_marshal_int32_array), (_dbus_marshal_uint32_array),
13366         (_dbus_marshal_double_array), (_dbus_marshal_string_array),
13367         (_dbus_demarshal_int32_array), (_dbus_demarshal_uint32_array),
13368         (_dbus_demarshal_double_array), (_dbus_demarshal_string_array),
13369         (_dbus_marshal_get_field_end_pos), (_dbus_marshal_test):
13370         * dbus/dbus-marshal.h:
13371         * dbus/dbus-protocol.h:
13372         Add support for marshalling and demarshalling integer, double
13373         and string arrays.
13374
13375 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
13376
13377         * bus/Makefile.am:
13378         Add driver.[ch]
13379
13380         * bus/connection.c: (connection_disconnect_handler):
13381         Remove the connection from the bus driver's list.
13382
13383         (connection_watch_callback): Dispatch messages.
13384
13385         (free_connection_data): Free connection name.
13386
13387         (bus_connection_setup): Add connection to the bus driver's list.
13388         (bus_connection_remove_owned_service):
13389         (bus_connection_set_name), (bus_connection_get_name):
13390         Add functions for setting and getting the connection's name.
13391
13392         * bus/connection.h:
13393         Add function headers.
13394
13395         * bus/driver.c: (create_unique_client_name),
13396         (bus_driver_handle_hello_message),
13397         (bus_driver_send_welcome_message), (bus_driver_message_handler),
13398         (bus_driver_add_connection), (bus_driver_remove_connection):
13399         * bus/driver.h:
13400         * bus/main.c:
13401         * bus/services.c: (bus_service_free):
13402         * bus/services.h:
13403         New file that handles communication and registreation with the bus
13404         itself.
13405
13406 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
13407
13408         * dbus/dbus-connection.c: (dbus_connection_send_message):
13409         Add a new client_serial parameter.
13410
13411         (dbus_connection_send_message_with_reply):
13412         Remove a @todo since we've implemented the blocking function.
13413
13414         (dbus_connection_send_message_with_reply_and_block):
13415         New function that sends a message and waits for a reply and
13416         then returns the reply.
13417
13418         * dbus/dbus-connection.h:
13419         Add new functions.
13420
13421         * dbus/dbus-errors.c: (dbus_result_to_string):
13422         * dbus/dbus-errors.h:
13423         Add new DBUS_RESULT.
13424
13425         * dbus/dbus-message-internal.h:
13426         * dbus/dbus-message.c: (_dbus_message_get_reply_serial),
13427         (_dbus_message_set_sender), (dbus_message_write_header),
13428         (dbus_message_new_reply), (decode_header_data),
13429         (_dbus_message_loader_return_buffer), (_dbus_message_test):
13430         * dbus/dbus-message.h:
13431         Add new functions that set the reply serial and sender.
13432         Also marshal and demarshal them correctly and add test.
13433
13434         * dbus/dbus-protocol.h:
13435         Add new DBUS_MESSAGE_TYPE_SENDER.
13436
13437         * glib/dbus-glib.h:
13438         * glib/dbus-gmain.c: (watch_callback), (free_callback_data),
13439         (add_watch), (remove_watch), (add_timeout), (remove_timeout),
13440         (dbus_connection_hookup_with_g_main):
13441         * glib/test-dbus-glib.c: (main):
13442         Rewrite to use GIOChannel and remove the GSource crack.
13443
13444         * test/echo-client.c: (main):
13445         * test/watch.c: (check_messages):
13446         Update for changed APIs
13447
13448 2003-01-19  Anders Carlsson  <andersca@codefactory.se>
13449
13450         * dbus/Makefile.am: Add dbus-timeout.[cħ]
13451
13452         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport):
13453         Create a DBusTimeoutList.
13454         (dbus_connection_set_timeout_functions): Add new function to
13455         set timeout callbacks
13456
13457         * dbus/dbus-connection.h: Add public DBusTimeout API.
13458
13459         * dbus/dbus-message.c: (dbus_message_get_service):
13460         * dbus/dbus-message.h:  New function.
13461
13462         * dbus/dbus-server.c: Fix small doc typo.
13463
13464         * dbus/dbus-timeout.[ch]: New files for mainloop timeouts.
13465
13466 2003-01-19  Anders Carlsson  <andersca@codefactory.se>
13467
13468         * dbus/dbus-string.c (_dbus_string_move_len): Don't delete all
13469         of the string, just as long as specified.
13470
13471 2003-01-19  Havoc Pennington  <hp@pobox.com>
13472
13473         * dbus/dbus-connection.c (dbus_connection_get_is_authenticated):
13474         new function
13475
13476         * dbus/dbus-server.c (dbus_server_set_max_connections)
13477         (dbus_server_get_max_connections, dbus_server_get_n_connections):
13478         keep track of current number of connections, and add API for
13479         setting a max (but haven't implemented enforcing the max yet)
13480
13481 2003-01-18  Havoc Pennington  <hp@pobox.com>
13482
13483         * dbus/dbus-transport-unix.c (unix_do_iteration): only do the
13484         reading/writing if read_watch != NULL or write_watch != NULL.
13485
13486         * dbus/dbus-message.c (_dbus_message_loader_return_buffer): fix
13487         the message loader code to actually load message->header and
13488         message->body into the newly-created message.
13489
13490         * dbus/dbus-transport-unix.c (check_write_watch): fix a mem leak
13491         in OOM case
13492
13493         * dbus/dbus-connection.c (dbus_connection_set_max_message_size)
13494         (dbus_connection_get_max_message_size)
13495         (dbus_connection_set_max_live_messages_size)
13496         (dbus_connection_get_max_live_messages_size): implement some
13497         resource limitation functions
13498
13499         * dbus/dbus-resources.c: new file implementing some of the
13500         resource limits stuff
13501
13502         * dbus/dbus-message.c (dbus_message_iter_get_byte_array): add
13503         missing docs, add @todo to handle OOM etc.
13504
13505         * dbus/dbus-marshal.c (_dbus_demarshal_byte_array): add missing
13506         docs
13507
13508 2003-01-18  Havoc Pennington  <hp@pobox.com>
13509
13510         * dbus/dbus-connection.c (dbus_connection_unref): disconnect the
13511         connection if it hasn't been already.
13512
13513         * dbus/dbus-connection.h: kill off the idea of an ErrorFunction,
13514         replace with DisconnectFunction.
13515
13516 2003-01-18  Havoc Pennington  <hp@pobox.com>
13517
13518         Building --disable-verbose-mode --disable-asserts --disable-tests
13519         cuts the library from 112K to 45K or so
13520
13521         * configure.in: check for varargs macro support,
13522         add --enable-verbose-mode, --enable-asserts.
13523
13524         * dbus/dbus-internals.h (_dbus_assert): support
13525         DBUS_DISABLE_ASSERT
13526         (_dbus_verbose): support DBUS_ENABLE_VERBOSE_MODE
13527
13528 2003-01-18  Havoc Pennington  <hp@pobox.com>
13529
13530         * dbus/dbus-test.c: include config.h so that tests actually run
13531
13532         * dbus/dbus-string.c: add assertions that stuff is 8-byte aligned,
13533         so the failure mode when that assumption fails will be plenty
13534         obvious.
13535
13536 2003-01-18  Havoc Pennington  <hp@pobox.com>
13537
13538         * configure.in: default --enable-tests to $USE_MAINTAINER_MODE
13539
13540         * dbus/Makefile.am: fix it up so dubs-test-main.c is included in
13541         the distribution
13542
13543         * test/Makefile.am: don't use special variable "TESTS" for echo-*
13544         since we don't want to use those in make check
13545
13546 2003-01-15  Havoc Pennington  <hp@redhat.com>
13547
13548         Release 0.2
13549
13550         * NEWS: update
13551
13552 2003-01-15  Havoc Pennington  <hp@redhat.com>
13553
13554         * test/Makefile.am: fix so that test source code ends up in the
13555         distribution on make distcheck
13556
13557 2003-01-15  Havoc Pennington  <hp@redhat.com>
13558
13559         Release 0.1.
13560
13561         * NEWS: update
13562
13563 2003-01-15  Havoc Pennington  <hp@redhat.com>
13564
13565         * dbus/dbus-test.c (dbus_internal_symbol_do_not_use_run_tests):
13566         fix build when --disable-tests
13567
13568         * Makefile.am (EXTRA_DIST): put HACKING in here
13569
13570         * HACKING: document procedure for making a tarball release.
13571
13572 2003-01-14  Anders Carlsson  <andersca@codefactory.se>
13573
13574         * bus/connection.c: (connection_error_handler),
13575         (bus_connection_setup):
13576         * bus/main.c: (main):
13577         Make sure that the DBusConnectionData struct is NULLed
13578         out to prevent a segfault.
13579
13580         * dbus/dbus-errors.c: (dbus_result_to_string):
13581         * dbus/dbus-errors.h:
13582         * dbus/dbus-message.c: (dbus_message_get_fields),
13583         (dbus_message_get_fields_valist), (_dbus_message_test):
13584         * dbus/dbus-message.h:
13585         Make dbus_message_get_fields return a result code so we can
13586         track invalid fields as well as oom.
13587
13588 2003-01-11  Havoc Pennington  <hp@pobox.com>
13589
13590         * configure.in: change --enable-test/--enable-ansi action-if-given
13591         to enable_foo=$enableval instead of enable_foo=yes
13592
13593 2003-01-08  Havoc Pennington  <hp@pobox.com>
13594
13595         * dbus/dbus-string.c (_dbus_string_align_length): new function
13596
13597         * dbus/dbus-test-main.c: move main() for test app here
13598         * dbus/dbus-test.c
13599         (dbus_internal_symbol_do_not_use_run_tests): we have to export a
13600         symbol to run tests, because dbus-test isn't in the main
13601         library
13602
13603         Code review nitpicks.
13604
13605         * dbus/dbus-message.c (dbus_message_write_header): add newlines
13606         for people with narrow emacs ;-). Assert client_serial was filled
13607         in. Assert message->name != NULL.
13608         (dbus_message_append_fields): have "first_field_type" arg separate
13609         from va list, needed for C++ binding that also uses varargs IIRC
13610         and helps with type safety
13611         (dbus_message_new): add @todo about using DBusString to store
13612         service/name internally
13613         (dbus_message_new): don't leak ->service and ->name on OOM later
13614         in the function
13615         (dbus_message_unref): free the service name
13616         (dbus_message_get_fields): same change to varargs
13617         i.e. first_field_type
13618         (_dbus_message_loader_return_buffer): assert that the message data
13619         is aligned (if not it's a bug in our code). Put in verbose griping
13620         about why we set corrupted = TRUE.
13621         (decode_header_data): add FIXME that char* is evil.  Was going to
13622         add FIXME about evil locale-specific string.h strncmp, but just
13623         switched to wacky string-as-uint32 optimization. Move check for
13624         "no room for field name" above get_const_data_len() to avoid
13625         assertion failure in get_const_data_len if we have trailing 2
13626         bytes or the like. Check for service and name fields being
13627         provided twice. Don't leak service/name on error. Require field
13628         names to be aligned to 4 bytes.
13629
13630         * dbus/dbus-marshal.c: move byte swap stuff to header
13631         (_dbus_pack_int32): uscore-prefix
13632         (_dbus_unpack_int32): uscore-prefix
13633         (_dbus_unpack_uint32): export
13634         (_dbus_demarshal_string): add @todo complaining about use of
13635         memcpy()
13636         (_dbus_marshal_get_field_end_pos): add @todo about bad error
13637         handling allowing corrupt data to go unchecked
13638
13639 2003-01-08  Havoc Pennington  <hp@redhat.com>
13640
13641         * dbus/dbus-transport-unix.c (unix_do_iteration): add read/write
13642         to the select() as needed for authentication. (should be using
13643         _dbus_poll() not select, but for another day)
13644
13645         * dbus/dbus.h: include dbus/dbus-protocol.h
13646
13647 2003-01-08  Anders Carlsson  <andersca@codefactory.se>
13648
13649         * dbus/Makefile.am (dbusinclude_HEADERS): Install
13650         dbus-connection.h
13651
13652 2003-01-08  Anders Carlsson  <andersca@codefactory.se>
13653
13654         * dbus/dbus-internals.c: (_dbus_type_to_string):
13655         New function that returns a string describing a type.
13656
13657         * dbus/dbus-marshal.c: (_dbus_demarshal_byte_array):
13658         * dbus/dbus-marshal.h:
13659         * dbus/dbus-message.c: (dbus_message_get_fields_valist),
13660         (dbus_message_iter_get_field_type), (dbus_message_iter_get_double),
13661         (dbus_message_iter_get_byte_array):
13662         * dbus/dbus-message.h:
13663         Add new convenience functions for appending and getting message fields.
13664         Also add demarshalling routines for byte arrays.
13665
13666 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
13667
13668         * dbus/dbus-connection-internal.h:
13669         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport),
13670         (_dbus_connection_get_next_client_serial),
13671         (dbus_connection_send_message):
13672         * dbus/dbus-internals.h:
13673         * dbus/dbus-marshal.c: (unpack_uint32), (dbus_unpack_int32),
13674         (dbus_pack_int32), (_dbus_marshal_double), (_dbus_marshal_int32),
13675         (_dbus_marshal_uint32), (_dbus_demarshal_double),
13676         (_dbus_demarshal_int32), (_dbus_demarshal_uint32),
13677         (_dbus_demarshal_string), (_dbus_marshal_get_field_end_pos),
13678         (_dbus_verbose_bytes), (_dbus_marshal_test):
13679         * dbus/dbus-marshal.h:
13680         * dbus/dbus-message-internal.h:
13681         * dbus/dbus-message.c: (_dbus_message_set_client_serial),
13682         (dbus_message_write_header), (_dbus_message_lock),
13683         (dbus_message_new), (dbus_message_ref), (dbus_message_unref),
13684         (dbus_message_get_name), (dbus_message_append_int32),
13685         (dbus_message_append_uint32), (dbus_message_append_double),
13686         (dbus_message_append_string), (dbus_message_append_byte_array),
13687         (dbus_message_get_fields_iter), (dbus_message_iter_ref),
13688         (dbus_message_iter_unref), (dbus_message_iter_has_next),
13689         (dbus_message_iter_next), (dbus_message_iter_get_field_type),
13690         (dbus_message_iter_get_string), (dbus_message_iter_get_int32),
13691         (dbus_message_iter_get_uint32), (dbus_message_iter_get_double),
13692         (decode_header_data), (_dbus_message_loader_return_buffer),
13693         (message_iter_test), (_dbus_message_test):
13694         * dbus/dbus-message.h:
13695         * dbus/dbus-protocol.h:
13696         * dbus/dbus-test.c: (main):
13697         * dbus/dbus-test.h:
13698         * glib/test-dbus-glib.c: (message_handler), (main):
13699         * test/echo-client.c: (main):
13700         * test/watch.c: (check_messages):
13701         Make messages sendable and receivable for real.
13702
13703 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
13704
13705         * dbus/dbus-marshal.c: (_dbus_marshal_double),
13706         (_dbus_marshal_string), (_dbus_marshal_byte_array):
13707         * dbus/dbus-message.c: (dbus_message_append_int32),
13708         (dbus_message_append_uint32), (dbus_message_append_double),
13709         (dbus_message_append_string), (dbus_message_append_byte_array):
13710         Handle OOM restoration.
13711
13712 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
13713
13714         * dbus/dbus-marshal.c: (_dbus_marshal_string),
13715         (_dbus_demarshal_string), (_dbus_marshal_test):
13716         * dbus/dbus-marshal.h:
13717         * dbus/dbus-message.c: (dbus_message_get_name),
13718         Document these functions.
13719
13720         (dbus_message_append_int32), (dbus_message_append_uint32),
13721         (dbus_message_append_double), (dbus_message_append_string),
13722         (dbus_message_append_byte_array):
13723         * dbus/dbus-message.h:
13724         Add functions for adding message fields of different types.
13725
13726         * dbus/dbus-protocol.h:
13727         Add the different types.
13728
13729 2003-01-05  Havoc Pennington  <hp@pobox.com>
13730
13731         * bus/connection.c: implement routines for handling connections,
13732         first thing is keeping a list of owned services on each connection
13733         and setting up watches etc.
13734
13735         * bus/services.c: implement a mapping from service names to lists
13736         of connections
13737
13738         * dbus/dbus-hash.c: add DBUS_HASH_POINTER
13739
13740         * dbus/dbus-threads.c (dbus_static_mutex_lock): add functions
13741         to use static mutexes for global data
13742
13743         * dbus/dbus-connection.c (dbus_connection_set_data): add new
13744         collection of functions to set/get application-specific data
13745         on the DBusConnection.
13746
13747 2003-01-04  Havoc Pennington  <hp@pobox.com>
13748
13749         * dbus/dbus-sysdeps.c (_dbus_sleep_milliseconds): new function
13750         (_dbus_poll): new function
13751
13752         * dbus/dbus-internals.h (_DBUS_STRUCT_OFFSET): new macro
13753         copied from GLib
13754
13755         * bus/loop.c: initial code for the daemon main loop
13756
13757 2003-01-04  Havoc Pennington  <hp@pobox.com>
13758
13759         * test/watch.c (error_handler): make it safe if the error handler
13760         is called multiple times (if we s/error handler/disconnect
13761         handler/ we should just guarantee it's called only once)
13762
13763         * dbus/dbus-transport.c (_dbus_transport_disconnect): call the
13764         error handler on disconnect (it's quite possible we should
13765         just change the error handler to a "disconnect handler," I'm
13766         not sure we have any other meaningful errors)
13767
13768         * configure.in: check for getpwnam_r
13769
13770         * dbus/dbus-transport.c, dbus/dbus-transport-unix.c,
13771         dbus/dbus-auth.c: add credentials support, add EXTERNAL auth
13772         mechanism as in SASL spec, using socket credentials
13773
13774         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): new function
13775         (_dbus_send_credentials_unix_socket): new function
13776
13777         * dbus/dbus-sysdeps.c (_dbus_accept_unix_socket): rename just
13778         dbus_accept()
13779         (_dbus_write): only check errno if <0 returned
13780         (_dbus_write_two): ditto
13781
13782 2003-01-02  Anders Carlsson  <andersca@codefactory.se>
13783
13784         * dbus/dbus-marshal.c: (_dbus_marshal_utf8_string),
13785         (_dbus_marshal_byte_array), (_dbus_demarshal_utf8_string),
13786         (_dbus_marshal_test):
13787         * dbus/dbus-marshal.h:
13788         Add _dbus_marshal_byte_array and rename _dbus_marshal_string
13789         to _dbus_marshal_utf8_string. Also fix some tests.
13790
13791 2002-12-28  Harri Porten  <porten@kde.org>
13792
13793         * configure.in: added check for C++ compiler and a very cheesy
13794         check for the Qt integration
13795
13796         * Makefile.am (SUBDIRS): compile qt subdir if support is enabled
13797
13798         * qt/Makefile.am: added
13799
13800         * qt/.cvsignore: added
13801
13802         * qt/dbus-qthread.cc, qt/dbus-qthread.cpp: renamed former to
13803         latter, added #ifdef QT_THREAD_SUPPORT guard.
13804
13805         * dbus/Makefile.am: added missing headers for make dist
13806
13807 2002-12-28  Kristian Rietveld  <kris@gtk.org>
13808
13809         * dbus/Makefile.am: fixup export-symbols-regex.
13810
13811 2002-12-27  Anders Carlsson  <andersca@codefactory.se>
13812
13813         * acinclude.m4: Add this file and put the
13814         PKG_CHECK_MODULE macro in it.
13815
13816 2002-12-27  Anders Carlsson  <andersca@codefactory.se>
13817
13818         * dbus/dbus-marshal.c: (_dbus_marshal_string),
13819         (_dbus_demarshal_double), (_dbus_demarshal_int32),
13820         (_dbus_demarshal_uint32), (_dbus_demarshal_string),
13821         (_dbus_marshal_test):
13822         Make the demarshalling routines align the pos argument.
13823         Add string marshalling tests and fix the obvious bugs
13824         discovered.
13825
13826 2002-12-26  Havoc Pennington  <hp@pobox.com>
13827
13828         * dbus/dbus-auth.c: fixes fixes fixes
13829
13830         * dbus/dbus-transport-unix.c: wire up support for
13831         encoding/decoding data on the wire
13832
13833         * dbus/dbus-auth.c (_dbus_auth_encode_data)
13834         (_dbus_auth_decode_data): append to target string
13835         instead of nuking it.
13836
13837 2002-12-26  Havoc Pennington  <hp@pobox.com>
13838
13839         * dbus/dbus-marshal.h (DBUS_COMPILER_BYTE_ORDER): #ifdef
13840         WORDS_BIGENDIAN then compiler byte order is DBUS_BIG_ENDIAN,
13841         doh
13842
13843         * dbus/dbus-marshal.c: Add macros to do int swapping in-place and
13844         avoid swap_bytes() overhead (ignoring possible assembly stuff for
13845         now). Main point is because I wanted unpack_uint32 to implement
13846         _dbus_verbose_bytes
13847         (_dbus_verbose_bytes): new function
13848
13849         * dbus/dbus-string.c (_dbus_string_validate_ascii): new function
13850
13851         * dbus/dbus-message.c (_dbus_message_loader_get_is_corrupted): add
13852         mechanism to handle a corrupt message stream
13853         (_dbus_message_loader_new): fix preallocation to only prealloc,
13854         not prelengthen
13855
13856         * dbus/dbus-string.c (_dbus_string_skip_blank): fix this function
13857         (_dbus_string_test): enhance tests for copy/move and fix the
13858         functions
13859
13860         * dbus/dbus-transport-unix.c: Hold references in more places to
13861         avoid reentrancy problems
13862
13863         * dbus/dbus-transport.c: ditto
13864
13865         * dbus/dbus-connection.c (dbus_connection_dispatch_message): don't
13866         leak reference count in no-message case
13867
13868         * test/watch.c (do_mainloop): handle adding/removing watches
13869         during iteration over the watches. Also, ref the connection/server
13870         stored on a watch, so we don't try to mangle a destroyed one.
13871
13872         * dbus/dbus-transport-unix.c (do_authentication): perform
13873         authentication
13874
13875         * dbus/dbus-auth.c (get_state): add a state
13876         AUTHENTICATED_WITH_UNUSED_BYTES and return it if required
13877         (_dbus_auth_get_unused_bytes): append the unused bytes
13878         to the passed in string, rather than prepend
13879
13880         * dbus/dbus-transport.c (_dbus_transport_init_base): create
13881         the auth conversation DBusAuth
13882
13883         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd)
13884         (_dbus_transport_new_for_domain_socket): when creating a
13885         transport, pass in whether it's a client-side or server-side
13886         transport so we know which DBusAuth to create
13887
13888 2002-12-03  Havoc Pennington  <hp@pobox.com>
13889
13890         * dbus/dbus-transport-unix.c (unix_finalize): finalize base
13891         _after_ finalizing the derived members
13892         (unix_connection_set): unref watch if we fail to add it
13893
13894         * dbus/dbus-connection.c (dbus_connection_unref): delete the
13895         transport first, so that the connection owned by the
13896         transport will be valid as the transport finalizes.
13897
13898         * dbus/dbus-transport-unix.c (unix_finalize): free the write_watch
13899         if necessary, and remove watches from the connection.
13900
13901         * dbus/dbus-watch.c (_dbus_watch_list_free): improve a comment
13902
13903 2002-12-26  Anders Carlsson  <andersca@codefactory.se>
13904
13905         * dbus/dbus-marshal.c: (_dbus_marshal_string),
13906         (_dbus_demarshal_double), (_dbus_demarshal_int32),
13907         (_dbus_demarshal_uint32), (_dbus_demarshal_string),
13908         (_dbus_marshal_test):
13909         * dbus/dbus-marshal.h:
13910         Add string marshal functions and have the demarshal functions
13911         return the new position.
13912
13913 2002-12-25  Havoc Pennington  <hp@pobox.com>
13914
13915         * doc/dbus-sasl-profile.txt: docs on the authentication protocol,
13916         it is a simple protocol that just maps directly to SASL.
13917
13918         * dbus/dbus-auth.h, dbus/dbus-auth.c: authentication protocol
13919         initial implementation, not actually used yet.
13920
13921         * dbus/dbus-string.c (_dbus_string_find): new function
13922         (_dbus_string_equal): new function
13923         (_dbus_string_base64_encode): new function
13924         (_dbus_string_base64_decode): new function
13925
13926 2002-12-25  Anders Carlsson  <andersca@codefactory.se>
13927
13928         * dbus/Makefile.am:
13929         * dbus/dbus-marshal.c: (swap_bytes), (_dbus_marshal_double),
13930         (_dbus_marshal_int32), (_dbus_marshal_uint32),
13931         (_dbus_demarshal_double), (_dbus_demarshal_int32),
13932         (_dbus_demarshal_uint32), (_dbus_marshal_test):
13933         * dbus/dbus-marshal.h:
13934         * dbus/dbus-protocol.h:
13935         * dbus/dbus-test.c: (main):
13936         * dbus/dbus-test.h:
13937         Add un-optimized marshalling/demarshalling routines.
13938
13939 2002-12-25  Harri Porten  <porten@kde.org>
13940
13941         * qt/dbus-qt.h: adjusted ctor and getter to KDE/Qt conventions
13942
13943 2002-12-24  Zack Rusin  <zack@kde.org>
13944
13945         * qt/dbus-qthread.cc: adding - integrates QMutex into Dbus
13946         * qt/dbus-qt.h: skeleton with two sample implemenatation of the
13947         main loop stuff
13948
13949 2002-12-24  Havoc Pennington  <hp@pobox.com>
13950
13951         * glib/dbus-gthread.c: fix include
13952
13953         * glib/dbus-glib.h: rename DBusMessageHandler for now.
13954         I think glib API needs to change, though, as you don't
13955         want to use DBusMessageFunction, you want to use the
13956         DBusMessageHandler object. Probably
13957         dbus_connection_open_with_g_main_loop()
13958         and dbus_connection_setup_g_main_loop() or something like that
13959         (but think of better names...) that just create a connection
13960         that has watch/timeout functions etc. already set up.
13961
13962         * dbus/dbus-connection.c
13963         (dbus_connection_send_message_with_reply): new function just to
13964         show how the message handler helps us deal with replies.
13965
13966         * dbus/dbus-list.c (_dbus_list_remove_last): new function
13967
13968         * dbus/dbus-string.c (_dbus_string_test): free a string that
13969         wasn't
13970
13971         * dbus/dbus-hash.c: use memory pools for the hash entries
13972         (rebuild_table): be more paranoid about overflow, and
13973         shrink table when we can
13974         (_dbus_hash_test): reduce number of sprintfs and write
13975         valid C89. Add tests for case where we grow and then
13976         shrink the hash table.
13977
13978         * dbus/dbus-mempool.h, dbus/dbus-mempool.c: memory pools
13979
13980         * dbus/dbus-connection.c (dbus_connection_register_handler)
13981         (dbus_connection_unregister_handler): new functions
13982
13983         * dbus/dbus-message.c (dbus_message_get_name): new
13984
13985         * dbus/dbus-list.c: fix docs typo
13986
13987         * dbus/dbus-message-handler.h, dbus/dbus-message-handler.c:
13988         an object representing a handler for messages.
13989
13990 2002-12-16  Anders Carlsson  <andersca@codefactory.se>
13991
13992         * glib/dbus-glib.h:
13993         * glib/dbus-gthread.c: (dbus_gthread_init):
13994         Don't use the gdbus prefix for public functions.
13995
13996 2002-12-16  Anders Carlsson  <andersca@codefactory.se>
13997
13998         * Makefile.am:
13999         * configure.in:
14000         Add GLib checks and fixup .pc files
14001
14002         * glib/Makefile.am:
14003         * glib/dbus-glib.h:
14004         * glib/dbus-gmain.c: (gdbus_connection_prepare),
14005         (gdbus_connection_check), (gdbus_connection_dispatch),
14006         (gdbus_add_connection_watch), (gdbus_remove_connection_watch),
14007         (dbus_connection_gsource_new):
14008         * glib/dbus-gthread.c: (dbus_gmutex_new), (dbus_gmutex_free),
14009         (dbus_gmutex_lock), (dbus_gmutex_unlock), (dbus_gthread_init):
14010         * glib/test-dbus-glib.c: (message_handler), (main):
14011         Add GLib support.
14012
14013 2002-12-15  Harri Porten  <porten@kde.org>
14014
14015         * autogen.sh: check for libtoolize before attempting to use it
14016
14017         * dbus/dbus-transport-unix.c: include <sys/time.h> for timeval
14018         struct.
14019
14020         * .cvsignore: ignore more stamp files
14021
14022         * dbus/dbus-watch.c (_dbus_watch_list_new): fixed doc error
14023
14024         * test/Makefile.am: added -I$(top_srcdir) to be able to compile
14025         without make install.
14026
14027 2002-12-15  Havoc Pennington  <hp@pobox.com>
14028
14029         * dbus/dbus-threads.c: add thread stubs that a higher library
14030         layer can fill in. e.g. the GLib wrapper might fill them in with
14031         GThread stuff. We still need to use this thread API to
14032         thread-safe-ize the library.
14033
14034 2002-12-12  Havoc Pennington  <hp@pobox.com>
14035
14036         * dbus/dbus-transport-unix.c, dbus/dbus-server-unix.c: use the
14037         below new interfaces and include fewer system headers.
14038
14039         * dbus/dbus-sysdeps.c (_dbus_read): new function
14040         (_dbus_write): new function
14041         (_dbus_write_two): new function
14042         (_dbus_connect_unix_socket): new function
14043         (_dbus_listen_unix_socket): new function
14044
14045         * dbus/dbus-message-internal.h: change interfaces to use
14046         DBusString
14047
14048 2002-12-11  Havoc Pennington  <hp@pobox.com>
14049
14050         * dbus/dbus-types.h: add dbus_unichar
14051
14052         * dbus/dbus-internals.c (_dbus_verbose): use _dbus_getenv
14053
14054         * dbus/dbus-connection.c (dbus_connection_send_message): return
14055         TRUE on success
14056
14057         * dbus/dbus-transport.c: include dbus-watch.h
14058
14059         * dbus/dbus-connection.c: include dbus-message-internal.h
14060
14061         * HACKING: add file with coding guidelines stuff.
14062
14063         * dbus/dbus-string.h, dbus/dbus-string.c: Encapsulate all string
14064         handling here, for security purposes (as in vsftpd). Not actually
14065         using this class yet.
14066
14067         * dbus/dbus-sysdeps.h, dbus/dbus-sysdeps.c: Encapsulate all
14068         system/libc usage here, as in vsftpd, for ease of auditing (and
14069         should also simplify portability). Haven't actually moved all the
14070         system/libc usage into here yet.
14071
14072 2002-11-25  Havoc Pennington  <hp@pobox.com>
14073
14074         * dbus/dbus-internals.c (_dbus_verbose): fix to not
14075         always print the first verbose message.
14076
14077 2002-11-24  Havoc Pennington  <hp@pobox.com>
14078
14079         * test/echo-client.c, test/echo-server.c: cheesy test
14080         clients.
14081
14082         * configure.in (AC_CHECK_FUNCS): check for writev
14083
14084         * dbus/dbus-message.c (_dbus_message_get_network_data): new
14085         function
14086
14087         * dbus/dbus-list.c (_dbus_list_foreach): new function
14088
14089         * dbus/dbus-internals.c (_dbus_verbose): new function
14090
14091         * dbus/dbus-server.c, dbus/dbus-server.h: public object
14092         representing a server that listens for connections.
14093
14094         * dbus/.cvsignore: create
14095
14096         * dbus/dbus-errors.h, dbus/dbus-errors.c:
14097         public API for reporting errors
14098
14099         * dbus/dbus-connection.h, dbus/dbus-connection.c:
14100         public object representing a connection that
14101         sends/receives messages. (Same object used for
14102         both client and server.)
14103
14104         * dbus/dbus-transport.h, dbus/dbus-transport.c:
14105         Basic abstraction for different kinds of stream
14106         that we might read/write messages from.
14107
14108 2002-11-23  Havoc Pennington  <hp@pobox.com>
14109
14110         * dbus/dbus-internals.h (_DBUS_INT_MAX): add _DBUS_INT_MIN
14111         _DBUS_INT_MAX
14112
14113         * dbus/dbus-test.c (main): add list test, and include
14114         dbus-test.h as intended
14115
14116         * dbus/dbus-hash.c (_dbus_hash_table_remove_string)
14117         (_dbus_hash_table_remove_int): return value indicates
14118         whether the entry existed to remove
14119
14120         * dbus/dbus-list.c: add linked list utility class,
14121         with docs and tests
14122
14123         * dbus/dbus-hash.c: add TODO item about shrinking the hash bucket
14124         array sometimes.
14125
14126 2002-11-23  Havoc Pennington  <hp@pobox.com>
14127
14128         * Doxyfile.in (INCLUDE_FILE_PATTERNS): expand DBUS_BEGIN_DECLS/
14129         DBUS_END_DECLS to nothing, that should fix this once and for all
14130
14131         * Doxyfile.in (JAVADOC_AUTOBRIEF): set to YES
14132
14133         * dbus/dbus-message.c, dbus/dbus-hash.c:
14134         add some missing @brief
14135
14136 2002-11-23  Havoc Pennington  <hp@pobox.com>
14137
14138         * dbus/dbus-message.h: put semicolons after DEBUG_BEGIN_DECLS
14139         to avoid confusing Doxygen
14140
14141         * dbus/dbus-hash.c: @} not }@
14142
14143         * dbus/dbus-message.c (struct DBusMessage): split out
14144         internals docs
14145
14146 2002-11-23  Havoc Pennington  <hp@pobox.com>
14147
14148         * configure.in: pile on more warning flags if using gcc
14149
14150         * Doxyfile.in (EXTRACT_STATIC): set to NO, so we don't have
14151         to document static functions
14152
14153         * configure.in: add summary to end of configure so it
14154         looks nice and attractive
14155
14156         * dbus/dbus-hash.c: finish implementation and write unit
14157         tests and docs
14158
14159         * configure.in: add --enable-tests to enable unit tests
14160
14161         * dbus/dbus-test.c: test program to run unit tests
14162         for all files in dbus/*, initially runs a test for
14163         dbus-hash.c
14164
14165         * dbus/dbus-internals.h: file to hold some internal utility stuff
14166
14167 2002-11-22  Havoc Pennington  <hp@redhat.com>
14168
14169         * dbus/dbus-hash.c: copy in Tcl hash table, not yet
14170         "ported" away from Tcl
14171
14172         * dbus/dbus-types.h: header for types such as dbus_bool_t
14173
14174 2002-11-22  Havoc Pennington  <hp@redhat.com>
14175
14176         * dbus/dbus.h: fixups for doc warnings
14177
14178         * Doxyfile.in (FILE_PATTERNS): we need to scan .h to pick up
14179         macros
14180         (QUIET): make it quiet so we can see warnings
14181
14182         * dbus/dbus-memory.c: teach D-BUS to allocate and free memory
14183
14184 2002-11-22  Havoc Pennington  <hp@redhat.com>
14185
14186         * Makefile.am: include "Doxyfile" target in all-local
14187
14188         * configure.in: generate the Doxyfile
14189
14190         * Doxyfile.in: move Doxyfile here, so we can use
14191         configure to generate a Doxyfile with the right
14192         version number etc.
14193
14194 2002-11-22  Havoc Pennington  <hp@redhat.com>
14195
14196         * dbus/dbus-message.c: move inline docs into .c file
14197
14198         * Doxyfile (OUTPUT_DIRECTORY): move output to doc/api
14199         so all docs are under doc/
14200         (MAN_EXTENSION): generate man pages. Use extension
14201         ".3dbus" which matches ".3qt" on my system,
14202         I guess this is OK, I don't know really.
14203         (FILE_PATTERNS): look for .c files not .h, makes sense
14204         for plain C I think
14205
14206 2002-11-22  Havoc Pennington  <hp@pobox.com>
14207
14208         * Makefile.am (SUBDIRS): rename subdir "server" to "bus"
14209         because any app can be a server, and any app can be a client,
14210         the bus is a special kind of server.
14211
14212 Thu Nov 21 23:35:31 2002  Zack Rusin  <zack@kde.org>
14213
14214         * Doxyfile : adding. Still needs Makefile rules to be generated
14215         automatically (just run "doxygen" in the toplevel dir for now to
14216         generate docs)
14217
14218         * dbus/dbus-message.h : Adding sample docs (javadoc since
14219         resembles gtk-doc a little more)
14220
14221         * dbus/dbus.h : Adding sample docs
14222
14223 2002-11-21  Havoc Pennington  <hp@redhat.com>
14224
14225         * dbus/Makefile.am (INCLUDES): define DBUS_COMPILATION
14226         so we can allow ourselves to include files directly,
14227         instead of having to use dbus.h
14228
14229         * dbus/dbus.h: fill in
14230
14231         * dbus/dbus-message.h: sketch out a sample header file.
14232         Include griping if you include it directly instead of
14233         via dbus.h
14234
14235         * dbus/dbus-macros.h: new file with macros for extern "C",
14236         TRUE/FALSE, NULL, etc.
14237
14238         * doc/file-boilerplate.c: put include guards in here
14239
14240 2002-11-21  Havoc Pennington  <hp@redhat.com>
14241
14242         * doc/file-boilerplate.c: include both AFL and GPL boilerplate.
14243
14244         * COPYING: include the GPL as well, and license code
14245         under both AFL and GPL.
14246
14247 2002-11-21  Havoc Pennington  <hp@redhat.com>
14248
14249         * acconfig.h: get rid of this
14250
14251         * autogen.sh (run_configure): add --no-configure option
14252
14253         * configure.in: remove AC_ARG_PROGRAM to make
14254         autoconf complain less. add AC_PREREQ.
14255         add AC_DEFINE third arg.
14256
14257 2002-11-21  Anders Carlsson  <andersca@codefactory.se>
14258
14259         * doc/Makefile.am:
14260         Fix references so we can distcheck.
14261
14262 2002-11-21  Havoc Pennington  <hp@redhat.com>
14263
14264         * Initial module creation
14265