* Released 1.0 RC 1 (0.93)
[platform/upstream/dbus.git] / ChangeLog
1 2006-09-14  John (J5) Palmieri  <johnp@redhat.com>
2
3         * Released 1.0 RC 1 (0.93) 
4
5 2006-09-14  John (J5) Palmieri  <johnp@redhat.com>
6
7         * dbus/dbus-sysdeps-util-unix.c (_dbus_write_pid_file):
8         use _dbus_close instead of close
9
10 2006-09-14  John (J5) Palmieri  <johnp@redhat.com>
11
12         * dbus/dbus-sysdeps.c: Add support for LOCAL_CREDS socket
13         credentials.  Fixes "external" authentication under e.g. NetBSD
14         which does not support any other socket credentials mechanism.
15         (Patch from Julio M. Merino Vidal  <jmmv at NetBSD dot org>)
16
17 2006-09-14  John (J5) Palmieri  <johnp@redhat.com>
18
19         * dbus/dbus-threads.c: Allow recursive mutex's to be passed into
20         dbus_threads_init and be used by the dbus mutex functions to
21         avoid deadlocks.
22
23         * doc/TODO: Remove recursive mutex dbus_connection_dispatch TODO item
24
25 2006-09-13  John (J5) Palmieri  <johnp@redhat.com>
26
27         * dbus/dbus-sysdeps-util-unix.c (_dbus_directory_get_next_file):
28         use threadsafe readdir_r instead of readdir
29
30 2006-09-13  John (J5) Palmieri  <johnp@redhat.com>
31
32         * dbus-threads.c (dbus_threads_init_default): New method for
33         initializing the internal thread implementation (Patch from
34         Alexander Larsson <alexl at redhat dot com>)
35
36 2006-09-11  John (J5) Palmieri  <johnp@redhat.com>
37
38         * remove a bunch of todo items from the 1.0 list
39
40 2006-09-11  John (J5) Palmieri  <johnp@redhat.com>
41
42         * bus/activation.c, bus/desktop-file.c: Distinguish between OOM and
43         key not found
44
45 2006-09-11  John (J5) Palmieri  <johnp@redhat.com>
46
47         * dbus/dbus-internal.c: Add dbus_is_verbose so we can have more
48         complex debugging code
49
50         * dbus/dbus-marshal-basic.c (_dbus_marshal_read_fixed_multi): Move
51         between the test suite ifdefs
52         (_dbus_verbose_bytes): return if verbosity is not enabled 
53
54 2006-09-11  John (J5) Palmieri  <johnp@redhat.com>
55
56         * dbus/dbus-marshal-recursive-util.c, dbus/dbus-marshal-recursive.c:
57         remove DBusMark
58
59 2006-09-10  Havoc Pennington  <hp@redhat.com>
60
61        patch mostly by Peter Kümmel, bug #8211
62         
63         * dbus/dbus-sysdeps-unix.c: new file, which splits out
64         unix-specific stuff in dbus-sysdeps.c
65
66         * dbus/dbus-sysdeps.c: don't include any UNIX-only headers, 
67         and move unix-specific stuff to dbus-sysdeps-unix.c
68
69         * configure.in: check HAVE_ERRNO_H
70         
71 2006-09-08  John (J5) Palmieri  <johnp@redhat.com>
72
73         * bus/test-main.c (main): Initialize threading during tests
74
75         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
76         Unlock connection on error
77         (generate_local_error_message): static method for generating
78         an error message when we don't have a message to reply to
79         (_dbus_connection_block_pending_call): Send a disconnect error
80         instead of just a timeout (NULL) when the bus gets disconnected
81         while blocking for a reply.
82         
83 2006-09-08  John (J5) Palmieri  <johnp@redhat.com>
84
85         * dbus/dbus-connection.c (dbus_connection_dispatch): Properly remove
86         filters (Patch from Kimmo Hämäläinen 
87         <kimmo dot hamalainen at nokia dot com>)
88
89 2006-09-07  John (J5) Palmieri  <johnp@redhat.com>
90
91         * dbus/dbus-connection-internal.h: Add prototype for 
92         _dbus_connection_test_get_locks to remove warning
93
94 2006-09-07  John (J5) Palmieri  <johnp@redhat.com>
95
96         * dbus/dbus-spawn.c (_dbus_spawn_async_with_babysitter): Make sure we
97         close child_err_report_pipe[WRITE_END] on exec (Patch from 
98         Kimmo Hämäläinen <kimmo dot hamalainen at nokia dot com>)
99
100 2006-09-07  John (J5) Palmieri  <johnp@redhat.com>
101
102         * Clean up close calls to use _dbus_close (Patch from 
103         Kimmo Hämäläinen <kimmo dot hamalainen at nokia dot com>)
104
105 2006-09-06  John (J5) Palmieri  <johnp@redhat.com>
106
107         * doc/TODO:
108         - Remove pending call locking todo item
109         - dbus_connection_open now holds hard ref.  Remove todo item
110         - do proper locking on _dbus_bus_check_connection_and_unref
111           and handle DBUS_BUS_STARTER. Remove todo item
112         - Warn on closing of a shared connection.  Remove todo item
113
114         * bus/bus.c, bus/connection.c, bus/dispatch.c, dbus/dbus-bus.c,
115         dbus/dbus-connection.c: Use the dbus_connection_close_internal
116         so we don't get the warning when closing shared connections
117
118         * test/test-service.c, test/test-shell-service.c: Applications
119         don't close shared connections themselves so we unref instead of
120         close
121
122         * test/test-utils.c (test_connection_shutdown): Close the connection
123
124         * dbus/dbus-bus.c (_dbus_bus_check_connection_and_unref): Changed to
125         _dbus_bus_check_connection_and_unref_unlocked since we only call this
126         method on a locked connection.  
127         Make sure we call _dbus_connection_unref_unlocked instead of 
128         dbus_connection_unref also.
129         Handle DBUS_BUS_STARTER correctly
130
131         * dbus/dbus-connection.c (connection_record_shared_unlocked):
132         Mark as shared and hard ref the connection
133         (connection_forget_shared_unlocked): Remove the hard ref from the 
134         connection
135         (_dbus_connection_close_internal_and_unlock):  New internal function
136         which takes a locked connection and unlocks it after closing it
137         (_dbus_connection_close_internal): New internal function which acts
138         like the origonal dbus_connection_close method by grabbing a connection
139         lock and calling _dbus_connection_close_internal_and_unlock
140         (dbus_connection_close): Public close method, warns when the app
141         trys to close a shared connection
142
143 2006-09-06  John (J5) Palmieri  <johnp@redhat.com>
144
145         * bus/driver.c:
146         (bus_driver_generate_introspect_string): New method for populating
147         a DBusString with the introspect data
148         (bus_driver_handle_introspect): Move introspect generation code to 
149         bus_driver_generate_introspect_string
150
151         * bus/main.c:
152         (introspect): New function which prints out the intropect data and
153         exits
154         (main): Add a --introspect switch
155
156 2006-09-06  John (J5) Palmieri  <johnp@redhat.com>
157
158         * doc/TODO: Removed dtd publishing item.  
159         It seems the dtd has already been added at
160         http://www.freedesktop.org/standards/dbus/1.0/introspect.dtd
161
162 2006-09-05  John (J5) Palmieri  <johnp@redhat.com>
163
164         * doc/TODO, various source files: Audited todo's and FIXME's and
165         prepended the ones we should be looking at with 1.0.  Those
166         prepended with 1.0? need clerification or might not be needed
167         for 1.0
168
169 2006-09-05  John (J5) Palmieri  <johnp@redhat.com>
170
171         * dbus/dbus-pending-call.c: Add some checks so we don't crash on
172         NULL in the public API (Patch from Kimmo Hämäläinen 
173         <kimmo dot hamalainen at nokia dot com>)
174
175 2006-09-05  John (J5) Palmieri  <johnp@redhat.com>
176
177         * configure.in: Fix for OS-X compile time endian issues (patch from
178         Benjamin Reed <ranger at befunk dot com>)
179
180 2006-09-05  John (J5) Palmieri  <johnp@redhat.com>
181
182         * configure.in: Check for no-common compiler flag (OS-X fix from
183         Benjamin Reed <ranger at befunk dot com>)
184
185 2006-09-01  John (J5) Palmieri  <johnp@redhat.com>
186
187         * tools/dbus-launch.c: Add a sigterm handler (patch from Frederic Crozat
188         <fcrozat at mandriva dot com>)
189
190 2006-08-29  Havoc Pennington  <hp@redhat.com>
191
192         * test/test-service.c (path_message_func): fix lack of return value
193
194         * dbus/dbus-sysdeps.c (_dbus_printf_string_upper_bound): fix
195         formatting, remove #ifdef, and fix docs. #ifdef doesn't make
196         any more sense than on anything else in this file.
197         (_dbus_get_tmpdir): add const to return value, and keep the
198         results of the various getenv around in a static variable.
199
200 2006-08-29  Havoc Pennington  <hp@redhat.com>
201
202         * dbus/dbus-sysdeps-util.c, dbus/dbus-sysdeps-util-unix.c: change
203         from Ralf Habacker to move UNIX-specific sysdeps into a separate file.
204
205 2006-08-25  John (J5) Palmieri  <johnp@redhat.com>
206
207         * test/Makefile.am: change find to use syntax that works with non
208         gnu versions of find
209
210 2006-08-25  John (J5) Palmieri  <johnp@redhat.com>
211
212         * dbus/dbus-transport.c: fix invalid deref when checking if
213         a vtable method exists (Patch from Christian Ehrlicher 
214         <ch dot ehrlicher at gmx dot de>)
215
216 2006-08-25  John (J5) Palmieri  <johnp@redhat.com>
217
218         * configure.in, dbus/Makefile.am, test/name-test/run-test.sh, 
219         test/name-test/Makefile.am: Fixed some issues with getting get dbus 
220         to build with builddir != srcdir (Taken from a patch by Bernard Leak
221         <bernard at brenda-arkle dot demon dot co dot uk>)
222
223 2006-08-25  John (J5) Palmieri  <johnp@redhat.com>
224
225         * configure.in: Fix DBUS_DAEMONDIR to use EXPANDED_BINDIR for the
226         default case
227
228 2006-08-25  John (J5) Palmieri  <johnp@redhat.com>
229
230         * configure.ac, bus/Makefile.am: Generalize kqueue support so that
231         it works on any system providing this interface, not only FreeBSD.
232         For example, NetBSD. (Patch by Julio M. Merino Vidal  <jmmv at NetBSD dot org>)
233
234 2006-08-20  Havoc Pennington  <hp@redhat.com>
235
236         * doc/dbus-faq.xml, doc/dbus-tutorial.xml: some improvements to
237         the docs
238
239 2006-08-18  John (J5) Palmieri  <johnp@redhat.com>
240
241         * Released 0.92 
242
243 2006-08-18  John (J5) Palmieri  <johnp@redhat.com>
244
245         * dbus/dbus-threads.c (dbus_threads_init): change the documentation
246         to reflect the init late change
247
248         * bus/bus.c (bus_context_new): Check user before we fork so we can
249         print out an error message a user will be able to see
250
251 2006-08-18  John (J5) Palmieri  <johnp@redhat.com>
252
253         Patch provided by Ralf Habacker (ralf dot habacker at freenet dot de) 
254
255         * dbus/dbus-sysdeps.c, dbus/dbus-threads.c, dbus/dbus-internals.h:
256         Add two more global locks for use on windows platforms.  These are
257         unused on non-windows platforms but are not ifdefed out to avoid
258         potential bugs (i.e. the few bytes lost does not warrent the extra
259         maintanence and complexity that having seperate sets of locks would
260         cause)
261
262 2006-08-18  John (J5) Palmieri  <johnp@redhat.com>
263
264         * bus/services.c (bus_registry_acquire_service): Return an error
265         when an application tries to register the org.freedesktop.DBus Bus Name
266
267         * bus/services.c (bus_registry_release_service): Return an error
268         when an application tries to release the org.freedesktop.DBus Bus Name
269
270 2006-08-17  Alp Toker  <alp@atoker.com>
271
272         * doc/dbus-specification.xml: Fix some minor typos.
273
274 2006-08-17  John (J5) Palmieri  <johnp@redhat.com>
275
276         * configure.in: use $with_init_scripts instead of $operating_system
277         to determine where to store the pid since the init scripts manipulate 
278         the pid file (patch from Marcelo Ricardo Leitner 
279         <marcelo dot leitner at terra dot com dot br>.  
280
281 2006-08-16  John (J5) Palmieri  <johnp@redhat.com>
282
283         * dbus/dbus-threads.c: Add static DBusList *uninitialized_mutex_list and
284         static DBusList *uninitialized_condvar_list to support new late 
285         initialization threading model.  In this model threads can be initialized
286         even after the D-Bus API has been used but still needs to be initialized 
287         before the second thread has been started.  Mutexes and condvar addresses
288         are stored in the two static lists and are replaced with actuall locks
289         when threads are initalized.
290         (_dbus_mutex_new_at_location): New method for creating a mutex and placing
291         the location into the static list
292         (_dbus_mutex_free_at_location): New method for removing a mutex location 
293         from the static list and freeing the mutex
294         (_dbus_condvar_new_at_location): New method for creating a conditional 
295         variable and placing the location into the static list
296         (_dbus_condvar_free_at_location): New method for removing a conditional
297         variable location from the static list and freeing the conditional variable 
298         (init_uninitialized_locks): Atomic method which goes through the static 
299         lists of mutex and condvar location and updates them with actuall locks
300         (init_global_locks): changed to init_locks
301         
302         * dbus/dbus-connection.c:
303         (_dbus_connection_test_get_locks): New method for tests to check connections
304         (_dbus_connection_new_for_transport): Use the new at_location mutex and
305         condvar API
306         (dbus_connection_allocate_data_slot): Pass in the global lock address
307         to _dbus_data_slot_allocator_alloc
308
309         * dbus/dbus-dataslot.c:
310         (_dbus_data_slot_allocator_alloc): Use the address of the mutex
311         instead of the mutex itself
312
313         * dbus/dbus-message.c:
314         (dbus_message_allocate_data_slot): Pass in the global lock address
315         to _dbus_data_slot_allocator_alloc
316
317         * dbus/dbus-pending-call.c:
318         (dbus_pending_call_allocate_data_slot): Pass in the global lock address
319         to _dbus_data_slot_allocator_alloc
320
321         * dbus/dbus-server.c:
322         (_dbus_server_init_base): Use the new at_location mutex API
323         (dbus_server_allocate_data_slot): Pass in the global lock address
324         to _dbus_data_slot_allocator_alloc
325
326         * test/name-test/test-threads-init.c: New test case for late thread
327         initialization
328
329 2006-08-14  John (J5) Palmieri  <johnp@redhat.com>
330
331         * dbus/dbus-dataslot.c (_dbus_data_slot_allocator_alloc):
332         Change _dbus_abort to _dbus_assert_not_reached because _dbus_abort
333         causes compile problems when asserts are turned off
334         Keeping _dbus_warn for printing out the message so even if
335         asserts are turned off the user gets the messages that something is 
336         wrong 
337
338 2006-08-14  John (J5) Palmieri  <johnp@redhat.com>
339
340         Patches by Kjartan Maraas <kmaraas at gnome dot org>
341
342         * bus/services.c (bus_service_list_queued_owners):
343         Add a pointer cast to fix compiler warning
344
345         * dbus/dbus-dataslot.c (_dbus_data_slot_list_get):
346         return a NULL instead of FALSE since the return type
347         is not expecting a boolean
348
349         * dbus/dbus-marshal-basic.c (_dbus_marshal_test):
350         Remove unused variable
351
352         * dbus/dbus-marshal-recursive-util.c (node_new):
353         return a NULL instead of FALSE since the return type
354         is not expecting a boolean
355
356         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
357         Send a NULL into _dbus_transport_new_for_fd instead of a FALSE
358         because we are expecting a pointer not a boolean
359
360         * dbus/dbus-sysdeps-util.c (_dbus_get_tmpdir): 
361         add void as the parameter so some compilers
362         don't complain
363
364         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_domain_socket,
365           _dbus_transport_new_for_tcp_socket):
366         Send a NULL into _dbus_transport_new_for_fd instead of a FALSE
367         because we are expecting a pointer not a boolean
368
369         * test/shell-test.c (test_command_line):
370         cast the second argument to _dbus_list_append to avoid compiler
371         warnings
372
373         * test/test-names.c (main): remove unused variable
374
375         * test/test-service.c (check_hello_from_self_reply):
376         Initialize echo_message and echo_reply to NULL
377         
378         * test/test-shell-service.c (handle_echo):
379         Remove unused variable and cast the third parameter passed to
380         dbus_connection_get_object_path_data to avoid compiler warrnings
381
382         * test/name-test/test-names.c (clear_message_queue):
383         Remove unused function
384
385         * test/name-test/test-pending-call-dispatch.c:
386         Fix format string in printf
387
388
389 2006-08-14  John (J5) Palmieri  <johnp@redhat.com>
390
391         * dbus/dbus-bus.c:
392         * test/name-test/test-names.c:
393         Remove test method dbus_bus_connection_get_unique_name because 
394         we already have public method dbus_bus_get_unique_name that 
395         does the exact same thing
396
397 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
398
399         * dbus/dbus-signature.c:
400         fix typos in Julio's previous patch which cause make check to fail
401
402 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
403
404         * dbus/dbus-address.c (_dbus_address_test): Revert leaking strcmp.  
405         In any case it was wrong since this is a test checking to see if
406         address parsing is correct.  There was no need to get the true
407         tmp directory.  
408
409 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
410
411         * dbus/dbus-macros.h: Revert the addition of stddef.h
412         as we should not be adding it to library headers 
413
414 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
415
416         * dbus/dbus-signature.c:
417         Fix the unit tests so that they work if assertions are not enabled.
418         (patch from Julio M. Merino Vidal  <jmmv at NetBSD dot org>)
419
420 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
421
422         * tools/run-with-tmp-session-bus.sh:
423         * test/name-test/run-test.sh:
424         Remove bashisms (patch from Julio M. Merino Vidal
425         <jmmv at NetBSD dot org>)
426
427 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
428
429         * configure.in: add a version (>= 2.6.0) check for libxml2
430
431 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
432
433         * configure.in: make sure the compiler supports -Wfloat-equal
434         
435         * bus/dir-watch-dnotify.c: move functional code after 
436         variable declerations (C99 fix)  (patches from Jens Granseuer
437         <jensgr at gmx dot net>
438
439 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
440
441         * dbus/dbus-macros.h:
442         add #include <stddef.h> so that Sun compilers don't complain about
443         the defining NULL
444
445 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
446
447         * dbus/dbus-sysdeps.c:
448         * dbus/dbus-address.c:
449         * bus/activation.c:
450         * test/shell-test.c:
451         don't hardcode tmp directory (patch from Dave Meikle 
452         <dmk at davemeikle dot co dot uk>)
453
454 2006-08-09  John (J5) Palmieri  <johnp@redhat.com>
455
456         * dbus/dbus-dataslot.c (_dbus_data_slot_allocator_alloc):
457         Change an assert to a detailed warning and abort.  
458         When allocator->lock != mutex it indicates that the user has failed
459         to initalize threads before using the D-Bus library.  This warning
460         helps the user identify the issue and fix their app.
461
462 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
463
464         These are all patches from Kjartan Maraas <kmaraas at gnome dot org>
465         with cleanups of bugs found from Coverity reports:
466
467         * dbus/dbus-sysdeps-util.c (_dbus_write_pid_file):
468         close the file on error to avoid a leak
469
470         * bus/expirelist.c (bus_expire_list_test):
471         Check for NULL on dbus_new0
472
473         * bus/activation.c (update_directory):
474         remove dead code
475
476         * bus/config-parser.c (merge_service_context_hash, start_selinux_child):
477         Fix some leaks
478
479         * bus/bus.c (process_config_every_time):
480         Fixed a leak
481
482         * bus/desktop-file.c (parse_key_value):
483         Fixed leak
484
485         * bus/selinux.c (bus_selinux_id_table_insert):
486         Fixed leak
487
488 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
489
490         * dbus/dbus-object-tree.c (_dbus_object_subtree_new):
491         remove dead code
492
493 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
494
495         * tools/run-with-tmp-session-bus.sh: use #!/bin/sh instead of
496         #!/bin/bash
497
498 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
499
500         * Doxyfile.in: fix the INPUT line so we can generate docs 
501         when sourcedir != builddir (patch from Cygwin Ports maintainer
502         <yselkowitz at users dot sourceforge dot net>
503
504 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
505
506         * dbus/dbus-sysdeps.h:
507         * dbus/dbus-sysdeps.c: 
508         * dbus/dbus-string.c: 
509         s/_dbus_printf_length/_dbus_printf_string_upper_bound to comform with
510         GLib's function which does the same thing
511
512         * configure.in:
513         * bus/Makefile.am:
514         * bus/dir-watch-default.c:
515         * bus/dir-watch-dnotify.c:
516         * bus/dir-watch-kqueue.c:
517         Add kqueue directory watching for freebsd and split the directory
518         watching code into seperate files per method/arch
519         (patches from Timothy Redaelli <drizzt at gufi dotorg>)
520
521 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
522
523         * configure.in:
524         * tools/Makefile.am:
525         * tools/dbus-launch.c:
526         * bus/Makefile.am:
527         allow --with-dbus-daemondir switch to be used to make the
528         daemon install to a seperate bindir like /usr/libexec
529         (patch from Brian Cameron <brian dot cameron at sun dot com)
530
531 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
532
533         * bus/Makefile.am (install-data-hook): removed the slash after 
534         $(DESTDIR) so we don't get the double slash which does not work
535         in windows (patch from Andras Porjesz 
536         <andras dot porjesz at siemens dot com>)
537
538 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
539
540         * dbus/dbus-sysdeps.h:
541         * dbus/dbus-sysdeps.c: 
542           add _dbus_printf_length (patch from Peter Kümmel 
543           <syntheticpp at gmx dot net>)
544
545 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
546
547         * dbus/dbus-internals.c: unistd.h is not used 
548         (_dbus_verbose_real): only enable verbose printing 
549         if DBUS_VERBOSE environment var is set to '1'
550         (patch from Peter Kümmel <syntheticpp at gmx dot net>)
551
552 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
553
554         * configure.in: add a GCC flag check for -Wdeclaration-after-statement
555         so we still compile on older gcc (patch from Frederic Peters 
556         <fpeters at 0d dot be>
557
558 2006-08-04  Havoc Pennington  <hp@redhat.com>
559
560         * configure.in: add -Wdeclaration-after-statement
561
562         * dbus/dbus-connection.c: change all the pending call stuff to
563         reflect the fact that pending call operations use the connection
564         lock
565
566         * dbus/dbus-pending-call.c: add locking here
567
568         * dbus/dbus-errors.c (struct DBusRealError): don't make the name
569         field const consistent with how message field is done
570
571 2006-08-03  John (J5) Palmieri  <johnp@redhat.com>
572
573         * s/D-BUS/D-Bus/g
574
575 2006-08-03  John (J5) Palmieri  <johnp@redhat.com>
576
577         * dbus/dbus-object-tree.c: Patch by Benjamin Otte 
578         <in7y118 at public.uni-hamburg dot de> - fix invalid
579         read/write reported by valgrind
580
581 2006-07-24  John (J5) Palmieri  <johnp@redhat.com>
582
583         * Released 0.91
584
585 2006-07-22  John (J5) Palmieri  <johnp@redhat.com>
586
587         * dbus/dbus-connection.c:
588         (_dbus_connection_attach_pending_call_unlocked):
589         (connection_timeout_and_complete_all_pending_calls_unlocked):
590         Make sure we set timeout_added on pending calls to FALSE when
591         we remove the timeout from the connection
592
593 2006-07-21  John (J5) Palmieri  <johnp@redhat.com>
594
595         * Removed some extra bindings stuff lingering around (thanks timo)
596         * dbus-pendingcall.c (_dbus_pending_call_new): 
597         s/dbus_connection_ref/_dbus_connection_ref_unlocked fixes assertion
598         when we tried to take a lock on an already locked connection
599
600 2006-07-17  John (J5) Palmieri  <johnp@redhat.com>
601
602         * Released 0.90
603
604 2006-07-17  Havoc Pennington  <hp@redhat.com>
605
606         * dbus/dbus-marshal-basic.c (_dbus_type_to_string): support 64-bit
607         ints, reported by Owen Taylor
608
609 2006-07-17  John (J5) Palmieri  <johnp@redhat.com>
610
611         * doc/TODO:
612         * dbus/dbus-bus.c:
613         * dbus-errors.c:
614         * dbus/dbus-marshal-validate.c:
615           Removed TODO items which were fixed or are no longer relevent
616
617 2006-07-17  John (J5) Palmieri  <johnp@redhat.com>
618
619         * dbus-qt4-1.pc.in, dbus-sharp.pc.in:
620         Remove stray files from the stripped bindings
621
622 2006-07-16  Havoc Pennington  <hp@redhat.com>
623
624         * dbus/dbus-pending-call.c (_dbus_pending_call_set_timeout_error):
625         Improve the error message on reply timeout
626
627 2006-07-14  John (J5) Palmieri  <johnp@redhat.com>
628
629         * Remove all bindings
630
631 2006-07-13  John (J5) Palmieri  <johnp@redhat.com>
632
633         * dbus-connection.c (dbus_connection_send_with_reply): return TRUE
634         and set pending_reply out arg to NULL is connection is disconnected
635         (connection_timeout_and_complete_all_pending_calls_unlocked): New
636         static method for cleaning up pending calls on disconnect
637         (_dbus_connection_get_dispatch_status_unlocked): If we have pending 
638         calls queued timeouts on disconnect 
639
640          * dbus/dbus-pending-call.c (_dbus_pending_call_set_connection):
641         Remove 
642
643 2006-07-13  Carlos Garcia Campos  <carlosgc@gnome.org>
644
645         * bus/activation.[ch] (bus_activation_list_services): new function to 
646         get the list of services that can be activated
647
648         * bus/dispatch.c: test coverage for the new bus method
649         ListActivatableNames
650
651         * bus/driver.c: new bus method ListActivatableNames to get the list of
652         services that can be activated
653
654         * doc/dbus-specification.xml: ListActivatableNames method documentation
655
656 2006-07-12  John (J5) Palmieri  <johnp@redhat.com>
657         * dbus/Makefile.am: add dbus-pending-call-internal.h to the list of
658         source files
659
660 2006-07-12  John (J5) Palmieri  <johnp@redhat.com>
661         * dbus/dbus-message-factory.c:
662         Fix index into an array (patch by Peter Kümmel <syntheticpp at gmx.net>)
663
664 2006-07-12  John (J5) Palmieri  <johnp@redhat.com>
665         * dbus/dbus-connection-internal.h:
666         * dbus/dbus-connection.c:
667         * file dbus/dbus-pending-call.c:
668         * dbus/dbus-pending-call.h:
669         Make DBusPendingCall an opaque type even to D-Bus internals
670
671 2006-07-07  John (J5) Palmieri  <johnp@redhat.com>
672
673         * dbus/dbus-connection.h: remove connection_disconnect and replace with
674         connection_close
675
676         * dbus/dbus-connection.c: include dbus-bus.h
677         (_dbus_connection_read_write_dispatch): make static
678
679 2006-07-07  John (J5) Palmieri  <johnp@redhat.com>
680
681         * dbus/dbus-connection.c (dbus_connection_close): removed deprecated
682         function
683         (dbus_connection_dispatch): On disconnect unref any shared connections
684
685         * dbus/dbus-bus.c (_dbus_bus_check_connection_and_unref): new function
686         for cleaning up shared connections on disconnect
687         (internal_bus_get): get a hard refrence to shared connections when
688         they are created
689         
690         * doc/TODO: Remove items which are no longer relevent or have been fixed
691         Split 1.0 todo items with a 0.90 freeze todo list
692  
693 2006-06-14  Ross Burton  <ross@openedhand.com>
694
695         * glib/dbus-gobject.c:
696         Free a leaking GArray (surely not!) in dbus_g_method_return.
697
698 2006-06-14  Ross Burton  <ross@openedhand.com>
699
700         * tools/Makefile.am:
701         * tools/dbus-monitor.c:
702         Don't use the GLib bindings in dbus-monitor (patch from Ralf
703         Habacker).
704         
705 2006-06-14  Ross Burton  <ross@openedhand.com>
706
707         * tools/dbus-print-message.c:
708         Also print the object path when outputting signals or method calls.
709
710 2006-06-13  Thiago Macieira <thiago.macieira@trolltech.com>
711
712         * qt/src/Makefile.am: install the qdbus.h header.
713         This allows people to actually use the installed code.
714
715 2006-06-12  Ross Burton  <ross@openedhand.com>
716
717         * glib/dbus-gproxy.c:
718         Don't leak a GArray when firing signals (thank Rob Taylor for review).
719
720 2006-06-12  Thiago Macieira <thiago.macieira@trolltech.com>
721
722         * Released 0.62
723
724 2006-06-12  Thiago Macieira <thiago.macieira@trolltech.com>
725
726         * dbus/dbus-arch-deps.h.in: Remove spurious semi-colons that
727         break pedantic builds. Closes bug 6043 (patch approved by
728         Havoc back in February).
729
730 2006-06-12  Thiago Macieira <thiago.macieira@trolltech.com>
731
732         * qt/src/qdbusintegrator.cpp: Fix bug in parsing async methods
733         that took a QDBusMessage parameter.
734         * qt/src/qdbusbus.h: Add a default flag for RequestName.
735         * qt/tools/dbus.cpp: Don't use automatic call because we might
736         be calling an async method: request a reply.
737
738 2006-06-11  Thiago Macieira <thiago.macieira@trolltech.com>
739
740         * test/qt/*: Update the testcases, including testing the new
741         functionality of sending null QByteArray and QString over the
742         bus. Add new headertest test and restore the old
743         qdbusxmlparser test.
744
745 2006-06-11  Thiago Macieira <thiago.macieira@trolltech.com>
746
747         * qt/tools/dbuscpp2xml.cpp: Compile on Windows.
748         * qt/tools/dbusidl2cpp.cpp: Add missing newline.
749
750         * qt/examples/Makefile.am:
751         * qt/examples/chat.h: Use UI-generated files with the ui_*.h
752         form.
753
754         * qt/src/qdbusmarshall.cpp: Allow sending of QString() and
755         QByteArray() (nulls) over the bus.
756         * qt/src/qdbusabstractinterface.cpp: Use the correct variable,
757         the one that has the signature suffix stripped.
758         * qt/src/qdbusreply.h: Make some methods const.
759
760 2006-06-09  Thiago Macieira <thiago.macieira@trolltech.com>
761
762         Patch from Timo Hoenig <thoenig@suse.de>.
763
764         * qt/dbus/Makefile.am: New file.  Fix "make dist", add all headers
765         required during build to EXTRA_DIST.
766         * qt/src/Makefile.am: Fix "make dist", add 'qdbus.h' to EXTRA_DIST.
767         * qt/Makefile.am: Fix "make dist", add 'dbus' to DIST_SUBDIRS.
768         * configure.in: Fix "make dist", take care that the Makefile for
769         qt/dbus is being generated.
770
771 2006-06-07  John (J5) Palmieri  <johnp@redhat.com>
772
773         * bus/bus.c: Fix eavesdropping on method calls
774
775 2006-06-07  John (J5) Palmieri  <johnp@redhat.com>
776
777         * configure.in:
778         * dbus/dbus-userdb-util.c:
779         Add Solaris console owner patch from Artem Kachitchkine
780
781 2006-06-07  Thiago Macieira <thiago.macieira@trolltech.com>
782
783         * qt/Makfile.am:
784         * qt/src/Makefile.am: Fix the EXTRA_DIST after the
785         reorganisation. Thanks to Timo Hoenig for pointing this out.
786
787 2006-06-06  Robert McQueen  <robot101@debian.org>
788
789         * glib/dbus-gtype-specialized.c: Fix obvious leak of GArray in every
790           call to dbus_g_type_get_struct.
791
792 2006-06-06  Robert McQueen  <robot101@debian.org>
793
794         * glib/dbus-gvalue-utils.c: Fix the failing test where static string
795           pointers were put into a GPtrArray-based specialised collection, and
796           then freed along with the array. GValues which you add into
797           collections or maps which have the NOCOPY flag set are assumed to not
798           belong to the caller, so rather than the existing pointer-stealing
799           semantics, they are copied instead. Given that the main consumers of
800           this abstraction are the bindings themselves, I don't think this is
801           too bad, but others should watch their choice of take vs set_static.
802
803 2006-06-06  Robert McQueen  <robot101@debian.org>
804
805         * glib/dbus-gvalue-utils.c: Spotted a warning about the return value
806           of g_slist_prepend not being used. Fixed copying of slist-based
807           specialised collections, then wrote a test case and found that it was
808           all broken. Went on to fix iterating and appending too. Good thing
809           nobody uses this code yet.
810
811 2006-06-06  Robert McQueen  <robot101@debian.org>
812
813         * glib/dbus-gvalue-utils.c: Remove duplicated code by having all of
814           the iterators use gvalue_take_ptrarray_value (the GValues themselves
815           are discarded without unsetting, so it makes no difference whether
816           we take or set_static). Remove cases for G_TYPE_POINTER because
817           there really is nothing useful we can do with them in our
818           specialised types - we *need* boxed copy/free functions at the very
819           least.
820
821 2006-06-05  Thiago Macieira <thiago.macieira@trolltech.com>
822
823         * qt/dbus: Add directory. I had forgotten to add this
824         yesterday after the move...
825
826         * qt/examples/Makefile.am:
827         * qt/examples/dbus.cpp: Moved to qt/tools/dbus.cpp.
828
829         * qt/tools/Makefile.am:
830         * qt/tools/dbus.cpp: Moved from qt/examples/dbus.cpp.
831         Added feature to get and set properties.
832         Added validation of service, object path and interface names.
833
834         * qt/tools/dbusidl2cpp.cpp: Two new features:
835         1) Allow specifying both the header and the source file names,
836         by separating them with a colon.
837         2) Don't write an interface output if the -p switch wasn't
838         given, but the -a was.
839
840         * qt/src/*: Fix usage of Iterators and ConstIterators.
841         Fix shadowing of variables by other variables (-Wshadow).
842         Fix keyword-cleanliness in headers.
843         Fix ASCII-cast (QLatin1String, QLatin1Char).
844         Fix validation of member names.
845         Add extra checking of introspection data during XML parsing.
846         Various bug fixes.
847
848 2006-06-04  Thiago Macieira <thiago.macieira@trolltech.com>
849
850         * dbus/Makefile.am:
851         * dbus/qdbus.h: Remove unnecessary file. This is mirrored into
852         qt/dbus/qdbus.h now.
853
854 2006-06-04  Thiago Macieira <thiago.macieira@trolltech.com>
855
856         * configure.in: Make --disable-qt actually do
857           something. Patch inspired by Zack Rusin.
858
859 2006-06-04  Thiago Macieira <thiago.macieira@trolltech.com>
860
861         * qt/: Update to Subversion r548032.
862         This includes a big reorganisation of the files inside the
863         subdir.
864
865 2006-05-30  Sjoerd Simons  <sjoerd@luon.net>
866
867         * dbus/dbus-sysdeps.c: Make tcp socket connection error somewhat more
868         clear:  
869         "Failed to connect to socket <host>:<port> <error>" instead of
870         "Failed to connect to socket <host>: <error>:<port>"
871
872         * dbus/dbus-transport-unix.c: Fix crash when no host option is given
873         for a tcp transport. 
874
875 2006-05-29  Thiago Macieira  <thiago.macieira@trolltech.com>
876
877         * qt/*: Update the QtDBus bindings up to revision 546310 in
878         Subversion.
879         This adds the dbuscpp2xml tool, that parses a C++ header and
880         outputs a D-BUS Introspection XML.
881
882 2006-05-21  Havoc Pennington  <hp@redhat.com>
883
884         * glib/dbus-gproxy.c: Put in a pile of assertions that the proxy name
885         is not NULL when it shouldn't be. Also a couple of possible fixes
886         for #4637 though I don't understand why the bug happens, to be
887         honest... also the object constructor has an assert name != NULL
888         and the name is only currently NULL for peer-to-peer proxies that 
889         I don't think anyone uses? So it should be asserting.
890         Anyway, for now at least see if we get an earlier assertion failure.
891
892         * glib/dbus-gvalue-utils.c: Put in a couple of assertions for
893         apparently broken code to be sure the tests fail and someone 
894         will fix them...
895
896 2006-05-07  Thiago Macieira  <thiago.macieira@trolltech.com>
897
898         * qt/qdbusmarshall.cpp: Fix a problem of demarshalling lists
899         and arrays when they had a single element: has_next returns
900         false, even before you read the element. So, instead, check
901         the array length.
902
903 2006-05-06  Thiago Macieira  <thiago.macieira@trolltech.com>
904
905         * qt/qdbusmessage.cpp:
906         * qt/qdbustypehelper_p.h:
907         * qt/qdbusintegrator.cpp: gcc 3.4 doesn't like Q_FOREACH when
908         the list is a const-reference
909
910 2006-05-03  John (J5) Palmieri  <johnp@redhat.com>
911
912         * Adding old doc patch that never got applied
913         
914         * dbus/bus.c (dbus_bus_add_match): Add documentation
915
916         * doc/dbus-specification.xml: Add documentation for the match rules
917           and the AddMatch and RemoveMatch methods
918
919 2006-05-02  Thiago Macieira  <thiago.macieira@trolltech.com>
920
921         * qt/dbusidl2cpp.cpp: There's no callAsync. Use the correct
922         call (r535506)
923
924         * qt/dbusidl2cpp.cpp:
925         * qt/qdbusabstractadaptor.cpp:
926         * qt/qdbusabstractadaptor.h: Make QDBusAdaptorConnector be a
927         sibling of the QDBusAbstractAdaptor objects instead of the
928         parent. (r535848)
929
930         * qt/dbusidl2cpp.cpp:
931         * qt/qdbusabstractinterface.cpp:
932         * qt/qdbusabstractinterface.h:
933         * qt/qdbusabstractinterface_p.h:
934         * qt/qdbusinterface.cpp: Make properties in interfaces
935         actually work. The code that was generated would not compile,
936         due to moc calls to functions that did not exist. They now
937         shall. (r536571)
938
939 2006-04-30  Thiago Macieira  <thiago.macieira@trolltech.com>
940
941         * Makefile.am:
942         * configure.in:
943         * dbus-qt4-1.pc.in: Add a pkg-config file for libdbus-qt4-1.
944         Thanks to Brad Hards for providing the patch
945
946 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
947
948         * qt/dbusidl2cpp.cpp: There's no callAsync. Use the correct
949         call. (r535506)
950
951 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
952
953         * qt/examples/dbus.cpp: Enhance error messages and use
954         QDBusInterfacePtr.
955
956 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
957
958         * qt/qdbusinterface.h: Rename QDBusRef to QDBusInterfacePtr
959         and disable the copy operators. (r533772, r534746)
960
961         * qt/qdbuserror.h: Remove the automatic cast to bool. (r533929)
962
963         * qt/qdbusabstractinterface.cpp:
964         * qt/qdbusabstractinterface.h: Change the default call mode to
965         not use the event loop. Add convenience call() methods that
966         take a CallMode parameter. (r534042)
967
968         * qt/qdbusconnection.h: Change the default call mode to not
969         use the event loop. (r534042)
970
971         * qt/qdbusinterface.cpp:
972         * qt/qdbusinterface.h: Add a method to tell us if the
973         interface is valid (since we don't return a null pointer
974         anymore) (r534099)
975
976         * qt/qdbusinterface_p.h: Don't crash if metaObject is 0
977         (r534101)
978
979         * qt/qdbusinternalfilters.cpp: Decouple the introspection
980         function in two so taht we get the chance to introspect
981         without having a QDBusMessage (r534102)
982
983         * qt/qdbusbus.h:
984         * qt/qdbusconnection.cpp:
985         * qt/qdbusconnection_p.h:
986         * qt/qdbusintegrator.cpp: Keep a list of our own names to
987         avoid a round-trip to the server when attempting to introspect
988         one of our own objects. Also make sure the filter functions
989         match the empty interface as well. (r534108)
990         Don't keep the connection names. Instead, trust the unique
991         connection name (r534111)
992         Remove event loop usage (r534112)
993
994 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
995
996         * qt/qdbusintegrator.cpp: Fix assertion failure spotted by
997         Brad Hards.
998
999 2006-04-28  Robert McQueen  <robot101@debian.org>
1000
1001         * glib/dbus-gproxy.c: Fix properties so that they can be given in
1002         any order, making it easier for people who inherit from this
1003         object.
1004
1005 2006-04-28  Robert McQueen  <robot101@debian.org>
1006
1007         * glib/dbus-gvalue-utils.c: Patch from Jakub Stachowski to fix leaking
1008         of memory from within pointer arrays and lists. Fixes bug #6300.
1009
1010 2006-04-28  Robert McQueen  <robot101@debian.org>
1011
1012         * glib/dbus-gvalue.c: Patch from Jakub Stachowski to fix a leak in
1013         generating struct signatures. Fixes bug #6083.
1014
1015 2006-04-28  Robert McQueen  <robot101@debian.org>
1016
1017         * qt/Makefile.am: Tweak CLEANFILES from qdbusconnection.moc
1018         to qdbusconnection_p.moc.
1019
1020 2006-04-24 John (J5) Palmieri <johnp@redhat.com>
1021
1022         * README, INSTALL: Doc fixes
1023         Patch from Brad Hards <bradh at frogmouth.net>
1024
1025 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
1026
1027         * qt/examples/dbus.cpp: Use the new merged-interface mode for
1028         the dynamic meta object. No need to guess which interface to
1029         call.
1030
1031 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
1032
1033         * qt/qdbusconnection_p.h:
1034         * qt/qdbusmetaobject.cpp:
1035         * qt/qdbusmetaobject_p.h:
1036         * qt/qdbusintegrator.cpp: Use the new merged-interface mode
1037         for the dynamic meta object. No need to guess which
1038         interface to call.
1039         * qt/qdbusabstractinterface_p.h:
1040         * qt/qdbusconnection.cpp:
1041         * qt/qdbusintegrator.cpp:
1042         * qt/qdbusinterface.cpp:
1043         * qt/qdbusinterface.h: Make findInterface always return a non-null pointer.
1044         Add a QDBusRef that looks and behaves like DCOPRef.
1045
1046 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
1047
1048         * dbus/dbus-connection.c: Interfaces are optional in method
1049         calls, so don't give up if the interface parameter is NULL.
1050         Patch reviewed by Havoc Pennington.
1051
1052 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
1053
1054         * qt/qdbusreply.h: Add default constructor and operator=
1055           (r532625)
1056         * qt/qdbustypehelper_p.h: Use a clean namespace: no foreach()
1057           in public headers (r532952)
1058         * qt/qdbusabstractinterface.cpp:
1059         * qt/qdbusabstractinterface_p.h: Add the AutoDetect mode and
1060           make it the default (r532951)
1061
1062 2006-04-19  John (J5) Palmieri  <johnp@redhat.com>
1063
1064         * dbus/dbus-connection.c: Fix asserts
1065         Patch from Tim Moloney <t.moloney at verizon.net>
1066
1067 2006-04-19  John (J5) Palmieri  <johnp@redhat.com>
1068
1069         * mono/Connection.cs, mono/Message.cs: Check Target type
1070         Patch from Aaron Bockover (abockover at novell.com)
1071
1072 2006-04-13  Thiago Macieira  <thiago.macieira@trolltech.com>
1073
1074         * INSTALL: fine-tune the requirements for the Qt4 binding.
1075
1076 2006-04-16  Daniel P. Berrange  <dan@berrange.com>
1077
1078         * tools/dbus-print-message.c: Added support for printing of all 
1079           remaining data types. Fixed logic for indentation of compound
1080           data types.
1081         
1082 2006-04-15  Daniel P. Berrange  <dan@berrange.com>
1083
1084         * INSTALL: fill out content of file providing DBus specific
1085           build installations, followed by generic Auto* INSTALL file
1086           content
1087         
1088 2006-04-13  Thiago Macieira  <thiago.macieira@trolltech.com>
1089
1090         * qt/qdbusintegrator.cpp: Work around g++ 3.3 bug.
1091           Patch by Stefan Eilers. (r529537)
1092
1093 2006-04-13  Thiago Macieira  <thiago.macieira@trolltech.com>
1094
1095         * qt/qdbusinternalfilters.cpp: Don't show the parent's
1096           contents (r528208)
1097
1098 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
1099
1100         * qt/Makefile.am: fix the dependency for
1101           qdbusconnection_p.moc. It's included in qdbusintegrator.cpp,
1102           not in qdbusconnection.cpp.
1103           Thanks to Jakub Stachowski <stachowski@hypair.net> for
1104           spotting this.
1105
1106 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
1107
1108         * qt/examples/listnames.cpp:
1109         * qt/examples/Makefile.am: Three ways to list the names on the
1110           bus.
1111
1112 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
1113
1114         * test/qt/tst_hal.cpp: Remove the waiting, since it's not
1115           needed anymore. Requires Qt 4.1.3 to work properly. (r528148)
1116
1117 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
1118
1119         Merge from Subversion:
1120         * qt/qt-dbus.qdocconf: Update Trolltech's webpage link to
1121           something that exists (r526315)
1122         * qt/qdbusinternalfilters.cpp: Correctly detect non-scriptable
1123           slots/signals (r526316)
1124         * qt/qdbusinternalfilters.cpp: Fix the setProperty call and
1125           also return an unknown-method error if the parameters don't
1126           match for org.freedesktop.DBus.Properties. (r526842)
1127         * qt/examples/dbus.cpp: Allow passing of QVariants (r526843)
1128         * qt/qdbusintegrator.cpp: Restore the proper order of
1129           delivery: don't make method returns be delivered on priority
1130           (r528150)
1131
1132 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
1133
1134         * configure.in qt/Makefile.am: add qt/examples
1135         * qt/examples: Add QtDBus example programs:
1136           - hello: Hello, World
1137           - ping: Simple method-calling program
1138           - pong: Simple object-exporting program (not using adaptors)
1139           - complexping: Interactive method-calling program 
1140                 (also gets and sets properties).
1141           - complexpong: Sample program exporting methods, signals and
1142                 properties, using adaptors.
1143           - dbus: Simple implementation of a generic method-calling
1144                 program, similar to 'dbus-send', but with semantics
1145                 similar to 'dcop'.
1146           - chat: Simplistic chat program, implemented using signals
1147                 and the system bus. Looks like IRC.
1148
1149 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
1150
1151         * configure.in: Detect QtGui (necessary for one of the
1152           example programs). Note: this increases the minimum required
1153           version of Qt to 4.1.3.
1154
1155 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
1156
1157         * test/qt/*: Sync with KDE Subversion revision 523647.
1158         Update the testcases to the new API. Remove testcases for
1159         classes that are no longer public or have been removed.
1160
1161 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
1162
1163         * qt/*: 
1164         * dbus/qdbus.h: Sync with KDE Subversion revision
1165         523647. Hopefully, this will be the last of the
1166         source-incompatible changes. Documentation has been improved;
1167         support for QList<basic-types> has been added; QDBusObject is
1168         gone; QDBus(Abstract)Interface is now a QObject with
1169         auto-generated meta-object; QDBusIntrospection is marked
1170         private, since QMetaObject can be used now; lots of bugfixes.
1171
1172 2006-03-16  John (J5) Palmieri  <johnp@redhat.com>
1173
1174         Patch from Milosz Derezynski <internalerror at gmail.com>
1175         
1176         * configure.in:
1177         Output the service directory in the configure summary
1178
1179         * dbus-1.pc.in:
1180         Add session_bus_services_dir
1181
1182 2006-03-10  Ross Burton  <ross@openedhand.com>
1183
1184         * tools/dbus-print-message.c:
1185         Add support for object paths and signatures.
1186
1187 2006-03-06  Sjoerd Simons <sjoerd@luon.net>
1188
1189         * bus/bus.c: (bus_context_reload_config): Flush the user database cache on
1190         config reload.
1191         * bus/dbus-daemon.1.in: Also note that SIGHUP flushes the user/group
1192         information caches
1193         * dbus/dbus-hash.c: (_dbus_hash_table_remove_all): 
1194         * dbus/dbus-hash.h: Add function to remove all entries from a hash table
1195         * dbus/dbus-userdb.c: (_dbus_user_database_flush):
1196         * dbus/dbus-userdb.h: Add function to flush all user/group information
1197         caches.
1198
1199 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
1200
1201         * qt/dbusidl2cpp.cpp:
1202         * qt/Makefile.am: add the dbusidl2cpp tool, the replacement
1203         for dcopidl2cpp, found in the KDE installations (or the more
1204         modern kalyptus): generate Qt4 C++ code for the input XML
1205         introspection. Currently no IDL parsing.
1206
1207 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
1208
1209         * test/qt/*: Update the self-tests.
1210
1211 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
1212
1213         * qt/*: 
1214         * dbus/qdbus.h: Sync with KDE Subversion revision 516237. This
1215         represents the first feature-complete version of the Qt4
1216         bindings since I took ove maintainership.
1217
1218 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
1219
1220         * qt/Doxyfile: Adding a Doxyfile for the Qt4 bindings
1221         dir. This is C++, so we can't use the DBus ones.
1222
1223 2006-03-02  John (J5) Palmieri  <johnp@redhat.com>
1224
1225         * python/dbus_bindings.pyx: Remove refrence to sys/cdefs.h
1226         (Patch from Artem Kachitchkine <Artem.Kachitchkin at Sun.COM>)
1227
1228 2006-03-02  John (J5) Palmieri  <johnp@redhat.com>
1229
1230         * dbus/dbus-connection.c: 
1231         (_dbus_connection_block_pending_call):
1232         Check to see if our data has already been read off the connection
1233         by another blocking pending call before we block in poll.
1234         (check_for_reply_and_update_dispatch_unlocked):
1235         Code taken from _dbus_connection_block_pending_call - checks for
1236         an already read reply and updates the dispatch if there is one.
1237
1238         * test/name-test/test-pending-call-dispatch.c:
1239         New test for making sure we don't get stuck polling a 
1240         dbus connection which has no data on the socket when
1241         blocking out of order on two or more pending calls.
1242
1243 2006-02-28  Thiago Macieira <thiago.macieira@trolltech.com>
1244
1245         * qt/Makefile.am: Patch by Sjoerd Simons. More .moc issues:
1246         make/automake don't detect that we're talking about the same
1247         .lo file if I specify the full path to the source files.
1248
1249 2006-02-26  Havoc Pennington  <hp@redhat.com>
1250
1251         * bus/dbus-daemon.1.in: improve the language in a couple spots I noticed
1252
1253         * dbus/dbus-bus.c (internal_bus_get): in the error message if the
1254         session bus variable is unset, suggest "man dbus-launch" and "man
1255         dbus-daemon" to figure out how to fix the problem
1256
1257 2006-02-25  Havoc Pennington  <hp@redhat.com>
1258
1259         * glib/dbus-glib-tool.c (usage): fix up the usage message, someone
1260         should make this thing use the new glib options parser
1261
1262 2006-02-25  Thiago Macieira <thiago.macieira@trolltech.com>
1263
1264         * qt/Makefile.am: Patch by Sjoerd Simons. Fix the path to the
1265         .lo files taking moc sources.
1266
1267 2006-02-25  Havoc Pennington  <hp@redhat.com>
1268
1269         * dbus/dbus.h, dbus/Makefile.am: add dbus-signature.h to dbus.h
1270         and install it as a public header
1271
1272 2006-02-24  John (J5) Palmieri  <johnp@redhat.com>
1273
1274         * Released 0.61
1275
1276 2006-02-24  John (J5) Palmieri  <johnp@redhat.com>
1277         
1278         * proxies.py: Fix the callchain
1279
1280 2006-02-24  John (J5) Palmieri <johnp@redhat.com>
1281         
1282         * patch from Sjoerd Simons <sjoerd at debian.org>:      
1283
1284         * dbus/dbus-sysdeps-util.c (_dbus_group_info_free): Moved to 
1285         dbus/dbus-sysdeps.c
1286
1287         * dbus/dbus-userdb.c (_dbus_group_info_free_allocated): Don't
1288         call _dbus_group_info_free_allocated which causes infinite loop,
1289         correctly call _dbus_group_info_free
1290
1291 2006-02-20  Thiago Macieira <thiago.macieira@trolltech.com>
1292
1293         * qt/qdbusinterface_p.h:
1294         * qt/qdbusinterface.cpp: Use the standard
1295         org.freedesktop.DBus.Method.NoReply annotation for the "async"
1296         calls instead of creating one for us.
1297
1298         * qt/qdbusconnection_p.h:
1299         * qt/qdbusintegrator.cpp: Remove debugging code.
1300
1301         * qt/qdbusintegrator.cpp:
1302         * qt/qdbusmessage.cpp:
1303         * qt/qdbusmessage_p.h:
1304         * qt/qdbusmessage.h: Change the behaviour of automatic
1305         reply-sending: now a reply is always sent, unless the caller
1306         didn't request one or if the user slot has already sent one.
1307
1308 2006-02-16  Robert McQueen  <robot101@debian.org>
1309
1310         * configure.in: Patch from Debian packages by Sjoerd Simons
1311         <sjoerd@debian.org> to add --with-qt-moc and --with-qt3-moc
1312         arguments so it's possible to build both bindings in the
1313         same tree.
1314
1315         * qt/Makefile.am: Fix truncated value so that make dist works.
1316
1317 2006-02-16  Robert McQueen  <robot101@debian.org>
1318
1319         * acinclude.m4, configure.in: Patch from Brad Hards
1320         <bradh@frogmouth.net> to avoid warnings from autoconf 1.9 by
1321         improving quoting, re-ordering a few checks, and a few other
1322         aesthetic tidy-ups.
1323
1324 2006-02-16  Robert McQueen  <robot101@debian.org>
1325
1326         * dbus/dbus-message.c (dbus_message_iter_get_fixed_array):
1327         Patch from Rob Taylor <rob.taylor@collabora.co.uk> to correct a bogus
1328         assertion that the next element to read from the iter is fixed in
1329         size. This is not the case when you are at the end of the iter,
1330         because the next element type is INVALID.
1331
1332         * dbus/dbus-string.c (_dbus_string_init_const_len): Correct a
1333         a bogus assert which means that you may not initialise a 0-length
1334         string unless you provide a non-NULL pointer. This prevented
1335         you from marshalling messages containing zero-length arrays in
1336         some cases.
1337
1338         * glib/dbus-gvalue.c (demarshal_collection_array): Another patch
1339         from Rob to correct bogus asserts when trying to demarshal an
1340         array and get_fixed_array got you 0 elements. Append nothing to
1341         the GArray in this case.
1342
1343         * test/glib/test-dbus-glib.c: Add a test case for round-tripping
1344         an empty array via the glib bindings. Without all of the above
1345         patches, this new test fails.
1346
1347 2006-02-16  Robert McQueen  <robot101@debian.org>
1348
1349         * glib/dbus-gmain.c: Make the previous commit compile.
1350
1351         * python/_dbus.py, python/matchrules.py: Patch from Ole Andre
1352         Ravnaas <ole.andre.ravnaas@collabora.co.uk> to allow you to
1353         specify sender_keyword="foo", path_keyword="bar" when adding
1354         a signal listener, so that you can bind to signals generically
1355         but still do something useful in your callback.
1356
1357         * python/dbus_bindings.pyx: Demarshal the byte type as unsigned
1358         chars so that they're not cast to chars and made negative. Thanks
1359         to Jakub Stachowski for reporting this and testing the fix.
1360
1361 2006-02-15  John (J5) Palmieri  <johnp@redhat.com>
1362
1363         * dbus/dbus-glib.h:
1364         * glib/dbus-gmain.h:
1365         (dbus_g_connection_open): new method for openning
1366         a connection to an arbitrary address in the glib bindings
1367
1368         * ChangeLog: checkin last entry which doesn't seem to be commited
1369
1370 2006-02-13  John (J5) Palmieri  <johnp@redhat.com>
1371
1372         * tools/dbus-launch.c: Fixed sh syntax output
1373
1374 2006-02-13  Robert McQueen  <robot101@debian.org>
1375
1376         * glib/dbus-binding-tool-glib.c, glib/dbus-gmain.c,
1377         glib/dbus-gsignature.c, glib/dbus-gtype-specialized.c,
1378         glib/dbus-gtype-specialized.h, glib/dbus-gvalue-utils.c,
1379         glib/dbus-gvalue-utils.h, glib/dbus-gvalue.c:
1380         Patch from Rob Taylor <rob.taylor@collabora.co.uk> to add a big
1381         missing piece of the glib bindings jigsaw puzzle. This modifies
1382         the existing specialised types to have N type parameters (rather
1383         than the current 1 or 2 for arrays and dictionaries respectively).
1384         You can then use this to get a glib type to represent any arbitrary
1385         D-Bus struct type using dbus_g_type_get_struct. The only
1386         implementation of these types is with GValueArrays as before,
1387         but it's now possible to store these in arrays, emit them in
1388         signals, etc.
1389
1390 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
1391
1392         * dbus/dbus-signature.c (dbus_signature_iter_recurse): Correctly
1393         deal with nested arrays (Bug #5823) Patch by Thiago Macieira 
1394         <thiago.macieira at trolltech.com>
1395
1396 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
1397
1398         * mono/doc/Makefile.am: Fix parallel make problem with mono-doc
1399         (Bug #4213) Patch from Doug Goldstein <cardoe at gentoo.org>
1400
1401 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
1402
1403         * bus/connection.c (bus_connections_expect_reply): Make
1404         pending reply limit not common to all connections (Bug #5416)
1405         Patch from Kimmo Hämäläinen <kimmo.hamalainen at nokia.com>
1406
1407 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
1408
1409         * tools/dbus-launch.c: Fixed csh syntax output (Bug #5720)
1410
1411 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
1412
1413         * gcj/Makefile.am: point to correct jar command (Bug #4529)
1414         patch from Doug Goldstein <cardoe at gentoo.org>
1415
1416 2006-02-09  Joe Shaw  <joeshaw@novell.com>
1417
1418         * mono/Arguments.cs: Fix a magic number in the mono bindings
1419         that doesn't work on 64 bit arches.  Patch from Peter Johanson.
1420
1421 2006-01-27  Robert McQueen  <robot101@debian.org>
1422
1423         * glib/dbus-binding-tool-glib.[ch]: Patch based on Ricardo Kekki's
1424         patch to use an annotation org.freedesktop.DBus.GLib.ClientCSymbol
1425         when generating the client-side methods, instead of overloading
1426         CSymbol which broke everything horribly. My apologies.
1427
1428 2006-01-27  Robert McQueen  <robot101@debian.org>
1429
1430         * glib/dbus-gtype-specialized.[ch], glib/dbus-gvalue-utils.c: Patch
1431         by me and Rob Taylor to add a simple_free function to D-Bus map
1432         and collection types, which allows those types which can be freed
1433         with a GDestroyNotify (such as GHashTables and GArrays, but not
1434         GPtrArrays) to be stored as the values in hashtables.
1435
1436         * test/glib/test-dbus-glib.c, test/glib/test-service-glib.{c,xml}:
1437         Patch by Rob Taylor to add nested dicts to the glib tests to check
1438         the above code works, and appears not to leak when called repeatedly.
1439
1440 2006-01-27  Robert McQueen  <robot101@debian.org>
1441
1442         * glib/dbus-gvalue.c (demarshal_valuearray): Patch from Rob Taylor
1443         to free a D-Bus allocated string with dbus_free () instead of
1444         g_free ().
1445
1446 2006-01-27  Iain Holmes  <iain@openedhand.com>
1447
1448         * glib/dbus-gproxy.c (dbus_g_proxy_dispose): Protect the dispose
1449         method from being called multiple times.
1450
1451 2006-01-19  Robert McQueen  <robot101@debian.org>
1452
1453         * glib/dbus-binding-tool-glib.c: Patch from Rob Taylor
1454         <rob.taylor@collabora.co.uk> to add support for generating bindings
1455         to arrays that are represented as GPtrArrays rather than GArrays (ie
1456         size-variable things, such as strings, objects, structs, etc).
1457
1458 2006-01-05  Robert McQueen  <robot101@debian.org>
1459
1460         * dbus/dbus-glib.h, glib/dbus-gproxy.c: Patch from Ricardo Kekki
1461         <ricardo.kekki@movial.fi> to make it possible to inherit from
1462         DBusGProxy, by splitting the DBusGProxy struct into a public part and
1463         a private part, and moving the setting of the DBusGProxyManager into a
1464         connection property, allowing proper GObject construction.
1465
1466 2006-01-05  Robert McQueen  <robot101@debian.org>
1467
1468         * glib/dbus-binding-tool-glib.c: Patch from Ricardo Kekki
1469         <ricardo.kekki@movial.fi> to make dbus-binding-tool heed C symbol name
1470         annotations when generating glib client bindings.
1471
1472 2005-12-19 John (J5) Palmieri  <johnp@redhat.com>
1473
1474         * dbus/dbus-shared.h: Call it shared constants instead of shared macros
1475
1476         * dbus/dbus-protocol.h: add DOxygen markup to quiet warnings
1477
1478 2005-12-19 John (J5) Palmieri  <johnp@redhat.com>
1479
1480         * dbus/dbus-shared.h: add DOxygen markup to quiet warnings
1481
1482 2005-12-19 John (J5) Palmieri  <johnp@redhat.com> 
1483
1484         * dbus/dbus-macros.h: correct DOxygen end of section (s/}@/@})
1485
1486 2005-12-19  Ross Burton  <ross@openedhand.com>
1487
1488         * doc/dbus-tutorial.xml:
1489         Document the Glib client-side bindings, and list all possible annotations.
1490
1491 2005-12-19  John (J5) Palmieri  <johnp@redhat.com>
1492
1493         * dbus/bus.c (dbus_bus_release_name): Add documentation
1494
1495 2005-12-06  Robert McQueen  <robot101@debian.org>
1496
1497         * python/service.py: s/sucessful/successful/ so we're allocating to
1498         and reading from the same variable. Oops.
1499
1500 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
1501
1502         * Released 0.60
1503
1504 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
1505
1506         * test/qt/Makefile.am: build from srcdir
1507
1508         * qt/qtconnection.cpp (requestName): Changed PROHIBIT_REPLACE to ALLOW_REPLACE
1509         Note - this code is wrong and needs to be fixed by the Qt binding
1510         developers.  The flags should be treated as bitfields and not enums.
1511
1512         * qt/qtconnection.h: Change ProhibitReplace to AllowReplace
1513
1514 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
1515
1516         * dbus/dbus-list.c (_dbus_list_insert_after_link, _dbus_list_insert_after, 
1517           link_after): remove #ifdef DBUS_BUILD_TESTS since we use these methods 
1518           in production code
1519
1520 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
1521
1522         * dbus/dbus-connection.c (dbus_connection_read_write): Add new
1523         method for getting messages off the bus in the absence of a
1524         mainloop.  This method is much like 
1525         dbus_connection_read_write_dispatch except it does not dispatch
1526         the messages to a registered filter function.  Instead it
1527         allows a developer to process messages by directly popping
1528         them off the bus.
1529
1530 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
1531
1532         * bus/desktop-file.c (parse_key_value): Ignore locales allowing 
1533         the parser to continue instead of returning error
1534         (bus_desktop_file_load): Do not free parser data when
1535         parse_section_start or parse_key_value fails because it was 
1536         already freed by parser_free (patch from Carlos Garcia Campos  
1537         <carlosgc at gnome.org>)
1538
1539 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
1540
1541         * dbus/dbus-auth.c, dbus/dbus-connection.c, dbus/dbus-keyring.c,
1542         dbus/dbus-server-debug-pipe.c, glib/dbus-binding-tool-glib.c
1543         glib/dbus-glib-tool.c, glib/dbus-gparser.c, glib/dbus-gproxy.c
1544         test/test-segfault.c, test/test-utils.c,
1545         test/glib/test-dbus-glib.c, tools/dbus-cleanup-sockets.c
1546         tools/dbus-launch.c, tools/dbus-tree-view.c, tools/dbus-viewer.c:
1547         Various cleanup of dead code and compiler warnings (patch from
1548         Kjartan Maraas <kmaraas at gnome.org>) 
1549
1550 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
1551
1552         * glib/dbus-gmain.c (connection_setup_add_watch): plugged a leak
1553         (patch from Carlos Garnacho Parro <carlosg at gnome.org>
1554
1555 2005-11-27  Robert McQueen  <robot101@debian.org>
1556
1557         * python/dbus_bindings.pyx: Repair my previous commit which reverted
1558         part of the preceding one. Oops. Merge patch by Johan Hedberg
1559         <johan.hedberg@nokia.com> to fix marshalling of 16-bit integer values
1560         on big-endian platforms.
1561
1562         * test/python/test-client.py: Add some 16-bit integers to the test
1563         values.
1564
1565 2005-11-27  Carlos Garcia Campos  <carlosgc@gnome.org>
1566
1567         * glib/dbus-gobject.c: Append a GValue instead of a basic type in
1568         method return message for property getters
1569
1570 2005-11-27  Robert McQueen  <robot101@debian.org>
1571
1572         * python/dbus_bindings.pyx: Fix a bug where doing a strict append
1573         with type v of an instance of dbus.Variant(foo, type='x') caused
1574         it to be boxed twice before sending over the bus.
1575
1576         * python/dbus_bindings.pyx, python/service.py,
1577         test/python/test-client.py: Update the constants for the new
1578         request_name flags, and update comments/test cases now that queueing
1579         is the default action.
1580
1581 2005-11-22  John (J5) Palmieri  <johnp@redhat.com>
1582
1583         * configure.in:
1584         - Change version to 0.60 for impending release
1585         - upped the sonames because of ABI and API breakage
1586
1587 2005-11-22  John (J5) Palmieri  <johnp@redhat.com>
1588
1589         * configure.in: Add test/name-test/Makefile to the generated
1590         Makefile list
1591
1592         * dbus/dbus-shared.h (#define DBUS_NAME_FLAG_ALLOW_REPLACEMENT):
1593         New flag which replaces DBUS_NAME_FLAG_PROHIBIT_REPLACEMENT
1594         (#define DBUS_NAME_FLAG_DO_NOT_QUEUE): New flag for specifying
1595         not to queue an ower if it can't be the primary owner
1596
1597         * bus/bus.h: Add new internal BusOwner struct
1598
1599         * bus/driver.c (bus_driver_handle_hello): Send flags (0 for default)
1600         to bus_registry_ensure and don't set the prohibit_replacement flag
1601         since they are now set per BusOwner and not per name.
1602         (bus_driver_handle_list_queued_owners): bus method (ListQueuedOwners) 
1603         that returns the list of connections in a name's connection queue
1604         
1605         * bus/services.c (struct BusService): remove prohibit_replacement field
1606         (struct BusOwner): new struct for keeping track of queued connections
1607         and their associated flags for the queue
1608         (struct BusRegistry): add a BusOwner memory pool
1609         (bus_registry_new): initialize the BusOwner memory pool
1610         (bus_registry_unref): free the BusOwner memory pool
1611         (_bus_service_find_owner_link): new internal method for
1612         searching the queue for a specific connection
1613         (bus_owner_set_flags): new method for adding setting the flags on a
1614         bus owner
1615         (bus_owner_new): new method that creates a BusOwner object from the
1616         pool and sets its flags
1617         (bus_owner_ref, bus_owner_unref): ref counting for BusOwner objects
1618         (bus_registry_ensure): Add the flags parameter
1619         (bus_registry_acquire_service): Switch from using raw connections to
1620         using the BusOwner struct
1621         Add new state machine for dealing with the new set of flags
1622         (bus_registry_set_service_context_table, struct OwnershipCancelData, 
1623         cancel_ownership, free_ownership_cancel_data, 
1624         add_cancel_ownership_to_transaction, struct OwnershipRestoreData, 
1625         restore_ownership, free_ownership_restore_data, 
1626         add_restore_ownership_to_transaction): Switch to using BusOwner 
1627         instead of raw connections
1628         (bus_service_add_owner): Add flags parameter
1629         Switch to using BusOwner instead of raw connections
1630         Add state machine for dealing with the new set of flags
1631         (bus_service_swap_owner): Swaps the first and second owners in the
1632         queue.  Used to make sure proper signals are sent when a service looses 
1633         or gains primary ownership.  We never insert an owner at the top of the
1634         queue.  Instead we insert it in the second position and then swap.
1635         (bus_service_remove_owner): Remove the owner from the queue sending
1636         out the NameLost and NameOwnerChanged signals if the we were the 
1637         primary owner
1638         (bus_service_get_primary_owners_connection): New method that extracts
1639         the connection from the primary owner
1640         (bus_service_get_primary_owner): Returns the BusOwner instead of the 
1641         connection
1642         (bus_service_get_allow_replacement): Changed from the old 
1643         bus_service_get_prohibit_replacement method.  Checks the flags of the 
1644         primary owner and returns if it can be replaced or not
1645         (bus_service_set_prohibit_replacement): removed
1646         (bus_service_has_owner): returns TRUE if and owner with
1647         the specified connection exists in the queue
1648         
1649         * dbus/dbus-bus.c (dbus_bus_connection_get_unique_name): New helper
1650         method that only compiles if tests are enabled.  Allows us to get the 
1651         unique name of a connection so we can check it against the queue when
1652         doing regression tests
1653
1654         * bus/activation.c (bus_activation_send_pending_auto_activate),
1655         bus/dispatch.c (bus_dispatch),  
1656         bus/driver.c (bus_driver_handle_get_service_owner, 
1657         bus_driver_handle_get_connection_unix_user, 
1658         bus_driver_handle_get_connection_unix_process_id,
1659         bus_driver_handle_get_connection_selinux_security_context),
1660         bus/signals.c (connection_is_primary_owner): 
1661         use bus_service_get_primary_owners_connection instead of
1662         bus_service_get_primary_owner
1663
1664         * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket, 
1665         _dbus_listen_unix_socket): Calculate the length of the socket
1666         path and use that instead of using a fixed length which was
1667         causing socket names to contain many trailing Nul bytes.
1668
1669         * dbus/dbus-glib-lowlevel.h, glib/dbus-gobject.c
1670         (dbus_g_method_get_sender): New method for extracting the sender 
1671         from a DBusGMethodInvocation
1672         (dbus_g_method_return_get_reply): changed name to 
1673         dbus_g_method_get_reply
1674         (dbus_g_method_return_send_reply): changed name to
1675         dbus_g_method_send reply
1676
1677         * doc/dbus-specification.xml: New docs that describe how the new
1678         queueing system works and talks about the changes to the how
1679         we specify socket names
1680
1681         * glib/examples/example-service.c, 
1682         glib/examples/example-signal-emitter.c,
1683         glib/examples/statemachine/statemachine-server.c:
1684         Changed the RequestName flags to the new system
1685
1686         * test/name-test/ (test-names.c, run-test.sh, Makefile.am): New
1687         regression test suite for testing various states of the new
1688         queueing system
1689         
1690 2005-11-15  Robert McQueen  <robot101@debian.org>
1691
1692         * dbus/dbus-glib-lowlevel.h, glib/dbus-gobject.c: Patch from Rob
1693         Taylor to add two methods, dbus_g_method_return_get_reply and
1694         dbus_g_method_return_send_reply, to allow you to get the reply
1695         message from a DBusGMethodInvocation, append arbitrary stuff to it,
1696         and send it. The GLib bindings can't marshal a return value of
1697         something like a(s) if the array is empty - ultimately they should be
1698         made to heed the signature of the out arguments as the Python bindings
1699         now can, but this is a workable interim solution which might have
1700         other applications.
1701
1702 2005-11-15  Robert McQueen  <robot101@debian.org>
1703
1704         * bus/driver.c, bus/services.c, bus/services.h: Add a ReleaseName
1705         method to org.freedesktop.DBus to release a bus name or give up
1706         waiting in the queue for it.
1707
1708         * dbus/dbus-bus.c, dbus/dbus-bus.h, dbus/dbus-shared.h: Add a
1709         dbus_bus_release_name method to send the ReleaseName method calls.
1710         Add constants for the return values to dbus/dbus-shared.h.
1711
1712         * doc/dbus-specification.xml: Document the new ReleaseName method
1713         in the specification.
1714
1715         * python/dbus_bindings.pyx: Add a low-level python binding for the
1716         release name method.
1717
1718         * python/exceptions.py, python/service.py: Make freeing BusName
1719         objects release the name. Add a NameExistsException, and fix a
1720         bug with creating UnknownMethodException.
1721
1722         * test/python/test-client.py: Add tests for freeing BusName
1723         objects causing names to be released.
1724
1725 2005-11-14  Robert McQueen  <robot101@debian.org>
1726
1727         * python/service.py: Include the traceback in the error reply when we
1728         send an exception over the bus. _BEST_ _PATCH_ _EVER_
1729
1730 2005-11-14  David Zeuthen  <davidz@redhat.com>
1731
1732         Patch from Timo Hoenig <thoenig@suse.de>.
1733
1734         * bus/bus.c: I've recently investigated why the automatic reload
1735         of configuration files does not work as expected.
1736
1737         Currently, reloading configuration files does only work when
1738         running dbus-daemon with --nodaemon.  If we are running as daemon
1739         we're hitting a dnotify bug once we fork the process.
1740
1741         We're initializing the dnotify fds before calling fork().  Once
1742         the child process forked it does still have the fds (and they
1743         still show up in /proc/`pidof dbus-daemon`/fd/) but we're not
1744         getting SIGIO as changes are made to the configuration files.
1745
1746         The attached patch moves the initialization of the dnotify fds to
1747         process_config_postinit().  This is safe for all current code
1748         paths and solves the dnotify disfunction.  If we're running
1749         dbus-daemon as daemon the fds for dnotify are now being
1750         initialized after fork() for the child process.
1751
1752         * configure.in: The current configure.in check for dnotify probes
1753         'x$target_os' for being 'xlinux-gnu'.  I've changed the check to
1754         match for 'xlinux', too. Additionally I have adapted the configure
1755         option's style to match with the others.
1756
1757 2005-11-14  Robert McQueen  <robot101@debian.org>
1758
1759         * python/decorators.py, python/service.py: Add a new argument to the
1760         dbus.service.method decorator called sender_keyword, which if set,
1761         specifies the name of an argument which will be provided the bus
1762         name of the method caller.
1763
1764         * test/python/test-client.py, test/python/test-service.py: Add a
1765         method and test to check the sender_keyword functionality.
1766
1767 2005-11-07  John (J5) Palmieri  <johnp@redhat.com>
1768
1769         * bus/driver.c (bus_driver_handle_reload_config): Make sure we send an 
1770         empty reply so blocking calls don't block forever (Patch from Sjoerd 
1771         Simons <sjoerd at luon.net>)
1772
1773         * AUTHORS: Add Robert McQueen for his work on the Python
1774         Bindings and other parts of D-Bus
1775
1776 2005-11-07  Robert McQueen  <robot101@debian.org>
1777
1778         * python/decorators.py: Change emit_signal function to use the
1779         signature annotation of the signal when marhsalling the arguments from
1780         the service. Fix a bug where the code checking signature length
1781         against argument length referenced the wrong variable.
1782
1783         * python/introspect_parser.py: Avoid adding the type signature of
1784         signal arguments to any methods which occur after them in the
1785         introspection data (!) by making the parser a little more careful
1786         about its current state.
1787
1788         * python/service.py: Remove debug prints from last commit (again :D).
1789
1790         * test/python/test-client.py, test/python/test-service.py: Add test
1791         signals with signature decorators to test the strict marshalling code
1792         gives errors at the right time. Could do with checking the signals
1793         actually get emitted too, given that the test does nothing with
1794         signals at the moment...
1795
1796 2005-11-07  Robert McQueen  <robot101@debian.org>
1797
1798         * python/_dbus.py: Add WeakReferenceDictionary cache of dbus.Bus
1799         instances to stop madness of creating new instances representing
1800         the same bus connection all the time, rendering any tracking of
1801         match rules and bus names quite meaningless. Caught a bug where
1802         the private argument to SessionBus() and friends was being passed
1803         in as use_default_mainloop by mistake. Still some problems with
1804         multiple dbus_binding.Connection instances representing the same
1805         low-level connection (eg when you use both SessionBus() and
1806         StarterBus() in same process), but it's a lot better now than it
1807         was.
1808
1809         * python/dbus_bindings.pyx: Add constants with the return values
1810         for bus_request_name().
1811
1812         * python/service.py: Store bus name instances in a per-dbus.Bus cache
1813         and retrieve the same instances for the same name, so deletion can be
1814         done with refcounting. Also now throws some kind of error if you
1815         don't actually get the name you requested, unlike previously...
1816
1817         * test/python/test-client.py: Add tests for instance caching of buses
1818         and bus name objects.
1819
1820 2005-11-04  Robert McQueen  <robot101@debian.org>
1821
1822         * python/dbus_bindings.pyx, test/python/test-client.py: Fix
1823         marshalling of boolean values. Add some booleans to the values in
1824         the test client.
1825
1826         * python/decorators.py, python/service.py: Add an 'async_callbacks'
1827         argument to the dbus.service.method decorator, which allows you to
1828         name arguments to take two callback functions for replying with
1829         return values or an exception.
1830
1831         * test/python/test-client.py, test/python/test-service.py: Add test
1832         case using asynchronous method reply functions, both return values and
1833         errors, and from within both the function itself and from a mainloop
1834         callback.
1835
1836         * python/decorators.py, python/service.py: Perform checking that the
1837         number of method/signal arguments matches the number of types in the
1838         signature at class loading time, not when you first introspect the
1839         class.
1840
1841         * python/service.py: Remove debug print left by the last commit.
1842
1843 2005-11-03  Robert McQueen  <robot101@debian.org>
1844
1845         * python/service.py: Heavy refactoring of method invocation, with
1846         hopefully no effect on functionality. Nuked _dispatch_dbus_method_call
1847         in favour of a new _message_cb that uses seperate functions for
1848         looking up the method to call, marshalling the return values, and
1849         sending exceptions as errors, and is easier to follow as a
1850         consequence.  Fixes some corner cases about returning things that
1851         don't match your declared out_signature, allows exceptions to define
1852         _dbus_error_name and have it be sent over the bus as the error name,
1853         and paves the way for cool stuff like heeding the message no reply
1854         flag, asynchronous method implementations, informing the method of the
1855         sender, and including backtraces in the error messages.
1856
1857         * test/python/test-client.py: Catch and print exceptions thrown in the
1858         async callback tests, rather than passing them to the low-level
1859         bindings to be ignored in a noisy and frustrating manner.
1860
1861 2005-11-03  Robert McQueen  <robot101@debian.org>
1862
1863         * python/_dbus.py, python/proxies.py, python/service.py: Add __repr__
1864         functions to dbus.Bus, dbus.service.BusName and dbus.service.Object,
1865         tweak others to be consistent.
1866
1867         * test/python/test-client.py: Tweak output of testInheritance.
1868
1869 2005-10-29  Robert McQueen  <robot101@debian.org>
1870
1871         * python/service.py: Major changes to allow multiple inheritance
1872         from classes that define D-Bus interfaces:
1873         
1874          1. Create a new Interface class which is the parent class of
1875             Object, and make the ObjectType metaclass into InterfaceType.
1876         
1877          2. Patch written with Rob Taylor to replace use of method_vtable
1878             with code that walks the class's __MRO__ (method resolution order)
1879             to behave like Python does when invoking methods and allow
1880             overriding as you'd expect. Code is quite tricky because
1881             we have to find two methods, the one to invoke which has the
1882             right name and isn't decorated with the /wrong/ interface,
1883             and the one to pick up the signatures from which is decorated
1884             with the right interface.
1885         
1886             The same caveats apply as to normal multiple inheritance -
1887             this has undefined behaviour if you try and inherit from two
1888             classes that define a method with the same name but are
1889             decorated with different interfaces. You should decorate
1890             your overriding method with the interface you want.
1891         
1892          3. Replace grungy introspection XML generation code in the metaclass
1893             with dictionaries that cope correctly with multiple inheritance
1894             and the overriding of methods. This also uses the signature
1895             decorations to provide correct introspection data, including
1896             the debut appearance of the types of your return values. :D
1897
1898         * test/python/test-client.py, test/python/test-service.py: Add a test
1899         case to try invoking an method that overrides one inherited from a
1900         D-Bus interface class.
1901
1902 2005-10-29  Robert McQueen  <robot101@debian.org>
1903
1904         * python/dbus_bindings.pyx: Tweak 'raise AssertionError' to assert().
1905         Add checking for the end of struct character when marshalling a
1906         struct in MessageIter.append_strict.
1907
1908         * python/examples/example-service.py,
1909         python/examples/gconf-proxy-service.py,
1910         python/examples/gconf-proxy-service2.py: Update to use gobject
1911         mainloop directly rather than appearing to depend on gtk.
1912
1913         * python/test/test-client.py, python/test/test-server.py: Remove
1914         obsolete and broken test scripts for old bindings. We have up to date
1915         and working tests in test/python/.
1916
1917 2005-10-29  Robert McQueen  <robot101@debian.org>
1918
1919         * python/decorators.py: Add optional arguments to the method and
1920         signal decorators to allow you to specify the signature of arguments
1921         and return values. Preserve the doc strings of signal functions in the
1922         decorated version, for pydoc and friends.
1923
1924         * python/dbus_bindings.pyx, python/proxies.py: Replace the
1925         parse_signature_block function with an iterable dbus.Signature()
1926         type. Fix a bug in MessageIter.append_strict where you could append
1927         anything by claiming it was a string.
1928
1929         * python/service.py: Use the out_signature decoration on methods to
1930         marshal return values, meaning you no longer require dbus.Array()
1931         or dbus.Dictionary() to indicate the type when returning empty
1932         arrays or dictionaries. Fix a bug where exceptions which are defined
1933         in __main__ are not turned into error replies.
1934
1935         * test/python/test-client.py, test/python/test-service.py: Add test
1936         for correct marshalling of return values according to out_signature.
1937         Fix a bug in the async call test where the error_handler is missing a
1938         self argument.
1939
1940 2005-10-29  Robert McQueen  <robot101@debian.org>
1941
1942         * glib/Makefile.am, glib/examples/Makefile.am,
1943         glib/examples/statemachine/Makefile.am: Merge patch from Ubuntu by
1944         Daniel Stone to replace explicit calls to libtool with $(LIBTOOL).
1945
1946         * test/python/.cvsignore: Add run-with-tmp-session-bus.conf.
1947
1948         * tools/dbus-monitor.1, tools/dbus-monitor.c: Merge dbus-monitor patch
1949         from Ubuntu by Daniel Silverstone to allow specifying match rules on
1950         the command line.
1951
1952 2005-10-27  Ross Burton  <ross@openedhand.com>
1953
1954         * dbus/dbus-marshal-header.c:
1955         Remove dead code.
1956
1957         * glib/dbus-gobject.c:
1958         Stop compiler warning.
1959
1960 2005-10-25  Ross Burton  <ross@openedhand.com>
1961
1962         * dbus/dbus-auth.c:
1963         * dbus/dbus-server-unix.c:
1964         * dbus/dbus-transport-unix.c:
1965         * glib/dbus-gmain.c:
1966         * glib/dbus-gobject.c:
1967         Add some const keywords.
1968
1969 2005-10-25  Ross Burton  <ross@openedhand.com>
1970
1971         * doc/dbus-specification.xml:
1972         Document the NoReply annotation.
1973
1974         * glib/dbus-binding-tool-glib.h:
1975         * glib/dbus-binding-tool-glib.c:
1976         Respect the NoReply annotation.
1977
1978 2005-10-24  Robert McQueen <robot101@debian.org>
1979
1980         * python/dbus_bindings.pyx (String, MessageIter): make D-Bus strings
1981         derive from unicode instead of str, and encode/decode UTF-8 when
1982         marshalling/unmarshalling bus messages
1983
1984         * python/introspect_parser.py: encode introspection data as UTF-8
1985         before passing the buffer into libxml2
1986
1987         * test/python/test-client.py: add unicode test strings
1988
1989         * test/data/valid-service-files/.cvsignore, test/python/.cvsignore:
1990         ignore generated python test files
1991
1992 2005-10-17  John (J5) Palmieri  <johnp@redhat.com>
1993
1994         * glib/dbus-gvalue-utils.c (hash_free_from_gtype): handle gdouble
1995         and G_TYPE_VALUE_ARRAY (DBUS_TYPE_STRUCT)
1996         (gvalue_from_hash_value, hash_value_from_gvalue): handle gdouble
1997
1998         * glib/dbus-gvalue.c (dbus_gvalue_to_signature): add missing
1999         DBUS_STRUCT_BEGIN_CHAR and DBUS_STRUCT_END_CHAR charaters
2000         when constructing struct signatures
2001
2002         * python/_dbus.py (Bus): handle private connections using the
2003         private keyword in the constructor. defaults to private=False
2004         (Bus::close): new method to close a connection to the bus
2005
2006         * python/dbus_bindings.pyx (Connection::close): renamed method
2007         was previously called disconnect
2008         (bus_get): now supports getting a private connection
2009
2010         * python/proxies.py (ProxyMethod::__call__): check if ignore_reply
2011         keyword is set to True.  if it is, execute the method without waiting
2012         for a reply
2013         (ProxyObject::_introspect_execute_queue): new method for executing
2014         all the pending methods that were waiting for the introspect to
2015         finish.  this is called when introspect either succeeds or fails
2016         (ProxyObject::_introspect_error_handler): call queued methods
2017
2018 2005-10-14  John (J5) Palmieri  <johnp@redhat.com>
2019
2020         * python/dbus_bindings.pyx (MessageIter::append_strict): check for
2021         STRUCT_BEGIN not TYPE_STRUCT in indicate we are marshalling a struct
2022
2023         * python/service.py (Object::_message_cb): handle exceptions correctly
2024         by sending them over the wire to the calling app.  This makes sure
2025         the client returns immediately instead of waiting the 15 seconds to
2026         timeout.
2027
2028         * test/python/test-client.py (TestDBusBindings::testBenchmarkIntrospect): 
2029         Add a test to benchmark how long it takes to introspect a service and 
2030         call a method which returns a large element (pretty fast)
2031
2032         * test/python/test-service.py (TestObject::GetComplexArray): new test 
2033         method which pushes a lot of data
2034
2035 2005-10-13  John (J5) Palmieri  <johnp@redhat.com>
2036
2037         * python/service.py(ObjectType::_reflect_on_signal, _reflect_on_method):        
2038         reclaim memory outside of the loop and use del istead of just setting
2039         the key to None
2040
2041 2005-10-13  John (J5) Palmieri  <johnp@redhat.com>
2042
2043         * python/service.py (ObjectType::_reflect_on_signal): Always close
2044         signal tag even when there are no arguments
2045
2046 2005-10-13  John (J5) Palmieri  <johnp@redhat.com>
2047
2048         * configure.in: Set mono, mono-docs and Qt3 to default
2049         to no instead of auto when building.  These bindings do not
2050         have full time maintainers and will not be supported for the
2051         1.0 release.
2052
2053 2005-10-12  John (J5) Palmieri  <johnp@redhat.com>
2054
2055         patches from Michael Krivoruchko <misha at sun.com>: 
2056         
2057         * dbus/dbus-connection.c (_dbus_connection_queue_received_message_link,
2058         _dbus_connection_message_sent, 
2059         _dbus_connection_send_preallocated_unlocked_no_update, 
2060         _dbus_connection_pop_message_link_unlocked): handle the case when path 
2061         is NULL when calling _dbus_verbose
2062
2063         * configure.in: check for functions getpeerucred and getpeereid
2064
2065         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): provides 
2066         support of auth EXTERNAL on Solaris 10+ (getpeerucred), FreeBSD 4.6+, 
2067         OpenBSD 3.0+ and FreeBSD 5.0+ as well as MacOSX 10.2+ (getpeereid). 
2068         Patch was only tested on Solaris 10 x86 so it might be issues
2069         with other platforms (i.e. BSDs and MacOSX)
2070         
2071
2072 2005-10-05  John (J5) Palmieri  <johnp@redhat.com>
2073
2074         * glib/dbus-gvalue.c (marshal_variant): call _dbus_gvalue_marshal 
2075         instead of marshal basic so we can handle recursive types in a variant
2076
2077         * test/glib/test-dbus-glib.c: Add test for marshaling recurive types
2078         in variants
2079
2080         * test/glib/test-service-glib.c, test-service-glib.xml
2081         (my_object_echo_variant [EchoVariant], 
2082         my_object_process_variant_of_array_of_ints123
2083         [ProcessVariantOfArrayOfInts123]): 
2084         Add two test methods
2085
2086         * python/introspect_parser.py: New module for parsing introspect
2087         data.
2088
2089         * python/dbus_bindings.pyx:
2090         (various places): when throwing errors fix to use errormsg instead 
2091         of message local variable because Pyrex can get confused with other 
2092         message variables (initial patch by Robert McQueen 
2093         <robert.mcqueen at collabora.co.uk>)
2094         (MessageIter::parse_signature_block): new method for getting the next
2095         block in a signiture.
2096         (MessageIter::append_strict): new method for appending values strictly
2097         using the passed in signature instead of guessing at the type
2098         (MessageItter:: append_dict, append_struct, append_array): use 
2099         signatures to marshal children if the signature is available
2100         
2101         * python/exceptions.py (IntrospectionParserException): new exception
2102
2103         * python/proxies.py (ProxyMethod::__call__): Marshal args with 
2104         introspected signatures if available, else we fall back to the
2105         old way of doing things.
2106         (ProxyObject::_introspect_reply_handler ): parse introspection data
2107         
2108         * python/service.py (ObjectType::_reflect_on_method): Properly
2109         terminate <method> if there are no args in the reflection data
2110
2111         * test/python/test-client.py: add tests for talking with the GLib
2112         test server.  This gives us better coverage for introspection since
2113         python to python will always generate arguments as variants.  It also
2114         allows us to test the robustness of the GLib bindings and interlanguage
2115         communications.
2116
2117         
2118 2005-10-03  John (J5) Palmieri  <johnp@redhat.com>
2119
2120         * bus/driver.c (bus_driver_handle_introspect): Add signals
2121         to the introspect data. (patch from Daniel P. Berrange 
2122         <dan at berrange.com>)
2123
2124         * bus/dispatch.c (check_existent_ping): Add testcase for Ping
2125         
2126         * dbus/dbus-connection.c (_dbus_connection_peer_filter,
2127         _dbus_connection_run_builtin_filters): Changed these to
2128         be unlock_no_update functions and call 
2129         _dbus_connection_send_unlocked_no_update instead of
2130         dbus_connection_send to avoid locking errors.
2131         
2132         * doc/TODO: Removed the make Ping test TODO
2133         
2134 2005-09-26  John (J5) Palmieri  <johnp@redhat.com>
2135
2136         * dbus/Python.pyx: Fixed memory leaks when throwing errors.
2137         We now copy the message from a DBusError and then free 
2138         the error object befor throwing the error
2139
2140         * glib/dbus-glib-tool.c: removed extra comma at the end of the
2141         DBusBindingOutputMode enum which was causing a warning.
2142         #include <time.h> so using time_t is explicitly defined
2143
2144 2005-09-26  John (J5) Palmieri  <johnp@redhat.com>
2145
2146         * Integrate patches from Lennart Poettering <mzsqb at 0pointer.de>:
2147         - dbus/dbus-bus.c
2148         (internal_bus_get): new method that take over the heavy lifting
2149         of dbus_bus_get and adds the ability to get a private connection
2150         to the bus
2151         (dbus_bus_get): wrapper to internal_bus_get that provides the same
2152         interface as in previous versions
2153         (dbus_bus_get_private): new method that is a wrapper to 
2154         internal_bus_get to get a private connection to the bus
2155
2156         - dbus/dbus-bus.h
2157         (dbus_bus_get_private): add as a public libdbus interface
2158
2159         - dbus-1.pc.in: output system_bus_default_address and 
2160         sysconfdir variables so apps can use them when compiling
2161
2162 2005-09-23  Harald Fernengel  <harry@kdevelop.org>
2163         * dbus/qt: New Qt bindings
2164
2165 2005-09-12  Waldo Bastian  <bastian@kde.org>
2166
2167         * dbus/dbus-marshal-validate.c,
2168         doc/dbus-specification.xml, test/Makefile.am,
2169         test/test-names.c: allow hyphens in bus names.
2170
2171 2005-09-11  Mark McLoughlin  <mark@skynet.ie>
2172
2173         * test/data/auth/fallback.auth-script: we don't
2174         retry the EXTERNAL method when we know its going
2175         to fail anymore.
2176
2177 2005-09-11  Mark McLoughlin  <mark@skynet.ie>
2178
2179         * dbus/dbus-connection-internal.h: rename
2180         (add|remove|toggle)_(watch|timeout) to unlocked()
2181         
2182         * dbus/dbus-connection.c: ditto.
2183         
2184         * dbus/dbus-timeout.c, dbus/dbus-transport-unix.c:
2185         Update some callers for the renaming.
2186
2187 2005-09-10  Mark McLoughlin  <mark@skynet.ie>
2188
2189         * dbus/dbus-auth.c: (record_mechanisms): don't
2190         retry the first auth mechanism because we know
2191         we're just going to get rejected again.
2192         
2193         * dbus/dbus-keyring.c: (_dbus_keyring_reload):
2194         Fix thinko ... and what a nasty little bugger to
2195         track down you were ...
2196
2197         * dbus/dbus-connection.c:
2198         (_dbus_connection_add_watch),
2199         (_dbus_connection_remove_watch): add note about
2200         these needing the connection to be locked.
2201         (_dbus_connection_get_dispatch_status_unlocked):
2202         set status to DATA_REMAINS when we queue the
2203         disconnected message.
2204         
2205         * bus/dispatch.c:
2206         (bus_dispatch): fix warning.
2207         (check_existent_service_no_auto_start):
2208         Expect ChildSignaled error too.
2209         (check_existent_hello_from_self): fix another
2210         couple of warnings.
2211         
2212 2005-09-08  Joe Shaw  <joeshaw@novell.com>
2213
2214         Patches from James Willcox <snorp@snorp.net>
2215
2216         * mono/Makefile.am: Add Int16.cs and UInt16.cs
2217
2218         * mono/DBusType/Array.cs: Handle multidimensional arrays, and
2219         support array "out" parameters.
2220
2221         * mono/DBusType/Int16.cs, mono/DBusType/UInt16.cs: New files,
2222         for 16-bit int support.
2223
2224 2005-09-06  John (J5) Palmieri  <johnp@redhat.com>
2225
2226         * Released 0.50
2227
2228         * Patch from Steve Grubb:
2229         - bus/activation.c (bus_activation_service_reload_test): clean up
2230         some indentation
2231         - dbus/dbus-keyring.c (_dbus_keyring_reload): fix conditional 
2232         - dbus/dbus-message-factory.c (generate_special): fix a couple of
2233         buffer overflows in the test suite.  This is non critical because
2234         it can not be exploited and this code is only run when doing a 
2235         make check.
2236
2237         * Patch from Yaakov Selkowitz: Build fixes for Cygwin
2238         - configure.in: Don't check and link against kdecore, only qt headers
2239         - dbus/Makefile.am: Add -no-undefined to libdbus_1_la_LDFLAGS
2240         - gcj/org/freedesktop/dbus/Makefile.am:
2241         add libdbus_gcj_1_la_LDFLAGS = -no-undefined
2242         - glib/Makefile.am: Add -no-undefined to libdbus_glib_1_la_LDFLAGS
2243         and $(DBUS_GLIB_LIBS) to dbus_binding_tool_LDADD
2244         - qt/Makefile.am: Add -no-undefined to libdbus_qt_1_la_LDFLAGS
2245         - tools/Makefile.am: Add platform extentions to binaries 
2246         (i.e. .exe on windows)
2247
2248         * configure.in: 
2249         - Make it so if no suitable version of python is found we only 
2250         disable building python instead of exiting the configure script
2251         - Require version 2.4 of glib for glib bindings
2252         - Up version to 0.50
2253
2254         * python/__init__.py: Sync version with libdbus to (0,50,0)
2255         
2256 2005-09-05  Olivier Andrieu  <oliv__a@users.sourceforge.net>
2257
2258         * dbus/dbus-object-tree.c (find_subtree_recurse):
2259         a couple of optimizations (bug #710):
2260         - do a binary search in the tree
2261         - insert a new child at the right place directly, no need for
2262           qsort anymore
2263         - do the "double alloc" thing when allocating children
2264
2265 2005-08-31  John (J5) Palmieri  <johnp@redhat.com>
2266
2267         * python/Makefile.am: Break on pyrexc errors instead of ignoring them
2268
2269         * python/dbus_bindings.pyx: Memory management foo
2270         (global): remove hacky _user_data_references global list
2271         (GIL_safe_cunregister_function_handler): userdata now stuffed into
2272         tuples. Unref user_data
2273         (GIL_safe_cmessage_function_handler): userdata now stuffed into tuples
2274         (Connection::__del__): Remove and replace with __dealloc__ method
2275         (Connection::add_filter): Stuff user_data into a tuple.  Use Py_INCREF
2276         to keep tuple from being deallocated instead of the global var hack
2277         (Connection::register_object_path): Stuff user_data into a tuple.
2278         Use Py_INCREF to keep tuple from being deallocated instead of the 
2279         global var hack
2280         (Connection::register_fallback): Stuff user_data into a tuple.
2281         Use Py_INCREF to keep tuple from being deallocated instead of the 
2282         global var hack
2283         (GIL_safe_pending_call_notification): Don't unref the message
2284         because it gets unreffed when going out of scope.  Py_XDECREF
2285         the user_data
2286         (PendingCall::__del__): Remove and replace with __dealloc__ method
2287         (PendingCall::set_notify): ref the pending call because we will
2288         need it to stick around for when the notify callback gets called
2289         (Message::__del__): Remove and replace with __dealloc__ method
2290
2291         * python/dbus_glib_bindings.pyx (init_gthreads): Changed to 
2292         gthreads_init to match up with the dbus call
2293
2294         * python/glib.py (init_threads): Changed to threads_init to match
2295         up with gobject.threads_init().  init_threads is kept for backwards
2296         compat but will most likely be deprecated in the future
2297
2298         * test/python/test-client.py: 
2299         - revamp to use Python's unittest functionality
2300         - add async call tests
2301         - setup threads in glib and dbus so we make sure locks are working
2302         
2303 2005-08-30  John (J5) Palmieri  <johnp@redhat.com>
2304
2305         * python/dbus_bindings.pyx 
2306         (_pending_call_notification, cunregister_function_handler, 
2307         cmessage_function_handler): All callback functions have been rearranged 
2308         to workaround a bug in Pyrex when working with the GIL which is Python's 
2309         global lock when dealing with threads.  They have been split into
2310         a wrapper function (which assumes the name of the old function) and
2311         a _GIL_safe_<function name> function which contains the functionality
2312         of the old function.  This ensures that Pyrex does not write code
2313         the lock is released.
2314         
2315
2316 2005-08-30  John (J5) Palmieri  <johnp@redhat.com>
2317
2318         * python/dbus_bindings.pyx (_pending_call_notification): Obtain the
2319         GIL global lock when calling back into Python
2320
2321 2005-08-29  John (J5) Palmieri  <johnp@redhat.com>
2322
2323         * Release 0.36.2
2324
2325         * Add Havoc's patch that never got applied to HEAD (Bug #2436):
2326
2327         * bus/policy.c (bus_policy_allow_user): change default "user is
2328         allowed" to be "user has same uid as the bus itself"; any
2329         allow/deny rules will override.
2330
2331         * bus/session.conf.in: don't allow all users, since now by default
2332         the user that ran the bus can connect.
2333
2334 2005-08-26  Colin Walters  <walters@verbum.org>
2335
2336         * tools/dbus-print-message.c (print_message): Flush stdout
2337         after printing a message, so that redirecting to a file, then
2338         hitting Ctrl-C works.
2339
2340 2005-08-25  John (J5) Palmieri  <johnp@redhat.com>
2341
2342         * python/dbus_bindings.pyx: Tracked down a major memleak and fixed it
2343         (EmptyMessage): new class that subclasses Message.  This is a workaround
2344         to a Pyrex bug that fails to call __del__ when the Message object goes out
2345         of scope.  For some reason subclassing Message fixes this bug
2346         (Bus::send_with_reply_and_block): use EmptyMessage instead of Message
2347         - s/Message(_create=0)/EmptyMessage everywhere else
2348         
2349         * test/python/test-{server|client}.py: add the python/.libs directory
2350         to the lookup path so dbus_bindings and dbus_glib_bindings don't
2351         get picked up from the system
2352
2353 2005-08-25  Colin Walters  <walters@verbum.org>
2354
2355         * glib/dbus-gproxy.c (dbus_g_proxy_call): Doc update, thanks
2356         to Ryan Lortie for the suggestion.
2357
2358 2005-08-24  John (J5) Palmieri  <johnp@redhat.com>
2359
2360         * test/python: Add python regression test
2361
2362         * configure.in: Add test/python/Makefile
2363
2364         * test/Makefile.am: Add the python directory to SUBDIRS
2365
2366 2005-08-24  John (J5) Palmieri  <johnp@redhat.com>
2367
2368         * Release 0.36.1
2369
2370         * python/_dbus.py: 
2371         (Interface::connect_to_signal): propigate keywords for match on args
2372         (Bus::add_signal_receiver): Fix typo s/dbus_inteface/dbus_interface
2373
2374         * python/proxies.py (ProxyObject::connect_to_signal):
2375         propigate keywords for match on args
2376
2377         * Makefile.am: point everything to pyexecdir since python borks
2378         on multilib
2379
2380 2005-08-23  John (J5) Palmieri  <johnp@redhat.com>
2381
2382         * Release 0.36
2383
2384 2005-08-23  Colin Walters  <walters@verbum.org>
2385
2386         * test/glib/Makefile.am: Don't multiply-define EXTRA_DIST.
2387
2388 2005-08-23  John (J5) Palmieri  <johnp@redhat.com>
2389
2390         * python/dbus_glib_bindings.pyx: reorder imports and c definitions
2391         to fix some wranings. We now use dbus_bindings.DBusConnection instead
2392         of defining DBusConnection ourselves.
2393
2394 2005-08-18  John (J5) Palmieri  <johnp@redhat.com>
2395
2396         * python/dbus.pth: New path file to fix up problems when installing
2397         c libraries to lib64 and python files to lib.
2398
2399         * python/Makefile.am: install dbus.pth in the correct spot
2400
2401 2005-08-17  John (J5) Palmieri  <johnp@redhat.com>
2402         * ChangeLog: clean up my last entry a bit
2403
2404         * doc/introspect.xsl: New stylesheet for converting introspection data
2405         into browser renderable xhtml. Contributed by Lennart Poettering.
2406
2407         * doc/introspect.dtd: Fixups in the introspect format from Lennart
2408         Poettering.
2409
2410         * doc/dbus-tutorial.xml: 
2411         - Add Colin Walter to the Authors section for authoring the GLib
2412         section
2413         - Add descriptions of the new signature and type functionality
2414         in the Python complex type mapping section
2415         - Add a sidenote on the new args matching functionality in 
2416         the Python bindings
2417         - Fixed up some of the examples to use the gobject.MainLoop
2418         instead of gtk.main
2419         
2420         * python/_dbus.py:
2421         (Bus::_create_args_dict): New. Converts a hash of arg matches
2422         to a more useable format
2423         (Bus::add_signal_receiver): add a **keywords parameter for catching
2424         arg match parameters
2425         (Bus::remove_signal_receiver): add a **keywords parameter for catching
2426         arg match parameters
2427         
2428         * python/matchrules.py:
2429         (MatchTree::exec_matches): Check for arg matches
2430         (SignalMatchRule::add_args_match): New method
2431         (SignalMatchRule::execute): Added args_list parameter as an optimization
2432         so we don't have to marshal the args more than once
2433         (SignalMatchRule::match_args_from_list): New method that checks to see
2434         if the rule's arg matches match an argument list.  Only arguments
2435         set in the rule are checked.
2436         (SignalMatchRule::match_args_from_rule): New method that checks to see
2437         if the rule's arg matches match another rule's.  All args have to match
2438         in order for this method to return true.  If either rule has more args
2439         then it is not a match.
2440         (SignalMatchRule::is_match): Add args match
2441         (SignalMatchRule::repr): Add args to the final output if they exist
2442
2443 2005-08-17  Ross Burton  <ross@burtonini.com>
2444
2445         * glib/dbus-gproxy.c:
2446         (dbus_g_proxy_call_no_reply): unref the message once sent.
2447         (dbus_g_proxy_call): protect against NULL proxy.
2448
2449 2005-08-16  John (J5) Palmieri  <johnp@redhat.com>
2450
2451         * python/__init__.py: Version updated (0, 43, 0)
2452         
2453         * python/dbus_bindings.pyx: 
2454         - Fixed type objects to have self passed into __init__
2455         - Added the Variant type
2456         - Add the ability to specify types or signatures for Array, Variant 
2457         and Dictionary
2458         (Connection::send_with_reply_handlers): return a PendingCall object
2459         (_pending_call_notification): handle the case when an error is returned 
2460         without an error message in the body
2461         (MessageIter::get_boolean): return True or False instead of an integer
2462         (MessageIter::python_value_to_dbus_sig): add direct checking of types 
2463         and add checks for objects with embeded signatures or types (Array, 
2464         Variant and Dictionary)
2465         (MessageIter::append_byte): handle case when the value is a dbus.Byte
2466         (MessageIter::append_dict): handle embeded types or signatures
2467         (MessageIter::append_array): handle embeded types or signatures
2468         (MessageIter::append_variant): new method
2469         
2470         * python/proxies.py:
2471         (DeferedMethod): New. Dummy executable object used when queuing calls 
2472         blocking on introspection data
2473         (ProxyMethod::__call__): add the timeout keyword for specifying longer 
2474         or shorter timeouts for method calls
2475         (ProxyObject): Add first pass at an introspection state machine
2476         (ProxyObject::__init__): Add introspect keyword for turing off an on 
2477         introspection. 
2478         (ProxyObject::_Introspect): Internal Introspect call that bypasses 
2479         the usual mechanisms for sending messages.  This is to avoid a deadlock
2480         where the Intospect call would be queued waiting for the Introspect 
2481         call to finish ;-)
2482         (ProxyObject::_introspect_reply_handler): New.  This method is called 
2483         when introspection returns with no error
2484         (ProxyObject::_introspect_error_handler): New.  This method is called 
2485         when introspection encounters an error
2486         (ProxyObject::__getattr__): Code to handle different introspection 
2487         states.  Queue async calls or block blocking calls if we are 
2488         introspecting.  Pass through as normal if we are not or are done with 
2489         introspecting.
2490         
2491         * python/service.py: Import signal and method from decorators.py
2492
2493         * python/types.py: Add Variant type
2494
2495 2005-08-16  Colin Walters  <walters@verbum.org>
2496
2497         * glib/dbus-gobject.c (dbus_set_g_error): Don't lose if the
2498         DBusError message is NULL.
2499
2500 2005-08-09  Havoc Pennington  <hp@redhat.com>
2501
2502         * dbus/dbus-errors.c: apply patch from Timo Teras to make a
2503         malloc'd copy of the name parameter
2504
2505 2005-08-09  Havoc Pennington  <hp@redhat.com>
2506
2507         * dbus/dbus-message.c (dbus_message_set_reply_serial): print
2508         warning if the reply serial is set to 0
2509
2510 2005-08-04  Colin Walters  <walters@verbum.org>
2511
2512         * glib/dbus-gvalue-utils.h (_dbus_g_type_specialized_builtins_init)
2513         (dbus_g_type_is_fixed, dbus_g_type_fixed_get_size)
2514         (dbus_gvalue_set_from_pointer, dbus_g_hash_table_value_foreach)
2515         (dbus_g_hash_table_insert_values, dbus_g_hash_table_insert_steal_values)
2516         (dbus_gtype_is_valid_hash_key, dbus_gtype_is_valid_hash_value)
2517         (dbus_g_hash_func_from_gtype, dbus_g_hash_free_from_gtype)
2518         (dbus_g_hash_equal_from_gtype, dbus_gvalue_stor, dbus_gvalue_take):
2519         * glib/dbus-gvalue.h (dbus_g_value_types_init)
2520         (dbus_gvalue_demarshal, dbus_gvalue_demarshal_variant)
2521         (dbus_gvalue_demarshal_message, dbus_gvalue_marshal):
2522         
2523         Prefix name with _ to ensure they're not exported.  All callers
2524         updated.
2525
2526         * glib/dbus-gvalue.c (typecode_to_gtype)
2527         (dbus_typecode_maps_to_basic, basic_typecode_to_gtype)
2528         (signature_iter_to_g_type_dict)
2529         (signature_iter_to_g_type_array)
2530         (dbus_gtype_from_signature_iter, dbus_gtype_from_signature)
2531         (dbus_gtypes_from_arg_signature):
2532         Move to dbus-gsignature.c.
2533
2534         * glib/dbus-binding-tool-glib.c (dbus_binding_tool_output_glib_server): Call
2535         dbus_g_type_specialized_builtins_init instead of dbus_g_value_types_init.
2536         (dbus_binding_tool_output_glib_client): Ditto.
2537
2538         * glib/Makefile.am (DBUS_GLIB_INTERNALS): Add dbus-gsignature.c
2539         and dbus-gsignature.h
2540
2541         * test/glib/test-service-glib.c (my_object_rec_arrays): Delete
2542         unused variable.
2543
2544 2005-08-03  Colin Walters  <walters@verbum.org>
2545
2546         * glib/dbus-gobject.c: Add tests on hardcoded object info; this should
2547         catch any incompatible changes accidentally made.
2548
2549 2005-08-03  Havoc Pennington  <hp@redhat.com>
2550
2551         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): fix
2552         typo, from Julien Puydt
2553
2554         * bus/connection.c (bus_connection_disconnected): we were always
2555         doing a wait_for_memory due to a buggy loop, found by Timo Hoenig
2556
2557 2005-08-01  Colin Walters  <walters@verbum.org>
2558
2559         Patch from Joe Markus Clarke:   
2560         
2561         * glib/dbus-gidl.c (property_info_unref, arg_info_unref): Fix
2562         use-after-free.
2563
2564 2005-08-01  Colin Walters  <walters@verbum.org>
2565         
2566         Patch from Joe Markus Clarke:   
2567         
2568         * tools/dbus-send.c (main): 
2569         
2570         Don't use C99 style initializers (bug #3933).
2571         
2572 2005-08-01  Colin Walters  <walters@verbum.org>
2573
2574         Patch from Joe Markus Clarke:   
2575
2576         * glib/dbus-gvalue.c (dbus_g_value_types_init): 
2577         * glib/dbus-gvalue-utils.c (dbus_g_type_specialized_builtins_init) 
2578         * glib/dbus-gobject.c (write_interface):
2579
2580         Don't use C99 style initializers (bug #3933).
2581
2582 2005-07-31  Havoc Pennington  <hp@redhat.com>
2583
2584         * tools/dbus-viewer.c (load_child_nodes): fix invocation of
2585         dbus_g_proxy_call, fix from Piotr Zielinski bug #3920
2586
2587 2005-07-30  Havoc Pennington  <hp@redhat.com>
2588
2589         * fix a bunch of Doxygen warnings and mistakes
2590
2591 2005-07-30  Havoc Pennington  <hp@redhat.com>
2592
2593         * dbus/dbus-sysdeps.c (_dbus_string_parse_uint): remove #ifdef
2594         DBUS_BUILD_TESTS since it's now used in production code
2595
2596 2005-07-29  Havoc Pennington  <hp@redhat.com>
2597
2598         * test/glib/test-profile.c (write_junk): initialize the junk
2599         buffer so valgrind doesn't have a breakdown
2600
2601 2005-07-29  Havoc Pennington  <hp@redhat.com>
2602
2603         * bus/signals.c (bus_signals_test): add match_rule_equal() tests
2604         (match_rule_matches): remove unused arg
2605         (test_matching): add tests for match_rule_matches()
2606
2607         * bus/signals.c (bus_match_rule_parse_arg_match): add ability to
2608         do arg0='foo' arg5='bar' in the match rules
2609         (match_rule_matches): don't match if the arg0='foo' doesn't match.
2610
2611         * dbus/dbus-protocol.h (DBUS_MAXIMUM_MATCH_RULE_ARG_NUMBER): add this
2612
2613 2005-07-29  Ross Burton  <ross@openedhand.com>
2614
2615         * dbus/dbus-connection.c:
2616         Don't create a DBusCondVar which is never used.
2617
2618 2005-07-27  Ross Burton  <ross@openedhand.com>
2619
2620         * dbus/dbus-message.c:
2621         Reduce the size of the maximum cached message to 10K.
2622
2623 2005-07-25  Ross Burton  <ross@openedhand.com>
2624
2625         * glib/dbus-gproxy.c:
2626         Remove matches when all proxies are unregistered.
2627
2628 2005-07-24  Colin Walters  <walters@verbum.org>
2629
2630         * glib/dbus-gvalue.c (signature_iter_to_g_type_array): Don't require
2631         typedata; recursive arrays won't have it.
2632
2633         * test/glib/test-dbus-glib.c:
2634         * test/glib/test-service-glib.c:
2635         * test/glib/test-service-glib.xml: Add recursive arrays tests.
2636         
2637 2005-07-20  John (J5) Palmieir  <johnp@redhat.com>
2638
2639         * python/_dbus.py, _util.py, decorators.py, extract.py, matchrules.py.
2640         proxies.py, service.py: Cleanup of code after running it through the
2641         pyflakes code checker mostly dealing with undefined names.  
2642         (Bug #3828, Patch from Anthony Baxter <anthony@interlink.com.au>)
2643
2644 2005-07-17  John (J5) Palmieri  <johnp@redhat.com>
2645
2646         * NEWS: Update to 0.35.2
2647
2648 2005-07-17  John (J5) Palmieri  <johnp@redhat.com>
2649
2650         * python/_dbus.py: Remove import of the dbus.services
2651         module as it no longer exists (patch from Dimitur Kirov)
2652
2653         * python/service.py (Object::__init__): Fixed typo
2654         s/name/bus_name (patch from Dimitur Kirov)
2655
2656         * python/examples/example-signal-emitter.py: import dbus.glib
2657         to get the main loop and use glib mainloop instead of gtk so
2658         X doesn't have to be running.
2659
2660         * python/examples/example-signal-recipient.py: import dbus.glib
2661         to get the main loop and use glib mainloop instead of gtk so
2662         X doesn't have to be running. Import the decorators module
2663         directly.
2664
2665         * test/glib/Makefile.am:  Added DIST_EXTRA files that distcheck
2666         didn't pick up on but are needed to build
2667
2668         * configure.in: upped version to 0.35.2
2669
2670         * bus/driver.c, bus/selinux.c, bus/selinux.h, dbus/dbus-protocol.h:
2671         added Colin Walters' SELinux API rename patch from head 
2672         s/unix sercurity context/selinux security context/
2673
2674 2005-07-16  John (J5) Palmieri  <johnp@redhat.com>
2675
2676         * python/Makefile.am: dbus_binding.pxd.in should be included 
2677         in EXTRA_DIST not dbus_binding.pxd
2678         fix up $(srcdir) hopefully for the last time
2679
2680         * NEWS: Update to 0.35.1
2681
2682 2005-07-16  Colin Walters  <walters@verbum.org>
2683
2684         * bus/driver.c (bus_driver_handle_get_connection_selinux_security_context): Renamed
2685         from bus_driver_handle_get_connection_unix_security_context.  Update for
2686         error usage.
2687         (message_handlers): Update for renames.
2688
2689         * bus/selinux.c (bus_selinux_allows_send): Handle OOM on
2690         _dbus_string_init failure correctly.
2691         (bus_selinux_append_context): Convert SID to context.  Append it
2692         as a byte array.
2693         (bus_selinux_shutdown): Handle the case where bus_selinux_full_init
2694         hasn't been called.
2695
2696         * bus/selinux.h: Update prototype.
2697
2698         * dbus/dbus-protocol.h (DBUS_ERROR_SELINUX_SECURITY_CONTEXT_UNKNOWN): Renamed
2699         from DBUS_ERROR_UNIX_SECURITY_CONTEXT_UNKNOWN.
2700
2701 2005-07-15  Colin Walters  <walters@verbum.org>
2702
2703         * doc/TODO: Add note about convenience wrappers.
2704
2705 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
2706
2707         * NEWS: Update to 0.35
2708
2709 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
2710
2711         * glib/Makefile.am: Add make-dbus-glib-error-switch.sh to EXTRA_DIST
2712         so distcheck doesn't fail
2713
2714         * glib/examples/Makefile.am: Add example-service.xml and 
2715         example-signal-emitter.xml to EXTRA_DIST so distcheck doesn't fail
2716
2717         * glib/examples/statemachine/Makefile.am: Add statemachine.xml and
2718         statemachine-server.xml to EXTRA_DIST so distcheck doesn't fail
2719
2720         * python/Makefile.am: Preprend $(srcdir)/ to source files so the
2721         compiler looks in the right places during distcheck
2722
2723 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
2724
2725         * glib/example/Makefile.am: Fix a typo which cause make distcheck
2726         to fail
2727
2728 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
2729
2730         * python/examples/example-service.py,
2731         python/examples/example-signal-emitter.py: Fixed up examples
2732         for API changes
2733
2734 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
2735
2736         * python/__init__.py: Upped to version (0,42,0) because of
2737         the API change
2738
2739 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
2740
2741         * ChangeLog: fix date in last entry
2742
2743         * configure.in, bus/system.conf.in: add the ability to configure 
2744         the system bus user at compiletime with the --with-dbus-user flag
2745         (patch from Kristof Vansant)
2746
2747 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
2748
2749         * bus/dispatch.c, test/test-service.c: Add testcase
2750         for sending messages to oneself (TODO item).
2751
2752         * python/service.py (class Object): Swap ordering of bus_name 
2753         and object_path parameters to better support inheritance.
2754
2755         * doc/dbus-tutorial.xml: change Python docs to reflect change
2756         in parameter ordering and fix the inheritance section.
2757
2758         * doc/TODO: remove sending message to oneself TODO item
2759
2760 2005-07-15  Ross Burton  <ross@openedhand.com>
2761
2762         * glib/dbus-gproxy.c:
2763         Fix a leak when calling methods via the proxy.
2764
2765 2005-07-15  Colin Walters  <walters@verbum.org>
2766
2767         * bus/selinux.c (bus_selinux_append_context): Wrap in
2768         HAVE_SELINUX.
2769
2770 2005-07-14  John (J5) Palmieri  <johnp@redhat.com>
2771
2772         * python/_dbus.py (Bus::remove_signal_receiver):
2773         don't add a callback to the match if none has been passed in
2774         
2775         * python/matchrules.py (SignalMatchTree::remove): if the rule
2776         being matched does not have a callback treat it as a wildcard
2777         fix matching logic
2778
2779         * doc/dbus-tutorial.xml: Add Python tutorial
2780
2781 2005-07-14  Colin Walters  <walters@verbum.org>
2782
2783         * bus/driver.c
2784         (bus_driver_handle_get_connection_unix_security_context): New function.
2785         (message_handlers): Add.
2786
2787         * bus/selinux.c (bus_selinux_append_context): New function; appends
2788         security context to message.
2789
2790         * bus/selinux.h: Prototype.
2791
2792         * dbus/dbus-protocol.h (DBUS_ERROR_UNIX_SECURITY_CONTEXT_UNKNOWN): New.
2793
2794 2005-07-14  John (J5) Palmieri  <johnp@redhat.com>
2795
2796         * bus/activation.c: clean up all tabs to be 8 spaces 
2797         (bus_activation_activate_service): make sure we clean up
2798         if activation fails
2799
2800         * bus/dispatch.c: clean up all tabs to be 8 spaces 
2801         (check_shell_fail_service_auto_start): New function
2802         tests to make sure we get fail properly when trying to auto start a service
2803         with a faulty command line
2804         (check_shell_service_success_auto_start): New function tests to make sure
2805         auto started services get the arguments on the command line
2806
2807         * test/test-shell-service.c: Added service for testing auto-starting with 
2808         command line arguments
2809
2810         * test/data/valid-service-files/debug-shell-echo-fail.service.in, 
2811         test/data/valid-service-files/debug-shell-echo-success.service.in:
2812         Added service files for testing auto-starting with command line arguments
2813
2814         * */.cvsignore: added a bunch of generated files to various .cvsignore files
2815
2816 2005-07-14  Rodrigo Moya  <rodrigo@novell.com>
2817
2818         * dbus/dbus-shell.[ch]: copy/pasted code from GLib.
2819         
2820         * dbus/Makefile.am: added new files to build.
2821
2822         * bus/activation.c (bus_activation_activate_service): support
2823         activation commands with parameters.
2824
2825         * test/shell-test.c: added test program for the shell parsing
2826         code.
2827
2828 2005-07-13  David Zeuthen  <davidz@redhat.com>
2829
2830         * tools/dbus-send.c (append_arg, type_from_name): Also support 16 and
2831         64 bit signed and unsigned parameters
2832
2833 2005-07-13  John (J5) Palmieri  <johnp@redhat.com>
2834
2835         * python/.cvsignore: remove dbus_bindings.pyx, add dbus_bindings.pxd
2836
2837         * python/service.py (class Name): renamed BusName to make it clearer
2838         what the object is for (a name on the bus)
2839
2840         * python/examples/example-service.py,
2841         python/examples/example-signal-emitter.py: change the Name object to
2842         BusName
2843
2844 2005-07-12  Colin Walters  <walters@verbum.org>
2845
2846         Patch from Jim Gettys <Jim.Gettys@hp.com>.
2847
2848         * tools/dbus-launch.c: Include sys/select.h.
2849
2850 2005-07-12  John (J5) Palmieri  <johnp@redhat.com>
2851         * python/dbus_bindings.pyx.in: removed
2852
2853         * python/dbus_bindings.pyx: Added.
2854         - Fixed some memleaks (patch from 
2855         Sean Meiners <sean.meiners@linspireinc.com>)
2856         - Broke out the #include "dbus_h_wrapper.h" and put it in its
2857         own pxd file (Pyrex definition)
2858         - Broke out glib dependancies into its own pyx module
2859         
2860         * python/dbus_bindings.pdx: Added.
2861         - Defines C class Connection for exporting to other modules
2862
2863         * python/dbus_glib_bindings.pyx: Added.
2864         - New module to handle lowlevel dbus-glib mainloop integration
2865
2866         * python/glib.py: Added.
2867         - Registers the glib mainloop when you import this module
2868
2869         * python/services.py: Removed (renamed to service.py)
2870         
2871         * python/service.py: Added.
2872         - (class Server): renamed Name
2873
2874         * python/__init__.py: Bump ro version (0,41,0)
2875         -don't import the decorators or service module
2876         by default.  These now reside in the dbus.service namespace
2877
2878         * python/_dbus.py (Bus::__init__): Add code run the main loop 
2879         setup function on creation 
2880
2881         * python/examples/example-service.py,
2882         python/examples/example-signal-emitter.py: update examples
2883
2884         * python/examples/gconf-proxy-service.py,
2885         python/examples/gconf-proxy-service2.py: TODO fix these up
2886
2887         * doc/TODO: Addition
2888         - Added a Python Bindings 1.0 section
2889         - added "Add match on args or match on details to match rules"
2890
2891
2892 2005-07-12  Colin Walters  <walters@verbum.org>
2893
2894         * glib/examples/statemachine/Makefile.am (statemachine-server-glue.h) 
2895         (statemachine-glue.h): 
2896         * glib/examples/Makefile.am (example-service-glue.h) 
2897         (example-signal-emitter-glue.h): 
2898         * glib/Makefile.am (dbus-glib-error-switch.h): 
2899         Add libtool --mode=execute so we use the built library instead
2900         of any installed one.
2901
2902 2005-07-11  Colin Walters  <walters@verbum.org>
2903
2904         * glib/dbus-gvalue.c (struct _DBusGValue): Delete.
2905         (dbus_g_value_types_init): Remove assertion.
2906         (dbus_g_value_get_g_type, dbus_g_value_open)
2907         (dbus_g_value_iterator_get_values, dbus_g_value_get_signature)
2908         (dbus_g_value_copy, dbus_g_value_free): Delete unimplemented
2909         functions related to DBusGValue.  Now we marshal/demarshal
2910         structures as GValueArray.
2911         (dbus_gtype_from_signature_iter): Return G_TYPE_VALUE_ARRAY for
2912         structures.
2913         (signature_iter_to_g_type_array): Don't call
2914         signature_iter_to_g_type_struct.
2915         (signature_iter_to_g_type_struct): Delete.
2916         (dbus_gvalue_to_signature): Delete.
2917         (dbus_gvalue_to_signature): New function with same name as other
2918         one; we can convert structures to signatures.
2919         (demarshal_valuearray): New function.
2920         (get_type_demarshaller): Use it.
2921         (demarshal_recurse): Delete.
2922         (marshal_proxy): New function.
2923         (marshal_map): Warn if we can't determine signature from type.
2924         (marshal_collection_ptrarray): Ditto.
2925         (marshal_collection_array): Ditto.
2926         (get_type_marshaller): Use marshal_valuearray.
2927         (marshal_recurse): Delete.
2928         (_dbus_gvalue_test): Add some tests.
2929
2930         * dbus/dbus-glib.h (struct _DBusGValueIterator): 
2931         (dbus_g_value_get_g_type, DBUS_TYPE_G_VALUE)
2932         (dbus_g_value_open, dbus_g_value_iterator_get_value)
2933         (dbus_g_value_iterator_get_values, dbus_g_value_iterator_recurse)
2934         (dbus_g_value_free): Remove prototypes.
2935
2936         * glib/dbus-binding-tool-glib.c (dbus_g_type_get_lookup_function): Handle
2937         G_TYPE_VALUE_ARRAY.
2938
2939         * glib/examples/example-service.c:
2940         * glib/examples/example-client.c: Implement GetTuple.
2941
2942         * test/glib/test-dbus-glib.c:
2943         * test/glib/test-service-glib.c:
2944         * test/glib/test-service-glib.xml: Add structure tests.
2945
2946 2005-07-10  Colin Walters  <walters@verbum.org>
2947
2948         * doc/TODO: Knock off some GLib items with this patch.
2949
2950         * glib/dbus-gvalue-utils.c (_dbus_gtype_can_signal_error) 
2951         (_dbus_gvalue_signals_error): New functions.
2952
2953         * glib/dbus-gvalue-utils.h: Prototype them.
2954
2955         * glib/dbus-gobject.c (arg_iterate): Update to handle return vals
2956         and change to not output const/retval flags for input args.  All
2957         callers updated.
2958         (invoke_object_method): Refactor to handle return values.  Add
2959         some more comments in various places.  Remove debug g_print.
2960
2961         * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_RETURNVAL): New.
2962
2963         * glib/dbus-binding-tool-glib.c (dbus_g_type_get_marshal_name):
2964         Handle G_TYPE_NONE.
2965         (compute_gsignature): New function; refactored from code from
2966         compute_marshaller and compute_marshaller_name.  Enhance to
2967         handle return values and async ops more cleanly.  Update for
2968         async ops returning NONE instead of BOOLEAN.
2969         (compute_marshaller, compute_marshaller_name): Call compute_gsignature
2970         and output appropriate string.
2971         (generate_glue): Handle return value annotation.  Also don't dump
2972         constness flag for input arguments.
2973
2974         * glib/Makefile.am (DBUS_GLIB_INTERNALS): New variable; contains
2975         files shared between installed library and utilities.
2976         (libdbus_glib_1_la_SOURCES): Move some stuf into DBUS_GLIB_INTERNALS.
2977         (libdbus_gtool_la_SOURCES): Suck in DBUS_GLIB_INTERNALS so the
2978         binding tool can access gtype utility functions.
2979
2980         * test/glib/test-service-glib.c: 
2981         * test/glib/test-service-glib.xml: 
2982         * test/glib/test-dbus-glib.c: Add some tests for return values.
2983
2984 2005-07-09  Colin Walters  <walters@verbum.org>
2985
2986         * glib/dbus-gparser.c (parse_annotation): Add annotations to
2987         argument if available, not method.
2988
2989         * glib/dbus-gobject.c (arg_iterate): More verbose warnings.
2990         (invoke_object_method): First, remove some redundant
2991         GValues (object_value, error_value) in favor of working on
2992         array directly.  Second, rework constness to be less buggy.
2993         Now we iterate directly over the argument metadata instead
2994         of parallel iterating over output signature and metadata.
2995
2996         * glib/dbus-glib-tool.h: Add INVALID_ANNOTATION error.
2997
2998         * glib/dbus-binding-tool-glib.c (generate_glue): Barf on const
2999         annotation on input args.
3000         
3001 2005-07-09  Colin Walters  <walters@verbum.org>
3002
3003         * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_CONST):
3004         Define.
3005
3006         * glib/dbus-binding-tool-glib.c (generate_glue): Handle Const
3007         annotation.
3008
3009         * glib/dbus-gobject.c (arg_iterate): Update to parse constval too.
3010         (method_dir_signature_from_object_info): Handle arg_iterate change.
3011         (write_interface): Ditto.
3012         (lookup_object_info): Don't barf if format_version is > 0.
3013         (invoke_object_method): Handle arg constness.
3014
3015         * glib/dbus-gidl.c (struct ArgInfo): Add annotations.
3016         (arg_info_new): Create.
3017         (arg_info_unref): Destroy.
3018         (arg_info_get_annotations, arg_info_get_annotation) 
3019         (arg_info_add_annotation): New functions.
3020
3021         * glib/dbus-gidl.h: Prototype them.
3022
3023         * glib/dbus-gparser.c (parse_annotation): Allow annotations in
3024         args, disallow them in properties.
3025         (parse_annotation): Handle arg annotations.
3026
3027         * test/glib/test-service-glib.xml: 
3028         * test/glib/test-service-glib.c: Update to make some methods
3029         const.
3030
3031 2005-07-08  Colin Walters  <walters@verbum.org>
3032
3033         * test/glib/test-service-glib.xml: 
3034         * test/glib/test-service-glib.c:
3035         * test/glib/test-dbus-glib.c: Test a{sv}.
3036
3037         * glib/examples/statemachine/statemachine.c:
3038         * glib/examples/statemachine/statemachine-server.c:
3039         * glib/examples/statemachine/statemachine-client.c: Fix some bugs,
3040         add progress bar, etc.
3041
3042         * glib/dbus-gvalue.c (register_array, register_dict): Delete; not
3043         needed anymore due to generic array/map marshalling.
3044         (dbus_g_value_types_init): Don't register basic arrays or the
3045         string/string hash.
3046         (dbus_gtype_from_signature_iter): Don't try to recurse into
3047         variants.
3048         (dbus_gtype_to_signature): Check collection/map before type
3049         metadata.
3050         (demarshal_garray_basic): Renamed to demarshal_collection_array.
3051         (demarshal_ghashtable): Renamed to demarshal_map; fix to use new
3052         generic map creation/append functions instead of hash table
3053         specifically.
3054         (get_type_demarshaller): Handle maps.
3055         (demarshal_collection): Dispatch on collection type to either
3056         demarshal_collection_ptrarray or demarshal_collection_array.
3057         (get_type_marshaller): Handle maps.
3058         (marshal_collection): Dispatch collection type to either
3059         marshal_collection_ptrarray or marshal_collection_array.
3060         (_dbus_gvalue_test): New test.
3061
3062         * glib/dbus-gvalue-utils.c (unset_and_free_g_value): New function.
3063         (hash_free_from_gtype): Use it to free GValues.
3064         (hashtable_append): New function.
3065         (ptrarray_append): Fix prototype.
3066         (slist_append): Ditto.
3067         (_dbus_gvalue_utils_test): Extend tests.
3068
3069         * glib/dbus-gtype-specialized.c
3070         (dbus_g_type_specialized_init_append): Renamed from
3071         dbus_g_type_specialized_collection_init_append.  Remove const from
3072         value, since we steal it.
3073         (dbus_g_type_specialized_map_append): New function.
3074
3075         * glib/dbus-gtype-specialized.h: Update prototypes.
3076         Add DBusGTypeSpecializedMapAppendFunc.
3077
3078         * glib/dbus-gtest.c (dbus_glib_internal_do_not_use_run_tests): Run
3079         _dbus_gvalue_test.
3080         
3081         * glib/dbus-gtest.h: Prototype it.
3082
3083 2005-07-08  Ross Burton  <ross@openedhand.com>
3084
3085         * dbus/dbus-glib.h:
3086         Add DBysGAsyncData for the async bindings.
3087
3088         * glib/dbus-binding-tool-glib.c:
3089         Re-enable the async bindings.
3090
3091         * test/glib/test-dbus-glib.c:
3092         Add a test for the generated async bindings.
3093
3094 2005-07-08  Colin Walters  <walters@verbum.org>
3095
3096         * doc/TODO: Update GLib todo bits, also add a post-1.0 TODO for a
3097         connection concept.
3098         
3099 2005-07-08  Colin Walters  <walters@verbum.org>
3100         
3101         * tools/Makefile.am: Kill of print-introspect in favor of using
3102         dbus-send --print-reply=literal.
3103
3104         * test/glib/test-service-glib.xml: 
3105         * test/glib/test-service-glib.c (my_object_get_objs): New test
3106         for "ao".
3107
3108         * test/glib/test-dbus-glib.c (echo_received_cb): Free echo data.
3109         (main): Test GetObjs.
3110
3111         * glib/examples/statemachine/Makefile.am:
3112         * glib/examples/statemachine/sm-marshal.list:
3113         * glib/examples/statemachine/statemachine-client.c:
3114         * glib/examples/statemachine/statemachine-server.c:
3115         * glib/examples/statemachine/statemachine-server.xml:
3116         * glib/examples/statemachine/statemachine.c:
3117         * glib/examples/statemachine/statemachine.h:
3118         * glib/examples/statemachine/statemachine.xml:
3119
3120         New example.
3121
3122         * glib/examples/example-service.c (main): Move invocation
3123         of dbus_g_object_type_install_info earlier, to emphasize it
3124         should only be done once.
3125
3126         * glib/examples/example-signal-emitter.c (main): Ditto.
3127
3128         * glib/examples/Makefile.am (SUBDIRS): Include statemachine.
3129
3130         * glib/dbus-gvalue.h (dbus_gtype_to_signature)
3131         (dbus_gvalue_marshal): Update prototypes.
3132
3133         * glib/dbus-gvalue.c: Update all marshalling functions to take
3134         const GValue instead of GValue.
3135         (signature_iter_to_g_type_array): Return a GPtrArray for nonfixed
3136         types.
3137         (dbus_gvalue_to_signature): Update for dbus_gtype_to_signature
3138         change.
3139         (dbus_gtype_to_signature): Handle generic collecitons and maps.
3140         Return a newly-allocated string.
3141         (demarshal_proxy, demarshal_object_path, demarshal_object)
3142         (demarshal_strv, demarshal_ghashtable): Set error, don't assert if
3143         we get the wrong types from message.
3144         (get_type_demarshaller): New function, extracted from
3145         dbus_gvalue_demarshal.
3146         (demarshal_collection): New function, demarshals generic
3147         collection.
3148         (dbus_gvalue_demarshal): Just invoke result of
3149         get_type_demarshaller.  Throw error if we don't have one.
3150         (marshal_garray_basic): Abort on OOM.
3151         (get_type_marshaller): New function, extracted from
3152         dbus_gvalue_marshal.
3153         (collection_marshal_iterator, marshal_collection): New functions;
3154         implements generic marshalling for an iteratable specialized
3155         collection.
3156         (dbus_gvalue_marshal): Just invoke result of get_type_marshaller.
3157
3158         * glib/dbus-gvalue-utils.c (gvalue_from_ptrarray_value): Handle
3159         G_TYPE_STRING.
3160         (ptrarray_value_from_gvalue): Ditto.
3161         (ptrarray_append, ptrarray_free): New functions.
3162         (slist_constructor, slist_iterator, slist_copy_elt, slist_copy) 
3163         (slist_append, slist_end_append, slist_free): New functions.
3164         (dbus_g_type_specialized_builtins_init): Add append fuctions
3165         for GPtrArray and GSList.  Register GSList.
3166         (test_specialized_hash, _dbus_gvalue_utils_test): New functions.
3167
3168         * glib/dbus-gtype-specialized.h (DBusGTypeSpecializedAppendContext):
3169         New.
3170         (dbus_g_type_specialized_collection_init_append)
3171         (dbus_g_type_specialized_collection_append)
3172         (dbus_g_type_specialized_collection_end_append): Prototype.
3173         (DBusGTypeSpecializedCollectionVtable): Add append_func and
3174         end_append_func.
3175
3176         * glib/dbus-gtype-specialized.c (dbus_g_type_specialized_collection_init_append) 
3177         (dbus_g_type_specialized_collection_append) 
3178         (dbus_g_type_specialized_collection_end_append): New functions.
3179         (dbus_g_type_map_value_iterate): Take const GValue.
3180         (dbus_g_type_collection_value_iterate): Ditto.
3181
3182         * glib/dbus-gtest.c (dbus_glib_internal_do_not_use_run_tests): Run
3183         _dbus_gvalue_utils_test.
3184         
3185         * glib/dbus-gtest.h: Prototype it.
3186
3187         * glib/dbus-gproxy.c (dbus_g_proxy_manager_filter): Avoid
3188         using uninitialized owner_list.
3189         (dbus_g_proxy_begin_call_internal): Move return_if_fail to
3190         public API.
3191         (dbus_g_proxy_end_call_internal): Update to use error set
3192         from dbus_gvalue_demarshal instead of setting it here.
3193         (dbus_g_proxy_begin_call): Move return_if_fail here.
3194
3195         * glib/dbus-gobject.c (write_interface): Update for
3196         dbus_gtype_to_signature returning new string.
3197
3198         * configure.in: Add glib/examples/statemachine.
3199
3200 2005-07-08  Joe Shaw  <joeshaw@novell.com>
3201
3202         * configure.in: Add a configure option, --with-console-auth-dir
3203         
3204         * dbus/dbus-sysdeps-util.c (_dbus_user_at_console): Use the
3205         new setting.  Patch from Kay Sievers.
3206
3207 2005-07-06  Colin Walters  <walters@verbum.org>
3208
3209         * dbus/dbus-glib.h (DBusGPendingCall, DBusGPendingCallNotify)
3210         (DBUS_TYPE_G_PENDING_CALL, dbus_g_pending_call_get_g_type)
3211         (dbus_g_pending_call_ref, dbus_g_pending_call_unref): Delete.
3212         (dbus_g_pending_call_set_notify, dbus_g_pending_call_cancel):
3213         Delete in favor of dbus_g_proxy_begin_call and
3214         dbus_g_proxy_cancel_call.
3215         (DBusGProxyCall, DBusGProxyCallNotify): New.
3216         (dbus_g_proxy_begin_call): Change prototype to take callback, user
3217         data, and destroy function.  This replaces
3218         dbus_g_pending_call_set_notify.
3219         (dbus_g_proxy_cancel_call): Prototype.
3220         (DBusGAsyncData): Delete, shouldn't be needed anymore.
3221
3222         * glib/dbus-gproxy.c (struct _DBusGProxy): Add call_id_counter and
3223         pending_calls map.
3224         (struct _DBusGProxyManager): Add bus_proxy member, which is an
3225         internal proxy for calls to the bus. Remove
3226         pending_nameowner_calls, now the internal proxy keeps track.
3227         (dbus_g_proxy_manager_unref): Unref bus proxy, remove reference to
3228         pending_nameowner_calls.
3229         (got_name_owner_cb): Update prototype, and use
3230         dbus_g_proxy_end_call.
3231         (got_name_owner_cb): Remove reference to pending_nameowner_calls.
3232         (dbus_g_proxy_manager_register): Delete directly libdbus code in
3233         favor of using internal proxy.
3234         (dbus_g_proxy_manager_unregister): Update to use
3235         dbus_g_proxy_cancel_call for any pending GetNameOwner call.
3236         (dbus_g_proxy_init): Initialize pending calls map.
3237         (dbus_g_proxy_constructor): New.
3238         (dbus_g_proxy_class_init): Add get/set property functions,
3239         constructor, and add NAME, PATH, and INTERFACE properties.
3240         (cancel_pending_call): New function.
3241         (dbus_g_proxy_dispose): Iterate over any outstanding calls and
3242         cancel them.
3243         (dbus_g_proxy_set_property, dbus_g_proxy_get_property): New.
3244         (GPendingNotifyClosure): New structure.
3245         (d_pending_call_notify, d_pending_call_free): Moved here from
3246         dbus-glib.c.
3247         (DBUS_G_VALUE_ARRAY_COLLECT_ALL): Moved around to satisfy function
3248         ordering.
3249         (manager_begin_bus_call): New internal function for talking to
3250         internal bus proxy.
3251         (dbus_g_proxy_new): Construct object using GObjet properties.
3252         (dbus_g_proxy_begin_call_internal): Update to take user data, etc.
3253         Create closure of same, and insert call into map of pending calls.
3254         (dbus_g_proxy_end_call_internal): Take call id instead of pending
3255         call.  Look up pending call in current set.  Remove it when we've
3256         completed.
3257         (dbus_g_pending_call_end, dbus_g_proxy_end_call_internal): Delete.
3258         (dbus_g_proxy_begin_call): Change API to take callback, user data,
3259         and destroy function directly.
3260         (dbus_g_proxy_end_call): Update to take DBusGProxyCall.
3261         (dbus_g_proxy_call): Invoke with NULL callback.
3262         (dbus_g_proxy_cancel_call): New function, replaces
3263         dbus_g_pending_call_cancel.
3264
3265         * glib/dbus-gparser.c (validate_signature): Fix call to
3266         dbus_set_g_error.
3267
3268         * glib/dbus-gobject.c (dbus_g_object_type_dbus_metadata_quark):
3269         New quark for attaching metadata to GType.
3270         (info_hash): Delete.
3271         (lookup_object_info): Look up using quark.
3272         (dbus_g_object_type_install_info): Check that a type is classed,
3273         not that it's an object.  Also just install type data using quark
3274         instead of using global hash.
3275
3276         * glib/dbus-glib.c (dbus_g_pending_call_ref) 
3277         (dbus_g_pending_call_unref, dbus_pending_call_get_g_type)
3278         (GPendingNotifyClosure): Delete.
3279         (d_pending_call_notify, d_pending_call_free): Move to dbus-gproxy.c.
3280         (dbus_g_pending_call_set_notify, dbus_g_pending_call_cancel): Delete.
3281
3282         * glib/dbus-binding-tool-glib.c (generate_client_glue): Disable async
3283         client method generation until we can fix it...
3284         
3285         * tools/dbus-viewer.c (load_child_nodes): Use dbus_g_proxy_call.
3286         (load_from_service_thread_func): Ditto.
3287
3288         * tools/dbus-names-model.c (struct NamesModel): Hold
3289         DBusGProxyCall.
3290         (have_names_notify): Update prototype, use
3291         dbus_g_proxy_cancel_call.
3292         (names_model_reload): Update for new dbus_g_proxy_begin_call API.
3293
3294         * tools/dbus-monitor.c (filter_func): Update for print_message
3295         API change.
3296
3297         * test/glib/test-dbus-glib.c: Add more tests for async
3298         invocations.  Update many begin_call/end_call pairs to just use
3299         dbus_g_proxy_call.
3300
3301         * tools/dbus-send.c (main): Add --print-reply=literal mode.  This
3302         allows us to dump print-introspect.c.
3303
3304         * tools/dbus-print-message.h (print_message): Add literal argument
3305         to print_message which is intended to allow printing arguments without
3306         metadata like "string=".
3307
3308         * tools/dbus-print-message.c (print_iter): Add literal argument.
3309         (print_message): Allow printing string messages literally.
3310
3311 2005-07-05  Colin Walters  <walters@verbum.org>
3312
3313         * glib/dbus-gproxy.c (marshal_dbus_message_to_g_marshaller):
3314         Remove value refcount leak, original patch from Jorn Baayen
3315         <jorn@openedhand.com>.  Also remove useless extra value in favor
3316         of prepending to value array directly.
3317
3318 2005-07-02  Colin Walters  <walters@verbum.org>
3319
3320         * glib/dbus-gmain.c (_dbus_gmain_test): Fix test.
3321
3322 2005-07-01  Colin Walters  <walters@verbum.org>
3323
3324         Patch from Jonathan Matthew <jonathan@kaolin.hn.org>
3325         
3326         * glib/dbus-gvalue.c (basic_typecode_to_gtype): Fix return type.
3327         (dbus_g_value_types_init): Marshal G_TYPE_CHAR as DBUS_TYPE_BYTE,
3328         G_TYPE_LONG as DBUS_TYPE_INT32, G_TYPE_ULONG as DBUS_TYPE_UINT32,
3329         and G_TYPE_FLOAT as DBUS_TYPE_DOUBLE.
3330
3331 2005-06-30  Colin Walters  <walters@verbum.org>
3332
3333         * test/glib/test-dbus-glib.c:
3334         * test/glib/test-service-glib.c:
3335         * test/glib/test-service-glib.xml: Update tests for new error
3336         setting bits, also add async tests (patch from Ross Burton).
3337
3338         * test/glib/Makefile.am (test_service_glib_LDADD): Add
3339         DBUS_GLIB_THREADS_LIBS.
3340
3341         * glib/dbus-gproxy.c (get_name_owner)
3342         (dbus_g_pending_call_end_valist): Ditto.
3343
3344         * glib/dbus-gobject.c (error_metadata): New mapping from GError
3345         domain (GQuark) to DBusGErrorInfo.  
3346         (gerror_domaincode_to_dbus_error_name): Attempt to look up error
3347         quark in error_metadata.  Take message interface as default
3348         error message interface.
3349         (gerror_to_dbus_error_message): Pass message interface.
3350         (dbus_set_g_error): Resurrected.
3351         (dbus_g_error_info_free): New function.
3352         (dbus_g_object_type_install_info): Use g_type_class_ref instead
3353         of _peek to actually create the object class if it hasn't been
3354         created yet.
3355         (dbus_g_error_domain_register): New function.
3356
3357         * glib/dbus-gmain.c (dbus_g_bus_get): Switch to dbus_set_g_error.
3358
3359         * glib/dbus-gparser.c (validate_signature): Ditto.
3360
3361         * dbus/dbus-glib.h (dbus_g_error_set): Delete.
3362         (dbus_g_error_domain_register): Prototype.
3363
3364         * glib/dbus-glib.c (dbus_g_error_set): Delete.
3365         Update tests.
3366
3367 2005-06-29  Colin Walters  <walters@verbum.org>
3368
3369         * dbus/dbus-glib.h: Delete DBUS_TYPE_G_PROXY_ARRAY.  Add
3370         DBUS_TYPE_G_OBJECT_PATH.
3371
3372         * glib/dbus-gvalue.c (dbus_g_value_types_init): Remove marshallers
3373         for G_TYPE_OBJECT and DBUS_TYPE_G_PROXY_ARRAY (the latter should
3374         be handled more generically).  Add DBUS_TYPE_G_OBJECT_PATH.
3375         (dbus_g_object_path_get_g_type): New function.
3376         (dbus_gtype_from_signature_iter): Map DBUS_TYPE_OBJECT_PATH
3377         to DBUS_TYPE_G_OBJECT_PATH by default.
3378         (demarshal_proxy): Remove unused name variable.
3379         (demarshal_object_path, marshal_object_path): New functions.
3380         (demarshal_proxy_array, marshal_proxy_array): Delete.
3381         
3382         * glib/dbus-binding-tool-glib.c (dbus_g_type_get_c_name): Map
3383         DBUS_TYPE_G_OBJECT_PATH to char *.
3384         (dbus_g_type_get_lookup_function): Map builtin
3385         DBUS_TYPE_G_OBJECT_PATH.
3386
3387         * test/glib/test-dbus-glib.c
3388         * test/glib/test-service-glib.c (my_object_objpath): 
3389         Adapt tests to new object path marshalling.
3390
3391 2005-06-29  John (J5) Palmieri  <johnp@redhat.com>
3392
3393         * configure.in: force check for Python >= 2.4
3394
3395 2005-06-29  Colin Walters  <walters@verbum.org>
3396         
3397         Patch from Ross Burton <ross@openedhand.com>
3398         
3399         * glib/dbus-gobject.c (invoke_object_method): Unset object
3400         value in all cases, not only in async case.
3401
3402 2005-06-29  Colin Walters  <walters@verbum.org>
3403
3404         * glib/dbus-gproxy.c (struct _DBusGProxy): Add new member
3405         name_call for keeping track of any outgoing GetNameOwner call.
3406         Also add for_owner and associated.
3407         (struct _DBusGProxyManager): Add owner_names, which is hash table
3408         that maps a base name to a list of names it owns (that we're
3409         interested in).  Add pending_nameowner_calls which is a list of
3410         all outstanding GetNameOwner; avoids us having to iterate over
3411         every proxy.  Add unassociated_proxies which keeps track of name
3412         proxies with no associated name owner.
3413         (dbus_g_proxy_manager_unref): Destroy owner_names.
3414         (struct DBusGProxyNameOwnerInfo): New struct for keeping track of
3415         name refcounts.
3416         (find_name_in_info, name_owner_foreach)
3417         (dbus_g_proxy_manager_lookup_name_owner, insert_nameinfo)
3418         (dbus_g_proxy_manager_monitor_name_owner)
3419         (dbus_g_proxy_manager_unmonitor_name_owner)
3420         (unassociate_proxies, dbus_g_proxy_manager_replace_name_owner):
3421         New functions; they manipulate the owner_names mapping.
3422         (got_name_owner_cb): New function.
3423         (get_name_owner): New function, extracted from
3424         dbus_g_proxy_new_for_name_owner.
3425         (dbus_g_proxy_manager_register): For now we need to keep track of
3426         all NameOwnerChanged.  Also if the proxy is for a name, if we
3427         don't already know the name owner, queue a new GetNameOwner
3428         request and add it to our list of unassociated proxies.  Otherwise
3429         inc the refcount.
3430         (dbus_g_proxy_manager_unregister): If this proxy is for a name,
3431         cancel any pending GetNameOwner call, etc.
3432         (dbus_g_proxy_manager_filter): Handle NameOwnerChanged.  Also use
3433         the owner_names mapping to look up the current names for the
3434         signal source, and dispatch to any proxies for that name.
3435         (dbus_g_proxy_new): Initialize new members.
3436         (dbus_g_proxy_new_for_name): Delete unused proxy variable.
3437         (dbus_g_proxy_new_for_name_owner): Use get_name_owner.
3438         (dbus_g_pending_call_end_valist): New function, extracted from
3439         dbus_g_proxy_end_call_internal.  Useful when we don't have a proxy
3440         but want to use the GLib infrastructure.  Also note how many
3441         arguments in reply were over.
3442         (dbus_g_pending_call_end): New function, just call
3443         dbus_g_pending_call_end_valist.
3444         (dbus_g_proxy_end_call_internal): Just call
3445         dbus_g_pending_call_end_valist.
3446
3447         * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller): Fix lookup
3448         of builtin marshaller for STRING_STRING_STRING.
3449
3450         * test/glib/test-dbus-glib.c: 
3451         * test/glib/test-service-glib.c:
3452         * test/glib/test-service-glib.xml:
3453         Extend tests to cover name proxies, destruction of owner proxies,
3454         etc.
3455         
3456         * glib/examples/example-signal-recipient.c
3457         (dbus_g_proxy_new_for_name_owner): Create a name proxy.
3458         
3459         * tools/dbus-send.c (main): Print D-BUS error name in addition
3460         to message.
3461
3462 2005-06-28  John (J5) Palmieri  <johnp@redhat.com>
3463
3464         * python/dbus_bindings.pyx.in (cunregister_function_handler,
3465         cmessage_function_handler): Patch from 
3466         Anthony Baxter <anthony@interlink.com.au> fixes threading problems
3467         by using the Py_GILState_Ensure/Release to synchronize with the
3468         python runtime.
3469         
3470 2005-06-28  Ray Strode  <rstrode@redhat.com>
3471
3472         *  dbus/dbus-spawn.c (_dbus_babysitter_unref): kill
3473         babysitter helper process on last unref, bug #2813.
3474
3475 2005-06-27  Colin Walters  <walters@verbum.org>
3476
3477         * test/glib/test-dbus-glib.c: 
3478         * test/glib/test-service-glib.c:
3479         * test/glib/test-service-glib.xml:
3480         Test hash table signal emitting.
3481
3482         * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller): Convert
3483         types to their fundamental basis types, since this is what
3484         marshallers operate on.  Also add an entry for VOID__BOXED.
3485         (dbus_g_object_register_marshaller_array): Convert to fundamental.
3486
3487 2005-06-26  Havoc Pennington  <hp@redhat.com>
3488
3489         * doc/dbus-tutorial.xml: fix names of interface/service/path, fix
3490         from Don Park
3491
3492 2005-06-26  Colin Walters  <walters@verbum.org>
3493
3494         * glib/dbus-glib.c (dbus_set_g_error): Delete.
3495         (dbus_g_error_set): New public function from its ashes; used by
3496         both service-side method implementation and GLib bindings
3497         internals.
3498         (dbus_g_error_has_name, dbus_g_error_get_name): New function.
3499         (_dbus_glib_test): Add some tests.
3500
3501         * test/glib/test-dbus-glib.c (main): Test dbus_g_error_has_name.
3502
3503         * test/glib/test-service-glib.c (my_object_throw_error): Use
3504         dbus_g_error_set.
3505
3506         * glib/dbus-gobject.c (gerror_to_dbus_error_message): Handle
3507         errors thrown by dbus_g_error_set.
3508
3509         * glib/dbus-gmain.c (dbus_g_bus_get): Change to dbus_g_error_set.
3510
3511         * glib/dbus-gparser.c (validate_signature): Ditto.
3512
3513         * glib/dbus-gproxy.c (dbus_g_proxy_new_for_name_owner) 
3514         (dbus_g_proxy_end_call_internal): Ditto.
3515
3516         * glib/Makefile.am: Generate dbus-glib-error-switch.h, which
3517         converts DBUS_ERROR_x to DBUS_GERROR_x.
3518         (libdbus_glib_1_la_SOURCES, BUILT_SOURCES, CLEANFILES): Add it.
3519
3520         * doc/TODO: Remove error TODO.
3521
3522         * doc/dbus-tutorial.xml: Update with documentation about error
3523         handling.
3524
3525         * dbus/make-dbus-glib-error-enum.sh: Tighten up regexp to make
3526         sure we only change DBUS_ERROR to DBUS_GERROR, not all ERROR to
3527         GERROR.  Also add DBUS_GERROR_REMOTE_EXCEPTION.
3528
3529 2005-06-22  Colin Walters  <walters@verbum.org>
3530         
3531         Patch from Ross Burton <ross@openedhand.com>
3532
3533         * glib/dbus-gobject.c (dbus_g_method_return): Free out_sig.
3534
3535 2005-06-20  Colin Walters  <walters@verbum.org>
3536
3537         * configure.in: Add glib/examples.
3538
3539         * glib/Makefile.am: Add examples/
3540
3541         * glib/examples/.cvsignore
3542         * glib/examples/Makefile.am
3543         * glib/examples/example-client.c
3544         * glib/examples/example-service.c
3545         * glib/examples/example-service.xml
3546         * glib/examples/example-signal-emitter.c
3547         * glib/examples/example-signal-emitter.xml
3548         * glib/examples/example-signal-recipient.c:
3549         New files; GLib binding examples, ported from
3550         python/examples.
3551
3552 2005-06-20  Colin Walters  <walters@verbum.org>
3553
3554         * dbus/dbus-glib.h: 
3555         * glib/dbus-gproxy.c: Rename dbus_g_proxy_invoke to
3556         dbus_g_proxy_call.
3557
3558         * glib/dbus-binding-tool-glib.c: 
3559         * doc/dbus-tutorial.xml: 
3560         * test/glib/test-dbus-glib.c: Update for rename.
3561         
3562 2005-06-20  Colin Walters  <walters@verbum.org>
3563
3564         Patch suggested by Ross Burton <ross@openedhand.com>
3565
3566         * glib/dbus-gobject.c (export_signals): Free signal name.
3567         (g_value_init): Use G_VALUE_NOCOPY_CONTENTS to plug
3568         memory leak.  Add a bit of documentation.
3569         (dbus_g_method_return_error): Free context, and note we do
3570         so.
3571
3572 2005-06-18  Murray Cumming  <murrayc@murrayc.com>
3573
3574         * dbus/dbus-glib.h:
3575         * glib/dbus-gobject.c:
3576         * glib/dbus-gproxy.c:
3577         * glib/dbus-gvalue.c: Predeclare structs as 
3578         typedef struct _Something Something instead of 
3579         typedef struct Something Something, so we can 
3580         redeclare the prototypes. Other GNOME libraries 
3581         do this already.
3582
3583 2005-06-17  Colin Walters  <walters@verbum.org>
3584
3585         * tools/dbus-names-model.c (have_names_notify): Fix call
3586         to dbus_g_proxy_end_call.
3587         
3588 2005-06-17  Colin Walters  <walters@verbum.org>
3589
3590         * glib/dbus-gproxy.c (dbus_g_proxy_emit_remote_signal): Don't
3591         spew warnings if we get malformed remote signals.
3592
3593         * glib/dbus-gobject.c (propsig_iterate): New function.
3594         (lookup_object_info): New function, extracted from
3595         lookup_object_and_method.
3596         (introspect_properties, introspect_signals): Delete; these
3597         are merged into write_interface.
3598         (write_interface): Write out signals and properties here;
3599         dump the org.gtk.object stuff and use the interface given
3600         in the introspection data blob.  Also fix up property XML.
3601         (lookup_values): New function.
3602         (introspect_interfaces): Gather a mapping from interface to a
3603         list of its methods, signals, and properties, then write out
3604         each interface.
3605         (lookup_object_and_method): Use lookup_object_info.
3606         (struct DBusGSignalClosure): Add interface.
3607         (dbus_g_signal_closure_new): Add interface. Don't dup signame;
3608         we can just use the constant data.
3609         (dbus_g_signal_closure_finalize): Don't free signal name.
3610         (signal_emitter_marshaller): Use interface from signal closure.
3611         (export_signals): Only export signals mentioned in introspection
3612         blob.
3613         (dbus_g_connection_register_g_object): Warn if we have no
3614         introspection data for an object.
3615         (funcsig_equal): Remove unused variable.
3616         (dbus_g_object_register_marshaller): Take varargs instead of
3617         list.
3618         (dbus_g_object_register_marshaller_array): New function,
3619         extracted from old dbus_g_object_register_marshaller.
3620
3621         * glib/dbus-binding-tool-glib.c (struct DBusBindingToolCData): Add
3622         signals and property data.
3623         (write_quoted_string): New function, extracted from generate_glue.
3624         (generate_glue): Write signals and properties to introspection
3625         blob.
3626
3627         * dbus/dbus-glib.h (struct DBusGObjectInfo): Include
3628         exported_signals and exported_properties.
3629         (dbus_g_object_register_marshaller): Update prototype.
3630         (dbus_g_object_register_marshaller_array): Prototype.
3631         
3632         * test/glib/test-dbus-glib.c: Extend testing to cover new signals.
3633
3634         * test/glib/test-service-glib.c: Add new test signals and method
3635         to emit them.
3636
3637         * test/glib/test-service-glib.xml: Add some test signals.
3638
3639         * test/glib/Makefile.am (BUILT_SOURCES): Add my-object-marshal.c
3640         and my-object-marshal.h
3641         (test_service_glib_SOURCES, test_dbus_glib_SOURCES): Add
3642         my-object-marshal.c.
3643         (my-object-marshal.c, my-object-marshal.h): Implement.
3644
3645         * test/glib/.cvsignore: Update.
3646
3647         * doc/TODO: Remove two GLib TODO items fixed by this
3648         patch.
3649
3650 2005-06-16  Colin Walters  <walters@verbum.org>
3651
3652         * doc/TODO: Update for GLib bindings.
3653         
3654 2005-06-16  Colin Walters  <walters@verbum.org>
3655
3656         * glib/dbus-binding-tool-glib.c:
3657         * glib/dbus-gobject.c:
3658         * glib/dbus-gproxy.c:  Add Nokia copyright; Patch
3659         from Ross Burton, for his GLib bindings work.
3660
3661 2005-06-16  Colin Walters  <walters@verbum.org>
3662
3663         * glib/dbus-gobject.c (funcsig_hash, funcsig_equal): Use n_params
3664         to iterate instead of walking to G_TYPE_INVALID.
3665
3666         Patch based on a patch from Ryan Gammon.
3667
3668 2005-06-16  Colin Walters  <walters@verbum.org>
3669
3670         * bus/bus.c (bus_context_new): Set parser to NULL
3671         after we unref it (Patch from Chris Boscolo, #2174).
3672         
3673 2005-06-16  Colin Walters  <walters@verbum.org>
3674
3675         * python/dbus_bindings.pyx.in: Import size_t,
3676         __int64_t, __uint64_t, and __signed.
3677
3678         * dbus/dbus-sysdeps.c <HAVE_CMSGCRED> (write_credentials_byte):
3679         Define cmsg struct, output it.
3680         (_dbus_read_credentials_unix_socket):
3681         Use cmsg struct.
3682         
3683         Patch from Joe Markus Clarke for FreeBSD support.
3684         
3685 2005-06-16  Colin Walters  <walters@verbum.org>
3686
3687         * tools/dbus-send.c (append_array): Use strtok.
3688         (append_dict): New function.
3689         (type_from_name): New function, extracted from main.
3690         (main): Handle sending dicts.
3691
3692         * tools/dbus-print-message.c (print_iter): Print dict
3693         entries.
3694         
3695 2005-06-16  Colin Walters  <walters@verbum.org>
3696
3697         * glib/dbus-gvalue.c (marshal_basic): Marshal NULL string
3698         values as the empty string (#2948).
3699         
3700 2005-06-16  Colin Walters  <walters@verbum.org>
3701
3702         * dbus/Makefile.am:
3703         * mono/doc/Makefile.am:
3704         * test/glib/Makefile.am:
3705
3706         Fix srcdir != builddir issues (Patch from Chris Wilson, #3477)
3707
3708 2005-06-16  Colin Walters  <walters@verbum.org>
3709
3710         * dbus/dbus-marshal-header.c (_dbus_header_load): Set
3711         header byte order from expected byte order (Patch from Chris Wilson, #3475).
3712
3713         * dbus/dbus-marshal-byteswap.c (byteswap_body_helper): 
3714         Increment pointer after swapping fixed array.  Add assertion
3715         for array length.
3716                 
3717 2005-06-15  Colin Walters  <walters@verbum.org>
3718
3719         * dbus/dbus-sysdeps.c <HAVE_CMSGCRED> (_dbus_read_credentials_unix_socket):
3720         Fix call to dbus_set_error.  (Patch from Michael Banck, #3461)
3721         
3722 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
3723
3724         * NEWS: Update to 0.34
3725
3726 2005-06-15  David Zeuthen  <davidz@redhat.com>
3727
3728         * configure.in (LT_CURRENT): Revert back to 1 as the library
3729         hasn't changed and we've certainly not committed to protocol
3730         stability yet.  All this does is to break ABI. See commit note
3731         from hp@redhat.com 2005-05-05 for details.
3732         
3733 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
3734
3735         * dbus/dbus-connection.c (_dbus_connection_peer_filter): New method 
3736         (_dbus_connection_run_builtin_filters): New method
3737         (dbus_connection_dispatch): Run the builtin filters which in turn
3738         runs the peer filter which handles Ping messages.
3739
3740         * doc/TODO: 
3741          - Ping isn't handled: This patch fixes it
3742          
3743          - Add a test case for the Ping message: added TODO item
3744
3745 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
3746
3747         * dbus/dbus-message.c:
3748         (dbus_message_has_path): New method
3749         (dbus_message_has_interface): New method
3750         (dbus_message_has_member): New method
3751
3752         * dbus/dbus/dbus-sysdeps.c (_dbus_check_dir_is_private_to_user):
3753         New method
3754
3755         * dbus/dbus-keyring.c (_dbus_keyring_reload): Check to see that 
3756         the keyring directory is private to the user
3757
3758         * doc/TODO:
3759          - The convenience functions in dbus-bus.h should perhaps have
3760          the signatures that they would have if they were autogenerated
3761          stubs. e.g. the acquire service function. We should also evaluate
3762          which of these functions to include, in light of the fact that
3763          GLib/Qt native stubs will probably also exist.: Punted
3764
3765          - add dbus_message_has_path(), maybe has_member/interface:
3766          fixed in this patch
3767
3768          - in dbus-keyring.c, enforce that the keyring dir is not
3769          world readable/writable: Fixed in this patch
3770
3771 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
3772
3773         * dbus/dbus-marshal-validate.h: Added a new validation
3774         error code DBUS_VALIDITY_UNKNOWN_OOM_ERROR = -4 for 
3775         out of memory errors when validating signitures
3776
3777         * dbus/dbus-marshal-header.c: use DBUS_VALIDITY_UNKNOWN_OOM_ERROR
3778         in places where we previously used DBUS_VALID and a FALSE return 
3779         value to indicate OOM
3780         
3781         * dbus/dbus-marshal-validate.c (_dbus_validate_signature_with_reason):
3782         Use a stack to track the number of elements inside containers.  The 
3783         stack values are then used to validate that dict entries have only two
3784         elements within them.
3785         (validate_body_helper): check the reason for failure when validating
3786         varients
3787         
3788         * dbus/dbus-message.c (load_message): use 
3789         DBUS_VALIDITY_UNKNOWN_OOM_ERROR in places where we previously used 
3790         DBUS_VALID and a FALSE return value to indicate OOM
3791
3792         * doc/TODO: remove "- validate dict entry number of fields" as this
3793         patch fixes it
3794
3795 2005-06-14  David Zeuthen  <davidz@redhat.com>
3796
3797         * bus/bus.c (process_config_every_time): Drop existing conf-dir
3798         watches (if applicable) and add new watches
3799
3800         * bus/main.c (signal_handler): Handle SIGIO if using D_NOTIFY
3801         (main): Setup SIGIO signal handler if using D_NOTIFY
3802
3803         * bus/config-parser.h: Add prototype bus_config_parser_get_conf_dirs
3804
3805         * bus/config-parser.c (struct BusConfigParser): Add conf_dirs list
3806         (merge_included): Also merge conf_dirs list
3807         (bus_config_parser_unref): Clear conf_dirs list
3808         (include_dir): Add directory to conf_dirs list
3809         (bus_config_parser_get_conf_dirs): New function
3810
3811         * bus/dir-watch.[ch]: New files
3812
3813         * bus/Makefile.am (BUS_SOURCES): Add dir-watch.[ch]
3814
3815         * configure.in: Add checks for D_NOTIFY on Linux
3816
3817 2005-06-14  Colin Walters  <walters@verbum.org>
3818
3819         * glib/dbus-binding-tool-glib.c:
3820         * glib/dbus-gobject.c:
3821         * glib/dbus-gvalue.c: Fix indentation and brace style.
3822         
3823 2005-06-14  Ross Burton <ross@openedhand.com>.
3824
3825         * glib/dbus-glib.h: Make DBusGMethodInvocation
3826         a private structure.  Rearrange prototypes a bit.
3827         
3828         * glib/dbus-gproxy.c (dbus_g_proxy_invoke): Add
3829         documentation for first_arg_type.
3830         
3831         * glib/dbus-gobject.c: Move DBusGMethodInvocation
3832         here, add documentation.  Move dbus_g_method_return
3833         and dbus_g_method_return_error into public API
3834         section.
3835
3836 2005-06-14  Colin Walters  <walters@verbum.org>
3837
3838         * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller):
3839         Add missing return statements, noticed by Ross Burton.
3840         
3841 2005-06-13  Ross Burton <ross@openedhand.com>.
3842
3843         * glib/dbus-gobject.c: Handle errors on message
3844         demarshalling by sending error message back.
3845         * glib/dbus-gvalue.c: Initialize return variables.
3846
3847 2005-06-13  Colin Walters  <walters@verbum.org>
3848
3849         * glib/Makefile.am: Fix thinko in last patch.
3850
3851 2005-06-13  Colin Walters  <walters@verbum.org>
3852
3853         * glib/Makefile.am: Move dbus-gtype-specialized.c
3854         and dbus-gtype-specialized.h into a _HEADERS variable,
3855         install them.
3856
3857 2005-06-12  Colin Walters  <walters@verbum.org>
3858
3859         Async signals and various bugfixes and testing by
3860         Ross Burton <ross@openedhand.com>.
3861
3862         * glib/dbus-gvalue.h: (struct DBusBasicGValue): Delete.
3863         (dbus_gvalue_genmarshal_name_from_type)
3864         (dbus_gvalue_ctype_from_type): Moved to dbus-binding-tool-glib.c.
3865         (dbus_gtype_to_dbus_type): Renamed to dbus_gtype_from_signature.
3866         (dbus_g_value_types_init, dbus_gtype_from_signature)
3867         (dbus_gtype_from_signature_iter, dbus_gtype_to_signature)
3868         (dbus_gtypes_from_arg_signature): New function prototypes.
3869         (dbus_gvalue_demarshal): Take context and error arguments.
3870         (dbus_gvalue_demarshal_variant): New function.
3871         (dbus_gvalue_demarshal_message): New function.
3872         (dbus_gvalue_store): Delete.
3873
3874         * glib/dbus-gvalue.c:
3875
3876         File has been almost entirely rewritten; now we special-case
3877         more types such as DBUS_TYPE_SIGNATURE, handle arrays and
3878         hash tables correctly, etc.  Full support for recursive values
3879         is not yet complete.
3880
3881         * glib/dbus-gproxy.c (dbus_g_proxy_class_init): Change last
3882         argument of signal to G_TYPE_POINTER since we now pass a
3883         structure.
3884         (lookup_g_marshaller): Delete in favor of
3885         _dbus_gobject_lookup_marshaller.
3886         (marshal_dbus_message_to_g_marshaller): Use
3887         _dbus_gobject_lookup_marshaller and dbus_gvalue_demarshal_message
3888         to handle remote signal callbacks.
3889         (dbus_g_proxy_new_from_proxy): New function; creates a new
3890         DBusGProxy by copying an existing one.
3891         (dbus_g_proxy_get_interface, dbus_g_proxy_set_interface)
3892         (dbus_g_proxy_get_path): New functions.
3893         (dbus_g_proxy_marshal_args_to_message): New function;
3894         factored out of existing code.
3895         (DBUS_G_VALUE_ARRAY_COLLECT_ALL): Collect all arguments
3896         from a varargs array.
3897         (dbus_g_proxy_begin_call_internal): New function.
3898         (dbus_g_proxy_end_call_internal): New function.
3899         (dbus_g_proxy_begin_call): Take GTypes instead of DBus types
3900         as arguments; simply invoke dbus_g_proxy_begin_call_internal
3901         after collecting args into value array.
3902         (dbus_g_proxy_end_call): Take GTypes instead of DBus types;
3903         invoke dbus_g_proxy_end_call_internal.
3904         (dbus_g_proxy_invoke): Simply invoke begin_call_interanl and
3905         end_call_internal.
3906         (dbus_g_proxy_call_no_reply): Take GTypes instead of DBus
3907         types.
3908         (array_free_all): New function.
3909         (dbus_g_proxy_add_signal): Take GTypes.
3910
3911         * glib/dbus-gobject.h:
3912         (_dbus_glib_marshal_dbus_message_to_gvalue_array): Delete.
3913         (_dbus_gobject_get_path, _dbus_gobject_lookup_marshaller):
3914         Prototype.
3915
3916         * glib/dbus-gobject.c: Add a global marshal_table hash which
3917         stores mappings from type signatures to marshallers.  Change lots
3918         of invocations of dbus_gtype_to_dbus_type to
3919         dbus_gtype_to_signature.
3920         (_dbus_glib_marshal_dbus_message_to_gvalue_array): Delete.
3921         (introspect_signals): Fix test for query.return_type.
3922         (set_object_property): Update invocation of dbus_gvalue_demarshal.
3923         (invoke_object_method): Many changes.  Handle asynchronous
3924         invocations.  Convert arguments with
3925         dbus_gvalue_demarshal_message.  Handle errors.  Use
3926         DBusSignatureIter instead of strlen on args. Handle all arguments
3927         generically.  Special-case variants.
3928         (dbus_g_method_return, dbus_g_method_return_error): New function.
3929         (DBusGSignalClosure): New structure, closes over signal
3930         information.
3931         (dbus_g_signal_closure_new): New function.
3932         (dbus_g_signal_closure_finalize): New function.
3933         (signal_emitter_marshaller): New function; is special marshaller
3934         which emits signals on bus.
3935         (export_signals): New function; introspects object signals and
3936         connects to them.
3937         (dbus_g_object_type_install_info): Take GType instead of
3938         GObjectClass.
3939         (dbus_g_connection_register_g_object): Invoke export_signals.
3940         (dbus_g_connection_lookup_g_object): New function.
3941         (DBusGFuncSignature) New structure; used for mapping type
3942         signatures to marshallers.
3943         (funcsig_hash): New function; hashes DBusGFuncSignature.
3944         (funcsig_equal): New function; compares DBusGFuncSignature.
3945         (_dbus_gobject_lookup_marshaller): New function.
3946         (dbus_g_object_register_marshaller): New function; used to
3947         register a marshaller at runtime for a particular signature.
3948
3949         * glib/dbus-gmain.c (_dbus_gmain_test): Add various tests.
3950
3951         * glib/dbus-binding-tool-glib.h: Add DBUS_GLIB_ANNOTATION_ASYNC
3952         which notes a server method implementation should be
3953         asynchronous.
3954
3955         * glib/dbus-binding-tool-glib.c
3956         (dbus_binding_tool_output_glib_server): Call
3957         dbus_g_value_types_init.
3958         (write_formal_parameters): Use dbus_gtype_from_signature.  Handle
3959         variants specially.
3960         (dbus_g_type_get_lookup_function): Turn GType into an invocation
3961         of a lookup function.
3962         (write_args_for_direction): Use dbus_g_type_get_lookup_function.
3963         (write_untyped_out_args): New method; write output arguments.
3964         (write_formal_declarations_for_direction): Function for
3965         writing prototypes.
3966         (write_formal_parameters_for_direction): Function for
3967         writing implementations.
3968         (write_typed_args_for_direction): Function for writing
3969         arguments prefixed with GTypes.
3970         (write_async_method_client): Write out async version
3971         of method.
3972
3973         * glib/dbus-binding-tool-glib.c: Include dbus-gvalue-utils.h.
3974         (dbus_g_type_get_marshal_name): Move mapping from GType
3975         to marshal name into here.
3976         (dbus_g_type_get_c_name): Move into here.
3977         (compute_marshaller): Convert signature to type with
3978         dbus_gtype_from_signature, use dbus_g_type_get_marshal_name.
3979         (compute_marshaller_name): Ditto.
3980         (compute_marshaller): Handle async signal annotations.
3981         (gather_marshallers): Return if we don't have a known
3982         prefix.
3983         (generate_glue): Collect introspection blob here, and
3984         write all of the blob at the end.  This allows an object
3985         with multiple interfaces to work.
3986         Mark async methods in introspection blob.
3987
3988         * glib/Makefile.am (libdbus_glib_1_la_SOURCES): Add
3989         dbus-gtype-specialized.c, dbus-gtype-specialized.h,
3990         dbus-gvalue-utils.h, dbus-gvalue-utils.c.
3991
3992         * dbus/dbus-glib.h: Don't include dbus-protocol.h; this
3993         avoids people accidentally using DBUS_TYPE_* which should
3994         not be necessary anymore.
3995         Do include dbus-gtype-specialized.h, which are utilities
3996         for GLib container types.
3997         Add various #defines for types such as
3998         DBUS_TYPE_G_BOOLEAN_ARRAY.
3999         (DBusGValueIterator, DBusGValue): Define, not fully used
4000         yet.
4001         (dbus_g_value_get_g_type): Type for recursive value.
4002         (dbus_g_value_open, dbus_g_value_iterator_get_value)
4003         (dbus_g_value_iterator_get_values, dbus_g_value_iterator_recurse)
4004         (dbus_g_value_free): Prototypes.
4005         (dbus_g_object_register_marshaller, dbus_g_proxy_new_from_proxy): Prototype.
4006         (dbus_g_proxy_set_interface): Prototype.
4007         (dbus_g_proxy_begin_call, dbus_g_proxy_end_call)
4008         (dbus_g_proxy_call_no_reply): Take GLib types instead of DBus
4009         types.
4010         (dbus_g_proxy_get_path, dbus_g_proxy_get_interface):
4011         Accessors.
4012         (DBusGAsyncData, DBusGMethodInvocation): Structures for
4013         doing async invocations.
4014         (dbus_g_method_return, dbus_g_method_return_error):
4015         Prototypes.
4016         * doc/dbus-tutorial.xml: Update GLib section.
4017         
4018         * tools/dbus-viewer.c (load_child_nodes): Update
4019         for new invocation type of dbus_g_proxy_end_call.
4020         (load_from_service_thread_func): Ditto.
4021
4022         * tools/print-introspect.c (main): Ditto.
4023
4024         * tools/dbus-names-model.c (have_names_notify)
4025         (names_model_reload, names_model_set_connection)
4026         Use GTypes.
4027
4028         * python/Makefile.am (INCLUDES): Define DBUS_COMPILATION,
4029         needed since Python bindings use GLib bindings.
4030
4031         * test/glib/Makefile.am (INCLUDES): Define DBUS_COMPILATION.
4032         Add --prefix argument.
4033
4034         * tools/Makefile.am: Define DBUS_COMPILATION.  Remove
4035         unneeded --ignore-unsupported arg.
4036         
4037         * test/glib/test-service-glib.c: 
4038         * test/glib/test-service-glib.xml:
4039         * test/glib/test-dbus-glib.c: Add many more tests.
4040
4041 2005-06-06  David Zeuthen  <davidz@redhat.com>
4042
4043         * doc/TODO: Add item about need to remove deprecated functions.
4044
4045         * dbus/dbus-connection.h: Add prototype for dbus_connection_disconnect
4046
4047         * dbus/dbus-connection.c (dbus_connection_disconnect): New function
4048         to repair the ABI which was broken with the last commit.
4049
4050 2005-06-02  John (J5) Palmieri <johnp@redhat.com>
4051
4052         *  dbus/dbus-connection.c, dbus/dbus-connection.h 
4053         (dbus_connection_disconnect): renamed to dbus_connection_close 
4054         for API symmetry with dbus_connection_open
4055         (_dbus_connection_open_internal): 
4056         s/dbus_connection_disconnect/dbus_connection_close
4057
4058         * dbus/dbus-bus.c (dbus_bus_get):
4059         s/dbus_connection_disconnect/dbus_connection_close
4060
4061         * bus/connection.c (bus_connections_unref, 
4062         bus_connections_setup_connection, bus_connections_expire_incomplete):
4063         s/dbus_connection_disconnect/dbus_connection_close
4064
4065         * bus/dispatch.c (bus_dispatch, kill_client_connection, 
4066         kill_client_connection_unchecked, check_hello_connection):
4067         s/dbus_connection_disconnect/dbus_connection_close
4068
4069         * bus/bus.c (new_connection_callback):
4070         s/dbus_connection_disconnect/dbus_connection_close
4071
4072         * tools/dbus-send.c (main):
4073         s/dbus_connection_disconnect/dbus_connection_close
4074
4075         * test/glib/test-profile.c (no_bus_thread_func, with_bus_thread_func):
4076         s/dbus_connection_disconnect/dbus_connection_close
4077         
4078         * test/test-service.c (path_message_func, filter_func):
4079         s/dbus_connection_disconnect/dbus_connection_close
4080         
4081         * doc/TODO: remove connection_open/connection_disconnect lacks symmetry         item that was just fixed
4082         
4083 2005-05-25  Colin Walters  <walters@verbum.org>
4084
4085         * dbus/dbus-protocol.h: Move various bus service #defines such
4086           as DBUS_SERVICE_DBUS and DBUS_NAME_FLAG_PROHIBIT_REPLACEMENT to
4087           dbus/dbus-shared.h.
4088         * dbus/dbus-shared.h: Various defines moved here.
4089         * dbus/dbus-marshal-header.c: Include dbus-shared.h.
4090
4091 2005-05-25  John (J5) Palmieri  <johnp@redhat.com>
4092
4093         * python/__init__.py: Python bindings deserve a minor version
4094         update.  Upped to (0, 40, 2)
4095
4096 2005-05-24  John (J5) Palmieri  <johnp@redhat.com>
4097
4098         * python/decorators.py: add explicitly_pass_message decorator
4099         for passing in the dbus message as keyword for edge case signal
4100         handling
4101
4102         * python/matchrules.py (SignalMatchRule.__repr__): fix output
4103         to conform with what dbus expects for match rules
4104         (SignalMatchRule.execute): add the dbus message as a keyword
4105         if the signal handler has requested it
4106
4107         * python/examples/example/signal-recipient.py: added some more
4108         examples on how to hook up to signals
4109
4110 2005-05-23  John (J5) Palmieri  <johnp@redhat.com>
4111
4112         * python/decorators.py: import dbus_bindings
4113
4114         * python/matchrules.py (SignalMatchRule, SignalMatchTree, 
4115         SignalMatchNode): new classes that implement wildcard signal
4116         callback matching using a tree lookup. Heavily modified from a
4117         patch sent by Celso Pinto (fd.o bug #3241)
4118
4119         * _dbus.py (add_signal_receiver, remove_signal_receiver, _signal_func):
4120         use new match classes to handle signals.
4121
4122 2005-05-19  John (J5) Palmieri  <johnp@redhat.com>
4123         
4124         * python/dbus_bindings.pyx.in: s/TYPE_PATH/TYPE_OBJECT_PATH
4125
4126 2005-05-18  Havoc Pennington  <hp@redhat.com>
4127
4128         * configure.in: use GLIB_GNU_GETTEXT to get INTLLIBS and require
4129         gettext. Not really worth requiring yet perhaps, but any
4130         production quality 1.0 would require it so we should go ahead and
4131         get things set up. We do have a couple token calls to
4132         bindtextdomain in the code already.
4133
4134 2005-05-16  John (J5) Palmieri  <johnp@redhat.com>
4135
4136         * glib/dbus-gmain.c (io_handler_dispatch): fix deadlock
4137         when using recursive g_main_loops
4138
4139         * python/_dbus.py (class Bus): add the ProxyObjectClass
4140         alias for ProxyObject to make it easier for the Twisted 
4141         networking framework to integrate dbus.
4142
4143         * python/proxies.py (class ProxyObject): add the ProxyMethodClass
4144         alias for ProxyMethod to make it easier for the Twisted 
4145         networking framework to integrate dbus. 
4146
4147 2005-05-11  Ross Burton  <ross@openedhand.com>
4148
4149         * glib/dbus-glib-tool.c: Add --prefix argument.
4150         * glib/dbus-binding-tool-glib.h: Add prefix argument.
4151         * glib/dbus-binding-tool-glib.c (compute_marshaller_name):
4152         Add prefix argument.
4153         (generate_glue): Pass prefix argument down.
4154         (dbus_binding_tool_output_glib_server): Pass prefix to
4155         glib-genmarshal.
4156         
4157 2005-05-11  Colin Walters  <walters@verbum.org>
4158
4159         * tools/dbus-send.c (append_array): New function.
4160         (append_arg): Broken out from main.
4161         (main): Add cheesy hack to send arrays and variants.
4162         (usage): Update.
4163         * tools/dbus-print-message.c (print_iter): Broken out
4164         from main.
4165
4166 2005-05-11  Colin Walters  <walters@verbum.org>
4167
4168         * dbus/dbus-signature.c (dbus_signature_iter_get_signature):
4169         New function, returns signature string for signature iter.
4170         * dbus/dbus-signature.h: Prototype it.
4171         * dbus/dbus-message.c (dbus_message_iter_get_signature):
4172         New function, returns signature string for message iter.
4173         (dbus_message_iter_get_array_len): New function, returns
4174         length of array.
4175         (dbus_message_iter_get_fixed_array): Fix assertion; this
4176         function should be used when the iter is pointing to the
4177         contents of an array
4178         * dbus/dbus-message.h: Prototypes.
4179         * dbus/dbus-marshal-recursive.c (_dbus_type_reader_get_array_length):
4180         New function; returns length of an array.
4181         * dbus/dbus-marshal-recursive.h: Prototype it.
4182         
4183 2005-05-11  Colin Walters  <walters@verbum.org>
4184
4185         * dbus/dbus-sysdeps-util.c <!HAVE_POSIX_GETPWNAM_R>: Fix
4186         compilation error.
4187         
4188 2005-05-08  Havoc Pennington  <hp@redhat.com>
4189
4190         * dbus/dbus-sysdeps-util.c (_dbus_become_daemon): write the
4191         daemon's pid, not the parent's pid, to the file descriptor.
4192         Reported by Taj Morton.
4193
4194 2005-05-05  Havoc Pennington  <hp@redhat.com>
4195
4196         * configure.in (LT_*): add notes on how the libtool versioning
4197         works to save thinking. Increment soname to indicate protocol
4198         breakage (though really the library interface hasn't changed I
4199         guess)
4200
4201         * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated):
4202         verify the GUID received from server matches what we were
4203         expecting, if we had an expectation
4204
4205         * dbus/dbus-auth.c (send_ok): send GUID along with the OK command
4206         (_dbus_auth_get_guid_from_server): new function
4207         (send_begin): parse the OK args
4208
4209         * doc/dbus-specification.xml: add GUID to the auth protocol
4210
4211 2005-05-05  John (J5) Palmieri  <johnp@redhat.com>
4212
4213         * Fix my name in previous changelog ;)
4214
4215         * python/proxies.py (ProxyObject.__getattr__): add further patch
4216         from Anthony Baxter to throw an AttributeError when python 
4217         __special__ functions are called instead of marshling them over 
4218         the bus (Bug#1685 comment 3).
4219
4220 2005-05-04  John (J5) Palmieri  <johnp@redhat.com>
4221
4222         * python/Makefile.am: changed to use pyexecdir for the binding
4223         shared libraries (Bug#2494)
4224
4225         * python/exceptions.py: bring exceptions over from the bindings
4226         so they can be used in applications (Bug#2036)
4227         Make all exceptions derive from DBusException
4228
4229         * python/_dbus.py, python/proxies.py: implement __repr__ in a couple
4230         of classes so that print obj doesn't throw an exception (Bug #1685)
4231
4232 2005-05-03  Ross Burton  <ross@openedhand.com>
4233
4234         * glib/dbus-gobject.c (dbus_g_connection_register_g_object):
4235         Return if we get an error during registration.  Set up a
4236         weak reference on object to unregister if object is destroyed.
4237         (unregister_gobject): New function.
4238         
4239 2005-05-01  John (J5) Palmieri  <johnp@redhat.com>
4240
4241         * python/dbus_bindings.pyx.in: 
4242         - added new type classes for hinting to the marashaler what type 
4243         to send over the wire
4244         - added int16 and uint16 marshalers
4245         - Fixed a bug in the type constants that caused int32 to go out
4246         as uint16 over the wire
4247         * python/dbus.py: split up into different files and renamed _dbus.py
4248         * python/__init__.py, python/_util.py, python/decorators.py, 
4249         python/exceptions.py, python/proxies.py, python/services.py,
4250         python/types.py: new files split off from dbus.py
4251         * python/Makefile.am: Add new files, remove dbus.py and 
4252         install all python files to <python module dir>/dbus
4253         * python/examples/*: Added #!/usr/bin/env python to the top of
4254         every example.  Patch provided by Tatavarty Kalyan
4255
4256 2005-04-25  John (J5) Palmieri  <johnp@redhat.com>
4257
4258         * NEWS: Update to 0.33
4259
4260 2005-04-25  John (J5) Palmieri  <johnp@redhat.com>
4261
4262         * python/dbus_bindings.pyx.in (send_with_reply_handlers): New send
4263         method for doing async calls
4264         (_pending_call_notification): New C function for handling pendning call
4265         callbacks
4266         (set_notify): New method for setting pending call notification
4267         
4268         * python/dbus.py: new version tuple "version" is set at (0, 40, 0)
4269         Async capabilities added to remote method calls
4270         (Sender): class removed
4271         (RemoteService): class removed
4272         (ObjectTree): class removed for now
4273         (RemoteObject): Renamed to ProxyObject
4274         (RemoteMethod): Renamed to ProxyMethod
4275         (method): Decorator added for decorating python methods as dbus methods
4276         (signal): Decorator added for decorating python methods as signal emitters
4277         (ObjectType): Metaclass added for generating introspection data and the
4278         method callback vtable
4279         (Interface): Wrapper class added to wrap objects in a dbus interface
4280         (Object): Uses ObjectType as its metaclass and exports Introspect
4281         of the org.freedesktop.DBus.Introspectable interface
4282         (ValidationException, UnknownMethodException): new exceptions
4283
4284         * python/examples/*: Modified to fit with the new bindings
4285
4286 2005-04-23  Havoc Pennington  <hp@redhat.com>
4287
4288         * dbus/dbus-message.c (dbus_message_append_args): fix doc comment,
4289         reported by Tony Houghton
4290
4291         * test/test-service.c (main): test
4292         dbus_connection_get_object_path_data()
4293
4294         * dbus/dbus-object-tree.c (find_handler): be sure we always init
4295         the exact_match
4296         (_dbus_object_tree_get_user_data_unlocked): new function used by
4297         dbus_connection_get_object_path_data()
4298         (do_register): add assertion test for get_user_data_unlocked
4299         (object_tree_test_iteration): more tests
4300
4301         * dbus/dbus-connection.c (dbus_connection_get_object_path_data):
4302         new function from Dan Reed to let you get the user data from 
4303         dbus_connection_register_object_path()
4304
4305 2005-04-23  John (J5) Palmieri  <johnp@redhat.com>
4306
4307         * dbus/dbus-marshal-recursive-util.c: Fixed buffer overflow
4308         in numerous places that did not account for the NULL terminator
4309         (signature_from_seed): changed the manual string copy loop to 
4310         just use strcpy instead
4311         make check should now pass
4312
4313 2005-04-19  John (J5) Palmieri  <johnp@redhat.com>
4314
4315         * dbus/dbus-marshal-header.c (_dbus_header_create): Fix assert
4316         so that it allows messages that are not signals to pass in 
4317         NULL as the interface.
4318
4319 2005-04-18  David Zeuthen  <davidz@redhat.com>
4320
4321         * glib/dbus-gmain.c (io_handler_destroy_source): 
4322         (timeout_handler_destroy_source, connection_setup_free): 
4323         Also unref the source to avoid memory leaks.
4324
4325 2005-04-13  David Zeuthen  <davidz@redhat.com>
4326
4327         * bus/config-parser.c (bus_config_parser_new): Bump this to a
4328         more reasonable, yet still totally arbitrary, value :-). 
4329
4330 2005-04-13  David Zeuthen  <davidz@redhat.com>
4331
4332         * doc/TODO: Added an "important for 1.0" item about selinux
4333         allow/deny messages
4334
4335 2005-04-13  David Zeuthen  <davidz@redhat.com>
4336
4337         * bus/selinux.c: Add c-file-style to top of file
4338         (log_audit_callback): Don't free the data here anymore
4339         (bus_selinux_check): Don't take spid and tpid since appending
4340         that to auxdata may OOM.
4341         (bus_selinux_allows_acquire_service): Handle OOM and signal back
4342         to the caller if we are OOM by taking an error object.
4343         (bus_selinux_allows_send): -do-
4344
4345         * bus/selinux.h: Fix prototypes for bus_selinux_allows_acquire_service
4346         and bus_selinux_allows_send
4347
4348         * bus/bus.c (bus_context_check_security_policy): Pass error and
4349         pass on OOM thrown by bus_selinux_allows_send()
4350
4351         * bus/services.c (bus_registry_acquire_service): Pass error and
4352         pass on OOM thrown by bus_selinux_allows_acquire_service()
4353
4354 2005-04-13  Havoc Pennington  <hp@redhat.com>
4355
4356         * glib/dbus-gmain.c (message_queue_dispatch): only dispatch one
4357         message at a time to avoid monopolizing the main loop, bug 
4358         #2953 from Benjamin Otte
4359
4360 2005-04-09  Havoc Pennington  <hp@redhat.com>
4361
4362         * dbus/dbus-string.c (copy): change a memcpy to memmove due to
4363         possible overlap, fix from Daniel Reed
4364         (fixup_alignment): fix signedness warnings
4365         (_dbus_string_append_unichar): ditto
4366
4367 2005-04-09  Havoc Pennington  <hp@redhat.com>
4368
4369         * dbus/dbus-message-util.c (_dbus_message_test): fix signedness warning
4370
4371         * glib/dbus-glib-tool.c (main): fix warning
4372
4373         * glib/dbus-binding-tool-glib.c (generate_glue): fix warning
4374
4375         * dbus/dbus-connection.c (dbus_connection_read_write_dispatch):
4376         add a new function that can be used in simple applications that
4377         don't have a main loop and are willing to block
4378
4379 2005-04-05  David Zeuthen  <davidz@redhat.com>
4380
4381         Fix https://bugs.freedesktop.org/show_bug.cgi?id=2889
4382
4383         * glib/dbus-gmain.c:
4384         (io_handler_destroy_source): Remove from list of IO handlers
4385         of the ConnectionSetup object
4386         (timeout_handler_destroy_source): -do- for timeout handlers
4387         (io_handler_source_finalized): Don't remove from list since
4388         we now do that in io_handler_destroy_source(). Renamed from
4389         io_handler_source_destroyed
4390         (timeout_handler_source_destroyed): -do- for timeout handlers
4391         (connection_setup_free): It is now safe to iterate over all
4392         IO and timeout handlers as the _destroy_source removes them
4393         from the list synchronously
4394
4395 2005-03-30  Havoc Pennington  <hp@redhat.com>
4396
4397         * configure.in: change check to gtk 2.4
4398
4399         * tools/dbus-viewer.c (name_combo_changed_callback): remove
4400         gtk_combo_box_get_active_text() usage to decrement GTK requirement
4401         to 2.4
4402
4403 2005-03-29  John (J5) Palmieri  <johnp@redhat.com>
4404
4405         * News: Update 0.32
4406
4407         * HACKING: Fixed realease instructions.  configure.in should be updated to
4408           the next release by the person who made the last release.
4409
4410 2005-03-29  John (J5) Palmieri  <johnp@redhat.com>
4411
4412         * python/lvalue_cast_post_process.py - removed.  Patch has been
4413           submitted to Pyrex maintainers that fixes gcc4.0 errors
4414
4415         * python/Makefile.am: removed refrences to lvalue_cast_post_process.py
4416
4417 2005-03-24  Daniel Reed  <n@ml.org>
4418
4419         * tools/Makefile.am: Make print-introspect and
4420         dbus-bus-introspect.xml building conditional on HAVE_GLIB.
4421
4422 2005-03-22  John (J5) Palmieri  <johnp@redhat.com>
4423
4424         * tools/Makefile.am: Patch by Colin Walters that fixes distcheck
4425
4426         * dbus/dbus-userdb.c, dbus/dbus-userdb-util.c: Add patch we have 
4427           had in Red Hat packages for a while but for some reason never 
4428           got merged upstream
4429           (_dbus_is_a_number): New checks if a string
4430           can be converted to a number and does the conversion if it can
4431           (_dbus_user_database_lookup): Add check to see if the given username
4432           is a udi.  This allows udi's to be used instead of usernames in the
4433           config file.
4434           (_dbus_user_database_lookup_group): Add check to see if the given groupname
4435           is a gdi.  This allows gdi's to be used instead of groupnames in the
4436           config file.
4437
4438 2005-03-21  John (J5) Palmieri  <johnp@redhat.com>
4439
4440         * python/lvalue_cast_post_process.py - added post processor to fix Pyrex
4441           code so that it compiles with gcc4.0
4442
4443         * python/Makefile.am: Added lvalue_cast_post_process.py to EXTRA_DIST
4444           run dbus_bindings.c through lvalue_cast_post_process.py and copy the
4445           results back to dbus_binding.c
4446
4447 2005-03-20  Colin Walters  <walters@verbum.org>
4448
4449         Patch suggested by Inguva Rajasekhar <ringuva@novell.com>.
4450
4451         * configure.in: Require GTK+ 2.6.
4452         
4453 2005-03-20  Colin Walters  <walters@verbum.org>
4454
4455         * Makefile.am (SUBDIRS, DIST_SUBDIRS): Build tools before test.
4456
4457 2005-03-17  Tom Parker  <palfrey@tevp.net>
4458
4459         * dbus/dbus-userdb.c (_dbus_user_database_lookup): Don't
4460         print DBUS_UID_UNSET; instead print passed username.  Also
4461         be sure to actually use gid looked up in cache.
4462         
4463         * dbus/dbus-userdb-util.c (_dbus_user_database_lookup_group): Ditto
4464         for DBUS_GID_UNSET and groupname.
4465
4466 2005-03-17  Colin Walters  <walters@verbum.org>
4467
4468         * bus/print-introspect.c: Move to tools/.
4469         * bus/run-with-tmp-session-bus.sh: Ditto.
4470         
4471         * glib/Makefile.am (dbus-glib-bindings.h): Move
4472         generation to tools/Makefile.am.
4473
4474         * test/glib/run-test.sh: Update to handle move
4475         of run-with-tmp-session-bus.sh.
4476
4477         * test/glib/test-service-glib.c: Update to handle
4478         move of dbus-glib-bindings.h.
4479
4480         * tools/print-introspect.c: Moved here
4481         from bus/, and ported to GLib bindings.
4482
4483         * tools/run-with-tmp-session-bus.sh: Moved here
4484         from bus/.
4485
4486         * tools/Makefile.am: Generate dbus-glib-bindings.h
4487         and dbus-bus-introspect.xml here.
4488
4489         * tools/.cvsignore, glib/.cvsignore, bus/.cvsignore:
4490         Update.
4491
4492 2005-03-17  Colin Walters  <walters@verbum.org>
4493
4494         * bus/driver.c (write_args_for_direction): Use
4495         _dbus_string_get_const_data to retrieve string;
4496         _dbus_string_get_const_data_len doesn't actually return
4497         a NULL-terminated substring.
4498
4499         * test/glib/test-service-glib.c: Include dbus-glib-bindings.h.
4500         (main): Change to use org_freedesktop_DBus_request_name
4501         instead of using g_proxy_begin_call/end_call.
4502
4503 2005-03-15  Joe Shaw  <joeshaw@novell.com>
4504
4505         * mono/ProxyBuilder.cs (BuildFinalizer): Fix some invalid IL when
4506         generating the finalizer.  Fixes from Ben Maurer.
4507
4508 2005-03-12  Joe Shaw  <joeshaw@novell.com>
4509
4510         * mono/BusDriver.cs: Update method names: ListServices
4511         becomes ListNames; GetOwner becomes GetNameOwner.
4512
4513         * mono/ProxyBuilder.cs (BuildFinalizer): Need to load arg 0
4514         onto the eval stack when removing the delegate.
4515
4516 2005-03-12  Joe Shaw  <joeshaw@novell.com>
4517
4518         * mono/dbus-sharp.dll.config.in: Don't hardcode 0 for
4519         LT_CURRENT.  Set it to the autoconf variable.
4520                                                                                 
4521         * mono/ProxyBuilder.cs: Add a finalizer to the generated proxy
4522         classes that disconnects the signal handler delegate from the
4523         service object.  Fixes a big leak of proxy objects on the
4524         client side of things.  Patch from Ben Maurer
4525         <bmaurer@ximian.com>
4526
4527 2005-03-12  Colin Walters  <walters@verbum.org>
4528
4529         * bus/driver.c (write_args_for_direction): New function,
4530         parses a type signature into arguments and outputs to
4531         XML.
4532         (bus_driver_handle_introspect): Use it instead of
4533         hardcoding XML for certain signatures.
4534         
4535         * bus/Makefile.am (dbus-bus-introspect.xml): Add
4536         dependency on dbus-daemon.
4537
4538         * glib/dbus-glib-tool.c (main): Parse ignore_unsupported
4539         argument, pass it to dbus_binding_tool_output_glib_client.
4540
4541         * glib/dbus-binding-tool-glib.c
4542         (generate_client_glue): Protect against multiple inclusion.
4543         (dbus_binding_tool_output_glib_client): Add
4544         G_BEGIN_DECLS/G_END_DECLS.
4545
4546         * glib/dbus-binding-tool-glib.c (compute_client_method_name):
4547         Change to just take iface prefix directly.
4548         (write_formal_parameters): Clarify error message.
4549         (check_supported_parameters): New function; checks to see type
4550         signatures of method parameters are supported.
4551         (generate_client_glue): Handle ignore_unsupported flag.
4552         (dbus_binding_tool_output_glib_client): Handle ignore_unsupported
4553         parameter.
4554
4555         * glib/Makefile.am (dbus-glib-bindings.h): Pass
4556         --ignore-unsupported by default until glib bindings
4557         support arrays.
4558
4559 2005-03-11  Colin Walters  <walters@verbum.org>
4560
4561         * glib/Makefile.am: Generate dbus-glib-bindings.h and
4562         install it.
4563
4564         * bus/print-introspect.c: New file; prints introspection
4565         data for a given name and object path.
4566
4567         * bus/run-with-tmp-session-bus.sh: New file, refactored
4568         from test/glib/run-test.sh.  Creates a temporary session
4569         bus and runs another program.
4570
4571         * test/glib/run-test.sh: Refactor to invoke
4572         run-with-tmp-session-bus.sh.
4573
4574         * bus/driver.c (bus_driver_handle_introspect): Fix to print new
4575         introspection format.  Also change to use DBUS_TYPE_x_AS_STRING
4576         macros instead of hardcoding.
4577
4578         * glib/.cvsignore, bus/.cvsignore, test/glib/.cvsignore: Update.
4579
4580 2005-03-11  Joe Shaw  <joeshaw@novell.com>
4581
4582         * dbus/dbus-connection.c (dbus_connection_send_with_reply): Remove
4583         this unref; it doesn't match up evenly in some codepaths.
4584         (_dbus_connection_block_pending_call): Unref at every exitpoint;
4585         this evenly matches with the ref near the top of this function.
4586
4587 2005-03-09  Joe Shaw  <joeshaw@novell.com>
4588
4589         * dbus/dbus-object-tree.c
4590         (_dbus_object_tree_unregister_and_unlock): If checks are enabled
4591         and we try to unregister a path that's not registered, still go
4592         through the process of unlocking and don't just return.
4593
4594 2005-03-09  Colin Walters  <walters@verbum.org>
4595
4596         * glib/dbus-gproxy.c (dbus_g_proxy_invoke): New method; calls
4597         to this are generated for client-side wrappers.  Invokes a
4598         D-BUS method and returns reply values.  
4599
4600         * glib/dbus-binding-tool-glib.c (write_args_sig_for_direction): New
4601         function; writes signature string for argument direction.
4602         (write_args_for_direction): Change to pass input values directly
4603         instead of via address, and fix indentation.
4604         (generate_client_glue): Change to invoke dbus_g_proxy_invoke.  Also
4605         make generated wrappers inlineable.
4606
4607         * dbus/dbus-message.c (dbus_message_iter_get_fixed_array): Add
4608         note about using dbus_type_is_fixed.
4609
4610         * dbus/dbus-marshal-basic.c (_dbus_type_is_fixed): Moved to
4611         dbus/dbus-signature.c as dbus_type_is_fixed.
4612
4613         All callers updated.
4614
4615         * dbus/dbus-signature.c (dbus_type_is_fixed): Moved here
4616         from dbus/dbus-marshal-basic.c:_dbus_type_is_fixed.
4617
4618         * dbus/dbus-signature.h: Prototype.
4619
4620         * glib/dbus-binding-tool-glib.c (compute_marshaller_name): Fix
4621         error printf code.
4622
4623         * test/glib/test-dbus-glib.c (main): Be sure to clear error as
4624         appropriate instead of just freeing it.
4625         (main): Free returned strings using g_free.
4626
4627         * test/glib/Makefile.am (test-service-glib-glue.h)
4628         (test-service-glib-bindings.h): Add dependency on dbus-binding-tool.
4629
4630         * glib/dbus-gvalue.c (MAP_BASIC): Refactored from MAP_BASIC_INIT;
4631         simply maps a simple D-BUS type to GType.
4632         (dbus_dbus_type_to_gtype): Function which maps D-BUS type to
4633         GType.
4634         (dbus_gvalue_init): Just invoke dbus_dbus_type_to_gtype and
4635         initialize the value with it.
4636         (dbus_gvalue_binding_type_from_type): Unused, delete.
4637         (dbus_gvalue_demarshal): Switch to hardcoding demarshalling for
4638         various types instead of unmarshalling to value data directly.
4639         Remove can_convert boolean.
4640         (dbus_gvalue_marshal): Remove duplicate initialization; switch to
4641         returning directly instead of using can_convert boolean.
4642         (dbus_gvalue_store): New function; not related to D-BUS per-se.
4643         Stores a GValue in a pointer to a value of its corresponding C
4644         type.
4645
4646         * glib/dbus-gvalue.h: Remove dbus_gvalue_binding_type_from_type,
4647         add dbus_gvalue_store.
4648
4649 2005-03-08  Joe Shaw  <joeshaw@novell.com>
4650
4651         Fix a bunch of lifecycle and memory management problems
4652         in the mono bindings.
4653
4654         * mono/Arguments.cs (Arguments): Implement IDisposable
4655
4656         * mono/Bus.cs (Bus): Don't allow public instantiation.  This is
4657         strictly a static class.
4658
4659         * mono/Connection.cs: Move the DBusObjectPathVTable and associated
4660         delegates into this file.
4661         (Connection): Implement IDisposable.
4662         (Dispose): Disconnect the connection and set the raw connection
4663         pointer to IntPtr.Zero.
4664         (~Connection): Call Dispose().
4665         (RegisterObjectPath): Added.  Manages the registration of object
4666         paths so we can cleanly disconnect them at dispose/finalize time.
4667         (UnregisterObjectPath): Ditto.
4668         (set_RawConnection): Unregister all of the object paths when
4669         changing the underlying DBusConnection.  Add them back onto the
4670         new connection, if any.
4671
4672         * mono/Handler.cs: Don't implement IDisposable; it doesn't use any
4673         more unmanaged resources anymore, so it's not necessary.  Move all
4674         the DBusObjectPathVTable stuff out of here.
4675         (Handler): Save references to our delegates so that they don't get
4676         finalized.  Call Connection.RegisterObjectPath() instead of
4677         dbus_connection_register_object_path() directly.
4678         (Message_Called): Dispose the message after we're finished with
4679         it.
4680
4681         * mono/Message.cs (Message): Implement IDisposable.
4682         (Dispose): Dispose the Arguments, and set the RawMessage to
4683         IntPtr.Zero.
4684         (SendWithReplyAndBlock): We own the ref to the reply that comes
4685         back from dbus_connection_send_with_reply_and_block() so add a
4686         comment about that and unref it after we've constructed a managed
4687         MethodReturn class around it.  Fixes a big, big leak.
4688
4689         * mono/ProxyBuilder.cs: Reflect into Message to get the Dispose
4690         method.
4691         (BuildSignalHandler): After we've sent the Signal message, dispose
4692         of it.
4693         (BuildMethod): Dispose of the method call and reply messages after
4694         we've sent the message and extracted the data we want from the
4695         reply.
4696
4697         * mono/Service.cs (UnregisterObject): Don't call handler.Dispose()
4698         anymore.
4699         (Service_FilterCalled): Dispose of the message after we're
4700         finished with it.
4701
4702 2005-03-08  Joe Shaw  <joeshaw@novell.com>
4703
4704         * dbus/dbus-connection.c (dbus_connection_send_with_reply):
4705         After we attach our pending call to the connection, unref
4706         it.  Fixes a leak.
4707  
4708         * mono/Connection.cs (set_RawConnection): Disconnect our
4709         filter and match callbacks from the old connection and
4710         reconnect them to the new connection, if any.
4711
4712         * mono/DBusType/Array.cs: "Code" is a static member, so
4713         don't use "this" to refer to it.  Fix for stricter checking
4714         in Mono 1.1.4.
4715  
4716         * mono/DBusType/ObjectPath.cs (Append): Don't leak the
4717         object path that we pass into unmanaged code.
4718  
4719         * mono/DBusType/String.cs (Append): Don't leak the string
4720         that we pass into unmanged code.
4721
4722 2005-03-07  John (J5) Palmieri  <johnp@redhat.com>
4723         * NEWS: Update for 0.31
4724
4725         * configure.in: Release 0.31
4726         add LT_CURRENT, LT_REVISION, LT_AGE for easy soname bumping
4727
4728         * qt/Makefile.am: fixed build
4729
4730         * dbus/Makefile.am: soname bump for libdbus
4731
4732         * glib/Makefile.am: soname bump for libdbus-glib
4733
4734 2005-03-05  Havoc Pennington  <hp@redhat.com>
4735
4736         * dbus/dbus-sysdeps.c:
4737         (pseudorandom_generate_random_bytes_buffer): fix to have no return
4738         value
4739         (_dbus_generate_random_bytes_buffer): fix return value
4740
4741         * dbus/dbus-sysdeps-util.c: s/GETPWNAME/GETPWNAM/ so configure
4742         checks actually work, from Tom Parker <fdo@tevp.net>
4743
4744 2005-03-01  Colin Walters  <walters@verbum.org>
4745
4746         * test/glib/test-dbus-glib.c (lose, lose_gerror): Utility
4747         functions copied from dbus-glib-tool.c.
4748         (main): Convert lots of error code to use them.
4749         Also add some testing for introspection bits.
4750
4751 2005-03-01  Colin Walters  <walters@verbum.org>
4752         
4753         * doc/TODO: Remove introspection signature TODO.
4754
4755 2005-02-27  Colin Walters  <walters@verbum.org>
4756
4757         * glib/dbus-gidl.c (property_info_get_type, arg_info_get_type):
4758         Change return value to const char * instead of int so we can do
4759         full signatures.
4760         (struct PropertyInfo, struct ArgInfo): Store char *.
4761         (property_info_new, arg_info_new): Update parameters, strdup.
4762         (property_info_unref, arg_info_unref): Free.
4763
4764         * glib/dbus-gidl.h: Update prototypes.
4765
4766         * glib/dbus-gparser.c (basic_type_from_string): Delete.
4767         (validate_signature): New function, just validates signature and
4768         sets GError.
4769         (parse_property, parse_arg): Invoke validate_signature.  Store
4770         signature instead of just type code.
4771
4772         * glib/dbus-gvalue.c (base_type_from_signature): New utility
4773         function to return a primary type for a signature, dropping
4774         information about types in container types.
4775         (dbus_gvalue_genmarshal_name_from_type)
4776         (dbus_gvalue_binding_type_from_type)
4777         (dbus_gvalue_ctype_from_type): Update to take full signature
4778          instead of type code.
4779         (dbus_gtype_to_dbus_type): Moved here from glib/dbus-gobject.c.
4780
4781         * glib/dbus-gvalue.h: Update prototypes for above.
4782
4783         * glib/dbus-gobject.c (gtype_to_dbus_type): Moved to
4784         glib/dbus-gvalue.c as dbus_gtype_to_dbus_type.
4785         (introspect_properties, introspect_signals, write_interface):
4786         Update to handle signatures, and remove usage of
4787         _dbus_gutils_type_to_string.
4788         (handle_introspect): Print out type codes instead of e.g. "string"
4789         in hardcoded introspection XML; also use x_AS_STRING constants
4790         instead of hardcoding in string.
4791
4792         * glib/dbus-glib-tool.c (pretty_print): Handle signature change
4793         to string.  Remove usage of _dbus_gutils_type_to_string.
4794
4795         * glib/dbus-gutils.c (_dbus_gutils_type_to_string): Delete.
4796
4797         * glib/dbus-gutils.h (_dbus_gutils_type_to_string): Update for
4798         deletion.
4799         
4800         * glib/dbus-binding-tool-glib.c (compute_marshaller)
4801         (compute_marshaller_name, generate_glue): Handle signature change
4802         to string.
4803         (write_formal_parameters, write_args_for_direction): Ditto, and
4804         remove FIXME.
4805
4806         * tools/dbus-tree-view.c (type_to_string): Delete.
4807         (info_set_func_text): Update to print full signatures.
4808
4809         * test/glib/test-service-glib.xml: Change types to new
4810         introspection format.
4811
4812 2005-02-26  Havoc Pennington  <hp@redhat.com>
4813
4814         * doc/TODO: remove the "guid" item
4815
4816         * test/glib/test-profile.c (no_bus_thread_func): use open_private
4817         (with_bus_thread_func): use open_private
4818
4819         * dbus/dbus-connection.c (dbus_connection_open_private): new
4820         function that works like the old dbus_connection_open()
4821         (dbus_connection_open): now returns an existing connection if
4822         possible
4823
4824         * dbus/dbus-server-unix.c (handle_new_client_fd_and_unlock): pass
4825         through the GUID to the transport
4826
4827         * dbus/dbus-server.c (_dbus_server_init_base): keep around the
4828         GUID in hex-encoded form.
4829
4830         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
4831         pass GUID argument in to the transport
4832
4833         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd): add
4834         guid argument
4835
4836         * dbus/dbus-transport.c (_dbus_transport_init_base): add guid argument
4837
4838         * dbus/dbus-auth.c (_dbus_auth_server_new): add guid argument
4839
4840 2005-02-25  Havoc Pennington  <hp@redhat.com>
4841
4842         * doc/dbus-specification.xml: document the GUID thing
4843
4844         * dbus/dbus-server.c (_dbus_server_init_base): initialize a
4845         globally unique ID for the server, and put a "guid=hexencoded"
4846         field in the address
4847
4848         * dbus/dbus-bus.c: fix missing #include of dbus-threads-internal.h
4849
4850         * dbus/dbus-message.c: ditto
4851
4852         * dbus/dbus-dataslot.c: ditto
4853
4854         * dbus/dbus-list.c: ditto
4855
4856         * dbus/dbus-internals.h: wait, just include
4857         dbus-threads-internal.h here
4858         
4859         * dbus/dbus-string.c (_dbus_string_copy_to_buffer): move back for
4860         use in main library
4861
4862         * dbus/dbus-sysdeps.c (_dbus_generate_random_bytes_buffer): new function
4863
4864 2005-02-24  Colin Walters  <walters@verbum.org>
4865
4866         * test/glib/Makefile.am (EXTRA_DIST): Add test-service-glib.xml
4867
4868 2005-02-24  John (J5) Palmieir  <johnp@redhat.com>
4869
4870         * glib/Makefile.am: added dbus-gobject.h to sources list
4871         so distcheck doesn't fail
4872         
4873 2005-02-24  Havoc Pennington  <hp@redhat.com>
4874
4875         * dbus/dbus-server.c, dbus/dbus-server-unix.c: change semantics so
4876         you must disconnect before unref, since locking and other things
4877         are screwed up otherwise. Fix assorted other locking stuff.
4878
4879         * dbus/dbus-signature.c (dbus_signature_iter_get_element_type):
4880         fix compilation
4881
4882         * dbus/dbus-threads-internal.h: move the mutex/condvar wrappers
4883         into a private header and don't export from the library
4884
4885         * throughout - call _dbus_thread_stuff vs. dbus_thread_stuff
4886
4887 2005-02-24  Colin Walters  <walters@verbum.org>
4888         
4889         * dbus/dbus-signature.c: New file; implements various functions
4890         related to type signatures.  Includes an interator for parsing,
4891         validation functions.
4892         (dbus_type_is_basic): Moved here from
4893         dbus-marshal-basic.c:_dbus_type_is_basic.
4894         (dbus_type_is_container): Moved here from
4895         dbus-marshal-basic.c:_dbus_type_is_container.
4896
4897         All callers of _dbus_type_is_container and _dbus_type_is_basic
4898         updated, and include dbus-signature.h.
4899
4900         * dbus/dbus-signature.h: New file; prototypes for the above.
4901
4902         * dbus/Makefile.am (DBUS_LIB_SOURCES): Add dbus-signature.c,
4903         dbus-signature.h.
4904
4905         * dbus/dbus-marshal-basic.c (map_type_char_to_type): New utility
4906         function factored out of _dbus_first_type_in_signature.
4907         (_dbus_first_type_in_signature_c_str): New function; returns first
4908         type code for a type signature character.
4909
4910         * dbus/dbus-marshal-basic.h: Prototype _dbus_first_type_in_signature_c_str,
4911         handle function moves.
4912
4913         * dbus/dbus-marshal-recursive.h: Export _dbus_type_signature_next.
4914
4915         * dbus/dbus-marshal-recursive.c (_dbus_type_signature_next): New
4916         function; skips to next complete type in type signature.
4917         Implemented using previous skip_one_complete_type.  Now
4918         skip_one_complete_type just delegates to
4919         _dbus_type_signature_next.
4920
4921         * dbus/dbus-marshal-basic.c (_dbus_type_is_basic): Moved
4922         to dbus-signature.c
4923         (_dbus_type_is_container): Ditto.
4924
4925         * doc/dbus-specification.xml: Update introspection sample to
4926         use real type signatures.
4927
4928         * dbus/dbus-test.h: Prototype signature test.
4929
4930         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): Run
4931         signature tests.
4932
4933         * dbus/dbus-protocol.h (DBUS_ERROR_INVALID_SIGNATURE): New error.
4934
4935 2005-02-23  John (J5) Palmieri  <johnp@redhat.com>
4936
4937         * python/dbus_bindings.pyx.in (PendingCall::get_reply):
4938         s/dbus_pending_call_get_reply/dbus_pending_call_steal_reply
4939
4940 2005-02-21  Colin Walters  <walters@verbum.org>
4941
4942         * dbus/dbus-test-main.c (main): Take optional specific test
4943         argument.
4944
4945         * dbus/dbus-test.c (run_test): New function, runs a test function
4946         with no data directory.
4947         (run_data_test): Like above, but takes data directory.
4948         (dbus_internal_do_not_use_run_tests): Take
4949         specific test argument.  Replace lots of cut n' paste code
4950         with run_test and run_data_test.
4951
4952         * dbus/dbus-test.h: Update prototype for
4953         dbus_internal_do_not_use_run_tests.
4954
4955 2005-02-20  Havoc Pennington  <hp@redhat.com>
4956
4957         Fix bugs reported by Daniel P. Berrange
4958         
4959         * dbus/dbus-server.c (_dbus_server_unref_unlocked): new function
4960         (protected_change_watch): new function
4961         (_dbus_server_toggle_watch, _dbus_server_remove_watch)
4962         (_dbus_server_add_watch): change to work like the
4963         dbus-connection.c equivalents; like those, probably kind of
4964         busted, but should at least mostly work for now
4965         (dbus_server_disconnect): drop the lock if we were already
4966         disconnected, patch from Daniel P. Berrange
4967
4968         * dbus/dbus-server.c (_dbus_server_toggle_timeout) 
4969         (_dbus_server_remove_timeout, _dbus_server_add_timeout): all the
4970         same stuff
4971
4972         * doc/TODO: todo about unscrewing this mess
4973
4974 2005-02-19  Colin Walters  <walters@verbum.org>
4975
4976         * glib/dbus-binding-tool-glib.c
4977         (dbus_binding_tool_output_glib_server): Fix iochannel refcounting.
4978
4979         * glib/dbus-glib-tool.c: Include dbus-glib-tool.h, as well
4980         as errno.h and sys/stat.h.
4981         (lose): New function, prints error with
4982         newline and exits.
4983         (lose_gerror): Similar, but takes GError for message.
4984         (main): Add --output argument to specify output file to write to,
4985         instead of always printing to stdout.  In this mode, determine
4986         timestamps on source files to see whether any are newer than the
4987         target file.  If not, exit.  Also convert a number of error
4988         messages to use lose (since it's shorter), and switch to using
4989         g_io_channel_shutdown.
4990
4991 2005-02-19  Havoc Pennington  <hp@redhat.com>
4992
4993         * glib/dbus-gobject.c
4994         (_dbus_glib_marshal_dbus_message_to_gvalue_array): add docs
4995
4996         * glib/dbus-glib.c: fix doxygen warnings
4997
4998         * glib/dbus-gparser.c (parse_annotation): error if an annotation
4999         is found on an <arg>
5000
5001 2005-02-17  Colin Walters  <walters@verbum.org>
5002
5003         * glib/dbus-gobject.h: Don't export
5004         _dbus_glib_marshal_dbus_message_to_gvalue_array.
5005         
5006         * glib/dbus-gobject.c (_dbus_glib_marshal_dbus_message_to_gvalue_array): Do rename.
5007         (invoke_object_method): Handle it.
5008
5009         * glib/dbus-gproxy.c (marshal_dbus_message_to_g_marshaller):
5010         Handle rename.
5011         
5012 2005-02-17  Colin Walters  <walters@verbum.org>
5013
5014         * bus/.cvsignore, doc/.cvsignore
5015         * test/data/valid-service-files/.cvsignore, test/glib/.cvsignore:
5016         Update.
5017
5018 2005-02-17  Colin Walters  <walters@verbum.org>
5019         
5020         * dbus/dbus-protocol.h (DBUS_SERVICE_ORG_FREEDESKTOP_DBUS):
5021         Rename to DBUS_SERVICE_DBUS.
5022         (DBUS_PATH_ORG_FREEDESKTOP_DBUS): Rename to DBUS_PATH_DBUS.
5023         (DBUS_PATH_ORG_FREEDESKTOP_LOCAL): Rename to DBUS_PATH_LOCAL.
5024         Change the value from "org.freedesktop.Local"
5025         to "org.freedesktop.DBus.Local".
5026         (DBUS_INTERFACE_ORG_FREEDESKTOP_DBUS): Rename to DBUS_INTERFACE_DBUS.
5027         (DBUS_INTERFACE_ORG_FREEDESKTOP_INTROSPECTABLE): Rename to
5028         DBUS_INTERFACE_INTROSPECTABLE.
5029         Change the value from "org.freedesktop.Introspectable"
5030         to "org.freedesktop.DBus.Introspectable".
5031         (DBUS_INTERFACE_ORG_FREEDESKTOP_PROPERTIES): Rename to
5032         DBUS_INTERFACE_PROPERTIES.
5033         Change the value from "org.freedesktop.Properties"
5034         to "org.freedesktop.DBus.Properties".
5035         (DBUS_INTERFACE_ORG_FREEDESKTOP_PEER): Rename to
5036         DBUS_INTERFACE_PEER.
5037         Change the value from "org.freedesktop.Peer"
5038         to "org.freedesktop.DBus.Peer".
5039         (DBUS_INTERFACE_ORG_FREEDESKTOP_LOCAL): 
5040         DBUS_INTERFACE_LOCAL.
5041         Change the value from "org.freedesktop.Local"
5042         to "org.freedesktop.DBus.Local".
5043
5044         All other users of those constants have been changed.
5045
5046         * bus/driver.c (bus_driver_handle_introspect): Use constants.
5047
5048         * glib/dbus-gobject.c (handle_introspect): Use constants.
5049
5050         * doc/dbus-faq.xml, doc/dbus-specification.xml: Update for rename.
5051
5052 2005-02-17  Colin Walters  <walters@verbum.org>
5053
5054         * glib/dbus-gparser.c (struct Parser): Add in_annotation boolean.
5055         (parse_node, parse_interface, parse_method, parse_signal)
5056         (parse_property, parse_annotation): Lose if we're currently in an
5057         annotation.
5058         (parse_annotation): New function.
5059         (parser_start_element, parser_end_element): Handle annotation.
5060         (parse_method, parse_interface): Remove support for c_name attribute,
5061         switch to annotations.
5062
5063         * glib/dbus-gidl.h (interface_info_get_binding_names)
5064         (method_info_get_binding_names)
5065         (interface_info_get_binding_name, method_info_get_binding_name)
5066         (interface_info_set_binding_name, method_info_set_binding_name):
5067         Remove.
5068         (interface_info_get_annotations, method_info_get_annotations)
5069         (interface_info_get_annotation, method_info_get_annotation)
5070         (interface_info_add_annotation, method_info_add_annotation):
5071         Prototype.
5072
5073         * glib/dbus-gidl.c (struct InterfaceInfo): Substitute "annotations"
5074         for "bindings".
5075         (struct MethodInfo): Ditto.
5076         Straightfoward conversion of binding methods into annotation methods
5077         as prototyped.
5078
5079         * glib/dbus-glib-tool.c (pretty_print): Print annotations.
5080
5081         * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_C_SYMBOL): Define.
5082
5083         * glib/dbus-binding-tool-glib.c (gather_marshallers, generate_glue):
5084         Use new annotation API.
5085
5086         * doc/introspect.dtd: Fix a number of DTD syntax errors.  Add
5087         annotation element.
5088         
5089         * doc/dbus-specification.xml: Discuss introspection annotations,
5090         include list of well-known annotations.
5091
5092         * test/glib/test-service-glib.xml: Make validate against new DTD.
5093
5094 2005-02-17  Colin Walters  <walters@verbum.org>
5095
5096         This patch is based on initial work from
5097         Paul Kuliniewicz <kuliniew@purdue.edu>.
5098
5099         * glib/dbus-gvalue.c (dbus_gvalue_init): New function; move
5100         initialization of GValue from dbus type to here.
5101         (dbus_gvalue_genmarshal_name_from_type): New function; generates a string
5102         for the "glib-genmarshal" program from a DBus type.
5103         (dbus_gvalue_binding_type_from_type): New function; turns a DBus type
5104         into the C name for it we use in the glib bindings.
5105         (dbus_gvalue_ctype_from_type): New function; maps a DBus type into a
5106         glib C type (not GValue).
5107         (dbus_gvalue_demarshal): invoke dbus_gvalue_init.
5108
5109         * glib/dbus-gutils.c (_dbus_gutils_wincaps_to_uscore): Moved here
5110         from dbus-gobject.c.
5111
5112         * glib/dbus-gutils.h: Prototype it.
5113
5114         * glib/dbus-gproxy.c: Include new dbus-gobject.h.
5115         (marshal_dbus_message_to_g_marshaller): Use new shared function
5116         dbus_glib_marshal_dbus_message_to_gvalue_array.
5117
5118         * glib/dbus-gparser.c (parse_interface, parse_method): Handle c_name attribute.
5119         Will be changed once we have annotations.
5120
5121         * glib/dbus-gobject.c: Change info_hash_mutex from GStaticMutex to
5122         GStaticRWLock.  Callers updated.
5123         (wincaps_to_uscore): Move to dbus-gutils.c.  Callers updated.
5124         (string_table_next): New function for iterating over zero-terminated
5125         string value array.
5126         (string_table_lookup): New function; retrieves specific entry in
5127         array.
5128         (get_method_data): New function; look up method data in object data chunk.
5129         (object_error_domain_prefix_from_object_info)
5130         (object_error_code_from_object_info): New functions, but not implemented yet.
5131         (method_interface_from_object_info): New function; retrieve interface name.
5132         (method_name_from_object_info): New function; retrieve method name.
5133         (method_arg_info_from_object_info): New function; retrieve argument data.
5134         (arg_iterate): New function; iterates over serialized argument data.
5135         (method_dir_signature_from_object_info): New function; returns a
5136         GString holding type signature for arguments for just one
5137         direction (input or output).
5138         (method_input_signature_from_object_info)
5139         (method_output_signature_from_object_info): New functions.
5140         (dbus_glib_marshal_dbus_message_to_gvalue_array): New shared function;
5141         converts dbus message arguments into a GValue array.  Used for both
5142         signal handling and method invocation.
5143         (struct DBusGlibWriteIterfaceData): New utility structure.
5144         (write_interface): New function; generate introspection XML for
5145         an interface.
5146         (introspect_interfaces): New function; gathers all interface->methods,
5147         generates introspection XML for them.
5148         (handle_introspect): Invoke introspect_interfaces.
5149         (get_object_property): Be sure to zero-initalize stack-allocated GValue.
5150         (lookup_object_and_method): New function; examines an incoming message
5151         and attempts to match it up (via interface, method name, and argument
5152         signature) with a known object and method.
5153         (gerror_domaincode_to_dbus_error_name): New function; converts a
5154         GError domain and code into a DBus error name.  Needs GError data
5155         added to object introspection to work well.
5156         (gerror_to_dbus_error_message): Creates a DBusMessage error return from
5157         GError.
5158         (invoke_object_method): New function to invoke an object method
5159         looked up via lookup_object_and_method.  Parses the incoming
5160         message, turns it into a GValue array, then invokes the marshaller
5161         specified in the DBusGMethodInfo.  Creates a new message with
5162         either return values or error message as appropriate.
5163         (gobject_message_function): Invoke lookup_object_and_method and
5164         invoke_object_method.
5165
5166         * glib/dbus-glib-tool.c: Include dbus-binding-tool-glib.h.
5167         (enum DBusBindingOutputMode): New enum for binding output modes.
5168         (pretty_print): Print binding names.
5169         (dbus_binding_tool_error_quark): GError bits.
5170         (version): Fix typo.
5171         (main): Create GIOChannel for output.  Parse new --mode argument,
5172         possible values are "pretty-print", "glib-server", "glib-client".
5173         Use mode to invoke appropriate function.
5174         
5175         * glib/dbus-gobject.h: Prototype dbus_glib_marshal_dbus_message_to_gvalue_array.
5176
5177         * glib/dbus-glib-tool.h: New header, just includes GError bits
5178         for now.
5179
5180         * glib/dbus-gidl.c (struct InterfaceInfo): Add bindings hashtable;
5181         maps binding style to name.
5182         (struct MethodInfo): Ditto.
5183         (get_hash_keys, get_hash_key): Utility function, returns keys for
5184         a GHashTable.
5185         (interface_info_new, method_info_new): Initialize bindings.
5186         (interface_info_unref, method_info_unref): Destroy bindings.
5187         (method_info_get_binding_names, method_info_get_binding_name)
5188         (interface_info_get_binding_names, interface_info_get_binding_name):
5189         Functions for retrieving binding names.
5190         (method_info_set_binding_name, interface_info_set_binding_name):
5191         Functions for setting binding names.
5192
5193         * glib/dbus-binding-tool-glib.h: New file, has prototypes
5194         for glib binding generation.
5195
5196         * glib/dbus-binding-tool-glib.c: New file, implements server-side
5197         and client-side glib glue generation.
5198
5199         * glib/Makefile.am (dbus_binding_tool_SOURCES): Add
5200         dbus-binding-tool-glib.c, dbus-binding-tool-glib.h,
5201         dbus-glib-tool.h.
5202
5203         * dbus/dbus-glib.h (struct DBusGMethodMarshaller): Remove in favor
5204         of using GClosureMarshal directly.
5205         (struct DBusGObjectInfo): Add n_infos member.
5206
5207         * test/glib/test-service-glib.xml: New file; contains introspection data
5208         for MyTestObject used in test-service-glib.c.
5209
5210         * test/glib/test-service-glib.c (enum MyObjectError): New GError enum.
5211         (my_object_do_nothing, my_object_increment, my_object_throw_error)
5212         (my_object_uppercase, my_object_many_args): New test methods.
5213         (main): Use dbus_g_object_class_install_info to include generated object
5214         info.
5215
5216         * test/glib/Makefile.am: Generate server-side glue for test-service-glib.c,
5217         as well as client-side bindings.
5218
5219         * test/glib/test-dbus-glib.c: Include test-service-glib-bindings.h.
5220         (main): Activate TestSuiteGLibService; test invoke a bunch of its methods
5221         using both the dbus_gproxy stuff directly as well as the generated bindings.
5222
5223 2005-02-15  Havoc Pennington  <hp@redhat.com>
5224
5225         * dbus/dbus-connection.c (dbus_connection_dispatch): always
5226         complete a pending call, don't run filters first.
5227
5228         * glib/dbus-gproxy.c (dbus_g_proxy_end_call): change to use
5229         dbus_pending_call_steal_reply
5230
5231         * dbus/dbus-pending-call.c (dbus_pending_call_block): just call
5232         _dbus_connection_block_pending_call
5233         (dbus_pending_call_get_reply): change to steal_reply and return a
5234         ref
5235
5236         * dbus/dbus-connection.c
5237         (dbus_connection_send_with_reply_and_block): port to work in terms
5238         of DBusPendingCall
5239         (_dbus_connection_block_pending_call): replace block_for_reply
5240         with this
5241
5242 2005-02-14  Havoc Pennington  <hp@redhat.com>
5243
5244         * dbus/dbus-userdb-util.c (_dbus_user_database_lookup_group):
5245         properly handle looking up group information by name; fix 
5246         from j@bootlab.org
5247
5248 2005-02-13  Havoc Pennington  <hp@redhat.com>
5249
5250         * dbus/dbus-connection.c (dbus_connection_return_message) 
5251         (dbus_connection_borrow_message): hold dispatch lock while message
5252         is outstanding
5253         (_dbus_connection_block_for_reply): hold dispatch lock while we
5254         block for the reply, so nobody steals our reply
5255         (dbus_connection_pop_message): hold the dispatch lock while we
5256         pluck the message
5257
5258 2005-02-13  Havoc Pennington  <hp@redhat.com>
5259
5260         * dbus/dbus-connection.c (_dbus_connection_acquire_dispatch)
5261         (_dbus_connection_release_dispatch)
5262         (_dbus_connection_acquire_io_path)
5263         (_dbus_connection_release_io_path): make the mutex and condvar
5264         control access to the "acquired" flag. Drop the connection lock
5265         while waiting on the condvar. Hopefully these are baby steps in
5266         roughly the right direction.
5267
5268 2005-02-13  Havoc Pennington  <hp@redhat.com>
5269
5270         * dbus/dbus-connection.c: use separate mutexes for the condition
5271         variables; this is some kind of baseline for sanity, but the
5272         condition variables still aren't used correctly afaict
5273
5274 2005-02-13  Havoc Pennington  <hp@redhat.com>
5275
5276         * dbus/dbus-object-tree.c (handle_default_introspect_and_unlock):
5277         fix a double-unlock
5278
5279         * dbus/dbus-connection.c
5280         (_dbus_connection_detach_pending_call_unlocked): add this
5281
5282         Initial semi-correct pass through to fix thread locking; there are
5283         still some issues with the condition variable paths I'm pretty
5284         sure
5285         
5286         * dbus/dbus-server.c: add a mutex on DBusServer and appropriate
5287         lock/unlock calls
5288
5289         * dbus/dbus-connection.c (_dbus_connection_do_iteration_unlocked):
5290         rename to add _unlocked
5291         (struct DBusConnection): move "dispatch_acquired" and
5292         "io_path_acquired" to use only one bit each.
5293         (CONNECTION_LOCK, CONNECTION_UNLOCK): add checks with !DBUS_DISABLE_CHECKS
5294         (dbus_connection_set_watch_functions): hacky fix to reentrancy
5295         (_dbus_connection_add_watch, _dbus_connection_remove_watch) 
5296         (_dbus_connection_toggle_watch, _dbus_connection_add_timeout) 
5297         (_dbus_connection_remove_timeout) 
5298         (_dbus_connection_toggle_timeout): drop lock when calling out to
5299         user functions; done in a hacky/bad way.
5300         (_dbus_connection_send_and_unlock): add a missing unlock
5301         (_dbus_connection_block_for_reply): add a missing unlock
5302
5303         * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated):
5304         drop lock in a hacky probably unsafe way to call out to user
5305         function
5306
5307 2005-02-12  Havoc Pennington  <hp@redhat.com>
5308
5309         * tools/dbus-tree-view.c (info_set_func_text): display more
5310         details on args
5311
5312         * bus/driver.c (bus_driver_handle_list_services): list the bus
5313         driver
5314
5315         * glib/dbus-gparser.c (parse_arg): generate an arg name if none is supplied
5316
5317         * glib/dbus-gidl.c (signal_info_get_n_args): new function
5318         (method_info_get_n_args): new function
5319
5320 2005-02-12  Havoc Pennington  <hp@redhat.com>
5321
5322         * bus/driver.c (bus_driver_handle_introspect): add introspection
5323         for bus driver
5324
5325 2005-02-12  Havoc Pennington  <hp@redhat.com>
5326
5327         * bus/driver.c: put the signature of each bus driver method in the
5328         table of handlers and check it on incoming calls; this isn't
5329         really useful, but going to add introspect support in a minute.
5330
5331 2005-02-11  Joe Shaw  <joeshaw@novell.com>
5332
5333         * mono/Connection.cs: The unpredictability of finalizers in mono
5334         prevents us from deterministically disconnecting the filters from
5335         the Service class's finalizer, so move tracking of filters and
5336         matches here.  Add API for that.
5337
5338         * mono/Service.cs: Remove the code, add code which calls the
5339         methods now on the Connection class.
5340
5341 2005-02-11  John (J5) Palmieri  <johnp@redhat.com>
5342
5343         * python/dbus.py (class Sender): added to support dbus signals better
5344         (Bus::add_signal_receiver): added expand_args parameter which defaults
5345         to True.  When expand args is True the signal handler will pass the 
5346         message arguments as parameters to the signal handler.  If False
5347         revert to previous behavior where the signal handler must get the
5348         argument list from the message.  This is to help port applications
5349         like HAL that have a tendancy to send variable length argument lists.
5350         self._match_rule_to_receivers is now a dict of dicts.
5351         (Bus::remove_signal_receiver): pop handler off the dict intead of 
5352         removing it from a list
5353         (Bus::_signal_func): change signal handlers so that interface,
5354         signal_name, service, path and message are packed into a Sender
5355         object and that is passed to the handler.  If expand_args is True
5356         extract the args list from the message and append it to the parameter
5357         list
5358         
5359         * python/dbus_bindings.pyx.in (class Signature): added to support 
5360         signiature types
5361         (MessageIter::__init__): changed iteration limit to match D-BUS
5362         (MessageIter::get*): added INT16, UINT16, SIGNATURE, DICT_ENTRY, 
5363         STRUCT and VARIENT type support
5364         (MessageIter::python_value_to_dbus_sig): made recursive to support
5365         recursive types
5366         (MessageIter::append*): added Signature, dict, tuple 
5367         support
5368
5369         * python/examples/example-client.py: added examples of getting tuples
5370         and dicts
5371
5372         * python/examples/example-service.py: added examples of sending tuples
5373         and dicts
5374
5375         * python/examples/example-signal-recipient.py: Fixed to handle new
5376         signal callback format
5377
5378 2005-02-10  Havoc Pennington  <hp@redhat.com>
5379
5380         * test/glib/test-dbus-glib.c (main): fix so this test doesn't fail
5381         (call dbus_g_proxy_add_signal)
5382
5383         * dbus/dbus-server-unix.c (_dbus_server_new_for_tcp_socket):
5384         escape the hostname
5385         (_dbus_server_new_for_domain_socket): escape the path
5386
5387         * dbus/dbus-address.c (dbus_address_escape_value): new
5388         (dbus_address_unescape_value): new
5389         (dbus_parse_address): unescape values
5390
5391         * dbus/dbus-string.c (_dbus_string_append_byte_as_hex): new function
5392
5393         * doc/dbus-specification.xml: explain how to escape values in
5394         addresses
5395
5396 2005-02-10  Havoc Pennington  <hp@redhat.com>
5397
5398         * dbus/dbus-message-factory.c (generate_special): modify test to
5399         avoid using a non-basic dict key
5400
5401         * dbus/dbus-marshal-validate-util.c: add test for the below
5402
5403         * doc/dbus-specification.xml: require that dict keys are a basic
5404         type
5405
5406         * dbus/dbus-marshal-validate.c
5407         (_dbus_validate_signature_with_reason): require that dict key is a
5408         basic type
5409
5410 2005-02-10  Havoc Pennington  <hp@redhat.com>
5411
5412         * dbus/dbus-object-tree.c (handle_default_introspect_and_unlock):
5413         change to be _and_unlock instead of _unlocked
5414
5415         * dbus/dbus-connection.c
5416         (_dbus_connection_send_preallocated_unlocked_no_update): rename to
5417         have no_update so we can find this bug quickly in future
5418
5419 2005-02-10  Havoc Pennington  <hp@redhat.com>
5420
5421         * dbus/dbus-message-util.c (verify_test_message): tests for string
5422         array
5423
5424         * dbus/dbus-message.c (dbus_message_append_args_valist): add
5425         support for arrays of string/signature/path
5426
5427 2005-02-10  Joe Shaw  <joeshaw@novell.com>
5428
5429         * dbus/dbus-connection.c
5430         (_dbus_connection_queue_received_message_link,
5431         _dbus_connection_message_sent): Add the path to
5432         the verbose output.
5433         (_dbus_connection_send_preallocated_and_unlock): Added.  Calls
5434         _dbus_connection_send_preallocated_unlocked(), updated the
5435         dispatch status, and unlocks.  Fixes a bug where certain
5436         situations (like a broken pipe) could cause a Disconnect message
5437         to not be sent, tricking the bus into thinking a service was still
5438         there when the process had quit.
5439         (_dbus_connection_send_preallocated): Call
5440         _dbus_connection_send_preallocated_and_unlock().
5441         (_dbus_connection_send_and_unlock): Added.  Calls
5442         _dbus_connection_send_preallocated_and_unlock().
5443         (dbus_connection_send): Call _dbus_connection_send_and_unlock().
5444         (dbus_connection_send_with_reply): Update the dispatch status and
5445         unlock.
5446
5447         * mono/Service.cs (~Service): Added.  Removes the filter so that
5448         we don't get unmanaged code calling back into a GCed delegate.
5449         (RemoveFilter); Added.
5450
5451 2005-02-09  John (J5) Palmieri  <johnp@redhat.com>
5452
5453         * dbus/dbus-message.c (dbus_message_iter_open_container):
5454         - Removed check for iterator type being an array because
5455         get_arg_type does not work with writer iterators
5456         - Pass NULL to _dbus_type_writer_recurse if signiture is NULL
5457
5458 2005-02-07  Havoc Pennington  <hp@redhat.com>
5459
5460         * doc/dbus-specification.xml: some more language cleanups; add
5461         stuff about how to deal with invalid protocol and extension
5462         points; add _ to allowed chars in auth commands; add EXTENSION_
5463         auth command prefix
5464
5465 2005-02-06  Havoc Pennington  <hp@redhat.com>
5466
5467         * s/expected/required/ in a couple places for clarity
5468
5469 2005-02-07  Colin Walters  <walters@verbum.org>
5470
5471         * bus/selinux.c (bus_selinux_allows_send): Handle NULL for
5472         sender or proposed_recipient.
5473
5474 2005-02-06  Havoc Pennington  <hp@redhat.com>
5475
5476         * dbus/dbus-message-factory.c (generate_special): more tests
5477
5478         * dbus/dbus-marshal-validate.c (validate_body_helper): detect
5479         array length that exceeds the maximum
5480
5481 2005-02-05  Havoc Pennington  <hp@redhat.com>
5482
5483         * dbus/dbus-message-factory.c (generate_special): more test cases,
5484         increasing coverage
5485
5486         * dbus/dbus-marshal-validate.c (validate_body_helper): return the
5487         reason why a signature was invalid
5488
5489         * dbus/dbus-marshal-header.c (load_and_validate_field): fix to
5490         skip the length of the string before we look at it in validation
5491
5492         * dbus/dbus-string-util.c (_dbus_string_test): add tests for
5493         equal_substring
5494
5495         * dbus/dbus-message.c (_dbus_message_loader_new): default
5496         max_message_length to DBUS_MAXIMUM_MESSAGE_LENGTH
5497
5498 2005-02-05  Havoc Pennington  <hp@redhat.com>
5499
5500         * dbus/dbus-marshal-validate.c (validate_body_helper): fix crash
5501         if the signature of a variant was empty
5502         (_dbus_validate_signature_with_reason): catch "(a)" (array inside
5503         struct with no element type)
5504
5505         * dbus/dbus-message-factory.c (generate_uint32_changed): add more
5506         mangled messages to break things
5507
5508 2005-02-04  Havoc Pennington  <hp@redhat.com>
5509
5510         * glib/dbus-gproxy.c (dbus_g_proxy_disconnect_signal): use
5511         g_quark_try_string() so it actually can return 0
5512         (dbus_g_proxy_connect_signal): ditto
5513
5514 2005-02-04  Havoc Pennington  <hp@redhat.com>
5515
5516         * glib/dbus-gproxy.c (dbus_g_proxy_emit_remote_signal): fix a
5517         bogus warning
5518         (tristring_from_message): assert cleanly on null path/interface
5519         (should not be possible though I decided later)
5520         (dbus_g_proxy_dispose): move proxy manager unregistration here
5521         (DBUS_G_PROXY_DESTROYED): add this macro, and use it in a bunch of
5522         g_return_if_fail() checks
5523
5524 2005-02-04  Havoc Pennington  <hp@redhat.com>
5525
5526         * doc/Makefile.am (EXTRA_DIST): add DTDs to makefile
5527
5528         * doc/introspect.dtd: add introspect.dtd from David A. Wheeler
5529         (with some minor changes)
5530
5531         * doc/dbus-specification.xml: add deprecated attribute to
5532         introspection format
5533
5534 2005-01-31  Havoc Pennington  <hp@redhat.com>
5535
5536         * glib/dbus-gproxy.c: rewrite how signals work again, this time I
5537         think it's sort of right
5538
5539 2005-01-30  Havoc Pennington  <hp@redhat.com>
5540
5541         * tools/dbus-viewer.c: kind of half-ass hook up the option menu.
5542
5543 2005-01-30  Havoc Pennington  <hp@redhat.com>
5544
5545         * tools/dbus-names-model.c: dynamically watch NameOwnerChanged
5546
5547         * autogen.sh: change to autotools 1.9
5548
5549         * glib/dbus-gproxy.c: completely change how signals work
5550         (dbus_g_proxy_add_signal): new function to specify signature of a
5551         signal
5552         (dbus_g_proxy_emit_received): marshal the dbus message to GValues,
5553         and g_warning if the incoming message has the wrong signature.
5554
5555 2005-01-30  Havoc Pennington  <hp@redhat.com>
5556
5557         * tools/dbus-names-model.c (have_names_notify): fix this
5558
5559         * dbus/dbus-message.c (_dbus_message_iter_get_args_valist): clean
5560         up the string array handling a bit 
5561
5562 2005-01-30  Havoc Pennington  <hp@redhat.com>
5563
5564         * glib/dbus-glib.c (dbus_g_pending_call_set_notify): new function
5565         (dbus_g_pending_call_cancel): new function
5566
5567         * dbus/dbus-glib.h: move GType decls for connection/message here;
5568         * dbus/dbus-glib.c: move all the g_type and ref/unref stuff in
5569         here, just kind of rationalizing how we handle all that
5570
5571         * tools/dbus-names-model.c: new file for a tree model listing the
5572         services on a bus
5573
5574         * tools/dbus-tree-view.c (model_new): use proper typing on the
5575         model rows
5576
5577 2005-01-30  Havoc Pennington  <hp@redhat.com>
5578
5579         * glib/dbus-gmain.c: add a custom GSource back that just checks
5580         whether the message queue has anything in it; otherwise, there are 
5581         cases where we won't see messages in the queue since there was no 
5582         IO visible to the glib main loop
5583
5584         * dbus/dbus-connection-internal.h (_DBUS_DEFAULT_TIMEOUT_VALUE):
5585         increase default message timeout to 25 seconds
5586
5587 2005-01-30  Havoc Pennington  <hp@redhat.com>
5588
5589         * test/glib/test-profile.c (no_bus_stop_server): remove the
5590         warning about the g_warning that I just fixed
5591
5592         * glib/dbus-gmain.c: rewrite the main loop stuff to avoid the
5593         custom source, seems to be a lot easier to understand and work
5594         better.
5595
5596 2005-01-30  Havoc Pennington  <hp@redhat.com>
5597
5598         I think this main loop thing is conceptually broken, but here are 
5599         some band aids. I'll maybe rewrite it in a minute.
5600         
5601         * glib/dbus-gmain.c (add_timeout): timeout stuff doesn't use the
5602         custom GSource, so don't pass it in; confusing
5603         (gsource_server_finalize, gsource_connection_finalize): add
5604         finalize handlers that remove all the watches.  
5605
5606 2005-01-30  Havoc Pennington  <hp@redhat.com>
5607
5608         * glib/dbus-gobject.c (introspect_properties): fix the XML
5609         generated
5610
5611         * dbus/dbus-message.c (dbus_message_unref): add an in_cache flag
5612         which effectively detects the use of freed messages
5613
5614         * glib/dbus-gobject.c (handle_introspect): modify and return the
5615         reply message instead of the incoming message
5616
5617         * dbus/dbus-object-tree.c (handle_default_introspect_unlocked):
5618         gee, maybe it should SEND THE XML instead of just making a string
5619         and freeing it again ;-)
5620
5621         * tools/dbus-print-message.c (print_message): improve printing of
5622         messages
5623
5624         * configure.in: add debug-glib.service to the output
5625
5626 2005-01-30  Havoc Pennington  <hp@redhat.com>
5627
5628         dbus-viewer introspected and displayed the bus driver
5629         
5630         * dbus/dbus-object-tree.c 
5631         (object_tree_test_iteration): add tests for a handler registered on "/"
5632
5633         * dbus/dbus-object-tree.c
5634         (_dbus_decompose_path): fix to handle path "/" properly
5635         (run_decompose_tests): add tests for path decomposition
5636         
5637         * glib/dbus-gutils.c (_dbus_gutils_split_path): fix to handle "/"
5638         properly
5639
5640         * glib/dbus-gobject.c (handle_introspect): fix quotes
5641
5642         * test/glib/run-test.sh: support launching the bus, then running
5643         dbus-viewer
5644
5645         * test/glib/test-service-glib.c (main): put in a trivial gobject
5646         subclass and register it on the connection
5647
5648         * bus/driver.c (bus_driver_handle_introspect): implement
5649         introspection of the bus driver service
5650
5651         * dbus/dbus-protocol.h: add #defines for the XML namespace,
5652         identifiers, doctype decl
5653
5654         * bus/driver.c (bus_driver_handle_get_service_owner): handle
5655         attempts to get owner of DBUS_SERVICE_ORG_FREEDESKTOP_DBUS by 
5656         returning the service unchanged.
5657         (bus_driver_handle_message): remove old check for reply_serial in
5658         method calls, now the message type deals with that
5659         (bus_driver_handle_message): handle NULL interface
5660
5661         * glib/dbus-gproxy.c (dbus_g_proxy_get_bus_name): new function
5662
5663         * glib/dbus-gloader-expat.c (description_load_from_string): allow
5664         -1 for len
5665
5666         * tools/dbus-viewer.c: add support for introspecting a service on
5667         a bus
5668
5669         * glib/dbus-gproxy.c (dbus_g_pending_call_ref): add
5670         (dbus_g_pending_call_unref): add
5671
5672 2005-01-29  Havoc Pennington  <hp@redhat.com>
5673
5674         * tools/dbus-tree-view.c: add support for displaying properties.
5675         (run dbus-viewer with an introspect xml file as arg, then resize
5676         the window so the tree elements show up, not sure what that is)
5677
5678         * glib/dbus-gobject.c (handle_introspect): return
5679         org.freedesktop.Properties and org.freedesktop.Introspectable
5680         interfaces when we are introspected.
5681
5682         * doc/dbus-specification.xml: allow empty interface name when 
5683         Get/Set a property
5684
5685 2005-01-29  Havoc Pennington  <hp@redhat.com>
5686
5687         * glib/Makefile.am: rename dbus-glib-tool to dbus-binding-tool;
5688         though it uses glib, it could be extended for any binding in
5689         principle
5690
5691         * glib/dbus-gobject.c (gobject_message_function): change to the
5692         new way properties work
5693
5694         * dbus/dbus-protocol.h: add the new interfaces
5695
5696         * doc/dbus-specification.xml: document the introspection format,
5697         Introspectable interface, and add an org.freedesktop.Properties
5698         interface.
5699
5700         * glib/dbus-gparser.c: add support for a <property> element
5701
5702         * glib/dbus-gidl.c: add PropertyInfo
5703
5704         * glib/dbus-gobject.c (handle_introspect): put the outermost
5705         <node> outside the signal and property descriptions.
5706         (introspect_properties): export properties as <property> rather
5707         than as method calls
5708
5709 2005-01-28  Havoc Pennington  <hp@redhat.com>
5710
5711         * doc/TODO, doc/dbus-specification.xml: spec and TODO tweaks
5712         related to authentication protocol
5713
5714 2005-01-28  John (J5) Palmieri  <johnp@redhat.com>
5715
5716         * python/dbus_bindings.pyx.in: Updated to handle new D-BUS type system
5717                 - BUS_ACTIVATION -> BUS_STARTER
5718                 - DBUS_BUS_ACTIVATION -> DBUS_BUS_STARTER
5719                 - class MessageIter (__init__): Added recursion checking 
5720                 so we throw a nice error instead of just disconnecting from the
5721                 bus.
5722                 (get): Added arg_type parameter for recursion.
5723                 Removed the nil type
5724                 Added signiture type placeholder (not implemented)
5725                 Added struct type placeholder (not implemented)
5726                 Added varient type placeholder (not implemented)
5727                 Commented out dict type for now     
5728                 (get_element_type): renamed from get_array_type
5729                 (get_*): changed to use the dbus_message_iter_get_basic API
5730                 (get_*_array): removed in favor of recursive get_array method
5731                 (get_array): new recursive method which calls get to marshal
5732                 the elements of the array
5733                 (value_to_dbus_sig): New method returns the corrasponding
5734                 dbus signiture to a python value
5735                 (append): Comment out dict handling for now
5736                 Handle lists with the new recursive API
5737                 Comment out None handling for now
5738                 (append_nil): removed
5739                 (append_*): changed to use dbus_message_iter_append_basic API
5740                 (append_*_array): removed in favor of recursive append_array 
5741                 method
5742                 (__str__): Make it easier to print out recursive iterators
5743                 for debugging
5744                 - class Message (__str__): moved type inspection to the
5745                 MessageIter class' __str__ method
5746                 (get_iter): Added an append parameter wich defaults to False
5747                 If True use the new API's to create an append iterator
5748
5749         * python/dbus.py: Update to use new bindings API
5750                 - TYPE_ACTIVATION -> TYPE_STARTER
5751                 - class Bus (_get_match_rule): GetServiceOwner -> GetNameOwner
5752                 - class ActivationBus -> class StarterBus
5753                 - class RemoteObject (__call__): get an append iterator
5754                 - (_dispatch_dbus_method_call): get an append iterator
5755                 - class Object (emit_signal): get an append iterator
5756
5757         * python/examples/: Fixed up the examples to work with the new API
5758                 
5759 2005-01-28  Joe Shaw  <joeshaw@novell.com>
5760
5761         * configure.in: Bump version up to 0.30.
5762
5763         * HACKING: Add a release item to bump the version number up after 
5764         a release.
5765
5766 2005-01-28  Havoc Pennington  <hp@redhat.com>
5767
5768         * doc/dbus-specification.xml: update to describe 16-bit types and
5769         dict entries
5770
5771         * dbus/dbus-marshal-basic.c (_dbus_unpack_uint16): fix broken
5772         assertion
5773
5774         * dbus/dbus-protocol.h (DBUS_TYPE_DICT_ENTRY): add DICT_ENTRY as a
5775         type
5776
5777         * dbus/dbus-marshal-recursive.c: implement
5778
5779 2005-01-27  Havoc Pennington  <hp@redhat.com>
5780
5781         * dbus/dbus-arch-deps.h.in: add 16/32-bit types
5782
5783         * configure.in: find the right type for 16 and 32 bit ints as well
5784         as 64
5785
5786         * dbus/dbus-protocol.h (DBUS_TYPE_INT16, DBUS_TYPE_UINT16): add
5787         the 16-bit types so people don't have to stuff them in 32-bit or
5788         byte arrays.
5789
5790 2005-01-27  Havoc Pennington  <hp@redhat.com>
5791
5792         * dbus/dbus-message.c: byteswap the message if you init an
5793         iterator to read/write from it
5794         
5795         * dbus/dbus-marshal-byteswap.c: new file implementing 
5796         _dbus_marshal_byteswap()
5797
5798         * dbus/dbus-marshal-basic.c: add _dbus_swap_array()
5799
5800 2005-01-26  Havoc Pennington  <hp@redhat.com>
5801         
5802         * dbus/dbus-marshal-validate-util.c: break this out (and fix
5803         build, apparently - nobody noticed?)
5804         
5805 2005-01-26  Havoc Pennington  <hp@redhat.com>
5806
5807         * dbus/dbus-marshal-recursive.h: remove todo comment
5808
5809 2005-01-25  Joe Shaw  <joeshaw@novell.com>
5810
5811         * Land the mono binding changes to conform to the new APIs.
5812
5813         * mono/Makefile.am: Remove Custom.cs, DBusType/Custom.cs,
5814         DBusType/Dict.cs, and DBusType/Nil.cs from the build.
5815
5816         * mono/Arguments.cs (GetCodeAsString): Added.  Returns the dbus
5817         type code as a string.
5818         (InitAppending): Rename dbus_message_append_iter_init() to
5819         dbus_message_iter_init_append().
5820
5821         * mono/BusDriver.cs: Rename ServiceEventHandler to
5822         NameOwnerChangedHandler.  Rename GetServiceOwner to GetOwner.
5823         Rename ServiceOwnerChanged to NameOwnerChanged.
5824
5825         * mono/Connection.cs: Rename BaseService to UniqueName, and the
5826         underlying C call.
5827
5828         * mono/Custom.cs: Removed.  The CUSTOM type has been removed.
5829
5830         * mono/Service.cs: Rename Exists to HasOwner, internally rename
5831         dbus_bus_acquire_service() to dbus_bus_request_name().
5832
5833         * mono/DBusType/Array.cs (ctor): Use Type.GetElementType() instead
5834         of Type.UnderlyingSystemType to get the correct element type for
5835         the array.
5836         (ctor): Update code for new APIs: use dbus_message_iter_recurse(),
5837         dbus_message_get_{element|arg}_type() instead of
5838         dbus_message_iter_init_array_iterator().
5839         (Append): Replace dbus_message_iter_append_array() with
5840         dbus_message_iter_open_container() and
5841         dbus_message_iter_close_container().
5842
5843         * mono/DBusType/Custom.cs, mono/DBusType/Nil.cs: Removed.  These
5844         types have been removed.
5845         
5846         * mono/DBusType/*.cs: Replace calls of
5847         dbus_message_iter_get_[type]() to dbus_message_iter_get_basic(),
5848         but specify the type in the DllImport extern declaration.  Ditto
5849         for dbus_message_iter_append_[type]() ->
5850         dbus_message_iter_append_basic().
5851
5852         * mono/example/BusListener.cs: Update for ServiceEventHandler ->
5853         NameOwnerChangedHandler.
5854
5855 2005-01-25  John (J5) Palmieri  <johnp@redhat.com>
5856
5857         * python/dbus_bindings.pyx.in: Rename of methods and bindings
5858                 - get_base_service -> get_unique_name
5859                 - bus_get_base_service -> bus_get_unique_name
5860                 - dbus_bus_get_base_service -> dbus_bus_get_unique_name
5861                 - ACTIVATION_REPLY_ACTIVATED -> DBUS_START_REPLY_SUCCESS 
5862                 - ACTIVATION_REPLY_ALREADY_ACTIVE -> DBUS_START_REPLY_ALREADY_RUNNING
5863                 - bus_activate_service -> bus_start_service_by_name
5864                 - dbus_bus_activate_service -> dbus_bus_start_service_by_name
5865                 - bus_acquire_service -> bus_request_name
5866                 - dbus_bus_acquire_service -> dbus_bus_request_name
5867                 - bus_service_exists -> bus_name_has_owner
5868                 - dbus_bus_service_exists -> dbus_bus_name_has_owner
5869
5870         * python/dbus.py: Rename of methods
5871                 - activate_service -> start_service_by_name
5872                 - bus_acquire_service -> bus_request_name
5873                 - ACTIVATION_REPLY_ACTIVATED -> START_REPLY_SUCCESS 
5874                 - ACTIVATION_REPLY_ALREADY_ACTIVE -> START_REPLY_ALREADY_RUNNING
5875
5876         
5877 2005-01-24  Joe Shaw  <joeshaw@novell.com>
5878
5879         * dbus/dbus-connection.c (dbus_connection_dispatch): Print out the
5880         signature for the method that can't be found.
5881
5882         * dbus/dbus-message.c (dbus_message_iter_init): To check to see if
5883         the message has any arguments, we need to call
5884         _dbus_type_reader_get_current_type(), not
5885         _dbus_type_reader_has_next().
5886
5887 2005-01-24  Havoc Pennington  <hp@redhat.com>
5888
5889         * dbus/dbus-message-factory.c: more testing of message validation
5890
5891         * dbus/dbus-protocol.h (DBUS_MINIMUM_HEADER_SIZE): move to this
5892         header
5893
5894 2005-01-23  Havoc Pennington  <hp@redhat.com>
5895
5896         * dbus/dbus-message-factory.c, dbus/dbus-message-util.c: 
5897         get this all working, not many tests in the framework yet though
5898
5899 2005-01-22  Havoc Pennington  <hp@redhat.com>
5900
5901         * doc/dbus-faq.xml, doc/dbus-tutorial: add a FAQ and update
5902         tutorial, based on work from David Wheeler.
5903
5904 2005-01-21  Havoc Pennington  <hp@redhat.com>
5905
5906         * dbus/dbus-bus.c: add more return_if_fail checks
5907
5908         * dbus/dbus-message.c (load_message): have the "no validation"
5909         mode (have to edit the code to toggle the mode for now though)
5910
5911         * dbus/dbus-marshal-header.c (_dbus_header_load): have a mode that
5912         skips all validation; I want to use this at least for benchmark
5913         baseline, I'm not sure if it should be a publicly-available switch.
5914
5915 2005-01-21  Havoc Pennington  <hp@redhat.com>
5916
5917         * glib/dbus-gmain.c: don't put the GLib bindings in the same
5918         toplevel doxygen group as the low-level API stuff
5919
5920         * dbus/dbus.h: note that libdbus is the low-level API
5921
5922 2005-01-20  Havoc Pennington  <hp@redhat.com>
5923
5924         * update-dbus-docs.sh: script to update docs on the web site, only
5925         works for me though. neener.
5926
5927 2005-01-20  Havoc Pennington  <hp@redhat.com>
5928
5929         * dbus/dbus-sysdeps.c (_dbus_poll): amazingly, trying to compile
5930         code can reveal bugs in it
5931
5932 2005-01-20  Havoc Pennington  <hp@redhat.com>
5933
5934         * dbus/dbus-sysdeps.c (_dbus_poll): fix several bugs in the
5935         select() version, patches from Tor Lillqvist
5936
5937 2005-01-20  Havoc Pennington  <hp@redhat.com>
5938
5939         * doc/dbus-tutorial.xml: replace > with &gt;
5940
5941         * bus/services.c (bus_registry_acquire_service): validate the name
5942         and return a better error if it's no good.
5943
5944         * doc/dbus-specification.xml: note NO_AUTO_START change
5945
5946         * dbus/dbus-protocol.h (DBUS_HEADER_FLAG_NO_AUTO_START): change
5947         from AUTO_START, we're toggling the default
5948
5949         * bus/dispatch.c: adapt the tests to change of auto-start default
5950
5951 2005-01-18  Havoc Pennington  <hp@redhat.com>
5952
5953         * rename dbus-daemon-1 to dbus-daemon throughout
5954
5955 2005-01-18  Havoc Pennington  <hp@redhat.com>
5956
5957         * Throughout, grand renaming to strip out the use of "service",
5958         just say "name" instead (or "bus name" when ambiguous).  Did not
5959         change the internal code of the message bus itself, only the
5960         programmer-facing API and messages.
5961         
5962         * doc/dbus-specification.xml: further update the message bus section
5963         
5964         * bus/config-parser.c (all_are_equiv): fix bug using freed string
5965         in error case
5966
5967 2005-01-17  Havoc Pennington  <hp@redhat.com>
5968
5969         * dbus/dbus-types.h: remove 16-bit types since we don't use them
5970         ever
5971
5972         * dbus/dbus-marshal-validate.c (_dbus_validate_path): disallow any
5973         "invalid name character" not only non-ASCII
5974
5975         * doc/dbus-specification.xml: further update spec, message bus 
5976         parts are still out-of-date but the marshaling etc. stuff is now
5977         accurate-ish
5978
5979 2005-01-17  Havoc Pennington  <hp@redhat.com>
5980
5981         * doc/dbus-specification.xml: partially update spec
5982
5983 2005-01-17  Havoc Pennington  <hp@redhat.com>
5984
5985         * Throughout, align variant bodies according to the contained
5986         type, rather than always to 8. Should save a fair bit of space in
5987         message headers.
5988         
5989         * dbus/dbus-marshal-validate.c (_dbus_validate_body_with_reason):
5990         fix handling of case where p == end
5991
5992         * doc/TODO: remove the dbus_bool_t item and variant alignment items
5993
5994 2005-01-17  Havoc Pennington  <hp@redhat.com>
5995
5996         * dbus/dbus-types.h: hardcode dbus_bool_t to 32 bits
5997
5998         * Throughout: modify DBUS_TYPE_BOOLEAN to be a 32-bit type instead
5999         of an 8-bit type. Now dbus_bool_t is the type to use whenever you 
6000         are marshaling/unmarshaling a boolean.
6001
6002 2005-01-16  Havoc Pennington  <hp@redhat.com>
6003
6004         This is about it on what can be disabled/deleted from libdbus
6005         easily, back below 150K anyhow. Deeper cuts are more work than 
6006         just turning the code off as I've done here.
6007         
6008         * dbus/dbus-marshal-basic.c (_dbus_pack_int32): we don't need the
6009         signed int convenience funcs
6010
6011         * dbus/dbus-internals.c (_dbus_verbose_real): omit when not in
6012         verbose mode
6013
6014         * dbus/dbus-string-util.c, dbus/dbus-string.c: more breaking
6015         things out of libdbus
6016
6017         * dbus/dbus-sysdeps.c, dbus/dbus-sysdeps-util.c: same
6018         
6019         * dbus/dbus-hash.c: purge the TWO_STRINGS crap (well, make it
6020         tests-enabled-only, though it should probably be deleted)
6021
6022         * dbus/dbus-message-util.c: same stuff
6023
6024         * dbus/dbus-auth-util.c: same stuff
6025
6026 2005-01-16  Havoc Pennington  <hp@redhat.com>
6027
6028         * dbus/dbus-userdb-util.c: split out part of dbus-userdb.c
6029
6030         * dbus/dbus-sysdeps.c (_dbus_uid_from_string): move here to pave
6031         way for stripping down dbus-userdb.c stuff included in libdbus.
6032         Rename _dbus_parse_uid for consistency.
6033
6034 2005-01-16  Havoc Pennington  <hp@redhat.com>
6035
6036         * dbus/dbus-internals.c (_dbus_real_assert): print the function
6037         name the assertion failed in
6038
6039         * dbus/dbus-internals.h (_dbus_return_if_fail) 
6040         (_dbus_return_val_if_fail): assert that the name of the function
6041         containing the check doesn't start with '_', since we only want to 
6042         use checks on public functions
6043         
6044         * dbus/dbus-connection.c (_dbus_connection_ref_unlocked): change
6045         checks to assertions
6046
6047         * dbus/dbus-marshal-header.c (_dbus_header_set_field_basic):
6048         change checks to asserts for private function
6049
6050         * dbus/dbus-message.c (_dbus_message_set_serial): checks
6051         to asserts for private function
6052
6053         * dbus/dbus-marshal-recursive.c (skip_one_complete_type): remove
6054         broken assertion that was breaking make check
6055         (_dbus_type_reader_array_is_empty): remove this rather than fix
6056         it, was only used in assertions
6057
6058 2005-01-16  Havoc Pennington  <hp@redhat.com>
6059
6060         * test/unused-code-gc.py: hacky script to find code that's used
6061         only by the bus (not libdbus) or used only by tests or not used at
6062         all. It has some false alarms, but looks like we can clean up a
6063         lot of size from libdbus.
6064
6065         * dbus/dbus-sysdeps.c, dbus/dbus-sysdeps-utils.c,
6066         dbus/Makefile.am: initially move 10K of binary size out of libdbus
6067         
6068 2005-01-16  Havoc Pennington  <hp@redhat.com>
6069
6070         * Add and fix docs according to Doxygen warnings throughout
6071         source.
6072         
6073         * dbus/dbus-marshal-recursive.c
6074         (_dbus_type_reader_array_is_empty): change this to just call
6075         array_reader_get_array_len() and make it static
6076
6077         * dbus/dbus-message.c (dbus_message_iter_get_element_type): rename
6078         from get_array_type
6079         (dbus_message_iter_init_append): rename from append_iter_init
6080
6081         * dbus/dbus-marshal-recursive.c
6082         (_dbus_type_reader_get_element_type): rename from
6083         _dbus_type_reader_get_array_type
6084
6085 2005-01-15  Havoc Pennington  <hp@redhat.com>
6086
6087         * test/glib/test-profile.c (with_bus_server_filter): fix crash
6088
6089         * dbus/dbus-marshal-basic.c (_dbus_unpack_uint32): inline as macro
6090         when DBUS_DISABLE_ASSERT
6091         (_dbus_marshal_set_basic): be sure we align for the string length
6092
6093         * dbus/dbus-marshal-recursive.c (skip_one_complete_type): make
6094         this look faster
6095
6096         * dbus/dbus-string.c (_dbus_string_get_const_data_len): add an
6097         inline macro version
6098         (_dbus_string_set_byte): provide inline macro version
6099
6100 2005-01-15  Havoc Pennington  <hp@redhat.com>
6101
6102         * Land the new message args API and type system.
6103
6104         This patch is huge, but the public API change is not 
6105         really large. The set of D-BUS types has changed somewhat, 
6106         and the arg "getters" are more geared toward language bindings;
6107         they don't make a copy, etc.
6108
6109         There are also some known issues. See these emails for details
6110         on this huge patch:
6111         http://lists.freedesktop.org/archives/dbus/2004-December/001836.html
6112         http://lists.freedesktop.org/archives/dbus/2005-January/001922.html
6113         
6114         * dbus/dbus-marshal-*: all the new stuff
6115
6116         * dbus/dbus-message.c: basically rewritten
6117
6118         * dbus/dbus-memory.c (check_guards): with "guards" enabled, init
6119         freed blocks to be all non-nul bytes so using freed memory is less
6120         likely to work right
6121
6122         * dbus/dbus-internals.c (_dbus_test_oom_handling): add
6123         DBUS_FAIL_MALLOC=N environment variable, so you can do
6124         DBUS_FAIL_MALLOC=0 to skip the out-of-memory checking, or
6125         DBUS_FAIL_MALLOC=10 to make it really, really, really slow and
6126         thorough.
6127
6128         * qt/message.cpp: port to the new message args API
6129         (operator<<): use str.utf8() rather than str.unicode()
6130         (pretty sure this is right from the Qt docs?)
6131
6132         * glib/dbus-gvalue.c: port to the new message args API
6133
6134         * bus/dispatch.c, bus/driver.c: port to the new message args API
6135
6136         * dbus/dbus-string.c (_dbus_string_init_const_len): initialize the
6137         "locked" flag to TRUE and align_offset to 0; I guess we never
6138         looked at these anyhow, but seems cleaner.
6139
6140         * dbus/dbus-string.h (_DBUS_STRING_ALLOCATION_PADDING):
6141         move allocation padding macro to this header; use it to implement
6142         (_DBUS_STRING_STATIC): ability to declare a static string.
6143
6144         * dbus/dbus-message.c (_dbus_message_has_type_interface_member):
6145         change to return TRUE if the interface is not set.
6146
6147         * dbus/dbus-string.[hc]: move the D-BUS specific validation stuff
6148         to dbus-marshal-validate.[hc]
6149
6150         * dbus/dbus-marshal-basic.c (_dbus_type_to_string): move here from
6151         dbus-internals.c
6152
6153         * dbus/Makefile.am: cut over from dbus-marshal.[hc]
6154         to dbus-marshal-*.[hc]
6155
6156         * dbus/dbus-object-tree.c (_dbus_decompose_path): move this
6157         function here from dbus-marshal.c
6158
6159 2005-01-12  Joe Shaw  <joeshaw@novell.com>
6160
6161         * NEWS: Update for 0.23.
6162
6163         * configure.in: Release 0.23.
6164
6165 2005-01-12  Joe Shaw  <joeshaw@novell.com>
6166
6167         * mono/Makefile.am, mono/example/Makefile.am: Always build the 
6168         dbus DLL with --debug.  Clean up after the .mdb files this leaves
6169         behind.
6170
6171         * mono/doc/Makefile.am: Need to uninstall the docs on "make
6172         uninstall"
6173
6174         * mono/Arguments.cs (GetDBusTypeConstructor): If the type
6175         is an enum, get the enum's underlying type.  Another mono
6176         1.1.3 fix.
6177
6178 2005-01-11  Joe Shaw  <joeshaw@novell.com>
6179
6180         Patch from Sjoerd Simons <sjoerd@luon.net>
6181
6182         * mono/Makefile.am, mono/example/Makefile.am: Don't redefine
6183         DESTDIR.  It breaks stuff.
6184
6185 2005-01-11  Joe Shaw  <joeshaw@novell.com>
6186
6187         Patch from Tambet Ingo <tambet@ximian.com>
6188
6189         * mono/DBusType/Array.cs (Get): Get the underlying element type by
6190         calling type.GetElementType().  The code previously depended on
6191         broken Mono behavior, which was fixed in Mono 1.1.3.
6192
6193         * mono/DBusType/Dict.cs (constructor): Fix the parameters for
6194         Activator.CreateInstance() so that the class's constructor is
6195         called with the right parameters.
6196
6197 2005-01-11  Joe Shaw  <joeshaw@novell.com>
6198
6199         Patch from Timo Teräs <ext-timo.teras@nokia.com>
6200
6201         * dbus/dbus-connection.c
6202         (_dbus_connection_queue_received_message_link): Call
6203         _dbus_connection_remove_timeout() instead of the _locked()
6204         variant, since it's always called from
6205         _dbus_connection_handle_watch(), which handles the locking.
6206         Removed the _locked() variant since it's no longer used.
6207
6208 2005-01-03  Havoc Pennington  <hp@redhat.com>
6209
6210         * dbus/dbus-internals.h: I'm an idiot, _dbus_assert certainly can
6211         return
6212         
6213 2004-12-26  Havoc Pennington  <hp@redhat.com>
6214
6215         * dbus/dbus-internals.h: add _DBUS_GNUC_NORETURN to _dbus_assert
6216
6217 2005-01-03  Havoc Pennington  <hp@redhat.com>
6218
6219         * dbus/dbus-sysdeps.c (_dbus_sysdeps_test): fix using == on
6220         floating point
6221
6222         * dbus/dbus-string.c (_dbus_string_insert_alignment): new function
6223
6224 2005-01-02  Havoc Pennington  <hp@redhat.com>
6225
6226         * dbus/dbus-internals.h (_DBUS_ALIGN_OFFSET): new macro
6227
6228 2005-01-01  Havoc Pennington  <hp@redhat.com>
6229
6230         * configure.in: add -Wfloat-equal
6231
6232 2005-01-01  Havoc Pennington  <hp@redhat.com>
6233
6234         * dbus/dbus-sysdeps.h: add _DBUS_DOUBLES_BITWISE_EQUAL macro, 
6235         for a variety of reasons '==' doesn't do this.
6236
6237 2004-12-31  Havoc Pennington  <hp@redhat.com>
6238
6239         * dbus/dbus-string.c (_dbus_string_equal_substrings): new function
6240         I keep wishing I had
6241
6242 2004-12-30  John (J5) Palmieri  <johnp@redhat.com>
6243
6244         * python/dbus.py: s/ACTIVATION_REPLY_ACTIVE/ACTIVATION_REPLY_ACTIVATED
6245
6246 2004-12-30  John (J5) Palmieri  <johnp@redhat.com>
6247
6248         * python/dbus_bindings.pyx.in: Change DBUS_ACTIVATION_REPLY_ACTIVATED
6249         and DBUS_ACTIVATION_REPLY_ALREADY_ACTIVE to match the values in
6250         dbus-protocol.h.  Because they are defines and not enums they are not
6251         autogenerated.
6252
6253 2004-12-26  John (J5) Palmieri  <johnp@redhat.com>
6254
6255         * python/dbus_bindings.pyx.in (bus_activate_service): Bind
6256         dbus_bus_activate_service
6257
6258         * python/dbus.py (Bus.activate_service): activate a service on the
6259         bus.
6260
6261 2004-12-24  Havoc Pennington  <hp@redhat.com>
6262
6263         * test/decode-gcov.c: change to use .gcno and .gcda files, but the
6264         file format has also changed and I haven't adapted to that yet
6265         
6266         * Makefile.am: load .gcno files from latest gcc
6267
6268 2004-12-23  John (J5) Palmieri  <johnp@redhat.com>
6269         * Patch from Rob Taylor <robtaylor@fastmail.fm>
6270
6271         * python/dbus_bindings.pyx.in (bus_get_unix_user): New
6272         lowlevel binding
6273
6274         * python/dbus.py (get_unix_user): Added binding to 
6275         call dbus_bindings.bus_get_unix_user
6276
6277         * python/extract.py: Modified the proto_pat regex to
6278         handle unsigned long
6279
6280 2004-12-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6281
6282         * dbus/make-dbus-glib-error-enum.sh: omit the function keyword for
6283         better POSIX compliance.
6284
6285 2004-12-19  Havoc Pennington  <hp@redhat.com>
6286
6287         * dbus/dbus-string.c (_dbus_string_insert_4_aligned) 
6288         (_dbus_string_insert_8_aligned): new functions
6289
6290         * dbus/dbus-string.c (_dbus_string_alloc_space): new function
6291
6292 2004-12-18  Havoc Pennington  <hp@redhat.com>
6293
6294         * dbus/dbus-string.c (_dbus_string_validate_ascii): use ISASCII
6295         macro
6296
6297         * dbus/dbus-message.c: fix a comment, and add a still-unused
6298         not-implemented function
6299
6300         * dbus/dbus-marshal.h: fix comment
6301
6302         * dbus/dbus-internals.h (_DBUS_ISASCII): new macro
6303
6304 2004-12-17  Joe Shaw  <joeshaw@novell.com>
6305
6306         * mono/DBusType/Byte.cs, mono/DBusType/Int32.cs,
6307         mono/DBusType/Int64.cs, mono/DBusType/UInt32.cs,
6308         mono/DBusType/UInt64.cs: Use Enum.GetUnderlyingType() instead of
6309         Type.UnderlyingSystemType to get the actual system type
6310         underneath.  This code previously depended on the broken Mono
6311         behavior, which was fixed in 1.1.3.
6312
6313 2004-11-27  Havoc Pennington  <hp@redhat.com>
6314
6315         * dbus/dbus-string.h (_dbus_string_get_byte): inline when asserts
6316         are disabled
6317         (_dbus_string_get_const_data): inline when asserts are disabled
6318
6319         * dbus/dbus-message.c: record the _dbus_current_generation of
6320         creation so we can complain if dbus_shutdown() is used improperly.
6321         Do this only if checks are enabled.
6322
6323         * dbus/dbus-connection.c: ditto
6324         
6325 2004-11-26  Havoc Pennington  <hp@redhat.com>
6326
6327         * test/glib/test-profile.c: add with_bus mode to profile echoes
6328         that go through the bus.
6329
6330         * test/glib/run-test.sh: add ability to run test-profile
6331
6332         * bus/dbus-daemon-1.1.in: fix to say that SIGHUP causes partial
6333         config file reload.
6334
6335 2004-11-26  Havoc Pennington  <hp@redhat.com>
6336
6337         * test/glib/test-profile.c: clean up how the fake_malloc_overhead
6338         thing was implemented
6339
6340 2004-11-26  Havoc Pennington  <hp@redhat.com>
6341
6342         * test/glib/test-profile.c: tweak a bit, add support for some
6343         made-up minimal malloc overhead with plain sockets, since in 
6344         real life some sort of buffers are unavoidable thus we could 
6345         count them in the theoretical best case
6346
6347 2004-11-26  Havoc Pennington  <hp@redhat.com>
6348
6349         * dbus/dbus-message.c (dbus_message_cache_or_finalize): fix bug
6350         where I was trying to cache one too many messages
6351
6352 2004-11-26  Havoc Pennington  <hp@redhat.com>
6353
6354         * dbus/dbus-message.c: reimplement message cache as an array which 
6355         makes the cache about twice as fast and saves maybe 1.5% overall
6356
6357 2004-11-26  Havoc Pennington  <hp@redhat.com>
6358
6359         * dbus/dbus-threads.c (init_global_locks): forgot to put the
6360         message cache lock here
6361
6362 2004-11-26  Havoc Pennington  <hp@redhat.com>
6363
6364         * dbus/dbus-message.c (struct DBusMessage): put the locked bit and
6365         the "char byte_order" next to each other to save 4 bytes
6366         (dbus_message_new_empty_header): reduce preallocation, since the
6367         message cache should achieve a similar effect
6368         (dbus_message_cache_or_finalize, dbus_message_get_cached): add a
6369         message cache that keeps a few DBusMessage around in a pool,
6370         another 8% speedup or so.
6371
6372         * dbus/dbus-dataslot.c (_dbus_data_slot_list_clear): new function
6373
6374 2004-11-25  Havoc Pennington  <hp@redhat.com>
6375
6376         * dbus/dbus-transport-unix.c (unix_do_iteration): if we're going
6377         to write, without reading or blocking, try it before the poll()
6378         and skip the poll() if nothing remains to write. This is about a
6379         3% speedup in the echo client/server
6380
6381 2004-11-25  Havoc Pennington  <hp@redhat.com>
6382
6383         The primary change here is to always write() once before adding
6384         the write watch, which gives us about a 10% performance increase.
6385         
6386         * dbus/dbus-transport-unix.c: a number of modifications to cope
6387         with removing messages_pending
6388         (check_write_watch): properly handle
6389         DBUS_AUTH_STATE_WAITING_FOR_MEMORY; adapt to removal of
6390         messages_pending stuff
6391         (check_read_watch): properly handle WAITING_FOR_MEMORY and
6392         AUTHENTICATED cases
6393         (unix_handle_watch): after writing, see if the write watch can be
6394         removed
6395         (unix_do_iteration): assert that write_watch/read_watch are
6396         non-NULL rather than testing that they aren't, since they 
6397         aren't allowed to be NULL. check_write_watch() at the end so 
6398         we add the watch if we did not finish writing (e.g. got EAGAIN)
6399
6400         * dbus/dbus-transport-protected.h: remove messages_pending call,
6401         since it resulted in too much inefficient watch adding/removing; 
6402         instead we now require that the transport user does an iteration 
6403         after queueing outgoing messages, and after trying the first
6404         write() we add a write watch if we got EAGAIN or exceeded our 
6405         max bytes to write per iteration setting
6406
6407         * dbus/dbus-string.c (_dbus_string_validate_signature): add this
6408         function
6409
6410         * dbus/dbus-server-unix.c (unix_finalize): the socket name was
6411         freed and then accessed, valgrind flagged this bug, fix it
6412
6413         * dbus/dbus-message.c: fix several bugs where HEADER_FIELD_LAST was taken
6414         as the last valid field plus 1, where really it is equal to the
6415         last valid field. Corrects some message corruption issues.
6416
6417         * dbus/dbus-mainloop.c: verbosity changes
6418
6419         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): handle OOM
6420         instead of aborting in one of the test codepaths
6421
6422         * dbus/dbus-internals.c (_dbus_verbose_real): fix a bug that
6423         caused not printing the pid ever again if a verbose was missing
6424         the newline at the end
6425         (_dbus_header_field_to_string): add HEADER_FIELD_SIGNATURE
6426
6427         * dbus/dbus-connection.c: verbosity changes; 
6428         (dbus_connection_has_messages_to_send): new function
6429         (_dbus_connection_message_sent): no longer call transport->messages_pending
6430         (_dbus_connection_send_preallocated_unlocked): do one iteration to
6431         try to write() immediately, so we can avoid the write watch. This
6432         is the core purpose of this patchset
6433         (_dbus_connection_get_dispatch_status_unlocked): if disconnected,
6434         dump the outgoing message queue, so nobody will get confused
6435         trying to send them or thinking stuff is pending to be sent
6436
6437         * bus/test.c: verbosity changes
6438
6439         * bus/driver.c: verbosity/assertion changes
6440
6441         * bus/dispatch.c: a bunch of little tweaks to get it working again
6442         because this patchset changes when/where you need to block.
6443
6444 2004-11-23  Havoc Pennington  <hp@redhat.com>
6445
6446         * test/glib/test-profile.c: modify to accept a plain_sockets
6447         argument in which case it will bench plain sockets instead of
6448         libdbus, for comparison purposes.
6449
6450 2004-11-22  Havoc Pennington  <hp@redhat.com>
6451
6452         * test/glib/test-profile.c (N_CLIENT_THREADS): run multiple
6453         threads for more time, so sysprof can get a grip on it.
6454
6455         * dbus/dbus-string.c (_dbus_string_validate_utf8): remove
6456         pointless variable
6457
6458 2004-11-13  Havoc Pennington  <hp@redhat.com>
6459
6460         * test/glib/test-profile.c: fix this thing up a bit
6461
6462         * dbus/dbus-message.c (dbus_message_new_empty_header): increase
6463         preallocation sizes by a fair bit; not sure if this will be an
6464         overall performance win or not, but it does reduce reallocs.
6465
6466         * dbus/dbus-string.c (set_length, reallocate_for_length): ignore
6467         the test hack that forced constant realloc if asserts are
6468         disabled, so we can profile sanely. Sprinkle in some
6469         _DBUS_UNLIKELY() which are probably pointless, but before I
6470         noticed the real performance problem I put them in.
6471         (_dbus_string_validate_utf8): micro-optimize this thing a little
6472         bit, though callgrind says it didn't help; then special-case
6473         ascii, which did help a lot; then be sure we detect nul bytes as
6474         invalid, which is a bugfix.
6475         (align_length_then_lengthen): add some more _DBUS_UNLIKELY
6476         superstition; use memset to nul the padding instead of a manual
6477         loop.
6478         (_dbus_string_get_length): inline this as a
6479         macro; it showed up in the profile because it's used for loop
6480         tests and so forth
6481
6482 2004-11-10  Colin Walters  <walters@verbum.org>
6483
6484         * dbus/dbus-spawn.c (check_babysit_events): Handle EINTR,
6485         for extra paranoia.
6486
6487 2004-11-09  Colin Walters  <walters@verbum.org>
6488
6489         * dbus/dbus-string.c (_dbus_string_get_length): New
6490         function, writes DBusString to C buffer.
6491
6492         * dbus/dbus-string.h: Prototype it.
6493
6494         * dbus/dbus-message.c (dbus_message_type_to_string): New
6495         function, converts message type into C string.
6496
6497         * dbus/dbus-message.h: Prototype it.
6498
6499         * bus/selinux.c (bus_selinux_check): Take source pid,
6500         target pid, and audit data.  Pass audit data to
6501         avc_has_perm.
6502         (log_audit_callback): New function, appends extra
6503         audit information.
6504         (bus_selinux_allows_acquire_service): Also take
6505         service name, add it to audit data.
6506         (bus_selinux_allows_send): Also take message
6507         type, interface, method member, error name,
6508         and destination, and add them to audit data.
6509         (log_cb): Initialize func_audit.
6510         
6511         * bus/selinux.h (bus_selinux_allows_acquire_service)
6512         (bus_selinux_allows_send): Update prototypes 
6513
6514         * bus/services.c (bus_registry_acquire_service): Pass
6515         service name to bus_selinux_allows_acquire_service.
6516
6517         * bus/bus.c (bus_context_check_security_policy): Pass
6518         additional audit data.  Move assignment of dest
6519         to its own line.
6520
6521 2004-11-07  Colin Walters  <walters@verbum.org>
6522
6523         * dbus/dbus-transport-unix.c (do_authentication): Always
6524         initialize auth_completed.
6525         
6526 2004-11-07  Colin Walters  <walters@verbum.org>
6527
6528         * bus/bus.c (load_config): Break into three
6529         separate functions: process_config_first_time_only,
6530         process_config_every_time, and process_config_postinit.
6531         (process_config_every_time): Move call of
6532         bus_registry_set_service_context_table into
6533         process_config_postinit.
6534         (process_config_postinit): New function, does
6535         any processing that needs to happen late
6536         in initialization (and also on reload).
6537         (bus_context_new): Instead of calling load_config,
6538         open config parser here and call process_config_first_time_only
6539         and process_config_every_time directly.  Later, after
6540         we have forked but before changing UID,
6541         invoke bus_selinux_full_init, and then call
6542         process_config_postinit.
6543         (bus_context_reload_config): As in bus_context_new,
6544         load parse file inside here, and call process_config_every_time
6545         and process_config_postinit.
6546
6547         * bus/services.h, bus/services.c
6548         (bus_registry_set_service_context_table): Rename
6549         from bus_registry_set_sid_table.  Take string hash from config
6550         parser, and convert them here into SIDs.
6551
6552         * bus/config-parser.c (struct BusConfigParser): Have
6553         config parser only store a mapping of service->context
6554         string.
6555         (merge_service_context_hash): New function.
6556         (merge_included): Merge context string hashes instead
6557         of using bus_selinux_id_table_union.
6558         (bus_config_parser_new): Don't use bus_selinux_id_table_new;
6559         simply create a new string hash.
6560         (bus_config_parser_unref): Unref it.
6561         (start_selinux_child): Simply insert strings into hash,
6562         don't call bus_selinux_id_table_copy_over.
6563
6564         * bus/selinux.h, bus/selinux.c (bus_selinux_id_table_union)
6565         (bus_selinux_id_table_copy_over): Delete.
6566
6567 2004-11-03  Colin Walters  <walters@verbum.org>
6568
6569         * bus/selinux.c (bus_selinux_pre_init): Kill some unused
6570         variables.
6571         
6572 2004-11-03  Colin Walters  <walters@verbum.org>
6573
6574         * bus/test-main.c (test_pre_hook): Fix test logic,
6575         thanks Joerg Barfurth <Joerg.Barfurth@Sun.COM>.
6576
6577 2004-11-02  Colin Walters  <walters@redhat.com>
6578
6579         * bus/selinux.c (bus_selinux_init): Split into two functions,
6580         bus_selinux_pre_init and bus_selinux_post_init.
6581         (bus_selinux_pre_init): Just determine whether SELinux is
6582         enabled.
6583         (bus_selinux_post_init): Do everything else.
6584
6585         * bus/main.c (main): Call bus_selinux_pre_init before parsing
6586         config file, and bus_selinux_post_init after.  This ensures that
6587         we don't lose the policyreload notification thread that
6588         bus_selinux_init created before forking previously.
6589         
6590         * bus/test-main.c (test_pre_hook): Update for split.
6591
6592 2004-10-31  Owen Fraser-Green  <owen@discobabe.net>
6593
6594         Patch from Johan Fischer <linux@fischaz.com>
6595         
6596         * mono/doc/Makefile.am (install-data-local): Added directory
6597         install for DESTDIR
6598
6599 2004-10-29  Colin Walters  <walters@redhat.com>
6600
6601         * dbus/dbus-sysdeps.h (_dbus_become_daemon): Also take
6602         parameter for fd to write pid to.       
6603
6604         * dbus/dbus-sysdeps.c (_dbus_become_daemon): Implement it.
6605         
6606         * bus/bus.c (bus_context_new): Pass print_pid_fd
6607         to _dbus_become_daemon (bug #1720)
6608
6609 2004-10-29  Colin Walters  <walters@redhat.com>
6610
6611         Patch from Ed Catmur <ed@catmur.co.uk>
6612
6613         * mono/doc/Makefile.am (install-data-local): Handle
6614         DESTDIR.
6615
6616 2004-10-29  Colin Walters  <walters@redhat.com>
6617
6618         * bus/.cvsignore, qt/.cvsignore: Update.
6619
6620 2004-10-29  Colin Walters  <walters@redhat.com>
6621
6622         Patch from Kristof Vansant <de_lupus@pandora.be>
6623
6624         * configure.in: Detect Slackware.
6625         * bus/Makefile.am (SCRIPT_IN_FILES): Add rc.messagebus.in.
6626         * bus/rc.messagebus.in: New file.
6627
6628 2004-10-29  Colin Walters  <walters@redhat.com>
6629
6630         * tools/dbus-monitor.c (filter_func): Return
6631         DBUS_HANDLER_RESULT_HANDLED in filter function
6632         for now.  See:
6633         http://freedesktop.org/pipermail/dbus/2004-August/001433.html
6634
6635 2004-10-29  Colin Walters  <walters@redhat.com>
6636
6637         Patch from Matthew Rickard <mjricka@epoch.ncsc.mil>
6638
6639         * bus/services.c (bus_registry_acquire_service): 
6640         Correctly retrieve service name from DBusString
6641         for printing.
6642
6643 2004-10-29  Colin Walters  <walters@redhat.com>
6644
6645         * dbus/dbus-glib.h: Update documentation to not
6646         refer to internal APIs.
6647
6648 2004-10-27  Joe Shaw  <joeshaw@novell.com>
6649
6650         * mono/Arguments.cs (GetDBusTypeConstructor):
6651         type.UnderlyingSystemType will return "System.Byte" if you do it
6652         on "byte[]", which is not what we want.  So check the type.IsArray
6653         property and use System.Array instead.
6654
6655 2004-10-25  John (J5) Palmieri  <johnp@redhat.com>
6656
6657         * dbus/dbus-sysdeps.c (fill_user_info): On errors do not free
6658         the DBusUserInfo structure since this is passed into the function.
6659         This would cause a double free when the function that allocated
6660         the structure would try to free it when an error occured.
6661
6662         * (bus/session.conf.in, bus/Makefile.am, dbus/configure.in):
6663         use /usr/share/dbus-1/services instead of /usr/lib/dbus-1.0/services
6664         for service activation to avoid 32bit/64bit parallel install issues
6665
6666 2004-10-21  Colin Walters  <walters@verbum.org>
6667
6668         * AUTHORS: Fix my email address, the @gnu.org one
6669         has been bouncing for some time.  Also add J5.
6670         
6671 2004-10-21  Colin Walters  <walters@verbum.org>
6672
6673         * dbus/dbus-transport-unix.c (do_authentication): Return
6674         authentication status to callers.
6675         (unix_handle_watch): If we completed authentication this round,
6676         don't do another read.  Instead wait until the next iteration,
6677         after we've read any pending data in the auth buffer.
6678         (unix_do_iteration): Ditto.
6679         (unix_handle_watch): Updated for new do_authentication prototype.
6680
6681 2004-10-18  Colin Walters  <walters@verbum.org>
6682
6683         * bus/selinux.c (bus_selinux_enabled): Handle
6684         --disable-selinux case.
6685         
6686 2004-10-18  Colin Walters  <walters@verbum.org>
6687
6688         * bus/selinux.h: Add bus_selinux_enabled.
6689         
6690         * bus/selinux.c (bus_selinux_enabled): Implement it.
6691         
6692         * bus/config-parser.c (struct include): Add
6693         if_selinux_enabled member.
6694         (start_busconfig_child): Parse if_selinux_enabled
6695         attribute for include.
6696         (bus_config_parser_content): Handle it.
6697
6698         * bus/session.conf.in, bus/system.conf.in: Add
6699         inclusion of context mapping to default config files;
6700         conditional on SELinux being enabled.
6701         
6702         * doc/busconfig.dtd: Add to if_selinux_enabled to default DTD.
6703         
6704         * test/data/invalid-config-files/badselinux-1.conf, 
6705         test/data/invalid-config-files/badselinux-2.conf:
6706         Test files for bad syntax.
6707         
6708 2004-10-17  Colin Walters  <walters@verbum.org>
6709
6710         * dbus/dbus-memory.c (_dbus_initialize_malloc_debug, check_guards)
6711         (dbus_malloc, dbus_malloc0, dbus_realloc): Fix up printf
6712         format specifier mismatches.
6713
6714 2004-10-07  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6715
6716         * dbus/dbus-sysdeps.c (_dbus_file_get_contents): fix an incorrect
6717         format string.
6718
6719         * glib/dbus-dbus-gmain.c (dbus_g_bus_get): do not mangle NULL
6720         pointer (bug #1540, Leonardo Boiko).
6721
6722 2004-09-28  Jon Trowbridge  <trow@ximian.com>
6723
6724         * mono/BusDriver.cs: Changed BusDriver struct to remove
6725         the ServiceCreated and ServiceDeleted events and replace them
6726         with the new ServiceOwnerChanged event.
6727
6728         * mono/example/BusListener.cs: Added a new example program,
6729         which listens for and reports any ServiceOwnerChanged events
6730         on the bus driver.
6731
6732         * mono/example/Makefile.am (DESTDIR): Build changes for the
6733         new BusListener.cs example.
6734
6735 2004-09-27  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6736
6737         * bus/signals.c (bus_match_rule_parse): validate the components of
6738         match rules (bug #1439).
6739
6740         * dbus/dbus-bus.c (dbus_bus_add_match): add a missing OOM test.
6741
6742 2004-09-24  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6743
6744         * doc/dbus-specification.xml: document ServiceOwnerChanged
6745         signal.
6746         
6747         * bus/driver.c, bus/driver.h, bus/services.c: Use
6748         ServiceOwnerChanged signal instead of ServiceCreated and
6749         ServiceDeleted.
6750         
6751         * bus/dispatch.c: update testcase for the new signal.
6752
6753 2004-09-20  Jon Trowbridge  <trow@ximian.com>
6754
6755         Patch from Nat Friedman <nat@novell.com>
6756
6757         * mono/Makefile.am: A number of small build fixes to allow "make
6758         distcheck" to succeed.
6759
6760         * mono/example/Makefile.am: "make distcheck" fixes.
6761
6762         * mono/AssemblyInfo.cs.in: When signing the assembly, look for the
6763         key in @srcdir@.
6764
6765         * test/Makefile.am: "make distcheck" fixes.
6766
6767 2004-09-17  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6768
6769         * dbus/dbus-sysdeps.c (_dbus_user_at_console): fix memleak in OOM.
6770
6771         * doc/busconfig.dtd: update the DTD for the at_console attribute.
6772
6773         * bus/driver.c (bus_driver_handle_hello): correctly handle Hello
6774         messages after the first one (bug #1389).
6775         
6776         * bus/dispatch.c (check_double_hello_message): add a test case for
6777         the double hello message bug.
6778         (check_existent_service_activation): fix check of spawning error.
6779         
6780 2004-09-16  David Zeuthen  <david@fubar.dk>
6781
6782         * python/dbus_bindings.pyx.in: Add support for int64 and uint64
6783
6784 2004-09-12  David Zeuthen  <david@fubar.dk>
6785
6786         Patch from Kay Sievers <kay.sievers@vrfy.org>
6787
6788         * bus/bus.c (bus_context_new):
6789         * bus/bus.h:
6790         * bus/main.c (usage)
6791         (main):
6792         Add commandline option --nofork to override configuration file
6793         setting.
6794
6795 2004-09-09  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6796
6797         * dbus/dbus-*.h: remove the ; after DBUS_(BEGIN|END)_DECLS. Some C
6798         compilers don't like it (bug #974).
6799
6800 2004-09-04  Harald Fernengel  <harry@kdevelop.org>
6801
6802         * qt/connection.*: Applied patch by Jérôme Lodewyck
6803         <lodewyck@clipper.ens.fr> to integrate an existing
6804         connection into the Qt eventloop
6805
6806 2004-08-30  Jon Trowbridge  <trow@ximian.com>
6807
6808         * mono/BusDriver.cs: Added.  This is a class for interacting with
6809         the org.freedesktop.DBus service.
6810
6811         * mono/Message.cs: Added a mechanism to expose the message that is
6812         currently being dispatched via the static Message.Current
6813         property.  Added Message.Sender and Message.Destination
6814         properties.
6815
6816         * mono/Handler.cs: Expose the dispatched message via
6817         Message.Current when handling method calls.
6818
6819         * mono/Service.cs: Expose the dispatched message via
6820         Message.Current when handling signal emissions.
6821         
6822         * mono/Connection.cs: Bind dbus_bus_get_base_service via the
6823         Connection.BaseService property.
6824
6825 2004-08-28  Havoc Pennington  <hp@redhat.com>
6826
6827         * dbus/dbus-userdb.c (_dbus_is_console_user): remove unused variable
6828
6829         More fixes from Steve Grubb
6830         
6831         * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): fix fd leak
6832         (_dbus_listen_tcp_socket): fix fd leak
6833
6834         * dbus/dbus-spawn.c (read_pid, read_ints): move the "again:" for
6835         EINTR to a bit lower in the code
6836
6837 2004-08-26  Jon Trowbridge  <trow@ximian.com>
6838
6839         * bus/driver.c (bus_driver_handle_service_exists): Respond with
6840         TRUE if we are inquiring about the existence of the built-in
6841         org.freedesktop.DBus service.
6842
6843 2004-08-25  John Palmieri  <johnp@redhat.com>
6844         * bus/config-parser.c:
6845         (struct PolicyType): Add POLICY_CONSOLE
6846         (struct Element.d.policy): s/gid_or_uid/gid_uid_or_at_console
6847         (start_busconfig_child): Sets up console element when
6848         <policy at_console=""> is encountered in a policy file
6849         (append_rule_from_element): Convert console elements to console
6850         rules.
6851
6852         * bus/policy.c: 
6853         (bus_policy_create_client_policy): Add console rules to the client
6854         policy based on if the client is at the console
6855         (bus_policy_append_console_rule): New function for adding a
6856         console rule to a policy
6857         (bus_policy_merge): Handle console rule merging
6858
6859         * dbus/dbus-sysdeps.h: Added the DBUS_CONSOLE_DIR constant
6860         where we check for console user files
6861         
6862         * dbus/dbus-sysdeps.c:
6863         (_dbus_file_exists): New function which checks if the given
6864         file exists
6865         (_dbus_user_at_console): New function which does the system
6866         specific process of checking if the user is at the console
6867
6868         * dbus/dbus-userdb.c:
6869         (_dbus_is_console_user): New function converts a UID to user name
6870         and then calls the system specific _dbus_user_at_console to 
6871         see if the user is at the console and therefor a console user
6872
6873 2004-08-25  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6874
6875         * bus/config-parser.c (set_limit):
6876         * bus/dbus-daemon-1.1.in:
6877         * test/data/valid-config-files/many-rules.conf: set the
6878         max_match_rules_per_connection limt from the config file. 
6879
6880         * doc/busconfig.dtd: update the DTD.
6881
6882         * bus/driver.c: remove some unused variables.
6883
6884 2004-08-24  Mikael Hallendal  <micke@imendio.com>
6885
6886         * dbus/dbus-glib-lowlevel.h: Removed dbus_bus_get_with_g_main since 
6887         it's been replaced by dbus_g_bus_get
6888
6889 2004-08-23  Colin Walters  <walters@redhat.com>
6890
6891         Updated SELinux support from Matthew Rickard <mjricka@epoch.ncsc.mil>
6892
6893         * bus/selinux.h: Prototype bus_selinux_get_policy_root.
6894
6895         * bus/selinux.c: Create a thread for policy reload notification.
6896         (bus_selinux_get_policy_root): Implement.
6897
6898         * bus/config-parser.c (start_busconfig_child)
6899         (bus_config_parser_content): Support SELinux-root relative
6900         inclusion.
6901
6902         * configure.in <HAVE_SELINUX>: Add -lpthread.
6903         
6904         * bus/test-main.c (test_pre_hook, test_post_hook): New.
6905         (test_post_hook): Move memory checking into here.
6906         (test_pre_hook, test_post_hook): Move SELinux checks in
6907         here, but conditional on a DBUS_TEST_SELINUX environment
6908         variable.  Unfortunately we can't run the SELinux checks
6909         as a normal user, since they won't have any permissions
6910         for /selinux.  So this will have to be tested manually
6911         for now, until we have virtualization for most of
6912         libselinux.
6913         
6914 2004-08-23  Havoc Pennington  <hp@redhat.com>
6915
6916         * dbus/dbus-sysdeps.c (_dbus_change_identity): add setgroups() to
6917         drop supplementary groups, suggested by Steve Grubb
6918
6919 2004-08-20  Colin Walters  <walters@redhat.com>
6920
6921         * bus/config-parser.c (start_busconfig_child): Remove some unused
6922         variables.
6923         
6924         * bus/selinux.c (bus_selinux_id_table_insert): Avoid compiler
6925         warning.
6926
6927 2004-08-17  Joe Shaw  <joeshaw@novell.com>
6928
6929         * configure.in: If --enable-mono is passed in, if we can't find
6930         mono error out.
6931
6932         * mono/Makefile.am: Use /gacutil to install assemblies into the
6933         GAC and not /root.
6934
6935 2004-08-12  Havoc Pennington  <hp@redhat.com>
6936
6937         * NEWS: update for 0.22
6938
6939         * configure.in: release 0.22
6940
6941 2004-08-11  Colin Walters  <walters@redhat.com>
6942
6943         * tools/dbus-send.c (main, usage): Add --reply-timeout
6944         argument.
6945
6946 2004-08-10  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6947
6948         * bus/bus.c (process_config_first_time_only): get rid of an unused
6949         DBusError that was causing a memoy leak (bug #989).
6950
6951         * dbus/dbus-keyring.c, dbus/dbus-message.c:
6952         fix compilation on Solaris/Forte C (bug #974)
6953
6954         * bus/main.c (main): plug two minuscule memleaks.
6955
6956 2004-08-10  Havoc Pennington  <hp@redhat.com>
6957
6958         * doc/dbus-tutorial.xml: add some more info on GLib bindings
6959
6960 2004-08-09  Havoc Pennington  <hp@redhat.com>
6961
6962         * COPYING: switch to Academic Free License version 2.1 instead of
6963         2.0, to resolve complaints about patent termination clause.
6964
6965 2004-07-31  John (J5) Palmieri  <johnp@redhat.com>
6966
6967         * README: added documentation for the --enable-python 
6968         configure switch.
6969
6970 2004-07-31  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6971
6972         * bus/config-parser.c (bus_config_parser_new): fix an invalid
6973         _unref in the SELinux support.
6974
6975         * doc/busconfig.dtd: update DTD for SELinux support.
6976
6977         * bus/config-loader-libxml.c: fix error handler and parser
6978         initialisation/cleanup. OOM test now works with libxml2 HEAD.
6979
6980         * configure.in: remove the warning about libxml2.
6981
6982         * dbus/dbus-bus.c: silence doxygen warning.
6983
6984 2004-07-31  Colin Walters  <walters@redhat.com>
6985
6986         * configure.in: Move #error in SELinux check to its own line.
6987
6988 2004-07-31  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6989
6990         * dbus/dbus-internals.h (_DBUS_SET_OOM):
6991         * bus/utils.h (BUS_SET_OOM): use dbus_error_set_const instead of
6992         dbus_error_set.
6993
6994         * bus/dispatch.c (check_send_exit_to_service): fix the test case,
6995         broken by the change in the _SET_OOM macros.
6996
6997 2004-07-31  Colin Walters  <walters@redhat.com>
6998
6999         * bus/selinux.c <HAVE_SELINUX>: Include utils.h to get
7000         BUS_SET_OOM.
7001
7002 2004-07-31  Colin Walters  <walters@redhat.com>
7003
7004         * configure.in: Use AC_TRY_COMPILE instead of AC_EGREP_HEADER
7005         to correctly detect DBUS__ACQUIRE_SVC.  Also add an
7006         AC_MSG_CHECKING.
7007
7008 2004-07-24  Havoc Pennington  <hp@redhat.com>
7009
7010         SELinux support from Matthew Rickard <mjricka@epoch.ncsc.mil>
7011
7012         * bus/selinux.c, bus/selinux.h: new file encapsulating selinux
7013         functionality
7014
7015         * configure.in: add --enable-selinux
7016         
7017         * bus/policy.c (bus_policy_merge): add FIXME to a comment
7018
7019         * bus/main.c (main): initialize and shut down selinux
7020
7021         * bus/connection.c: store SELinux ID on each connection, to avoid 
7022         repeated getting of the string context and converting it into 
7023         an ID
7024
7025         * bus/bus.c (bus_context_get_policy): new accessor, though it
7026         isn't used
7027         (bus_context_check_security_policy): check whether the security
7028         context of sender connection can send to the security context of
7029         recipient connection
7030
7031         * bus/config-parser.c: add parsing for <selinux> and <associate>
7032         
7033         * dbus/dbus-transport.c (_dbus_transport_get_unix_fd): to
7034         implement dbus_connection_get_unix_fd()
7035
7036         * dbus/dbus-connection.c (dbus_connection_get_unix_fd): new
7037         function, used by the selinux stuff
7038         
7039 2004-07-29  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7040
7041         * bus/config-loader-libxml.c: complete the implementation of
7042         libxml backend for config file loader. Doesn't work with full OOM
7043         test yet. 
7044         
7045         * configure.in: change error when selecting libxml into a warning.
7046         
7047         * test/data/invalid-config-files: add two non-well-formed XML
7048         files. 
7049         
7050         * glib/Makefile.am: libdbus_gtool always uses expat, not libxml.
7051         
7052         * dbus/dbus-transport-unix.c (unix_handle_watch): do not
7053         disconnect in case of DBUS_WATCH_HANGUP, several do_reading() may
7054         be necessary to read all the buffer. (bug #894)
7055
7056         * bus/activation.c (bus_activation_activate_service): fix a
7057         potential assertion failure (bug #896). Small optimization in the
7058         case of auto-activation messages.
7059
7060         * dbus/dbus-message.c (verify_test_message, _dbus_message_test):
7061         add test case for byte-through-vararg bug (#901). patch by Kimmo
7062         Hämäläinen. 
7063
7064 2004-07-28  Anders Carlsson  <andersca@gnome.org>
7065
7066         * python/dbus.py:
7067         * python/dbus_bindings.pyx.in:
7068         Add dbus.init_gthreads (), allow emit_signal to pass
7069         arguments to the signal.
7070         
7071 2004-07-24  Havoc Pennington  <hp@redhat.com>
7072
7073         * AUTHORS: add some people, not really comprehensively, let me
7074         know if I missed you
7075
7076 2004-07-24  Havoc Pennington  <hp@redhat.com>
7077
7078         * Makefile.am (DIST_SUBDIRS): add DIST_SUBDIRS, problem solved by
7079         Owen
7080
7081         * test/Makefile.am (DIST_SUBDIRS): here also
7082
7083 2004-07-22  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7084
7085         * dbus/dbus-sysdeps.c (fill_user_info): fix inexistent label name,
7086         breaking build on Solaris, reported by Farhad Saberi on the ML.
7087
7088         * dbus/dbus-message.c (dbus_message_append_args_valist): fix the
7089         va_arg invocation to account for integer promotion in the case of
7090         DBUS_TYPE_BYTE (unsigned char is promoted to int). (bug #901)
7091
7092         * bus/services.c (bus_service_remove_owner): fix bug #902, use
7093         _dbus_list_get_first_link, not _dbus_list_get_first.
7094
7095         * dbus/dbus-bus.c (dbus_bus_service_exists): plug a memory leak.
7096
7097         * dbus/dbus-object-tree.c (free_subtree_recurse): always null
7098         handler functions so that the asserts in _dbus_object_subtree_unref
7099         do not fail.
7100
7101         * dbus/dbus-transport-unix.c (do_reading):
7102         _dbus_transport_queue_messages return value is of type
7103         dbus_bool_t, not DBusDispatchStatus.
7104         
7105 2004-07-19  David Zeuthen  <david@fubar.dk>
7106
7107         * dbus/dbus-protocol.h: Add DBUS_ERROR_UNIX_PROCESS_ID_UNKNOWN
7108
7109         * bus/dispatch.c:
7110         (check_get_connection_unix_user): Debug says GetProperty; but the
7111         method is called GetConnectionUnixUser
7112         (check_get_connection_unix_process_id): New function
7113         (bus_dispatch_test): Actually call check_get_connection_unix_user();
7114         also call check_get_connection_unix_process_id()
7115         
7116         * bus/driver.c:
7117         (bus_driver_handle_get_connection_unix_process_id): New function,
7118         handles GetConnectionUnixProcessID on the org.freedesktop.DBus
7119         interface
7120         
7121         * dbus/dbus-auth.c:
7122         (handle_server_data_external_mech): Set pid from the credentials
7123         obtained from the socket
7124         
7125         * dbus/dbus-connection.c:
7126         (dbus_connection_get_unix_process_id): New function
7127         
7128         * dbus/dbus-connection.h: 
7129         Add prototype for dbus_connection_get_unix_process_id
7130         
7131         * dbus/dbus-transport.c:
7132         (_dbus_transport_get_unix_process_id): New function
7133         
7134         * dbus/dbus-transport.h:
7135         Add prototype for _dbus_transport_get_unix_process_id
7136         
7137 2004-07-19  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7138
7139         * dbus/dbus-message.c: Message counter fix, patch by Christian
7140         Hammond <chipx86@gnupdate.org>
7141
7142 2004-07-18  Seth Nickell  <seth@gnome.org>
7143
7144         * python/dbus.py:
7145         * python/dbus_bindings.pyx.in:
7146         * python/tests/test-client.py:
7147
7148         Add dbus.ByteArray and dbus_bindings.ByteArray
7149         types so that byte streams can be passed back.
7150
7151         Give jdahlin the heaps of credit that are so
7152         rightfully his.
7153         
7154 2004-07-12  Seth Nickell  <seth@gnome.org>
7155
7156         * python/dbus.py:
7157
7158         Add message argument to the default object_method_handler
7159         function.
7160         
7161         * python/dbus_bindings.pyx.in:
7162
7163         Automatically return NIL when passed an empty list
7164         (we can't pass back a list since lists are typed
7165         and we don't have any idea what type the the client
7166         intended the list to be... :-( )
7167         
7168 2004-07-10  Seth Nickell  <seth@gnome.org>
7169
7170         * python/examples/Makefile.am:
7171
7172         Fix distcheck breakage caused by new examples.
7173
7174 2004-07-10  Seth Nickell  <seth@gnome.org>
7175
7176         * python/dbus.py:
7177
7178         Add "message" argument to service-side dbus.Object
7179         methods. This will break existing services written
7180         using the python bindings, but will allow extraction
7181         of all the message information (e.g. who its from).
7182
7183         Add improved "object oriented" signal handling/emission.
7184         
7185         * python/examples/example-service.py:
7186
7187         Nix this example.
7188         
7189         * python/examples/example-signal-emitter.py:
7190         * python/examples/example-signal-recipient.py:
7191
7192         Two new examples that show how to emit and receive
7193         signals using the new APIs.
7194         
7195         * python/examples/example-signals.py:
7196         * python/examples/gconf-proxy-service.py:
7197         * python/examples/gconf-proxy-service2.py:
7198
7199         Add "message" argument to service methods.
7200
7201 2004-06-28  Kay Sievers <kay.sievers@vrfy.org>
7202
7203         * bus/driver.c (bus_driver_handle_get_connection_unix_user)
7204         * dbus/bus.c (dbus_bus_get_unix_user)
7205         * doc/dbus-specification.xml: implement GetConnectionUnixUser
7206         method of org.freedesktop.DBus interface.
7207
7208         * bus/dispatch.c: test case
7209
7210 2004-06-23  John (J5) Palmieri  <johnp@redhat.com>
7211
7212         * python/Makefile.am: switched include directory from glib/ to dbus/
7213         since dbus-glib.h moved
7214  
7215 2004-06-22  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7216
7217         * configure.in: prevent building the gcj stuff and libxml loader
7218         since they are broken.
7219
7220 2004-06-20  Havoc Pennington  <hp@redhat.com>
7221
7222         * dbus/dbus-glib-error-enum.h: autogenerate the GError enum 
7223         codes from the dbus error names
7224         
7225         * glib/dbus-glib.h: move to subdir dbus/ since it's included 
7226         as dbus/dbus-glib.h and that breakage is now visible due to 
7227         including dbus/dbus-glib.h in dbus-glib-lowlevel.h
7228         
7229         * glib/dbus-glib.h: s/gproxy/g_proxy/
7230
7231         * dbus/dbus-shared.h: new header to hold stuff shared with
7232         binding APIs
7233         
7234         * dbus/dbus-protocol.h (DBUS_ERROR_*): move errors here rather
7235         than dbus-errors.h
7236
7237         * glib/dbus-glib.h (dbus_set_g_error): move to
7238         dbus-glib-lowlevel.h
7239
7240         * glib/dbus-glib.h: remove dbus/dbus.h from here; change a bunch
7241         of stuff to enable this
7242
7243         * dbus/dbus-glib-lowlevel.h: put dbus/dbus.h here
7244
7245         * a bunch of other changes with the same basic "separate glib 
7246         bindings from dbus.h" theme
7247         
7248 2004-06-10  Owen Fraser-Green  <owen@discobabe.net>
7249
7250         * dbus-sharp.pc.in: Removed glib-sharp inclusion in Libs.
7251
7252         * python/examples/Makefile.am: Fixed typo in EXTRA_DIST.
7253
7254 2004-06-09  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7255
7256         * bus/driver.c, dbus/dbus-bus.c: use BOOLEAN instead of UINT32 for
7257         the reply value of the ServiceExists message.
7258
7259 2004-06-07  John (J5) Palmieri  <johnp@redhat.com>
7260
7261         * python/dbus_bindings.pyx.in: No longer need to parse path
7262         elements and pass them as arrays of strings.  The C API now
7263         accepts plain path strings.
7264         (_build_parsed_path): removed 
7265
7266 2004-06-07  Havoc Pennington  <hp@redhat.com>
7267
7268         * doc/TODO: remove auto-activation item since it's done; sort
7269         items by importance/milestone
7270
7271 2004-06-07  Havoc Pennington  <hp@redhat.com>
7272
7273         * dbus/dbus-message-builder.c (_dbus_message_data_load): append
7274         random signature when using REQUIRED_FIELDS (this hack won't work
7275         in the long term)
7276
7277         * dbus/dbus-message.c: change the signature to be a header field,
7278         instead of message->signature special-case string. Incremental
7279         step forward. Then we can fix up code to send the signature in the
7280         message, then fix up code to validate said signature, then fix up
7281         code to not put the typecodes inline, etc.
7282         (load_one_message): don't make up the signature after the fact
7283         (decode_header_data): require signature field for the known
7284         message types
7285
7286         * dbus/dbus-marshal.c (_dbus_marshal_string_len): new
7287
7288         * dbus/dbus-protocol.h: add DBUS_HEADER_FIELD_SIGNATURE
7289
7290 2004-06-07  Owen Fraser-Green  <owen@discobabe.net>
7291
7292         * mono/DBusType/ObjectPath.cs: Renamed PathName argument to Path
7293
7294         * mono/Handler.cs: Updated to follow new path argument for
7295         (un-)registering objects.
7296
7297         * mono/example/Makefile.am:
7298         * mono/Makefile.am:
7299         * configure.in: Bumped required version for mono and use new -pkg
7300         syntax for deps
7301
7302 2004-06-05  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7303
7304         * dbus/dbus-connection.h, dbus/dbus-connection.c: have object path
7305         registration functions take the path argument as char* instead of
7306         char**.
7307
7308         * dbus/dbus-marshal.h, dbus/dbus-marshal.c (_dbus_decompose_path):
7309         split off the path decompostion part of
7310         _dbus_demarshal_object_path. Some misc. fixes to silence compiler
7311         warnings. 
7312
7313         * glib/dbus-gobject.c, test/test-service.c: update accordingly.
7314         
7315 2004-06-02  Kristian Høgsberg  <krh@redhat.com>
7316  
7317         * dbus/dbus-auth.c: Rewrite auth protocol handling to use a state
7318         machine approach.  A state is implemented as a function that
7319         handles incoming events as specified for that state.
7320         
7321         * doc/dbus-specification.xml: Update auth protocol state machine
7322         specification to match implementation.  Remove some leftover
7323         base64 examples.
7324
7325 2004-06-02  Kristian Høgsberg  <krh@redhat.com>
7326
7327         * glib/dbus-gproxy.c, glib/dbus-gmain.c, dbus/dbus-string.c,
7328         dbus/dbus-object-tree.c, dbus/dbus-message.c: add comments to
7329         quiet doxygen.
7330
7331         * Doxyfile.in: remove deprecated options.
7332
7333         * dbus/dbus-message-handler.c, dbus/dbus-message-handler.h,
7334         glib/test-thread.h, glib/test-thread-client.c,
7335         glib/test-thread-server.c, glib/test-profile.c,
7336         glib/test-dbus-glib.c: remove these unused files.
7337
7338 2004-06-01  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7339
7340         * dbus/dbus-object-tree.c
7341         (_dbus_object_tree_dispatch_and_unlock): fix dispatch for
7342         non-fallback handlers (bug #684).
7343         (_dbus_object_subtree_new): initialize invoke_as_fallback field.
7344         (find_subtree_recurse): report wether the returned subtree is an
7345         exact match or a "fallback" match higher up in the tree.
7346         (object_tree_test_iteration): update test case.
7347
7348 2004-06-01  Seth Nickell  <seth@gnome.org>
7349
7350         * python/dbus_bindings.pyx.in:
7351         * python/tests/test-client.py:
7352
7353         Round off basic type support. Add dicts (yay!), and 
7354         remaining array types.
7355
7356         Make MessageIter more general so it works for dicts too.
7357
7358         Mark all loop variables as C integers.
7359         
7360 2004-05-31  Havoc Pennington  <hp@redhat.com>
7361
7362         * glib/dbus-gidl.c (method_info_add_arg): keep args sorted with
7363         "in" before "out"
7364
7365         * glib/dbus-gobject.c (dbus_type_to_string): move to dbus-gutils.c
7366
7367         * glib/dbus-glib-tool.c (main): set up to have a --self-test
7368         option that runs the tests, and start filling in some code
7369         including for starters just dumping the interfaces to stdout
7370
7371         * glib/Makefile.am (INCLUDES): define DBUS_LOCALEDIR
7372
7373         * test/data/valid-introspection-files/lots-of-types.xml: test of
7374         an example introspection file
7375
7376         * glib/dbus-gparser.c (parser_check_doctype): doctype should be
7377         "node" (I think...)
7378
7379 2004-05-31  Seth Nickell  <seth@gnome.org>
7380
7381         * python/dbus_bindings.pyx.in:
7382         * python/tests/test-client.py:
7383
7384         Test Suite: 1
7385         Python Bindings: 0
7386
7387         Fix string array memory trashing bug... oops...
7388
7389 2004-05-30  Seth Nickell  <seth@gnome.org>
7390
7391         * python/dbus.py:
7392
7393         Add a nicer-but-less-flexible alternate API for handling 
7394         calls to virtual objects in dbus.ObjectTree.
7395
7396         Screw up the argument order to the dbus.Object constructor
7397         for consistency with dbus.ObjectTree (and to make dbus_methods
7398         optional for future extension)
7399         
7400         * python/examples/Makefile.am:
7401         * python/examples/gconf-proxy-service.py:
7402         * python/examples/gconf-proxy-service2.py:
7403
7404         Alternate implementation of gconf-proxy-service using the
7405         nicer dbus.ObjectTree API.
7406         
7407         * python/examples/example-service.py:
7408         * python/tests/test-server.py
7409
7410         Reverse the argument order to deal with dbus.Object constructor
7411         changes.
7412         
7413 2004-05-30  Seth Nickell  <seth@gnome.org>
7414
7415         * python/examples/example-client.py:
7416         * python/examples/example-service.py:
7417
7418         Take it back. Lists seem to work but they're broken
7419         in the test suite. Make the base examples use
7420         lists (works fine).
7421
7422 2004-05-30  Seth Nickell  <seth@gnome.org>
7423
7424         * python/dbus_bindings.pyx.in:
7425         * python/tests/test-client.py:
7426
7427         Add some more tests and fix errors that crop up.
7428         Unfortunately, currently it seems like marshalling
7429         and unmarshalling of lists is completely broken :-(
7430
7431 2004-05-30  Seth Nickell  <seth@gnome.org>
7432
7433         * python/dbus_bindings.pyx.in:
7434
7435         Add support for ObjectPath type.
7436
7437         * python/dbus.py:
7438
7439         Refactor message handling code to a common function.
7440         
7441         * python/tests/test-client.py:
7442         * python/tests/test-server.py:
7443
7444         Add tests that check to make sure values of all types
7445         can be echoed from a service w/o mangling.
7446         
7447 2004-05-29  Seth Nickell  <seth@gnome.org>
7448
7449         * python/dbus.py:
7450
7451         Add ObjectTree class which allows implementation
7452         of trees of "virtual" objects. Basically the python
7453         wrapper for "register_fallback".
7454         
7455         * python/examples/Makefile.am
7456         * python/examples/gconf-proxy-client.py:
7457         * python/examples/gconf-proxy-service.py:
7458
7459         Implement a simple GConf proxy service that supports
7460         get/set on string and int GConf keys using the ObjectTree.
7461         
7462 2004-05-29  Seth Nickell  <seth@gnome.org>
7463
7464         * python/dbus.py:
7465         * python/examples/example-client.py:
7466         * python/examples/example-service.py:
7467         * python/examples/list-system-services.py:
7468
7469         Add SessionBus, SystemBus and ActivationBus classes
7470         so you don't need to know the special little BUS_TYPE
7471         flag.
7472         
7473 2004-05-29  Havoc Pennington  <hp@redhat.com>
7474
7475         * bus/config-parser.c (process_test_valid_subdir): temporarily
7476         stop testing config parser OOM handling, since expat has issues
7477         http://freedesktop.org/pipermail/dbus/2004-May/001153.html
7478
7479         * bus/dbus-daemon-1.1.in: change requested_reply to
7480         send_requested_reply/receive_requested_reply so we can send the
7481         replies, not just receive them.
7482
7483         * bus/config-parser.c: parse the new
7484         send_requested_reply/receive_requested_reply
7485
7486         * bus/policy.c (bus_client_policy_check_can_send): add
7487         requested_reply argument and use it
7488
7489         * bus/bus.c (bus_context_check_security_policy): pass through
7490         requested_reply status to message send check
7491
7492         * bus/system.conf.in: adapt to requested_reply change
7493         
7494 2004-05-28  Havoc Pennington  <hp@redhat.com>
7495
7496         * test/glib/test-service-glib.c (main): remove unused variable
7497
7498         * glib/dbus-gidl.c (base_info_ref): fix a silly compiler warning
7499
7500         * dbus/dbus-auth.h (enum): remove AUTHENTICATED_WITH_UNUSED_BYTES
7501         from the enum, no longer in use.
7502
7503         * dbus/dbus-sysdeps.h: include config.h so DBUS_VA_COPY actually
7504         works right.
7505
7506         * dbus/dbus-message.c: add various _dbus_return_val_if_fail for
7507         whether error_name passed in is a valid error name.
7508
7509 2004-05-28  John (J5) Palmieri  <johnp@redhat.com>
7510
7511         * dbus/dbus-message.c (dbus_message_get_args): Added support for
7512         OBJECT_PATH and OBJECT_PATH_ARRAY
7513
7514 2004-05-28  Seth Nickell  <seth@gnome.org>
7515
7516         * python/examples/Makefile.am:
7517
7518         Forget to add Makefile.am. Do not pass go.
7519
7520 2004-05-28  Michael Meeks  <michael@ximian.com>
7521
7522         * glib/dbus-gvalue.c (dbus_gvalue_marshal, dbus_gvalue_demarshal): 
7523         fix no int64 case.
7524
7525         * dbus/dbus-string.c (_dbus_string_parse_basic_type): impl.
7526
7527         * dbus/dbus-message.c (_dbus_message_iter_get_basic_type),
7528         (_dbus_message_iter_get_basic_type_array): impl.
7529         drastically simplify ~all relevant _get methods to use these.
7530         (_dbus_message_iter_append_basic_array),
7531         (dbus_message_iter_append_basic): impl
7532         drastically simplify ~all relevant _append methods to use these.
7533
7534         * dbus/dbus-message-builder.c (parse_basic_type) 
7535         (parse_basic_array, lookup_basic_type): impl.
7536         (_dbus_message_data_load): prune scads of duplicate /
7537         cut & paste coding.
7538
7539         * dbus/dbus-marshal.c (_dbus_demarshal_basic_type_array) 
7540         (_dbus_demarshal_basic_type): implement,
7541         (demarshal_and_validate_len/arg): beef up debug.
7542         (_dbus_marshal_basic_type, _dbus_marshal_basic_type_array): impl.
7543
7544 2004-05-27  Seth Nickell  <seth@gnome.org>
7545
7546         * configure.in:
7547         * python/Makefile.am:
7548
7549         Include the example python apps in the tarball.
7550         
7551         * python/examples/list-system-services.py
7552
7553         Add a python new example that fetches the list of services
7554         from the system bus.
7555         
7556 2004-05-27  Seth Nickell  <seth@gnome.org>
7557
7558         * python/dbus.py:
7559         * python/dbus_bindings.pyx.in:
7560
7561         Fix failure to notify that a signal was not handled,
7562         resulted in hung functions.
7563         
7564 2004-05-25  Colin Walters  <walters@redhat.com>
7565
7566         * tools/dbus-monitor.c (main): Monitor all types of messages.
7567
7568 2004-05-23  Owen Fraser-Green  <owen@discobabe.net>
7569
7570         * mono/Handler.cs, mono/Service.cs: Added UnregisterObject method
7571         which unregisters the object path and disposes the handler.
7572
7573 2004-05-23  Kristian Høgsberg  <krh@redhat.com>
7574  
7575         Patch from Timo Teräs <ext-timo.teras@nokia.com> (#614):
7576          
7577         * dbus/dbus-message.c (dbus_message_iter_get_args_valist): Swap
7578         operands to && so we call dbus_message_iter_next () for the last
7579         argument also.
7580
7581 2004-05-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7582
7583         * dbus/dbus-object-tree.c
7584         (_dbus_object_tree_list_registered_unlock, lookup_subtree): return
7585         children even if the requested path isn't registered.
7586         (object_tree_test_iteration): test object_tree_list_registered.
7587
7588         * configure.in: undefine HAVE_ABSTRACT_SOCKETS instead of defining
7589         it to 0.
7590         
7591 2004-05-20  Kristian Høgsberg  <krh@redhat.com>
7592
7593         * doc/TODO: Remove resolved items.
7594
7595         * bus/expirelist.h (struct BusExpireList): remove unused n_items
7596         field.
7597         
7598         * bus/connection.c (bus_connections_expect_reply): Enforce the
7599         per-connection limit on pending replies.
7600         
7601         Patch from Jon Trowbridge <trow@ximian.com>:
7602  
7603         * bus/main.c (setup_reload_pipe): Added.  Creates a pipe and sets
7604         up a watch that triggers a config reload when one end of the pipe
7605         becomes readable.
7606         (signal_handler): Instead of doing the config reload in our SIGHUP
7607         handler, just write to the reload pipe and let the associated
7608         watch handle the reload when control returns to the main loop.
7609  
7610         * bus/driver.c (bus_driver_handle_reload_config): Added.
7611         Implements a ReloadConfig method for requesting a configuration
7612         file reload via the bus driver.
7613  
7614 2004-05-19  Owen Fraser-Green  <owen@discobabe.net>
7615
7616         * HACKING: Updated release instructions concerning the wiki page.
7617
7618 2004-05-18  Kristian Høgsberg  <krh@redhat.com>
7619
7620         * dbus/dbus-auth.c (client_try_next_mechanism): Remove logic to
7621         filter against auth->allowed_mechs; we only add allowed mechs in
7622         record_mechanisms().
7623  
7624         * dbus/dbus-auth-script.c (_dbus_auth_script_run): Add an
7625         ALLOWED_MECHS to auth-script format so we can set the list of
7626         allowed mechanisms.
7627  
7628         * data/auth/client-out-of-mechanisms.auth-script: New test to
7629         check client disconnects when it is out of mechanisms to try.
7630  
7631         * dbus/dbus-auth.c (process_command): Remove check for lines
7632         longer that 1 MB; we only buffer up maximum 16 kB.
7633  
7634         * dbus/dbus-transport.c, dbus/dbus-transport-unix.c,
7635         dbus/dbus-auth-script.c, dbus/dbus-auth.c, dbus/dbus-auth.h:
7636         Remove auth state AUTHENTICATED_WITH_UNUSED_BYTES, instead always
7637         assume there might be unused bytes.
7638  
7639         * dbus/dbus-auth.c (_dbus_auth_do_work): Remove check for
7640         client-out-of-mechs, it is handled in process_reject(). Move check
7641         for max failures to send_rejected(), as it's a server-only thing.
7642
7643         * dbus/dbus-auth.c: Factor out protocol reply code into functions
7644         send_auth(), send_data(), send_rejected(), send_error(),
7645         send_ok(), send_begin() and send_cancel().
7646
7647 2004-05-17  Kristian Høgsberg  <krh@redhat.com>
7648
7649         Remove base64 encoding, replace with hex encoding. Original patch
7650         from trow@ximian.com, added error handling.
7651
7652         * dbus/dbus-string.c (_dbus_string_base64_encode)
7653         (_dbus_string_base64_decode): Remove.
7654         (_dbus_string_hex_decode): Add end_return argument so we can
7655         distinguish between OOM and invalid hex encoding.
7656         (_dbus_string_test): Remove base64 tests and add test case for
7657         invalid hex.
7658
7659         * dbus/dbus-keyring.c, dbus/dbus-auth-script.c, dbus/dbus-auth.c:
7660         Replace base64 with hex.
7661
7662         * test/data/auth/invalid-hex-encoding.auth-script: New test case
7663         for invalid hex encoded data in auth protocol.
7664
7665 2004-05-17  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7666
7667         * dbus/dbus-connection.c (check_for_reply_unlocked): plug a memory
7668         leak.
7669
7670 2004-05-15  Owen Fraser-Green  <owen@discobabe.net>
7671
7672         * mono/dbus-sharp.dll.config.in: Added for GAC
7673         * mono/dbus-sharp.snk: Added for GAC
7674         * mono/Assembly.cs.in: Added for GAC
7675         * mono/Makefile.am: Changes for GAC installation        
7676         * configure.in: Added refs for dbus-sharp.dll.config.in and
7677         Assembly.cs.in. More fixes for mono testing
7678         * mono/example/Makefile.am: Changed var to CSC
7679         * Makefile.am: Changed flag name to DBUS_USE_CSC
7680
7681 2004-05-15  Owen Fraser-Green  <owen@discobabe.net>
7682
7683         * mono/Makefile.am: Added SUBDIRS for docs. Changed SUBDIRS order
7684         * mono/doc/*: Added documentation framework
7685         * configure.in: Added monodoc check
7686         * README: Added description of mono configure flags
7687
7688 2004-05-11  John (J5) Palmieri  <johnp@redhat.com>:
7689
7690         * doc/dbus-specification.xml: Added a "Required" column to the 
7691         header fields table and changed the "zero or more" verbage in
7692         the above paragraph to read "The header must contain the required 
7693         named header fields and zero or more of the optional named header 
7694         fields".
7695         * test/data/invalid-messages/*.message: Added the required PATH 
7696         named header field to the tests so that they don't fail on 
7697         'Missing path field'
7698
7699 2004-05-07  John (J5) Palmieri  <johnp@redhat.com>
7700
7701         * python/dbus-bindings.pyx.in: Stopped the bindings from trashing
7702         the stack by implicitly defining variable and parameter types and
7703         removing the hack of defining C pointers as python objects and later
7704         casting them.
7705
7706 2004-05-02  Owen Fraser-Green  <owen@discobabe.net>
7707
7708         * mono/Makefile.am: Removed test-dbus-sharp.exe from all target
7709
7710 2004-05-01  Owen Fraser-Green  <owen@discobabe.net>
7711
7712         * mono/DBusType/Dict.cs: Handle empty dicts
7713         * mono/DBusType/Array.cs: Handle empty arrays
7714         * mono/Arguments.cs: Handle empty arguments
7715
7716 2004-04-30  Owen Fraser-Green  <owen@discobabe.net>
7717
7718         * dbus-sharp.pc.in: Modified to include include Libs and Requires
7719         field
7720
7721 2004-04-25  Kristian Høgsberg  <krh@redhat.com>
7722
7723         * test/data/valid-messages/standard-*.message: Update message
7724         test scripts to new header field names.
7725
7726 2004-04-22  John (J5) Palmieri  <johnp@redhat.com>
7727
7728         * test/break-loader.c (randomly_do_n_things): tracked down buffer
7729         overflow to times_we_did_each_thing array which would chop off the
7730         first character of the failure_dir string. Increased the size of
7731         the array to 7 to reflect the number of random mutation functions
7732         we have.
7733
7734 2004-04-21  Kristian Høgsberg  <krh@redhat.com>
7735
7736         * dbus/dbus-server-unix.c (unix_finalize): Don't unref
7737         unix_server->watch here, it is unreffed in disconnect.
7738         (_dbus_server_new_for_tcp_socket): convert NULL host to
7739         "localhost" here so we don't append NULL to address.
7740         
7741         * dbus/dbus-server.c (_dbus_server_test): Add test case for
7742         various addresses, including tcp with no explicit host.
7743
7744 2004-04-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7745
7746         * dbus/dbus-message.c (decode_header_data, decode_string_field):
7747         fix incorrect setting of .name_offset in the HeaderField (it was
7748         off by two bytes, positioned right after the name and typecode)
7749
7750         * bus/bus.c (bus_context_new, bus_context_unref): test before
7751         calling dbus_server_free_data_slot and _dbus_user_database_unref
7752         in case of an error.
7753
7754         * tools/Makefile.am: add $(DBUS_GLIB_TOOL_LIBS), xml libs needed
7755         by libdbus-gtool.
7756
7757 2004-04-19  Kristian Høgsberg  <krh@redhat.com>
7758
7759         * dbus/dbus-transport-unix.c (unix_do_iteration): Rewrite to use
7760         _dbus_poll() instead of select().
7761
7762 2004-04-15  Jon Trowbridge  <trow@ximian.com>
7763
7764         * bus/main.c (signal_handler): Reload the configuration files
7765         on SIGHUP.
7766         (main): Set up our SIGHUP handler.
7767
7768         * bus/bus.c (struct BusContext): Store the config file, user and
7769         fork flag in the BusContext.
7770         (process_config_first_time_only): Added.  Contains the code
7771         (previously in bus_context_new) for setting up the BusContext from
7772         the BusConfigParser that should only be run the first time the
7773         config files are read.
7774         (process_config_every_time): Added.  Contains the code (previously
7775         in bus_context_new) for setting up the BusContext from the
7776         BusConfigParser that should be run every time the config files are
7777         read.
7778         (load_config): Added.  Builds a BusConfigParser from the config
7779         files and passes the resulting structure off to
7780         process_config_first_time_only (assuming this is the first time)
7781         and process_config_every_time.
7782         (bus_context_new): All of the config-related code has been moved
7783         to process_config_first_time_only and process_config_every_time.
7784         Now this function just does the non-config-related initializations
7785         and calls load_config.
7786         (bus_context_reload_config): Added.
7787
7788 2004-04-15  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7789
7790         * bus/driver.c (bus_driver_handle_get_service_owner):
7791         implement a GetServiceOwner method.
7792         * doc/dbus-specification.xml: document it.
7793         * dbus/dbus-errors.h: add a 'ServiceHasNoOwner' error.
7794         
7795         * glib/dbus-gproxy.c (dbus_gproxy_new_for_service_owner):
7796         implement, using the bus GetServiceOwner method.
7797
7798         * test/glib/test-dbus-glib.c:
7799         use dbus_gproxy_new_for_service_owner so that we can receive the
7800         signal. 
7801
7802 2004-04-15  John (J5) Palmieri  <johnp@redhat.com>
7803
7804         * dbus/dbus-internals.c, dbus/dbus-message-builder.c,
7805         dbus/dbus-message.c, dbus/dbus-protocol.h
7806         (DBUS_HEADER_FIELD_SERVICE): renamed DBUS_HEADER_FIELD_DESTINATION
7807
7808         * dbus/dbus-internals.c, dbus/dbus-message-builder.c,
7809         dbus/dbus-message.c, dbus/dbus-protocol.h
7810         (DBUS_HEADER_FIELD_SENDER_SERVICE): renamed DBUS_HEADER_FIELD_SENDER
7811
7812         * dbus/dbus-internals.c (_dbus_header_field_to_string):
7813         DBUS_HEADER_FIELD_DESTINATION resolves to "destination"
7814         DBUS_HEADER_FIELD_SENDER resolves to "sender"
7815
7816         * doc/dbus-specification.xml (Header Fields Table):
7817         s/SERVICE/DESTINATION
7818         s/SENDER_SERVICE/SENDER
7819
7820
7821 2004-04-14  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7822
7823         * test/glib/test-dbus-glib.c (timed_exit): fail the test after
7824         a few seconds.
7825
7826 2004-04-13  Michael Meeks  <michael@ximian.com>
7827
7828         * glib/dbus-gobject.c (handle_introspect): split out
7829         (introspect_properties): this.
7830         (handle_introspect): implement this.
7831
7832         * test/glib/Makefile.am: use the absolute path so the bus
7833         daemon's chdir ("/") doesn't kill us dead.
7834
7835         * configure.in: subst ABSOLUTE_TOP_BUILDDIR
7836
7837 2004-04-12  Jon Trowbridge  <trow@ximian.com>
7838
7839         * bus/config-parser.c (struct BusConfigParser): Added
7840         included_files field.
7841         (seen_include): Added.  Checks whether or not a file has already
7842         been included by any parent BusConfigParser.
7843         (bus_config_parser_new): Copy the parent's included_files.
7844         (include_file): Track which files have been included, and fail on
7845         circular inclusions.
7846         (process_test_valid_subdir): Changed printf to report if we are
7847         testing valid or invalid conf files.
7848         (all_are_equiv): Changed printf to be a bit clearer about
7849         what we are actually doing.
7850         (bus_config_parser_test): Test invalid configuration files.
7851
7852 2004-04-09  Jon Trowbridge  <trow@ximian.com>
7853
7854         * bus/config-parser.c (bus_config_parser_new): Added a 'parent'
7855         argument.  If non-null, the newly-constructed BusConfigParser will
7856         be initialized with the parent's BusLimits instead of the default
7857         values.
7858         (include_file): When including a config file, pass in
7859         the current parser as the parent and then copy the BusLimits
7860         from the included BusConfigParser pack to the current parser.
7861         (process_test_valid_subdir): Renamed from process_test_subdir.
7862         (process_test_equiv_subdir): Added.  Walks through a directory,
7863         descending into each subdirectory and loading the config files
7864         it finds there.  If any subdirectory contains two config files
7865         that don't produce identical BusConfigParser structs, fail.
7866         For now, the BusConfigParser's BusPolicies are not compared.
7867         (bus_config_parser_test): Call both process_test_valid_subdir and
7868         process_test_equiv_subdir.
7869
7870         * bus/config-loader-libxml.c (bus_config_load): Take a parent
7871         argument and pass it along to the call to bus_config_parser_new.
7872         Also made a few small changes to allow this code to compile.
7873
7874         * bus/config-loader-expat.c (bus_config_load): Take a parent
7875         argument and pass it along to the call to bus_config_parser_new.
7876
7877         * bus/bus.c (bus_context_new): Load the config file
7878         with a NULL parent argument.
7879
7880 2004-03-29  Michael Meeks  <michael@ximian.com>
7881
7882         * glib/dbus-gobject.c (introspect_properties): split
7883         out, fix mangled 'while' flow control.
7884         (introspect_signals): implement.
7885         (handle_introspect): update.
7886
7887 2004-03-29  Michael Meeks  <michael@ximian.com>
7888
7889         * glib/dbus-gobject.c (set_object_property): split out / 
7890         re-work, use the property type, and not the message type(!)
7891         (get_object_property): ditto.
7892
7893         * glib/dbus-gvalue.c (dbus_gvalue_demarshal),
7894         (dbus_gvalue_marshal): make this code re-usable, needed
7895         for signals too, also on both proxy and server side.
7896         Re-write for more efficiency / readability.
7897
7898 2004-03-29  Michael Meeks  <michael@ximian.com>
7899
7900         * dbus/dbus-message.c
7901         (dbus_message_new_error_printf): impl.
7902
7903         * dbus/dbus-connection.c
7904         (dbus_connection_unregister_object_path): fix warning.
7905
7906         * configure.in: fix no-mono-installed situation.
7907
7908 2004-03-27  Havoc Pennington  <hp@redhat.com>
7909
7910         Patch from Timo Teräs:
7911         
7912         * tools/dbus-send.c (main): if --print-reply, assume type is
7913         method call; support boolean type args
7914         
7915         * dbus/dbus-connection.c (dbus_connection_send_with_reply): fix a
7916         bunch of memleak and logic bugs
7917         
7918 2004-03-23  Owen Fraser-Green  <owen@discobabe.net>
7919
7920         * mono/Arguments.cs:
7921         * mono/Introspector.cs:
7922         * mono/Handler.cs:
7923         * mono/InterfaceProxy.cs:
7924         * mono/Message.cs
7925         * mono/ProxyBuilder.cs:
7926         * mono/Service.cs:
7927         Added InterfaceProxy class to avoid building proxies for every
7928         object.
7929
7930         * dbus-message.h:
7931         * dbus-message.c (dbus_message_append_args_valist)
7932         (dbus_message_iter_get_object_path)
7933         (dbus_message_iter_get_object_path_array)
7934         (dbus_message_iter_append_object_path)
7935         (dbus_message_iter_append_object_path_array):
7936         Added object_path iter functions to handle OBJECT_PATH arguments
7937         
7938 2004-03-23  Owen Fraser-Green  <owen@discobabe.net>
7939
7940         First checkin of mono bindings.
7941         * configure.in:
7942         * Makefile.am:
7943         Build stuff for the bindings
7944         * dbus-sharp.pc.in: Added for pkgconfig
7945         
7946 2004-03-21  Havoc Pennington  <hp@redhat.com>
7947
7948         * test/test-service.c (main): remove debug spew
7949
7950 2004-03-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7951
7952         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): accept empty
7953         arrays
7954
7955         * dbus/dbus-message.h, bus/dbus-message.c (dbus_message_iter_init)
7956         (dbus_message_iter_init_array_iterator)
7957         (dbus_message_iter_init_dict_iterator): return a dbus_bool_t to
7958         indicate whether the iterator is empty
7959
7960         * dbus/dbus-pending-call.c, dbus/dbus-server.c: silence compiler
7961         warnings
7962
7963 2004-03-19  Havoc Pennington  <hp@redhat.com>
7964
7965         * NEWS: 0.21 updates
7966
7967         * configure.in: 0.21
7968
7969         * doc/Makefile.am: add all XMLTO usage to DBUS_XML_DOCS_ENABLED
7970         
7971         * python/Makefile.am: change to avoid dist of dbus_bindings.c so
7972         you don't need pyrex to make dist
7973
7974         * qt/Makefile.am (libdbus_qt_1_la_SOURCES): add integrator.h to
7975         sources; run moc
7976         
7977 2004-03-18  Richard Hult  <richard@imendio.com>
7978
7979         * dbus/dbus-message.c (dbus_message_get_auto_activation) 
7980         (dbus_message_set_auto_activation): Add doxygen docs.
7981
7982 2004-03-16  Richard Hult  <richard@imendio.com>
7983
7984         * bus/activation.c: (bus_activation_service_created),
7985         (bus_activation_send_pending_auto_activation_messages),
7986         (bus_activation_activate_service):
7987         * bus/activation.h:
7988         * bus/dispatch.c: (bus_dispatch),
7989         (check_nonexistent_service_auto_activation),
7990         (check_service_auto_activated),
7991         (check_segfault_service_auto_activation),
7992         (check_existent_service_auto_activation), (bus_dispatch_test):
7993         * bus/driver.c: (bus_driver_handle_activate_service):
7994         * bus/services.c: (bus_registry_acquire_service):
7995         * dbus/dbus-message.c: (dbus_message_set_auto_activation),
7996         (dbus_message_get_auto_activation):
7997         * dbus/dbus-message.h:
7998         * dbus/dbus-protocol.h: Implement auto-activation.
7999         
8000         * doc/dbus-specification.xml: Add auto-activation to the spec.
8001
8002 2004-03-12  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8003
8004         * dbus/dbus-marshal.c (_dbus_marshal_get_arg_end_pos):
8005         fix a bug with CUSTOM types.
8006
8007         * dbus/dbus-message.c (message_iter_test, _dbus_message_test): add
8008         a unit test for this bug (used to fail).
8009
8010 2004-03-12  Mikael Hallendal  <micke@imendio.com>
8011
8012         * bus/activation.c:
8013         (babysitter_watch_callback): notify all pending activations waiting for
8014           the same exec that the activation failed.
8015         (bus_activation_activate_service): shortcut the activation if we 
8016           already waiting for the same executable to start up.
8017
8018 2004-03-12  Mikael Hallendal  <micke@imendio.com>
8019
8020         * bus/activation.c: 
8021         - Added service file reloading. 
8022           Each service files directory is kept in an hash table in 
8023           BusActivation and each BusActivationEntry knows what .service-file it
8024           was read from. So when you try to activate a service the bus will 
8025           check if it's been updated, removed or if new .service-files has 
8026           been installed.
8027         - Test code at the bottom for the service file reloading.
8028         * bus/test-main.c: (main):
8029         * bus/test.h:
8030         - added service reloading test.
8031         * dbus/dbus-sysdeps.c: 
8032         * dbus/dbus-sysdeps.h: (_dbus_delete_directory): Added.
8033
8034 2004-03-08  Michael Meeks  <michael@ximian.com>
8035
8036         * dbus/dbus-connection.c (_dbus_connection_block_for_reply): 
8037         bail immediately if disconnected, to avoid busy loop.
8038
8039         * dbus/dbus-message.c (dbus_message_iter_get_args_valist):
8040         cleanup cut/paste/inefficiency.
8041
8042 2004-03-01  David Zeuthen  <david@fubar.dk>
8043
8044         * dbus/dbus-string.c (_dbus_string_append_printf_valist): Fix a
8045         bug where args were used twice. This bug resulted in a segfault
8046         on a Debian/PPC system when starting the messagebus daemon. Include
8047         dbus-sysdeps.h for DBUS_VA_COPY
8048
8049         * dbus/dbus-sysdeps.h: Define DBUS_VA_COPY if neccessary. From GLib
8050
8051         * configure.in: Check for va_copy; define DBUS_VA_COPY to the
8052         appropriate va_copy implementation. From GLib
8053         
8054 2004-02-24  Joe Shaw  <joe@ximian.com>
8055
8056         * bus/services.c (bus_registry_acquire_service): We need to pass
8057         in the service name to dbus_set_error() to prevent a crash.
8058
8059 2003-12-26  Anders Carlsson  <andersca@gnome.org>
8060
8061         * AUTHORS: Reveal my True identity.
8062
8063 2003-12-17  Mikael Hallendal  <micke@imendio.com>
8064
8065         * dbus/dbus-message.c: (dbus_message_append_args_valist): 
8066         - Added case for DBUS_TYPE_BYTE, patch from Johan Hedberg.
8067
8068 2003-12-13  Mikael Hallendal  <micke@imendio.com>
8069
8070         * doc/TODO: Added not about better error check of configuration files.
8071
8072 2003-12-02  Richard Hult  <richard@imendio.com>
8073
8074         * Update AFL version to 2.0 throughout the source files to reflect
8075         the update that was done a while ago.
8076
8077 2003-12-02  Richard Hult  <richard@imendio.com>
8078
8079         * dbus/dbus-message.c (dbus_message_iter_append_dict): Set
8080         wrote_dict_key to FALSE on the iter that the dict is appended to,
8081         just like when appending other types. Fixes a bug where a dict
8082         couldn't be put inside a dict.
8083         (dbus_message_iter_append_dict_key): Fix typo in warning message.
8084         (message_iter_test, _dbus_message_test): Add test case for dict
8085         inside dict.
8086
8087 2003-12-01  David Zeuthen  <david@fubar.dk>
8088
8089         * python/dbus.py: Add the actual message when calling the reciever
8090         of a signal such that parameters can be inspected. Add the method
8091         remove_signal_receiver
8092         
8093 2003-11-26  Mikael Hallendal  <micke@imendio.com>
8094
8095         * bus/*.[ch]:
8096         * dbus/*.[ch]:
8097         * glib/*.[ch]: Made ref functions return the pointer
8098
8099 2003-11-25  Zack Rusin  <zack@kde.org>
8100
8101         * qt/integrator.h, qt/integrator.cpp: Adding handling of DBusServer,
8102
8103         * qt/server.h, qt/server.cpp, qt/Makefile.am: Adding DBusServer 
8104         wrappers,
8105
8106         * qt/connection.h, qt/connection.cpp: Adjusting to changes in 
8107         the Integrator and to better fit with the server,
8108
8109 2003-11-24  Zack Rusin  <zack@kde.org>
8110
8111         * qt/connection.h, qt/connection.cpp: removing initDbus method since
8112         the integrator handles it now
8113
8114         * qt/integrator.h, qt/integrator.cpp: reworking handling of timeouts,
8115         since QTimer wasn't really meant to be used the way DBusTimeout is
8116
8117 2003-11-24  Zack Rusin  <zack@kde.org>
8118
8119         * qt/integrator.h, qt/integrator.cpp, Makefile.am: Adding 
8120         Integrator class which integrates D-BUS with the Qt event loop,
8121
8122         * qt/connection.h, qt/connection.cpp: Move all the code which
8123         was dealing with D-BUS integration to the Integrator class,
8124         and start using Integrator,
8125
8126 2003-11-23  Zack Rusin  <zack@kde.org>
8127
8128         * qt/connection.h, qt/connection.cpp: Adding the DBusConnection 
8129         wrapper
8130
8131         * qt/message.h, qt/message.cpp: updating to the current D-BUS api,
8132         switching namespaces to DBusQt, reworking the class,
8133
8134         * Makefile.cvs: switching dependencies so that it matches KDE 
8135         schematics,
8136         
8137         * qt/Makefile.am: adding connection.{h,cpp} and message.{h,cpp} to 
8138         the library
8139
8140 2003-11-19  Havoc Pennington  <hp@redhat.com>
8141
8142         * NEWS: update
8143
8144         * configure.in: bump version to 0.20
8145
8146         * configure.in (have_qt): add yet another place to look for qt
8147         (someone hand trolltech a .pc file...)
8148
8149 2003-11-01  Havoc Pennington  <hp@redhat.com>
8150
8151         * doc/dbus-specification.xml: add state machine docs on the auth
8152         protocol; just a first draft, I'm sure it's wrong.      
8153
8154 2003-10-28  David Zeuthen  <david@fubar.dk>
8155
8156         * python/dbus_bindings.pyx.in: add get_dict to handle dictionaries
8157         return types. Fixup TYPE_* to reflect changes in dbus/dbus-protocol.h
8158         
8159 2003-10-28  Havoc Pennington  <hp@redhat.com>
8160
8161         * dbus/dbus-message.c (get_next_field): delete unused function
8162
8163 2003-10-28  Havoc Pennington  <hp@redhat.com>
8164
8165         * bus/expirelist.c (do_expiration_with_current_time): detect
8166         failure of the expire_func due to OOM
8167
8168         * bus/connection.c (bus_pending_reply_expired): return FALSE on OOM
8169
8170         * bus/dispatch.c (check_send_exit_to_service): fix to handle the
8171         NoReply error that's now created by the bus when the service exits
8172
8173 2003-10-28  Havoc Pennington  <hp@redhat.com>
8174
8175         * dbus/dbus-message.c (_dbus_message_test): enable and fix the
8176         tests for set_path, set_interface, set_member, etc.
8177
8178         * dbus/dbus-string.c (_dbus_string_insert_bytes): allow 0 bytes
8179
8180         * dbus/dbus-message.c (set_string_field): always just delete and
8181         re-append the field; accept NULL for deletion
8182         (re_align_fields_recurse): reimplement
8183         
8184 2003-10-26  Havoc Pennington  <hp@redhat.com>
8185
8186         * dbus/dbus-connection.c: fix docs to properly describe the
8187         disconnected message
8188         (_dbus_connection_notify_disconnected): remove this function; 
8189         we can't synchronously add the disconnected message, we have to 
8190         do it after we've queued any remaining real messages
8191         (_dbus_connection_get_dispatch_status_unlocked): queue the
8192         disconnect message only if the transport has finished queueing all
8193         its real messages and is disconnected.
8194         (dbus_connection_disconnect): update the dispatch status here
8195
8196 2003-10-22  Havoc Pennington  <hp@redhat.com>
8197
8198         * bus/bus.c (bus_context_check_security_policy): fix up assertion
8199
8200         * bus/connection.c (bus_transaction_send_from_driver): set the
8201         destination to the connection's base service
8202
8203 2003-10-20  Havoc Pennington  <hp@redhat.com>
8204
8205         hmm, make check is currently not passing.
8206         
8207         * doc/dbus-specification.xml: add requirement that custom type
8208         names follow the same rules as interface names.
8209
8210         * dbus/dbus-protocol.h: change some of the byte codes, to avoid
8211         duplication and allow 'c' to be 'custom'; dict is now 'm' for
8212         'map'
8213
8214         * doc/dbus-specification.xml: update type codes to match
8215         dbus-protocol.h, using the ASCII byte values. Rename type NAMED to
8216         CUSTOM. Add type OBJECT_PATH to the spec.
8217
8218 2003-10-17  Havoc Pennington  <hp@redhat.com>
8219
8220         * bus/driver.c (create_unique_client_name): use "." as separator
8221         in base service names instead of '-'
8222
8223         * dbus/dbus-string.c (_dbus_string_get_byte): allow getting nul
8224         byte at the end of the string
8225
8226         * dbus/dbus-internals.h (_DBUS_LIKELY, _DBUS_UNLIKELY): add
8227         optimization macros since string validation seems to be a slow
8228         point.
8229         
8230         * doc/dbus-specification.xml: restrict valid
8231         service/interface/member/error names. Add test suite code for the
8232         name validation.
8233
8234         * dbus/dbus-string.c: limit service/interface/member/error names 
8235         to [0-9][A-Z][a-z]_
8236
8237         * dbus/dbus-connection.c (dbus_connection_dispatch): add missing
8238         format arg to verbose spew
8239
8240         * glib/dbus-gproxy.c (dbus_gproxy_call_no_reply): if not out of
8241         memory, return instead of g_error
8242
8243         * test/test-service.c (path_message_func): support emitting a
8244         signal on request
8245
8246         * dbus/dbus-bus.c (init_connections_unlocked): only fill in
8247         activation bus type if DBUS_BUS_ACTIVATION was set; default to
8248         assuming the activation bus was the session bus so that services
8249         started manually will still register.
8250         (init_connections_unlocked): fix so that in OOM situation we get
8251         the same semantics when retrying the function
8252         
8253         * test/test-service.c (main): change to use path registration, to
8254         test those codepaths; register with DBUS_BUS_ACTIVATION rather
8255         than DBUS_BUS_SESSION
8256
8257 2003-10-16  Havoc Pennington  <hp@redhat.com>
8258
8259         * glib/dbus-gtest-main.c: bracket with #ifdef DBUS_BUILD_TESTS
8260
8261         * Makefile.am (GCOV_DIRS): remove "test", we don't care about test
8262         coverage of the tests
8263         (coverage-report.txt): don't move the .da and .bbg files around
8264
8265 2003-10-16  Havoc Pennington  <hp@redhat.com>
8266
8267         * bus/bus.c (struct BusContext): remove struct field I didn't mean
8268         to put there
8269
8270 2003-10-16  Havoc Pennington  <hp@redhat.com>
8271
8272         * bus/connection.c (bus_pending_reply_expired): either cancel or
8273         execute, not both
8274         (bus_connections_check_reply): use unlink, not remove_link, as we
8275         don't want to free the link; fixes double free mess
8276
8277         * dbus/dbus-pending-call.c (dbus_pending_call_block): fix in case
8278         where no reply was received
8279
8280         * dbus/dbus-connection.c (_dbus_pending_call_complete_and_unlock):
8281         fix a refcount leak
8282
8283         * bus/signals.c (match_rule_matches): add special cases for the
8284         bus driver, so you can match on sender/destination for it.
8285
8286         * dbus/dbus-sysdeps.c (_dbus_abort): print backtrace if
8287         DBUS_PRINT_BACKTRACE is set
8288
8289         * dbus/dbus-internals.c: add pid to assertion failure messages
8290
8291         * dbus/dbus-connection.c: add message type code to the debug spew
8292
8293         * glib/dbus-gproxy.c (gproxy_get_match_rule): match rules want
8294         sender=foo not service=foo
8295
8296         * dbus/dbus-bus.c (dbus_bus_get): if the activation bus is the
8297         session bus but DBUS_SESSION_BUS_ADDRESS isn't set, use 
8298         DBUS_ACTIVATION_ADDRESS instead
8299
8300         * bus/activation.c: set DBUS_SESSION_BUS_ADDRESS,
8301         DBUS_SYSTEM_BUS_ADDRESS if appropriate
8302
8303         * bus/bus.c (bus_context_new): handle OOM copying bus type into
8304         context struct
8305
8306         * dbus/dbus-message.c (dbus_message_iter_get_object_path): new function
8307         (dbus_message_iter_get_object_path_array): new function (half
8308         finished, disabled for the moment)
8309         
8310         * glib/dbus-gproxy.c (dbus_gproxy_end_call): properly handle
8311         DBUS_MESSAGE_TYPE_ERROR
8312
8313         * tools/dbus-launch.c (babysit): support DBUS_DEBUG_OUTPUT to
8314         avoid redirecting stderr to /dev/null
8315         (babysit): close stdin if not doing the "exit_with_session" thing
8316
8317         * dbus/dbus-sysdeps.c (_dbus_become_daemon): delete some leftover
8318         debug code; change DBUS_DEBUG_OUTPUT to only enable stderr, not
8319         stdout/stdin, so things don't get confused
8320         
8321         * bus/system.conf.in: fix to allow replies, I modified .conf
8322         instead of .conf.in again.
8323
8324 2003-10-14  David Zeuthen  <david@fubar.dk>
8325
8326         * python/dbus_bindings.pyx.in (MessageIter.get): fixed typo in
8327         argtype to arg_type when raising unknown arg type exception.
8328         Changed type list to reflect the changes in dbus-protocol.h so 
8329         the bindings actually work.
8330
8331 2003-10-14  Havoc Pennington  <hp@redhat.com>
8332
8333         * test/decode-gcov.c: support gcc 3.3 also, though gcc 3.3 seems
8334         to have a bug keeping it from outputting the .da files sometimes
8335         (string_get_string): don't append garbage nul bytes to the string.
8336
8337 2003-10-15  Seth Nickell  <seth@gnome.org>
8338
8339         * python/Makefile.am:
8340
8341         Include dbus_h_wrapper.h in the dist tarball.
8342
8343 2003-10-14  Havoc Pennington  <hp@redhat.com>
8344
8345         * bus/bus.c (bus_context_check_security_policy): revamp this to
8346         work more sanely with new policy-based requested reply setup
8347
8348         * bus/connection.c (bus_transaction_send_from_driver): set bus
8349         driver messages as no reply
8350
8351         * bus/policy.c (bus_client_policy_check_can_receive): handle a
8352         requested_reply attribute on allow/deny rules
8353
8354         * bus/system.conf: add <allow requested_reply="true"/>
8355
8356         * bus/driver.c (bus_driver_handle_message): fix check for replies
8357         sent to the bus driver, which was backward. How did this ever work
8358         at all though? I think I'm missing something.
8359
8360         * dbus/dbus-message.c (decode_header_data): require error and
8361         method return messages to have a reply serial field to be valid
8362         (_dbus_message_loader_queue_messages): break up this function;
8363         validate that reply serial and plain serial are nonzero; 
8364         clean up the OOM/error handling.
8365         (get_uint_field): don't return -1 from this
8366         (dbus_message_create_header): fix signed/unsigned bug
8367
8368         * bus/connection.c (bus_connections_expect_reply): save serial of
8369         the incoming message, not reply serial
8370
8371 2003-10-14  Havoc Pennington  <hp@redhat.com>
8372
8373         * bus/connection.c: implement pending reply tracking using
8374         BusExpireList
8375
8376         * bus/bus.c (bus_context_check_security_policy): verify that a
8377         reply is pending in order to allow a reply to be sent. Deny 
8378         messages of unknown type.
8379
8380         * bus/dbus-daemon-1.1.in: update to mention new resource limits
8381
8382         * bus/bus.c (bus_context_get_max_replies_per_connection): new
8383         (bus_context_get_reply_timeout): new
8384
8385 2003-10-13  Seth Nickell  <seth@gnome.org>
8386
8387         * python/Makefile.am:
8388
8389         Pass "make distcheck": remove a couple files from DIST_FILES
8390         that weren't included in the final version.
8391
8392 2003-10-12  Havoc Pennington  <hp@pobox.com>
8393
8394         Added test code that 1) starts an actual bus daemon and 2) uses
8395         DBusGProxy; fixed bugs that were revealed by the test. Lots 
8396         more testing possible, but this is the basic framework.
8397         
8398         * glib/dbus-gproxy.c (dbus_gproxy_manager_unregister): remove
8399         empty proxy lists from the proxy list hash
8400
8401         * dbus/dbus-message.c (dbus_message_iter_get_args_valist): add a
8402         couple of return_if_fail checks
8403
8404         * dbus/dbus-pending-call.c (_dbus_pending_call_new): use dbus_new0
8405         to allocate, so everything is cleared to NULL as it should be.
8406
8407         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): pass
8408         source as data to dbus_connection_set_timeout_functions() as the 
8409         timeout functions expected
8410
8411         * test/glib/run-test.sh: add a little script to start up a message
8412         bus and run tests using it
8413
8414         * tools/dbus-launch.1: updates
8415
8416         * tools/dbus-launch.c (main): add --config-file option
8417
8418         * tools/dbus-launch.c (main): remove confusing else if (runprog)
8419         that could never be reached.
8420
8421         * dbus/dbus-message.c (dbus_message_new_method_return) 
8422         (dbus_message_new_error, dbus_message_new_signal): set the
8423         no-reply-expected flag on all these. Redundant, but may
8424         as well be consistent.
8425
8426 2003-10-11  Havoc Pennington  <hp@pobox.com>
8427
8428         * test/decode-gcov.c (function_solve_graph): make broken block
8429         graph a nonfatal error since it seems to be broken. Need to debug
8430         this.
8431
8432         * dbus/dbus-marshal.c (_dbus_type_is_valid): new function since we
8433         can't just check type > INVALID < LAST anymore
8434
8435         * dbus/dbus-message.c (dbus_message_get_signature): new function
8436         (dbus_message_has_signature): new function
8437         (struct DBusMessage): add signature field (right now it isn't sent
8438         over the wire, just generated on the fly)
8439         (dbus_message_copy): copy the signature, and init strings to
8440         proper length to avoid some reallocs
8441         (dbus_message_iter_init_array_iterator): return void, since it
8442         can't fail
8443         (dbus_message_iter_init_dict_iterator): return void since it can't fail
8444         (_dbus_message_loader_queue_messages): add silly temporary hack to
8445         fill in message->signature on load
8446
8447         * dbus/dbus-protocol.h: change DBUS_TYPE_* values to be ASCII
8448         characters, so they are relatively human-readable.
8449
8450 2003-10-11  Havoc Pennington  <hp@pobox.com>
8451
8452         * dbus/dbus-message.c (_dbus_message_test): add more test
8453         coverage, but #if 0 for now since they uncover a bug 
8454         not fixed yet; I think in re_align_field_recurse()
8455         (re_align_field_recurse): add FIXME about broken assertion
8456
8457         * dbus/dbus-sysdeps.c (_dbus_sysdeps_test): add more test coverage
8458
8459         * bus/connection.c: share a couple code bits with expirelist.c
8460
8461         * bus/expirelist.h, bus/expirelist.c: implement a generic
8462         expire-items-after-N-seconds facility, was going to share between
8463         expiring connections and replies, decided not to use for expiring
8464         connections for now.
8465
8466         * COPYING: include AFL 2.0 (still need to change all the file headers)
8467
8468 2003-10-09  Havoc Pennington  <hp@redhat.com>
8469
8470         * configure.in: define DBUS_HAVE_GCC33_GCOV if we have
8471         gcc 3.3. Not that we do anything about it yet.
8472
8473         * bus/signals.c (bus_match_rule_parse): impose max length on the
8474         match rule text
8475
8476         * dbus/dbus-protocol.h: add DBUS_MAXIMUM_MATCH_RULE_LENGTH
8477
8478 2003-10-09  Havoc Pennington  <hp@redhat.com>
8479
8480         Make matching rules theoretically work (add parser).
8481         
8482         * bus/bus.c (bus_context_check_security_policy): fix up to handle
8483         the case where destination is explicitly specified as bus driver
8484         and someone else is eavesdropping.
8485         
8486         * bus/policy.c (bus_client_policy_check_can_receive): fix up
8487         definition of eavesdropping and assertion
8488
8489         * tools/dbus-send.c (main): use dbus_message_type_from_string
8490
8491         * bus/signals.c (bus_match_rule_parse): implement
8492
8493         * dbus/dbus-message.c (dbus_message_type_from_string): new
8494
8495         * dbus/dbus-errors.h (DBUS_ERROR_MATCH_RULE_INVALID): add
8496
8497 2003-10-02  Havoc Pennington  <hp@pobox.com>
8498
8499         * glib/dbus-gproxy.c (dbus_gproxy_call_no_reply): rename from
8500         dbus_gproxy_oneway_call
8501
8502         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main) 
8503         (dbus_server_setup_with_g_main): fix to allow calling them more
8504         than once on the same args
8505         (dbus_bus_get_with_g_main): new function
8506
8507 2003-10-02  Havoc Pennington  <hp@redhat.com>
8508
8509         * doc/dbus-tutorial.xml: write some stuff
8510
8511 2003-09-29  Havoc Pennington  <hp@pobox.com>
8512
8513         * configure.in: split checks for Doxygen from XML docs, check for
8514         xmlto
8515
8516         * doc/Makefile.am: XML-ify all the docs, and add a blank
8517         dbus-tutorial.xml
8518
8519 2003-09-29  Havoc Pennington  <hp@pobox.com>
8520
8521         * Merge dbus-object-names branch. To see the entire patch 
8522         do cvs diff -r DBUS_OBJECT_NAMES_BRANCHPOINT -r dbus-object-names,
8523         it's huuuuge though.
8524         To revert, I tagged DBUS_BEFORE_OBJECT_NAMES_MERGE.
8525         
8526 2003-09-28  Havoc Pennington  <hp@pobox.com>
8527
8528         * HACKING: update to reflect new server
8529
8530 2003-09-26  Seth Nickell  <seth@gnome.org>
8531
8532         * python/dbus.py:
8533         * python/examples/example-signals.py:
8534
8535         Start implementing some notions of signals. The API
8536         is really terrible, but they sort of work (with the
8537         exception of being able to filter by service, and to
8538         transmit signals *as* a particular service). Need to
8539         figure out how to make messages come from the service
8540         we registered :-(
8541         
8542         * python/dbus_bindings.pyx.in:
8543
8544         Removed duplicate message_handler callbacks.
8545         
8546 2003-09-25  Havoc Pennington  <hp@redhat.com>
8547
8548         * bus/session.conf.in: fix my mess
8549
8550 2003-09-25  Havoc Pennington  <hp@pobox.com>
8551
8552         * bus/session.conf.in: fix security policy, reported by Seth Nickell
8553
8554 2003-09-25  Seth Nickell  <seth@gnome.org>
8555
8556         * python/examples/example-service.py:
8557
8558         Johan notices complete wrong code in example-service, but
8559         completely wrong in a way that works exactly the same (!).
8560         Johan is confused, how could this possibly work? Example
8561         code fails to serve purpose of making things clear.
8562         Seth fixes.
8563
8564 2003-09-25  Mark McLoughlin  <mark@skynet.ie>
8565
8566         * doc/dbus-specification.sgml: don't require header fields
8567         to be 4-byte aligned and specify that fields should be
8568         distinguished from padding by the fact that zero is not
8569         a valid field name.
8570         
8571         * doc/TODO: remove re-alignment item and add item to doc
8572         the OBJECT_PATH type.
8573         
8574         * dbus/dbus-message.c:
8575         (HeaderField): rename the original member to value_offset
8576         and introduce a name_offset member to keep track of where
8577         the field actually begins.
8578         (adjust_field_offsets): remove.
8579         (append_int_field), (append_uint_field),
8580         (append_string_field): don't align the start of the header
8581         field to a 4-byte boundary.
8582         (get_next_field): impl finding the next marhsalled field
8583         after a given field.
8584         (re_align_field_recurse): impl re-aligning a number of
8585         already marshalled fields.
8586         (delete_field): impl deleting a field of any type and
8587         re-aligning any following fields.
8588         (delete_int_or_uint_field), (delete_string_field): remove.
8589         (set_int_field), (set_uint_field): no need to re-check
8590         that we have the correct type for the field.
8591         (set_string_field): ditto and impl re-aligning any
8592         following fields.
8593         (decode_header_data): update to take into account that
8594         the fields aren't 4-byte aligned any more and the new
8595         way to distinguish padding from header fields. Also,
8596         don't exit when there is too much header padding.
8597         (process_test_subdir): print the directory.
8598         (_dbus_message_test): add test to make sure a following
8599         field is re-aligned correctly after field deletion.
8600         
8601         * dbus/dbus-string.[ch]:
8602         (_dbus_string_insert_bytes): rename from insert_byte and
8603         allow the insert of multiple bytes.
8604         (_dbus_string_test): test inserting multiple bytes.
8605
8606         * dbus/dbus-marshal.c: (_dbus_marshal_set_string): add
8607         warning note to docs about having to re-align any
8608         marshalled values following the string.
8609         
8610         * dbus/dbus-message-builder.c:
8611         (append_string_field), (_dbus_message_data_load):
8612         don't align the header field.
8613         
8614         * dbus/dbus-auth.c: (process_test_subdir): print the
8615         directory.
8616         
8617         * test/break-loader.c: (randomly_add_one_byte): upd. for
8618         insert_byte change.
8619         
8620         * test/data/invalid-messages/bad-header-field-alignment.message:
8621         new test case.
8622         
8623         * test/data/valid-messages/unknown-header-field.message: shove
8624         a dict in the unknown field.
8625
8626 2003-09-25  Seth Nickell  <seth@gnome.org>
8627
8628         * python/dbus.py:
8629         * python/dbus_bindings.pyx.in:
8630
8631         Handle return values.
8632         
8633         * python/examples/example-client.py:
8634         * python/examples/example-service.py:
8635
8636         Pass back return values from the service to the client.
8637         
8638 2003-09-24  Seth Nickell  <seth@gnome.org>
8639
8640         * python/dbus.py:
8641
8642         Connect Object methods (when you are sharing an object) up... pass
8643         in a list of methods to be shared. Sharing all the methods just
8644         worked out too weird. You can now create nice Services over the
8645         DBus in Python. :-)
8646         
8647         * python/dbus_bindings.pyx.in:
8648
8649         Keep references to user_data tuples passed into C functions so 
8650         Python doesn't garbage collect on us.
8651
8652         Implement MethodReturn and Error subclasses of Message for creating
8653         DBusMessage's of those types.
8654         
8655         * python/examples/example-client.py:
8656         * python/examples/example-service.py:
8657
8658         Simple example code showing both how create DBus services and objects,
8659         and how to use them.
8660
8661 2003-09-23  Havoc Pennington  <hp@pobox.com>
8662
8663         * glib/dbus-gproxy.c (dbus_gproxy_manager_filter): implement
8664
8665 2003-09-23  Havoc Pennington  <hp@redhat.com>
8666
8667         * glib/dbus-gproxy.c (dbus_gproxy_connect_signal): implement
8668         (dbus_gproxy_disconnect_signal): implement
8669         (dbus_gproxy_manager_remove_signal_match): implement
8670         (dbus_gproxy_manager_add_signal_match): implement
8671         (dbus_gproxy_oneway_call): implement
8672
8673 2003-09-23  Havoc Pennington  <hp@pobox.com>
8674
8675         * glib/dbus-gproxy.c (struct DBusGProxy): convert to a GObject
8676         subclass. This means dropping the transparent thread safety of the
8677         proxy; you now need a separate proxy per-thread, or your own
8678         locking on the proxy. Probably right anyway.
8679         (dbus_gproxy_ref, dbus_gproxy_unref): nuke, just use g_object_ref
8680
8681 2003-09-22  Havoc Pennington  <hp@redhat.com>
8682
8683         * glib/dbus-gproxy.c (dbus_gproxy_manager_get): implement
8684
8685 2003-09-21  Seth Nickell  <seth@gnome.org>
8686
8687         First checkin of the Python bindings.
8688         
8689         * python/.cvsignore:
8690         * python/Makefile.am:
8691         * python/dbus_bindings.pyx.in:
8692         * python/dbus_h_wrapper.h:
8693
8694         Pieces for Pyrex to operate on, building a dbus_bindings.so
8695         python module for low-level access to the DBus APIs.
8696         
8697         * python/dbus.py:
8698
8699         High-level Python module for accessing DBus objects.
8700
8701         * configure.in:
8702         * Makefile.am:
8703
8704         Build stuff for the python bindings.
8705
8706         * acinclude.m4:
8707
8708         Extra macro needed for finding the Python C header files.
8709
8710 2003-09-21  Havoc Pennington  <hp@pobox.com>
8711
8712         * glib/dbus-gproxy.c (dbus_gproxy_manager_new): start
8713         implementing the proxy manager, didn't get very far.
8714
8715         * dbus/dbus-bus.c (dbus_bus_add_match): new
8716         (dbus_bus_remove_match): new
8717
8718         * glib/dbus-gproxy.c (dbus_gproxy_new_for_service): add a
8719         path_name argument; adjust the other not-yet-implemented 
8720         gproxy constructors to be what I think they should be.
8721
8722 2003-09-21  Havoc Pennington  <hp@pobox.com>
8723
8724         * dbus/dbus-bus.c (dbus_bus_get): set exit_on_disconnect to TRUE
8725         by default for message bus connections.
8726
8727         * dbus/dbus-connection.c (dbus_connection_dispatch): exit if
8728         exit_on_disconnect flag is set and we process the disconnected
8729         signal.
8730         (dbus_connection_set_exit_on_disconnect): new function
8731
8732 2003-09-21  Havoc Pennington  <hp@pobox.com>
8733
8734         Get matching rules mostly working in the bus; only actually
8735         parsing the rule text remains. However, the client side of
8736         "signal connections" hasn't been started, this patch is only the
8737         bus side.
8738         
8739         * dbus/dispatch.c: fix for the matching rules changes
8740         
8741         * bus/driver.c (bus_driver_handle_remove_match)
8742         (bus_driver_handle_add_match): send an ack reply from these
8743         method calls
8744
8745         * glib/dbus-gproxy.c (dbus_gproxy_begin_call): fix order of
8746         arguments, reported by Seth Nickell
8747
8748         * bus/config-parser.c (append_rule_from_element): support
8749         eavesdrop=true|false attribute on policies so match rules 
8750         can be prevented from snooping on the system bus.
8751
8752         * bus/dbus-daemon-1.1.in: consistently use terminology "sender"
8753         and "destination" in attribute names; fix some docs bugs; 
8754         add eavesdrop=true|false attribute
8755
8756         * bus/driver.c (bus_driver_handle_add_match)
8757         (bus_driver_handle_remove_match): handle AddMatch, RemoveMatch
8758         messages
8759
8760         * dbus/dbus-protocol.h (DBUS_SERVICE_ORG_FREEDESKTOP_BROADCAST): get
8761         rid of broadcast service concept, signals are just always broadcast
8762
8763         * bus/signals.c, bus/dispatch.c, bus/connection.c, bus/bus.c:
8764         mostly implement matching rules stuff (currently only exposed as signal
8765         connections)
8766
8767 2003-09-21  Mark McLoughlin  <mark@skynet.ie>
8768
8769         * doc/dbus-specification.sgml: Change the header field name
8770         to be an enum and update the rest of the spec to reference
8771         the fields using the conventinal name.
8772
8773         * dbus/dbus-protocol.h: update to reflect the spec.
8774
8775         * doc/TODO: add item to remove the 4 byte alignment requirement.
8776         
8777         * dbus/dbus-message.c: Remove the code to generalise the
8778         header/body length and serial number header fields as named
8779         header fields so we can reference field names using the 
8780         protocol values.
8781         (append_int_field), (append_uint_field), (append_string_field):
8782         Append the field name as a byte rather than four chars.
8783         (delete_int_or_uint_field), (delete_string_field): reflect the
8784         fact that the field name and typecode now occupy 4 bytes instead
8785         of 8.
8786         (decode_string_field), (decode_header_data): update to reflect
8787         protocol changes and move the field specific encoding from
8788         decode_string_field() back into decode_header_data().
8789         
8790         * dbus/dbus-internals.[ch]: (_dbus_header_field_to_string):
8791         Add utility to aid debugging.
8792         
8793         * dbus/dbus-message-builder.c:
8794         (append_string_field), (_dbus_message_data_load): Update to
8795         reflect protocol changes; Change the FIELD_NAME directive
8796         to HEADER_FIELD and allow it to take the field's conventional
8797         name rather than the actual value.
8798         
8799         * test/data/*/*.message: Update to use HEADER_FIELD instead
8800         of FIELD_NAME; Always align the header on an 8 byte boundary
8801         *before* updating the header length.
8802
8803 2003-09-15  Havoc Pennington  <hp@pobox.com>
8804
8805         * dbus/dbus-pending-call.c: add the get/set object data
8806         boilerplate as for DBusConnection, etc. Use generic object data
8807         for the notify callback.
8808
8809         * glib/dbus-gparser.c (parse_node): parse child nodes
8810
8811         * tools/dbus-viewer.c: more hacking on the dbus-viewer
8812         
8813         * glib/dbus-gutils.c (_dbus_gutils_split_path): add a file to
8814         contain functions shared between the convenience lib and the
8815         installed lib
8816
8817         * glib/Makefile.am (libdbus_glib_1_la_LDFLAGS): add
8818         -export-symbols-regex to the GLib library
8819
8820         * dbus/dbus-object-tree.c (_dbus_object_tree_dispatch_and_unlock):
8821         fix the locking in here, and add a default handler for
8822         Introspect() that just returns sub-nodes.
8823
8824 2003-09-14  Havoc Pennington  <hp@pobox.com>
8825
8826         * glib/dbus-gthread.c (dbus_g_thread_init): rename to make g_foo
8827         rather than gfoo consistent
8828
8829         * glib/dbus-gproxy.h: delete for now, move contents to
8830         dbus-glib.h, because the include files don't work right since we
8831         aren't in the dbus/ subdir.
8832         
8833         * glib/dbus-gproxy.c (dbus_gproxy_send): finish implementing
8834         (dbus_gproxy_end_call): finish
8835         (dbus_gproxy_begin_call): finish
8836
8837         * glib/dbus-gmain.c (dbus_set_g_error): new
8838
8839         * glib/dbus-gobject.c (handle_introspect): include information
8840         about child nodes in the introspection
8841
8842         * dbus/dbus-connection.c (dbus_connection_list_registered): new
8843         function to help in implementation of introspection
8844
8845         * dbus/dbus-object-tree.c
8846         (_dbus_object_tree_list_registered_and_unlock): new function
8847
8848 2003-09-12  Havoc Pennington  <hp@pobox.com>
8849
8850         * glib/dbus-gidl.h: add common base class for all the foo_info
8851         types
8852
8853         * tools/dbus-viewer.c: add GTK-based introspection UI thingy
8854         similar to kdcop
8855
8856         * test/Makefile.am: try test srcdir -ef . in addition to test
8857         srcdir = ., one of them should work (yeah lame)
8858         
8859         * glib/Makefile.am: build the "idl" parser stuff as a convenience
8860         library
8861         
8862         * glib/dbus-gparser.h: make description_load routines return
8863         NodeInfo* not Parser*
8864
8865         * Makefile.am (SUBDIRS): build test dir after all library dirs
8866
8867         * configure.in: add GTK+ detection
8868
8869 2003-09-07  Havoc Pennington  <hp@pobox.com>
8870
8871         * Make Doxygen contented.
8872
8873 2003-09-07  Havoc Pennington  <hp@pobox.com>
8874
8875         * doc/dbus-specification.sgml: more updates
8876
8877 2003-09-06  Havoc Pennington  <hp@pobox.com>
8878
8879         * doc/dbus-specification.sgml: partial updates
8880
8881         * bus/dbus-daemon-1.1.in: fix the config file docs for the
8882         zillionth time; hopefully I edited the right file this time.
8883
8884         * bus/config-parser.c (append_rule_from_element): support
8885         send_type, send_path, receive_type, receive_path
8886
8887         * bus/policy.c: add message type and path to the list of things
8888         that can be "firewalled"
8889
8890 2003-09-06  Havoc Pennington  <hp@pobox.com>
8891
8892         * dbus/dbus-connection.c (dbus_connection_register_fallback): add this
8893         (dbus_connection_register_object_path): make this not handle
8894         messages to paths below the given path
8895
8896 2003-09-03  Havoc Pennington  <hp@pobox.com>
8897
8898         * test/glib/Makefile.am: add this with random glib-linked test
8899         programs
8900
8901         * glib/Makefile.am: remove the random test programs from here,
8902         leave only the unit tests
8903
8904         * glib/dbus-gobject.c (_dbus_gobject_test): add test for 
8905         uscore/javacaps conversion, and fix     
8906         (get_object_property, set_object_property): change to .NET
8907         convention for mapping props to methods, set_FooBar/get_FooBar, 
8908         since one language has such a convention we may as well copy it. 
8909         Plus real methods in either getFooBar or get_foo_bar style won't 
8910         collide with this convention.
8911
8912 2003-09-01  Havoc Pennington  <hp@pobox.com>
8913
8914         * glib/dbus-gparser.c: implement
8915
8916         * glib/dbus-gobject.c: start implementing skeletons support
8917
8918         * configure.in: when disabling checks/assert, also define
8919         G_DISABLE_ASSERT and G_DISABLE_CHECKS
8920
8921 2003-09-01  Havoc Pennington  <hp@pobox.com>
8922
8923         * glib/Makefile.am: rearrange a bunch of files and get "make
8924         check" framework set up
8925
8926 2003-08-31  Havoc Pennington  <hp@pobox.com>
8927
8928         * fix build with --disable-tests
8929
8930 2003-08-30  Havoc Pennington  <hp@pobox.com>
8931
8932         * dbus/dbus-connection.c: purge DBusMessageHandler
8933
8934         * dbus/dbus-message-handler.c: remove DBusMessageHandler, just 
8935         use callbacks everywhere
8936
8937 2003-08-30  Havoc Pennington  <hp@pobox.com>
8938
8939         * test/data/valid-config-files/system.d/test.conf: change to 
8940         root for the user so warnings don't get printed
8941
8942         * dbus/dbus-message.c: add dbus_message_get_path,
8943         dbus_message_set_path
8944         
8945         * dbus/dbus-object-tree.c (do_test_dispatch): add test of
8946         dispatching to a path
8947
8948         * dbus/dbus-string.c (_dbus_string_validate_path): add
8949
8950         * dbus/dbus-marshal.c (_dbus_demarshal_object_path): implement
8951         (_dbus_marshal_object_path): implement
8952
8953         * dbus/dbus-protocol.h (DBUS_HEADER_FIELD_PATH): new header field 
8954         to contain the path to the target object
8955         (DBUS_HEADER_FIELD_SENDER_SERVICE): rename
8956         DBUS_HEADER_FIELD_SENDER to explicitly say it's the sender service
8957
8958 2003-08-30  Havoc Pennington  <hp@pobox.com>
8959
8960         * dbus/dbus-object-tree.c: write tests and fix the discovered bugs
8961
8962 2003-08-29  Havoc Pennington  <hp@pobox.com>
8963
8964         * dbus/dbus-object-tree.c: modify to allow overlapping paths to be
8965         registered
8966         (struct DBusObjectSubtree): shrink this
8967         a lot, since we may have a lot of them
8968         (_dbus_object_tree_free_all_unlocked): implement
8969         (_dbus_object_tree_dispatch_and_unlock): implement
8970
8971 2003-08-29  Havoc Pennington  <hp@pobox.com>
8972
8973         * dbus/dbus-internals.h: fix _DBUS_N_GLOBAL_LOCKS
8974
8975 2003-08-28  Havoc Pennington  <hp@pobox.com>
8976
8977         purge DBusObjectID
8978         
8979         * dbus/dbus-connection.c: port to no ObjectID, create a
8980         DBusObjectTree, rename ObjectTree to ObjectPath in public API
8981
8982         * dbus/dbus-connection.h (struct DBusObjectTreeVTable): delete 
8983         everything except UnregisterFunction and MessageFunction
8984         
8985         * dbus/dbus-marshal.c: port away from DBusObjectID, 
8986         add DBUS_TYPE_OBJECT_PATH
8987         
8988         * dbus/dbus-object-registry.[hc], dbus/dbus-object.[hc], 
8989         dbus/dbus-objectid.[hc]: remove these, we are moving to 
8990         path-based object IDs
8991
8992 2003-08-25  Havoc Pennington  <hp@pobox.com>
8993
8994         Just noticed that dbus_message_test is hosed, I wonder when I
8995         broke that. I thought make check was passing earlier...
8996         
8997         * dbus/dbus-object-tree.c: add new "object tree" to match DCOP 
8998         container tree, will replace most of dbus-object-registry
8999
9000         * dbus/dbus-string.c (_dbus_string_append_printf_valist): fix C99
9001         screwup
9002
9003 2003-08-19  Havoc Pennington  <hp@pobox.com>
9004
9005         * dbus/dbus-message.c (decode_string_field): support FIELD_SENDER
9006         (dbus_message_is_error): fix this function
9007
9008         * bus/dbus-daemon-1.1: clarify logic on when <deny>/<allow> rules
9009         match
9010
9011         * bus/policy.c (bus_client_policy_check_can_receive): fix code to
9012         reflect clarified man page
9013         (bus_client_policy_check_can_send): ditto
9014         
9015         * bus/session.conf.in: fixup
9016
9017         * bus/system.conf.in: fixup
9018
9019 2003-08-18  Havoc Pennington  <hp@redhat.com>
9020
9021         * dbus/dbus-hash.c (_dbus_hash_table_insert_two_strings): fix
9022
9023         * dbus/dbus-message.c (_dbus_message_loader_queue_messages): fix
9024         dumb bug created earlier (wrong order of args to
9025         decode_header_data())
9026         
9027         * tools/dbus-send.c: port
9028
9029         * tools/dbus-print-message.c (print_message): port
9030
9031         * test/data/*messages: port all messages over
9032         
9033         * dbus/dbus-message-builder.c: support including 
9034         message type
9035         
9036         * bus/driver.c: port over
9037         
9038         * bus/dispatch.c: port over to new stuff
9039
9040         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
9041         rename disconnect signal to "Disconnected"
9042
9043 2003-08-17  Havoc Pennington  <hp@pobox.com>
9044
9045         This doesn't compile yet, but syncing up so I can hack on it from
9046         work. What are branches for if not broken code? ;-)
9047         
9048         * dbus/dbus-protocol.h: remove DBUS_HEADER_FIELD_NAME, add
9049         DBUS_HEADER_FIELD_INTERFACE, DBUS_HEADER_FIELD_MEMBER,
9050         DBUS_HEADER_FIELD_ERROR_NAME
9051         
9052         * dbus/dbus-hash.c: Introduce DBUS_HASH_TWO_STRINGS as hack to use
9053         for the interface+member pairs
9054         (string_hash): change to use g_str_hash algorithm
9055         (find_direct_function, find_string_function): refactor these to
9056         share most code.
9057         
9058         * dbus/dbus-message.c: port all of this over to support 
9059         interface/member fields instead of name field
9060
9061         * dbus/dbus-object-registry.c: port over
9062         
9063         * dbus/dbus-string.c (_dbus_string_validate_interface): rename
9064         from _dbus_string_validate_name
9065
9066         * bus/dbus-daemon-1.1: change file format for the 
9067         <deny>/<allow> stuff to match new message naming scheme
9068
9069         * bus/policy.c: port over
9070
9071         * bus/config-parser.c: parse new format
9072         
9073 2003-08-16  Havoc Pennington  <hp@pobox.com>
9074
9075         * dbus/dbus-object-registry.c (add_and_remove_objects): remove
9076         broken assertion
9077
9078         * glib/dbus-gproxy.c: some hacking
9079
9080 2003-08-15  Havoc Pennington  <hp@redhat.com>
9081
9082         * dbus/dbus-pending-call.c (dbus_pending_call_block): implement
9083
9084         * dbus/dbus-connection.c
9085         (dbus_connection_send_with_reply_and_block): factor out internals;
9086         change to convert any error replies to DBusError instead of 
9087         returning them as a message
9088
9089 2003-08-15  Havoc Pennington  <hp@pobox.com>
9090
9091         * dbus/dbus-connection.c, 
9092         dbus/dbus-pending-call.c: Finish the pending call stuff
9093
9094 2003-08-14  Havoc Pennington  <hp@redhat.com>
9095
9096         * dbus/dbus-pending-call.c: start on new object that will replace
9097         DBusMessageHandler and ReplyHandlerData for tracking outstanding
9098         replies
9099
9100         * dbus/dbus-gproxy.c: start on proxy object used to communicate
9101         with remote interfaces
9102
9103         * dbus/dbus-gidl.c: do the boring boilerplate in here
9104         
9105 2003-08-12  Havoc Pennington  <hp@pobox.com>
9106
9107         * bus/dispatch.c (bus_dispatch): make this return proper 
9108         DBusHandlerResult to avoid DBUS_ERROR_UNKNOWN_METHOD
9109
9110         * dbus/dbus-errors.c (dbus_set_error): use
9111         _dbus_string_append_printf_valist
9112
9113         * dbus/dbus-string.c (_dbus_string_append_printf_valist)
9114         (_dbus_string_append_printf): new
9115
9116         * dbus/dbus-errors.h (DBUS_ERROR_UNKNOWN_MESSAGE): change to
9117         UNKNOWN_METHOD
9118
9119         * dbus/dbus-connection.c (dbus_connection_dispatch): handle
9120         DBUS_HANDLER_RESULT_NEED_MEMORY; send default error reply if a
9121         message is unhandled.
9122
9123 2003-08-11  Havoc Pennington  <hp@pobox.com>
9124
9125         * bus/test.c (client_disconnect_handler): change to return
9126         HANDLED (would have been REMOVE_MESSAGE)
9127
9128         * dbus/dbus-object.h (enum DBusHandlerResult): rename to
9129         HANDLED/NOT_YET_HANDLED instead of
9130         REMOVE_MESSAGE/ALLOW_MORE_HANDLERS to make it clearer how it 
9131         should be used.
9132
9133 2003-08-10  Havoc Pennington  <hp@pobox.com>
9134
9135         * tools/dbus-send.c (main): add --type argument, for now
9136         supporting only method_call and signal types.
9137
9138         * tools/dbus-print-message.c: print message type
9139
9140         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
9141         init connection->objects
9142
9143         * doc/dbus-specification.sgml: fix sgml
9144
9145         * bus/*.c: port over to object-instance API changes
9146
9147         * test/test-service.c: ditto
9148         
9149         * dbus/dbus-message.c (dbus_message_create_header): allow #NULL
9150         name, we will have to fix up the rest of the code to also handle
9151         this
9152         (dbus_message_new): generic message-creation call
9153         (set_string_field): allow appending name field
9154
9155 2003-08-06  Havoc Pennington  <hp@pobox.com>
9156
9157         * dbus/dbus-object-registry.c: implement signal connection 
9158         and dispatch
9159
9160         * dbus/dbus-connection.c (_dbus_connection_unref_unlocked): new
9161
9162         * dbus/dbus-internals.c (_dbus_memdup): new function
9163
9164 2003-08-02  Havoc Pennington  <hp@pobox.com>
9165
9166         * dbus/dbus-message.c (dbus_message_get_no_reply)
9167         (dbus_message_set_no_reply): add these and remove
9168         set_is_error/get_is_error
9169
9170         * dbus/dbus-protocol.h, doc/dbus-specification.sgml: 
9171         remove the ERROR flag, since there's now an ERROR type
9172
9173 2003-08-01  Havoc Pennington  <hp@pobox.com>
9174
9175         * dbus/dbus-object-registry.c (_dbus_object_registry_handle_and_unlock):
9176         implement
9177
9178         * dbus/dbus-message.c (dbus_message_get_type): new function
9179
9180         * doc/dbus-specification.sgml: add "type" byte to messages
9181
9182 2003-08-01  Havoc Pennington  <hp@pobox.com>
9183
9184         * dbus/dbus-protocol.h (DBUS_MESSAGE_TYPE_*): introduce
9185         a message type enum to distinguish kinds of message
9186         (DBUS_HEADER_FLAG_NO_REPLY_EXPECTED): flag for a message 
9187         that need not be replied to
9188
9189 2003-08-01  Havoc Pennington  <hp@pobox.com>
9190
9191         * dbus/dbus-marshal.c: adapt to DBusObjectID changes
9192         (unpack_8_octets): fix no-64-bit-int bug
9193
9194         * dbus/dbus-object-registry.c (validate_id): validate the 
9195         connection ID bits, not just the instance ID.
9196
9197         * dbus/dbus-connection.c (_dbus_connection_init_id): initialize
9198         the connection-global 33 bits of the object ID
9199
9200         * dbus/dbus-object-registry.c (info_from_entry): fill in 
9201         object ID in the new way
9202
9203         * dbus/dbus-objectid.h: rather than high/low bits, specifically 
9204         define server/client/instance bits.
9205
9206 2003-07-30  Havoc Pennington  <hp@pobox.com>
9207
9208         * dbus/dbus-connection.c (dbus_connection_register_object): fix
9209         build
9210
9211 2003-07-13  Havoc Pennington  <hp@pobox.com>
9212
9213         * dbus/dbus-object.h (struct DBusObjectVTable): add padding
9214         fields to DBusObjectVTable and DBusObjectInfo
9215
9216 2003-07-12  Havoc Pennington  <hp@pobox.com>
9217
9218         * dbus/dbus-object-registry.c: implement unit test,
9219         fix bugs discovered in process
9220
9221         * dbus/dbus-connection.c: remove handler_table and
9222         register_handler(), add DBusObjectRegistry usage
9223
9224         * dbus/dbus-objectid.c (dbus_object_id_is_null)
9225         (dbus_object_id_set_null): new functions
9226
9227 2003-07-08  Havoc Pennington  <hp@pobox.com>
9228
9229         * dbus/dbus-object.c: implement some of this
9230
9231         * dbus/dbus-object-registry.c
9232         (_dbus_object_registry_add_and_unlock): fill in the object_id out
9233         param
9234         (_dbus_object_registry_new): handle OOM
9235
9236 2003-07-08  Havoc Pennington  <hp@pobox.com>
9237
9238         * dbus/dbus-object.h: sketch out an API for registering objects
9239         with a connection, that allows us to use as little as 24 bytes
9240         per object and lets application code represent an object in 
9241         any conceivable way.
9242
9243         * dbus/dbus-object-registry.c: implement the hard bits of the
9244         DBusConnection aspect of object API. Not yet wired up.
9245         
9246 2003-07-06  Havoc Pennington  <hp@pobox.com>
9247
9248         * dbus/dbus-marshal.c (_dbus_marshal_set_object_id): new function
9249         (_dbus_marshal_object_id): new
9250         (_dbus_demarshal_object_id): new
9251         (_dbus_marshal_get_arg_end_pos): support object ID type, and
9252         consolidate identical switch cases. Don't conditionalize handling
9253         of DBUS_TYPE_UINT64, need to handle the type always.
9254         (_dbus_marshal_validate_arg): consolidate identical cases, and
9255         handle DBUS_TYPE_OBJECT_ID
9256
9257         * dbus/dbus-objectid.c: new file with DBusObjectID data type.
9258
9259         * dbus/dbus-protocol.h: add DBUS_TYPE_OBJECT_ID
9260
9261 2003-09-28  Havoc Pennington  <hp@pobox.com>
9262
9263         * real 0.13 release
9264
9265 2003-09-28  Havoc Pennington  <hp@pobox.com>
9266
9267         * doc/Makefile.am (dbus-specification.html): testing a funky hack
9268         to work with Debian db2html
9269
9270 2003-09-28  Havoc Pennington  <hp@pobox.com>
9271
9272         * configure.in: 0.13
9273
9274         * doc/Makefile.am (dbus-test-plan.html): accept nonexistence of
9275         stylesheet-images for benefit of Debian
9276         
9277         Change back to using filesystem-linked sockets for the system
9278         bus, so only root can create the default system bus address.
9279         
9280         * bus/system.conf.in: change to use
9281         DBUS_SYSTEM_BUS_DEFAULT_ADDRESS
9282
9283         * dbus/Makefile.am (INCLUDES): remove DBUS_SYSTEM_BUS_PATH define
9284         from here.
9285
9286         * configure.in: define DBUS_SYSTEM_BUS_DEFAULT_ADDRESS
9287         here, and AC_DEFINE DBUS_SYSTEM_PATH
9288
9289 2003-08-09  Anders Carlsson  <andersca@codefactory.se>
9290
9291         * doc/TODO:
9292         * doc/busconfig.dtd:
9293         Add busconfig DTD.
9294         
9295 2003-08-09  Anders Carlsson  <andersca@codefactory.se>
9296
9297         * doc/dbus-specification.sgml:
9298         Add activation reply values.
9299         
9300 2003-08-05  Havoc Pennington  <hp@redhat.com>
9301
9302         * configure.in: 0.12
9303
9304 2003-08-05  Anders Carlsson  <andersca@codefactory.se>
9305
9306         * glib/dbus-gmain.c: (watch_fd_new), (watch_fd_ref),
9307         (watch_fd_unref), (dbus_gsource_check), (dbus_gsource_dispatch),
9308         (add_watch), (remove_watch), (create_source):
9309         Refcount fds, fixes some reentrancy issues.
9310         
9311 2003-07-30  Havoc Pennington  <hp@redhat.com>
9312
9313         * dbus/dbus-bus.c (init_connections_unlocked): fix default system
9314         bus address to be abstract if we have abstract sockets
9315
9316         * NEWS: update
9317
9318 2003-07-28  Havoc Pennington  <hp@redhat.com>
9319
9320         * bus/messagebus.in: fix to avoid processname/servicename 
9321         confusion, from Michael Kearey
9322         https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=100965
9323         
9324 2003-07-23  Havoc Pennington  <hp@pobox.com>
9325
9326         * dbus/dbus-message.c (dbus_message_iter_get_named): 
9327         fix from Andy Hanton to remove broken "+1"
9328
9329 2003-07-16  Havoc Pennington  <hp@pobox.com>
9330
9331         * tools/dbus-launch.c (babysit): close stdout/stderr in the
9332         babysitter process, as suggested by Thomas Leonard, so 
9333         an "eval `dbus-launch --exit-with-session`" will actually 
9334         return
9335
9336 2003-07-16  Havoc Pennington  <hp@pobox.com>
9337
9338         * configure.in: print out EXPANDED_* variables in the summary at
9339         the end; clean up the code that computes EXPANDED_ variables and
9340         get the ones using exec_prefix right. Should make things work
9341         when you build without --prefix
9342
9343 2003-06-29  Havoc Pennington  <hp@pobox.com>
9344
9345         * mono/Test.cs (class Test): fire up a main loop and run it
9346
9347         * mono/DBus.cs (DBus): don't g_thread_init since it can only be
9348         done once, the app has to do it
9349
9350 2003-06-26  Havoc Pennington  <hp@pobox.com>
9351
9352         * mono/Connection.cs: set up connection with the glib main loop
9353
9354 2003-07-01  Havoc Pennington  <hp@redhat.com>
9355
9356         * doc/dbus-specification.sgml: clarify the format of a type code,
9357         change suggested by Jim Blandy
9358
9359 2003-06-29  Miloslav Trmac  <mitr@volny.cz>
9360
9361         * doc/Makefile.am:
9362         * tools/Makefile.am: Don't assume srcdir == builddir.
9363
9364         * dbus/dbus-memory.c (dbus_realloc): Don't check guards after shrinking
9365         the allocated block.
9366         (_dbus_memory_test): New function.
9367         * dbus/dbus-test.h: Add _dbus_memory_test ().
9368         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): Call it.
9369
9370         * dbus/dbus-message.c (decode_header_data): Use %.4s instead
9371         of %c%c%c%c.
9372         (dbus_message_new): Remove obsolete @todo.
9373
9374         * dbus/dbus-marshal.c (_dbus_marshal_set_int64)
9375         (_dbus_marshal_set_uint64): Fix comment.
9376
9377         * dbus/dbus-message.c (append_int_field, append_uint_field): Don't
9378         hardcode FIELD_REPLY_SERIAL.
9379
9380         * dbus/dbus-mainloop.c (_dbus_loop_remove_watch)
9381         (_dbus_loop_remove_timeout): Cast function pointers to (void *) for %p
9382
9383         * configure.in: Add -D_POSIX_C_SOURCE=199309L -DBSD_SOURCE to CFLAGS
9384         and disable DBUS_USE_ATOMIC_INT_486 when --enable-ansi is used
9385
9386 2003-06-24  Havoc Pennington  <hp@pobox.com>
9387
9388         * mono/*.cs: Use IntPtr.Zero instead of ((IntPtr) 0)
9389
9390 2003-06-23  Anders Carlsson  <andersca@codefactory.se>
9391
9392         * configure.in:
9393         * gcj/.cvsignore:
9394         * gcj/Hello.java:
9395         * gcj/Makefile.am:
9396         * gcj/TestMessage.java: (TestMessage), (TestMessage.main):
9397         * gcj/org/.cvsignore:
9398         * gcj/org/Makefile.am:
9399         * gcj/org/freedesktop/.cvsignore:
9400         * gcj/org/freedesktop/Makefile.am:
9401         * gcj/org/freedesktop/dbus/.cvsignore:
9402         * gcj/org/freedesktop/dbus/Makefile.am:
9403         * gcj/org/freedesktop/dbus/Message.java: (Message),
9404         (Message.Message):
9405         * gcj/org/freedesktop/dbus/natMessage.cc:
9406         Fix the build system.
9407
9408 2003-06-22  Havoc Pennington  <hp@pobox.com>
9409
9410         * mono/Connection.cs: add more bindings
9411
9412         * dbus/dbus-threads.c (dbus_threads_init): allow calling this
9413         more than once.
9414
9415 2003-06-22  Havoc Pennington  <hp@pobox.com>
9416
9417         * mono/Connection.cs, mono/DBus.cs, mono/Error.cs:
9418         Start wrapping more stuff.
9419
9420 2003-06-22  Havoc Pennington  <hp@pobox.com>
9421
9422         * mono/Message.cs: implement Message.Wrap() that ensures we only
9423         have a single C# wrapper per DBusMessage, assuming it works which
9424         it probably doesn't.
9425
9426         * dbus/dbus-message.c (dbus_message_allocate_data_slot): new
9427         (dbus_message_free_data_slot): new
9428         (dbus_message_set_data): new
9429         (dbus_message_get_data): new
9430
9431 2003-06-22  Havoc Pennington  <hp@pobox.com>
9432
9433         * dbus/dbus-dataslot.c (_dbus_data_slot_allocator_unref)
9434         (_dbus_data_slot_allocator_alloc): rework these to keep a
9435         reference count on each slot and automatically manage a global
9436         slot ID variable passed in by address
9437
9438         * bus/bus.c: convert to new dataslot API
9439
9440         * dbus/dbus-bus.c: convert to new dataslot API
9441
9442         * dbus/dbus-connection.c: convert to new dataslot API
9443
9444         * dbus/dbus-server.c: convert to new dataslot API
9445
9446         * glib/dbus-gmain.c: ditto
9447
9448         * bus/test.c: ditto
9449
9450         * bus/connection.c: ditto
9451
9452 2003-06-22  Anders Carlsson  <andersca@codefactory.se>
9453
9454         * configure.in: Add AM_PROG_GCJ and move AM_PROG_LIBTOOL
9455         after the gcj checks so that the correct configuration tags
9456         will be added to libtool.
9457
9458         * dbus-glib-1.pc.in: No need to specify any includes since
9459         dbus-1.pc.in has those.
9460
9461 2003-06-22  Havoc Pennington  <hp@pobox.com>
9462
9463         * mono/*, gcj/*, configure.in, Makefile.am:
9464         Check in makefiles and subdirs for mono and gcj bindings.
9465         Neither binding actually exists, just trying to get through
9466         all the build and other boring bits.
9467
9468 2003-06-21  Philip Blundell  <philb@gnu.org>
9469
9470         * tools/dbus-monitor.1: Updated.
9471
9472         * tools/dbus-send.1: Likewise.
9473
9474 2003-06-20  Anders Carlsson  <andersca@codefactory.se>
9475
9476         * dbus/dbus-transport-unix.c (unix_handle_watch): Check
9477         for hangup and error after checking read so we won't discard
9478         pending data if both hangup and read are set.
9479
9480 2003-06-19  Philip Blundell  <philb@gnu.org>
9481
9482         * tools/dbus-print-message.c (print_message): Handle BOOLEAN.
9483
9484         * tools/dbus-send.c: Accept both --system and --session.
9485
9486         * tools/dbus-monitor.c: Same here.
9487
9488 2003-06-19  Anders Carlsson  <andersca@codefactory.se>
9489
9490         * glib/dbus-glib.h: Fix so that dbus-glib.h can be used
9491         from C++ (Patch by Miloslav Trmac).
9492
9493 2003-06-15  Joe Shaw  <joe@assbarn.com>
9494
9495         * configure.in: Check for socklen_t.
9496
9497         * dbus/dbus-sysdeps.c: Define socklen_t if it's not defined.
9498
9499         * test/test-segfault.c: Add #include <sys/time.h>
9500
9501         * tools/Makefile.am: Add DBUS_X_CFLAGS to the INCLUDES since
9502         dbus-launch needs it.
9503
9504 2003-06-09  Havoc Pennington  <hp@redhat.com>
9505
9506         * dbus/dbus-sysdeps.c (_dbus_listen_unix_socket): don't use
9507         SUN_LEN, it breaks abstract socket usage
9508
9509         * dbus/dbus-internals.c (_dbus_verbose_real): only print PID at
9510         starts of lines.
9511
9512 2003-06-04  Havoc Pennington  <hp@pobox.com>
9513
9514         * dbus/dbus-server.c (dbus_server_listen): allow abstract sockets
9515         using unix:abstract=/foo, and when listening in a tmpdir
9516         i.e. unix:tmpdir=/tmp, always use abstract sockets if we can.
9517
9518         * dbus/dbus-transport.c (_dbus_transport_open): support
9519         unix:abstract=/foo
9520
9521         * dbus/dbus-server-unix.c (_dbus_server_new_for_domain_socket):
9522         support abstract sockets
9523
9524         * dbus/dbus-transport-unix.c
9525         (_dbus_transport_new_for_domain_socket): support abstract sockets
9526
9527         * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket): add "abstract"
9528         toggle as an argument, implement abstract namespace support
9529         (_dbus_listen_unix_socket): ditto
9530
9531         * configure.in: add --enable-abstract-sockets and implement
9532         a configure check for autodetection of the right value.
9533
9534 2003-06-01  Havoc Pennington  <hp@pobox.com>
9535
9536         * tools/dbus-cleanup-sockets.c: add utility to clean up sockets
9537         in /tmp (though on Linux this will end up being useless,
9538         when we add abstract namespace support)
9539
9540         * configure.in: define DBUS_SESSION_SOCKET_DIR in addition to
9541         subst'ing it
9542
9543 2003-05-28  Colin Walters  <walters@verbum.org>
9544
9545         * tools/dbus-monitor.c (main): Fix silly typo (s/--session/--system/).
9546
9547 2003-05-18  Anders Carlsson  <andersca@codefactory.se>
9548
9549         * dbus/dbus-message.c (dbus_message_new): Remove @todo.
9550
9551 2003-05-17  Colin Walters  <walters@gnu.org>
9552
9553         * tools/dbus-send.c: Don't exit with an error code if --help was
9554         passed.  Default to using the session bus instead of the system
9555         one.
9556
9557         * tools/dbus-launch.c: Ditto.
9558
9559         * tools/dbus-monitor.c: Ditto.
9560
9561         * tools/dbus-send.1: Update with new arguments.
9562
9563         * tools/dbus-launch.c: Emit code to export variables.  New
9564         arguments -s and -c to specify shell syntax, and a bit of code to
9565         autodetect syntax.  Also, allow specifying a program to run.
9566
9567         * tools/dbus-launch.1: Update with new arguments.
9568
9569         * tools/dbus-send.1: Ditto.
9570
9571         * tools/dbus-monitor.1: Ditto.
9572
9573 2003-05-17  Havoc Pennington  <hp@pobox.com>
9574
9575         * bus/config-parser.c (merge_included): merge in policies from
9576         child configuration file.
9577
9578         * bus/policy.c (bus_policy_merge): function to merge two policies
9579         together
9580
9581 2003-05-16  Havoc Pennington  <hp@redhat.com>
9582
9583         * dbus/dbus-connection.c: disable verbose lock spew
9584
9585         * tools/dbus-send.c: add --print-reply command line option
9586
9587         * tools/dbus-print-message.h (print_message): new util function
9588         shared by dbus-send and dbus-monitor
9589
9590         * tools/dbus-monitor.c (handler_func): exit on disconnect
9591
9592         * dbus/dbus-transport-unix.c (do_reading): if the transport is
9593         disconnected, don't try to use the read_watch
9594
9595         * dbus/dbus-watch.c (dbus_watch_get_enabled): assert watch != NULL
9596         so we can find this bug more easily
9597
9598 2003-05-16  Havoc Pennington  <hp@redhat.com>
9599
9600         * bus/policy.c (free_rule_list_func): avoid a crash when passed
9601         NULL as DBusHashTable is annoyingly likely to do.
9602
9603 2003-05-16  Colin Walters  <walters@verbum.org>
9604
9605         * tools/dbus-monitor.c: Add --session argument and usage()
9606         function.
9607
9608         * tools/dbus-monitor.1: Update with new --session arg.
9609
9610         * bus/Makefile.am (install-data-hook): Create
9611         $(libdir)/dbus-1.0/services so that the session bus is happy.
9612
9613 2003-05-15  Havoc Pennington  <hp@redhat.com>
9614
9615         * dbus/dbus-sysdeps.c (_dbus_atomic_dec, _dbus_atomic_inc): work
9616         on non-x86. ifdef's are evil.
9617
9618 2003-05-15  Havoc Pennington  <hp@redhat.com>
9619
9620         * configure.in: 0.11
9621
9622         * NEWS: update
9623
9624         * bus/Makefile.am (initddir): apparently we are supposed to put
9625         init scripts in /etc/rc.d/init.d not /etc/init.d
9626
9627         * bus/Makefile.am: remove the "you must --enable-tests to make
9628         check" as it broke distcheck
9629
9630         * bus/Makefile.am (install-data-hook): create /etc/dbus-1/system.d
9631
9632 2003-05-13  James Willcox  <jwillcox@gnome.org>
9633
9634         * configure.in:
9635         * bus/activation.c: (bus_activation_service_created),
9636         (bus_activation_activate_service):
9637         * bus/driver.c: (bus_driver_send_service_deleted),
9638         (bus_driver_send_service_created), (bus_driver_send_service_lost),
9639         (bus_driver_send_service_acquired),
9640         (bus_driver_send_welcome_message),
9641         (bus_driver_handle_list_services):
9642         * bus/session.conf.in:
9643         * dbus/dbus-bus.c: (dbus_bus_acquire_service),
9644         (dbus_bus_service_exists), (dbus_bus_activate_service):
9645         * dbus/dbus-bus.h:
9646
9647         Add some convenience API which lets you activate a service, and did a
9648         bunch of s/0/DBUS_TYPE_INVALID/ in calls to dbus_message_append_args()
9649         and dbus_message_get_args()
9650
9651 2003-05-11  Havoc Pennington  <hp@pobox.com>
9652
9653         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): fix to avoid
9654         calling _dbus_marshal_validate_arg() for every byte in a byte
9655         array, etc.
9656
9657         * dbus/dbus-message-handler.c: use atomic reference counting to
9658         reduce number of locks slightly; the global lock in here sucks
9659
9660         * dbus/dbus-connection.c
9661         (_dbus_connection_update_dispatch_status_and_unlock): variant of
9662         update_dispatch_status that can be called with lock held; then use
9663         in a couple places to reduce locking/unlocking
9664         (dbus_connection_send): hold the lock over the whole function
9665         instead of acquiring it twice.
9666
9667         * dbus/dbus-timeout.c (_dbus_timeout_new): handle OOM
9668
9669         * bus/connection.c (bus_connections_setup_connection): fix access
9670         to already-freed memory.
9671
9672         * dbus/dbus-connection.c: keep a little cache of linked list
9673         nodes, to avoid using the global linked list alloc lock in the
9674         normal send-message case. Instead we just use the connection lock
9675         that we already have to take.
9676
9677         * dbus/dbus-list.c (_dbus_list_find_last): new function
9678
9679         * dbus/dbus-sysdeps.c (_dbus_atomic_inc, _dbus_atomic_dec):
9680         change to use a struct for the atomic type; fix docs,
9681         they return value before increment, not after increment.
9682
9683         * dbus/dbus-string.c (_dbus_string_append_4_aligned)
9684         (_dbus_string_append_8_aligned): new functions to try to
9685         microoptimize this operation.
9686         (reallocate_for_length): break this out of set_length(), to
9687         improve profile info, and also so we can consider inlining the
9688         set_length() part.
9689
9690         * dbus/dbus-message.c (dbus_message_new_empty_header): init data
9691         strings with some preallocation, cuts down on our calls to realloc
9692         a fair bit. Though if we can get the "move entire string to empty
9693         string" optimization below to kick in here, it would be better.
9694
9695         * dbus/dbus-string.c (_dbus_string_move): just call
9696         _dbus_string_move_len
9697         (_dbus_string_move_len): add a special case for moving
9698         an entire string into an empty string; we can just
9699         swap the string data instead of doing any reallocs.
9700         (_dbus_string_init_preallocated): new function
9701
9702 2003-05-11  Havoc Pennington  <hp@pobox.com>
9703
9704         Write a "test-profile" that does echo client-server with threads;
9705         profile reveals lock contention, memcpy/realloc of buffers, and
9706         UTF-8 validation as hot spots. 20% of lock contention eliminated
9707         with dbus_atomic_inc/dec implementation on x86.  Much remaining
9708         contention is global mempool locks for GList and DBusList.
9709
9710         * dbus/dbus-sysdeps.c (_dbus_atomic_inc, _dbus_atomic_dec): add
9711         x86 implementation
9712
9713         * dbus/dbus-connection.c (struct DBusConnection): use
9714         dbus_atomic_t for the reference count
9715
9716         * dbus/dbus-message.c (struct DBusMessage): declare
9717         dbus_atomic_t values as volatile
9718
9719         * configure.in: code to detect ability to use atomic integer
9720         operations in assembly, from GLib patch
9721
9722         * dbus/dbus-internals.c (_dbus_verbose_real): call getpid every
9723         time, tired of it being wrong in threads and forked processes
9724
9725         * glib/test-profile.c: a little program to bounce messages back
9726         and forth between threads and eat CPU
9727
9728         * dbus/dbus-connection.c: add debug spew macros for debugging
9729         thread locks; include config.h at top; fix deadlock in
9730         dbus_connection_flush()
9731
9732 2003-05-08  Havoc Pennington  <hp@pobox.com>
9733
9734         * dbus/dbus-spawn.c: s/_exit/exit/ because it was keeping gcov
9735         data from getting written, and there wasn't a good reason to
9736         use _exit really.
9737
9738         * test/decode-gcov.c (mark_inside_dbus_build_tests): don't count
9739         dbus_verbose lines in test coverage
9740         (main): add list of functions sorted by # of untested blocks
9741         to the coverage report
9742
9743         * dbus/dbus-mempool.c: put some test-only code in DBUS_BUILD_TESTS
9744
9745         * dbus/dbus-marshal.c (_dbus_marshal_test): extend test coverage
9746
9747         * dbus/dbus-message-handler.c (_dbus_message_handler_test):
9748         extend test coverage
9749
9750         * test/data/auth/cancel.auth-script: test canceling an
9751         authentication
9752
9753         * dbus/Makefile.am: remove dbus-server-debug.[hc] for now, as they
9754         aren't used. in CVS history if we end up needing them.
9755
9756 2003-05-04  Havoc Pennington  <hp@pobox.com>
9757
9758         * dbus/dbus-message-handler.c (_dbus_message_handler_test): add
9759         unit test
9760
9761         * dbus/dbus-marshal.c (_dbus_demarshal_string_array): fix this
9762         function, which assumed length was in # of strings, not bytes
9763
9764         * dbus/dbus-message.c (_dbus_message_test): add tests for some
9765         missing coverage
9766
9767         * dbus/dbus-connection.c
9768         (_dbus_connection_queue_received_message): disable function for
9769         now, we are only using it in test mode
9770
9771         * dbus/dbus-message.c (_dbus_message_loader_queue_messages):
9772         remove a mistaken FIXME
9773
9774 2003-05-04  Havoc Pennington  <hp@pobox.com>
9775
9776         * dbus/dbus-connection.c (dbus_connection_preallocate_send):
9777         unlock mutex on successful return, patch from Anders Gustafsson
9778
9779 2003-05-04  Havoc Pennington  <hp@pobox.com>
9780
9781         * dbus-glib-1.pc.in (Requires): fix dependencies, from
9782         Anders Gustafsson
9783
9784 2003-05-04  Havoc Pennington  <hp@pobox.com>
9785
9786         * tools/dbus-launch.c: implement
9787
9788         * bus/main.c (main), bus/bus.c (bus_context_new):
9789         implement --print-pid and --fork
9790
9791 2003-05-03  Havoc Pennington  <hp@redhat.com>
9792
9793         * dbus/dbus-address.c (dbus_parse_address): fix bug when a key in
9794         the address had no value, and add to test suite. Fix and
9795         regression test from Miloslav Trmac
9796
9797 2003-05-03  Havoc Pennington  <hp@pobox.com>
9798
9799         * dbus/dbus-watch.c (dbus_watch_handle): warn and return if a
9800         watch is invalid when handled
9801
9802         * tools/Makefile.am, tools/dbus-launch.c, tools/dbus-launch.1: add
9803         dbus-launch utility to launch the bus from a shell script.  Didn't
9804         actually implement dbus-launch yet, it's just a placeholder still.
9805
9806 2003-05-03  Havoc Pennington  <hp@pobox.com>
9807
9808         * bus/Makefile.am, bus/dbus-daemon-1.1.in: man page for the
9809         daemon; also documents daemon config file, so replaces
9810         doc/config-file.txt. Corrected some stuff from config-file.txt in
9811         the process of moving it.
9812
9813 2003-05-03  Havoc Pennington  <hp@pobox.com>
9814
9815         * tools/Makefile.am, tools/dbus-send.1, tools/dbus-monitor.1:
9816         add some man pages
9817
9818 2003-05-03  Colin Walters  <walters@verbum.org>
9819
9820         * dbus/dbus-sysdeps.c (fill_user_info): Test against
9821         DBUS_UID_UNSET to determine whether to do a uid lookup or not.
9822
9823         * Makefile.am: Update to use new .pc versioning scheme.
9824
9825 2003-05-02  Havoc Pennington  <hp@redhat.com>
9826
9827         * bus/system.conf.in: allow send/receive to/from message bus
9828         service
9829
9830 2003-04-30  Havoc Pennington  <hp@redhat.com>
9831
9832         * configure.in: print a note when building with unit tests and
9833         without assertions
9834
9835 2003-04-30  Havoc Pennington  <hp@redhat.com>
9836
9837         * Makefile.am: add a check-local that complains if you didn't
9838         configure with --enable-tests
9839
9840 2003-04-29  Havoc Pennington  <hp@redhat.com>
9841
9842         * glib/dbus-gmain.c: docs cleanups
9843
9844         * dbus/dbus-types.h: add docs on int64 types
9845
9846         * dbus/dbus-memory.c: fix docs to avoid putting private API in
9847         public API docs section
9848
9849 2003-04-29  Havoc Pennington  <hp@redhat.com>
9850
9851         * dbus-1.pc.in, dbus-glib-1.pc.in: rename these from
9852         dbus-1.0.pc.in, dbus-glib-1.0.pc.in. As these change with the
9853         parallel install API version, not with the D-BUS package version.
9854
9855         * HACKING: move some of README over here
9856
9857         * README: updates, and document API/ABI policy
9858
9859         * configure.in: reindentation
9860
9861 2003-04-29  Havoc Pennington  <hp@redhat.com>
9862
9863         * dbus/dbus.h: add "you have to define DBUS_API_SUBJECT_TO_CHANGE
9864         to use this library" to be sure people have the right
9865         expectations.
9866
9867 2003-04-28  Havoc Pennington  <hp@redhat.com>
9868
9869         * configure.in: add --enable-docs which by default is auto yes if
9870         doxygen and db2html found, no otherwise; but can be forced on/off
9871
9872         * doc/Makefile.am: conditionalize whether to build docs on
9873         --enable-docs
9874
9875 2003-04-28  Havoc Pennington  <hp@redhat.com>
9876
9877         * configure.in: 0.10
9878
9879         * NEWS: update
9880
9881         * bus/system.conf.in: add <includedir>system.d</includedir>
9882
9883         * dbus/dbus-userdb.c (_dbus_user_database_lookup): fix bug when
9884         username was provided but not uid
9885
9886         * bus/config-parser.c (struct BusConfigParser): keep track of
9887         whether the parser is toplevel or was included; change some
9888         of the error handling if it's included.
9889
9890 2003-04-27  Havoc Pennington  <hp@pobox.com>
9891
9892         Unbreak my code...
9893
9894         * dbus/dbus-transport.c (_dbus_transport_get_dispatch_status):
9895         report correct status if we finish processing authentication
9896         inside this function.
9897
9898         * bus/activation.c (try_send_activation_failure): use
9899         bus_transaction_send_error_reply
9900
9901         * bus/connection.c (bus_connection_get_groups): return an error
9902         explaining the problem
9903
9904         * bus/bus.c (bus_context_check_security_policy): implement
9905         restriction here that inactive connections can only send the
9906         hello message. Also, allow bus driver to send anything to
9907         any recipient.
9908
9909         * bus/connection.c (bus_connection_complete): create the
9910         BusClientPolicy here instead of on-demand.
9911         (bus_connection_get_policy): don't return an error
9912
9913         * dbus/dbus-message.c (dbus_message_new_error_reply): allow NULL
9914         sender field in message being replied to
9915
9916         * bus/bus.c (bus_context_check_security_policy): fix silly typo
9917         causing it to return FALSE always
9918
9919         * bus/policy.c (bus_client_policy_check_can_send): fix bug where
9920         we checked sender rather than destination
9921
9922 2003-04-25  Havoc Pennington  <hp@redhat.com>
9923
9924         test suite is slightly hosed at the moment, will fix soon
9925
9926         * bus/connection.c (bus_connections_expire_incomplete): fix to
9927         properly disable the timeout when required
9928         (bus_connection_set_name): check whether we can remove incomplete
9929         connections timeout after we complete each connection.
9930
9931         * dbus/dbus-mainloop.c (check_timeout): fix this up a bit,
9932         probably still broken.
9933
9934         * bus/services.c (bus_registry_acquire_service): implement max
9935         number of services owned, and honor allow/deny rules on which
9936         services a connection can own.
9937
9938         * bus/connection.c (bus_connection_get_policy): report errors here
9939
9940         * bus/activation.c: implement limit on number of pending
9941         activations
9942
9943 2003-04-25  Havoc Pennington  <hp@redhat.com>
9944
9945         * dbus/dbus-transport.c (_dbus_transport_get_unix_user): fix bug
9946         where we used >= 0 instead of != DBUS_UID_UNSET.
9947
9948 2003-04-25  Havoc Pennington  <hp@redhat.com>
9949
9950         * glib/dbus-gmain.c (remove_watch): fix for a crash when watches
9951         were toggled without add/remove, fix from Anders Gustafsson
9952
9953 2003-04-24  Havoc Pennington  <hp@redhat.com>
9954
9955         * test/data/valid-config-files/basic.conf: add <limit> tags to
9956         this test
9957
9958         * bus/config-parser.h, bus/config-parser.c, bus/bus.c: Implement
9959         <limit> tag in configuration file.
9960
9961 2003-04-24  Havoc Pennington  <hp@redhat.com>
9962
9963         * bus/dispatch.c: somehow missed some name_is
9964
9965         * dbus/dbus-timeout.c (_dbus_timeout_set_enabled)
9966         (_dbus_timeout_set_interval): new
9967
9968         * bus/connection.c (bus_connections_setup_connection): record time
9969         when each connection is first set up, and expire them after the
9970         auth timeout passes.
9971
9972 2003-04-24  Havoc Pennington  <hp@redhat.com>
9973
9974         * dbus/dbus-message.c (dbus_message_name_is): rename
9975         (dbus_message_service_is): rename
9976         (dbus_message_sender_is): rename
9977         (dbus_message_get_service): rename
9978
9979 2003-04-24  Havoc Pennington  <hp@redhat.com>
9980
9981         * configure.in: add --enable-checks
9982
9983         * dbus/dbus-message.c (dbus_message_new): reverse name/service arguments
9984
9985         * dbus/dbus-connection.c (dbus_connection_preallocate_send): fix
9986         to use thread locks.
9987         (_dbus_connection_handler_destroyed_locked): move some private
9988         functions into proper docs group
9989
9990         * dbus/dbus-internals.h: add _dbus_return_if_fail,
9991         _dbus_return_val_if_fail
9992
9993         Throughout: use dbus_return_if_fail
9994
9995 2003-04-23  James Willcox  <jwillcox@gnome.org>
9996
9997         * glib/dbus-glib.h:
9998         * glib/dbus-gmain.c: (add_timeout), (wakeup_main), (create_source),
9999         (dbus_connection_setup_with_g_main),
10000         (dbus_server_setup_with_g_main):
10001         * glib/test-dbus-glib.c: (main):
10002         * glib/test-thread-client.c: (main):
10003         * glib/test-thread-server.c: (new_connection_callback), (main):
10004         * tools/dbus-monitor.c: (main):
10005
10006         Added a GMainContext argument to dbus_connection_setup_with_g_main()
10007         and dbus_server_setup_with_g_main().
10008
10009 2003-04-20  Havoc Pennington  <hp@pobox.com>
10010
10011         * doc/dbus-specification.sgml: document the restrictions on
10012         message and service names
10013
10014 2003-04-22  Havoc Pennington  <hp@redhat.com>
10015
10016         * dbus/dbus-message.c, dbus/dbus-marshal.c: add 64-bit integer
10017         support, and do some code cleanups to share more code and
10018         speed up array marshal/demarshal.
10019
10020         * dbus-1.0.pc.in (Cflags): put libdir include file in cflags
10021
10022         * configure.in: generate dbus-arch-deps.h
10023
10024         * dbus/dbus-protocol.h (DBUS_TYPE_INT64, DBUS_TYPE_UINT64): add
10025         64-bit typecodes
10026
10027 2003-04-22  Havoc Pennington  <hp@redhat.com>
10028
10029         * test/data/valid-messages/opposite-endian.message: fix test
10030         to use proper type for rply field
10031
10032         * test/data/invalid-messages: add tests for below validation
10033
10034         * dbus/dbus-message.c (decode_header_data): validate field types,
10035         and validate that named fields are valid names
10036         (decode_name_field): consider messages in the
10037         org.freedesktop.Local. namespace to be invalid.
10038
10039         * dbus/dbus-string.c (_dbus_string_validate_name): new
10040
10041 2003-04-19  Havoc Pennington  <hp@pobox.com>
10042
10043         * bus/driver.c (bus_driver_handle_hello): check limits and
10044         return an error if they are exceeded.
10045
10046         * bus/connection.c: maintain separate lists of active and inactive
10047         connections, and a count of each. Maintain count of completed
10048         connections per user. Implement code to check connection limits.
10049
10050         * dbus/dbus-list.c (_dbus_list_unlink): export
10051
10052         * bus/bus.c (bus_context_check_security_policy): enforce a maximum
10053         number of bytes in the message queue for a connection
10054
10055 2003-04-18  Havoc Pennington  <hp@pobox.com>
10056
10057         * dbus/dbus-auth.c (record_mechanisms): memleak fixes
10058
10059         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): fix some
10060         memleaks
10061
10062         * dbus/dbus-keyring.c (add_new_key): fix a memleak, and
10063         on realloc be sure to update the pointer in the keyring
10064
10065         * dbus/dbus-string.c (_dbus_string_zero): compensate for align
10066         offset to avoid writing to unallocated memory
10067
10068         * dbus/dbus-auth.c (process_rejected): return FALSE if we fail to
10069         try the next mechanism, so we properly handle OOM
10070
10071         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): fix double-free
10072         on OOM.
10073         (_dbus_keyring_new): fix OOM bug
10074         (_dbus_keyring_new_homedir): always set error; impose a maximum
10075         number of keys we'll load from the file, mostly to speed up the
10076         test suite and make its OOM checks more useful, but also for
10077         general sanity.
10078
10079         * dbus/dbus-auth.c (process_error_server): reject authentication
10080         if we get an error from the client
10081         (process_cancel): on cancel, send REJECTED, per the spec
10082         (process_error_client): send CANCEL if we get an error from the
10083         server.
10084
10085 2003-04-18  Havoc Pennington  <hp@pobox.com>
10086
10087         * dbus/dbus-mainloop.c (_dbus_loop_iterate): fix UMR in verbose
10088         debug spew
10089
10090         * dbus/dbus-auth.c (handle_client_data_cookie_sha1_mech): fix OOM
10091         handling problem
10092
10093         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): only whine
10094         about DBUS_TEST_HOMEDIR once
10095
10096         * bus/Makefile.am (TESTS_ENVIRONMENT): put DBUS_TEST_HOMEDIR in
10097         the environment
10098
10099         * bus/dispatch.c (bus_dispatch_sha1_test): actually load sha1
10100         config file so we test the right thing
10101
10102         Throughout: assorted docs improvements
10103
10104 2003-04-18  Havoc Pennington  <hp@pobox.com>
10105
10106         * glib/dbus-gmain.c: adapt to watch changes
10107
10108         * bus/bus.c, bus/activation.c, etc.: adjust to watch changes
10109
10110         * dbus/dbus-server.h: remove dbus_server_handle_watch
10111
10112         * dbus/dbus-connection.h: remove dbus_connection_handle_watch
10113
10114         * dbus/dbus-watch.c (dbus_watch_handle): change DBusWatch to work
10115         like DBusTimeout, so we don't need dbus_connection_handle_watch
10116         etc.
10117
10118 2003-04-17  Havoc Pennington  <hp@redhat.com>
10119
10120         * dbus/dbus-userdb.c, dbus/dbus-sysdeps.c: redo all the passwd
10121         database usage so it all goes via the DBusUserDatabase cache.
10122
10123 2003-04-17  Havoc Pennington  <hp@redhat.com>
10124
10125         * dbus/dbus-mainloop.c (_dbus_loop_iterate): fix logic so that if
10126         there was an OOM watch we skipped, we always return TRUE so we
10127         iterate again to have a look at it again. Fixes test suite hang.
10128         Code rearrangement also lets us lose some memset and only iterate
10129         over callbacks once.
10130
10131         * bus/driver.c (bus_driver_handle_message): sense of test for
10132         reply was backward
10133
10134 2003-04-16  Havoc Pennington  <hp@pobox.com>
10135
10136         * doc/dbus-specification.sgml: make spec say serials are unsigned
10137
10138         * dbus/dbus-message.h: change message serials to unsigned
10139
10140         * dbus/dbus-connection.c: adapt to message serials being unsigned
10141
10142 2003-04-15  Havoc Pennington  <hp@pobox.com>
10143
10144         * bus/bus.c: create and keep around a shared DBusUserDatabase
10145         object.
10146
10147         * bus/connection.c (bus_connection_get_groups): don't cache
10148         groups for user in the connection object, since user database
10149         object now does that.
10150
10151 2003-04-16  Havoc Pennington  <hp@redhat.com>
10152
10153         * dbus/dbus-message.c (_dbus_message_add_size_counter): keep a
10154         list of size counters
10155         (_dbus_message_loader_putback_message_link): put back a popped link
10156
10157         * dbus/dbus-connection.c
10158         (dbus_connection_set_max_live_messages_size): rename
10159         max_received_size
10160         (dbus_connection_get_outgoing_size): get size of outgoing
10161         queue
10162         (_dbus_connection_set_connection_counter): remove this cruft
10163
10164 2003-04-14  Havoc Pennington  <hp@redhat.com>
10165
10166         * dbus/dbus-userdb.c: user database abstraction, mostly to get
10167         caching, but at some point we might want to be able to use a
10168         different database.
10169
10170         * bus/dispatch.c (bus_dispatch_sha1_test): add a test that uses
10171         SHA1 conf file to test the sha1 auth mechanism, since the regular
10172         test always uses EXTERNAL when available.
10173
10174         * configure.in,
10175         test/data/valid-config-files/debug-allow-all-sha1.conf.in:
10176         add conf file that requires use of sha1 auth
10177
10178 2003-04-13  Havoc Pennington  <hp@pobox.com>
10179
10180         * tools/dbus-send.c, tools/dbus-monitor.c: two utility programs
10181         from Philip Blundell to send messages and monitor them.
10182
10183 2003-04-13  Havoc Pennington  <hp@pobox.com>
10184
10185         * dbus/dbus-mainloop.c: fix some reentrancy issues by refcounting
10186         callbacks
10187
10188         * test/data/valid-config-files/debug-allow-all.conf.in: allow all
10189         users
10190
10191         * dbus/dbus-transport.c (_dbus_transport_get_dispatch_status):
10192         fix to only recover unused bytes if we're already authenticated
10193         (_dbus_transport_get_is_authenticated): fix to still mark us
10194         authenticated if there are unused bytes.
10195
10196         * bus/dispatch.c: implement security policy checking
10197
10198         * bus/connection.c (bus_transaction_send_from_driver): new
10199
10200         * bus/bus.c (bus_context_check_security_policy): new
10201
10202         * bus/dispatch.c (send_service_nonexistent_error): delete this,
10203         now we just set the DBusError and it gets converted to an error
10204         reply.
10205
10206         * bus/connection.c (allow_user_function): enable code using actual
10207         data from the config file
10208
10209         * bus/policy.c (list_allows_user): handle wildcard rules for
10210         user/group connection perms
10211
10212 2003-04-13  Havoc Pennington  <hp@pobox.com>
10213
10214         * bus/config-parser.c: Load up the BusPolicy and BusPolicyRules
10215
10216         * dbus/dbus-sysdeps.c (_dbus_get_user_id): new function
10217
10218         * bus/policy.c (bus_policy_append_mandatory_rule)
10219         (bus_policy_append_default_rule, bus_policy_append_user_rule)
10220         (bus_policy_append_group_rule): new functions
10221
10222 2003-04-12  Havoc Pennington  <hp@pobox.com>
10223
10224         * bus/config-parser.c (bus_config_parser_new): fix a memleak
10225
10226         * dbus/dbus-sysdeps.c: change DBusCredentials to use longs for
10227         the pid/gid/uid, just for paranoia.
10228
10229         * test/break-loader.c (randomly_do_n_things): find a byte
10230         containing a type code, and randomly change it to a different
10231         type code.
10232
10233 2003-04-12  Havoc Pennington  <hp@pobox.com>
10234
10235         * bus/policy.h: change BusPolicy to be the thing from the config
10236         file, and rename old BusPolicy to BusClientPolicy
10237
10238         * bus/bus.c, bus/connection.c, bus/config-parser.c: change to
10239         match change in how policy works
10240
10241         * dbus/dbus-internals.h: mark assert_not_reached as
10242         __attribute((noreturn))__
10243
10244 2003-04-11  Havoc Pennington  <hp@redhat.com>
10245
10246         * doc/dbus-specification.sgml: fix a spot with the wrong name for
10247         the broadcast service. Use boolean return for ServiceExists.
10248
10249 2003-04-11  Havoc Pennington  <hp@redhat.com>
10250
10251         * configure.in: add another directory to look for qt in.
10252
10253 2003-04-11  Havoc Pennington  <hp@redhat.com>
10254
10255         * AUTHORS: add Colin Walters
10256
10257 2003-04-11  Havoc Pennington  <hp@redhat.com>
10258
10259         * NEWS: update
10260
10261         * configure.in: 0.9
10262
10263 2003-04-11  Havoc Pennington  <hp@redhat.com>
10264
10265         * bus/messagebus.in: remove pid file when stopping the
10266         message bus, since the bus won't have privileges to remove it
10267         itself.
10268
10269 2003-04-11  Havoc Pennington  <hp@redhat.com>
10270
10271         * bus/bus.c (bus_context_new): move credentials change after
10272         creating pidfile
10273
10274 2003-04-11  Havoc Pennington  <hp@pobox.com>
10275
10276         * test/decode-gcov.c: add "below average functions" to the
10277         coverage report, and change how some of the code works.
10278
10279         * bus/test-main.c: bracket some stuff in DBUS_BUILD_TESTS so it's
10280         not in the coverage stats.
10281
10282         * test/test-service.c (main): use _dbus_verbose not fprintf in a
10283         couple places so running the test suite doesn't result in megaspam.
10284
10285 2003-04-11  Havoc Pennington  <hp@pobox.com>
10286
10287         * bus/dispatch.c (check_existent_service_activation): accept a no
10288         memory error in a place we didn't before
10289
10290         * bus/test.c (bus_test_run_everything): remove hacky "do it twice
10291         in case the first one failed," since the test suite is less
10292         broken now.
10293
10294 2003-04-10  Havoc Pennington  <hp@pobox.com>
10295
10296         * bus/dispatch.c (check_segfault_service_activation): add test
10297         for launching an executable that just crashes.
10298
10299         * test/test-segfault.c (main): try setting coredumpsize to 0 so we
10300         don't leave a million cores. We'll see how portable this is.
10301
10302 2003-04-10  Havoc Pennington  <hp@pobox.com>
10303
10304         * dbus/dbus-spawn.c (_dbus_spawn_async_with_babysitter): move all
10305         the possible parent failures before we fork, so that we don't
10306         fail to create a babysitter after creating the child.
10307
10308         * bus/activation.c (bus_activation_activate_service): kill child
10309         if we don't successfully complete the activation.
10310
10311 2003-04-10  Havoc Pennington  <hp@redhat.com>
10312
10313         * dbus/dbus-connection.c (dbus_connection_flush): don't spin on
10314         the connection if it's disconnected
10315
10316         * bus/activation.c (bus_activation_service_created): use new
10317         transaction features to roll back removal of pending activation if
10318         we don't successfully create the service after all. Don't remove
10319         pending activation if the function fails.
10320
10321         * dbus/dbus-list.c (_dbus_list_insert_before_link)
10322         (_dbus_list_insert_after_link): new code to facilitate
10323         services.c fixes
10324
10325         * dbus/dbus-hash.c (_dbus_hash_table_insert_string_preallocated):
10326         new functionality, so we can preallocate the ability to insert
10327         into a hash table.
10328
10329         * bus/connection.c (bus_transaction_add_cancel_hook): new function
10330         allowing us to put custom hooks in a transaction to be used for
10331         cancelling said transaction
10332
10333         * doc/dbus-specification.sgml: add some discussion of secondary
10334         service owners, and disallow zero-length service names
10335
10336         * bus/services.c (bus_registry_acquire_service): new function,
10337         splits out part of bus_driver_handle_acquire_service() and fixes
10338         a bug where we didn't remove the service doing the acquiring
10339         from the secondary queue if we failed to remove the current owner
10340         from the front of the queue.
10341
10342 2003-04-10  Alexander Larsson  <alexl@redhat.com>
10343
10344         * doc/dbus-specification.sgml:
10345         s/org.freedesktop.Broadcast/org.freedesktop.DBus.Broadcast/
10346
10347 2003-04-10  Alexander Larsson  <alexl@redhat.com>
10348
10349         * bus/.cvsignore:
10350         * glib/.cvsignore:
10351         * test/.cvsignore:
10352         Added files to cvsignore
10353
10354         * dbus/dbus-message.h:
10355         * dbus/dbus-message.c: (dbus_message_iter_get_named):
10356         Make get_named() take two out argument and return a boolean.
10357         (dbus_message_iter_get_args_valist):
10358         Update usage of get_named().
10359         (dbus_message_iter_append_byte):
10360         Fix typo
10361         (dbus_message_iter_append_named)
10362         Fix typo
10363         (message_iter_test), (check_message_handling_type), (_dbus_message_test):
10364         More tests.
10365
10366 2003-04-10  Alexander Larsson  <alexl@redhat.com>
10367
10368         * dbus/dbus-marshal.[ch]:
10369         Add array_type_pos argument to _dbus_marshal_validate_arg.
10370         Let you pass a NULL end_pos to _dbus_marshal_validate_type.
10371
10372         * dbus/dbus-message.[ch]:
10373         Multi-dimensional arrays have full type specification in the
10374         outermost array. Iter code re-arranged to handle this.
10375         Added some more iter tests.
10376
10377         * doc/dbus-specification.sgml:
10378         Add me to authors.
10379         Remove old FIXME.
10380         Update new array encoding description.
10381         Correct DBUS_SERVICE_FLAGS_REPLACE_EXISTING description.
10382
10383         * test/data/invalid-messages/array-with-mixed-types.message:
10384         * test/data/valid-messages/array-of-array-of-uint32.message:
10385         Change to the new array format.
10386
10387         * test/data/invalid-messages/too-short-dict.message:
10388         Fix bug in test.
10389
10390         * test/data/valid-messages/recursive-types.message:
10391         Fix up and extend test.
10392
10393 2003-04-10  Havoc Pennington  <hp@pobox.com>
10394
10395         * bus/dispatch.c: lots of fixes
10396
10397         * dbus/dbus-mainloop.c (_dbus_loop_dispatch): export
10398         (_dbus_loop_iterate): remove old "quit if no callbacks" code,
10399         that was crack, broke the test service.
10400
10401         * dbus/dbus-transport.c (_dbus_transport_open): fix error
10402         handling to avoid piling up errors if we get a failure on the
10403         first address.
10404
10405         * dbus/dbus-internals.c (_dbus_real_assert_not_reached): include
10406         pid in assertion failures.
10407
10408         * dbus/dbus-mainloop.c (_dbus_loop_iterate): use static arrays up
10409         to some fixed size of file descriptor array. Don't return TRUE
10410         anytime a timeout exists, that led to lots of busy loop silliness
10411         in the tests.
10412
10413 2003-04-09  Havoc Pennington  <hp@redhat.com>
10414
10415         * dbus/dbus-mainloop.c (check_timeout): fix timeouts, I thought
10416         I'd checked this in earlier but hadn't.
10417
10418 2003-04-09  Havoc Pennington  <hp@redhat.com>
10419
10420         * bus/dispatch.c (bus_dispatch_test): get a bit further through
10421         the activation test (man this is getting old!)
10422
10423 2003-04-09  Havoc Pennington  <hp@redhat.com>
10424
10425         * test/test-utils.c: use dispatch status function to fix this up
10426
10427         * bus/connection.c (connection_watch_callback): don't dispatch
10428         from here
10429         (connection_timeout_callback): don't dispatch from here
10430         (bus_connections_setup_connection): set the dispatch status function
10431         (bus_connection_disconnected): unset it
10432
10433         * dbus/dbus-mainloop.c (_dbus_loop_queue_dispatch): new function
10434         used to add a connection to be dispatched
10435         (_dbus_loop_iterate): do the dispatching at the end of each
10436         iteration
10437
10438         * dbus/dbus-connection.c
10439         (dbus_connection_set_dispatch_status_function): new function
10440         allowing us to fix up main loop usage
10441         (_dbus_connection_last_unref): free all the various function
10442         user data
10443         (dbus_connection_dispatch): call the DispatchStatusFunction
10444         whenever this function returns
10445         (dbus_connection_handle_watch): call DispatchStatusFunction
10446         (dbus_connection_send_with_reply_and_block): call DispatchStatusFunction
10447         (reply_handler_timeout): call DispatchStatusFunction
10448         (dbus_connection_flush): call DispatchStatusFunction
10449
10450 2003-04-09  Havoc Pennington  <hp@redhat.com>
10451
10452         * dbus/dbus-bus.c (dbus_bus_register): fix up error handling and
10453         a memory leak
10454
10455         * bus/dispatch.c (check_service_activated): fix bug in test
10456
10457         * dbus/dbus-mainloop.c (check_timeout): fix this up
10458
10459         * dbus/dbus-internals.c (_dbus_verbose_real): include PID in
10460         verbose output so we can sort out output from different processes,
10461         e.g. in the activation case.
10462
10463 2003-04-08  Colin Walters  <walters@gnu.org>
10464
10465         * bus/bus.c (struct BusContext) [pidfile]: New member, to store
10466         the pid file.
10467         (bus_context_new): Set it.
10468         (bus_context_unref): Use it to delete the pid file.
10469
10470 2003-04-08  Havoc Pennington  <hp@redhat.com>
10471
10472         * test/data/invalid-messages/array-with-mixed-types.message:
10473         regression test that fails for the moment
10474
10475         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): reorder
10476         tests for convenience
10477
10478         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): don't allow
10479         array of nil, it broke things.
10480
10481         * test/data/invalid-messages/array-of-nil.message: regression test
10482
10483         * test/data/valid-messages/array-of-array-of-uint32.message:
10484         happened to write this so added it to suite
10485
10486 2003-04-08  Havoc Pennington  <hp@redhat.com>
10487
10488         * bus/driver.c (bus_driver_handle_acquire_service): init
10489         retval/reply before checking name
10490
10491         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): add a
10492         recursion depth argument
10493
10494         * dbus/dbus-message.h (struct DBusMessageIter): put some padding
10495         in the public struct for future extension
10496
10497         * dbus/dbus-message-builder.c (_dbus_message_data_load): fix
10498         typo
10499
10500         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): fix a verbose
10501         message
10502
10503         * doc/dbus-specification.sgml: fix typo
10504
10505 2003-04-08  Alexander Larsson  <alexl@redhat.com>
10506
10507         Implemented recursive types, named types and new-style iters
10508
10509         * bus/driver.c:
10510         * glib/test-thread-client.c: (thread_func):
10511         * glib/test-thread-server.c: (handle_test_message):
10512         * test/test-service.c: (handle_echo):
10513         Update to new api
10514
10515         * dbus/Makefile.am:
10516         * dbus/dbus-dict.c:
10517         * dbus/dbus-dict.h:
10518         * dbus/dbus.h
10519         Remove DBusDict
10520
10521         * dbus/dbus-internals.c: (_dbus_type_to_string):
10522         Update for new types.
10523
10524         * dbus/dbus-marshal.[ch]:
10525         Implement recursive types and the new marshalling format.
10526         Remove hardcoded dict marshalling.
10527         Marshal named types.
10528
10529         * dbus/dbus-message-builder.c:
10530         Add BYTE_ARRAY.
10531         Remove references to old types
10532
10533         * dbus/dbus-message.[ch]:
10534         New non-refcounted iter API that supports recursive iters.
10535         Use iters for appending, including support for recursive
10536         iters.
10537         Add byte and named type support.
10538         Update everything to new marshalling formats.
10539         Add tests for new API.
10540
10541         * dbus/dbus-protocol.h:
10542         Remove old array types.
10543         Add types: BYTE, ARRAY, DICT, NAMED
10544
10545         * dbus/dbus-string.c:
10546         * dbus/dbus-sysdeps.c:
10547         Make parse_double locale safe.
10548
10549         * dbus/dbus-test-main.c:
10550         Call setlocale.
10551
10552         * dbus/dbus-test.c:
10553         Kill dict test
10554
10555         * doc/dbus-specification.sgml:
10556         Update spec
10557
10558         * test/data/incomplete-messages/missing-body.message:
10559         * test/data/invalid-messages/bad-boolean.message:
10560         * test/data/invalid-messages/bad-boolean-array.message:
10561         * test/data/invalid-messages/boolean-array-length-too-long.message-raw:
10562         * test/data/invalid-messages/boolean-has-no-value.message-raw:
10563         * test/data/invalid-messages/too-short-dict.message:
10564         * test/data/valid-messages/dict-simple.message:
10565         * test/data/valid-messages/dict.message:
10566         * test/data/valid-messages/emptiness.message:
10567         * test/data/valid-messages/lots-of-arguments.message:
10568         * test/data/valid-messages/no-padding.message:
10569         * test/data/valid-messages/recursive-types.message:
10570         Add missing NAME fields
10571         Fix up dicts & arrays
10572
10573         * test/data/invalid-messages/dict-with-nil-value.message:
10574         Removed, this is not invalid anymore.
10575
10576         * test/data/valid-messages/recursive-types.message:
10577         Add new test for deeply recursive types.
10578
10579 2003-04-07  Havoc Pennington  <hp@pobox.com>
10580
10581         * bus/driver.c (bus_driver_handle_acquire_service): return an
10582         error if you try to acquire a service that starts with ':'
10583
10584 2003-04-07  Havoc Pennington  <hp@redhat.com>
10585
10586         * doc/dbus-specification.sgml: require that base service names
10587         start with ':' and that the base service is created/deleted
10588         as first and last things a connection does on the bus
10589
10590         * bus/dispatch.c (check_existent_service_activation): lots more
10591         work on the activation test; it doesn't fully pass yet...
10592
10593         * test/test-service.c (main): fix so we don't memleak the
10594         connection to the message bus
10595         (filter_func): accept a message asking us to exit
10596
10597 2003-04-06  Havoc Pennington  <hp@pobox.com>
10598
10599         * qt/Makefile.am (dbusinclude_HEADERS): install dbus-qt.h,
10600         from Colin Walters
10601
10602         * configure.in: fixes to Qt detection from Colin Walters
10603
10604         * doc/Makefile.am: Only remove generated docbook dirs if they
10605         exist, from Colin Walters
10606
10607         * dbus/dbus-bus.c: change how we set well-known connections to
10608         NULL, so that it works if a single connection is stored in
10609         two well-known array slots.
10610
10611         * test/Makefile.am: remove a lot of stuff that isn't immediately
10612         useful, it's in CVS history if we want it.
10613
10614         * test/test-service.c: use dbus-mainloop instead of that
10615         watch.[hc] crack
10616
10617 2003-04-06  Havoc Pennington  <hp@pobox.com>
10618
10619         * dbus/Makefile.am: split lists of sources into stuff that goes in
10620         the library, util functions that go in the lib and are also used
10621         elsewhere, and util functions that are used in tests/daemon but
10622         don't go in the lib.
10623
10624         * dbus/dbus-mainloop.h, dbus/dbus-mainloop.c: move bus/loop.[hc]
10625         here so it can be used in test binaries also
10626
10627 2003-04-06  Havoc Pennington  <hp@pobox.com>
10628
10629         * dbus/dbus-sysdeps.c (_dbus_become_daemon): write the pidfile
10630         here in the parent process, so we can return an error if it
10631         fails. Also, move some of the code into the child so the parent
10632         is less hosed if we fail midway through.
10633
10634         * bus/bus.c (bus_context_new): move pidfile detection further up
10635         in the function, before we start overwriting sockets and such.
10636
10637         * bus/messagebus.in: adjust this a bit, not sure if it will work.
10638
10639         * configure.in: add --with-system-pid-file and --with-system-socket
10640
10641 2003-04-06  Colin Walters  <walters@verbum.org>
10642
10643         * configure.in (DBUS_SYSTEM_PID_FILE): New variable.
10644
10645         * bus/system.conf.in: Declare a pidfile.
10646
10647         * bus/bus.c (bus_context_new): Test for an existing pid file, and
10648         create one (if appropriate).
10649
10650         * bus/config-parser.c (enum ElementType) [ELEMENT_PIDFILE]: New.
10651         (struct BusConfigParser) [pidfile]: New.
10652         (element_type_to_name, merge_included, start_busconfig_child)
10653         (bus_config_parser_end_element, bus_config_parser_content): Handle it.
10654         (bus_config_parser_unref): Free it.
10655         (bus_config_parser_get_pidfile): New function.
10656
10657         * bus/config-parser.h (_dbus_write_pid_file): Prototype.
10658
10659         * dbus/dbus-errors.h (DBUS_ERROR_PIDFILE_EXISTS): New error.
10660
10661         * dbus/dbus-sysdeps.c (_dbus_write_pid_file): New function.
10662
10663         * dbus/dbus-sysdeps.h: Prototype it.
10664
10665 2003-04-06  Havoc Pennington  <hp@pobox.com>
10666
10667         * bus/bus.c (bus_context_new): print the address in here, rather
10668         than in main(), because we need to do it before forking the daemon
10669
10670         * bus/dispatch.c (send_service_nonexistent_error): set the sender
10671         on the service nonexistent error
10672
10673         * bus/driver.c (bus_driver_handle_acquire_service): set the
10674         sender on the AcquireService reply
10675
10676         * test/data/valid-config-files/debug-allow-all.conf.in: Make test
10677         server also listen on a UNIX socket so services can connect to it.
10678
10679 2003-04-06  Havoc Pennington  <hp@pobox.com>
10680
10681         * dbus/dbus-threads.c: Redo how the fake debug mutexes are done
10682         so it detects deadlocks and also we actually init threads when
10683         debugging.
10684
10685 2003-04-06  Havoc Pennington  <hp@pobox.com>
10686
10687         * dbus/dbus-server-unix.c (_dbus_server_new_for_domain_socket):
10688         save the domain socket name, and unlink it when we disconnect the
10689         server. Means that at least when we exit normally, we won't leave
10690         a bunch of junk in /tmp
10691
10692         * dbus/dbus-transport-unix.c
10693         (_dbus_transport_new_for_domain_socket): code cleanup (nicer
10694         memory management). (I was making a real change here but then
10695         didn't)
10696
10697 2003-04-06  Havoc Pennington  <hp@pobox.com>
10698
10699         * bus/bus.c (bus_context_new): fix wrong handling of
10700         server_data_slot_unref() in the error case.
10701
10702         * dbus/dbus-internals.h (_dbus_assert): change so it passes
10703         "(condition) != 0" to _dbus_real_assert so that
10704         "_dbus_assert (pointer)" doesn't cause a warning
10705
10706         * bus/main.c (main): accept --print-address option to print out
10707         the message bus address
10708
10709         * dbus/dbus-sysdeps.c (_dbus_generate_random_ascii): export this
10710
10711         * dbus/dbus-transport.c (_dbus_transport_open): special error for
10712         "tmpdir" option to unix: address on client side
10713
10714         * dbus/dbus-server.c (dbus_server_listen): handle "tmpdir" option
10715         to unix: address
10716
10717         * configure.in (TEST_SOCKET_DIR): locate a temporary directory
10718         we can use to create sockets in the test suite.
10719
10720         * bus/main.c (signal_handler): on SIGTERM, exit the daemon
10721         cleanly. To be used for testing.
10722
10723         * dbus/dbus-spawn.c (babysit): use _dbus_set_signal_handler()
10724
10725         * dbus/dbus-sysdeps.c (_dbus_set_signal_handler): new
10726
10727         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
10728         handle trying to call this when there's no servers active
10729
10730 2003-04-05  Havoc Pennington  <hp@pobox.com>
10731
10732         * NEWS: update
10733
10734         * configure.in: 0.8
10735
10736 2003-04-05  Havoc Pennington  <hp@pobox.com>
10737
10738         * bus/bus.c (setup_server): fix this so dbus-daemon-1 doesn't
10739         crash on startup. Need to get "try starting the daemon"
10740         in the test suite I guess. ;-)
10741
10742         * dbus/dbus-server.h, dbus/dbus-server.c: remove the stuff that
10743         tracked the number of open connections; it's better done in
10744         application-specific code as you want it to span all servers etc.
10745
10746 2003-04-05  Havoc Pennington  <hp@pobox.com>
10747
10748         * bus/Makefile.am (install-data-hook): add missing DESTDIR,
10749         patch from Colin Walters
10750
10751 2003-04-05  Havoc Pennington  <hp@pobox.com>
10752
10753         * doc/config-file.txt (Elements): fix docs of <auth> to reflect
10754         reality; in fact multiple mechanisms are allowed.
10755
10756         * dbus/dbus-internals.c (_dbus_real_assert)
10757         (_dbus_real_assert_not_reached): move guts of _dbus_assert() and
10758         _dbus_assert_not_reached() into functions, so that they don't show
10759         up in basic block counts for test coverage, and don't use up as
10760         much disk space. Does mean slower execution speed though, so
10761         assumes --disable-asserts is the normal production case.
10762
10763 2003-04-05  Havoc Pennington  <hp@pobox.com>
10764
10765         * test/Makefile.am (dist-hook): also dist *.in files
10766
10767         * NEWS: update
10768
10769         * configure.in: 0.7
10770
10771 2003-04-05  Havoc Pennington  <hp@pobox.com>
10772
10773         * dbus/dbus-string.c: docs warning
10774
10775         * dbus/dbus-spawn.c: missing docs
10776
10777         * dbus/dbus-memory.c (struct ShutdownClosure): missing docs
10778
10779 2003-04-05  Havoc Pennington  <hp@pobox.com>
10780
10781         * bus/loop.c (bus_loop_iterate): fix the timeout code, using
10782         magic from GLib
10783
10784         * dbus/dbus-spawn.c (_dbus_babysitter_unref): set sitter_pid
10785         to -1 once we've reaped the babysitter
10786         (_dbus_babysitter_handle_watch): do as much work as we can, not
10787         just one go of it
10788
10789         * bus/activation.c: add code using DBusBabysitter so that we
10790         handle it when a service fails to start up properly.
10791         (bus_activation_service_created): don't remove the activation
10792         entries as we go, just let them get removed when we free the pending
10793         activation. Unref reply messages after sending them.
10794
10795 2003-04-05  Havoc Pennington  <hp@pobox.com>
10796
10797         * test/decode-gcov.c (main): print per-directory stats in the report
10798
10799         * Makefile.am (coverage-report.txt): don't include test/* in gcov stats
10800
10801 2003-04-05  Havoc Pennington  <hp@pobox.com>
10802
10803         * Makefile.am (coverage-report.txt): add target "coverage-report.txt"
10804
10805         * test/decode-gcov.c: hack up a little program to suck data
10806         out of gcov files. Yes this is sort of silly.
10807
10808         * configure.in: define something in config.h and do an
10809         AM_CONDITIONAL when gcov is enabled
10810
10811 2003-04-04  Havoc Pennington  <hp@redhat.com>
10812
10813         * dbus/dbus-spawn.c, dbus/dbus-spawn.h: Change dbus_spawn to
10814         return a "babysitter" object that is used to monitor the status of
10815         the spawned process and reap it when required.
10816
10817         * test/test-segfault.c, test/test-exit.c,
10818         test/test-sleep-forever.c: binaries that do various lame things,
10819         used in the test suite.
10820
10821         * dbus/dbus-sysdeps.c: kill _dbus_errno_to_string()
10822
10823 2003-04-03  Havoc Pennington  <hp@pobox.com>
10824
10825         * dbus/dbus-spawn.c: Move dbus-spawn into a separate file
10826         in preparation for modifying it, dbus-sysdeps is getting
10827         a bit unmanageable.
10828
10829 2003-04-03  Havoc Pennington  <hp@redhat.com>
10830
10831         * bus/loop.h, bus/loop.c: make the mainloop an object so we can
10832         have multiple ones
10833
10834         * bus/*.[hc]: adapt to mainloop change
10835
10836 2003-04-03  Havoc Pennington  <hp@redhat.com>
10837
10838         * bus/activation.c (load_directory): fix up memleaks
10839         (bus_activation_entry_free): free the entry
10840
10841         * dbus/dbus-bus.c (dbus_bus_acquire_service): return an error if
10842         we get one from the message bus; fix memleaks.
10843
10844         * dbus/dbus-message.c (dbus_set_error_from_message): new function
10845
10846 2003-04-03  Havoc Pennington  <hp@pobox.com>
10847
10848         * bus/config-parser.c (bus_config_parser_unref): free
10849         list of mechanisms, bug discovered by test suite enhancements
10850         (putting system.conf and session.conf into suite)
10851
10852         * test/Makefile.am, test/test-service.c: add placeholder for a
10853         test service that we'll activate as part of test suite. Doesn't
10854         do anything yet.
10855
10856         * dbus/dbus-sysdeps.c (_dbus_setenv): support unsetenv by
10857         setting NULL value, and use system malloc not dbus_malloc()
10858         when we have unavoidable memleakage.
10859
10860         * dbus/dbus-bus.c (dbus_bus_get): fix bug where bus type of 0
10861         didn't work, and support DBUS_BUS_ACTIVATION.
10862
10863         * bus/activation.c (child_setup): pass our well-known bus type to
10864         the child
10865
10866         * bus/config-parser.c: support <type> to specify well-known type
10867
10868         * doc/dbus-specification.sgml: document the env variables to
10869         locate well-known buses and find service activator
10870
10871 2003-04-02  Havoc Pennington  <hp@redhat.com>
10872
10873         * test/Makefile.am (all-local): add a rule to copy tests to
10874         builddir, so we can have generated tests. Use this to remove the
10875         silly hack for testing system.conf and session.conf. Will use this
10876         shortly to generate .service files pointing to test binaries.
10877
10878 2003-04-02  Havoc Pennington  <hp@redhat.com>
10879
10880         * dbus/dbus-string.c (set_length): fix a bug - we allocated max of
10881         current alloc and needed new length, not max of the doubled
10882         allocation and needed new length. Also, when building tests,
10883         don't do the double-allocation stuff, just realloc every time.
10884
10885 2003-04-02  Havoc Pennington  <hp@redhat.com>
10886
10887         * dbus/dbus-sysdeps.c (_dbus_file_get_contents): include filenames
10888         in error messages
10889         (_dbus_string_get_dirname): new
10890         (_dbus_sysdeps_test): new
10891         (_dbus_directory_open): include dirnames in error messages
10892
10893         * bus/config-parser.c: interpret <include> and <includedir> and
10894         <servicedir> relative to config file location if the given
10895         filename is not absolute.
10896
10897         * dbus/dbus-string.c (_dbus_string_find_byte_backward): new
10898
10899 2003-04-02  Havoc Pennington  <hp@redhat.com>
10900
10901         * bus/connection.c (bus_transaction_send_error_reply): set sender
10902         service for the error, and unref the reply on success
10903
10904         * bus/activation.c: convert to use BusTransaction so OOM can be
10905         handled correctly
10906         (bus_activation_service_created): set sender of the message
10907
10908 2003-04-01  Havoc Pennington  <hp@redhat.com>
10909
10910         * bus/config-parser.c, bus/bus.c: implement <servicedir> and
10911         <includedir> (at least mostly)
10912
10913         * dbus/dbus-sysdeps.c (_dbus_change_identity): set the group ID
10914         first, then the user ID
10915
10916 2003-04-01  Havoc Pennington  <hp@pobox.com>
10917
10918         * dbus/dbus-server.c (dbus_server_set_auth_mechanisms): new
10919         function
10920
10921         * dbus/dbus-auth.c (_dbus_auth_set_mechanisms): new
10922
10923         * dbus/dbus-internals.c (_dbus_dup_string_array): new function
10924
10925         * dbus/dbus-sysdeps.c (_dbus_listen_unix_socket): chmod the
10926         socket 0777, and unlink any existing socket.
10927
10928         * bus/bus.c (bus_context_new): change our UID/GID and fork if
10929         the configuration file so specifies; set up auth mechanism
10930         restrictions
10931
10932         * bus/config-parser.c (bus_config_parser_content): add support
10933         for <fork> option and fill in code for <auth>
10934
10935         * bus/system.conf.in: add <fork/> to default configuration,
10936         and limit auth mechanisms to EXTERNAL
10937
10938         * doc/config-file.txt (Elements): add <fork>
10939
10940         * dbus/dbus-sysdeps.c (_dbus_become_daemon): new function
10941         (_dbus_change_identity): new function
10942
10943 2003-03-31  Havoc Pennington  <hp@redhat.com>
10944
10945         * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket)
10946         (_dbus_listen_unix_socket): fix off-by-one error in null
10947         termination spotted by Nalin
10948
10949 2003-03-31  Havoc Pennington  <hp@redhat.com>
10950
10951         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): allow setting
10952         DBUS_TEST_HOMEDIR when tests are enabled, so we can test without
10953         having a real home directory available.
10954
10955 2003-03-31  Havoc Pennington  <hp@redhat.com>
10956
10957         * bus/Makefile.am (install-data-hook): create /var/run/dbus
10958
10959         * bus/messagebus.in: add init script for Red Hat /etc/init.d
10960
10961         * configure.in: add support for specifying a style of init script
10962         to install
10963
10964 2003-03-31  Havoc Pennington  <hp@redhat.com>
10965
10966         Fix some annoying DBusString API and fix all affected code.
10967
10968         * dbus/dbus-string.c (_dbus_string_init): get rid of annoying
10969         max_length argument
10970         (_dbus_string_get_data): change to return string instead of using
10971         an out param
10972         (_dbus_string_get_const_data): ditto
10973         (_dbus_string_get_data_len): ditto
10974         (_dbus_string_get_const_data_len): ditto
10975
10976 2003-03-31  Havoc Pennington  <hp@redhat.com>
10977
10978         * bus/main.c (main): fix up the command line arguments to be nicer
10979
10980 2003-03-31  Havoc Pennington  <hp@redhat.com>
10981
10982         * dbus/Makefile.am (INCLUDES): use EXPANDED_LOCALSTATEDIR to
10983         define DBUS_SYSTEM_BUS_PATH as we want to compile in the same
10984         final location that lands in the config file
10985
10986         * bus/config-loader-expat.c (bus_config_load): fix type of
10987         XML_Parser variable
10988
10989         * doc/TODO: remove TODO item for dbus_bus_get()
10990
10991         * dbus/dbus-bus.c (bus_data_free): add missing lock/unlock
10992
10993 2003-03-31  Havoc Pennington  <hp@pobox.com>
10994
10995         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_domain_socket)
10996         (_dbus_transport_new_for_tcp_socket): these didn't need the "server"
10997         argument since they are always client side
10998
10999         * dbus/dbus-server.c (dbus_server_get_address): new function
11000
11001         * bus/main.c (main): take the configuration file as an argument.
11002
11003         * test/data/valid-config-files/debug-allow-all.conf: new file to
11004         use with dispatch.c tests for example
11005
11006         * bus/test-main.c (main): require test data dir
11007
11008         * bus/bus.c (bus_context_new): change this to take a
11009         configuration file name as argument
11010
11011         * doc/config-file.txt (Elements): add <servicedir>
11012
11013         * bus/system.conf, bus/session.conf: new files
11014
11015         * dbus/dbus-bus.c (dbus_bus_get): look for system bus on
11016         well-known socket if none set
11017
11018         * configure.in: create system.conf and session.conf
11019
11020 2003-03-30  Havoc Pennington  <hp@pobox.com>
11021
11022         * bus/config-parser.c: hacking
11023
11024         * dbus/dbus-memory.c: don't use DBusList for the list of stuff
11025         to shut down, since it could cause weirdness with the DBusList
11026         lock
11027
11028         * dbus/dbus-list.c (_dbus_list_test): add tests for the
11029         link-oriented stack routines
11030         (alloc_link): free the mempool if the first alloc from it fails
11031
11032         * dbus/dbus-mempool.c (struct DBusMemBlock): fix alignment issue
11033
11034         * dbus/dbus-string.c (UNICODE_VALID): sync new version of this
11035         from GLib
11036         (_dbus_string_skip_white): new
11037
11038         * doc/config-file.txt (Elements): add <includedir>
11039
11040 2003-03-28  Havoc Pennington  <hp@pobox.com>
11041
11042         * dbus/dbus-string.c (_dbus_string_copy_data_len)
11043         (_dbus_string_copy_data): new functions
11044
11045 2003-03-28  Anders Carlsson  <andersca@codefactory.se>
11046
11047         * dbus/dbus-bus.c: (bus_data_free), (dbus_bus_get):
11048         * dbus/dbus-bus.h:
11049         Add dbus_bus_get.
11050
11051         * dbus/dbus-memory.c:
11052         Fix a doc comment.
11053
11054 2003-03-28  Havoc Pennington  <hp@pobox.com>
11055
11056         * bus/test.c (bus_test_flush_bus): remove the sleep from here,
11057         I think it may have just been superstition. Not sure.
11058
11059         * dbus/dbus-string.c (_dbus_string_base64_decode): catch some OOM
11060         failures that were not being handled.
11061
11062         * dbus/dbus-auth.c (process_auth): fix a memleak in OOM handling
11063
11064         * dbus/dbus-memory.c: add ability to set number of mallocs in a
11065         row that will fail on out-of-memory.
11066
11067         * dbus/dbus-internals.c (_dbus_test_oom_handling): convenience
11068         function for testing out-of-memory handling.
11069
11070         * bus/config-loader-expat.c (memsuite): don't wrap the dbus
11071         allocation functions, they do map exactly to the expat ones.
11072
11073 2003-03-27  Havoc Pennington  <hp@redhat.com>
11074
11075         * bus/config-loader-libxml.c (bus_config_load): add another error
11076         check
11077
11078 2003-03-26  Anders Carlsson  <andersca@codefactory.se>
11079
11080         * doc/TODO:
11081         Add note about automatic service activation.
11082
11083         * doc/dbus-specification.sgml:
11084         Rename the specification and clarify a few things.
11085
11086 2003-03-26  Anders Carlsson  <andersca@codefactory.se>
11087
11088         * Doxyfile.in:
11089         * dbus/dbus-address.c:
11090         * dbus/dbus-dict.c:
11091         * dbus/dbus-marshal.c:
11092         * dbus/dbus-server-debug-pipe.c:
11093         * dbus/dbus-transport-unix.c:
11094         Fix documentation warnings.
11095
11096 2003-03-26  Havoc Pennington  <hp@pobox.com>
11097
11098         * bus/test-main.c, dbus/dbus-test.c (main): check memleaks
11099         after every test so it's quick and easy to see which leaked, and
11100         so we test multiple dbus_shutdown() calls
11101
11102         * configure.in: change configure.in XML stuff to also support
11103         expat
11104
11105         * config-loader-libxml.c: some hacking
11106
11107         * config-loader-expat.c: some hacking
11108
11109         * config-parser.c: some hacking, plus tests
11110
11111 2003-03-25  Havoc Pennington  <hp@redhat.com>
11112
11113         * throughout - add more _DBUS_ASSERT_ERROR_IS_CLEAR
11114
11115         * configure.in: add --with-xml option to specify XML library,
11116         right now only libxml is supported.
11117
11118         * bus/config-loader-libxml.c, config-parser.c: sync some minor
11119         nonworking code between home and work, still just stubs
11120
11121 2003-03-24  Havoc Pennington  <hp@redhat.com>
11122
11123         * dbus/dbus-sysdeps.c (_dbus_set_fd_nonblocking): move to this
11124         file
11125
11126         * dbus/dbus-errors.c (dbus_set_error, dbus_set_error_const): allow
11127         NULL argument for "message" if the error is a well-known one,
11128         fill in a generic message in this case.
11129
11130         * dbus/dbus-errors.h (DBusResultCode): Kill DBusResultCode in
11131         favor of DBusError
11132
11133         * bus/test.c (bus_test_flush_bus): add
11134
11135         * bus/policy.c (bus_policy_test): test code stub
11136
11137 2003-03-24  Havoc Pennington  <hp@pobox.com>
11138
11139         * bus/connection.c (bus_connections_setup_connection): set up
11140         the "can this user connect" function, but it always returns
11141         TRUE until we have a config file parser so we can have a config
11142         file that allows connections.
11143
11144 2003-03-23  Havoc Pennington  <hp@pobox.com>
11145
11146         * dbus/dbus-threads.c (dbus_mutex_new, dbus_condvar_new): with
11147         DBUS_BUILD_TESTS, actually alloc/free a block of memory for
11148         the mutex, so we can check for proper memory management
11149         and OOM handling.
11150
11151         * dbus/dbus-dataslot.c: remove the mutex from
11152         DBusDataSlotAllocator and lock it manually when using it,
11153         to simplify fitting it into the global slots framework.
11154
11155         * dbus/dbus-threads.c (init_static_locks): rework how we're
11156         handling global locks so they are easily shut down.
11157
11158         * bus/policy.c (bus_policy_append_rule): fix
11159
11160         * bus/test-main.c (main): check for memleaks
11161
11162         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): make
11163         test suite check for memleaks
11164
11165         * dbus/dbus-memory.c: add support in test mode for tracking
11166         number of outstanding blocks
11167
11168 2003-03-23  Havoc Pennington  <hp@pobox.com>
11169
11170         * bus/policy.c, bus/bus.c, bus/connection.c: implement allow/deny
11171         policies code
11172
11173         * dbus/dbus-hash.h: add ULONG hash keys
11174
11175         * dbus/dbus-sysdeps.c (_dbus_get_groups): new
11176         (_dbus_get_group_id): new function
11177
11178 2003-03-20  Havoc Pennington  <hp@redhat.com>
11179
11180         * dbus/dbus-connection.c (dbus_connection_set_unix_user_function):
11181         new function
11182         (dbus_connection_get_unix_user): new function
11183
11184 2003-03-20  Havoc Pennington  <hp@pobox.com>
11185
11186         * bus/connection.c (bus_connection_send_oom_error): assert that
11187         message has a sender
11188         (connection_execute_transaction): ditto
11189         (bus_connection_preallocate_oom_error): fix to set the sender, and
11190         set recipient to the destination service, not the bus driver
11191
11192         * bus/policy.c: hacking
11193
11194         * dbus/dbus-message.c (dbus_message_service_is): new function
11195         (dbus_message_sender_is): new
11196
11197 2003-03-19  Havoc Pennington  <hp@redhat.com>
11198
11199         * bus/policy.c: start sketching code for policy restrictions on
11200         what connections can do.
11201
11202 2003-03-18  Havoc Pennington  <hp@redhat.com>
11203
11204         * doc/TODO: some notes on high-level todo items. Little nitpick
11205         stuff is all in @todo, so no need to add it here.
11206
11207         * doc/config-file.txt: some notes on how config file might look
11208
11209 2003-03-18  Anders Carlsson  <andersca@codefactory.se>
11210
11211         * configure.in: 0.6
11212
11213         * NEWS: Update.
11214
11215 2003-03-17  Havoc Pennington  <hp@redhat.com>
11216
11217         * dbus/dbus-internals.h: add gcc attributes so that
11218         our printf-style functions warn on bad arguments to
11219         format
11220
11221         * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): fix printf
11222         format bug
11223
11224         * dbus/dbus-message.c (_dbus_message_loader_queue_messages): fix
11225         printf format bug
11226
11227 2003-03-17  Havoc Pennington  <hp@redhat.com>
11228
11229         * bus/test-main.c (main): make it print something as it runs
11230         so make check doesn't look stuck
11231
11232         * doc/negotiation.txt, doc/dbus-sasl-profile.txt: remove
11233         from CVS, now obsolete
11234
11235 2003-03-17  Anders Carlsson  <andersca@codefactory.se>
11236
11237         * bus/dispatch.c: (bus_dispatch):
11238         Refetch the service name since it may have been reallocated
11239         when dbus_message_set_sender was called.
11240
11241         * dbus/dbus-sysdeps.c: (_dbus_accept):
11242         Add address and address length variables and use them to stop
11243         valgrind from complaining.
11244
11245 2003-03-17  Havoc Pennington  <hp@pobox.com>
11246
11247         All tests pass, no memleaks, no valgrind complaints.
11248
11249         * bus/test.c: refcount handler_slot
11250
11251         * bus/connection.c (bus_connections_new): refcount
11252         connection_data_slot
11253
11254         * dbus/dbus-auth-script.c (_dbus_auth_script_run): delete unused
11255         bytes so that auth scripts pass.
11256
11257         * bus/dispatch.c: init message_handler_slot so it gets allocated
11258         properly
11259
11260         * bus/dispatch.c (message_handler_slot_ref): fix memleak
11261
11262         * dbus/dbus-server-debug-pipe.c (_dbus_server_debug_pipe_new):
11263         dealloc server_pipe_hash when no longer used for benefit of
11264         leak checking
11265
11266         * dbus/dbus-auth.c (process_command): memleak fix
11267
11268         * bus/dispatch.c (check_hello_message): memleak fix
11269
11270 2003-03-16  Havoc Pennington  <hp@pobox.com>
11271
11272         * dbus/dbus-bus.c (ensure_bus_data): fix double-unref of the data slot
11273
11274 2003-03-17  Anders Carlsson  <andersca@codefactory.se>
11275
11276         * bus/activation.c (bus_activation_activate_service): Append
11277         the pending activation entry to the list of pending activations.
11278
11279 2003-03-16  Havoc Pennington  <hp@pobox.com>
11280
11281         * bus/dispatch.c (bus_dispatch_test): remove double-unrefs of
11282         connections
11283
11284         * dbus/dbus-address.c (create_entry): fix OOM handling when
11285         failing to alloc entry->method
11286
11287 2003-03-16  Havoc Pennington  <hp@pobox.com>
11288
11289         * dbus/dbus-watch.c (_dbus_watch_new): handle failure to malloc
11290         the watch
11291
11292         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
11293         add some missing dbus_set_result
11294
11295         * bus/dispatch.c (bus_dispatch_add_connection): handle failure to
11296         alloc the DBusMessageHandler
11297
11298         * dbus/dbus-transport.c (_dbus_transport_disconnect): don't ref
11299         the transport here, since we call this from the finalizer; it
11300         resulted in a double-finalize.
11301
11302         * dbus/dbus-transport.c (_dbus_transport_disconnect): fix a bug
11303         where we tried to use transport->connection that was NULL,
11304         happened when transport was disconnected early on due to OOM
11305
11306         * bus/*.c: adapt to handle OOM for watches/timeouts
11307
11308         * dbus/dbus-transport-unix.c: port to handle OOM during
11309         watch handling
11310
11311         * dbus/dbus-auth.c (_dbus_auth_get_unused_bytes): return a
11312         reference to unused bytes instead of a copy
11313
11314         * dbus/dbus-server.c (dbus_server_handle_watch): return FALSE for
11315         out of memory
11316
11317         * dbus/dbus-connection.c (dbus_connection_handle_watch): return
11318         FALSE on OOM
11319
11320         * dbus/dbus-timeout.c (dbus_timeout_handle): return FALSE for out
11321         of memory
11322
11323 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
11324
11325         * doc/dbus-specification.sgml:
11326         Document reply message for ActivateService.
11327
11328 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
11329
11330         * bus/activation.c: (bus_pending_activation_entry_free),
11331         (bus_pending_activation_free), (bus_activation_new),
11332         (bus_activation_unref), (bus_activation_service_created),
11333         (bus_activation_activate_service):
11334         * bus/activation.h:
11335         * bus/bus.c: (bus_context_new):
11336         * bus/desktop-file.c: (new_section):
11337         * bus/driver.c: (bus_driver_send_service_deleted),
11338         (bus_driver_handle_activate_service):
11339         * bus/services.c: (bus_registry_new), (bus_registry_ensure):
11340         * bus/services.h:
11341         * dbus/dbus-connection.c:
11342         (dbus_connection_send_with_reply_and_block):
11343         * dbus/dbus-message.c: (dbus_message_append_args_valist):
11344         * dbus/dbus-protocol.h:
11345         Make activation work better. Now pending activations will be queued
11346         and the daemon won't try to activate services that are already registered.
11347
11348 2003-03-16  Havoc Pennington  <hp@pobox.com>
11349
11350         * dbus/dbus-bus.c (ensure_bus_data): handle failure to set
11351         connection data
11352
11353         * dbus/dbus-memory.c (_dbus_initialize_malloc_debug): support
11354         DBUS_MALLOC_BACKTRACES to print trace when failing an alloc
11355
11356 2003-03-16  Havoc Pennington  <hp@pobox.com>
11357
11358         * dbus/dbus-string.c (_dbus_string_validate_utf8): oops, unbreak
11359         this. always run the test suite before commit...
11360
11361         * bus/*: adapt to DBusConnection API changes
11362
11363         * glib/dbus-gmain.c: adapt to DBusConnection API changes,
11364         requires renaming stuff to avoid dbus_connection_dispatch name
11365         conflict.
11366
11367         * dbus/dbus-transport.c (_dbus_transport_queue_messages): new
11368         function
11369
11370         * dbus/dbus-message.c (_dbus_message_loader_queue_messages):
11371         separate from _dbus_message_loader_return_buffer()
11372
11373         * dbus/dbus-connection.c (dbus_connection_get_n_messages): remove
11374         this, because it's now always broken to use; the number of
11375         messages in queue vs. the number still buffered by the message
11376         loader is undefined/meaningless. Should use
11377         dbus_connection_get_dispatch_state().
11378         (dbus_connection_dispatch): rename from
11379         dbus_connection_dispatch_message
11380
11381 2003-03-16  Havoc Pennington  <hp@pobox.com>
11382
11383         * dbus/dbus-string.c (_dbus_string_validate_utf8): copy in a real
11384         implementation
11385
11386 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
11387
11388         * dbus/dbus-connection.c:
11389         (dbus_connection_send_with_reply_and_block):
11390         Decrease connection->n_incoming when removing an entry
11391         from the list.
11392         * dbus/dbus-dict.c: (dbus_dict_entry_free),
11393         (dbus_dict_set_boolean_array), (dbus_dict_set_int32_array),
11394         (dbus_dict_set_uint32_array), (dbus_dict_set_double_array),
11395         (dbus_dict_set_byte_array), (dbus_dict_set_string_array),
11396         (dbus_dict_get_boolean_array), (dbus_dict_get_double_array),
11397         (dbus_dict_get_byte_array):
11398         Handle NULL arrays and strings. Also add support for byte arrays.
11399
11400         * dbus/dbus-marshal.c: (_dbus_marshal_byte_array),
11401         (_dbus_marshal_dict), (_dbus_demarshal_byte_array),
11402         (_dbus_demarshal_int32_array), (_dbus_demarshal_uint32_array),
11403         (_dbus_demarshal_double_array), (_dbus_demarshal_string_array),
11404         (_dbus_demarshal_dict), (demarshal_and_validate_len),
11405         (_dbus_marshal_validate_arg), (_dbus_marshal_test):
11406         * dbus/dbus-marshal.h:
11407         Add support for marshalling and demarshalling empty arrays and strings.
11408
11409         * dbus/dbus-message.c: (dbus_message_append_args_valist),
11410         (dbus_message_append_string_array),
11411         (dbus_message_iter_get_boolean),
11412         (dbus_message_iter_get_boolean_array),
11413         (dbus_message_iter_get_int32_array),
11414         (dbus_message_iter_get_uint32_array),
11415         (dbus_message_iter_get_double_array),
11416         (dbus_message_iter_get_byte_array),
11417         (dbus_message_iter_get_string_array), (dbus_message_iter_get_dict),
11418         (check_message_handling):
11419         Add support for getting empty arrays and dicts.
11420
11421         * dbus/dbus-string.c: (_dbus_string_validate_utf8):
11422         Don't do any validation at all for now, that's better than just checking
11423         for ASCII.
11424
11425         * test/data/valid-messages/emptiness.message:
11426         New test message with lots of empty arrays.
11427
11428 2003-03-16  Havoc Pennington  <hp@pobox.com>
11429
11430         * dbus/dbus-connection.c
11431         (_dbus_connection_queue_received_message_link): new function that
11432         can't fail due to OOM
11433
11434         * dbus/dbus-message.c (_dbus_message_loader_pop_message_link):
11435         new function pops a message together with a list link
11436         containing it.
11437
11438         * dbus/dbus-transport-unix.c (queue_messages): use new link-based
11439         message queuing functions to avoid needing to alloc memory
11440
11441 2003-03-16  Havoc Pennington  <hp@pobox.com>
11442
11443         Oops - test code was only testing failure of around 30 of the
11444         mallocs in the test path, but it turns out there are 500+
11445         mallocs. I believe this was due to misguided linking setup such
11446         that there was one copy of dbus_malloc etc. in the daemon and one
11447         in the shared lib, and only daemon mallocs were tested. In any
11448         case, the test case now tests all 500+ mallocs, and doesn't pass
11449         yet, though there are lots of fixes in this patch.
11450
11451         * dbus/dbus-connection.c (dbus_connection_dispatch_message): fix
11452         this so that it doesn't need to allocate memory, since it
11453         has no way of indicating failure due to OOM (and would be
11454         annoying if it did).
11455
11456         * dbus/dbus-list.c (_dbus_list_pop_first_link): new function
11457
11458         * bus/Makefile.am: rearrange to create two self-contained
11459         libraries, to avoid having libraries with overlapping symbols.
11460         that was resulting in weirdness, e.g. I'm pretty sure there
11461         were two copies of global static variables.
11462
11463         * dbus/dbus-internals.c: move the malloc debug stuff to
11464         dbus-memory.c
11465
11466         * dbus/dbus-list.c (free_link): free list mempool if it becomes
11467         empty.
11468
11469         * dbus/dbus-memory.c (_dbus_disable_mem_pools): new function
11470
11471         * dbus/dbus-address.c (dbus_parse_address): free list nodes
11472         on failure.
11473
11474         * bus/dispatch.c (bus_dispatch_add_connection): free
11475         message_handler_slot when no longer using it, so
11476         memory leak checkers are happy for the test suite.
11477
11478         * dbus/dbus-server-debug-pipe.c (debug_finalize): free server name
11479
11480         * bus/bus.c (new_connection_callback): disconnect in here if
11481         bus_connections_setup_connection fails.
11482
11483         * bus/connection.c (bus_connections_unref): fix to free the
11484         connections
11485         (bus_connections_setup_connection): if this fails, don't
11486         disconnect the connection, just be sure there are no side
11487         effects.
11488
11489         * dbus/dbus-string.c (undo_alignment): unbreak this
11490
11491         * dbus/dbus-auth.c (_dbus_auth_unref): free some stuff we were
11492         leaking
11493         (_dbus_auth_new): fix the order in which we free strings
11494         on OOM failure
11495
11496         * bus/connection.c (bus_connection_disconnected): fix to
11497         not send ServiceDeleted multiple times in case of memory
11498         allocation failure
11499
11500         * dbus/dbus-bus.c (dbus_bus_get_base_service): new function to
11501         get the base service name
11502         (dbus_bus_register_client): don't return base service name,
11503         instead store it on the DBusConnection and have an accessor
11504         function for it.
11505         (dbus_bus_register_client): rename dbus_bus_register()
11506
11507         * bus/dispatch.c (check_hello_message): verify that other
11508         connections on the bus also got the correct results, not
11509         just the one sending hello
11510
11511 2003-03-15  Havoc Pennington  <hp@pobox.com>
11512
11513         Make it pass the Hello handling test including all OOM codepaths.
11514         Now to do other messages...
11515
11516         * bus/services.c (bus_service_remove_owner): fix crash when
11517         removing owner from an empty list of owners
11518         (bus_registry_ensure): don't leave service in the list of
11519         a connection's owned services if we fail to put the service
11520         in the hash table.
11521
11522         * bus/connection.c (bus_connection_preallocate_oom_error): set
11523         error flag on the OOM error.
11524
11525         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
11526         handle _dbus_transport_set_connection failure
11527
11528         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd): modify
11529         to create watches up front and simply enable/disable them as
11530         needed.
11531         (unix_connection_set): this can now fail on OOM
11532
11533         * dbus/dbus-timeout.c, dbus/dbus-watch.c: add concept
11534         of enabling/disabling a watch or timeout.
11535
11536         * bus/loop.c (bus_loop_iterate): don't touch disabled
11537         watches/timeouts
11538
11539         * glib/dbus-gmain.c: adapt to enable/disable watches and timeouts
11540
11541 2003-03-15  Havoc Pennington  <hp@pobox.com>
11542
11543         * bus/dispatch.c (bus_dispatch_test): OK, now finally actually
11544         write useful test code, after all that futzing around ;-)
11545
11546         Test does not yet pass because we can't handle OOM in
11547         _dbus_transport_messages_pending (basically,
11548         dbus_connection_preallocate_send() does not prealloc the write
11549         watch). To fix this, I think we need to add new stuff to
11550         set_watch_functions, namely a SetEnabled function so we can alloc
11551         the watch earlier, then enable it later.
11552
11553         * dbus/Makefile.am (libdbus_convenience_la_SOURCES): move
11554         dbus-memory.c to the convenience lib
11555
11556         * bus/test.c: rename some static functions to keep them clearly
11557         distinct from stuff in connection.c. Handle client disconnection.
11558
11559 2003-03-14  Havoc Pennington  <hp@pobox.com>
11560
11561         * bus/dispatch.c (bus_dispatch_test): do test using debug-pipe
11562         transport, tests more of the real codepath. Set up clients
11563         with bus_setup_debug_client.
11564
11565         * bus/test.c (bus_setup_debug_client): function to set up debug
11566         "clients" on the main loop
11567
11568         * dbus/dbus-transport.c (_dbus_transport_open): add debug-pipe
11569         support
11570
11571         * dbus/dbus-server.c (dbus_server_listen): add debug-pipe
11572         server type
11573
11574         * dbus/dbus-server-debug.c: support a debug server based on pipes
11575
11576         * dbus/dbus-sysdeps.c (_dbus_full_duplex_pipe): new function
11577         (_dbus_close): new function
11578
11579         * configure.in: check for socketpair
11580
11581 2003-03-14  Havoc Pennington  <hp@redhat.com>
11582
11583         * dbus/dbus-memory.c: add a "detect buffer overwrites on free"
11584         cheesy hack
11585
11586         * dbus/dbus-transport-debug.c: rework this a good bit to be
11587         less complicated. hopefully still works.
11588
11589         * dbus/dbus-server-debug.c (handle_new_client): remove timeout
11590         manually
11591
11592         * glib/dbus-gmain.c (timeout_handler): don't remove timeout
11593         after running it
11594
11595         * dbus/dbus-message.c (dbus_message_copy): rename from
11596         dbus_message_new_from_message, fix it up to copy
11597         all the message fields, add test case
11598
11599         * bus/dispatch.c (bus_dispatch_test): add some more test code,
11600         not quite passing yet
11601
11602 2003-03-14  Havoc Pennington  <hp@pobox.com>
11603
11604         * bus/loop.c (bus_loop_iterate): add this so we can "run loop
11605         until no work remains" in test code. (the large diff here
11606         is just code movement, no actual changes)
11607
11608         * dbus/dbus-server-debug.c (DEFAULT_INTERVAL): change interval to
11609         1, no point waiting around for test code.
11610         (_dbus_server_debug_accept_transport): unref the timeout
11611         after adding it (right?)
11612
11613         * dbus/dbus-transport-debug.c (DEFAULT_INTERVAL): ditto
11614
11615 2003-03-13  Havoc Pennington  <hp@redhat.com>
11616
11617         * dbus/dbus-timeout.c (_dbus_timeout_list_set_functions): handle
11618         out of memory
11619
11620         * dbus/dbus-watch.c (_dbus_watch_list_set_functions): handle out
11621         of memory
11622
11623         * dbus/dbus-connection.h: Make AddWatchFunction and
11624         AddTimeoutFunction return a bool so they can fail on out-of-memory
11625
11626         * bus/bus.c (bus_context_new): set up timeout handlers
11627
11628         * bus/connection.c (bus_connections_setup_connection): set up
11629         timeout handlers
11630
11631         * glib/dbus-gmain.c: adapt to the fact that set_functions stuff
11632         can fail
11633
11634         * bus/bus.c (bus_context_new): adapt to changes
11635
11636         * bus/connection.c: adapt to changes
11637
11638         * test/watch.c: adapt to DBusWatch changes
11639
11640         * bus/dispatch.c (bus_dispatch_test): started adding this but
11641         didn't finish
11642
11643 2003-03-14  Anders Carlsson  <andersca@codefactory.se>
11644
11645         * bus/dispatch.c (send_service_nonexistent_error): Fix typo.
11646
11647 2003-03-13  Havoc Pennington  <hp@pobox.com>
11648
11649         * bus/test.c, bus/test.h, bus/Makefile.am, bus/test-main.c:
11650         set up a test framework as for the library
11651
11652 2003-03-12  Havoc Pennington  <hp@pobox.com>
11653
11654         Throughout: purge global variables, introduce BusActivation,
11655         BusConnections, BusRegistry, etc. objects instead.
11656
11657         * bus/bus.h, bus/bus.c: introduce BusContext as a global
11658         message bus object
11659
11660         * test/Makefile.am (TEST_BINARIES): disable bus-test for now,
11661         going to redo this a bit differently I think
11662
11663 2003-03-12  Havoc Pennington  <hp@redhat.com>
11664
11665         Mega-patch that gets the message bus daemon initially handling
11666         out-of-memory. Work still needed. Also lots of random
11667         moving stuff to DBusError instead of ResultCode.
11668
11669         * dbus/dbus-list.c (_dbus_list_length_is_one): new function
11670
11671         * dbus/dbus-connection.c
11672         (dbus_connection_send_with_reply_and_block): use DBusError
11673
11674         * dbus/dbus-bus.c: adapt to API changes, make it use DBusError not
11675         DBusResultCode
11676
11677         * dbus/dbus-connection.c (dbus_connection_send): drop the result
11678         code here, as the only failure possible is OOM.
11679
11680         * bus/connection.c (bus_connection_disconnect):
11681         rename bus_connection_disconnected as it's a notification only
11682
11683         * bus/driver.c (bus_driver_handle_acquire_service): don't free
11684         "name" on get_args failure, should be done by get_args;
11685         don't disconnect client for bad args, just return an error.
11686         (bus_driver_handle_service_exists): ditto
11687
11688         * bus/services.c (bus_services_list): NULL-terminate returned array
11689
11690         * bus/driver.c (bus_driver_send_service_lost)
11691         (bus_driver_send_service_acquired): send messages from driver to a
11692         specific client to the client's unique name, not to the broadcast
11693         service.
11694
11695         * dbus/dbus-message.c (decode_header_data): reject messages that
11696         contain no name field
11697         (_dbus_message_get_client_serial): rename to
11698         dbus_message_get_serial and make public
11699         (_dbus_message_set_serial): rename from set_client_serial
11700         (_dbus_message_set_reply_serial): make public
11701         (_dbus_message_get_reply_serial): make public
11702
11703         * bus/connection.c (bus_connection_foreach): allow stopping
11704         iteration by returning FALSE from foreach function.
11705
11706         * dbus/dbus-connection.c (dbus_connection_send_preallocated)
11707         (dbus_connection_free_preallocated_send)
11708         (dbus_connection_preallocate_send): new API for sending a message
11709         without possibility of malloc failure.
11710         (dbus_connection_send_message): rename to just
11711         dbus_connection_send (and same for whole function family)
11712
11713         * dbus/dbus-errors.c (dbus_error_free): make this reinit the error
11714
11715         * dbus/dbus-sysdeps.c (_dbus_exit): new function
11716
11717         * bus/activation.c: handle/return errors
11718
11719         * dbus/dbus-errors.h: add more DBUS_ERROR #define
11720
11721         * dbus/dbus-sysdeps.c (_dbus_directory_open) (_dbus_file_get_contents)
11722         (_dbus_directory_get_next_file): use DBusError instead of DBusResultCode
11723         (_dbus_result_from_errno): move to this file
11724
11725 2003-03-10  Anders Carlsson  <andersca@codefactory.se>
11726
11727         * dbus/dbus-marshal.c:
11728         (_dbus_marshal_set_string):
11729         Take a length argument so we can marshal the correct string
11730         length.
11731
11732         (_dbus_marshal_dict), (_dbus_demarshal_dict),
11733         (_dbus_marshal_get_arg_end_pos), (_dbus_marshal_validate_arg),
11734         (_dbus_marshal_test):
11735         * dbus/dbus-marshal.h:
11736         Add support for marshalling and demarshalling dicts.
11737
11738         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
11739         Add support for TYPE DICT.
11740
11741         * dbus/dbus-message.c: (set_string_field):
11742         Adjust header padding.
11743
11744         (dbus_message_append_args_valist), (dbus_message_append_dict),
11745         (dbus_message_get_args_valist), (dbus_message_iter_get_arg_type),
11746         (dbus_message_iter_get_dict), (_dbus_message_loader_return_buffer),
11747         (check_message_handling), (check_have_valid_message):
11748         * dbus/dbus-message.h:
11749         Add functions for setting and getting dicts.
11750
11751         * dbus/dbus-protocol.h:
11752         Add DBUS_TYPE_DICT.
11753
11754         * dbus/dbus.h:
11755         Add dbus-dict.h
11756
11757         * doc/dbus-specification.sgml:
11758         Add information about how dicts are marshalled.
11759
11760         * test/data/invalid-messages/dict-with-nil-value.message:
11761         * test/data/invalid-messages/too-short-dict.message:
11762         * test/data/valid-messages/dict-simple.message:
11763         * test/data/valid-messages/dict.message:
11764         Add sample messages containing dicts.
11765
11766 2003-03-08  Anders Carlsson  <andersca@codefactory.se>
11767
11768         * dbus/dbus-dict.h: Add DBUS_END_DECLS.
11769
11770 2003-03-07  Anders Carlsson  <andersca@codefactory.se>
11771
11772         * dbus/Makefile.am:
11773         * dbus/dbus-dict.c: (dbus_dict_entry_free), (dbus_dict_new),
11774         (dbus_dict_get_keys), (insert_entry), (dbus_dict_set_boolean),
11775         (dbus_dict_set_int32), (dbus_dict_set_uint32),
11776         (dbus_dict_set_double), (dbus_dict_set_string),
11777         (dbus_dict_set_boolean_array), (dbus_dict_set_int32_array),
11778         (dbus_dict_set_uint32_array), (dbus_dict_set_double_array),
11779         (dbus_dict_set_string_array), (_dbus_dict_test):
11780         * dbus/dbus-dict.h:
11781         Fix according to comments from Havoc.
11782
11783 2003-03-06  Michael Meeks  <michael@server.home>
11784
11785         * configure.in: if we don't have kde-config, disable have_qt.
11786
11787 2003-03-07  Anders Carlsson  <andersca@codefactory.se>
11788
11789         * dbus/Makefile.am:
11790         Add dbus-dict.[ch]
11791
11792         * dbus/dbus-dict.c: (dbus_dict_entry_free), (dbus_dict_new),
11793         (dbus_dict_ref), (dbus_dict_unref), (dbus_dict_contains),
11794         (dbus_dict_remove), (dbus_dict_get_value_type),
11795         (dbus_dict_get_keys), (dbus_dict_put_boolean),
11796         (dbus_dict_put_int32), (dbus_dict_put_uint32),
11797         (dbus_dict_put_double), (dbus_dict_put_string),
11798         (dbus_dict_put_boolean_array), (dbus_dict_put_int32_array),
11799         (dbus_dict_put_uint32_array), (dbus_dict_put_double_array),
11800         (dbus_dict_put_string_array), (dbus_dict_get_boolean),
11801         (dbus_dict_get_int32), (dbus_dict_get_uint32),
11802         (dbus_dict_get_double), (dbus_dict_get_string),
11803         (dbus_dict_get_boolean_array), (dbus_dict_get_int32_array),
11804         (dbus_dict_get_uint32_array), (dbus_dict_get_double_array),
11805         (dbus_dict_get_string_array), (_dbus_dict_test):
11806         * dbus/dbus-dict.h:
11807         Add DBusDict implementation
11808
11809         * dbus/dbus-test.c: (dbus_internal_do_not_use_run_tests):
11810         * dbus/dbus-test.h:
11811         Add _dbus_dict_test
11812
11813 2003-03-04  Havoc Pennington  <hp@pobox.com>
11814
11815         * test/data/auth/*: adapt to changes
11816
11817         * dbus/dbus-auth-script.c (_dbus_auth_script_run): add
11818         USERID_BASE64 and change USERNAME_BASE64 to put in username not
11819         userid
11820
11821         * dbus/dbus-keyring.c (_dbus_keyring_validate_context): prevent
11822         more stuff from being in a context name, to make the protocol
11823         simpler to deal with
11824
11825         * dbus/dbus-errors.c (dbus_error_has_name): new function
11826         (dbus_error_is_set): new function
11827
11828         * dbus/dbus-auth.c: replace DBUS_STUPID_TEST_MECH auth
11829         with DBUS_COOKIE_SHA1, implement DBUS_COOKIE_SHA1
11830
11831         * dbus/dbus-connection.c (dbus_connection_flush): also read
11832         messages during a flush operation
11833
11834         * dbus/Makefile.am: remove dbus-md5 since it isn't currently used.
11835
11836 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
11837
11838         * configure.in: Check for gethostbyname on Solaris.
11839
11840         * dbus/dbus-transport.c: (_dbus_transport_open):
11841         Remove duplicate "tcp" entry.
11842
11843         * doc/dbus-specification.sgml:
11844         Clarify some things.
11845
11846 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
11847
11848         * dbus/dbus-auth.c: (send_rejected), (process_test_subdir):
11849         * dbus/dbus-keyring.c: (_dbus_keyring_new_homedir),
11850         (_dbus_keyring_test):
11851         * dbus/dbus-md5.c: (_dbus_md5_compute):
11852         * dbus/dbus-sha.c: (_dbus_sha_compute):
11853         Plug memory leaks.
11854
11855 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
11856
11857         * README: Add some things.
11858
11859 2003-03-04  Anders Carlsson  <andersca@codefactory.se>
11860
11861         * dbus/dbus-message.c (dbus_message_append_args_valist): Add a break;
11862         after case DBUS_TYPE_BOOELAN.
11863
11864 2003-03-02  Havoc Pennington  <hp@pobox.com>
11865
11866         * test/break-loader.c (randomly_set_extreme_ints): add test that
11867         sets really huge and small integers
11868
11869         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): add check
11870         that length of boolean array fits in the string, and that
11871         string has room for boolean value in single-bool case.
11872
11873         * dbus/dbus-message-builder.c (_dbus_message_data_load): add
11874         optional value to "ALIGN" command which is what to fill the
11875         alignment with.
11876
11877         * test/data/valid-messages/no-padding.message: add regression
11878         test for the message padding problem
11879
11880 2003-03-02  Havoc Pennington  <hp@pobox.com>
11881
11882         * dbus/dbus-message.c (decode_header_data): fix to always init
11883         message_padding, from Benjamin Dauvergne
11884
11885 2003-03-02  Havoc Pennington  <hp@pobox.com>
11886
11887         * configure.in: 0.5
11888
11889         * NEWS: Update.
11890
11891 2003-03-01  Joe Shaw  <joe@assbarn.com>
11892
11893         * configure.in: Check for "struct cmsgcred" and try to access its
11894         members for BSD-like unices.
11895
11896         * dbus/dbus-sysdeps.c (read_credentials_byte): Fold this back into
11897         _dbus_read_credentials_unix_socket().
11898         (_dbus_read_credentials_unix_socket): Use recvmsg() instead of
11899         read() for reading the credential byte off the unix socket.  Use
11900         struct cmsgcred on systems that support it.
11901
11902 2003-02-27  Alexander Larsson  <alexl@redhat.com>
11903
11904         * glib/Makefile.am:
11905         * configure.in:
11906         Make gthreads-2.0 dependency optional. Don't build thread test if
11907         its not found.
11908
11909 2003-02-27  Havoc Pennington  <hp@pobox.com>
11910
11911         * dbus/dbus-connection.c
11912         (dbus_connection_send_message_with_reply_and_block): fix doh!
11913         doh! doh! bug that resulted in never removing a reply from the
11914         queue, no wonder we called get_reply_serial so much ;-)
11915
11916         * dbus/dbus-message.c (struct DBusMessage): cache reply serial
11917         and client serial instead of demarshaling them every time
11918
11919 2003-02-27  Havoc Pennington  <hp@pobox.com>
11920
11921         * dbus/dbus-marshal.c (_dbus_demarshal_int32): rewrite to be much
11922         more inlined, using dbus-string-private.h, speeds things up
11923         substantially
11924
11925         * dbus/dbus-string.c (_dbus_string_free): apply align offset
11926         when freeing the string
11927         (_dbus_string_steal_data): fix for align offset
11928         (undo_alignment): new function
11929
11930 2003-02-26  Havoc Pennington  <hp@redhat.com>
11931
11932         All kinds of audit fixes from Owen, plus initial attempt to
11933         handle unaligned memory returned from malloc.
11934
11935         * dbus/dbus-string.c (_dbus_string_init): clamp max length to
11936         leave room for align_offset and nul byte
11937         (fixup_alignment): function to track an align_offset and
11938         ensure real->str is aligned
11939         (DBUS_GENERIC_STRING_PREAMBLE): len must be less than allocated,
11940         to allow a nul byte plus align offset
11941         (_dbus_string_lock): fix overflow issue
11942         (_dbus_string_init_const_len): add assertions on sanity of len,
11943         assign allocated to be ALLOCATION_PADDING larger than len
11944         (set_length): fixup the overflow handling
11945         (_dbus_string_get_data_len): fix overflow in assertion
11946         (open_gap): detect overflow in size of gap to be opened
11947         (_dbus_string_lengthen): add overflow check
11948         (_dbus_string_align_length): fix overflow with _DBUS_ALIGN_VALUE
11949         (_dbus_string_append): add overflow check
11950         (_dbus_string_append_unichar): overflow
11951         (_dbus_string_delete): fix overflow in assertion
11952         (_dbus_string_copy_len): overflow in assertion
11953         (_dbus_string_replace_len): overflows in assertions
11954         (_dbus_string_find): change to implement in terms of
11955         _dbus_string_find_to
11956         (_dbus_string_find_to): assorted fixage
11957         (_dbus_string_equal_c_str): assert c_str != NULL,
11958         fix logic so the function works
11959         (_dbus_string_ends_with_c_str): fix overflow thingy
11960         (_dbus_string_base64_encode): overflow fix
11961         (_dbus_string_validate_ascii): overflow
11962         (_dbus_string_validate_nul): overflow
11963
11964 2003-02-26  Havoc Pennington  <hp@redhat.com>
11965
11966         * dbus/dbus-marshal.c (_dbus_marshal_test): fix to work with DISABLE_ASSERTS
11967
11968 2003-02-26  Alexander Larsson  <alexl@redhat.com>
11969
11970         * configure.in:
11971         Set DBUS_GLIB_THREADS_LIBS for apps using gthread-2.0
11972
11973         * dbus/dbus-connection.c:
11974         * dbus/dbus-connection.h:
11975         Fix _dbus_connection_acquire_io_path and _dbus_connection_acquire_dispatch.
11976         Add dbus_connection_set_wakeup_main_function and use it when queueing
11977         incoming and outgoing messages.
11978
11979
11980         * dbus/dbus-dataslot.c:
11981         Threadsafe usage of DBusDataSlotAllocator
11982
11983         * dbus/dbus-message.c: (dbus_message_get_args_iter):
11984         dbus_new can fail.
11985
11986         * dbus/dbus-server-unix.c:
11987         Add todo comment
11988
11989         * glib/dbus-gmain.c:
11990         Implement the new wakeup functions for glib.
11991
11992         * glib/Makefile.am:
11993         * glib/test-thread-client.c:
11994         * glib/test-thread-server.c:
11995         * glib/test-thread.h:
11996         Initial cut at some thread test code. Not really done yet.
11997
11998 2003-02-26  Havoc Pennington  <hp@pobox.com>
11999
12000         * dbus/dbus-connection.c
12001         (dbus_connection_send_message_with_reply_and_block): fix crash
12002         where we ref'd the outgoing message instead of the returned reply
12003
12004         * dbus/dbus-transport-unix.c (do_authentication): check read watch
12005         at the end of this function, so if we didn't need to read for
12006         authentication, we reinstall it for receiving messages
12007
12008         * dbus/dbus-message.c (dbus_message_new_reply): allow replies to
12009         a NULL sender for peer-to-peer case
12010
12011         * dbus/dbus-transport-unix.c (check_read_watch): handle
12012         !authenticated case correctly
12013
12014         * glib/dbus-gmain.c: add support for DBusServer
12015
12016         * dbus/dbus-server.c: add data slot support
12017
12018         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): check
12019         return values and handle errors
12020
12021         * dbus/dbus-dataslot.c: factor out the data slot stuff from
12022         DBusConnection
12023
12024         * Doxyfile.in (INPUT): add glib subdir
12025
12026         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): rename
12027         setup_with_g_main instead of hookup_with_g_main; write docs
12028
12029 2003-02-24  Anders Carlsson  <andersca@codefactory.se>
12030
12031         * dbus/dbus-marshal.c: (_dbus_marshal_validate_arg):
12032         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
12033         * dbus/dbus-message.c: (dbus_message_append_boolean),
12034         (dbus_message_append_boolean_array),
12035         (dbus_message_get_args_valist), (_dbus_message_test):
12036         * dbus/dbus-message.h:
12037         * doc/dbus-specification.sgml:
12038         Various fixes as pointed out by Havoc.
12039
12040         * test/data/invalid-messages/bad-boolean-array.message:
12041         * test/data/invalid-messages/bad-boolean.message:
12042         Add invalid boolean value test cases.
12043
12044 2003-02-24  Anders Carlsson  <andersca@codefactory.se>
12045
12046         * dbus/dbus-internals.c: (_dbus_type_to_string):
12047         * dbus/dbus-marshal.c: (_dbus_marshal_get_arg_end_pos),
12048         (_dbus_marshal_validate_arg):
12049         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
12050         * dbus/dbus-message.c: (dbus_message_append_args_valist),
12051         (dbus_message_append_boolean), (dbus_message_append_boolean_array),
12052         (dbus_message_get_args_valist), (dbus_message_iter_get_boolean),
12053         (dbus_message_iter_get_int32), (dbus_message_iter_get_uint32),
12054         (dbus_message_iter_get_double),
12055         (dbus_message_iter_get_boolean_array), (message_iter_test):
12056         * dbus/dbus-message.h:
12057         * dbus/dbus-protocol.h:
12058         * doc/dbus-specification.sgml:
12059         * test/data/valid-messages/lots-of-arguments.message:
12060         Add support for boolean and boolean array types.
12061
12062 2003-02-23  Havoc Pennington  <hp@pobox.com>
12063
12064         * dbus/dbus-keyring.c: finish most of this implementation and
12065         simple unit test
12066
12067         * dbus/dbus-errors.c (dbus_set_error_const, dbus_set_error): make
12068         these barf if the error isn't cleared to NULL
12069
12070         * dbus/dbus-sysdeps.c (_dbus_delete_file): set error on failure
12071         (_dbus_create_directory): new function
12072
12073         * dbus/dbus-errors.c (dbus_set_error): fix warning
12074
12075         * dbus/dbus-string.c (_dbus_string_hex_encode): new function
12076         (_dbus_string_hex_decode): new function
12077         (test_hex_roundtrip): test code
12078
12079         * dbus/dbus-sha.c (_dbus_sha_compute): use dbus_string_hex_encode
12080
12081         * dbus/dbus-md5.c (_dbus_md5_compute): use dbus_string_hex_encode
12082
12083         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): make this use
12084         the save-to-temp/rename trick to atomically write the new file
12085         (_dbus_string_parse_uint): new function
12086
12087 2003-02-22  Havoc Pennington  <hp@pobox.com>
12088
12089         * test/Makefile.am (dist-hook): fix dist for test/data/sha-1
12090
12091 2003-02-22  Havoc Pennington  <hp@pobox.com>
12092
12093         * dbus/dbus-message.c (dbus_message_iter_get_string_array):
12094         (dbus_message_iter_get_byte_array): Fix up doxygen warnings
12095
12096         * dbus/dbus-sha.c: add implementation of SHA-1 algorithm
12097
12098         * dbus/test/data/sha-1: add US government test suite for SHA-1
12099
12100 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
12101
12102         * dbus/dbus-marshal.c: (_dbus_demarshal_string_array):
12103         Make string arrays NULL-terminated.
12104
12105         * dbus/dbus-memory.c: (dbus_free_string_array):
12106         * dbus/dbus-memory.h:
12107         New function for freeing NULL-terminated string arrays.
12108
12109         * dbus/dbus-message-builder.c: (append_quoted_string),
12110         (_dbus_message_data_load):
12111         Add support for array types.
12112
12113         * dbus/dbus-message.c: (check_message_handling):
12114         Add more types as test cases.
12115
12116         * dbus/dbus-sysdeps.c: (_dbus_string_parse_int),
12117         (_dbus_string_parse_double):
12118         Add the start offset to the end offset.
12119
12120         * test/data/valid-messages/lots-of-arguments.message:
12121         New test message with lots of arguments.
12122
12123 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
12124
12125         * dbus/dbus-message.c: (dbus_message_append_nil),
12126         (dbus_message_append_int32), (dbus_message_append_uint32),
12127         (dbus_message_append_double), (dbus_message_append_string),
12128         (dbus_message_append_int32_array),
12129         (dbus_message_append_uint32_array),
12130         (dbus_message_append_double_array),
12131         (dbus_message_append_byte_array),
12132         (dbus_message_append_string_array):
12133         Fix all out-of-memory handling in these functions.
12134
12135 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
12136
12137         * dbus/dbus-message.c: (dbus_message_append_nil):
12138         Fix a silly.
12139
12140 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
12141
12142         * dbus/dbus-message.c: (dbus_message_append_args_valist),
12143         (dbus_message_append_nil), (dbus_message_append_int32_array),
12144         (dbus_message_append_uint32_array),
12145         (dbus_message_append_double_array),
12146         (dbus_message_append_byte_array),
12147         (dbus_message_append_string_array), (dbus_message_get_args_valist),
12148         (dbus_message_iter_get_int32_array),
12149         (dbus_message_iter_get_uint32_array),
12150         (dbus_message_iter_get_double_array),
12151         (dbus_message_iter_get_byte_array),
12152         (dbus_message_iter_get_string_array):
12153
12154         * dbus/dbus-message.h:
12155         Add functions for appending and getting arrays.
12156
12157 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
12158
12159         * dbus/dbus-mempool.c (_dbus_mem_pool_new): Make the
12160         element size at least 8 bytes, fixes mempool tests on
12161         64-bit machines.
12162
12163 2003-02-20  Alexander Larsson  <alexl@redhat.com>
12164
12165         * dbus/dbus-transport-unix.c (unix_do_iteration):
12166         Unlock the connection mutex during a blocking select call.
12167         Add todo about how we need a way to wake up the select.
12168
12169         * dbus/dbus-connection-internal.h:
12170         * dbus/dbus-connection.c:
12171         Add _dbus_connection_lock and _dbus_connection_unlock.
12172
12173 2003-02-19  Havoc Pennington  <hp@pobox.com>
12174
12175         * Doxyfile.in (PREDEFINED): put DOXYGEN_SHOULD_SKIP_THIS in
12176         Doxyfile.in, not Doxyfile
12177
12178         * dbus/dbus-keyring.c: do some hacking on this
12179
12180         * dbus/dbus-sysdeps.c (_dbus_delete_file): new
12181
12182         * dbus/dbus-errors.c (dbus_set_error_const): do not call
12183         dbus_error_init
12184         (dbus_set_error): remove dbus_error_init, check for message ==
12185         NULL *before* we sprintf into it, and add @todo about including
12186         system headers in this file
12187
12188         * dbus/dbus-sysdeps.c (_dbus_create_file_exclusively): new
12189
12190         * dbus/dbus-errors.h (DBUS_ERROR_FAILED): add
12191
12192         * dbus/dbus-sysdeps.c (get_user_info): break this function out to
12193         get various bits of user information based on either username
12194         or user ID
12195         (_dbus_homedir_from_username): new function
12196
12197 2003-02-19  Anders Carlsson  <andersca@codefactory.se>
12198
12199         * configure.in:
12200         Add check for nonposix getpwnam_r
12201
12202         * dbus/dbus-mempool.c: (_dbus_mem_pool_new):
12203         Align the pool element size to a sizeof (void *) boundary.
12204
12205         * dbus/dbus-sysdeps.c: (_dbus_setenv), (_dbus_connect_unix_socket),
12206         (_dbus_listen_unix_socket), (_dbus_credentials_from_username):
12207         General Solaris fixes.
12208
12209         * test/data/valid-messages/simplest-manual.message:
12210         Explicitly state that we want little-endian packing.
12211
12212 2003-02-19  Mikael Hallendal  <micke@codefactory.se>
12213
12214         * dbus/dbus-server.c (dbus_server_listen): Support tcp: addresses.
12215
12216         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_tcp_socket):
12217         Added to create a transport connecting using a tcp/ip socket.
12218
12219         * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): Added to connect
12220         to a tcp socket at given host and port.
12221         (_dbus_listen_tcp_socket): added to listen on tcp socket for given
12222         hostname and port.
12223
12224         * dbus/dbus-server.c (dbus_server_listen): Support tcp: addresses.
12225
12226         * dbus/dbus-server-unix.c (_dbus_server_new_for_tcp_socket):
12227         Added to create a server listening on a TCP/IP socket.
12228
12229 2003-02-19  Havoc Pennington  <hp@pobox.com>
12230
12231         Throughout: mop up all the Doxygen warnings and undocumented
12232         stuff.
12233
12234         * dbus/dbus-sysdeps.c (do_exec): do not use execvp, we don't want
12235         to search any paths.
12236
12237         * dbus/dbus-threads.c: move global mutex initializers to
12238         dbus-internals.h, multiple prototypes was confusing doxygen
12239         besides being kind of ugly
12240
12241         * Doxyfile (PREDEFINED): have Doxygen define
12242         DOXYGEN_SHOULD_SKIP_THIS so we can exclude things from
12243         docs with #ifndef DOXYGEN_SHOULD_SKIP_THIS
12244         (do not abuse the feature! it's for stuff like the autogenerated
12245         macros in dbus-md5.c, not just for things you don't feel like
12246         documenting...)
12247
12248 2003-02-18  Havoc Pennington  <hp@pobox.com>
12249
12250         * dbus/dbus-string.c (_dbus_string_zero): new function
12251
12252         * dbus/dbus-md5.c: include MD5 implementation by L. Peter Deutsch,
12253         wrap it in some dbus-friendly API
12254
12255         * dbus/dbus-types.h: add 16-bit types
12256
12257 2003-02-18  Joe Shaw  <joe@assbarn.com>
12258
12259         * dbus/dbus-auth.c (handle_server_data_stupid_test_mech): Just get
12260         credentials from our currently running process.
12261         (get_word): Fix a buglet where we were copying the entire length
12262         instead of relative to our position.
12263
12264         * dbus/dbus-hash.c (_dbus_hash_test): Don't try to allocate the
12265         keys on the stack... it's 640k of data.
12266
12267         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): Always
12268         read the credentials byte off the socket, even if we don't have
12269         SO_PEERCRED.
12270         (_dbus_poll): Implement poll() using select() for systems which
12271         don't have it.
12272
12273         * glib/test-dbus-glib.c (main): Print out an error if no
12274         parameters are given.
12275
12276         * test/data/auth/fallback.auth-script: Added.  Tests that a client
12277         can fallback to a secondary auth mechanism if the first fails.
12278
12279 2003-02-18  Havoc Pennington  <hp@pobox.com>
12280
12281         * AUTHORS: add Alex
12282
12283 2003-02-17  Havoc Pennington  <hp@pobox.com>
12284
12285         * doc/dbus-specification.sgml: lots of cosmetic
12286         cleanups/rearrangement, add assorted FIXME, change DBUS_ADDRESS
12287         env variable to DBUS_BUS_ADDRESS, s/client/application/,
12288         s/server/bus/ (except in authentication section). Add a section
12289         "Message Bus Message Routing"
12290
12291 2003-02-17  Anders Carlsson  <andersca@codefactory.se.>
12292
12293         Release 0.4
12294
12295         * NEWS: Update
12296
12297 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
12298
12299         * doc/dbus-specification.sgml:
12300         Specification updates.
12301
12302 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
12303
12304         * bus/activation.c: (bus_activation_init), (child_setup),
12305         (bus_activation_activate_service):
12306         * bus/activation.h:
12307         * bus/main.c: (main):
12308         Set DBUS_ADDRESS environment variable.
12309
12310         * dbus/dbus-errors.c: (dbus_set_error):
12311         Don't use va_copy since that's a C99 feature.
12312
12313         * dbus/dbus-sysdeps.c: (_dbus_setenv), (do_exec),
12314         (_dbus_spawn_async):
12315         * dbus/dbus-sysdeps.h:
12316         Add child_setup_func to _dbus_spawn_async.
12317
12318         * doc/dbus-specification.sgml:
12319         Update specification.
12320
12321         * test/spawn-test.c: (setup_func), (main):
12322         Fix test.
12323
12324 2003-02-17  Alexander Larsson  <alexl@redhat.com>
12325
12326         * dbus/dbus-connection.c (_dbus_connection_handler_destroyed_locked):
12327         Added todo.
12328
12329 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
12330
12331         * doc/.cvsignore:
12332         * doc/Makefile.am:
12333         * doc/dbus-test-plan.sgml:
12334         Add test plan document.
12335
12336         * test/Makefile.am:
12337         Fix distcheck.
12338
12339 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
12340
12341         * dbus/dbus-message.c: (decode_header_data),
12342         (_dbus_message_loader_return_buffer):
12343         Set the header padding amount when loading a message.
12344
12345 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
12346
12347         * bus/dispatch.c: (send_one_message):
12348         Only send broadcast messages to registered connections.
12349
12350         * dbus/dbus-message.c: (dbus_message_name_is):
12351         * dbus/dbus-message.h:
12352         New convenience function.
12353
12354         * dbus/dbus-transport-debug.c: (do_reading):
12355         Only dispatch one message per run.
12356
12357         * test/Makefile.am:
12358         * test/bus-test.c: (new_connection_callback), (die),
12359         (test_hello_client1_handler), (test_hello_client2_handler),
12360         (test_hello_replies), (main):
12361
12362         * test/bus-test-loop.[ch]:
12363         Add these.
12364
12365 2003-02-16  Havoc Pennington  <hp@pobox.com>
12366
12367         * dbus/dbus-connection.c (dbus_connection_dispatch_message): fix
12368         backward conditional
12369
12370 2003-02-16  Alexander Larsson  <alexl@redhat.com>
12371
12372         * dbus/dbus-connection.c:
12373         Implement sent_message_with_reply. (with_reply_and block is still
12374         busted).
12375         Made dispatch_message not lose message if OOM.
12376
12377         * dbus/dbus-errors.h:
12378         Add NoReply error (for reply timeouts).
12379
12380 2003-02-16  Alexander Larsson  <alexl@redhat.com>
12381
12382         * dbus/dbus-hash.c (_dbus_hash_table_unref):
12383         Actually free keys and values when destroying hashtable.
12384
12385 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
12386
12387         * dbus/dbus-auth.c: (client_try_next_mechanism):
12388         Plug a leak.
12389
12390         * dbus/dbus-threads.c: (dbus_condvar_wait_timeout):
12391         Return TRUE if there's no thread implementation around.
12392
12393         * glib/dbus-gmain.c: (free_source),
12394         (dbus_connection_hookup_with_g_main):
12395         Make sure to remove the GSource when the connection is finalized.
12396
12397 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
12398
12399         * bus/dispatch.c: (bus_dispatch_message_handler):
12400         * dbus/dbus-errors.h:
12401         Return an error if someone tries to send a message to a service
12402         that doesn't exist.
12403
12404 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
12405
12406         * bus/activation.c: (load_directory), (bus_activation_init),
12407         (bus_activation_activate_service):
12408         * bus/activation.h:
12409         * bus/driver.c:
12410         (bus_driver_handle_activate_service), (bus_driver_handle_message):
12411         More work on the activation handling.
12412
12413         * dbus/dbus-errors.h:
12414         Add some error messages
12415
12416         * dbus/dbus-message.c: (dbus_message_new_error_reply):
12417         * dbus/dbus-message.h:
12418         New function that creates an error message.
12419
12420         * dbus/dbus-protocol.h:
12421         Add ACTIVATE_SERVER message.
12422
12423         * dbus/dbus-server-unix.c: (unix_handle_watch),
12424         (_dbus_server_new_for_domain_socket):
12425         Call _dbus_fd_set_close_on_exec.
12426
12427         * dbus/dbus-sysdeps.c: (make_pipe), (do_exec),
12428         (_dbus_spawn_async), (_dbus_disable_sigpipe),
12429         (_dbus_fd_set_close_on_exec):
12430         * dbus/dbus-sysdeps.h:
12431         Add _dbus_fd_set_close_on exec function. Also add function that checks
12432         that all open fds are set to close-on-exec and warns otherwise.
12433
12434         * dbus/dbus-transport-unix.c:
12435         (_dbus_transport_new_for_domain_socket):
12436         Call _dbus_fd_set_close_on_exec.
12437
12438 2003-02-16  Havoc Pennington  <hp@pobox.com>
12439
12440         * dbus/dbus-connection.c (dbus_connection_set_change_sigpipe):
12441         allow people to avoid setting SIGPIPE to SIG_IGN
12442         (_dbus_connection_new_for_transport): disable SIGPIPE unless
12443         we've been asked not to
12444
12445 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
12446
12447         * dbus/dbus-list.c: (_dbus_list_append_link),
12448         (_dbus_list_prepend_link):
12449         * dbus/dbus-memory.c: (dbus_malloc), (dbus_malloc0),
12450         (dbus_realloc):
12451         Warning fixes.
12452
12453 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
12454
12455         * bus/Makefile.am:
12456         * bus/activation.c: (bus_activation_entry_free),
12457         (add_desktop_file_entry), (load_directory), (bus_activation_init):
12458         * bus/activation.h:
12459         * bus/main.c: (main):
12460         Add simple activation support, doesn't work yet though.
12461
12462 2003-02-15   Zack Rusin  <zack@kde.org>
12463
12464         * qt/dbus-qthread.cpp:  small casting fix
12465
12466 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
12467
12468         * dbus/dbus-errors.c: (dbus_set_error):
12469         * dbus/dbus-errors.h:
12470         Add a few errors and make dbus_set_error void.
12471
12472         * dbus/dbus-sysdeps.c:
12473         (_dbus_errno_to_string), (close_and_invalidate), (make_pipe),
12474         (write_err_and_exit), (read_ints), (do_exec), (_dbus_spawn_async):
12475         * dbus/dbus-sysdeps.h:
12476         Add _dbus_spawn_async.
12477
12478         * test/spawn-test.c: (main):
12479         Test for _dbus_spawn_async.
12480
12481 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
12482
12483         * dbus/dbus-internals.h:
12484         Fix build without tests.
12485
12486         * dbus/dbus-list.c: (alloc_link):
12487         Fix a segfault when a malloc fails.
12488
12489         * dbus/dbus-memory.c: (initialize_malloc_debug), (dbus_malloc),
12490         (dbus_malloc0), (dbus_realloc):
12491         Add support for malloc debugging.
12492
12493 2003-02-15  Alexander Larsson  <alexl@redhat.com>
12494
12495         * dbus/dbus-threads.c:
12496         * dbus/dbus-threads.h:
12497         Add condvars. Remove static mutext from API.
12498         Implement static mutexes by initializing them from threads_init.
12499
12500         * glib/dbus-gthread.c:
12501         * qt/dbus-qthread.cpp:
12502         Update with the thread api changes.
12503
12504
12505         * dbus/dbus-list.c:
12506         * dbus/dbus-list.h:
12507         Turn StaticMutex into normal mutex + init function.
12508         Export new functions _dbus_list_alloc_link, _dbus_list_free_link,
12509         _dbus_list_append_link, _dbus_list_prepend_link
12510
12511
12512         * dbus/dbus-sysdeps.c:
12513         * dbus/dbus-sysdeps.h:
12514         New type dbus_atomic_t, and new functions _dbus_atomic_inc,
12515         _dbus_atomic_dec. Only slow fallback implementation at the moment.
12516
12517         * dbus/dbus-protocol.h:
12518         Add DBUS_MESSAGE_LOCAL_DISCONNECT define
12519
12520         * dbus/dbus-message.c:
12521         Make ref/unref atomic.
12522         Fix some docs.
12523
12524         * dbus/dbus-connection-internal.h:
12525         * dbus/dbus-connection.c:
12526         * dbus/dbus-connection.h:
12527         Make threadsafe.
12528         Change _peek to _borrow,_return & _steal_borrowed.
12529         Change disconnect callback to event.
12530         Make dbus_connection_dispatch_messages reentrant.
12531
12532         * dbus/dbus-transport.c:
12533         Don't ref the connection on calls to the transport
12534         implementation.
12535
12536         * dbus/dbus-message-handler.c:
12537         Make threadsafe.
12538
12539         * glib/dbus-gmain.c:
12540         Don't use peek_message anymore
12541
12542         * test/Makefile.am:
12543         * test/debug-thread.c:
12544         * test/debug-thread.h:
12545         Simple thread implementation that asserts() on deadlocks in
12546         single-threaded code.
12547
12548         * test/bus-test.c:
12549         (main) Call debug_threads_init.
12550
12551         * test/watch.c:
12552         Use disconnect message instead of disconnect callback.
12553
12554         * bus/connection.c:
12555         * bus/connection.h:
12556         Don't call dbus_connection_set_disconnect_function. Instead export
12557         bus_connection_disconnect.
12558
12559         * bus/dispatch.c:
12560         Call bus_connection_disconnect when we get a disconnected message.
12561
12562 2003-02-15  Havoc Pennington  <hp@pobox.com>
12563
12564         * dbus/dbus-message.c (dbus_message_new): fool around with the
12565         docs
12566
12567 2003-02-14  Havoc Pennington  <hp@pobox.com>
12568
12569         * dbus/dbus-mempool.c: fail if the debug functions so indicate
12570
12571         * dbus/dbus-memory.c: fail if the debug functions indicate we
12572         should
12573
12574         * dbus/dbus-internals.c (_dbus_set_fail_alloc_counter)
12575         (_dbus_decrement_fail_alloc_counter): debug functions to
12576         simulate memory allocation failures
12577
12578 2003-02-14  Havoc Pennington  <hp@pobox.com>
12579
12580         * dbus/dbus-errors.h (struct DBusError): add a word of padding
12581         to DBusError
12582
12583 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12584
12585         * bus/driver.c: (bus_driver_handle_hello):
12586         * bus/driver.h:
12587         * bus/services.c: (bus_service_lookup):
12588         Reorder message sending so we get a more sane order.
12589
12590         * test/bus-test.c: (message_handler):
12591         Fix tyop.
12592
12593 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12594
12595         * bus/driver.c: (bus_driver_send_service_deleted),
12596         (bus_driver_send_service_created), (bus_driver_send_service_lost),
12597         (bus_driver_send_service_acquired), (bus_driver_handle_hello),
12598         (bus_driver_send_welcome_message),
12599         (bus_driver_handle_list_services),
12600         (bus_driver_handle_acquire_service),
12601         (bus_driver_handle_service_exists):
12602         * dbus/dbus-bus.c: (dbus_bus_register_client),
12603         (dbus_bus_acquire_service), (dbus_bus_service_exists):
12604         * dbus/dbus-errors.c: (dbus_result_to_string):
12605         * dbus/dbus-errors.h:
12606         * dbus/dbus-message.c: (dbus_message_append_args),
12607         (dbus_message_append_args_valist), (dbus_message_get_args),
12608         (dbus_message_get_args_valist), (dbus_message_get_args_iter),
12609         (dbus_message_iter_get_arg_type), (dbus_message_iter_get_string),
12610         (dbus_message_iter_get_byte_array),
12611         (dbus_message_iter_get_string_array), (message_iter_test),
12612         (check_message_handling), (_dbus_message_test):
12613         * dbus/dbus-message.h:
12614         * test/bus-test.c: (main):
12615         Change fields to arguments in messages, so that they won't be
12616         confused with header fields.
12617
12618         * glib/test-dbus-glib.c: (main):
12619         Remove append_fields from hello message.
12620
12621 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12622
12623         * dbus/dbus-errors.c:
12624         * dbus/dbus-message.c:
12625         * dbus/dbus-string.c:
12626         Documentation fixes.
12627
12628 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12629
12630         * glib/dbus-gmain.c: (timeout_handler), (add_timeout),
12631         (remove_timeout):
12632         Implement support for timeouts in dbus-glib.
12633
12634 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12635
12636         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
12637         * dbus/dbus-message.c: (process_test_subdir):
12638         * test/break-loader.c: (find_breaks_based_on):
12639         Plug some memory leaks.
12640
12641 2003-02-13  Richard Hult  <rhult@codefactory.se>
12642
12643         * bus/main.c: Fix build.
12644
12645         * dbus/dbus-errors.h:
12646         * dbus/dbus-errors.c: Fix copyright for Anders.
12647
12648 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12649
12650         * bus/Makefile.am:
12651         Add utils.[ch]
12652
12653         * bus/connection.c: (bus_connection_foreach):
12654         Fix a warning.
12655
12656         * bus/desktop-file.c: (grow_lines_in_section), (grow_sections),
12657         (unescape_string), (new_section), (parse_section_start),
12658         (parse_key_value), (report_error), (bus_desktop_file_load),
12659         (bus_desktop_file_get_string):
12660         * bus/desktop-file.h:
12661         Use DBusError for error reporting.
12662
12663         * bus/dispatch.c: (send_one_message),
12664         (bus_dispatch_message_handler):
12665         * bus/driver.c: (bus_driver_send_service_deleted),
12666         (bus_driver_send_service_created), (bus_driver_send_service_lost),
12667         (bus_driver_send_service_acquired), (bus_driver_handle_hello),
12668         (bus_driver_send_welcome_message),
12669         (bus_driver_handle_list_services),
12670         (bus_driver_handle_acquire_service),
12671         (bus_driver_handle_service_exists):
12672         * bus/loop.c: (bus_loop_run):
12673         * bus/main.c:
12674         Use BUS_HANDLE_OOM instead of _DBUS_HANDLE_OOM.
12675
12676         * bus/utils.c: (bus_wait_for_memory):
12677         * bus/utils.h:
12678         New files with general utility functions.
12679
12680         * dbus/dbus-internals.h:
12681         Remove _DBUS_HANDLE_OOM.
12682
12683 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12684
12685         * dbus/dbus-errors.c: (dbus_result_to_string), (dbus_error_init),
12686         (dbus_error_free), (dbus_set_error_const), (dbus_set_error):
12687         * dbus/dbus-errors.h:
12688         Add DBusError structure.
12689
12690 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12691
12692         * test/data/valid-messages/standard-acquire-service.message:
12693         * test/data/valid-messages/standard-hello.message:
12694         * test/data/valid-messages/standard-list-services.message:
12695         * test/data/valid-messages/standard-service-exists.message:
12696         Add some standard messages.
12697
12698 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12699
12700         * bus/driver.c: (bus_driver_send_welcome_message),
12701         (bus_driver_handle_list_services),
12702         (bus_driver_handle_acquire_service),
12703         (bus_driver_handle_service_exists), (bus_driver_handle_message):
12704         Update for API changes in libdbus.
12705
12706         * dbus/dbus-message.c: (dbus_message_new_reply):
12707         * dbus/dbus-message.h:
12708         Remove the name argument. The spec states that replies shouldn't
12709         have a name.
12710
12711 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12712
12713         * bus/desktop-file.c: (parse_section_start), (parse_key_value),
12714         (report_error), (bus_desktop_file_load), (lookup_section),
12715         (lookup_line), (bus_desktop_file_get_raw),
12716         (bus_desktop_file_get_string):
12717         * bus/desktop-file.h:
12718         Some fixes, and new functions for getting a key value from a section.
12719
12720 2003-02-13  Havoc Pennington  <hp@pobox.com>
12721
12722         * test/data/auth/fail-after-n-attempts.auth-script: new test
12723
12724         * dbus/dbus-auth.c (send_rejected): shutdown_mech() when we
12725         reject the client.
12726
12727 2003-02-13  Havoc Pennington  <hp@pobox.com>
12728
12729         * dbus/dbus-auth.c (handle_server_data_external_mech): args to
12730         dbus_credentials_match were backward
12731
12732         * dbus/dbus-auth-script.c (_dbus_auth_script_run): support
12733         NO_CREDENTIALS and ROOT_CREDENTIALS
12734
12735         * dbus/dbus-auth.c (_dbus_auth_do_work): move get_state() routine
12736         into here. Never process more commands after we've reached an
12737         end state; store further data as unused bytes.
12738
12739         * test/data/auth/*: add more auth tests
12740
12741         * dbus/dbus-auth-script.c (_dbus_auth_script_run): support EXPECT
12742         command to match exact string and EXPECT_UNUSED to match unused
12743         bytes
12744
12745         * test/Makefile.am (dist-hook): fix to dist all the test stuff
12746
12747 2003-02-12  Havoc Pennington  <hp@pobox.com>
12748
12749         * dbus/dbus-string.c (_dbus_string_pop_line): fix to also strip
12750         \r off of popped lines
12751
12752         * dbus/dbus-auth.c (_dbus_auth_test): write code to run auth
12753         scripts
12754
12755         * dbus/dbus-auth-script.c (_dbus_auth_script_run): when doing a
12756         SEND, append \r\n
12757
12758 2003-02-12  Havoc Pennington  <hp@pobox.com>
12759
12760         * dbus/Makefile.am: remove break-loader from the build, since it
12761         moved.
12762
12763         * configure.in: add --enable-gcov to turn on coverage profiling
12764         flags and disable optimization
12765
12766 2003-02-10  Havoc Pennington  <hp@pobox.com>
12767
12768         * dbus/dbus-auth-script.c, dbus/dbus-auth-script.h: sync
12769         initial cut at test framework for DBusAuth from laptop.
12770         Doesn't quite work yet but it compiles and I need to get
12771         it off the 266mhz laptop. ;-)
12772
12773         * dbus/dbus-server-debug.c (_dbus_server_debug_accept_transport):
12774         fix a memleak in error case
12775
12776 2003-02-12  Anders Carlsson  <andersca@codefactory.se>
12777
12778         * bus/Makefile.am:
12779         * bus/desktop-file.c:
12780         * bus/desktop-file.h:
12781         Add a desktop file parser.
12782
12783 2003-02-11  Zack Rusin  <zack@kde.org>
12784
12785         * qt/message.[h|cpp]: sample implementation
12786         of the KDE wrapper for DBusMessage
12787
12788 2003-02-09  Zack Rusin  <zack@kde.org>
12789
12790         * test/bus-test.c: make_it_compile
12791         * doc/dbus-specification.sgml: minimal semantic fix
12792
12793 2003-02-06  Anders Carlsson  <andersca@codefactory.se>
12794
12795         Release 0.3
12796
12797         * NEWS: Update
12798
12799 2003-02-06  Anders Carlsson  <andersca@codefactory.se>
12800
12801         * dbus/Makefile.am:
12802         * dbus/dbus-break-loader.c:
12803         * test/Makefile.am:
12804         * test/break-loader.c:
12805         Move dbus-break-loader to test/ and rename it to break-loader.
12806
12807 2003-02-02  Havoc Pennington  <hp@pobox.com>
12808
12809         * dbus/dbus-keyring.c, dbus/dbus-keyring.h: template files
12810         for code to manage cookies in your home directory
12811
12812         * dbus/dbus-sysdeps.c (_dbus_generate_random_bytes): new function
12813
12814         * dbus/dbus-auth.c (get_state): impose a maximum number of tries
12815         to authenticate, then disconnect the client.
12816
12817 2003-02-03  Alexander Larsson  <alexl@redhat.com>
12818
12819         * dbus/dbus-message.c (dbus_message_append_fields):
12820         Correct docs.
12821
12822 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
12823
12824         * doc/dbus-specification.sgml:
12825         Update address format section.
12826
12827 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
12828
12829         * test/Makefile.am:
12830         * test/bus-test.c: (get_time), (add_timeout), (remove_timeout),
12831         (message_handler), (new_connection_callback), (loop_quit),
12832         (loop_run), (main):
12833         Add bus test.
12834
12835 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
12836
12837         * bus/driver.c: (bus_driver_handle_service_exists):
12838         Simplify the code a bit.
12839
12840         * dbus/dbus-bus.c: (dbus_bus_service_exists):
12841         Fix a silly.
12842
12843 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
12844
12845         * bus/Makefile.am:
12846         Add libdbus-daemon.la and link to it.
12847
12848 2003-02-01  James Willcox  <jwillcox@gnome.org>
12849
12850         * bus/driver.c: (bus_driver_handle_own_service):
12851         Actually include the service reply code in the message.
12852
12853 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
12854
12855         * bus/driver.c: (bus_driver_handle_service_exists):
12856         Don't unref the incoming message.
12857
12858 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
12859
12860         * dbus/dbus.h: Add dbus-address.h and dbus-bus.h
12861
12862 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
12863
12864         * dbus/dbus-server.c: (dbus_server_listen):
12865         * dbus/dbus-transport.c: (_dbus_transport_open):
12866         ifdef out the calls to the debug transport and server.
12867
12868 2003-02-02  Alexander Larsson  <alexl@redhat.com>
12869
12870         * dbus/dbus-watch.c (dbus_watch_get_flags):
12871         Add note in the docs that ERROR or HANGUP won't be returned
12872         and are assumed always on.
12873
12874         * glib/dbus-gmain.c (add_watch):
12875         Always add IO_ERR | IO_HUP
12876
12877         * dbus/dbus-message.h:
12878         Add semicolon after dbus_message_iter_get_string_array().
12879         Makes qt code build again
12880
12881 2003-02-01  Anders Carlsson  <andersca@codefactory.se>
12882
12883         * bus/driver.c: (create_unique_client_name),
12884         (bus_driver_handle_hello):
12885         Don't take a name, just use a numeric id to identify
12886         each client.
12887
12888         * dbus/Makefile.am:
12889         * dbus/dbus-bus.c: (dbus_bus_register_client),
12890         (dbus_bus_acquire_service), (dbus_bus_service_exists):
12891         * dbus/dbus-bus.h:
12892         Add new convenience functions for communicating with the bus.
12893
12894         * dbus/dbus-message.h:
12895
12896         * dbus/dbus-protocol.h:
12897         Fix a typo.
12898
12899 2003-02-01  Alexander Larsson  <alexl@redhat.com>
12900
12901         * dbus/dbus-message.c (dbus_message_append_fields):
12902         Add some more doc comments.
12903
12904 2003-02-01  Havoc Pennington  <hp@pobox.com>
12905
12906         * dbus/dbus-break-loader.c (randomly_modify_length): change
12907         a 4-byte value in the message as if it were a length
12908
12909         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): don't set
12910         execute bit on saved files
12911
12912 2003-02-01  Havoc Pennington  <hp@pobox.com>
12913
12914         * dbus/dbus-break-loader.c (main): new program to find messages
12915         that break the loader.
12916
12917         * dbus/dbus-sysdeps.c (_dbus_string_append_uint): new function
12918         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): new function
12919
12920         * dbus/dbus-string.c (_dbus_string_set_byte): new
12921
12922 2003-01-31  Havoc Pennington  <hp@pobox.com>
12923
12924         * dbus/dbus-message.c: refactor the test code to be more general,
12925         in preparation for writing a "randomly permute test cases to
12926         try to break the loader" program.
12927
12928 2003-01-31  Havoc Pennington  <hp@pobox.com>
12929
12930         * doc/dbus-specification.sgml: work on the specification
12931
12932         * dbus/dbus-message.c (_dbus_message_loader_return_buffer): check
12933         the protocol version of the message.
12934
12935         * dbus/dbus-protocol.h: drop special _REPLY names, the spec
12936         no longer specifies that.
12937         (DBUS_SERVICE_REPLY_SERVICE_EXISTS): fix flags (1/2/4/8 not
12938         1/2/3/4)
12939
12940         * dbus/dbus-marshal.c (_dbus_marshal_get_arg_end_pos): add missing
12941         "break" for DBUS_TYPE_NIL, remove @todo
12942
12943 2003-01-31  Havoc Pennington  <hp@pobox.com>
12944
12945         * dbus/dbus-message.c (dbus_message_set_is_error_reply): rename
12946         just set_is_error/get_is_error as this is a commonly-used
12947         function, and write docs.
12948
12949 2003-01-31  Anders Carlsson  <andersca@codefactory.se>
12950
12951         * dbus/dbus-address.c: (dbus_address_entry_free):
12952         Free key and value lists.
12953
12954         * dbus/dbus-internals.c: (_dbus_type_to_string):
12955         Add the types we didn't have.
12956
12957         * dbus/dbus-marshal.c: (_dbus_marshal_get_arg_end_pos),
12958         (_dbus_marshal_validate_arg):
12959         Add NIL types.
12960
12961         * dbus/dbus-message.c: (dbus_message_set_sender):
12962         Remove todo about being able to set sender to NULL.
12963
12964         (dbus_message_set_is_error_reply),
12965         (dbus_message_get_is_error_reply):
12966         * dbus/dbus-message.h:
12967         New functions.
12968
12969         * dbus/dbus-protocol.h:
12970         Add error reply flag.
12971
12972         * test/data/valid-messages/opposite-endian.message:
12973         Add NIL type to test.
12974
12975 2003-01-31  Havoc Pennington  <hp@pobox.com>
12976
12977         * doc/dbus-specification.sgml: fully specify the header.  Add
12978         flags and major protocol version, and change header/body len to
12979         unsigned.
12980
12981         * dbus/dbus-message-builder.c (append_saved_length): append length
12982         as uint32
12983
12984         * dbus/dbus-message.c (dbus_message_create_header): change header
12985         length and body length to unsigned. Add the new fields from the
12986         spec
12987         (_dbus_message_loader_return_buffer): unsigned header/body len
12988
12989 2003-01-30  Havoc Pennington  <hp@pobox.com>
12990
12991         * dbus/dbus-auth.c: rework to use only REJECTED, no
12992         MECHANISMS
12993
12994         * doc/dbus-sasl-profile.txt: drop MECHANISMS and just
12995         use REJECTED, suggested by Mark McLoughlin
12996
12997 2003-01-30  Havoc Pennington  <hp@pobox.com>
12998
12999         * dbus/dbus-server.c (dbus_server_listen): @todo about how we need
13000         a better way to report errors here. e.g.  "unix address lacks
13001         path" or something. also "no such file" when the path doesn't
13002         exist, etc.
13003
13004         * dbus/dbus-address.c (dbus_address_entries_free): add @todo about
13005         leaking list nodes
13006         (dbus_parse_address): add @todo about documenting address format,
13007         and allowing , and ; to be escaped
13008
13009 2003-01-30  Anders Carlsson  <andersca@codefactory.se>
13010
13011         * dbus/Makefile.am:
13012         Add dbus-address.[ch]
13013
13014         * dbus/dbus-address.c: (dbus_address_entry_free),
13015         (dbus_address_entries_free), (create_entry),
13016         (dbus_address_entry_get_method), (dbus_address_entry_get_value),
13017         (dbus_parse_address), (_dbus_address_test):
13018         * dbus/dbus-address.h:
13019         New files for dealing with address parsing.
13020
13021         * dbus/dbus-connection.c:
13022         Document timeout functions.
13023
13024         * dbus/dbus-message.c:
13025         Document dbus_message_new_from_message.
13026
13027         * dbus/dbus-server-debug.c:
13028         Document.
13029
13030         * dbus/dbus-server.c: (dbus_server_listen):
13031         Parse address and use correct server implementation.
13032
13033         * dbus/dbus-string.c: (_dbus_string_find_to), (_dbus_string_test):
13034         * dbus/dbus-string.h:
13035         New function with test.
13036
13037         * dbus/dbus-test.c: (dbus_internal_symbol_do_not_use_run_tests):
13038         * dbus/dbus-test.h:
13039         Add address tests.
13040
13041         * dbus/dbus-transport-debug.c:
13042         Document.
13043
13044         * dbus/dbus-transport.c: (_dbus_transport_open):
13045         Parse address and use correct transport implementation.
13046
13047 2003-01-30  Havoc Pennington  <hp@pobox.com>
13048
13049         * dbus/dbus-message.c: use message->byte_order instead of
13050         DBUS_COMPILER_BYTE_ORDER throughout.
13051         (dbus_message_create_header): pad header to align the
13052         start of the body of the message to 8-byte boundary
13053
13054         * dbus/dbus-marshal.h: make all the demarshalers take const
13055         DBusString arguments.
13056
13057         * dbus/dbus-message.c (_dbus_message_loader_return_buffer):
13058         validate message args here, so we don't have to do slow validation
13059         later, and so we catch bad messages as they are incoming. Also add
13060         better checks on header_len and body_len. Also fill in
13061         message->byte_order
13062
13063         * dbus/dbus-string.c (_dbus_string_validate_utf8): new (not
13064         implemented properly)
13065         (_dbus_string_validate_nul): new function to check all-nul
13066
13067         * dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): rename
13068         get_arg_end_pos and remove all validation
13069         (_dbus_marshal_validate_arg): actually do validation here.
13070
13071 2003-01-29  Havoc Pennington  <hp@pobox.com>
13072
13073         * dbus/dbus-message.c (check_message_handling): fix assertion
13074         failure on set_client_serial
13075
13076 2003-01-28  Havoc Pennington  <hp@pobox.com>
13077
13078         * dbus/dbus-server-debug.c: Add doc section comments
13079
13080         * dbus/dbus-transport-debug.c: add doc section comments
13081
13082 2003-01-28  Havoc Pennington  <hp@redhat.com>
13083
13084         * dbus/dbus-string.c (_dbus_string_base64_decode): append bytes in
13085         the reverse order from how I had it
13086         (_dbus_string_base64_encode): reverse encoding order. I was
13087         basically byteswapping everything during encoding.
13088
13089 2003-01-28  Anders Carlsson  <andersca@codefactory.se>
13090
13091         * dbus/dbus-connection-internal.h:
13092         * dbus/dbus-connection.c: (_dbus_connection_add_timeout),
13093         (_dbus_connection_remove_timeout):
13094         Add functions for adding and removing timeouts.
13095
13096         * dbus/dbus-message.c: (dbus_message_new_from_message):
13097         Add new function that takes a message and creates an exact
13098         copy of it, but with the refcount set to 1.
13099         (check_message_handling):
13100         Fix build error.
13101
13102         * dbus/dbus-server-protected.h:
13103         * dbus/dbus-server.c: (_dbus_server_init_base),
13104         (_dbus_server_finalize_base), (_dbus_server_add_timeout),
13105         (dbus_server_set_timeout_functions):
13106         (_dbus_server_remove_timeout):
13107         New functions so that a server can add and remove timeouts.
13108
13109         (dbus_server_listen):
13110         Add commented out call to dbus_server_debug_new.
13111
13112         * dbus/dbus-timeout.c: (_dbus_timeout_new):
13113         Actually set the handler, doh.
13114
13115         * dbus/dbus-transport.c: (_dbus_transport_open):
13116         Add commented out call to dbus_transport_debug_client_new.
13117
13118         * dbus/Makefile.am:
13119         Add dbus-transport-debug.[ch] and dbus-server-debug.[ch]
13120
13121 2003-01-28  Havoc Pennington  <hp@pobox.com>
13122
13123         * dbus/dbus-message.c (check_message_handling): function to check
13124         on the loaded message, iterates over it etc.
13125
13126 2003-01-28  Havoc Pennington  <hp@pobox.com>
13127
13128         * test/Makefile.am (dist-hook): fix make distdir
13129
13130         * dbus/Makefile.am (TESTS_ENVIRONMENT): fix make check
13131
13132 2003-01-27  Havoc Pennington  <hp@pobox.com>
13133
13134         * dbus/dbus-mempool.c (time_for_size): replace printf with
13135         _dbus_verbose
13136
13137         * dbus/dbus-message-builder.c (_dbus_message_data_load): allow
13138         empty lines; fix the SAVE_LENGTH stuff to be
13139         START_LENGTH/END_LENGTH so it actually works; couple other
13140         bugfixes
13141
13142         * test/Makefile.am (dist-hook): add dist-hook for .message files
13143
13144         * dbus/dbus-string.c (DBUS_STRING_COPY_PREAMBLE): source of a copy
13145         can be constant or locked.
13146         (_dbus_string_free): allow freeing a const string as
13147         documented/intended
13148
13149         * dbus/dbus-sysdeps.c (_dbus_concat_dir_and_file): utility
13150
13151         * dbus/dbus-test-main.c (main): take an argument which is the
13152         directory containing test data
13153
13154         * dbus/dbus-message.c (_dbus_message_test): pass a test_data_dir
13155         argument to this and load all the messages in test/data/
13156         checking that they can be loaded or not loaded as appropriate.
13157
13158 2003-01-27  Anders Carlsson  <andersca@codefactory.se>
13159
13160         * bus/dispatch.c: (bus_dispatch_message_handler):
13161         Dispatch messages sent to services.
13162
13163         * bus/driver.c: (bus_driver_send_service_deleted),
13164         (bus_driver_send_service_created), (bus_driver_send_service_lost),
13165         (bus_driver_send_service_acquired):
13166         Add helper functions for sending service related messages.
13167
13168         (bus_driver_send_welcome_message):
13169         Send HELLO_REPLY instead of WELCOME.
13170
13171         (bus_driver_handle_list_services):
13172         Send LIST_SERVICES_REPLY instead of SERVICES.
13173
13174         (bus_driver_handle_own_service),
13175         (bus_driver_handle_service_exists):
13176         New message handlers.
13177
13178         (bus_driver_handle_message):
13179         Invoke new message handlers.
13180
13181         (bus_driver_remove_connection):
13182         Don't remove any services here since that's done automatically
13183         by bus_service_remove_owner now.
13184
13185         * bus/driver.h:
13186         New function signatures.
13187
13188         * bus/services.c: (bus_service_add_owner):
13189         Send ServiceAcquired message if we're the only primary owner.
13190
13191         (bus_service_remove_owner):
13192         Send ServiceAcquired/ServiceLost messages.
13193
13194         (bus_service_set_prohibit_replacement),
13195         (bus_service_get_prohibit_replacement):
13196         Functions for setting prohibit replacement.
13197
13198         (bus_service_has_owner):
13199         New function that checks if a connection is in the owner queue of
13200         a certain service.
13201
13202         * bus/services.h:
13203         Add new function signatures.
13204
13205         * dbus/dbus-list.c: (_dbus_list_test):
13206         Add tests for _dbus_list_remove_last and traversing the list backwards.
13207
13208         * dbus/dbus-list.h:
13209         Fix a typo in _dbus_list_get_prev_link, if we're at the first element we can't
13210         go any further, so return NULL then.
13211
13212         * dbus/dbus-protocol.h:
13213         Add new messages, service flags and service replies.
13214
13215 2003-01-26  Havoc Pennington  <hp@pobox.com>
13216
13217         * dbus/dbus-message-builder.c: implement, completely untested.
13218
13219         * test/data/*: add data to be used in testing.
13220         ".message" files are our simple loadable text format.
13221         ".message-raw" will be binary dumps of messages.
13222
13223         * dbus/dbus-string.c (_dbus_string_starts_with_c_str): new
13224
13225 2003-01-26  Havoc Pennington  <hp@pobox.com>
13226
13227         * dbus/dbus-sysdeps.c (_dbus_file_get_contents): new function
13228
13229         * dbus/dbus-errors.c (dbus_result_to_string): add
13230         file errors
13231
13232         * dbus/dbus-message-builder.c: new file, will contain code to load
13233         up messages from files. Not implemented yet.
13234
13235 2003-01-26  Havoc Pennington  <hp@pobox.com>
13236
13237         * dbus/dbus-message.c (dbus_message_set_sender): support deleting
13238         the sender by setting to NULL
13239
13240 2003-01-26  Havoc Pennington  <hp@pobox.com>
13241
13242         The unit tests pass, but otherwise untested.  If it breaks, the
13243         tests should have been better. ;-)
13244
13245         * bus/driver.c (bus_driver_handle_hello): return if we disconnect
13246         the connection.
13247
13248         * dbus/dbus-message.c: redo everything so we maintain
13249         message->header as the only copy of the various fields.
13250         This avoids the possibility of out-of-memory in some cases,
13251         for example dbus_message_lock() can't run out of memory anymore,
13252         and avoids extra copying. Figured I may as well go ahead and do
13253         this since it was busted for dbus_message_lock to not return
13254         failure on OOM, and dbus_message_write_header was totally
13255         unchecked for OOM. Also fixed some random other bugs.
13256
13257         * dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): verify
13258         that strings are nul-terminated. Also, end_pos can be equal
13259         to string length just not greater than, I think.
13260         (_dbus_marshal_set_int32): new function
13261         (_dbus_marshal_set_uint32): new function
13262         (_dbus_marshal_set_string): new function
13263
13264         * dbus/dbus-connection.c (_dbus_connection_new_for_transport): fix
13265         a warning, init timeout_list to NULL
13266         (dbus_connection_send_message): don't use uninitialized variable
13267         "serial"
13268
13269         * dbus/dbus-string.c (_dbus_string_replace_len): new function
13270
13271 2003-01-26  Anders Carlsson  <andersca@codefactory.se>
13272
13273         * bus/driver.c: (bus_driver_handle_hello),
13274         (bus_driver_send_welcome_message):
13275         Plug leaks
13276
13277 2003-01-26  Anders Carlsson  <andersca@codefactory.se>
13278
13279         * dbus/dbus-auth.c: (process_auth), (_dbus_auth_unref):
13280         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport),
13281         (dbus_connection_unref):
13282         * dbus/dbus-marshal.c: (_dbus_marshal_test):
13283         * dbus/dbus-message.c: (dbus_message_unref),
13284         Plug memory leaks.
13285
13286         (dbus_message_get_fields):
13287         Remove debugging printout.
13288
13289         (_dbus_message_loader_return_buffer):
13290         Don't store the header string.
13291
13292         (_dbus_message_test):
13293         Plug leaks.
13294
13295 2003-01-26  Richard Hult  <rhult@codefactory.se>
13296
13297         * glib/dbus-gmain.c (dbus_connection_dispatch): Traverse a copy of
13298         the file descriptor list, since it can change under us.
13299
13300 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
13301
13302         * glib/dbus-gmain.c: (dbus_connection_prepare),
13303         (dbus_connection_check), (dbus_connection_dispatch), (add_watch),
13304         (remove_watch), (dbus_connection_hookup_with_g_main):
13305         Rewrite the glib handling to use its own GSource instead of a
13306         GIOChannel so we can catch messages put in the queue while waiting
13307         for a reply.
13308
13309 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
13310
13311         * bus/Makefile.am:
13312         * bus/connection.c: (connection_disconnect_handler),
13313         (connection_watch_callback), (bus_connection_setup):
13314         * bus/dispatch.c: (send_one_message),
13315         (bus_dispatch_broadcast_message), (bus_dispatch_message_handler),
13316         (bus_dispatch_add_connection), (bus_dispatch_remove_connection):
13317         * bus/dispatch.h:
13318         * bus/driver.c: (bus_driver_send_service_deleted),
13319         (bus_driver_send_service_created), (bus_driver_handle_hello),
13320         (bus_driver_send_welcome_message),
13321         (bus_driver_handle_list_services), (bus_driver_remove_connection),
13322         (bus_driver_handle_message):
13323         * bus/driver.h:
13324         Refactor code, put the message dispatching in its own file. Use
13325         _DBUS_HANDLE_OOM. Also send ServiceDeleted messages when a client
13326         is disconnected.
13327
13328 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
13329
13330         * dbus/dbus-internals.h:
13331         Add _DBUS_HANDLE_OOM macro, it doesn't do anything currently.
13332
13333         * dbus/dbus-message.c: (dbus_message_get_sender):
13334         * dbus/dbus-message.h:
13335         Implement dbus_message_get_sender.
13336
13337         * dbus/dbus-protocol.h:
13338         Add message and service defines.
13339
13340 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
13341
13342         * dbus/dbus-connection.c: (dbus_connection_send_message):
13343         * dbus/dbus-message-internal.h:
13344         * dbus/dbus-message.c: (_dbus_message_get_client_serial),
13345         (dbus_message_write_header):
13346         Remove _dbus_messag_unlock and don't set the client serial on a
13347         message if one already exists.
13348
13349 2003-01-24  Havoc Pennington  <hp@pobox.com>
13350
13351         * dbus/dbus-list.c (alloc_link): put a thread lock on the global
13352         list_pool
13353
13354         * bus/driver.c (bus_driver_handle_list_services): fix a leak
13355         on OOM
13356
13357 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
13358
13359         * dbus/dbus-list.c: (alloc_link), (free_link):
13360         Use a memory pool for the links.
13361
13362 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
13363
13364         * bus/connection.c: (bus_connection_foreach):
13365         * bus/connection.h:
13366         Add new bus_connection_foreach function.
13367
13368         * bus/driver.c: (send_one_message), (bus_driver_broadcast_message):
13369         Add function that broadcasts a message to all clients.
13370
13371         (bus_driver_send_service_created), (bus_driver_handle_hello),
13372         (bus_driver_send_welcome_message),
13373         (bus_driver_handle_list_services), (bus_driver_message_handler):
13374         Implement functions that take care of listing services, and notifying
13375         clients when new services are created.
13376
13377         * bus/services.c: (bus_services_list):
13378         * bus/services.h:
13379         Add new function that returns an array of strings with the currently
13380         registered services.
13381
13382         * glib/dbus-glib.h:
13383         * glib/dbus-gmain.c:
13384         Update copyright year.
13385
13386 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
13387
13388         * dbus/dbus-connection.c: (dbus_connection_send_message):
13389         Unlock the message in case it was sent earlier.
13390
13391         (dbus_connection_send_message_with_reply_and_block):
13392         Remove the reply message from the list.
13393
13394         * dbus/dbus-marshal.c: (_dbus_demarshal_string_array):
13395         Set array_len and new_pos correctly.
13396
13397         (_dbus_marshal_test):
13398         Remove debug output.
13399
13400         * dbus/dbus-message-internal.h:
13401         * dbus/dbus-message.c: (_dbus_message_get_reply_serial):
13402         New function that returns the reply serial.
13403
13404         (_dbus_message_unlock):
13405         New function that unlocks a message and resets its header.
13406
13407         (dbus_message_append_string_array),
13408         (dbus_message_get_fields_valist),
13409         (dbus_message_iter_get_field_type),
13410         (dbus_message_iter_get_string_array),
13411         (dbus_message_get_fields),
13412         (dbus_message_append_fields_valist):
13413         Handle string arrays.
13414
13415         (dbus_message_set_sender):
13416         Make this function public since the bus daemon needs it.
13417
13418         (decode_header_data):
13419         Set the reply serial to -1 initially.
13420
13421         * dbus/dbus-message.h:
13422         Add dbus_message_set_sender.
13423
13424 2003-01-24  Havoc Pennington  <hp@pobox.com>
13425
13426         * doc/dbus-specification.sgml: add some stuff
13427
13428 2003-01-22  Havoc Pennington  <hp@pobox.com>
13429
13430         * doc/dbus-specification.sgml: Start to document the protocol.
13431
13432 2003-01-22  Havoc Pennington  <hp@pobox.com>
13433
13434         * dbus/dbus-connection.c
13435         (dbus_connection_send_message_with_reply_and_block): add some @todo
13436
13437         * bus/driver.c (bus_driver_add_connection): add a FIXME about memleak
13438
13439 2003-01-21  Havoc Pennington  <hp@pobox.com>
13440
13441         (patch untested because can't compile)
13442
13443         * bus/driver.c (create_unique_client_name): make this function
13444         never recycle client names. Also, caller should initialize
13445         the DBusString.
13446
13447         * dbus/dbus-sysdeps.c (_dbus_get_current_time): new function
13448
13449 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
13450
13451         * dbus/dbus-marshal.c: (_dbus_marshal_double),
13452         (_dbus_marshal_int32), (_dbus_marshal_uint32),
13453         (_dbus_marshal_int32_array), (_dbus_marshal_uint32_array),
13454         (_dbus_marshal_double_array), (_dbus_marshal_string_array),
13455         (_dbus_demarshal_int32_array), (_dbus_demarshal_uint32_array),
13456         (_dbus_demarshal_double_array), (_dbus_demarshal_string_array),
13457         (_dbus_marshal_get_field_end_pos), (_dbus_marshal_test):
13458         * dbus/dbus-marshal.h:
13459         * dbus/dbus-protocol.h:
13460         Add support for marshalling and demarshalling integer, double
13461         and string arrays.
13462
13463 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
13464
13465         * bus/Makefile.am:
13466         Add driver.[ch]
13467
13468         * bus/connection.c: (connection_disconnect_handler):
13469         Remove the connection from the bus driver's list.
13470
13471         (connection_watch_callback): Dispatch messages.
13472
13473         (free_connection_data): Free connection name.
13474
13475         (bus_connection_setup): Add connection to the bus driver's list.
13476         (bus_connection_remove_owned_service):
13477         (bus_connection_set_name), (bus_connection_get_name):
13478         Add functions for setting and getting the connection's name.
13479
13480         * bus/connection.h:
13481         Add function headers.
13482
13483         * bus/driver.c: (create_unique_client_name),
13484         (bus_driver_handle_hello_message),
13485         (bus_driver_send_welcome_message), (bus_driver_message_handler),
13486         (bus_driver_add_connection), (bus_driver_remove_connection):
13487         * bus/driver.h:
13488         * bus/main.c:
13489         * bus/services.c: (bus_service_free):
13490         * bus/services.h:
13491         New file that handles communication and registreation with the bus
13492         itself.
13493
13494 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
13495
13496         * dbus/dbus-connection.c: (dbus_connection_send_message):
13497         Add a new client_serial parameter.
13498
13499         (dbus_connection_send_message_with_reply):
13500         Remove a @todo since we've implemented the blocking function.
13501
13502         (dbus_connection_send_message_with_reply_and_block):
13503         New function that sends a message and waits for a reply and
13504         then returns the reply.
13505
13506         * dbus/dbus-connection.h:
13507         Add new functions.
13508
13509         * dbus/dbus-errors.c: (dbus_result_to_string):
13510         * dbus/dbus-errors.h:
13511         Add new DBUS_RESULT.
13512
13513         * dbus/dbus-message-internal.h:
13514         * dbus/dbus-message.c: (_dbus_message_get_reply_serial),
13515         (_dbus_message_set_sender), (dbus_message_write_header),
13516         (dbus_message_new_reply), (decode_header_data),
13517         (_dbus_message_loader_return_buffer), (_dbus_message_test):
13518         * dbus/dbus-message.h:
13519         Add new functions that set the reply serial and sender.
13520         Also marshal and demarshal them correctly and add test.
13521
13522         * dbus/dbus-protocol.h:
13523         Add new DBUS_MESSAGE_TYPE_SENDER.
13524
13525         * glib/dbus-glib.h:
13526         * glib/dbus-gmain.c: (watch_callback), (free_callback_data),
13527         (add_watch), (remove_watch), (add_timeout), (remove_timeout),
13528         (dbus_connection_hookup_with_g_main):
13529         * glib/test-dbus-glib.c: (main):
13530         Rewrite to use GIOChannel and remove the GSource crack.
13531
13532         * test/echo-client.c: (main):
13533         * test/watch.c: (check_messages):
13534         Update for changed APIs
13535
13536 2003-01-19  Anders Carlsson  <andersca@codefactory.se>
13537
13538         * dbus/Makefile.am: Add dbus-timeout.[cħ]
13539
13540         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport):
13541         Create a DBusTimeoutList.
13542         (dbus_connection_set_timeout_functions): Add new function to
13543         set timeout callbacks
13544
13545         * dbus/dbus-connection.h: Add public DBusTimeout API.
13546
13547         * dbus/dbus-message.c: (dbus_message_get_service):
13548         * dbus/dbus-message.h:  New function.
13549
13550         * dbus/dbus-server.c: Fix small doc typo.
13551
13552         * dbus/dbus-timeout.[ch]: New files for mainloop timeouts.
13553
13554 2003-01-19  Anders Carlsson  <andersca@codefactory.se>
13555
13556         * dbus/dbus-string.c (_dbus_string_move_len): Don't delete all
13557         of the string, just as long as specified.
13558
13559 2003-01-19  Havoc Pennington  <hp@pobox.com>
13560
13561         * dbus/dbus-connection.c (dbus_connection_get_is_authenticated):
13562         new function
13563
13564         * dbus/dbus-server.c (dbus_server_set_max_connections)
13565         (dbus_server_get_max_connections, dbus_server_get_n_connections):
13566         keep track of current number of connections, and add API for
13567         setting a max (but haven't implemented enforcing the max yet)
13568
13569 2003-01-18  Havoc Pennington  <hp@pobox.com>
13570
13571         * dbus/dbus-transport-unix.c (unix_do_iteration): only do the
13572         reading/writing if read_watch != NULL or write_watch != NULL.
13573
13574         * dbus/dbus-message.c (_dbus_message_loader_return_buffer): fix
13575         the message loader code to actually load message->header and
13576         message->body into the newly-created message.
13577
13578         * dbus/dbus-transport-unix.c (check_write_watch): fix a mem leak
13579         in OOM case
13580
13581         * dbus/dbus-connection.c (dbus_connection_set_max_message_size)
13582         (dbus_connection_get_max_message_size)
13583         (dbus_connection_set_max_live_messages_size)
13584         (dbus_connection_get_max_live_messages_size): implement some
13585         resource limitation functions
13586
13587         * dbus/dbus-resources.c: new file implementing some of the
13588         resource limits stuff
13589
13590         * dbus/dbus-message.c (dbus_message_iter_get_byte_array): add
13591         missing docs, add @todo to handle OOM etc.
13592
13593         * dbus/dbus-marshal.c (_dbus_demarshal_byte_array): add missing
13594         docs
13595
13596 2003-01-18  Havoc Pennington  <hp@pobox.com>
13597
13598         * dbus/dbus-connection.c (dbus_connection_unref): disconnect the
13599         connection if it hasn't been already.
13600
13601         * dbus/dbus-connection.h: kill off the idea of an ErrorFunction,
13602         replace with DisconnectFunction.
13603
13604 2003-01-18  Havoc Pennington  <hp@pobox.com>
13605
13606         Building --disable-verbose-mode --disable-asserts --disable-tests
13607         cuts the library from 112K to 45K or so
13608
13609         * configure.in: check for varargs macro support,
13610         add --enable-verbose-mode, --enable-asserts.
13611
13612         * dbus/dbus-internals.h (_dbus_assert): support
13613         DBUS_DISABLE_ASSERT
13614         (_dbus_verbose): support DBUS_ENABLE_VERBOSE_MODE
13615
13616 2003-01-18  Havoc Pennington  <hp@pobox.com>
13617
13618         * dbus/dbus-test.c: include config.h so that tests actually run
13619
13620         * dbus/dbus-string.c: add assertions that stuff is 8-byte aligned,
13621         so the failure mode when that assumption fails will be plenty
13622         obvious.
13623
13624 2003-01-18  Havoc Pennington  <hp@pobox.com>
13625
13626         * configure.in: default --enable-tests to $USE_MAINTAINER_MODE
13627
13628         * dbus/Makefile.am: fix it up so dubs-test-main.c is included in
13629         the distribution
13630
13631         * test/Makefile.am: don't use special variable "TESTS" for echo-*
13632         since we don't want to use those in make check
13633
13634 2003-01-15  Havoc Pennington  <hp@redhat.com>
13635
13636         Release 0.2
13637
13638         * NEWS: update
13639
13640 2003-01-15  Havoc Pennington  <hp@redhat.com>
13641
13642         * test/Makefile.am: fix so that test source code ends up in the
13643         distribution on make distcheck
13644
13645 2003-01-15  Havoc Pennington  <hp@redhat.com>
13646
13647         Release 0.1.
13648
13649         * NEWS: update
13650
13651 2003-01-15  Havoc Pennington  <hp@redhat.com>
13652
13653         * dbus/dbus-test.c (dbus_internal_symbol_do_not_use_run_tests):
13654         fix build when --disable-tests
13655
13656         * Makefile.am (EXTRA_DIST): put HACKING in here
13657
13658         * HACKING: document procedure for making a tarball release.
13659
13660 2003-01-14  Anders Carlsson  <andersca@codefactory.se>
13661
13662         * bus/connection.c: (connection_error_handler),
13663         (bus_connection_setup):
13664         * bus/main.c: (main):
13665         Make sure that the DBusConnectionData struct is NULLed
13666         out to prevent a segfault.
13667
13668         * dbus/dbus-errors.c: (dbus_result_to_string):
13669         * dbus/dbus-errors.h:
13670         * dbus/dbus-message.c: (dbus_message_get_fields),
13671         (dbus_message_get_fields_valist), (_dbus_message_test):
13672         * dbus/dbus-message.h:
13673         Make dbus_message_get_fields return a result code so we can
13674         track invalid fields as well as oom.
13675
13676 2003-01-11  Havoc Pennington  <hp@pobox.com>
13677
13678         * configure.in: change --enable-test/--enable-ansi action-if-given
13679         to enable_foo=$enableval instead of enable_foo=yes
13680
13681 2003-01-08  Havoc Pennington  <hp@pobox.com>
13682
13683         * dbus/dbus-string.c (_dbus_string_align_length): new function
13684
13685         * dbus/dbus-test-main.c: move main() for test app here
13686         * dbus/dbus-test.c
13687         (dbus_internal_symbol_do_not_use_run_tests): we have to export a
13688         symbol to run tests, because dbus-test isn't in the main
13689         library
13690
13691         Code review nitpicks.
13692
13693         * dbus/dbus-message.c (dbus_message_write_header): add newlines
13694         for people with narrow emacs ;-). Assert client_serial was filled
13695         in. Assert message->name != NULL.
13696         (dbus_message_append_fields): have "first_field_type" arg separate
13697         from va list, needed for C++ binding that also uses varargs IIRC
13698         and helps with type safety
13699         (dbus_message_new): add @todo about using DBusString to store
13700         service/name internally
13701         (dbus_message_new): don't leak ->service and ->name on OOM later
13702         in the function
13703         (dbus_message_unref): free the service name
13704         (dbus_message_get_fields): same change to varargs
13705         i.e. first_field_type
13706         (_dbus_message_loader_return_buffer): assert that the message data
13707         is aligned (if not it's a bug in our code). Put in verbose griping
13708         about why we set corrupted = TRUE.
13709         (decode_header_data): add FIXME that char* is evil.  Was going to
13710         add FIXME about evil locale-specific string.h strncmp, but just
13711         switched to wacky string-as-uint32 optimization. Move check for
13712         "no room for field name" above get_const_data_len() to avoid
13713         assertion failure in get_const_data_len if we have trailing 2
13714         bytes or the like. Check for service and name fields being
13715         provided twice. Don't leak service/name on error. Require field
13716         names to be aligned to 4 bytes.
13717
13718         * dbus/dbus-marshal.c: move byte swap stuff to header
13719         (_dbus_pack_int32): uscore-prefix
13720         (_dbus_unpack_int32): uscore-prefix
13721         (_dbus_unpack_uint32): export
13722         (_dbus_demarshal_string): add @todo complaining about use of
13723         memcpy()
13724         (_dbus_marshal_get_field_end_pos): add @todo about bad error
13725         handling allowing corrupt data to go unchecked
13726
13727 2003-01-08  Havoc Pennington  <hp@redhat.com>
13728
13729         * dbus/dbus-transport-unix.c (unix_do_iteration): add read/write
13730         to the select() as needed for authentication. (should be using
13731         _dbus_poll() not select, but for another day)
13732
13733         * dbus/dbus.h: include dbus/dbus-protocol.h
13734
13735 2003-01-08  Anders Carlsson  <andersca@codefactory.se>
13736
13737         * dbus/Makefile.am (dbusinclude_HEADERS): Install
13738         dbus-connection.h
13739
13740 2003-01-08  Anders Carlsson  <andersca@codefactory.se>
13741
13742         * dbus/dbus-internals.c: (_dbus_type_to_string):
13743         New function that returns a string describing a type.
13744
13745         * dbus/dbus-marshal.c: (_dbus_demarshal_byte_array):
13746         * dbus/dbus-marshal.h:
13747         * dbus/dbus-message.c: (dbus_message_get_fields_valist),
13748         (dbus_message_iter_get_field_type), (dbus_message_iter_get_double),
13749         (dbus_message_iter_get_byte_array):
13750         * dbus/dbus-message.h:
13751         Add new convenience functions for appending and getting message fields.
13752         Also add demarshalling routines for byte arrays.
13753
13754 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
13755
13756         * dbus/dbus-connection-internal.h:
13757         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport),
13758         (_dbus_connection_get_next_client_serial),
13759         (dbus_connection_send_message):
13760         * dbus/dbus-internals.h:
13761         * dbus/dbus-marshal.c: (unpack_uint32), (dbus_unpack_int32),
13762         (dbus_pack_int32), (_dbus_marshal_double), (_dbus_marshal_int32),
13763         (_dbus_marshal_uint32), (_dbus_demarshal_double),
13764         (_dbus_demarshal_int32), (_dbus_demarshal_uint32),
13765         (_dbus_demarshal_string), (_dbus_marshal_get_field_end_pos),
13766         (_dbus_verbose_bytes), (_dbus_marshal_test):
13767         * dbus/dbus-marshal.h:
13768         * dbus/dbus-message-internal.h:
13769         * dbus/dbus-message.c: (_dbus_message_set_client_serial),
13770         (dbus_message_write_header), (_dbus_message_lock),
13771         (dbus_message_new), (dbus_message_ref), (dbus_message_unref),
13772         (dbus_message_get_name), (dbus_message_append_int32),
13773         (dbus_message_append_uint32), (dbus_message_append_double),
13774         (dbus_message_append_string), (dbus_message_append_byte_array),
13775         (dbus_message_get_fields_iter), (dbus_message_iter_ref),
13776         (dbus_message_iter_unref), (dbus_message_iter_has_next),
13777         (dbus_message_iter_next), (dbus_message_iter_get_field_type),
13778         (dbus_message_iter_get_string), (dbus_message_iter_get_int32),
13779         (dbus_message_iter_get_uint32), (dbus_message_iter_get_double),
13780         (decode_header_data), (_dbus_message_loader_return_buffer),
13781         (message_iter_test), (_dbus_message_test):
13782         * dbus/dbus-message.h:
13783         * dbus/dbus-protocol.h:
13784         * dbus/dbus-test.c: (main):
13785         * dbus/dbus-test.h:
13786         * glib/test-dbus-glib.c: (message_handler), (main):
13787         * test/echo-client.c: (main):
13788         * test/watch.c: (check_messages):
13789         Make messages sendable and receivable for real.
13790
13791 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
13792
13793         * dbus/dbus-marshal.c: (_dbus_marshal_double),
13794         (_dbus_marshal_string), (_dbus_marshal_byte_array):
13795         * dbus/dbus-message.c: (dbus_message_append_int32),
13796         (dbus_message_append_uint32), (dbus_message_append_double),
13797         (dbus_message_append_string), (dbus_message_append_byte_array):
13798         Handle OOM restoration.
13799
13800 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
13801
13802         * dbus/dbus-marshal.c: (_dbus_marshal_string),
13803         (_dbus_demarshal_string), (_dbus_marshal_test):
13804         * dbus/dbus-marshal.h:
13805         * dbus/dbus-message.c: (dbus_message_get_name),
13806         Document these functions.
13807
13808         (dbus_message_append_int32), (dbus_message_append_uint32),
13809         (dbus_message_append_double), (dbus_message_append_string),
13810         (dbus_message_append_byte_array):
13811         * dbus/dbus-message.h:
13812         Add functions for adding message fields of different types.
13813
13814         * dbus/dbus-protocol.h:
13815         Add the different types.
13816
13817 2003-01-05  Havoc Pennington  <hp@pobox.com>
13818
13819         * bus/connection.c: implement routines for handling connections,
13820         first thing is keeping a list of owned services on each connection
13821         and setting up watches etc.
13822
13823         * bus/services.c: implement a mapping from service names to lists
13824         of connections
13825
13826         * dbus/dbus-hash.c: add DBUS_HASH_POINTER
13827
13828         * dbus/dbus-threads.c (dbus_static_mutex_lock): add functions
13829         to use static mutexes for global data
13830
13831         * dbus/dbus-connection.c (dbus_connection_set_data): add new
13832         collection of functions to set/get application-specific data
13833         on the DBusConnection.
13834
13835 2003-01-04  Havoc Pennington  <hp@pobox.com>
13836
13837         * dbus/dbus-sysdeps.c (_dbus_sleep_milliseconds): new function
13838         (_dbus_poll): new function
13839
13840         * dbus/dbus-internals.h (_DBUS_STRUCT_OFFSET): new macro
13841         copied from GLib
13842
13843         * bus/loop.c: initial code for the daemon main loop
13844
13845 2003-01-04  Havoc Pennington  <hp@pobox.com>
13846
13847         * test/watch.c (error_handler): make it safe if the error handler
13848         is called multiple times (if we s/error handler/disconnect
13849         handler/ we should just guarantee it's called only once)
13850
13851         * dbus/dbus-transport.c (_dbus_transport_disconnect): call the
13852         error handler on disconnect (it's quite possible we should
13853         just change the error handler to a "disconnect handler," I'm
13854         not sure we have any other meaningful errors)
13855
13856         * configure.in: check for getpwnam_r
13857
13858         * dbus/dbus-transport.c, dbus/dbus-transport-unix.c,
13859         dbus/dbus-auth.c: add credentials support, add EXTERNAL auth
13860         mechanism as in SASL spec, using socket credentials
13861
13862         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): new function
13863         (_dbus_send_credentials_unix_socket): new function
13864
13865         * dbus/dbus-sysdeps.c (_dbus_accept_unix_socket): rename just
13866         dbus_accept()
13867         (_dbus_write): only check errno if <0 returned
13868         (_dbus_write_two): ditto
13869
13870 2003-01-02  Anders Carlsson  <andersca@codefactory.se>
13871
13872         * dbus/dbus-marshal.c: (_dbus_marshal_utf8_string),
13873         (_dbus_marshal_byte_array), (_dbus_demarshal_utf8_string),
13874         (_dbus_marshal_test):
13875         * dbus/dbus-marshal.h:
13876         Add _dbus_marshal_byte_array and rename _dbus_marshal_string
13877         to _dbus_marshal_utf8_string. Also fix some tests.
13878
13879 2002-12-28  Harri Porten  <porten@kde.org>
13880
13881         * configure.in: added check for C++ compiler and a very cheesy
13882         check for the Qt integration
13883
13884         * Makefile.am (SUBDIRS): compile qt subdir if support is enabled
13885
13886         * qt/Makefile.am: added
13887
13888         * qt/.cvsignore: added
13889
13890         * qt/dbus-qthread.cc, qt/dbus-qthread.cpp: renamed former to
13891         latter, added #ifdef QT_THREAD_SUPPORT guard.
13892
13893         * dbus/Makefile.am: added missing headers for make dist
13894
13895 2002-12-28  Kristian Rietveld  <kris@gtk.org>
13896
13897         * dbus/Makefile.am: fixup export-symbols-regex.
13898
13899 2002-12-27  Anders Carlsson  <andersca@codefactory.se>
13900
13901         * acinclude.m4: Add this file and put the
13902         PKG_CHECK_MODULE macro in it.
13903
13904 2002-12-27  Anders Carlsson  <andersca@codefactory.se>
13905
13906         * dbus/dbus-marshal.c: (_dbus_marshal_string),
13907         (_dbus_demarshal_double), (_dbus_demarshal_int32),
13908         (_dbus_demarshal_uint32), (_dbus_demarshal_string),
13909         (_dbus_marshal_test):
13910         Make the demarshalling routines align the pos argument.
13911         Add string marshalling tests and fix the obvious bugs
13912         discovered.
13913
13914 2002-12-26  Havoc Pennington  <hp@pobox.com>
13915
13916         * dbus/dbus-auth.c: fixes fixes fixes
13917
13918         * dbus/dbus-transport-unix.c: wire up support for
13919         encoding/decoding data on the wire
13920
13921         * dbus/dbus-auth.c (_dbus_auth_encode_data)
13922         (_dbus_auth_decode_data): append to target string
13923         instead of nuking it.
13924
13925 2002-12-26  Havoc Pennington  <hp@pobox.com>
13926
13927         * dbus/dbus-marshal.h (DBUS_COMPILER_BYTE_ORDER): #ifdef
13928         WORDS_BIGENDIAN then compiler byte order is DBUS_BIG_ENDIAN,
13929         doh
13930
13931         * dbus/dbus-marshal.c: Add macros to do int swapping in-place and
13932         avoid swap_bytes() overhead (ignoring possible assembly stuff for
13933         now). Main point is because I wanted unpack_uint32 to implement
13934         _dbus_verbose_bytes
13935         (_dbus_verbose_bytes): new function
13936
13937         * dbus/dbus-string.c (_dbus_string_validate_ascii): new function
13938
13939         * dbus/dbus-message.c (_dbus_message_loader_get_is_corrupted): add
13940         mechanism to handle a corrupt message stream
13941         (_dbus_message_loader_new): fix preallocation to only prealloc,
13942         not prelengthen
13943
13944         * dbus/dbus-string.c (_dbus_string_skip_blank): fix this function
13945         (_dbus_string_test): enhance tests for copy/move and fix the
13946         functions
13947
13948         * dbus/dbus-transport-unix.c: Hold references in more places to
13949         avoid reentrancy problems
13950
13951         * dbus/dbus-transport.c: ditto
13952
13953         * dbus/dbus-connection.c (dbus_connection_dispatch_message): don't
13954         leak reference count in no-message case
13955
13956         * test/watch.c (do_mainloop): handle adding/removing watches
13957         during iteration over the watches. Also, ref the connection/server
13958         stored on a watch, so we don't try to mangle a destroyed one.
13959
13960         * dbus/dbus-transport-unix.c (do_authentication): perform
13961         authentication
13962
13963         * dbus/dbus-auth.c (get_state): add a state
13964         AUTHENTICATED_WITH_UNUSED_BYTES and return it if required
13965         (_dbus_auth_get_unused_bytes): append the unused bytes
13966         to the passed in string, rather than prepend
13967
13968         * dbus/dbus-transport.c (_dbus_transport_init_base): create
13969         the auth conversation DBusAuth
13970
13971         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd)
13972         (_dbus_transport_new_for_domain_socket): when creating a
13973         transport, pass in whether it's a client-side or server-side
13974         transport so we know which DBusAuth to create
13975
13976 2002-12-03  Havoc Pennington  <hp@pobox.com>
13977
13978         * dbus/dbus-transport-unix.c (unix_finalize): finalize base
13979         _after_ finalizing the derived members
13980         (unix_connection_set): unref watch if we fail to add it
13981
13982         * dbus/dbus-connection.c (dbus_connection_unref): delete the
13983         transport first, so that the connection owned by the
13984         transport will be valid as the transport finalizes.
13985
13986         * dbus/dbus-transport-unix.c (unix_finalize): free the write_watch
13987         if necessary, and remove watches from the connection.
13988
13989         * dbus/dbus-watch.c (_dbus_watch_list_free): improve a comment
13990
13991 2002-12-26  Anders Carlsson  <andersca@codefactory.se>
13992
13993         * dbus/dbus-marshal.c: (_dbus_marshal_string),
13994         (_dbus_demarshal_double), (_dbus_demarshal_int32),
13995         (_dbus_demarshal_uint32), (_dbus_demarshal_string),
13996         (_dbus_marshal_test):
13997         * dbus/dbus-marshal.h:
13998         Add string marshal functions and have the demarshal functions
13999         return the new position.
14000
14001 2002-12-25  Havoc Pennington  <hp@pobox.com>
14002
14003         * doc/dbus-sasl-profile.txt: docs on the authentication protocol,
14004         it is a simple protocol that just maps directly to SASL.
14005
14006         * dbus/dbus-auth.h, dbus/dbus-auth.c: authentication protocol
14007         initial implementation, not actually used yet.
14008
14009         * dbus/dbus-string.c (_dbus_string_find): new function
14010         (_dbus_string_equal): new function
14011         (_dbus_string_base64_encode): new function
14012         (_dbus_string_base64_decode): new function
14013
14014 2002-12-25  Anders Carlsson  <andersca@codefactory.se>
14015
14016         * dbus/Makefile.am:
14017         * dbus/dbus-marshal.c: (swap_bytes), (_dbus_marshal_double),
14018         (_dbus_marshal_int32), (_dbus_marshal_uint32),
14019         (_dbus_demarshal_double), (_dbus_demarshal_int32),
14020         (_dbus_demarshal_uint32), (_dbus_marshal_test):
14021         * dbus/dbus-marshal.h:
14022         * dbus/dbus-protocol.h:
14023         * dbus/dbus-test.c: (main):
14024         * dbus/dbus-test.h:
14025         Add un-optimized marshalling/demarshalling routines.
14026
14027 2002-12-25  Harri Porten  <porten@kde.org>
14028
14029         * qt/dbus-qt.h: adjusted ctor and getter to KDE/Qt conventions
14030
14031 2002-12-24  Zack Rusin  <zack@kde.org>
14032
14033         * qt/dbus-qthread.cc: adding - integrates QMutex into Dbus
14034         * qt/dbus-qt.h: skeleton with two sample implemenatation of the
14035         main loop stuff
14036
14037 2002-12-24  Havoc Pennington  <hp@pobox.com>
14038
14039         * glib/dbus-gthread.c: fix include
14040
14041         * glib/dbus-glib.h: rename DBusMessageHandler for now.
14042         I think glib API needs to change, though, as you don't
14043         want to use DBusMessageFunction, you want to use the
14044         DBusMessageHandler object. Probably
14045         dbus_connection_open_with_g_main_loop()
14046         and dbus_connection_setup_g_main_loop() or something like that
14047         (but think of better names...) that just create a connection
14048         that has watch/timeout functions etc. already set up.
14049
14050         * dbus/dbus-connection.c
14051         (dbus_connection_send_message_with_reply): new function just to
14052         show how the message handler helps us deal with replies.
14053
14054         * dbus/dbus-list.c (_dbus_list_remove_last): new function
14055
14056         * dbus/dbus-string.c (_dbus_string_test): free a string that
14057         wasn't
14058
14059         * dbus/dbus-hash.c: use memory pools for the hash entries
14060         (rebuild_table): be more paranoid about overflow, and
14061         shrink table when we can
14062         (_dbus_hash_test): reduce number of sprintfs and write
14063         valid C89. Add tests for case where we grow and then
14064         shrink the hash table.
14065
14066         * dbus/dbus-mempool.h, dbus/dbus-mempool.c: memory pools
14067
14068         * dbus/dbus-connection.c (dbus_connection_register_handler)
14069         (dbus_connection_unregister_handler): new functions
14070
14071         * dbus/dbus-message.c (dbus_message_get_name): new
14072
14073         * dbus/dbus-list.c: fix docs typo
14074
14075         * dbus/dbus-message-handler.h, dbus/dbus-message-handler.c:
14076         an object representing a handler for messages.
14077
14078 2002-12-16  Anders Carlsson  <andersca@codefactory.se>
14079
14080         * glib/dbus-glib.h:
14081         * glib/dbus-gthread.c: (dbus_gthread_init):
14082         Don't use the gdbus prefix for public functions.
14083
14084 2002-12-16  Anders Carlsson  <andersca@codefactory.se>
14085
14086         * Makefile.am:
14087         * configure.in:
14088         Add GLib checks and fixup .pc files
14089
14090         * glib/Makefile.am:
14091         * glib/dbus-glib.h:
14092         * glib/dbus-gmain.c: (gdbus_connection_prepare),
14093         (gdbus_connection_check), (gdbus_connection_dispatch),
14094         (gdbus_add_connection_watch), (gdbus_remove_connection_watch),
14095         (dbus_connection_gsource_new):
14096         * glib/dbus-gthread.c: (dbus_gmutex_new), (dbus_gmutex_free),
14097         (dbus_gmutex_lock), (dbus_gmutex_unlock), (dbus_gthread_init):
14098         * glib/test-dbus-glib.c: (message_handler), (main):
14099         Add GLib support.
14100
14101 2002-12-15  Harri Porten  <porten@kde.org>
14102
14103         * autogen.sh: check for libtoolize before attempting to use it
14104
14105         * dbus/dbus-transport-unix.c: include <sys/time.h> for timeval
14106         struct.
14107
14108         * .cvsignore: ignore more stamp files
14109
14110         * dbus/dbus-watch.c (_dbus_watch_list_new): fixed doc error
14111
14112         * test/Makefile.am: added -I$(top_srcdir) to be able to compile
14113         without make install.
14114
14115 2002-12-15  Havoc Pennington  <hp@pobox.com>
14116
14117         * dbus/dbus-threads.c: add thread stubs that a higher library
14118         layer can fill in. e.g. the GLib wrapper might fill them in with
14119         GThread stuff. We still need to use this thread API to
14120         thread-safe-ize the library.
14121
14122 2002-12-12  Havoc Pennington  <hp@pobox.com>
14123
14124         * dbus/dbus-transport-unix.c, dbus/dbus-server-unix.c: use the
14125         below new interfaces and include fewer system headers.
14126
14127         * dbus/dbus-sysdeps.c (_dbus_read): new function
14128         (_dbus_write): new function
14129         (_dbus_write_two): new function
14130         (_dbus_connect_unix_socket): new function
14131         (_dbus_listen_unix_socket): new function
14132
14133         * dbus/dbus-message-internal.h: change interfaces to use
14134         DBusString
14135
14136 2002-12-11  Havoc Pennington  <hp@pobox.com>
14137
14138         * dbus/dbus-types.h: add dbus_unichar
14139
14140         * dbus/dbus-internals.c (_dbus_verbose): use _dbus_getenv
14141
14142         * dbus/dbus-connection.c (dbus_connection_send_message): return
14143         TRUE on success
14144
14145         * dbus/dbus-transport.c: include dbus-watch.h
14146
14147         * dbus/dbus-connection.c: include dbus-message-internal.h
14148
14149         * HACKING: add file with coding guidelines stuff.
14150
14151         * dbus/dbus-string.h, dbus/dbus-string.c: Encapsulate all string
14152         handling here, for security purposes (as in vsftpd). Not actually
14153         using this class yet.
14154
14155         * dbus/dbus-sysdeps.h, dbus/dbus-sysdeps.c: Encapsulate all
14156         system/libc usage here, as in vsftpd, for ease of auditing (and
14157         should also simplify portability). Haven't actually moved all the
14158         system/libc usage into here yet.
14159
14160 2002-11-25  Havoc Pennington  <hp@pobox.com>
14161
14162         * dbus/dbus-internals.c (_dbus_verbose): fix to not
14163         always print the first verbose message.
14164
14165 2002-11-24  Havoc Pennington  <hp@pobox.com>
14166
14167         * test/echo-client.c, test/echo-server.c: cheesy test
14168         clients.
14169
14170         * configure.in (AC_CHECK_FUNCS): check for writev
14171
14172         * dbus/dbus-message.c (_dbus_message_get_network_data): new
14173         function
14174
14175         * dbus/dbus-list.c (_dbus_list_foreach): new function
14176
14177         * dbus/dbus-internals.c (_dbus_verbose): new function
14178
14179         * dbus/dbus-server.c, dbus/dbus-server.h: public object
14180         representing a server that listens for connections.
14181
14182         * dbus/.cvsignore: create
14183
14184         * dbus/dbus-errors.h, dbus/dbus-errors.c:
14185         public API for reporting errors
14186
14187         * dbus/dbus-connection.h, dbus/dbus-connection.c:
14188         public object representing a connection that
14189         sends/receives messages. (Same object used for
14190         both client and server.)
14191
14192         * dbus/dbus-transport.h, dbus/dbus-transport.c:
14193         Basic abstraction for different kinds of stream
14194         that we might read/write messages from.
14195
14196 2002-11-23  Havoc Pennington  <hp@pobox.com>
14197
14198         * dbus/dbus-internals.h (_DBUS_INT_MAX): add _DBUS_INT_MIN
14199         _DBUS_INT_MAX
14200
14201         * dbus/dbus-test.c (main): add list test, and include
14202         dbus-test.h as intended
14203
14204         * dbus/dbus-hash.c (_dbus_hash_table_remove_string)
14205         (_dbus_hash_table_remove_int): return value indicates
14206         whether the entry existed to remove
14207
14208         * dbus/dbus-list.c: add linked list utility class,
14209         with docs and tests
14210
14211         * dbus/dbus-hash.c: add TODO item about shrinking the hash bucket
14212         array sometimes.
14213
14214 2002-11-23  Havoc Pennington  <hp@pobox.com>
14215
14216         * Doxyfile.in (INCLUDE_FILE_PATTERNS): expand DBUS_BEGIN_DECLS/
14217         DBUS_END_DECLS to nothing, that should fix this once and for all
14218
14219         * Doxyfile.in (JAVADOC_AUTOBRIEF): set to YES
14220
14221         * dbus/dbus-message.c, dbus/dbus-hash.c:
14222         add some missing @brief
14223
14224 2002-11-23  Havoc Pennington  <hp@pobox.com>
14225
14226         * dbus/dbus-message.h: put semicolons after DEBUG_BEGIN_DECLS
14227         to avoid confusing Doxygen
14228
14229         * dbus/dbus-hash.c: @} not }@
14230
14231         * dbus/dbus-message.c (struct DBusMessage): split out
14232         internals docs
14233
14234 2002-11-23  Havoc Pennington  <hp@pobox.com>
14235
14236         * configure.in: pile on more warning flags if using gcc
14237
14238         * Doxyfile.in (EXTRACT_STATIC): set to NO, so we don't have
14239         to document static functions
14240
14241         * configure.in: add summary to end of configure so it
14242         looks nice and attractive
14243
14244         * dbus/dbus-hash.c: finish implementation and write unit
14245         tests and docs
14246
14247         * configure.in: add --enable-tests to enable unit tests
14248
14249         * dbus/dbus-test.c: test program to run unit tests
14250         for all files in dbus/*, initially runs a test for
14251         dbus-hash.c
14252
14253         * dbus/dbus-internals.h: file to hold some internal utility stuff
14254
14255 2002-11-22  Havoc Pennington  <hp@redhat.com>
14256
14257         * dbus/dbus-hash.c: copy in Tcl hash table, not yet
14258         "ported" away from Tcl
14259
14260         * dbus/dbus-types.h: header for types such as dbus_bool_t
14261
14262 2002-11-22  Havoc Pennington  <hp@redhat.com>
14263
14264         * dbus/dbus.h: fixups for doc warnings
14265
14266         * Doxyfile.in (FILE_PATTERNS): we need to scan .h to pick up
14267         macros
14268         (QUIET): make it quiet so we can see warnings
14269
14270         * dbus/dbus-memory.c: teach D-BUS to allocate and free memory
14271
14272 2002-11-22  Havoc Pennington  <hp@redhat.com>
14273
14274         * Makefile.am: include "Doxyfile" target in all-local
14275
14276         * configure.in: generate the Doxyfile
14277
14278         * Doxyfile.in: move Doxyfile here, so we can use
14279         configure to generate a Doxyfile with the right
14280         version number etc.
14281
14282 2002-11-22  Havoc Pennington  <hp@redhat.com>
14283
14284         * dbus/dbus-message.c: move inline docs into .c file
14285
14286         * Doxyfile (OUTPUT_DIRECTORY): move output to doc/api
14287         so all docs are under doc/
14288         (MAN_EXTENSION): generate man pages. Use extension
14289         ".3dbus" which matches ".3qt" on my system,
14290         I guess this is OK, I don't know really.
14291         (FILE_PATTERNS): look for .c files not .h, makes sense
14292         for plain C I think
14293
14294 2002-11-22  Havoc Pennington  <hp@pobox.com>
14295
14296         * Makefile.am (SUBDIRS): rename subdir "server" to "bus"
14297         because any app can be a server, and any app can be a client,
14298         the bus is a special kind of server.
14299
14300 Thu Nov 21 23:35:31 2002  Zack Rusin  <zack@kde.org>
14301
14302         * Doxyfile : adding. Still needs Makefile rules to be generated
14303         automatically (just run "doxygen" in the toplevel dir for now to
14304         generate docs)
14305
14306         * dbus/dbus-message.h : Adding sample docs (javadoc since
14307         resembles gtk-doc a little more)
14308
14309         * dbus/dbus.h : Adding sample docs
14310
14311 2002-11-21  Havoc Pennington  <hp@redhat.com>
14312
14313         * dbus/Makefile.am (INCLUDES): define DBUS_COMPILATION
14314         so we can allow ourselves to include files directly,
14315         instead of having to use dbus.h
14316
14317         * dbus/dbus.h: fill in
14318
14319         * dbus/dbus-message.h: sketch out a sample header file.
14320         Include griping if you include it directly instead of
14321         via dbus.h
14322
14323         * dbus/dbus-macros.h: new file with macros for extern "C",
14324         TRUE/FALSE, NULL, etc.
14325
14326         * doc/file-boilerplate.c: put include guards in here
14327
14328 2002-11-21  Havoc Pennington  <hp@redhat.com>
14329
14330         * doc/file-boilerplate.c: include both AFL and GPL boilerplate.
14331
14332         * COPYING: include the GPL as well, and license code
14333         under both AFL and GPL.
14334
14335 2002-11-21  Havoc Pennington  <hp@redhat.com>
14336
14337         * acconfig.h: get rid of this
14338
14339         * autogen.sh (run_configure): add --no-configure option
14340
14341         * configure.in: remove AC_ARG_PROGRAM to make
14342         autoconf complain less. add AC_PREREQ.
14343         add AC_DEFINE third arg.
14344
14345 2002-11-21  Anders Carlsson  <andersca@codefactory.se>
14346
14347         * doc/Makefile.am:
14348         Fix references so we can distcheck.
14349
14350 2002-11-21  Havoc Pennington  <hp@redhat.com>
14351
14352         * Initial module creation
14353